[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-vue-start":3,"mdc-9yibxs-key":52,"related-repo-tanstack-vue-start":4440,"related-org-tanstack-vue-start":4547},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":47,"sourceUrl":50,"mdContent":51},"vue-start","build applications with TanStack Start and Vue","Vue bindings for TanStack Start: useServerFn hook, tanstackStart Vite plugin, StartClient, StartServer, Vue-specific setup, re-exports from @tanstack\u002Fstart-client-core. Full project setup with Vue.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19,22,23],{"name":13,"slug":14,"type":15},"Vue","vue","tag",{"name":17,"slug":18,"type":15},"Vite","vite",{"name":20,"slug":21,"type":15},"SSR","ssr",{"name":9,"slug":8,"type":15},{"name":24,"slug":25,"type":15},"Frontend","frontend",14787,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter","2026-07-30T05:27:13.506579",null,1761,[32,33,34,35,36,37,38,39,40,41,42,21,43,44,45,46],"framework","fullstack","javascript","react","route","router","routing","rpc","search","searchparams","server-functions","state-management","typesafe","typescript","url",{"repoUrl":27,"stars":26,"forks":30,"topics":48,"description":49},[32,33,34,35,36,37,38,39,40,41,42,21,43,44,45,46],"🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more).","https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter\u002Ftree\u002FHEAD\u002Fpackages\u002Fvue-start\u002Fskills\u002Fvue-start","---\nname: vue-start\ndescription: >-\n  Vue bindings for TanStack Start: useServerFn hook, tanstackStart\n  Vite plugin, StartClient, StartServer, Vue-specific setup,\n  re-exports from @tanstack\u002Fstart-client-core. Full project setup\n  with Vue.\nmetadata:\n  type: framework\n  library: tanstack-start\n  library_version: '1.166.2'\n  framework: vue\nrequires:\n  - start-core\nsources:\n  - TanStack\u002Frouter:packages\u002Fvue-start\u002Fsrc\n---\n\n# Vue Start (`@tanstack\u002Fvue-start`)\n\nThis skill builds on start-core. Read [start-core](..\u002F..\u002F..\u002Fstart-client-core\u002Fskills\u002Fstart-core\u002FSKILL.md) first for foundational concepts.\n\nThis skill covers the Vue-specific bindings, setup, and patterns for TanStack Start.\n\n> **CRITICAL**: All code is ISOMORPHIC by default. Loaders run on BOTH server and client. Use `createServerFn` for server-only logic.\n\n> **CRITICAL**: Do not confuse `@tanstack\u002Fvue-start` with Nuxt. They are completely different frameworks with different APIs.\n\n> **CRITICAL**: Types are FULLY INFERRED. Never cast, never annotate inferred values.\n\n## Package API Surface\n\n`@tanstack\u002Fvue-start` re-exports everything from `@tanstack\u002Fstart-client-core` plus:\n\n- `useServerFn` — Vue composable for calling server functions from components\n\nAll core APIs (`createServerFn`, `createMiddleware`, `createStart`, `createIsomorphicFn`, `createServerOnlyFn`, `createClientOnlyFn`) are available from `@tanstack\u002Fvue-start`.\n\nServer utilities (`getRequest`, `getRequestHeader`, `setResponseHeader`, `setCookie`, `getCookie`, `useSession`) are imported from `@tanstack\u002Fvue-start\u002Fserver`.\n\n## Full Project Setup\n\n### 1. Install Dependencies\n\n```bash\nnpm i @tanstack\u002Fvue-start @tanstack\u002Fvue-router vue\nnpm i -D vite @vitejs\u002Fplugin-vue @vitejs\u002Fplugin-vue-jsx typescript\n```\n\n### 2. package.json\n\n```json\n{\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite dev\",\n    \"build\": \"vite build\",\n    \"start\": \"node .output\u002Fserver\u002Findex.mjs\"\n  }\n}\n```\n\n### 3. tsconfig.json\n\n```json\n{\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"jsxImportSource\": \"vue\",\n    \"moduleResolution\": \"Bundler\",\n    \"module\": \"ESNext\",\n    \"target\": \"ES2022\",\n    \"skipLibCheck\": true,\n    \"strictNullChecks\": true\n  }\n}\n```\n\n### 4. vite.config.ts\n\n```ts\nimport { defineConfig } from 'vite'\nimport { tanstackStart } from '@tanstack\u002Fvue-start\u002Fplugin\u002Fvite'\nimport vuePlugin from '@vitejs\u002Fplugin-vue'\nimport vueJsx from '@vitejs\u002Fplugin-vue-jsx'\n\nexport default defineConfig({\n  plugins: [\n    tanstackStart(), \u002F\u002F MUST come before vue plugin\n    vuePlugin(),\n    vueJsx(), \u002F\u002F Required for JSX\u002FTSX route files\n  ],\n})\n```\n\n### 5. Router Factory (src\u002Frouter.tsx)\n\n```tsx\nimport { createRouter } from '@tanstack\u002Fvue-router'\nimport { routeTree } from '.\u002FrouteTree.gen'\n\nexport function getRouter() {\n  const router = createRouter({\n    routeTree,\n    scrollRestoration: true,\n  })\n  return router\n}\n```\n\n### 6. Root Route (src\u002Froutes\u002F\\_\\_root.tsx)\n\n```tsx\nimport {\n  Outlet,\n  createRootRoute,\n  HeadContent,\n  Scripts,\n  Html,\n  Body,\n} from '@tanstack\u002Fvue-router'\n\nexport const Route = createRootRoute({\n  head: () => ({\n    meta: [\n      { charSet: 'utf-8' },\n      { name: 'viewport', content: 'width=device-width, initial-scale=1' },\n      { title: 'My TanStack Start App' },\n    ],\n  }),\n  component: RootComponent,\n})\n\nfunction RootComponent() {\n  return (\n    \u003CHtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003CBody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002FBody>\n    \u003C\u002FHtml>\n  )\n}\n```\n\n### 7. Index Route (src\u002Froutes\u002Findex.tsx)\n\n```tsx\nimport { createFileRoute } from '@tanstack\u002Fvue-router'\nimport { createServerFn } from '@tanstack\u002Fvue-start'\n\nconst getGreeting = createServerFn({ method: 'GET' }).handler(async () => {\n  return 'Hello from TanStack Start!'\n})\n\nexport const Route = createFileRoute('\u002F')({\n  loader: () => getGreeting(),\n  component: HomePage,\n})\n\nfunction HomePage() {\n  const greeting = Route.useLoaderData()\n  return \u003Ch1>{greeting.value}\u003C\u002Fh1>\n}\n```\n\n## useServerFn Composable\n\nUse `useServerFn` to call server functions from Vue components with automatic redirect handling:\n\n```tsx\nimport { createServerFn, useServerFn } from '@tanstack\u002Fvue-start'\nimport { ref } from 'vue'\n\nconst updatePost = createServerFn({ method: 'POST' })\n  .validator((data: { id: string; title: string }) => data)\n  .handler(async ({ data }) => {\n    await db.posts.update(data.id, { title: data.title })\n    return { success: true }\n  })\n\n\u002F\u002F In a component setup:\nconst updatePostFn = useServerFn(updatePost)\nconst title = ref('')\n\nasync function handleSubmit(postId: string) {\n  await updatePostFn({ data: { id: postId, title: title.value } })\n}\n```\n\nUnlike the React version, `useServerFn` does NOT wrap the returned function in `useCallback` — Vue's `setup()` runs once per component instance, so no memoization is needed.\n\n## Vue-Specific Components\n\nAll routing components from `@tanstack\u002Fvue-router` work in Start:\n\n- `\u003COutlet>` — renders matched child route\n- `\u003CLink>` — type-safe navigation with scoped slots\n- `\u003CNavigate>` — declarative redirect\n- `\u003CHeadContent>` — renders head tags (must be in `\u003Chead>`)\n- `\u003CScripts>` — renders body scripts (must be in `\u003Cbody>`)\n- `\u003CAwait>` — renders deferred data with Vue `\u003CSuspense>`\n- `\u003CClientOnly>` — renders children only after `onMounted`\n- `\u003CCatchBoundary>` — error boundary via `onErrorCaptured`\n- `\u003CHtml>` — SSR shell `\u003Chtml>` wrapper\n- `\u003CBody>` — SSR shell `\u003Cbody>` wrapper\n\n## Composables Reference\n\nAll composables from `@tanstack\u002Fvue-router` work in Start. Most return `Ref\u003CT>` — access via `.value`:\n\n- `useRouter()` — router instance (NOT a Ref)\n- `useRouterState()` — `Ref\u003CT>`, subscribe to router state\n- `useNavigate()` — navigation function (NOT a Ref)\n- `useSearch({ from })` — `Ref\u003CT>`, validated search params\n- `useParams({ from })` — `Ref\u003CT>`, path params\n- `useLoaderData({ from })` — `Ref\u003CT>`, loader data\n- `useMatch({ from })` — `Ref\u003CT>`, full route match\n- `useRouteContext({ from })` — `Ref\u003CT>`, route context\n- `Route.useLoaderData()` — `Ref\u003CT>`, typed loader data (preferred in route files)\n- `Route.useSearch()` — `Ref\u003CT>`, typed search params (preferred in route files)\n\n## Common Mistakes\n\n### 1. CRITICAL: Importing from wrong package\n\n```tsx\n\u002F\u002F WRONG — this is the SPA router, NOT Start\nimport { createServerFn } from '@tanstack\u002Fvue-router'\n\n\u002F\u002F CORRECT — server functions come from vue-start\nimport { createServerFn } from '@tanstack\u002Fvue-start'\n\n\u002F\u002F CORRECT — routing APIs come from vue-router\nimport { createFileRoute, Link } from '@tanstack\u002Fvue-router'\n```\n\n### 2. CRITICAL: Forgetting .value in script blocks\n\nMost composables return `Ref\u003CT>`. In `\u003Cscript>`, access via `.value`.\n\n```tsx\n\u002F\u002F WRONG\nconst data = Route.useLoaderData()\nconsole.log(data.message) \u002F\u002F undefined!\n\n\u002F\u002F CORRECT\nconst data = Route.useLoaderData()\nconsole.log(data.value.message)\n```\n\n### 3. HIGH: Missing Scripts component\n\nWithout `\u003CScripts \u002F>` in the root route's `\u003Cbody>`, client JavaScript doesn't load and the app won't hydrate.\n\n### 4. HIGH: Vue plugin before Start plugin in Vite config\n\n```ts\n\u002F\u002F WRONG\nplugins: [vuePlugin(), tanstackStart()]\n\n\u002F\u002F CORRECT\nplugins: [tanstackStart(), vuePlugin()]\n```\n\n### 5. HIGH: Using Html\u002FBody incorrectly\n\nVue Start uses `\u003CHtml>` and `\u003CBody>` components for the SSR document shell. On the server they render `\u003Chtml>` and `\u003Cbody>` tags; on the client they handle hydration properly.\n\n```tsx\n\u002F\u002F WRONG — plain HTML tags can cause hydration mismatches\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Cbody>\n        \u003COutlet \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n\n\u002F\u002F CORRECT — use Html and Body components\nfunction RootComponent() {\n  return (\n    \u003CHtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003CBody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002FBody>\n    \u003C\u002FHtml>\n  )\n}\n```\n\n## Cross-References\n\n- [start-core](..\u002F..\u002F..\u002Fstart-client-core\u002Fskills\u002Fstart-core\u002FSKILL.md) — core Start concepts\n- [router-core](..\u002F..\u002F..\u002Frouter-core\u002Fskills\u002Frouter-core\u002FSKILL.md) — routing fundamentals\n- [vue-router](..\u002F..\u002F..\u002Fvue-router\u002Fskills\u002Fvue-router\u002FSKILL.md) — Vue Router composables and components\n",{"data":53,"body":61},{"name":4,"description":6,"metadata":54,"requires":57,"sources":59},{"type":32,"library":55,"library_version":56,"framework":14},"tanstack-start","1.166.2",[58],"start-core",[60],"TanStack\u002Frouter:packages\u002Fvue-start\u002Fsrc",{"type":62,"children":63},"root",[64,82,96,101,124,143,155,162,180,196,251,306,312,319,400,406,623,629,917,923,1213,1219,1430,1436,2048,2054,2497,2503,2515,3123,3151,3157,3169,3327,3333,3360,3522,3528,3534,3693,3699,3725,3890,3896,3916,3922,4026,4032,4064,4394,4400,4434],{"type":65,"tag":66,"props":67,"children":69},"element","h1",{"id":68},"vue-start-tanstackvue-start",[70,73,80],{"type":71,"value":72},"text","Vue Start (",{"type":65,"tag":74,"props":75,"children":77},"code",{"className":76},[],[78],{"type":71,"value":79},"@tanstack\u002Fvue-start",{"type":71,"value":81},")",{"type":65,"tag":83,"props":84,"children":85},"p",{},[86,88,94],{"type":71,"value":87},"This skill builds on start-core. Read ",{"type":65,"tag":89,"props":90,"children":92},"a",{"href":91},"..\u002F..\u002F..\u002Fstart-client-core\u002Fskills\u002Fstart-core\u002FSKILL.md",[93],{"type":71,"value":58},{"type":71,"value":95}," first for foundational concepts.",{"type":65,"tag":83,"props":97,"children":98},{},[99],{"type":71,"value":100},"This skill covers the Vue-specific bindings, setup, and patterns for TanStack Start.",{"type":65,"tag":102,"props":103,"children":104},"blockquote",{},[105],{"type":65,"tag":83,"props":106,"children":107},{},[108,114,116,122],{"type":65,"tag":109,"props":110,"children":111},"strong",{},[112],{"type":71,"value":113},"CRITICAL",{"type":71,"value":115},": All code is ISOMORPHIC by default. Loaders run on BOTH server and client. Use ",{"type":65,"tag":74,"props":117,"children":119},{"className":118},[],[120],{"type":71,"value":121},"createServerFn",{"type":71,"value":123}," for server-only logic.",{"type":65,"tag":102,"props":125,"children":126},{},[127],{"type":65,"tag":83,"props":128,"children":129},{},[130,134,136,141],{"type":65,"tag":109,"props":131,"children":132},{},[133],{"type":71,"value":113},{"type":71,"value":135},": Do not confuse ",{"type":65,"tag":74,"props":137,"children":139},{"className":138},[],[140],{"type":71,"value":79},{"type":71,"value":142}," with Nuxt. They are completely different frameworks with different APIs.",{"type":65,"tag":102,"props":144,"children":145},{},[146],{"type":65,"tag":83,"props":147,"children":148},{},[149,153],{"type":65,"tag":109,"props":150,"children":151},{},[152],{"type":71,"value":113},{"type":71,"value":154},": Types are FULLY INFERRED. Never cast, never annotate inferred values.",{"type":65,"tag":156,"props":157,"children":159},"h2",{"id":158},"package-api-surface",[160],{"type":71,"value":161},"Package API Surface",{"type":65,"tag":83,"props":163,"children":164},{},[165,170,172,178],{"type":65,"tag":74,"props":166,"children":168},{"className":167},[],[169],{"type":71,"value":79},{"type":71,"value":171}," re-exports everything from ",{"type":65,"tag":74,"props":173,"children":175},{"className":174},[],[176],{"type":71,"value":177},"@tanstack\u002Fstart-client-core",{"type":71,"value":179}," plus:",{"type":65,"tag":181,"props":182,"children":183},"ul",{},[184],{"type":65,"tag":185,"props":186,"children":187},"li",{},[188,194],{"type":65,"tag":74,"props":189,"children":191},{"className":190},[],[192],{"type":71,"value":193},"useServerFn",{"type":71,"value":195}," — Vue composable for calling server functions from components",{"type":65,"tag":83,"props":197,"children":198},{},[199,201,206,208,214,215,221,222,228,229,235,236,242,244,249],{"type":71,"value":200},"All core APIs (",{"type":65,"tag":74,"props":202,"children":204},{"className":203},[],[205],{"type":71,"value":121},{"type":71,"value":207},", ",{"type":65,"tag":74,"props":209,"children":211},{"className":210},[],[212],{"type":71,"value":213},"createMiddleware",{"type":71,"value":207},{"type":65,"tag":74,"props":216,"children":218},{"className":217},[],[219],{"type":71,"value":220},"createStart",{"type":71,"value":207},{"type":65,"tag":74,"props":223,"children":225},{"className":224},[],[226],{"type":71,"value":227},"createIsomorphicFn",{"type":71,"value":207},{"type":65,"tag":74,"props":230,"children":232},{"className":231},[],[233],{"type":71,"value":234},"createServerOnlyFn",{"type":71,"value":207},{"type":65,"tag":74,"props":237,"children":239},{"className":238},[],[240],{"type":71,"value":241},"createClientOnlyFn",{"type":71,"value":243},") are available from ",{"type":65,"tag":74,"props":245,"children":247},{"className":246},[],[248],{"type":71,"value":79},{"type":71,"value":250},".",{"type":65,"tag":83,"props":252,"children":253},{},[254,256,262,263,269,270,276,277,283,284,290,291,297,299,305],{"type":71,"value":255},"Server utilities (",{"type":65,"tag":74,"props":257,"children":259},{"className":258},[],[260],{"type":71,"value":261},"getRequest",{"type":71,"value":207},{"type":65,"tag":74,"props":264,"children":266},{"className":265},[],[267],{"type":71,"value":268},"getRequestHeader",{"type":71,"value":207},{"type":65,"tag":74,"props":271,"children":273},{"className":272},[],[274],{"type":71,"value":275},"setResponseHeader",{"type":71,"value":207},{"type":65,"tag":74,"props":278,"children":280},{"className":279},[],[281],{"type":71,"value":282},"setCookie",{"type":71,"value":207},{"type":65,"tag":74,"props":285,"children":287},{"className":286},[],[288],{"type":71,"value":289},"getCookie",{"type":71,"value":207},{"type":65,"tag":74,"props":292,"children":294},{"className":293},[],[295],{"type":71,"value":296},"useSession",{"type":71,"value":298},") are imported from ",{"type":65,"tag":74,"props":300,"children":302},{"className":301},[],[303],{"type":71,"value":304},"@tanstack\u002Fvue-start\u002Fserver",{"type":71,"value":250},{"type":65,"tag":156,"props":307,"children":309},{"id":308},"full-project-setup",[310],{"type":71,"value":311},"Full Project Setup",{"type":65,"tag":313,"props":314,"children":316},"h3",{"id":315},"_1-install-dependencies",[317],{"type":71,"value":318},"1. Install Dependencies",{"type":65,"tag":320,"props":321,"children":326},"pre",{"className":322,"code":323,"language":324,"meta":325,"style":325},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm i @tanstack\u002Fvue-start @tanstack\u002Fvue-router vue\nnpm i -D vite @vitejs\u002Fplugin-vue @vitejs\u002Fplugin-vue-jsx typescript\n","bash","",[327],{"type":65,"tag":74,"props":328,"children":329},{"__ignoreMap":325},[330,363],{"type":65,"tag":331,"props":332,"children":335},"span",{"class":333,"line":334},"line",1,[336,342,348,353,358],{"type":65,"tag":331,"props":337,"children":339},{"style":338},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[340],{"type":71,"value":341},"npm",{"type":65,"tag":331,"props":343,"children":345},{"style":344},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[346],{"type":71,"value":347}," i",{"type":65,"tag":331,"props":349,"children":350},{"style":344},[351],{"type":71,"value":352}," @tanstack\u002Fvue-start",{"type":65,"tag":331,"props":354,"children":355},{"style":344},[356],{"type":71,"value":357}," @tanstack\u002Fvue-router",{"type":65,"tag":331,"props":359,"children":360},{"style":344},[361],{"type":71,"value":362}," vue\n",{"type":65,"tag":331,"props":364,"children":366},{"class":333,"line":365},2,[367,371,375,380,385,390,395],{"type":65,"tag":331,"props":368,"children":369},{"style":338},[370],{"type":71,"value":341},{"type":65,"tag":331,"props":372,"children":373},{"style":344},[374],{"type":71,"value":347},{"type":65,"tag":331,"props":376,"children":377},{"style":344},[378],{"type":71,"value":379}," -D",{"type":65,"tag":331,"props":381,"children":382},{"style":344},[383],{"type":71,"value":384}," vite",{"type":65,"tag":331,"props":386,"children":387},{"style":344},[388],{"type":71,"value":389}," @vitejs\u002Fplugin-vue",{"type":65,"tag":331,"props":391,"children":392},{"style":344},[393],{"type":71,"value":394}," @vitejs\u002Fplugin-vue-jsx",{"type":65,"tag":331,"props":396,"children":397},{"style":344},[398],{"type":71,"value":399}," typescript\n",{"type":65,"tag":313,"props":401,"children":403},{"id":402},"_2-packagejson",[404],{"type":71,"value":405},"2. package.json",{"type":65,"tag":320,"props":407,"children":411},{"className":408,"code":409,"language":410,"meta":325,"style":325},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite dev\",\n    \"build\": \"vite build\",\n    \"start\": \"node .output\u002Fserver\u002Findex.mjs\"\n  }\n}\n","json",[412],{"type":65,"tag":74,"props":413,"children":414},{"__ignoreMap":325},[415,424,467,493,532,570,605,614],{"type":65,"tag":331,"props":416,"children":417},{"class":333,"line":334},[418],{"type":65,"tag":331,"props":419,"children":421},{"style":420},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[422],{"type":71,"value":423},"{\n",{"type":65,"tag":331,"props":425,"children":426},{"class":333,"line":365},[427,432,438,443,448,453,458,462],{"type":65,"tag":331,"props":428,"children":429},{"style":420},[430],{"type":71,"value":431},"  \"",{"type":65,"tag":331,"props":433,"children":435},{"style":434},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[436],{"type":71,"value":437},"type",{"type":65,"tag":331,"props":439,"children":440},{"style":420},[441],{"type":71,"value":442},"\"",{"type":65,"tag":331,"props":444,"children":445},{"style":420},[446],{"type":71,"value":447},":",{"type":65,"tag":331,"props":449,"children":450},{"style":420},[451],{"type":71,"value":452}," \"",{"type":65,"tag":331,"props":454,"children":455},{"style":344},[456],{"type":71,"value":457},"module",{"type":65,"tag":331,"props":459,"children":460},{"style":420},[461],{"type":71,"value":442},{"type":65,"tag":331,"props":463,"children":464},{"style":420},[465],{"type":71,"value":466},",\n",{"type":65,"tag":331,"props":468,"children":470},{"class":333,"line":469},3,[471,475,480,484,488],{"type":65,"tag":331,"props":472,"children":473},{"style":420},[474],{"type":71,"value":431},{"type":65,"tag":331,"props":476,"children":477},{"style":434},[478],{"type":71,"value":479},"scripts",{"type":65,"tag":331,"props":481,"children":482},{"style":420},[483],{"type":71,"value":442},{"type":65,"tag":331,"props":485,"children":486},{"style":420},[487],{"type":71,"value":447},{"type":65,"tag":331,"props":489,"children":490},{"style":420},[491],{"type":71,"value":492}," {\n",{"type":65,"tag":331,"props":494,"children":496},{"class":333,"line":495},4,[497,502,507,511,515,519,524,528],{"type":65,"tag":331,"props":498,"children":499},{"style":420},[500],{"type":71,"value":501},"    \"",{"type":65,"tag":331,"props":503,"children":504},{"style":338},[505],{"type":71,"value":506},"dev",{"type":65,"tag":331,"props":508,"children":509},{"style":420},[510],{"type":71,"value":442},{"type":65,"tag":331,"props":512,"children":513},{"style":420},[514],{"type":71,"value":447},{"type":65,"tag":331,"props":516,"children":517},{"style":420},[518],{"type":71,"value":452},{"type":65,"tag":331,"props":520,"children":521},{"style":344},[522],{"type":71,"value":523},"vite dev",{"type":65,"tag":331,"props":525,"children":526},{"style":420},[527],{"type":71,"value":442},{"type":65,"tag":331,"props":529,"children":530},{"style":420},[531],{"type":71,"value":466},{"type":65,"tag":331,"props":533,"children":535},{"class":333,"line":534},5,[536,540,545,549,553,557,562,566],{"type":65,"tag":331,"props":537,"children":538},{"style":420},[539],{"type":71,"value":501},{"type":65,"tag":331,"props":541,"children":542},{"style":338},[543],{"type":71,"value":544},"build",{"type":65,"tag":331,"props":546,"children":547},{"style":420},[548],{"type":71,"value":442},{"type":65,"tag":331,"props":550,"children":551},{"style":420},[552],{"type":71,"value":447},{"type":65,"tag":331,"props":554,"children":555},{"style":420},[556],{"type":71,"value":452},{"type":65,"tag":331,"props":558,"children":559},{"style":344},[560],{"type":71,"value":561},"vite build",{"type":65,"tag":331,"props":563,"children":564},{"style":420},[565],{"type":71,"value":442},{"type":65,"tag":331,"props":567,"children":568},{"style":420},[569],{"type":71,"value":466},{"type":65,"tag":331,"props":571,"children":573},{"class":333,"line":572},6,[574,578,583,587,591,595,600],{"type":65,"tag":331,"props":575,"children":576},{"style":420},[577],{"type":71,"value":501},{"type":65,"tag":331,"props":579,"children":580},{"style":338},[581],{"type":71,"value":582},"start",{"type":65,"tag":331,"props":584,"children":585},{"style":420},[586],{"type":71,"value":442},{"type":65,"tag":331,"props":588,"children":589},{"style":420},[590],{"type":71,"value":447},{"type":65,"tag":331,"props":592,"children":593},{"style":420},[594],{"type":71,"value":452},{"type":65,"tag":331,"props":596,"children":597},{"style":344},[598],{"type":71,"value":599},"node .output\u002Fserver\u002Findex.mjs",{"type":65,"tag":331,"props":601,"children":602},{"style":420},[603],{"type":71,"value":604},"\"\n",{"type":65,"tag":331,"props":606,"children":608},{"class":333,"line":607},7,[609],{"type":65,"tag":331,"props":610,"children":611},{"style":420},[612],{"type":71,"value":613},"  }\n",{"type":65,"tag":331,"props":615,"children":617},{"class":333,"line":616},8,[618],{"type":65,"tag":331,"props":619,"children":620},{"style":420},[621],{"type":71,"value":622},"}\n",{"type":65,"tag":313,"props":624,"children":626},{"id":625},"_3-tsconfigjson",[627],{"type":71,"value":628},"3. tsconfig.json",{"type":65,"tag":320,"props":630,"children":632},{"className":408,"code":631,"language":410,"meta":325,"style":325},"{\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"jsxImportSource\": \"vue\",\n    \"moduleResolution\": \"Bundler\",\n    \"module\": \"ESNext\",\n    \"target\": \"ES2022\",\n    \"skipLibCheck\": true,\n    \"strictNullChecks\": true\n  }\n}\n",[633],{"type":65,"tag":74,"props":634,"children":635},{"__ignoreMap":325},[636,643,667,704,740,777,813,850,875,901,909],{"type":65,"tag":331,"props":637,"children":638},{"class":333,"line":334},[639],{"type":65,"tag":331,"props":640,"children":641},{"style":420},[642],{"type":71,"value":423},{"type":65,"tag":331,"props":644,"children":645},{"class":333,"line":365},[646,650,655,659,663],{"type":65,"tag":331,"props":647,"children":648},{"style":420},[649],{"type":71,"value":431},{"type":65,"tag":331,"props":651,"children":652},{"style":434},[653],{"type":71,"value":654},"compilerOptions",{"type":65,"tag":331,"props":656,"children":657},{"style":420},[658],{"type":71,"value":442},{"type":65,"tag":331,"props":660,"children":661},{"style":420},[662],{"type":71,"value":447},{"type":65,"tag":331,"props":664,"children":665},{"style":420},[666],{"type":71,"value":492},{"type":65,"tag":331,"props":668,"children":669},{"class":333,"line":469},[670,674,679,683,687,691,696,700],{"type":65,"tag":331,"props":671,"children":672},{"style":420},[673],{"type":71,"value":501},{"type":65,"tag":331,"props":675,"children":676},{"style":338},[677],{"type":71,"value":678},"jsx",{"type":65,"tag":331,"props":680,"children":681},{"style":420},[682],{"type":71,"value":442},{"type":65,"tag":331,"props":684,"children":685},{"style":420},[686],{"type":71,"value":447},{"type":65,"tag":331,"props":688,"children":689},{"style":420},[690],{"type":71,"value":452},{"type":65,"tag":331,"props":692,"children":693},{"style":344},[694],{"type":71,"value":695},"preserve",{"type":65,"tag":331,"props":697,"children":698},{"style":420},[699],{"type":71,"value":442},{"type":65,"tag":331,"props":701,"children":702},{"style":420},[703],{"type":71,"value":466},{"type":65,"tag":331,"props":705,"children":706},{"class":333,"line":495},[707,711,716,720,724,728,732,736],{"type":65,"tag":331,"props":708,"children":709},{"style":420},[710],{"type":71,"value":501},{"type":65,"tag":331,"props":712,"children":713},{"style":338},[714],{"type":71,"value":715},"jsxImportSource",{"type":65,"tag":331,"props":717,"children":718},{"style":420},[719],{"type":71,"value":442},{"type":65,"tag":331,"props":721,"children":722},{"style":420},[723],{"type":71,"value":447},{"type":65,"tag":331,"props":725,"children":726},{"style":420},[727],{"type":71,"value":452},{"type":65,"tag":331,"props":729,"children":730},{"style":344},[731],{"type":71,"value":14},{"type":65,"tag":331,"props":733,"children":734},{"style":420},[735],{"type":71,"value":442},{"type":65,"tag":331,"props":737,"children":738},{"style":420},[739],{"type":71,"value":466},{"type":65,"tag":331,"props":741,"children":742},{"class":333,"line":534},[743,747,752,756,760,764,769,773],{"type":65,"tag":331,"props":744,"children":745},{"style":420},[746],{"type":71,"value":501},{"type":65,"tag":331,"props":748,"children":749},{"style":338},[750],{"type":71,"value":751},"moduleResolution",{"type":65,"tag":331,"props":753,"children":754},{"style":420},[755],{"type":71,"value":442},{"type":65,"tag":331,"props":757,"children":758},{"style":420},[759],{"type":71,"value":447},{"type":65,"tag":331,"props":761,"children":762},{"style":420},[763],{"type":71,"value":452},{"type":65,"tag":331,"props":765,"children":766},{"style":344},[767],{"type":71,"value":768},"Bundler",{"type":65,"tag":331,"props":770,"children":771},{"style":420},[772],{"type":71,"value":442},{"type":65,"tag":331,"props":774,"children":775},{"style":420},[776],{"type":71,"value":466},{"type":65,"tag":331,"props":778,"children":779},{"class":333,"line":572},[780,784,788,792,796,800,805,809],{"type":65,"tag":331,"props":781,"children":782},{"style":420},[783],{"type":71,"value":501},{"type":65,"tag":331,"props":785,"children":786},{"style":338},[787],{"type":71,"value":457},{"type":65,"tag":331,"props":789,"children":790},{"style":420},[791],{"type":71,"value":442},{"type":65,"tag":331,"props":793,"children":794},{"style":420},[795],{"type":71,"value":447},{"type":65,"tag":331,"props":797,"children":798},{"style":420},[799],{"type":71,"value":452},{"type":65,"tag":331,"props":801,"children":802},{"style":344},[803],{"type":71,"value":804},"ESNext",{"type":65,"tag":331,"props":806,"children":807},{"style":420},[808],{"type":71,"value":442},{"type":65,"tag":331,"props":810,"children":811},{"style":420},[812],{"type":71,"value":466},{"type":65,"tag":331,"props":814,"children":815},{"class":333,"line":607},[816,820,825,829,833,837,842,846],{"type":65,"tag":331,"props":817,"children":818},{"style":420},[819],{"type":71,"value":501},{"type":65,"tag":331,"props":821,"children":822},{"style":338},[823],{"type":71,"value":824},"target",{"type":65,"tag":331,"props":826,"children":827},{"style":420},[828],{"type":71,"value":442},{"type":65,"tag":331,"props":830,"children":831},{"style":420},[832],{"type":71,"value":447},{"type":65,"tag":331,"props":834,"children":835},{"style":420},[836],{"type":71,"value":452},{"type":65,"tag":331,"props":838,"children":839},{"style":344},[840],{"type":71,"value":841},"ES2022",{"type":65,"tag":331,"props":843,"children":844},{"style":420},[845],{"type":71,"value":442},{"type":65,"tag":331,"props":847,"children":848},{"style":420},[849],{"type":71,"value":466},{"type":65,"tag":331,"props":851,"children":852},{"class":333,"line":616},[853,857,862,866,870],{"type":65,"tag":331,"props":854,"children":855},{"style":420},[856],{"type":71,"value":501},{"type":65,"tag":331,"props":858,"children":859},{"style":338},[860],{"type":71,"value":861},"skipLibCheck",{"type":65,"tag":331,"props":863,"children":864},{"style":420},[865],{"type":71,"value":442},{"type":65,"tag":331,"props":867,"children":868},{"style":420},[869],{"type":71,"value":447},{"type":65,"tag":331,"props":871,"children":872},{"style":420},[873],{"type":71,"value":874}," true,\n",{"type":65,"tag":331,"props":876,"children":878},{"class":333,"line":877},9,[879,883,888,892,896],{"type":65,"tag":331,"props":880,"children":881},{"style":420},[882],{"type":71,"value":501},{"type":65,"tag":331,"props":884,"children":885},{"style":338},[886],{"type":71,"value":887},"strictNullChecks",{"type":65,"tag":331,"props":889,"children":890},{"style":420},[891],{"type":71,"value":442},{"type":65,"tag":331,"props":893,"children":894},{"style":420},[895],{"type":71,"value":447},{"type":65,"tag":331,"props":897,"children":898},{"style":420},[899],{"type":71,"value":900}," true\n",{"type":65,"tag":331,"props":902,"children":904},{"class":333,"line":903},10,[905],{"type":65,"tag":331,"props":906,"children":907},{"style":420},[908],{"type":71,"value":613},{"type":65,"tag":331,"props":910,"children":912},{"class":333,"line":911},11,[913],{"type":65,"tag":331,"props":914,"children":915},{"style":420},[916],{"type":71,"value":622},{"type":65,"tag":313,"props":918,"children":920},{"id":919},"_4-viteconfigts",[921],{"type":71,"value":922},"4. vite.config.ts",{"type":65,"tag":320,"props":924,"children":928},{"className":925,"code":926,"language":927,"meta":325,"style":325},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineConfig } from 'vite'\nimport { tanstackStart } from '@tanstack\u002Fvue-start\u002Fplugin\u002Fvite'\nimport vuePlugin from '@vitejs\u002Fplugin-vue'\nimport vueJsx from '@vitejs\u002Fplugin-vue-jsx'\n\nexport default defineConfig({\n  plugins: [\n    tanstackStart(), \u002F\u002F MUST come before vue plugin\n    vuePlugin(),\n    vueJsx(), \u002F\u002F Required for JSX\u002FTSX route files\n  ],\n})\n","ts",[929],{"type":65,"tag":74,"props":930,"children":931},{"__ignoreMap":325},[932,976,1013,1043,1072,1081,1108,1126,1150,1166,1187,1199],{"type":65,"tag":331,"props":933,"children":934},{"class":333,"line":334},[935,941,946,952,957,962,967,971],{"type":65,"tag":331,"props":936,"children":938},{"style":937},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[939],{"type":71,"value":940},"import",{"type":65,"tag":331,"props":942,"children":943},{"style":420},[944],{"type":71,"value":945}," {",{"type":65,"tag":331,"props":947,"children":949},{"style":948},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[950],{"type":71,"value":951}," defineConfig",{"type":65,"tag":331,"props":953,"children":954},{"style":420},[955],{"type":71,"value":956}," }",{"type":65,"tag":331,"props":958,"children":959},{"style":937},[960],{"type":71,"value":961}," from",{"type":65,"tag":331,"props":963,"children":964},{"style":420},[965],{"type":71,"value":966}," '",{"type":65,"tag":331,"props":968,"children":969},{"style":344},[970],{"type":71,"value":18},{"type":65,"tag":331,"props":972,"children":973},{"style":420},[974],{"type":71,"value":975},"'\n",{"type":65,"tag":331,"props":977,"children":978},{"class":333,"line":365},[979,983,987,992,996,1000,1004,1009],{"type":65,"tag":331,"props":980,"children":981},{"style":937},[982],{"type":71,"value":940},{"type":65,"tag":331,"props":984,"children":985},{"style":420},[986],{"type":71,"value":945},{"type":65,"tag":331,"props":988,"children":989},{"style":948},[990],{"type":71,"value":991}," tanstackStart",{"type":65,"tag":331,"props":993,"children":994},{"style":420},[995],{"type":71,"value":956},{"type":65,"tag":331,"props":997,"children":998},{"style":937},[999],{"type":71,"value":961},{"type":65,"tag":331,"props":1001,"children":1002},{"style":420},[1003],{"type":71,"value":966},{"type":65,"tag":331,"props":1005,"children":1006},{"style":344},[1007],{"type":71,"value":1008},"@tanstack\u002Fvue-start\u002Fplugin\u002Fvite",{"type":65,"tag":331,"props":1010,"children":1011},{"style":420},[1012],{"type":71,"value":975},{"type":65,"tag":331,"props":1014,"children":1015},{"class":333,"line":469},[1016,1020,1025,1030,1034,1039],{"type":65,"tag":331,"props":1017,"children":1018},{"style":937},[1019],{"type":71,"value":940},{"type":65,"tag":331,"props":1021,"children":1022},{"style":948},[1023],{"type":71,"value":1024}," vuePlugin ",{"type":65,"tag":331,"props":1026,"children":1027},{"style":937},[1028],{"type":71,"value":1029},"from",{"type":65,"tag":331,"props":1031,"children":1032},{"style":420},[1033],{"type":71,"value":966},{"type":65,"tag":331,"props":1035,"children":1036},{"style":344},[1037],{"type":71,"value":1038},"@vitejs\u002Fplugin-vue",{"type":65,"tag":331,"props":1040,"children":1041},{"style":420},[1042],{"type":71,"value":975},{"type":65,"tag":331,"props":1044,"children":1045},{"class":333,"line":495},[1046,1050,1055,1059,1063,1068],{"type":65,"tag":331,"props":1047,"children":1048},{"style":937},[1049],{"type":71,"value":940},{"type":65,"tag":331,"props":1051,"children":1052},{"style":948},[1053],{"type":71,"value":1054}," vueJsx ",{"type":65,"tag":331,"props":1056,"children":1057},{"style":937},[1058],{"type":71,"value":1029},{"type":65,"tag":331,"props":1060,"children":1061},{"style":420},[1062],{"type":71,"value":966},{"type":65,"tag":331,"props":1064,"children":1065},{"style":344},[1066],{"type":71,"value":1067},"@vitejs\u002Fplugin-vue-jsx",{"type":65,"tag":331,"props":1069,"children":1070},{"style":420},[1071],{"type":71,"value":975},{"type":65,"tag":331,"props":1073,"children":1074},{"class":333,"line":534},[1075],{"type":65,"tag":331,"props":1076,"children":1078},{"emptyLinePlaceholder":1077},true,[1079],{"type":71,"value":1080},"\n",{"type":65,"tag":331,"props":1082,"children":1083},{"class":333,"line":572},[1084,1089,1094,1099,1104],{"type":65,"tag":331,"props":1085,"children":1086},{"style":937},[1087],{"type":71,"value":1088},"export",{"type":65,"tag":331,"props":1090,"children":1091},{"style":937},[1092],{"type":71,"value":1093}," default",{"type":65,"tag":331,"props":1095,"children":1097},{"style":1096},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1098],{"type":71,"value":951},{"type":65,"tag":331,"props":1100,"children":1101},{"style":948},[1102],{"type":71,"value":1103},"(",{"type":65,"tag":331,"props":1105,"children":1106},{"style":420},[1107],{"type":71,"value":423},{"type":65,"tag":331,"props":1109,"children":1110},{"class":333,"line":607},[1111,1117,1121],{"type":65,"tag":331,"props":1112,"children":1114},{"style":1113},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1115],{"type":71,"value":1116},"  plugins",{"type":65,"tag":331,"props":1118,"children":1119},{"style":420},[1120],{"type":71,"value":447},{"type":65,"tag":331,"props":1122,"children":1123},{"style":948},[1124],{"type":71,"value":1125}," [\n",{"type":65,"tag":331,"props":1127,"children":1128},{"class":333,"line":616},[1129,1134,1139,1144],{"type":65,"tag":331,"props":1130,"children":1131},{"style":1096},[1132],{"type":71,"value":1133},"    tanstackStart",{"type":65,"tag":331,"props":1135,"children":1136},{"style":948},[1137],{"type":71,"value":1138},"()",{"type":65,"tag":331,"props":1140,"children":1141},{"style":420},[1142],{"type":71,"value":1143},",",{"type":65,"tag":331,"props":1145,"children":1147},{"style":1146},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1148],{"type":71,"value":1149}," \u002F\u002F MUST come before vue plugin\n",{"type":65,"tag":331,"props":1151,"children":1152},{"class":333,"line":877},[1153,1158,1162],{"type":65,"tag":331,"props":1154,"children":1155},{"style":1096},[1156],{"type":71,"value":1157},"    vuePlugin",{"type":65,"tag":331,"props":1159,"children":1160},{"style":948},[1161],{"type":71,"value":1138},{"type":65,"tag":331,"props":1163,"children":1164},{"style":420},[1165],{"type":71,"value":466},{"type":65,"tag":331,"props":1167,"children":1168},{"class":333,"line":903},[1169,1174,1178,1182],{"type":65,"tag":331,"props":1170,"children":1171},{"style":1096},[1172],{"type":71,"value":1173},"    vueJsx",{"type":65,"tag":331,"props":1175,"children":1176},{"style":948},[1177],{"type":71,"value":1138},{"type":65,"tag":331,"props":1179,"children":1180},{"style":420},[1181],{"type":71,"value":1143},{"type":65,"tag":331,"props":1183,"children":1184},{"style":1146},[1185],{"type":71,"value":1186}," \u002F\u002F Required for JSX\u002FTSX route files\n",{"type":65,"tag":331,"props":1188,"children":1189},{"class":333,"line":911},[1190,1195],{"type":65,"tag":331,"props":1191,"children":1192},{"style":948},[1193],{"type":71,"value":1194},"  ]",{"type":65,"tag":331,"props":1196,"children":1197},{"style":420},[1198],{"type":71,"value":466},{"type":65,"tag":331,"props":1200,"children":1202},{"class":333,"line":1201},12,[1203,1208],{"type":65,"tag":331,"props":1204,"children":1205},{"style":420},[1206],{"type":71,"value":1207},"}",{"type":65,"tag":331,"props":1209,"children":1210},{"style":948},[1211],{"type":71,"value":1212},")\n",{"type":65,"tag":313,"props":1214,"children":1216},{"id":1215},"_5-router-factory-srcroutertsx",[1217],{"type":71,"value":1218},"5. Router Factory (src\u002Frouter.tsx)",{"type":65,"tag":320,"props":1220,"children":1224},{"className":1221,"code":1222,"language":1223,"meta":325,"style":325},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createRouter } from '@tanstack\u002Fvue-router'\nimport { routeTree } from '.\u002FrouteTree.gen'\n\nexport function getRouter() {\n  const router = createRouter({\n    routeTree,\n    scrollRestoration: true,\n  })\n  return router\n}\n","tsx",[1225],{"type":65,"tag":74,"props":1226,"children":1227},{"__ignoreMap":325},[1228,1265,1302,1309,1334,1364,1376,1398,1410,1423],{"type":65,"tag":331,"props":1229,"children":1230},{"class":333,"line":334},[1231,1235,1239,1244,1248,1252,1256,1261],{"type":65,"tag":331,"props":1232,"children":1233},{"style":937},[1234],{"type":71,"value":940},{"type":65,"tag":331,"props":1236,"children":1237},{"style":420},[1238],{"type":71,"value":945},{"type":65,"tag":331,"props":1240,"children":1241},{"style":948},[1242],{"type":71,"value":1243}," createRouter",{"type":65,"tag":331,"props":1245,"children":1246},{"style":420},[1247],{"type":71,"value":956},{"type":65,"tag":331,"props":1249,"children":1250},{"style":937},[1251],{"type":71,"value":961},{"type":65,"tag":331,"props":1253,"children":1254},{"style":420},[1255],{"type":71,"value":966},{"type":65,"tag":331,"props":1257,"children":1258},{"style":344},[1259],{"type":71,"value":1260},"@tanstack\u002Fvue-router",{"type":65,"tag":331,"props":1262,"children":1263},{"style":420},[1264],{"type":71,"value":975},{"type":65,"tag":331,"props":1266,"children":1267},{"class":333,"line":365},[1268,1272,1276,1281,1285,1289,1293,1298],{"type":65,"tag":331,"props":1269,"children":1270},{"style":937},[1271],{"type":71,"value":940},{"type":65,"tag":331,"props":1273,"children":1274},{"style":420},[1275],{"type":71,"value":945},{"type":65,"tag":331,"props":1277,"children":1278},{"style":948},[1279],{"type":71,"value":1280}," routeTree",{"type":65,"tag":331,"props":1282,"children":1283},{"style":420},[1284],{"type":71,"value":956},{"type":65,"tag":331,"props":1286,"children":1287},{"style":937},[1288],{"type":71,"value":961},{"type":65,"tag":331,"props":1290,"children":1291},{"style":420},[1292],{"type":71,"value":966},{"type":65,"tag":331,"props":1294,"children":1295},{"style":344},[1296],{"type":71,"value":1297},".\u002FrouteTree.gen",{"type":65,"tag":331,"props":1299,"children":1300},{"style":420},[1301],{"type":71,"value":975},{"type":65,"tag":331,"props":1303,"children":1304},{"class":333,"line":469},[1305],{"type":65,"tag":331,"props":1306,"children":1307},{"emptyLinePlaceholder":1077},[1308],{"type":71,"value":1080},{"type":65,"tag":331,"props":1310,"children":1311},{"class":333,"line":495},[1312,1316,1321,1326,1330],{"type":65,"tag":331,"props":1313,"children":1314},{"style":937},[1315],{"type":71,"value":1088},{"type":65,"tag":331,"props":1317,"children":1318},{"style":434},[1319],{"type":71,"value":1320}," function",{"type":65,"tag":331,"props":1322,"children":1323},{"style":1096},[1324],{"type":71,"value":1325}," getRouter",{"type":65,"tag":331,"props":1327,"children":1328},{"style":420},[1329],{"type":71,"value":1138},{"type":65,"tag":331,"props":1331,"children":1332},{"style":420},[1333],{"type":71,"value":492},{"type":65,"tag":331,"props":1335,"children":1336},{"class":333,"line":534},[1337,1342,1347,1352,1356,1360],{"type":65,"tag":331,"props":1338,"children":1339},{"style":434},[1340],{"type":71,"value":1341},"  const",{"type":65,"tag":331,"props":1343,"children":1344},{"style":948},[1345],{"type":71,"value":1346}," router",{"type":65,"tag":331,"props":1348,"children":1349},{"style":420},[1350],{"type":71,"value":1351}," =",{"type":65,"tag":331,"props":1353,"children":1354},{"style":1096},[1355],{"type":71,"value":1243},{"type":65,"tag":331,"props":1357,"children":1358},{"style":1113},[1359],{"type":71,"value":1103},{"type":65,"tag":331,"props":1361,"children":1362},{"style":420},[1363],{"type":71,"value":423},{"type":65,"tag":331,"props":1365,"children":1366},{"class":333,"line":572},[1367,1372],{"type":65,"tag":331,"props":1368,"children":1369},{"style":948},[1370],{"type":71,"value":1371},"    routeTree",{"type":65,"tag":331,"props":1373,"children":1374},{"style":420},[1375],{"type":71,"value":466},{"type":65,"tag":331,"props":1377,"children":1378},{"class":333,"line":607},[1379,1384,1388,1394],{"type":65,"tag":331,"props":1380,"children":1381},{"style":1113},[1382],{"type":71,"value":1383},"    scrollRestoration",{"type":65,"tag":331,"props":1385,"children":1386},{"style":420},[1387],{"type":71,"value":447},{"type":65,"tag":331,"props":1389,"children":1391},{"style":1390},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1392],{"type":71,"value":1393}," true",{"type":65,"tag":331,"props":1395,"children":1396},{"style":420},[1397],{"type":71,"value":466},{"type":65,"tag":331,"props":1399,"children":1400},{"class":333,"line":616},[1401,1406],{"type":65,"tag":331,"props":1402,"children":1403},{"style":420},[1404],{"type":71,"value":1405},"  }",{"type":65,"tag":331,"props":1407,"children":1408},{"style":1113},[1409],{"type":71,"value":1212},{"type":65,"tag":331,"props":1411,"children":1412},{"class":333,"line":877},[1413,1418],{"type":65,"tag":331,"props":1414,"children":1415},{"style":937},[1416],{"type":71,"value":1417},"  return",{"type":65,"tag":331,"props":1419,"children":1420},{"style":948},[1421],{"type":71,"value":1422}," router\n",{"type":65,"tag":331,"props":1424,"children":1425},{"class":333,"line":903},[1426],{"type":65,"tag":331,"props":1427,"children":1428},{"style":420},[1429],{"type":71,"value":622},{"type":65,"tag":313,"props":1431,"children":1433},{"id":1432},"_6-root-route-srcroutes__roottsx",[1434],{"type":71,"value":1435},"6. Root Route (src\u002Froutes\u002F__root.tsx)",{"type":65,"tag":320,"props":1437,"children":1439},{"className":1221,"code":1438,"language":1223,"meta":325,"style":325},"import {\n  Outlet,\n  createRootRoute,\n  HeadContent,\n  Scripts,\n  Html,\n  Body,\n} from '@tanstack\u002Fvue-router'\n\nexport const Route = createRootRoute({\n  head: () => ({\n    meta: [\n      { charSet: 'utf-8' },\n      { name: 'viewport', content: 'width=device-width, initial-scale=1' },\n      { title: 'My TanStack Start App' },\n    ],\n  }),\n  component: RootComponent,\n})\n\nfunction RootComponent() {\n  return (\n    \u003CHtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003CBody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002FBody>\n    \u003C\u002FHtml>\n  )\n}\n",[1440],{"type":65,"tag":74,"props":1441,"children":1442},{"__ignoreMap":325},[1443,1454,1466,1478,1490,1502,1514,1526,1549,1556,1591,1622,1638,1675,1735,1769,1782,1798,1820,1832,1840,1861,1874,1893,1911,1930,1947,1964,1981,1998,2014,2031,2040],{"type":65,"tag":331,"props":1444,"children":1445},{"class":333,"line":334},[1446,1450],{"type":65,"tag":331,"props":1447,"children":1448},{"style":937},[1449],{"type":71,"value":940},{"type":65,"tag":331,"props":1451,"children":1452},{"style":420},[1453],{"type":71,"value":492},{"type":65,"tag":331,"props":1455,"children":1456},{"class":333,"line":365},[1457,1462],{"type":65,"tag":331,"props":1458,"children":1459},{"style":948},[1460],{"type":71,"value":1461},"  Outlet",{"type":65,"tag":331,"props":1463,"children":1464},{"style":420},[1465],{"type":71,"value":466},{"type":65,"tag":331,"props":1467,"children":1468},{"class":333,"line":469},[1469,1474],{"type":65,"tag":331,"props":1470,"children":1471},{"style":948},[1472],{"type":71,"value":1473},"  createRootRoute",{"type":65,"tag":331,"props":1475,"children":1476},{"style":420},[1477],{"type":71,"value":466},{"type":65,"tag":331,"props":1479,"children":1480},{"class":333,"line":495},[1481,1486],{"type":65,"tag":331,"props":1482,"children":1483},{"style":948},[1484],{"type":71,"value":1485},"  HeadContent",{"type":65,"tag":331,"props":1487,"children":1488},{"style":420},[1489],{"type":71,"value":466},{"type":65,"tag":331,"props":1491,"children":1492},{"class":333,"line":534},[1493,1498],{"type":65,"tag":331,"props":1494,"children":1495},{"style":948},[1496],{"type":71,"value":1497},"  Scripts",{"type":65,"tag":331,"props":1499,"children":1500},{"style":420},[1501],{"type":71,"value":466},{"type":65,"tag":331,"props":1503,"children":1504},{"class":333,"line":572},[1505,1510],{"type":65,"tag":331,"props":1506,"children":1507},{"style":948},[1508],{"type":71,"value":1509},"  Html",{"type":65,"tag":331,"props":1511,"children":1512},{"style":420},[1513],{"type":71,"value":466},{"type":65,"tag":331,"props":1515,"children":1516},{"class":333,"line":607},[1517,1522],{"type":65,"tag":331,"props":1518,"children":1519},{"style":948},[1520],{"type":71,"value":1521},"  Body",{"type":65,"tag":331,"props":1523,"children":1524},{"style":420},[1525],{"type":71,"value":466},{"type":65,"tag":331,"props":1527,"children":1528},{"class":333,"line":616},[1529,1533,1537,1541,1545],{"type":65,"tag":331,"props":1530,"children":1531},{"style":420},[1532],{"type":71,"value":1207},{"type":65,"tag":331,"props":1534,"children":1535},{"style":937},[1536],{"type":71,"value":961},{"type":65,"tag":331,"props":1538,"children":1539},{"style":420},[1540],{"type":71,"value":966},{"type":65,"tag":331,"props":1542,"children":1543},{"style":344},[1544],{"type":71,"value":1260},{"type":65,"tag":331,"props":1546,"children":1547},{"style":420},[1548],{"type":71,"value":975},{"type":65,"tag":331,"props":1550,"children":1551},{"class":333,"line":877},[1552],{"type":65,"tag":331,"props":1553,"children":1554},{"emptyLinePlaceholder":1077},[1555],{"type":71,"value":1080},{"type":65,"tag":331,"props":1557,"children":1558},{"class":333,"line":903},[1559,1563,1568,1573,1578,1583,1587],{"type":65,"tag":331,"props":1560,"children":1561},{"style":937},[1562],{"type":71,"value":1088},{"type":65,"tag":331,"props":1564,"children":1565},{"style":434},[1566],{"type":71,"value":1567}," const",{"type":65,"tag":331,"props":1569,"children":1570},{"style":948},[1571],{"type":71,"value":1572}," Route ",{"type":65,"tag":331,"props":1574,"children":1575},{"style":420},[1576],{"type":71,"value":1577},"=",{"type":65,"tag":331,"props":1579,"children":1580},{"style":1096},[1581],{"type":71,"value":1582}," createRootRoute",{"type":65,"tag":331,"props":1584,"children":1585},{"style":948},[1586],{"type":71,"value":1103},{"type":65,"tag":331,"props":1588,"children":1589},{"style":420},[1590],{"type":71,"value":423},{"type":65,"tag":331,"props":1592,"children":1593},{"class":333,"line":911},[1594,1599,1603,1608,1613,1618],{"type":65,"tag":331,"props":1595,"children":1596},{"style":1096},[1597],{"type":71,"value":1598},"  head",{"type":65,"tag":331,"props":1600,"children":1601},{"style":420},[1602],{"type":71,"value":447},{"type":65,"tag":331,"props":1604,"children":1605},{"style":420},[1606],{"type":71,"value":1607}," ()",{"type":65,"tag":331,"props":1609,"children":1610},{"style":434},[1611],{"type":71,"value":1612}," =>",{"type":65,"tag":331,"props":1614,"children":1615},{"style":948},[1616],{"type":71,"value":1617}," (",{"type":65,"tag":331,"props":1619,"children":1620},{"style":420},[1621],{"type":71,"value":423},{"type":65,"tag":331,"props":1623,"children":1624},{"class":333,"line":1201},[1625,1630,1634],{"type":65,"tag":331,"props":1626,"children":1627},{"style":1113},[1628],{"type":71,"value":1629},"    meta",{"type":65,"tag":331,"props":1631,"children":1632},{"style":420},[1633],{"type":71,"value":447},{"type":65,"tag":331,"props":1635,"children":1636},{"style":948},[1637],{"type":71,"value":1125},{"type":65,"tag":331,"props":1639,"children":1641},{"class":333,"line":1640},13,[1642,1647,1652,1656,1660,1665,1670],{"type":65,"tag":331,"props":1643,"children":1644},{"style":420},[1645],{"type":71,"value":1646},"      {",{"type":65,"tag":331,"props":1648,"children":1649},{"style":1113},[1650],{"type":71,"value":1651}," charSet",{"type":65,"tag":331,"props":1653,"children":1654},{"style":420},[1655],{"type":71,"value":447},{"type":65,"tag":331,"props":1657,"children":1658},{"style":420},[1659],{"type":71,"value":966},{"type":65,"tag":331,"props":1661,"children":1662},{"style":344},[1663],{"type":71,"value":1664},"utf-8",{"type":65,"tag":331,"props":1666,"children":1667},{"style":420},[1668],{"type":71,"value":1669},"'",{"type":65,"tag":331,"props":1671,"children":1672},{"style":420},[1673],{"type":71,"value":1674}," },\n",{"type":65,"tag":331,"props":1676,"children":1678},{"class":333,"line":1677},14,[1679,1683,1688,1692,1696,1701,1705,1709,1714,1718,1722,1727,1731],{"type":65,"tag":331,"props":1680,"children":1681},{"style":420},[1682],{"type":71,"value":1646},{"type":65,"tag":331,"props":1684,"children":1685},{"style":1113},[1686],{"type":71,"value":1687}," name",{"type":65,"tag":331,"props":1689,"children":1690},{"style":420},[1691],{"type":71,"value":447},{"type":65,"tag":331,"props":1693,"children":1694},{"style":420},[1695],{"type":71,"value":966},{"type":65,"tag":331,"props":1697,"children":1698},{"style":344},[1699],{"type":71,"value":1700},"viewport",{"type":65,"tag":331,"props":1702,"children":1703},{"style":420},[1704],{"type":71,"value":1669},{"type":65,"tag":331,"props":1706,"children":1707},{"style":420},[1708],{"type":71,"value":1143},{"type":65,"tag":331,"props":1710,"children":1711},{"style":1113},[1712],{"type":71,"value":1713}," content",{"type":65,"tag":331,"props":1715,"children":1716},{"style":420},[1717],{"type":71,"value":447},{"type":65,"tag":331,"props":1719,"children":1720},{"style":420},[1721],{"type":71,"value":966},{"type":65,"tag":331,"props":1723,"children":1724},{"style":344},[1725],{"type":71,"value":1726},"width=device-width, initial-scale=1",{"type":65,"tag":331,"props":1728,"children":1729},{"style":420},[1730],{"type":71,"value":1669},{"type":65,"tag":331,"props":1732,"children":1733},{"style":420},[1734],{"type":71,"value":1674},{"type":65,"tag":331,"props":1736,"children":1738},{"class":333,"line":1737},15,[1739,1743,1748,1752,1756,1761,1765],{"type":65,"tag":331,"props":1740,"children":1741},{"style":420},[1742],{"type":71,"value":1646},{"type":65,"tag":331,"props":1744,"children":1745},{"style":1113},[1746],{"type":71,"value":1747}," title",{"type":65,"tag":331,"props":1749,"children":1750},{"style":420},[1751],{"type":71,"value":447},{"type":65,"tag":331,"props":1753,"children":1754},{"style":420},[1755],{"type":71,"value":966},{"type":65,"tag":331,"props":1757,"children":1758},{"style":344},[1759],{"type":71,"value":1760},"My TanStack Start App",{"type":65,"tag":331,"props":1762,"children":1763},{"style":420},[1764],{"type":71,"value":1669},{"type":65,"tag":331,"props":1766,"children":1767},{"style":420},[1768],{"type":71,"value":1674},{"type":65,"tag":331,"props":1770,"children":1772},{"class":333,"line":1771},16,[1773,1778],{"type":65,"tag":331,"props":1774,"children":1775},{"style":948},[1776],{"type":71,"value":1777},"    ]",{"type":65,"tag":331,"props":1779,"children":1780},{"style":420},[1781],{"type":71,"value":466},{"type":65,"tag":331,"props":1783,"children":1785},{"class":333,"line":1784},17,[1786,1790,1794],{"type":65,"tag":331,"props":1787,"children":1788},{"style":420},[1789],{"type":71,"value":1405},{"type":65,"tag":331,"props":1791,"children":1792},{"style":948},[1793],{"type":71,"value":81},{"type":65,"tag":331,"props":1795,"children":1796},{"style":420},[1797],{"type":71,"value":466},{"type":65,"tag":331,"props":1799,"children":1801},{"class":333,"line":1800},18,[1802,1807,1811,1816],{"type":65,"tag":331,"props":1803,"children":1804},{"style":1113},[1805],{"type":71,"value":1806},"  component",{"type":65,"tag":331,"props":1808,"children":1809},{"style":420},[1810],{"type":71,"value":447},{"type":65,"tag":331,"props":1812,"children":1813},{"style":948},[1814],{"type":71,"value":1815}," RootComponent",{"type":65,"tag":331,"props":1817,"children":1818},{"style":420},[1819],{"type":71,"value":466},{"type":65,"tag":331,"props":1821,"children":1823},{"class":333,"line":1822},19,[1824,1828],{"type":65,"tag":331,"props":1825,"children":1826},{"style":420},[1827],{"type":71,"value":1207},{"type":65,"tag":331,"props":1829,"children":1830},{"style":948},[1831],{"type":71,"value":1212},{"type":65,"tag":331,"props":1833,"children":1835},{"class":333,"line":1834},20,[1836],{"type":65,"tag":331,"props":1837,"children":1838},{"emptyLinePlaceholder":1077},[1839],{"type":71,"value":1080},{"type":65,"tag":331,"props":1841,"children":1843},{"class":333,"line":1842},21,[1844,1849,1853,1857],{"type":65,"tag":331,"props":1845,"children":1846},{"style":434},[1847],{"type":71,"value":1848},"function",{"type":65,"tag":331,"props":1850,"children":1851},{"style":1096},[1852],{"type":71,"value":1815},{"type":65,"tag":331,"props":1854,"children":1855},{"style":420},[1856],{"type":71,"value":1138},{"type":65,"tag":331,"props":1858,"children":1859},{"style":420},[1860],{"type":71,"value":492},{"type":65,"tag":331,"props":1862,"children":1864},{"class":333,"line":1863},22,[1865,1869],{"type":65,"tag":331,"props":1866,"children":1867},{"style":937},[1868],{"type":71,"value":1417},{"type":65,"tag":331,"props":1870,"children":1871},{"style":1113},[1872],{"type":71,"value":1873}," (\n",{"type":65,"tag":331,"props":1875,"children":1877},{"class":333,"line":1876},23,[1878,1883,1888],{"type":65,"tag":331,"props":1879,"children":1880},{"style":420},[1881],{"type":71,"value":1882},"    \u003C",{"type":65,"tag":331,"props":1884,"children":1885},{"style":338},[1886],{"type":71,"value":1887},"Html",{"type":65,"tag":331,"props":1889,"children":1890},{"style":420},[1891],{"type":71,"value":1892},">\n",{"type":65,"tag":331,"props":1894,"children":1896},{"class":333,"line":1895},24,[1897,1902,1907],{"type":65,"tag":331,"props":1898,"children":1899},{"style":420},[1900],{"type":71,"value":1901},"      \u003C",{"type":65,"tag":331,"props":1903,"children":1904},{"style":1113},[1905],{"type":71,"value":1906},"head",{"type":65,"tag":331,"props":1908,"children":1909},{"style":420},[1910],{"type":71,"value":1892},{"type":65,"tag":331,"props":1912,"children":1914},{"class":333,"line":1913},25,[1915,1920,1925],{"type":65,"tag":331,"props":1916,"children":1917},{"style":420},[1918],{"type":71,"value":1919},"        \u003C",{"type":65,"tag":331,"props":1921,"children":1922},{"style":338},[1923],{"type":71,"value":1924},"HeadContent",{"type":65,"tag":331,"props":1926,"children":1927},{"style":420},[1928],{"type":71,"value":1929}," \u002F>\n",{"type":65,"tag":331,"props":1931,"children":1933},{"class":333,"line":1932},26,[1934,1939,1943],{"type":65,"tag":331,"props":1935,"children":1936},{"style":420},[1937],{"type":71,"value":1938},"      \u003C\u002F",{"type":65,"tag":331,"props":1940,"children":1941},{"style":1113},[1942],{"type":71,"value":1906},{"type":65,"tag":331,"props":1944,"children":1945},{"style":420},[1946],{"type":71,"value":1892},{"type":65,"tag":331,"props":1948,"children":1950},{"class":333,"line":1949},27,[1951,1955,1960],{"type":65,"tag":331,"props":1952,"children":1953},{"style":420},[1954],{"type":71,"value":1901},{"type":65,"tag":331,"props":1956,"children":1957},{"style":338},[1958],{"type":71,"value":1959},"Body",{"type":65,"tag":331,"props":1961,"children":1962},{"style":420},[1963],{"type":71,"value":1892},{"type":65,"tag":331,"props":1965,"children":1967},{"class":333,"line":1966},28,[1968,1972,1977],{"type":65,"tag":331,"props":1969,"children":1970},{"style":420},[1971],{"type":71,"value":1919},{"type":65,"tag":331,"props":1973,"children":1974},{"style":338},[1975],{"type":71,"value":1976},"Outlet",{"type":65,"tag":331,"props":1978,"children":1979},{"style":420},[1980],{"type":71,"value":1929},{"type":65,"tag":331,"props":1982,"children":1984},{"class":333,"line":1983},29,[1985,1989,1994],{"type":65,"tag":331,"props":1986,"children":1987},{"style":420},[1988],{"type":71,"value":1919},{"type":65,"tag":331,"props":1990,"children":1991},{"style":338},[1992],{"type":71,"value":1993},"Scripts",{"type":65,"tag":331,"props":1995,"children":1996},{"style":420},[1997],{"type":71,"value":1929},{"type":65,"tag":331,"props":1999,"children":2001},{"class":333,"line":2000},30,[2002,2006,2010],{"type":65,"tag":331,"props":2003,"children":2004},{"style":420},[2005],{"type":71,"value":1938},{"type":65,"tag":331,"props":2007,"children":2008},{"style":338},[2009],{"type":71,"value":1959},{"type":65,"tag":331,"props":2011,"children":2012},{"style":420},[2013],{"type":71,"value":1892},{"type":65,"tag":331,"props":2015,"children":2017},{"class":333,"line":2016},31,[2018,2023,2027],{"type":65,"tag":331,"props":2019,"children":2020},{"style":420},[2021],{"type":71,"value":2022},"    \u003C\u002F",{"type":65,"tag":331,"props":2024,"children":2025},{"style":338},[2026],{"type":71,"value":1887},{"type":65,"tag":331,"props":2028,"children":2029},{"style":420},[2030],{"type":71,"value":1892},{"type":65,"tag":331,"props":2032,"children":2034},{"class":333,"line":2033},32,[2035],{"type":65,"tag":331,"props":2036,"children":2037},{"style":1113},[2038],{"type":71,"value":2039},"  )\n",{"type":65,"tag":331,"props":2041,"children":2043},{"class":333,"line":2042},33,[2044],{"type":65,"tag":331,"props":2045,"children":2046},{"style":420},[2047],{"type":71,"value":622},{"type":65,"tag":313,"props":2049,"children":2051},{"id":2050},"_7-index-route-srcroutesindextsx",[2052],{"type":71,"value":2053},"7. Index Route (src\u002Froutes\u002Findex.tsx)",{"type":65,"tag":320,"props":2055,"children":2057},{"className":1221,"code":2056,"language":1223,"meta":325,"style":325},"import { createFileRoute } from '@tanstack\u002Fvue-router'\nimport { createServerFn } from '@tanstack\u002Fvue-start'\n\nconst getGreeting = createServerFn({ method: 'GET' }).handler(async () => {\n  return 'Hello from TanStack Start!'\n})\n\nexport const Route = createFileRoute('\u002F')({\n  loader: () => getGreeting(),\n  component: HomePage,\n})\n\nfunction HomePage() {\n  const greeting = Route.useLoaderData()\n  return \u003Ch1>{greeting.value}\u003C\u002Fh1>\n}\n",[2058],{"type":65,"tag":74,"props":2059,"children":2060},{"__ignoreMap":325},[2061,2097,2133,2140,2230,2250,2261,2268,2317,2350,2370,2381,2388,2407,2442,2490],{"type":65,"tag":331,"props":2062,"children":2063},{"class":333,"line":334},[2064,2068,2072,2077,2081,2085,2089,2093],{"type":65,"tag":331,"props":2065,"children":2066},{"style":937},[2067],{"type":71,"value":940},{"type":65,"tag":331,"props":2069,"children":2070},{"style":420},[2071],{"type":71,"value":945},{"type":65,"tag":331,"props":2073,"children":2074},{"style":948},[2075],{"type":71,"value":2076}," createFileRoute",{"type":65,"tag":331,"props":2078,"children":2079},{"style":420},[2080],{"type":71,"value":956},{"type":65,"tag":331,"props":2082,"children":2083},{"style":937},[2084],{"type":71,"value":961},{"type":65,"tag":331,"props":2086,"children":2087},{"style":420},[2088],{"type":71,"value":966},{"type":65,"tag":331,"props":2090,"children":2091},{"style":344},[2092],{"type":71,"value":1260},{"type":65,"tag":331,"props":2094,"children":2095},{"style":420},[2096],{"type":71,"value":975},{"type":65,"tag":331,"props":2098,"children":2099},{"class":333,"line":365},[2100,2104,2108,2113,2117,2121,2125,2129],{"type":65,"tag":331,"props":2101,"children":2102},{"style":937},[2103],{"type":71,"value":940},{"type":65,"tag":331,"props":2105,"children":2106},{"style":420},[2107],{"type":71,"value":945},{"type":65,"tag":331,"props":2109,"children":2110},{"style":948},[2111],{"type":71,"value":2112}," createServerFn",{"type":65,"tag":331,"props":2114,"children":2115},{"style":420},[2116],{"type":71,"value":956},{"type":65,"tag":331,"props":2118,"children":2119},{"style":937},[2120],{"type":71,"value":961},{"type":65,"tag":331,"props":2122,"children":2123},{"style":420},[2124],{"type":71,"value":966},{"type":65,"tag":331,"props":2126,"children":2127},{"style":344},[2128],{"type":71,"value":79},{"type":65,"tag":331,"props":2130,"children":2131},{"style":420},[2132],{"type":71,"value":975},{"type":65,"tag":331,"props":2134,"children":2135},{"class":333,"line":469},[2136],{"type":65,"tag":331,"props":2137,"children":2138},{"emptyLinePlaceholder":1077},[2139],{"type":71,"value":1080},{"type":65,"tag":331,"props":2141,"children":2142},{"class":333,"line":495},[2143,2148,2153,2157,2161,2165,2170,2175,2179,2183,2188,2192,2196,2200,2204,2209,2213,2218,2222,2226],{"type":65,"tag":331,"props":2144,"children":2145},{"style":434},[2146],{"type":71,"value":2147},"const",{"type":65,"tag":331,"props":2149,"children":2150},{"style":948},[2151],{"type":71,"value":2152}," getGreeting ",{"type":65,"tag":331,"props":2154,"children":2155},{"style":420},[2156],{"type":71,"value":1577},{"type":65,"tag":331,"props":2158,"children":2159},{"style":1096},[2160],{"type":71,"value":2112},{"type":65,"tag":331,"props":2162,"children":2163},{"style":948},[2164],{"type":71,"value":1103},{"type":65,"tag":331,"props":2166,"children":2167},{"style":420},[2168],{"type":71,"value":2169},"{",{"type":65,"tag":331,"props":2171,"children":2172},{"style":1113},[2173],{"type":71,"value":2174}," method",{"type":65,"tag":331,"props":2176,"children":2177},{"style":420},[2178],{"type":71,"value":447},{"type":65,"tag":331,"props":2180,"children":2181},{"style":420},[2182],{"type":71,"value":966},{"type":65,"tag":331,"props":2184,"children":2185},{"style":344},[2186],{"type":71,"value":2187},"GET",{"type":65,"tag":331,"props":2189,"children":2190},{"style":420},[2191],{"type":71,"value":1669},{"type":65,"tag":331,"props":2193,"children":2194},{"style":420},[2195],{"type":71,"value":956},{"type":65,"tag":331,"props":2197,"children":2198},{"style":948},[2199],{"type":71,"value":81},{"type":65,"tag":331,"props":2201,"children":2202},{"style":420},[2203],{"type":71,"value":250},{"type":65,"tag":331,"props":2205,"children":2206},{"style":1096},[2207],{"type":71,"value":2208},"handler",{"type":65,"tag":331,"props":2210,"children":2211},{"style":948},[2212],{"type":71,"value":1103},{"type":65,"tag":331,"props":2214,"children":2215},{"style":434},[2216],{"type":71,"value":2217},"async",{"type":65,"tag":331,"props":2219,"children":2220},{"style":420},[2221],{"type":71,"value":1607},{"type":65,"tag":331,"props":2223,"children":2224},{"style":434},[2225],{"type":71,"value":1612},{"type":65,"tag":331,"props":2227,"children":2228},{"style":420},[2229],{"type":71,"value":492},{"type":65,"tag":331,"props":2231,"children":2232},{"class":333,"line":534},[2233,2237,2241,2246],{"type":65,"tag":331,"props":2234,"children":2235},{"style":937},[2236],{"type":71,"value":1417},{"type":65,"tag":331,"props":2238,"children":2239},{"style":420},[2240],{"type":71,"value":966},{"type":65,"tag":331,"props":2242,"children":2243},{"style":344},[2244],{"type":71,"value":2245},"Hello from TanStack Start!",{"type":65,"tag":331,"props":2247,"children":2248},{"style":420},[2249],{"type":71,"value":975},{"type":65,"tag":331,"props":2251,"children":2252},{"class":333,"line":572},[2253,2257],{"type":65,"tag":331,"props":2254,"children":2255},{"style":420},[2256],{"type":71,"value":1207},{"type":65,"tag":331,"props":2258,"children":2259},{"style":948},[2260],{"type":71,"value":1212},{"type":65,"tag":331,"props":2262,"children":2263},{"class":333,"line":607},[2264],{"type":65,"tag":331,"props":2265,"children":2266},{"emptyLinePlaceholder":1077},[2267],{"type":71,"value":1080},{"type":65,"tag":331,"props":2269,"children":2270},{"class":333,"line":616},[2271,2275,2279,2283,2287,2291,2295,2299,2304,2308,2313],{"type":65,"tag":331,"props":2272,"children":2273},{"style":937},[2274],{"type":71,"value":1088},{"type":65,"tag":331,"props":2276,"children":2277},{"style":434},[2278],{"type":71,"value":1567},{"type":65,"tag":331,"props":2280,"children":2281},{"style":948},[2282],{"type":71,"value":1572},{"type":65,"tag":331,"props":2284,"children":2285},{"style":420},[2286],{"type":71,"value":1577},{"type":65,"tag":331,"props":2288,"children":2289},{"style":1096},[2290],{"type":71,"value":2076},{"type":65,"tag":331,"props":2292,"children":2293},{"style":948},[2294],{"type":71,"value":1103},{"type":65,"tag":331,"props":2296,"children":2297},{"style":420},[2298],{"type":71,"value":1669},{"type":65,"tag":331,"props":2300,"children":2301},{"style":344},[2302],{"type":71,"value":2303},"\u002F",{"type":65,"tag":331,"props":2305,"children":2306},{"style":420},[2307],{"type":71,"value":1669},{"type":65,"tag":331,"props":2309,"children":2310},{"style":948},[2311],{"type":71,"value":2312},")(",{"type":65,"tag":331,"props":2314,"children":2315},{"style":420},[2316],{"type":71,"value":423},{"type":65,"tag":331,"props":2318,"children":2319},{"class":333,"line":877},[2320,2325,2329,2333,2337,2342,2346],{"type":65,"tag":331,"props":2321,"children":2322},{"style":1096},[2323],{"type":71,"value":2324},"  loader",{"type":65,"tag":331,"props":2326,"children":2327},{"style":420},[2328],{"type":71,"value":447},{"type":65,"tag":331,"props":2330,"children":2331},{"style":420},[2332],{"type":71,"value":1607},{"type":65,"tag":331,"props":2334,"children":2335},{"style":434},[2336],{"type":71,"value":1612},{"type":65,"tag":331,"props":2338,"children":2339},{"style":1096},[2340],{"type":71,"value":2341}," getGreeting",{"type":65,"tag":331,"props":2343,"children":2344},{"style":948},[2345],{"type":71,"value":1138},{"type":65,"tag":331,"props":2347,"children":2348},{"style":420},[2349],{"type":71,"value":466},{"type":65,"tag":331,"props":2351,"children":2352},{"class":333,"line":903},[2353,2357,2361,2366],{"type":65,"tag":331,"props":2354,"children":2355},{"style":1113},[2356],{"type":71,"value":1806},{"type":65,"tag":331,"props":2358,"children":2359},{"style":420},[2360],{"type":71,"value":447},{"type":65,"tag":331,"props":2362,"children":2363},{"style":948},[2364],{"type":71,"value":2365}," HomePage",{"type":65,"tag":331,"props":2367,"children":2368},{"style":420},[2369],{"type":71,"value":466},{"type":65,"tag":331,"props":2371,"children":2372},{"class":333,"line":911},[2373,2377],{"type":65,"tag":331,"props":2374,"children":2375},{"style":420},[2376],{"type":71,"value":1207},{"type":65,"tag":331,"props":2378,"children":2379},{"style":948},[2380],{"type":71,"value":1212},{"type":65,"tag":331,"props":2382,"children":2383},{"class":333,"line":1201},[2384],{"type":65,"tag":331,"props":2385,"children":2386},{"emptyLinePlaceholder":1077},[2387],{"type":71,"value":1080},{"type":65,"tag":331,"props":2389,"children":2390},{"class":333,"line":1640},[2391,2395,2399,2403],{"type":65,"tag":331,"props":2392,"children":2393},{"style":434},[2394],{"type":71,"value":1848},{"type":65,"tag":331,"props":2396,"children":2397},{"style":1096},[2398],{"type":71,"value":2365},{"type":65,"tag":331,"props":2400,"children":2401},{"style":420},[2402],{"type":71,"value":1138},{"type":65,"tag":331,"props":2404,"children":2405},{"style":420},[2406],{"type":71,"value":492},{"type":65,"tag":331,"props":2408,"children":2409},{"class":333,"line":1677},[2410,2414,2419,2423,2428,2432,2437],{"type":65,"tag":331,"props":2411,"children":2412},{"style":434},[2413],{"type":71,"value":1341},{"type":65,"tag":331,"props":2415,"children":2416},{"style":948},[2417],{"type":71,"value":2418}," greeting",{"type":65,"tag":331,"props":2420,"children":2421},{"style":420},[2422],{"type":71,"value":1351},{"type":65,"tag":331,"props":2424,"children":2425},{"style":948},[2426],{"type":71,"value":2427}," Route",{"type":65,"tag":331,"props":2429,"children":2430},{"style":420},[2431],{"type":71,"value":250},{"type":65,"tag":331,"props":2433,"children":2434},{"style":1096},[2435],{"type":71,"value":2436},"useLoaderData",{"type":65,"tag":331,"props":2438,"children":2439},{"style":1113},[2440],{"type":71,"value":2441},"()\n",{"type":65,"tag":331,"props":2443,"children":2444},{"class":333,"line":1737},[2445,2449,2454,2458,2463,2468,2472,2477,2482,2486],{"type":65,"tag":331,"props":2446,"children":2447},{"style":937},[2448],{"type":71,"value":1417},{"type":65,"tag":331,"props":2450,"children":2451},{"style":420},[2452],{"type":71,"value":2453}," \u003C",{"type":65,"tag":331,"props":2455,"children":2456},{"style":1113},[2457],{"type":71,"value":66},{"type":65,"tag":331,"props":2459,"children":2460},{"style":420},[2461],{"type":71,"value":2462},">{",{"type":65,"tag":331,"props":2464,"children":2465},{"style":948},[2466],{"type":71,"value":2467},"greeting",{"type":65,"tag":331,"props":2469,"children":2470},{"style":420},[2471],{"type":71,"value":250},{"type":65,"tag":331,"props":2473,"children":2474},{"style":948},[2475],{"type":71,"value":2476},"value",{"type":65,"tag":331,"props":2478,"children":2479},{"style":420},[2480],{"type":71,"value":2481},"}\u003C\u002F",{"type":65,"tag":331,"props":2483,"children":2484},{"style":1113},[2485],{"type":71,"value":66},{"type":65,"tag":331,"props":2487,"children":2488},{"style":420},[2489],{"type":71,"value":1892},{"type":65,"tag":331,"props":2491,"children":2492},{"class":333,"line":1771},[2493],{"type":65,"tag":331,"props":2494,"children":2495},{"style":420},[2496],{"type":71,"value":622},{"type":65,"tag":156,"props":2498,"children":2500},{"id":2499},"useserverfn-composable",[2501],{"type":71,"value":2502},"useServerFn Composable",{"type":65,"tag":83,"props":2504,"children":2505},{},[2506,2508,2513],{"type":71,"value":2507},"Use ",{"type":65,"tag":74,"props":2509,"children":2511},{"className":2510},[],[2512],{"type":71,"value":193},{"type":71,"value":2514}," to call server functions from Vue components with automatic redirect handling:",{"type":65,"tag":320,"props":2516,"children":2518},{"className":1221,"code":2517,"language":1223,"meta":325,"style":325},"import { createServerFn, useServerFn } from '@tanstack\u002Fvue-start'\nimport { ref } from 'vue'\n\nconst updatePost = createServerFn({ method: 'POST' })\n  .validator((data: { id: string; title: string }) => data)\n  .handler(async ({ data }) => {\n    await db.posts.update(data.id, { title: data.title })\n    return { success: true }\n  })\n\n\u002F\u002F In a component setup:\nconst updatePostFn = useServerFn(updatePost)\nconst title = ref('')\n\nasync function handleSubmit(postId: string) {\n  await updatePostFn({ data: { id: postId, title: title.value } })\n}\n",[2519],{"type":65,"tag":74,"props":2520,"children":2521},{"__ignoreMap":325},[2522,2566,2602,2609,2666,2746,2787,2872,2902,2913,2920,2928,2953,2986,2993,3034,3116],{"type":65,"tag":331,"props":2523,"children":2524},{"class":333,"line":334},[2525,2529,2533,2537,2541,2546,2550,2554,2558,2562],{"type":65,"tag":331,"props":2526,"children":2527},{"style":937},[2528],{"type":71,"value":940},{"type":65,"tag":331,"props":2530,"children":2531},{"style":420},[2532],{"type":71,"value":945},{"type":65,"tag":331,"props":2534,"children":2535},{"style":948},[2536],{"type":71,"value":2112},{"type":65,"tag":331,"props":2538,"children":2539},{"style":420},[2540],{"type":71,"value":1143},{"type":65,"tag":331,"props":2542,"children":2543},{"style":948},[2544],{"type":71,"value":2545}," useServerFn",{"type":65,"tag":331,"props":2547,"children":2548},{"style":420},[2549],{"type":71,"value":956},{"type":65,"tag":331,"props":2551,"children":2552},{"style":937},[2553],{"type":71,"value":961},{"type":65,"tag":331,"props":2555,"children":2556},{"style":420},[2557],{"type":71,"value":966},{"type":65,"tag":331,"props":2559,"children":2560},{"style":344},[2561],{"type":71,"value":79},{"type":65,"tag":331,"props":2563,"children":2564},{"style":420},[2565],{"type":71,"value":975},{"type":65,"tag":331,"props":2567,"children":2568},{"class":333,"line":365},[2569,2573,2577,2582,2586,2590,2594,2598],{"type":65,"tag":331,"props":2570,"children":2571},{"style":937},[2572],{"type":71,"value":940},{"type":65,"tag":331,"props":2574,"children":2575},{"style":420},[2576],{"type":71,"value":945},{"type":65,"tag":331,"props":2578,"children":2579},{"style":948},[2580],{"type":71,"value":2581}," ref",{"type":65,"tag":331,"props":2583,"children":2584},{"style":420},[2585],{"type":71,"value":956},{"type":65,"tag":331,"props":2587,"children":2588},{"style":937},[2589],{"type":71,"value":961},{"type":65,"tag":331,"props":2591,"children":2592},{"style":420},[2593],{"type":71,"value":966},{"type":65,"tag":331,"props":2595,"children":2596},{"style":344},[2597],{"type":71,"value":14},{"type":65,"tag":331,"props":2599,"children":2600},{"style":420},[2601],{"type":71,"value":975},{"type":65,"tag":331,"props":2603,"children":2604},{"class":333,"line":469},[2605],{"type":65,"tag":331,"props":2606,"children":2607},{"emptyLinePlaceholder":1077},[2608],{"type":71,"value":1080},{"type":65,"tag":331,"props":2610,"children":2611},{"class":333,"line":495},[2612,2616,2621,2625,2629,2633,2637,2641,2645,2649,2654,2658,2662],{"type":65,"tag":331,"props":2613,"children":2614},{"style":434},[2615],{"type":71,"value":2147},{"type":65,"tag":331,"props":2617,"children":2618},{"style":948},[2619],{"type":71,"value":2620}," updatePost ",{"type":65,"tag":331,"props":2622,"children":2623},{"style":420},[2624],{"type":71,"value":1577},{"type":65,"tag":331,"props":2626,"children":2627},{"style":1096},[2628],{"type":71,"value":2112},{"type":65,"tag":331,"props":2630,"children":2631},{"style":948},[2632],{"type":71,"value":1103},{"type":65,"tag":331,"props":2634,"children":2635},{"style":420},[2636],{"type":71,"value":2169},{"type":65,"tag":331,"props":2638,"children":2639},{"style":1113},[2640],{"type":71,"value":2174},{"type":65,"tag":331,"props":2642,"children":2643},{"style":420},[2644],{"type":71,"value":447},{"type":65,"tag":331,"props":2646,"children":2647},{"style":420},[2648],{"type":71,"value":966},{"type":65,"tag":331,"props":2650,"children":2651},{"style":344},[2652],{"type":71,"value":2653},"POST",{"type":65,"tag":331,"props":2655,"children":2656},{"style":420},[2657],{"type":71,"value":1669},{"type":65,"tag":331,"props":2659,"children":2660},{"style":420},[2661],{"type":71,"value":956},{"type":65,"tag":331,"props":2663,"children":2664},{"style":948},[2665],{"type":71,"value":1212},{"type":65,"tag":331,"props":2667,"children":2668},{"class":333,"line":534},[2669,2674,2679,2683,2687,2693,2697,2701,2706,2710,2715,2720,2724,2728,2732,2737,2741],{"type":65,"tag":331,"props":2670,"children":2671},{"style":420},[2672],{"type":71,"value":2673},"  .",{"type":65,"tag":331,"props":2675,"children":2676},{"style":1096},[2677],{"type":71,"value":2678},"validator",{"type":65,"tag":331,"props":2680,"children":2681},{"style":948},[2682],{"type":71,"value":1103},{"type":65,"tag":331,"props":2684,"children":2685},{"style":420},[2686],{"type":71,"value":1103},{"type":65,"tag":331,"props":2688,"children":2690},{"style":2689},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[2691],{"type":71,"value":2692},"data",{"type":65,"tag":331,"props":2694,"children":2695},{"style":420},[2696],{"type":71,"value":447},{"type":65,"tag":331,"props":2698,"children":2699},{"style":420},[2700],{"type":71,"value":945},{"type":65,"tag":331,"props":2702,"children":2703},{"style":1113},[2704],{"type":71,"value":2705}," id",{"type":65,"tag":331,"props":2707,"children":2708},{"style":420},[2709],{"type":71,"value":447},{"type":65,"tag":331,"props":2711,"children":2712},{"style":338},[2713],{"type":71,"value":2714}," string",{"type":65,"tag":331,"props":2716,"children":2717},{"style":420},[2718],{"type":71,"value":2719},";",{"type":65,"tag":331,"props":2721,"children":2722},{"style":1113},[2723],{"type":71,"value":1747},{"type":65,"tag":331,"props":2725,"children":2726},{"style":420},[2727],{"type":71,"value":447},{"type":65,"tag":331,"props":2729,"children":2730},{"style":338},[2731],{"type":71,"value":2714},{"type":65,"tag":331,"props":2733,"children":2734},{"style":420},[2735],{"type":71,"value":2736}," })",{"type":65,"tag":331,"props":2738,"children":2739},{"style":434},[2740],{"type":71,"value":1612},{"type":65,"tag":331,"props":2742,"children":2743},{"style":948},[2744],{"type":71,"value":2745}," data)\n",{"type":65,"tag":331,"props":2747,"children":2748},{"class":333,"line":572},[2749,2753,2757,2761,2765,2770,2775,2779,2783],{"type":65,"tag":331,"props":2750,"children":2751},{"style":420},[2752],{"type":71,"value":2673},{"type":65,"tag":331,"props":2754,"children":2755},{"style":1096},[2756],{"type":71,"value":2208},{"type":65,"tag":331,"props":2758,"children":2759},{"style":948},[2760],{"type":71,"value":1103},{"type":65,"tag":331,"props":2762,"children":2763},{"style":434},[2764],{"type":71,"value":2217},{"type":65,"tag":331,"props":2766,"children":2767},{"style":420},[2768],{"type":71,"value":2769}," ({",{"type":65,"tag":331,"props":2771,"children":2772},{"style":2689},[2773],{"type":71,"value":2774}," data",{"type":65,"tag":331,"props":2776,"children":2777},{"style":420},[2778],{"type":71,"value":2736},{"type":65,"tag":331,"props":2780,"children":2781},{"style":434},[2782],{"type":71,"value":1612},{"type":65,"tag":331,"props":2784,"children":2785},{"style":420},[2786],{"type":71,"value":492},{"type":65,"tag":331,"props":2788,"children":2789},{"class":333,"line":607},[2790,2795,2800,2804,2809,2813,2818,2822,2826,2830,2835,2839,2843,2847,2851,2855,2859,2864,2868],{"type":65,"tag":331,"props":2791,"children":2792},{"style":937},[2793],{"type":71,"value":2794},"    await",{"type":65,"tag":331,"props":2796,"children":2797},{"style":948},[2798],{"type":71,"value":2799}," db",{"type":65,"tag":331,"props":2801,"children":2802},{"style":420},[2803],{"type":71,"value":250},{"type":65,"tag":331,"props":2805,"children":2806},{"style":948},[2807],{"type":71,"value":2808},"posts",{"type":65,"tag":331,"props":2810,"children":2811},{"style":420},[2812],{"type":71,"value":250},{"type":65,"tag":331,"props":2814,"children":2815},{"style":1096},[2816],{"type":71,"value":2817},"update",{"type":65,"tag":331,"props":2819,"children":2820},{"style":1113},[2821],{"type":71,"value":1103},{"type":65,"tag":331,"props":2823,"children":2824},{"style":948},[2825],{"type":71,"value":2692},{"type":65,"tag":331,"props":2827,"children":2828},{"style":420},[2829],{"type":71,"value":250},{"type":65,"tag":331,"props":2831,"children":2832},{"style":948},[2833],{"type":71,"value":2834},"id",{"type":65,"tag":331,"props":2836,"children":2837},{"style":420},[2838],{"type":71,"value":1143},{"type":65,"tag":331,"props":2840,"children":2841},{"style":420},[2842],{"type":71,"value":945},{"type":65,"tag":331,"props":2844,"children":2845},{"style":1113},[2846],{"type":71,"value":1747},{"type":65,"tag":331,"props":2848,"children":2849},{"style":420},[2850],{"type":71,"value":447},{"type":65,"tag":331,"props":2852,"children":2853},{"style":948},[2854],{"type":71,"value":2774},{"type":65,"tag":331,"props":2856,"children":2857},{"style":420},[2858],{"type":71,"value":250},{"type":65,"tag":331,"props":2860,"children":2861},{"style":948},[2862],{"type":71,"value":2863},"title",{"type":65,"tag":331,"props":2865,"children":2866},{"style":420},[2867],{"type":71,"value":956},{"type":65,"tag":331,"props":2869,"children":2870},{"style":1113},[2871],{"type":71,"value":1212},{"type":65,"tag":331,"props":2873,"children":2874},{"class":333,"line":616},[2875,2880,2884,2889,2893,2897],{"type":65,"tag":331,"props":2876,"children":2877},{"style":937},[2878],{"type":71,"value":2879},"    return",{"type":65,"tag":331,"props":2881,"children":2882},{"style":420},[2883],{"type":71,"value":945},{"type":65,"tag":331,"props":2885,"children":2886},{"style":1113},[2887],{"type":71,"value":2888}," success",{"type":65,"tag":331,"props":2890,"children":2891},{"style":420},[2892],{"type":71,"value":447},{"type":65,"tag":331,"props":2894,"children":2895},{"style":1390},[2896],{"type":71,"value":1393},{"type":65,"tag":331,"props":2898,"children":2899},{"style":420},[2900],{"type":71,"value":2901}," }\n",{"type":65,"tag":331,"props":2903,"children":2904},{"class":333,"line":877},[2905,2909],{"type":65,"tag":331,"props":2906,"children":2907},{"style":420},[2908],{"type":71,"value":1405},{"type":65,"tag":331,"props":2910,"children":2911},{"style":948},[2912],{"type":71,"value":1212},{"type":65,"tag":331,"props":2914,"children":2915},{"class":333,"line":903},[2916],{"type":65,"tag":331,"props":2917,"children":2918},{"emptyLinePlaceholder":1077},[2919],{"type":71,"value":1080},{"type":65,"tag":331,"props":2921,"children":2922},{"class":333,"line":911},[2923],{"type":65,"tag":331,"props":2924,"children":2925},{"style":1146},[2926],{"type":71,"value":2927},"\u002F\u002F In a component setup:\n",{"type":65,"tag":331,"props":2929,"children":2930},{"class":333,"line":1201},[2931,2935,2940,2944,2948],{"type":65,"tag":331,"props":2932,"children":2933},{"style":434},[2934],{"type":71,"value":2147},{"type":65,"tag":331,"props":2936,"children":2937},{"style":948},[2938],{"type":71,"value":2939}," updatePostFn ",{"type":65,"tag":331,"props":2941,"children":2942},{"style":420},[2943],{"type":71,"value":1577},{"type":65,"tag":331,"props":2945,"children":2946},{"style":1096},[2947],{"type":71,"value":2545},{"type":65,"tag":331,"props":2949,"children":2950},{"style":948},[2951],{"type":71,"value":2952},"(updatePost)\n",{"type":65,"tag":331,"props":2954,"children":2955},{"class":333,"line":1640},[2956,2960,2965,2969,2973,2977,2982],{"type":65,"tag":331,"props":2957,"children":2958},{"style":434},[2959],{"type":71,"value":2147},{"type":65,"tag":331,"props":2961,"children":2962},{"style":948},[2963],{"type":71,"value":2964}," title ",{"type":65,"tag":331,"props":2966,"children":2967},{"style":420},[2968],{"type":71,"value":1577},{"type":65,"tag":331,"props":2970,"children":2971},{"style":1096},[2972],{"type":71,"value":2581},{"type":65,"tag":331,"props":2974,"children":2975},{"style":948},[2976],{"type":71,"value":1103},{"type":65,"tag":331,"props":2978,"children":2979},{"style":420},[2980],{"type":71,"value":2981},"''",{"type":65,"tag":331,"props":2983,"children":2984},{"style":948},[2985],{"type":71,"value":1212},{"type":65,"tag":331,"props":2987,"children":2988},{"class":333,"line":1677},[2989],{"type":65,"tag":331,"props":2990,"children":2991},{"emptyLinePlaceholder":1077},[2992],{"type":71,"value":1080},{"type":65,"tag":331,"props":2994,"children":2995},{"class":333,"line":1737},[2996,3000,3004,3009,3013,3018,3022,3026,3030],{"type":65,"tag":331,"props":2997,"children":2998},{"style":434},[2999],{"type":71,"value":2217},{"type":65,"tag":331,"props":3001,"children":3002},{"style":434},[3003],{"type":71,"value":1320},{"type":65,"tag":331,"props":3005,"children":3006},{"style":1096},[3007],{"type":71,"value":3008}," handleSubmit",{"type":65,"tag":331,"props":3010,"children":3011},{"style":420},[3012],{"type":71,"value":1103},{"type":65,"tag":331,"props":3014,"children":3015},{"style":2689},[3016],{"type":71,"value":3017},"postId",{"type":65,"tag":331,"props":3019,"children":3020},{"style":420},[3021],{"type":71,"value":447},{"type":65,"tag":331,"props":3023,"children":3024},{"style":338},[3025],{"type":71,"value":2714},{"type":65,"tag":331,"props":3027,"children":3028},{"style":420},[3029],{"type":71,"value":81},{"type":65,"tag":331,"props":3031,"children":3032},{"style":420},[3033],{"type":71,"value":492},{"type":65,"tag":331,"props":3035,"children":3036},{"class":333,"line":1771},[3037,3042,3047,3051,3055,3059,3063,3067,3071,3075,3080,3084,3088,3092,3096,3100,3104,3108,3112],{"type":65,"tag":331,"props":3038,"children":3039},{"style":937},[3040],{"type":71,"value":3041},"  await",{"type":65,"tag":331,"props":3043,"children":3044},{"style":1096},[3045],{"type":71,"value":3046}," updatePostFn",{"type":65,"tag":331,"props":3048,"children":3049},{"style":1113},[3050],{"type":71,"value":1103},{"type":65,"tag":331,"props":3052,"children":3053},{"style":420},[3054],{"type":71,"value":2169},{"type":65,"tag":331,"props":3056,"children":3057},{"style":1113},[3058],{"type":71,"value":2774},{"type":65,"tag":331,"props":3060,"children":3061},{"style":420},[3062],{"type":71,"value":447},{"type":65,"tag":331,"props":3064,"children":3065},{"style":420},[3066],{"type":71,"value":945},{"type":65,"tag":331,"props":3068,"children":3069},{"style":1113},[3070],{"type":71,"value":2705},{"type":65,"tag":331,"props":3072,"children":3073},{"style":420},[3074],{"type":71,"value":447},{"type":65,"tag":331,"props":3076,"children":3077},{"style":948},[3078],{"type":71,"value":3079}," postId",{"type":65,"tag":331,"props":3081,"children":3082},{"style":420},[3083],{"type":71,"value":1143},{"type":65,"tag":331,"props":3085,"children":3086},{"style":1113},[3087],{"type":71,"value":1747},{"type":65,"tag":331,"props":3089,"children":3090},{"style":420},[3091],{"type":71,"value":447},{"type":65,"tag":331,"props":3093,"children":3094},{"style":948},[3095],{"type":71,"value":1747},{"type":65,"tag":331,"props":3097,"children":3098},{"style":420},[3099],{"type":71,"value":250},{"type":65,"tag":331,"props":3101,"children":3102},{"style":948},[3103],{"type":71,"value":2476},{"type":65,"tag":331,"props":3105,"children":3106},{"style":420},[3107],{"type":71,"value":956},{"type":65,"tag":331,"props":3109,"children":3110},{"style":420},[3111],{"type":71,"value":956},{"type":65,"tag":331,"props":3113,"children":3114},{"style":1113},[3115],{"type":71,"value":1212},{"type":65,"tag":331,"props":3117,"children":3118},{"class":333,"line":1784},[3119],{"type":65,"tag":331,"props":3120,"children":3121},{"style":420},[3122],{"type":71,"value":622},{"type":65,"tag":83,"props":3124,"children":3125},{},[3126,3128,3133,3135,3141,3143,3149],{"type":71,"value":3127},"Unlike the React version, ",{"type":65,"tag":74,"props":3129,"children":3131},{"className":3130},[],[3132],{"type":71,"value":193},{"type":71,"value":3134}," does NOT wrap the returned function in ",{"type":65,"tag":74,"props":3136,"children":3138},{"className":3137},[],[3139],{"type":71,"value":3140},"useCallback",{"type":71,"value":3142}," — Vue's ",{"type":65,"tag":74,"props":3144,"children":3146},{"className":3145},[],[3147],{"type":71,"value":3148},"setup()",{"type":71,"value":3150}," runs once per component instance, so no memoization is needed.",{"type":65,"tag":156,"props":3152,"children":3154},{"id":3153},"vue-specific-components",[3155],{"type":71,"value":3156},"Vue-Specific Components",{"type":65,"tag":83,"props":3158,"children":3159},{},[3160,3162,3167],{"type":71,"value":3161},"All routing components from ",{"type":65,"tag":74,"props":3163,"children":3165},{"className":3164},[],[3166],{"type":71,"value":1260},{"type":71,"value":3168}," work in Start:",{"type":65,"tag":181,"props":3170,"children":3171},{},[3172,3183,3194,3205,3223,3241,3258,3275,3292,3311],{"type":65,"tag":185,"props":3173,"children":3174},{},[3175,3181],{"type":65,"tag":74,"props":3176,"children":3178},{"className":3177},[],[3179],{"type":71,"value":3180},"\u003COutlet>",{"type":71,"value":3182}," — renders matched child route",{"type":65,"tag":185,"props":3184,"children":3185},{},[3186,3192],{"type":65,"tag":74,"props":3187,"children":3189},{"className":3188},[],[3190],{"type":71,"value":3191},"\u003CLink>",{"type":71,"value":3193}," — type-safe navigation with scoped slots",{"type":65,"tag":185,"props":3195,"children":3196},{},[3197,3203],{"type":65,"tag":74,"props":3198,"children":3200},{"className":3199},[],[3201],{"type":71,"value":3202},"\u003CNavigate>",{"type":71,"value":3204}," — declarative redirect",{"type":65,"tag":185,"props":3206,"children":3207},{},[3208,3214,3216,3222],{"type":65,"tag":74,"props":3209,"children":3211},{"className":3210},[],[3212],{"type":71,"value":3213},"\u003CHeadContent>",{"type":71,"value":3215}," — renders head tags (must be in ",{"type":65,"tag":74,"props":3217,"children":3219},{"className":3218},[],[3220],{"type":71,"value":3221},"\u003Chead>",{"type":71,"value":81},{"type":65,"tag":185,"props":3224,"children":3225},{},[3226,3232,3234,3240],{"type":65,"tag":74,"props":3227,"children":3229},{"className":3228},[],[3230],{"type":71,"value":3231},"\u003CScripts>",{"type":71,"value":3233}," — renders body scripts (must be in ",{"type":65,"tag":74,"props":3235,"children":3237},{"className":3236},[],[3238],{"type":71,"value":3239},"\u003Cbody>",{"type":71,"value":81},{"type":65,"tag":185,"props":3242,"children":3243},{},[3244,3250,3252],{"type":65,"tag":74,"props":3245,"children":3247},{"className":3246},[],[3248],{"type":71,"value":3249},"\u003CAwait>",{"type":71,"value":3251}," — renders deferred data with Vue ",{"type":65,"tag":74,"props":3253,"children":3255},{"className":3254},[],[3256],{"type":71,"value":3257},"\u003CSuspense>",{"type":65,"tag":185,"props":3259,"children":3260},{},[3261,3267,3269],{"type":65,"tag":74,"props":3262,"children":3264},{"className":3263},[],[3265],{"type":71,"value":3266},"\u003CClientOnly>",{"type":71,"value":3268}," — renders children only after ",{"type":65,"tag":74,"props":3270,"children":3272},{"className":3271},[],[3273],{"type":71,"value":3274},"onMounted",{"type":65,"tag":185,"props":3276,"children":3277},{},[3278,3284,3286],{"type":65,"tag":74,"props":3279,"children":3281},{"className":3280},[],[3282],{"type":71,"value":3283},"\u003CCatchBoundary>",{"type":71,"value":3285}," — error boundary via ",{"type":65,"tag":74,"props":3287,"children":3289},{"className":3288},[],[3290],{"type":71,"value":3291},"onErrorCaptured",{"type":65,"tag":185,"props":3293,"children":3294},{},[3295,3301,3303,3309],{"type":65,"tag":74,"props":3296,"children":3298},{"className":3297},[],[3299],{"type":71,"value":3300},"\u003CHtml>",{"type":71,"value":3302}," — SSR shell ",{"type":65,"tag":74,"props":3304,"children":3306},{"className":3305},[],[3307],{"type":71,"value":3308},"\u003Chtml>",{"type":71,"value":3310}," wrapper",{"type":65,"tag":185,"props":3312,"children":3313},{},[3314,3320,3321,3326],{"type":65,"tag":74,"props":3315,"children":3317},{"className":3316},[],[3318],{"type":71,"value":3319},"\u003CBody>",{"type":71,"value":3302},{"type":65,"tag":74,"props":3322,"children":3324},{"className":3323},[],[3325],{"type":71,"value":3239},{"type":71,"value":3310},{"type":65,"tag":156,"props":3328,"children":3330},{"id":3329},"composables-reference",[3331],{"type":71,"value":3332},"Composables Reference",{"type":65,"tag":83,"props":3334,"children":3335},{},[3336,3338,3343,3345,3351,3353,3359],{"type":71,"value":3337},"All composables from ",{"type":65,"tag":74,"props":3339,"children":3341},{"className":3340},[],[3342],{"type":71,"value":1260},{"type":71,"value":3344}," work in Start. Most return ",{"type":65,"tag":74,"props":3346,"children":3348},{"className":3347},[],[3349],{"type":71,"value":3350},"Ref\u003CT>",{"type":71,"value":3352}," — access via ",{"type":65,"tag":74,"props":3354,"children":3356},{"className":3355},[],[3357],{"type":71,"value":3358},".value",{"type":71,"value":447},{"type":65,"tag":181,"props":3361,"children":3362},{},[3363,3374,3392,3403,3420,3437,3454,3471,3488,3505],{"type":65,"tag":185,"props":3364,"children":3365},{},[3366,3372],{"type":65,"tag":74,"props":3367,"children":3369},{"className":3368},[],[3370],{"type":71,"value":3371},"useRouter()",{"type":71,"value":3373}," — router instance (NOT a Ref)",{"type":65,"tag":185,"props":3375,"children":3376},{},[3377,3383,3385,3390],{"type":65,"tag":74,"props":3378,"children":3380},{"className":3379},[],[3381],{"type":71,"value":3382},"useRouterState()",{"type":71,"value":3384}," — ",{"type":65,"tag":74,"props":3386,"children":3388},{"className":3387},[],[3389],{"type":71,"value":3350},{"type":71,"value":3391},", subscribe to router state",{"type":65,"tag":185,"props":3393,"children":3394},{},[3395,3401],{"type":65,"tag":74,"props":3396,"children":3398},{"className":3397},[],[3399],{"type":71,"value":3400},"useNavigate()",{"type":71,"value":3402}," — navigation function (NOT a Ref)",{"type":65,"tag":185,"props":3404,"children":3405},{},[3406,3412,3413,3418],{"type":65,"tag":74,"props":3407,"children":3409},{"className":3408},[],[3410],{"type":71,"value":3411},"useSearch({ from })",{"type":71,"value":3384},{"type":65,"tag":74,"props":3414,"children":3416},{"className":3415},[],[3417],{"type":71,"value":3350},{"type":71,"value":3419},", validated search params",{"type":65,"tag":185,"props":3421,"children":3422},{},[3423,3429,3430,3435],{"type":65,"tag":74,"props":3424,"children":3426},{"className":3425},[],[3427],{"type":71,"value":3428},"useParams({ from })",{"type":71,"value":3384},{"type":65,"tag":74,"props":3431,"children":3433},{"className":3432},[],[3434],{"type":71,"value":3350},{"type":71,"value":3436},", path params",{"type":65,"tag":185,"props":3438,"children":3439},{},[3440,3446,3447,3452],{"type":65,"tag":74,"props":3441,"children":3443},{"className":3442},[],[3444],{"type":71,"value":3445},"useLoaderData({ from })",{"type":71,"value":3384},{"type":65,"tag":74,"props":3448,"children":3450},{"className":3449},[],[3451],{"type":71,"value":3350},{"type":71,"value":3453},", loader data",{"type":65,"tag":185,"props":3455,"children":3456},{},[3457,3463,3464,3469],{"type":65,"tag":74,"props":3458,"children":3460},{"className":3459},[],[3461],{"type":71,"value":3462},"useMatch({ from })",{"type":71,"value":3384},{"type":65,"tag":74,"props":3465,"children":3467},{"className":3466},[],[3468],{"type":71,"value":3350},{"type":71,"value":3470},", full route match",{"type":65,"tag":185,"props":3472,"children":3473},{},[3474,3480,3481,3486],{"type":65,"tag":74,"props":3475,"children":3477},{"className":3476},[],[3478],{"type":71,"value":3479},"useRouteContext({ from })",{"type":71,"value":3384},{"type":65,"tag":74,"props":3482,"children":3484},{"className":3483},[],[3485],{"type":71,"value":3350},{"type":71,"value":3487},", route context",{"type":65,"tag":185,"props":3489,"children":3490},{},[3491,3497,3498,3503],{"type":65,"tag":74,"props":3492,"children":3494},{"className":3493},[],[3495],{"type":71,"value":3496},"Route.useLoaderData()",{"type":71,"value":3384},{"type":65,"tag":74,"props":3499,"children":3501},{"className":3500},[],[3502],{"type":71,"value":3350},{"type":71,"value":3504},", typed loader data (preferred in route files)",{"type":65,"tag":185,"props":3506,"children":3507},{},[3508,3514,3515,3520],{"type":65,"tag":74,"props":3509,"children":3511},{"className":3510},[],[3512],{"type":71,"value":3513},"Route.useSearch()",{"type":71,"value":3384},{"type":65,"tag":74,"props":3516,"children":3518},{"className":3517},[],[3519],{"type":71,"value":3350},{"type":71,"value":3521},", typed search params (preferred in route files)",{"type":65,"tag":156,"props":3523,"children":3525},{"id":3524},"common-mistakes",[3526],{"type":71,"value":3527},"Common Mistakes",{"type":65,"tag":313,"props":3529,"children":3531},{"id":3530},"_1-critical-importing-from-wrong-package",[3532],{"type":71,"value":3533},"1. CRITICAL: Importing from wrong package",{"type":65,"tag":320,"props":3535,"children":3537},{"className":1221,"code":3536,"language":1223,"meta":325,"style":325},"\u002F\u002F WRONG — this is the SPA router, NOT Start\nimport { createServerFn } from '@tanstack\u002Fvue-router'\n\n\u002F\u002F CORRECT — server functions come from vue-start\nimport { createServerFn } from '@tanstack\u002Fvue-start'\n\n\u002F\u002F CORRECT — routing APIs come from vue-router\nimport { createFileRoute, Link } from '@tanstack\u002Fvue-router'\n",[3538],{"type":65,"tag":74,"props":3539,"children":3540},{"__ignoreMap":325},[3541,3549,3584,3591,3599,3634,3641,3649],{"type":65,"tag":331,"props":3542,"children":3543},{"class":333,"line":334},[3544],{"type":65,"tag":331,"props":3545,"children":3546},{"style":1146},[3547],{"type":71,"value":3548},"\u002F\u002F WRONG — this is the SPA router, NOT Start\n",{"type":65,"tag":331,"props":3550,"children":3551},{"class":333,"line":365},[3552,3556,3560,3564,3568,3572,3576,3580],{"type":65,"tag":331,"props":3553,"children":3554},{"style":937},[3555],{"type":71,"value":940},{"type":65,"tag":331,"props":3557,"children":3558},{"style":420},[3559],{"type":71,"value":945},{"type":65,"tag":331,"props":3561,"children":3562},{"style":948},[3563],{"type":71,"value":2112},{"type":65,"tag":331,"props":3565,"children":3566},{"style":420},[3567],{"type":71,"value":956},{"type":65,"tag":331,"props":3569,"children":3570},{"style":937},[3571],{"type":71,"value":961},{"type":65,"tag":331,"props":3573,"children":3574},{"style":420},[3575],{"type":71,"value":966},{"type":65,"tag":331,"props":3577,"children":3578},{"style":344},[3579],{"type":71,"value":1260},{"type":65,"tag":331,"props":3581,"children":3582},{"style":420},[3583],{"type":71,"value":975},{"type":65,"tag":331,"props":3585,"children":3586},{"class":333,"line":469},[3587],{"type":65,"tag":331,"props":3588,"children":3589},{"emptyLinePlaceholder":1077},[3590],{"type":71,"value":1080},{"type":65,"tag":331,"props":3592,"children":3593},{"class":333,"line":495},[3594],{"type":65,"tag":331,"props":3595,"children":3596},{"style":1146},[3597],{"type":71,"value":3598},"\u002F\u002F CORRECT — server functions come from vue-start\n",{"type":65,"tag":331,"props":3600,"children":3601},{"class":333,"line":534},[3602,3606,3610,3614,3618,3622,3626,3630],{"type":65,"tag":331,"props":3603,"children":3604},{"style":937},[3605],{"type":71,"value":940},{"type":65,"tag":331,"props":3607,"children":3608},{"style":420},[3609],{"type":71,"value":945},{"type":65,"tag":331,"props":3611,"children":3612},{"style":948},[3613],{"type":71,"value":2112},{"type":65,"tag":331,"props":3615,"children":3616},{"style":420},[3617],{"type":71,"value":956},{"type":65,"tag":331,"props":3619,"children":3620},{"style":937},[3621],{"type":71,"value":961},{"type":65,"tag":331,"props":3623,"children":3624},{"style":420},[3625],{"type":71,"value":966},{"type":65,"tag":331,"props":3627,"children":3628},{"style":344},[3629],{"type":71,"value":79},{"type":65,"tag":331,"props":3631,"children":3632},{"style":420},[3633],{"type":71,"value":975},{"type":65,"tag":331,"props":3635,"children":3636},{"class":333,"line":572},[3637],{"type":65,"tag":331,"props":3638,"children":3639},{"emptyLinePlaceholder":1077},[3640],{"type":71,"value":1080},{"type":65,"tag":331,"props":3642,"children":3643},{"class":333,"line":607},[3644],{"type":65,"tag":331,"props":3645,"children":3646},{"style":1146},[3647],{"type":71,"value":3648},"\u002F\u002F CORRECT — routing APIs come from vue-router\n",{"type":65,"tag":331,"props":3650,"children":3651},{"class":333,"line":616},[3652,3656,3660,3664,3668,3673,3677,3681,3685,3689],{"type":65,"tag":331,"props":3653,"children":3654},{"style":937},[3655],{"type":71,"value":940},{"type":65,"tag":331,"props":3657,"children":3658},{"style":420},[3659],{"type":71,"value":945},{"type":65,"tag":331,"props":3661,"children":3662},{"style":948},[3663],{"type":71,"value":2076},{"type":65,"tag":331,"props":3665,"children":3666},{"style":420},[3667],{"type":71,"value":1143},{"type":65,"tag":331,"props":3669,"children":3670},{"style":948},[3671],{"type":71,"value":3672}," Link",{"type":65,"tag":331,"props":3674,"children":3675},{"style":420},[3676],{"type":71,"value":956},{"type":65,"tag":331,"props":3678,"children":3679},{"style":937},[3680],{"type":71,"value":961},{"type":65,"tag":331,"props":3682,"children":3683},{"style":420},[3684],{"type":71,"value":966},{"type":65,"tag":331,"props":3686,"children":3687},{"style":344},[3688],{"type":71,"value":1260},{"type":65,"tag":331,"props":3690,"children":3691},{"style":420},[3692],{"type":71,"value":975},{"type":65,"tag":313,"props":3694,"children":3696},{"id":3695},"_2-critical-forgetting-value-in-script-blocks",[3697],{"type":71,"value":3698},"2. CRITICAL: Forgetting .value in script blocks",{"type":65,"tag":83,"props":3700,"children":3701},{},[3702,3704,3709,3711,3717,3719,3724],{"type":71,"value":3703},"Most composables return ",{"type":65,"tag":74,"props":3705,"children":3707},{"className":3706},[],[3708],{"type":71,"value":3350},{"type":71,"value":3710},". In ",{"type":65,"tag":74,"props":3712,"children":3714},{"className":3713},[],[3715],{"type":71,"value":3716},"\u003Cscript>",{"type":71,"value":3718},", access via ",{"type":65,"tag":74,"props":3720,"children":3722},{"className":3721},[],[3723],{"type":71,"value":3358},{"type":71,"value":250},{"type":65,"tag":320,"props":3726,"children":3728},{"className":1221,"code":3727,"language":1223,"meta":325,"style":325},"\u002F\u002F WRONG\nconst data = Route.useLoaderData()\nconsole.log(data.message) \u002F\u002F undefined!\n\n\u002F\u002F CORRECT\nconst data = Route.useLoaderData()\nconsole.log(data.value.message)\n",[3729],{"type":65,"tag":74,"props":3730,"children":3731},{"__ignoreMap":325},[3732,3740,3772,3808,3815,3823,3854],{"type":65,"tag":331,"props":3733,"children":3734},{"class":333,"line":334},[3735],{"type":65,"tag":331,"props":3736,"children":3737},{"style":1146},[3738],{"type":71,"value":3739},"\u002F\u002F WRONG\n",{"type":65,"tag":331,"props":3741,"children":3742},{"class":333,"line":365},[3743,3747,3752,3756,3760,3764,3768],{"type":65,"tag":331,"props":3744,"children":3745},{"style":434},[3746],{"type":71,"value":2147},{"type":65,"tag":331,"props":3748,"children":3749},{"style":948},[3750],{"type":71,"value":3751}," data ",{"type":65,"tag":331,"props":3753,"children":3754},{"style":420},[3755],{"type":71,"value":1577},{"type":65,"tag":331,"props":3757,"children":3758},{"style":948},[3759],{"type":71,"value":2427},{"type":65,"tag":331,"props":3761,"children":3762},{"style":420},[3763],{"type":71,"value":250},{"type":65,"tag":331,"props":3765,"children":3766},{"style":1096},[3767],{"type":71,"value":2436},{"type":65,"tag":331,"props":3769,"children":3770},{"style":948},[3771],{"type":71,"value":2441},{"type":65,"tag":331,"props":3773,"children":3774},{"class":333,"line":469},[3775,3780,3784,3789,3794,3798,3803],{"type":65,"tag":331,"props":3776,"children":3777},{"style":948},[3778],{"type":71,"value":3779},"console",{"type":65,"tag":331,"props":3781,"children":3782},{"style":420},[3783],{"type":71,"value":250},{"type":65,"tag":331,"props":3785,"children":3786},{"style":1096},[3787],{"type":71,"value":3788},"log",{"type":65,"tag":331,"props":3790,"children":3791},{"style":948},[3792],{"type":71,"value":3793},"(data",{"type":65,"tag":331,"props":3795,"children":3796},{"style":420},[3797],{"type":71,"value":250},{"type":65,"tag":331,"props":3799,"children":3800},{"style":948},[3801],{"type":71,"value":3802},"message) ",{"type":65,"tag":331,"props":3804,"children":3805},{"style":1146},[3806],{"type":71,"value":3807},"\u002F\u002F undefined!\n",{"type":65,"tag":331,"props":3809,"children":3810},{"class":333,"line":495},[3811],{"type":65,"tag":331,"props":3812,"children":3813},{"emptyLinePlaceholder":1077},[3814],{"type":71,"value":1080},{"type":65,"tag":331,"props":3816,"children":3817},{"class":333,"line":534},[3818],{"type":65,"tag":331,"props":3819,"children":3820},{"style":1146},[3821],{"type":71,"value":3822},"\u002F\u002F CORRECT\n",{"type":65,"tag":331,"props":3824,"children":3825},{"class":333,"line":572},[3826,3830,3834,3838,3842,3846,3850],{"type":65,"tag":331,"props":3827,"children":3828},{"style":434},[3829],{"type":71,"value":2147},{"type":65,"tag":331,"props":3831,"children":3832},{"style":948},[3833],{"type":71,"value":3751},{"type":65,"tag":331,"props":3835,"children":3836},{"style":420},[3837],{"type":71,"value":1577},{"type":65,"tag":331,"props":3839,"children":3840},{"style":948},[3841],{"type":71,"value":2427},{"type":65,"tag":331,"props":3843,"children":3844},{"style":420},[3845],{"type":71,"value":250},{"type":65,"tag":331,"props":3847,"children":3848},{"style":1096},[3849],{"type":71,"value":2436},{"type":65,"tag":331,"props":3851,"children":3852},{"style":948},[3853],{"type":71,"value":2441},{"type":65,"tag":331,"props":3855,"children":3856},{"class":333,"line":607},[3857,3861,3865,3869,3873,3877,3881,3885],{"type":65,"tag":331,"props":3858,"children":3859},{"style":948},[3860],{"type":71,"value":3779},{"type":65,"tag":331,"props":3862,"children":3863},{"style":420},[3864],{"type":71,"value":250},{"type":65,"tag":331,"props":3866,"children":3867},{"style":1096},[3868],{"type":71,"value":3788},{"type":65,"tag":331,"props":3870,"children":3871},{"style":948},[3872],{"type":71,"value":3793},{"type":65,"tag":331,"props":3874,"children":3875},{"style":420},[3876],{"type":71,"value":250},{"type":65,"tag":331,"props":3878,"children":3879},{"style":948},[3880],{"type":71,"value":2476},{"type":65,"tag":331,"props":3882,"children":3883},{"style":420},[3884],{"type":71,"value":250},{"type":65,"tag":331,"props":3886,"children":3887},{"style":948},[3888],{"type":71,"value":3889},"message)\n",{"type":65,"tag":313,"props":3891,"children":3893},{"id":3892},"_3-high-missing-scripts-component",[3894],{"type":71,"value":3895},"3. HIGH: Missing Scripts component",{"type":65,"tag":83,"props":3897,"children":3898},{},[3899,3901,3907,3909,3914],{"type":71,"value":3900},"Without ",{"type":65,"tag":74,"props":3902,"children":3904},{"className":3903},[],[3905],{"type":71,"value":3906},"\u003CScripts \u002F>",{"type":71,"value":3908}," in the root route's ",{"type":65,"tag":74,"props":3910,"children":3912},{"className":3911},[],[3913],{"type":71,"value":3239},{"type":71,"value":3915},", client JavaScript doesn't load and the app won't hydrate.",{"type":65,"tag":313,"props":3917,"children":3919},{"id":3918},"_4-high-vue-plugin-before-start-plugin-in-vite-config",[3920],{"type":71,"value":3921},"4. HIGH: Vue plugin before Start plugin in Vite config",{"type":65,"tag":320,"props":3923,"children":3925},{"className":925,"code":3924,"language":927,"meta":325,"style":325},"\u002F\u002F WRONG\nplugins: [vuePlugin(), tanstackStart()]\n\n\u002F\u002F CORRECT\nplugins: [tanstackStart(), vuePlugin()]\n",[3926],{"type":65,"tag":74,"props":3927,"children":3928},{"__ignoreMap":325},[3929,3936,3975,3982,3989],{"type":65,"tag":331,"props":3930,"children":3931},{"class":333,"line":334},[3932],{"type":65,"tag":331,"props":3933,"children":3934},{"style":1146},[3935],{"type":71,"value":3739},{"type":65,"tag":331,"props":3937,"children":3938},{"class":333,"line":365},[3939,3944,3948,3953,3958,3962,3966,3970],{"type":65,"tag":331,"props":3940,"children":3941},{"style":338},[3942],{"type":71,"value":3943},"plugins",{"type":65,"tag":331,"props":3945,"children":3946},{"style":420},[3947],{"type":71,"value":447},{"type":65,"tag":331,"props":3949,"children":3950},{"style":948},[3951],{"type":71,"value":3952}," [",{"type":65,"tag":331,"props":3954,"children":3955},{"style":1096},[3956],{"type":71,"value":3957},"vuePlugin",{"type":65,"tag":331,"props":3959,"children":3960},{"style":948},[3961],{"type":71,"value":1138},{"type":65,"tag":331,"props":3963,"children":3964},{"style":420},[3965],{"type":71,"value":1143},{"type":65,"tag":331,"props":3967,"children":3968},{"style":1096},[3969],{"type":71,"value":991},{"type":65,"tag":331,"props":3971,"children":3972},{"style":948},[3973],{"type":71,"value":3974},"()]\n",{"type":65,"tag":331,"props":3976,"children":3977},{"class":333,"line":469},[3978],{"type":65,"tag":331,"props":3979,"children":3980},{"emptyLinePlaceholder":1077},[3981],{"type":71,"value":1080},{"type":65,"tag":331,"props":3983,"children":3984},{"class":333,"line":495},[3985],{"type":65,"tag":331,"props":3986,"children":3987},{"style":1146},[3988],{"type":71,"value":3822},{"type":65,"tag":331,"props":3990,"children":3991},{"class":333,"line":534},[3992,3996,4000,4004,4009,4013,4017,4022],{"type":65,"tag":331,"props":3993,"children":3994},{"style":338},[3995],{"type":71,"value":3943},{"type":65,"tag":331,"props":3997,"children":3998},{"style":420},[3999],{"type":71,"value":447},{"type":65,"tag":331,"props":4001,"children":4002},{"style":948},[4003],{"type":71,"value":3952},{"type":65,"tag":331,"props":4005,"children":4006},{"style":1096},[4007],{"type":71,"value":4008},"tanstackStart",{"type":65,"tag":331,"props":4010,"children":4011},{"style":948},[4012],{"type":71,"value":1138},{"type":65,"tag":331,"props":4014,"children":4015},{"style":420},[4016],{"type":71,"value":1143},{"type":65,"tag":331,"props":4018,"children":4019},{"style":1096},[4020],{"type":71,"value":4021}," vuePlugin",{"type":65,"tag":331,"props":4023,"children":4024},{"style":948},[4025],{"type":71,"value":3974},{"type":65,"tag":313,"props":4027,"children":4029},{"id":4028},"_5-high-using-htmlbody-incorrectly",[4030],{"type":71,"value":4031},"5. HIGH: Using Html\u002FBody incorrectly",{"type":65,"tag":83,"props":4033,"children":4034},{},[4035,4037,4042,4044,4049,4051,4056,4057,4062],{"type":71,"value":4036},"Vue Start uses ",{"type":65,"tag":74,"props":4038,"children":4040},{"className":4039},[],[4041],{"type":71,"value":3300},{"type":71,"value":4043}," and ",{"type":65,"tag":74,"props":4045,"children":4047},{"className":4046},[],[4048],{"type":71,"value":3319},{"type":71,"value":4050}," components for the SSR document shell. On the server they render ",{"type":65,"tag":74,"props":4052,"children":4054},{"className":4053},[],[4055],{"type":71,"value":3308},{"type":71,"value":4043},{"type":65,"tag":74,"props":4058,"children":4060},{"className":4059},[],[4061],{"type":71,"value":3239},{"type":71,"value":4063}," tags; on the client they handle hydration properly.",{"type":65,"tag":320,"props":4065,"children":4067},{"className":1221,"code":4066,"language":1223,"meta":325,"style":325},"\u002F\u002F WRONG — plain HTML tags can cause hydration mismatches\nfunction RootComponent() {\n  return (\n    \u003Chtml>\n      \u003Cbody>\n        \u003COutlet \u002F>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n\n\u002F\u002F CORRECT — use Html and Body components\nfunction RootComponent() {\n  return (\n    \u003CHtml>\n      \u003Chead>\n        \u003CHeadContent \u002F>\n      \u003C\u002Fhead>\n      \u003CBody>\n        \u003COutlet \u002F>\n        \u003CScripts \u002F>\n      \u003C\u002FBody>\n    \u003C\u002FHtml>\n  )\n}\n",[4068],{"type":65,"tag":74,"props":4069,"children":4070},{"__ignoreMap":325},[4071,4079,4098,4109,4125,4141,4156,4171,4186,4193,4200,4207,4215,4234,4245,4260,4275,4290,4305,4320,4335,4350,4365,4380,4387],{"type":65,"tag":331,"props":4072,"children":4073},{"class":333,"line":334},[4074],{"type":65,"tag":331,"props":4075,"children":4076},{"style":1146},[4077],{"type":71,"value":4078},"\u002F\u002F WRONG — plain HTML tags can cause hydration mismatches\n",{"type":65,"tag":331,"props":4080,"children":4081},{"class":333,"line":365},[4082,4086,4090,4094],{"type":65,"tag":331,"props":4083,"children":4084},{"style":434},[4085],{"type":71,"value":1848},{"type":65,"tag":331,"props":4087,"children":4088},{"style":1096},[4089],{"type":71,"value":1815},{"type":65,"tag":331,"props":4091,"children":4092},{"style":420},[4093],{"type":71,"value":1138},{"type":65,"tag":331,"props":4095,"children":4096},{"style":420},[4097],{"type":71,"value":492},{"type":65,"tag":331,"props":4099,"children":4100},{"class":333,"line":469},[4101,4105],{"type":65,"tag":331,"props":4102,"children":4103},{"style":937},[4104],{"type":71,"value":1417},{"type":65,"tag":331,"props":4106,"children":4107},{"style":1113},[4108],{"type":71,"value":1873},{"type":65,"tag":331,"props":4110,"children":4111},{"class":333,"line":495},[4112,4116,4121],{"type":65,"tag":331,"props":4113,"children":4114},{"style":420},[4115],{"type":71,"value":1882},{"type":65,"tag":331,"props":4117,"children":4118},{"style":1113},[4119],{"type":71,"value":4120},"html",{"type":65,"tag":331,"props":4122,"children":4123},{"style":420},[4124],{"type":71,"value":1892},{"type":65,"tag":331,"props":4126,"children":4127},{"class":333,"line":534},[4128,4132,4137],{"type":65,"tag":331,"props":4129,"children":4130},{"style":420},[4131],{"type":71,"value":1901},{"type":65,"tag":331,"props":4133,"children":4134},{"style":1113},[4135],{"type":71,"value":4136},"body",{"type":65,"tag":331,"props":4138,"children":4139},{"style":420},[4140],{"type":71,"value":1892},{"type":65,"tag":331,"props":4142,"children":4143},{"class":333,"line":572},[4144,4148,4152],{"type":65,"tag":331,"props":4145,"children":4146},{"style":420},[4147],{"type":71,"value":1919},{"type":65,"tag":331,"props":4149,"children":4150},{"style":338},[4151],{"type":71,"value":1976},{"type":65,"tag":331,"props":4153,"children":4154},{"style":420},[4155],{"type":71,"value":1929},{"type":65,"tag":331,"props":4157,"children":4158},{"class":333,"line":607},[4159,4163,4167],{"type":65,"tag":331,"props":4160,"children":4161},{"style":420},[4162],{"type":71,"value":1938},{"type":65,"tag":331,"props":4164,"children":4165},{"style":1113},[4166],{"type":71,"value":4136},{"type":65,"tag":331,"props":4168,"children":4169},{"style":420},[4170],{"type":71,"value":1892},{"type":65,"tag":331,"props":4172,"children":4173},{"class":333,"line":616},[4174,4178,4182],{"type":65,"tag":331,"props":4175,"children":4176},{"style":420},[4177],{"type":71,"value":2022},{"type":65,"tag":331,"props":4179,"children":4180},{"style":1113},[4181],{"type":71,"value":4120},{"type":65,"tag":331,"props":4183,"children":4184},{"style":420},[4185],{"type":71,"value":1892},{"type":65,"tag":331,"props":4187,"children":4188},{"class":333,"line":877},[4189],{"type":65,"tag":331,"props":4190,"children":4191},{"style":1113},[4192],{"type":71,"value":2039},{"type":65,"tag":331,"props":4194,"children":4195},{"class":333,"line":903},[4196],{"type":65,"tag":331,"props":4197,"children":4198},{"style":420},[4199],{"type":71,"value":622},{"type":65,"tag":331,"props":4201,"children":4202},{"class":333,"line":911},[4203],{"type":65,"tag":331,"props":4204,"children":4205},{"emptyLinePlaceholder":1077},[4206],{"type":71,"value":1080},{"type":65,"tag":331,"props":4208,"children":4209},{"class":333,"line":1201},[4210],{"type":65,"tag":331,"props":4211,"children":4212},{"style":1146},[4213],{"type":71,"value":4214},"\u002F\u002F CORRECT — use Html and Body components\n",{"type":65,"tag":331,"props":4216,"children":4217},{"class":333,"line":1640},[4218,4222,4226,4230],{"type":65,"tag":331,"props":4219,"children":4220},{"style":434},[4221],{"type":71,"value":1848},{"type":65,"tag":331,"props":4223,"children":4224},{"style":1096},[4225],{"type":71,"value":1815},{"type":65,"tag":331,"props":4227,"children":4228},{"style":420},[4229],{"type":71,"value":1138},{"type":65,"tag":331,"props":4231,"children":4232},{"style":420},[4233],{"type":71,"value":492},{"type":65,"tag":331,"props":4235,"children":4236},{"class":333,"line":1677},[4237,4241],{"type":65,"tag":331,"props":4238,"children":4239},{"style":937},[4240],{"type":71,"value":1417},{"type":65,"tag":331,"props":4242,"children":4243},{"style":1113},[4244],{"type":71,"value":1873},{"type":65,"tag":331,"props":4246,"children":4247},{"class":333,"line":1737},[4248,4252,4256],{"type":65,"tag":331,"props":4249,"children":4250},{"style":420},[4251],{"type":71,"value":1882},{"type":65,"tag":331,"props":4253,"children":4254},{"style":338},[4255],{"type":71,"value":1887},{"type":65,"tag":331,"props":4257,"children":4258},{"style":420},[4259],{"type":71,"value":1892},{"type":65,"tag":331,"props":4261,"children":4262},{"class":333,"line":1771},[4263,4267,4271],{"type":65,"tag":331,"props":4264,"children":4265},{"style":420},[4266],{"type":71,"value":1901},{"type":65,"tag":331,"props":4268,"children":4269},{"style":1113},[4270],{"type":71,"value":1906},{"type":65,"tag":331,"props":4272,"children":4273},{"style":420},[4274],{"type":71,"value":1892},{"type":65,"tag":331,"props":4276,"children":4277},{"class":333,"line":1784},[4278,4282,4286],{"type":65,"tag":331,"props":4279,"children":4280},{"style":420},[4281],{"type":71,"value":1919},{"type":65,"tag":331,"props":4283,"children":4284},{"style":338},[4285],{"type":71,"value":1924},{"type":65,"tag":331,"props":4287,"children":4288},{"style":420},[4289],{"type":71,"value":1929},{"type":65,"tag":331,"props":4291,"children":4292},{"class":333,"line":1800},[4293,4297,4301],{"type":65,"tag":331,"props":4294,"children":4295},{"style":420},[4296],{"type":71,"value":1938},{"type":65,"tag":331,"props":4298,"children":4299},{"style":1113},[4300],{"type":71,"value":1906},{"type":65,"tag":331,"props":4302,"children":4303},{"style":420},[4304],{"type":71,"value":1892},{"type":65,"tag":331,"props":4306,"children":4307},{"class":333,"line":1822},[4308,4312,4316],{"type":65,"tag":331,"props":4309,"children":4310},{"style":420},[4311],{"type":71,"value":1901},{"type":65,"tag":331,"props":4313,"children":4314},{"style":338},[4315],{"type":71,"value":1959},{"type":65,"tag":331,"props":4317,"children":4318},{"style":420},[4319],{"type":71,"value":1892},{"type":65,"tag":331,"props":4321,"children":4322},{"class":333,"line":1834},[4323,4327,4331],{"type":65,"tag":331,"props":4324,"children":4325},{"style":420},[4326],{"type":71,"value":1919},{"type":65,"tag":331,"props":4328,"children":4329},{"style":338},[4330],{"type":71,"value":1976},{"type":65,"tag":331,"props":4332,"children":4333},{"style":420},[4334],{"type":71,"value":1929},{"type":65,"tag":331,"props":4336,"children":4337},{"class":333,"line":1842},[4338,4342,4346],{"type":65,"tag":331,"props":4339,"children":4340},{"style":420},[4341],{"type":71,"value":1919},{"type":65,"tag":331,"props":4343,"children":4344},{"style":338},[4345],{"type":71,"value":1993},{"type":65,"tag":331,"props":4347,"children":4348},{"style":420},[4349],{"type":71,"value":1929},{"type":65,"tag":331,"props":4351,"children":4352},{"class":333,"line":1863},[4353,4357,4361],{"type":65,"tag":331,"props":4354,"children":4355},{"style":420},[4356],{"type":71,"value":1938},{"type":65,"tag":331,"props":4358,"children":4359},{"style":338},[4360],{"type":71,"value":1959},{"type":65,"tag":331,"props":4362,"children":4363},{"style":420},[4364],{"type":71,"value":1892},{"type":65,"tag":331,"props":4366,"children":4367},{"class":333,"line":1876},[4368,4372,4376],{"type":65,"tag":331,"props":4369,"children":4370},{"style":420},[4371],{"type":71,"value":2022},{"type":65,"tag":331,"props":4373,"children":4374},{"style":338},[4375],{"type":71,"value":1887},{"type":65,"tag":331,"props":4377,"children":4378},{"style":420},[4379],{"type":71,"value":1892},{"type":65,"tag":331,"props":4381,"children":4382},{"class":333,"line":1895},[4383],{"type":65,"tag":331,"props":4384,"children":4385},{"style":1113},[4386],{"type":71,"value":2039},{"type":65,"tag":331,"props":4388,"children":4389},{"class":333,"line":1913},[4390],{"type":65,"tag":331,"props":4391,"children":4392},{"style":420},[4393],{"type":71,"value":622},{"type":65,"tag":156,"props":4395,"children":4397},{"id":4396},"cross-references",[4398],{"type":71,"value":4399},"Cross-References",{"type":65,"tag":181,"props":4401,"children":4402},{},[4403,4412,4423],{"type":65,"tag":185,"props":4404,"children":4405},{},[4406,4410],{"type":65,"tag":89,"props":4407,"children":4408},{"href":91},[4409],{"type":71,"value":58},{"type":71,"value":4411}," — core Start concepts",{"type":65,"tag":185,"props":4413,"children":4414},{},[4415,4421],{"type":65,"tag":89,"props":4416,"children":4418},{"href":4417},"..\u002F..\u002F..\u002Frouter-core\u002Fskills\u002Frouter-core\u002FSKILL.md",[4419],{"type":71,"value":4420},"router-core",{"type":71,"value":4422}," — routing fundamentals",{"type":65,"tag":185,"props":4424,"children":4425},{},[4426,4432],{"type":65,"tag":89,"props":4427,"children":4429},{"href":4428},"..\u002F..\u002F..\u002Fvue-router\u002Fskills\u002Fvue-router\u002FSKILL.md",[4430],{"type":71,"value":4431},"vue-router",{"type":71,"value":4433}," — Vue Router composables and components",{"type":65,"tag":4435,"props":4436,"children":4437},"style",{},[4438],{"type":71,"value":4439},"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":4441,"total":2000},[4442,4459,4474,4490,4503,4522,4533],{"slug":4443,"name":4443,"fn":4444,"description":4445,"org":4446,"tags":4447,"stars":26,"repoUrl":27,"updatedAt":4458},"auth-and-guards","implement route protection in TanStack Router","Route protection with beforeLoad, redirect()\u002Fthrow redirect(), isRedirect helper, authenticated layout routes (_authenticated), non-redirect auth (inline login), RBAC with roles and permissions, auth provider integration (Auth0, Clerk, Supabase), router context for auth state.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4448,4451,4452,4454,4455],{"name":4449,"slug":4450,"type":15},"Auth","auth",{"name":24,"slug":25,"type":15},{"name":4453,"slug":38,"type":15},"Routing",{"name":9,"slug":8,"type":15},{"name":4456,"slug":4457,"type":15},"TanStack Router","tanstack-router","2026-07-30T05:27:07.639032",{"slug":4460,"name":4460,"fn":4461,"description":4462,"org":4463,"tags":4464,"stars":26,"repoUrl":27,"updatedAt":4473},"auth-server-primitives","implement server-side authentication primitives","Server-side authentication primitives for TanStack Start: session cookies (HttpOnly, Secure, SameSite, __Host- prefix), session read\u002Fissue\u002Fdestroy via createServerFn and middleware, OAuth authorization-code flow with state and PKCE, password-reset enumeration defense, CSRF for non-GET RPCs, rate limiting auth endpoints, session rotation on privilege change. Pairs with router-core\u002Fauth-and-guards for the routing side.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4465,4466,4469,4472],{"name":4449,"slug":4450,"type":15},{"name":4467,"slug":4468,"type":15},"OAuth","oauth",{"name":4470,"slug":4471,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-07-30T05:26:59.504396",{"slug":4475,"name":4475,"fn":4476,"description":4477,"org":4478,"tags":4479,"stars":26,"repoUrl":27,"updatedAt":4489},"code-splitting","configure code splitting in TanStack Router","Automatic code splitting (autoCodeSplitting), .lazy.tsx convention, createLazyFileRoute, createLazyRoute, lazyRouteComponent, getRouteApi for typed hooks in split files, codeSplitGroupings per-route override, splitBehavior programmatic config, critical vs non-critical properties.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4480,4483,4484,4487,4488],{"name":4481,"slug":4482,"type":15},"Engineering","engineering",{"name":24,"slug":25,"type":15},{"name":4485,"slug":4486,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},{"name":4456,"slug":4457,"type":15},"2026-07-30T05:27:11.494406",{"slug":4491,"name":4491,"fn":4492,"description":4493,"org":4494,"tags":4495,"stars":26,"repoUrl":27,"updatedAt":4502},"data-loading","manage data loading in TanStack Router","Route loader option, loaderDeps for cache keys, staleTime\u002FgcTime\u002F defaultPreloadStaleTime SWR caching, pendingComponent\u002FpendingMs\u002F pendingMinMs, errorComponent\u002FonError\u002FonCatch, beforeLoad, router context and createRootRouteWithContext DI pattern, router.invalidate, Await component, deferred data loading with unawaited promises.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4496,4499,4500,4501],{"name":4497,"slug":4498,"type":15},"Caching","caching",{"name":4485,"slug":4486,"type":15},{"name":9,"slug":8,"type":15},{"name":4456,"slug":4457,"type":15},"2026-07-30T05:26:54.487943",{"slug":4504,"name":4504,"fn":4505,"description":4506,"org":4507,"tags":4508,"stars":26,"repoUrl":27,"updatedAt":4521},"deployment","deploy TanStack Start applications","Deploy to Cloudflare Workers, Netlify, Vercel, Node.js\u002FDocker, Bun, Railway. Selective SSR (ssr option per route), SPA mode, static prerendering, ISR with Cache-Control headers, SEO and head management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4509,4512,4514,4517,4518],{"name":4510,"slug":4511,"type":15},"Cloudflare","cloudflare",{"name":4513,"slug":4504,"type":15},"Deployment",{"name":4515,"slug":4516,"type":15},"Netlify","netlify",{"name":9,"slug":8,"type":15},{"name":4519,"slug":4520,"type":15},"Vercel","vercel","2026-07-30T05:26:50.509927",{"slug":4523,"name":4523,"fn":4524,"description":4525,"org":4526,"tags":4527,"stars":26,"repoUrl":27,"updatedAt":4532},"execution-model","manage isomorphic execution models","Isomorphic-by-default principle, environment boundary functions (createServerFn, createServerOnlyFn, createClientOnlyFn, createIsomorphicFn), ClientOnly component, useHydrated hook, import protection, dead code elimination, environment variable safety (VITE_ prefix, process.env).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4528,4531],{"name":4529,"slug":4530,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},"2026-07-30T05:27:04.558441",{"slug":4534,"name":4534,"fn":4535,"description":4536,"org":4537,"tags":4538,"stars":26,"repoUrl":27,"updatedAt":4546},"middleware","implement TanStack Router middleware","createMiddleware, request middleware (.server only), server function middleware (.client + .server), context passing via next({ context }), sendContext for client-server transfer, global middleware via createStart in src\u002Fstart.ts, middleware factories, method order enforcement, fetch override precedence.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4539,4542,4543,4545],{"name":4540,"slug":4541,"type":15},"Backend","backend",{"name":24,"slug":25,"type":15},{"name":4544,"slug":4534,"type":15},"Middleware",{"name":9,"slug":8,"type":15},"2026-07-30T05:26:58.546019",{"items":4548,"total":4686},[4549,4563,4575,4587,4600,4612,4622,4632,4645,4655,4666,4676],{"slug":4550,"name":4550,"fn":4551,"description":4552,"org":4553,"tags":4554,"stars":4560,"repoUrl":4561,"updatedAt":4562},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4555,4558,4559],{"name":4556,"slug":4557,"type":15},"Data Analysis","data-analysis",{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":4564,"name":4564,"fn":4565,"description":4566,"org":4567,"tags":4568,"stars":4560,"repoUrl":4561,"updatedAt":4574},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4569,4572,4573],{"name":4570,"slug":4571,"type":15},"Debugging","debugging",{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":4576,"name":4576,"fn":4577,"description":4578,"org":4579,"tags":4580,"stars":4560,"repoUrl":4561,"updatedAt":4586},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4581,4582,4583],{"name":4556,"slug":4557,"type":15},{"name":9,"slug":8,"type":15},{"name":4584,"slug":4585,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":4588,"name":4588,"fn":4589,"description":4590,"org":4591,"tags":4592,"stars":4560,"repoUrl":4561,"updatedAt":4599},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4593,4596,4597,4598],{"name":4594,"slug":4595,"type":15},"Data Pipeline","data-pipeline",{"name":24,"slug":25,"type":15},{"name":4485,"slug":4486,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":4601,"name":4601,"fn":4602,"description":4603,"org":4604,"tags":4605,"stars":4560,"repoUrl":4561,"updatedAt":4611},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4606,4609,4610],{"name":4607,"slug":4608,"type":15},"Data Visualization","data-visualization",{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":4613,"name":4613,"fn":4614,"description":4615,"org":4616,"tags":4617,"stars":4560,"repoUrl":4561,"updatedAt":4621},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4618,4619,4620],{"name":4556,"slug":4557,"type":15},{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":4623,"name":4623,"fn":4624,"description":4625,"org":4626,"tags":4627,"stars":4560,"repoUrl":4561,"updatedAt":4631},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4628,4629,4630],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":4584,"slug":4585,"type":15},"2026-07-30T05:26:03.37801",{"slug":4633,"name":4633,"fn":4634,"description":4635,"org":4636,"tags":4637,"stars":4560,"repoUrl":4561,"updatedAt":4644},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4638,4641,4642,4643],{"name":4639,"slug":4640,"type":15},"CSS","css",{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":4584,"slug":4585,"type":15},"2026-07-30T05:25:55.377366",{"slug":4646,"name":4646,"fn":4647,"description":4648,"org":4649,"tags":4650,"stars":4560,"repoUrl":4561,"updatedAt":4654},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4651,4652,4653],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":4584,"slug":4585,"type":15},"2026-07-30T05:25:51.400011",{"slug":4656,"name":4656,"fn":4657,"description":4658,"org":4659,"tags":4660,"stars":4560,"repoUrl":4561,"updatedAt":4665},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4661,4662,4663,4664],{"name":4639,"slug":4640,"type":15},{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":4584,"slug":4585,"type":15},"2026-07-30T05:25:48.703799",{"slug":4667,"name":4667,"fn":4668,"description":4669,"org":4670,"tags":4671,"stars":4560,"repoUrl":4561,"updatedAt":4675},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4672,4673,4674],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":4584,"slug":4585,"type":15},"2026-07-30T05:25:47.367943",{"slug":4677,"name":4677,"fn":4678,"description":4679,"org":4680,"tags":4681,"stars":4560,"repoUrl":4561,"updatedAt":4685},"core","build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4682,4683,4684],{"name":4556,"slug":4557,"type":15},{"name":24,"slug":25,"type":15},{"name":4584,"slug":4585,"type":15},"2026-07-30T05:25:52.366295",125]