Full Code of TanStack/router for AI

main 21e39bde0832 cached
8559 files
17.6 MB
4.5M tokens
12733 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,687K chars total). Download the full file to get everything.
Repository: TanStack/router
Branch: main
Commit: 21e39bde0832
Files: 8559
Total size: 17.6 MB

Directory structure:
gitextract_94dotqtg/

├── .changeset/
│   └── config.json
├── .devcontainer/
│   └── devcontainer.json
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── config.yml
│   ├── renovate.json
│   └── workflows/
│       ├── autofix.yml
│       ├── bundle-size.yml
│       ├── check-skills.yml
│       ├── client-nav-benchmarks.yml
│       ├── labeler.yml
│       ├── notify-playbooks.yml
│       ├── pr.yml
│       ├── release.yml
│       └── validate-skills.yml
├── .gitignore
├── .npmrc
├── .nvmrc
├── .nx/
│   └── workflows/
│       └── dynamic-changesets.yaml
├── .prettierignore
├── AGENTS.md
├── CONTRIBUTING.md
├── DEBUGGING.md
├── LICENSE
├── README.md
├── _artifacts/
│   ├── domain_map.yaml
│   ├── skill_spec.md
│   ├── skill_tree.yaml
│   ├── start_domain_map.yaml
│   └── start_skill_tree.yaml
├── benchmarks/
│   ├── bundle-size/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── results/
│   │   │   └── .gitkeep
│   │   ├── scenarios/
│   │   │   ├── react-router-full/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── react-router-minimal/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── react-start-full/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── react-start-minimal/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-router-full/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-router-minimal/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-start-full/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-start-minimal/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── vue-router-full/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   └── vue-router-minimal/
│   │   │       ├── index.html
│   │   │       ├── src/
│   │   │       │   ├── main.tsx
│   │   │       │   └── routes/
│   │   │       │       ├── __root.tsx
│   │   │       │       └── index.tsx
│   │   │       └── vite.config.ts
│   │   └── tsconfig.json
│   ├── client-nav/
│   │   ├── README.md
│   │   ├── jsdom.ts
│   │   ├── package.json
│   │   ├── react/
│   │   │   ├── app.tsx
│   │   │   ├── setup.ts
│   │   │   ├── speed.bench.ts
│   │   │   ├── speed.flame.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── solid/
│   │   │   ├── app.tsx
│   │   │   ├── setup.ts
│   │   │   ├── speed.bench.ts
│   │   │   ├── speed.flame.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── tsconfig.json
│   │   ├── vitest.config.ts
│   │   ├── vitest.setup.ts
│   │   └── vue/
│   │       ├── app.tsx
│   │       ├── setup.ts
│   │       ├── speed.bench.ts
│   │       ├── speed.flame.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   └── ssr/
│       ├── README.md
│       ├── bench-utils.ts
│       ├── package.json
│       ├── react/
│       │   ├── speed.bench.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── $a.$b.$c.$d.tsx
│       │   │   │   ├── $a.$b.$c.tsx
│       │   │   │   ├── $a.$b.tsx
│       │   │   │   ├── $a.tsx
│       │   │   │   └── __root.tsx
│       │   │   └── workload.tsx
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── solid/
│       │   ├── speed.bench.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── $a.$b.$c.$d.tsx
│       │   │   │   ├── $a.$b.$c.tsx
│       │   │   │   ├── $a.$b.tsx
│       │   │   │   ├── $a.tsx
│       │   │   │   └── __root.tsx
│       │   │   └── workload.tsx
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── tsconfig.json
│       ├── vitest.config.ts
│       └── vue/
│           ├── speed.bench.ts
│           ├── src/
│           │   ├── routeTree.gen.ts
│           │   ├── router.tsx
│           │   ├── routes/
│           │   │   ├── $a.$b.$c.$d.tsx
│           │   │   ├── $a.$b.$c.tsx
│           │   │   ├── $a.$b.tsx
│           │   │   ├── $a.tsx
│           │   │   └── __root.tsx
│           │   └── workload.tsx
│           ├── tsconfig.json
│           └── vite.config.ts
├── docs/
│   ├── router/
│   │   ├── api/
│   │   │   ├── file-based-routing.md
│   │   │   ├── router/
│   │   │   │   ├── ActiveLinkOptionsType.md
│   │   │   │   ├── AsyncRouteComponentType.md
│   │   │   │   ├── FileRouteClass.md
│   │   │   │   ├── LinkOptionsType.md
│   │   │   │   ├── LinkPropsType.md
│   │   │   │   ├── MatchRouteOptionsType.md
│   │   │   │   ├── NavigateOptionsType.md
│   │   │   │   ├── NotFoundErrorType.md
│   │   │   │   ├── NotFoundRouteClass.md
│   │   │   │   ├── ParsedHistoryStateType.md
│   │   │   │   ├── ParsedLocationType.md
│   │   │   │   ├── RedirectType.md
│   │   │   │   ├── RegisterType.md
│   │   │   │   ├── RootRouteClass.md
│   │   │   │   ├── RouteApiClass.md
│   │   │   │   ├── RouteApiType.md
│   │   │   │   ├── RouteClass.md
│   │   │   │   ├── RouteMaskType.md
│   │   │   │   ├── RouteMatchType.md
│   │   │   │   ├── RouteOptionsType.md
│   │   │   │   ├── RouteType.md
│   │   │   │   ├── RouterClass.md
│   │   │   │   ├── RouterEventsType.md
│   │   │   │   ├── RouterOptionsType.md
│   │   │   │   ├── RouterStateType.md
│   │   │   │   ├── RouterType.md
│   │   │   │   ├── ToMaskOptionsType.md
│   │   │   │   ├── ToOptionsType.md
│   │   │   │   ├── UseMatchRouteOptionsType.md
│   │   │   │   ├── ViewTransitionOptionsType.md
│   │   │   │   ├── awaitComponent.md
│   │   │   │   ├── catchBoundaryComponent.md
│   │   │   │   ├── catchNotFoundComponent.md
│   │   │   │   ├── clientOnlyComponent.md
│   │   │   │   ├── createFileRouteFunction.md
│   │   │   │   ├── createLazyFileRouteFunction.md
│   │   │   │   ├── createLazyRouteFunction.md
│   │   │   │   ├── createRootRouteFunction.md
│   │   │   │   ├── createRootRouteWithContextFunction.md
│   │   │   │   ├── createRouteFunction.md
│   │   │   │   ├── createRouteMaskFunction.md
│   │   │   │   ├── createRouterFunction.md
│   │   │   │   ├── defaultGlobalNotFoundComponent.md
│   │   │   │   ├── deferFunction.md
│   │   │   │   ├── errorComponentComponent.md
│   │   │   │   ├── getRouteApiFunction.md
│   │   │   │   ├── historyStateInterface.md
│   │   │   │   ├── isNotFoundFunction.md
│   │   │   │   ├── isRedirectFunction.md
│   │   │   │   ├── lazyRouteComponentFunction.md
│   │   │   │   ├── linkComponent.md
│   │   │   │   ├── linkOptions.md
│   │   │   │   ├── matchRouteComponent.md
│   │   │   │   ├── navigateComponent.md
│   │   │   │   ├── notFoundComponentComponent.md
│   │   │   │   ├── notFoundFunction.md
│   │   │   │   ├── outletComponent.md
│   │   │   │   ├── redirectFunction.md
│   │   │   │   ├── retainSearchParamsFunction.md
│   │   │   │   ├── rootRouteWithContextFunction.md
│   │   │   │   ├── stripSearchParamsFunction.md
│   │   │   │   ├── useAwaitedHook.md
│   │   │   │   ├── useBlockerHook.md
│   │   │   │   ├── useCanGoBack.md
│   │   │   │   ├── useChildMatchesHook.md
│   │   │   │   ├── useLinkPropsHook.md
│   │   │   │   ├── useLoaderDataHook.md
│   │   │   │   ├── useLoaderDepsHook.md
│   │   │   │   ├── useLocationHook.md
│   │   │   │   ├── useMatchHook.md
│   │   │   │   ├── useMatchRouteHook.md
│   │   │   │   ├── useMatchesHook.md
│   │   │   │   ├── useNavigateHook.md
│   │   │   │   ├── useParamsHook.md
│   │   │   │   ├── useParentMatchesHook.md
│   │   │   │   ├── useRouteContextHook.md
│   │   │   │   ├── useRouterHook.md
│   │   │   │   ├── useRouterStateHook.md
│   │   │   │   └── useSearchHook.md
│   │   │   └── router.md
│   │   ├── comparison.md
│   │   ├── config.json
│   │   ├── decisions-on-dx.md
│   │   ├── devtools.md
│   │   ├── eslint/
│   │   │   ├── create-route-property-order.md
│   │   │   └── eslint-plugin-router.md
│   │   ├── faq.md
│   │   ├── guide/
│   │   │   ├── authenticated-routes.md
│   │   │   ├── automatic-code-splitting.md
│   │   │   ├── code-splitting.md
│   │   │   ├── creating-a-router.md
│   │   │   ├── custom-link.md
│   │   │   ├── custom-search-param-serialization.md
│   │   │   ├── data-loading.md
│   │   │   ├── data-mutations.md
│   │   │   ├── deferred-data-loading.md
│   │   │   ├── document-head-management.md
│   │   │   ├── external-data-loading.md
│   │   │   ├── history-types.md
│   │   │   ├── internationalization-i18n.md
│   │   │   ├── link-options.md
│   │   │   ├── navigation-blocking.md
│   │   │   ├── navigation.md
│   │   │   ├── not-found-errors.md
│   │   │   ├── outlets.md
│   │   │   ├── parallel-routes.md
│   │   │   ├── path-params.md
│   │   │   ├── preloading.md
│   │   │   ├── render-optimizations.md
│   │   │   ├── route-masking.md
│   │   │   ├── router-context.md
│   │   │   ├── scroll-restoration.md
│   │   │   ├── search-params.md
│   │   │   ├── ssr.md
│   │   │   ├── static-route-data.md
│   │   │   ├── type-safety.md
│   │   │   ├── type-utilities.md
│   │   │   └── url-rewrites.md
│   │   ├── how-to/
│   │   │   ├── README.md
│   │   │   ├── arrays-objects-dates-search-params.md
│   │   │   ├── debug-router-issues.md
│   │   │   ├── deploy-to-production.md
│   │   │   ├── drafts/
│   │   │   │   ├── README.md
│   │   │   │   ├── build-search-filtering-systems.draft.md
│   │   │   │   ├── optimize-search-param-performance.draft.md
│   │   │   │   └── search-params-in-forms.draft.md
│   │   │   ├── install.md
│   │   │   ├── integrate-chakra-ui.md
│   │   │   ├── integrate-framer-motion.md
│   │   │   ├── integrate-material-ui.md
│   │   │   ├── integrate-shadcn-ui.md
│   │   │   ├── migrate-from-react-router.md
│   │   │   ├── navigate-with-search-params.md
│   │   │   ├── setup-auth-providers.md
│   │   │   ├── setup-authentication.md
│   │   │   ├── setup-basic-search-params.md
│   │   │   ├── setup-rbac.md
│   │   │   ├── setup-ssr.md
│   │   │   ├── setup-testing.md
│   │   │   ├── share-search-params-across-routes.md
│   │   │   ├── test-file-based-routing.md
│   │   │   ├── use-environment-variables.md
│   │   │   └── validate-search-params.md
│   │   ├── installation/
│   │   │   ├── manual.md
│   │   │   ├── migrate-from-react-location.md
│   │   │   ├── migrate-from-react-router.md
│   │   │   ├── with-esbuild.md
│   │   │   ├── with-router-cli.md
│   │   │   ├── with-rspack.md
│   │   │   ├── with-vite.md
│   │   │   └── with-webpack.md
│   │   ├── integrations/
│   │   │   └── query.md
│   │   ├── llm-support.md
│   │   ├── overview.md
│   │   ├── quick-start.md
│   │   └── routing/
│   │       ├── code-based-routing.md
│   │       ├── file-based-routing.md
│   │       ├── file-naming-conventions.md
│   │       ├── route-matching.md
│   │       ├── route-trees.md
│   │       ├── routing-concepts.md
│   │       └── virtual-file-routes.md
│   └── start/
│       ├── config.json
│       └── framework/
│           ├── react/
│           │   ├── build-from-scratch.md
│           │   ├── comparison.md
│           │   ├── getting-started.md
│           │   ├── guide/
│           │   │   ├── authentication-overview.md
│           │   │   ├── authentication.md
│           │   │   ├── cdn-asset-urls.md
│           │   │   ├── client-entry-point.md
│           │   │   ├── code-execution-patterns.md
│           │   │   ├── databases.md
│           │   │   ├── environment-functions.md
│           │   │   ├── environment-variables.md
│           │   │   ├── error-boundaries.md
│           │   │   ├── execution-model.md
│           │   │   ├── hosting.md
│           │   │   ├── hydration-errors.md
│           │   │   ├── import-protection.md
│           │   │   ├── isr.md
│           │   │   ├── llmo.md
│           │   │   ├── middleware.md
│           │   │   ├── observability.md
│           │   │   ├── path-aliases.md
│           │   │   ├── rendering-markdown.md
│           │   │   ├── routing.md
│           │   │   ├── selective-ssr.md
│           │   │   ├── seo.md
│           │   │   ├── server-entry-point.md
│           │   │   ├── server-functions.md
│           │   │   ├── server-routes.md
│           │   │   ├── spa-mode.md
│           │   │   ├── static-prerendering.md
│           │   │   ├── static-server-functions.md
│           │   │   ├── streaming-data-from-server-functions.md
│           │   │   └── tailwind-integration.md
│           │   ├── migrate-from-next-js.md
│           │   ├── overview.md
│           │   ├── quick-start.md
│           │   ├── start-vs-nextjs.md
│           │   └── tutorial/
│           │       ├── fetching-external-api.md
│           │       └── reading-writing-file.md
│           └── solid/
│               ├── build-from-scratch.md
│               ├── getting-started.md
│               ├── guide/
│               │   ├── authentication-overview.md
│               │   ├── authentication.md
│               │   ├── client-entry-point.md
│               │   ├── code-execution-patterns.md
│               │   ├── databases.md
│               │   ├── environment-functions.md
│               │   ├── environment-variables.md
│               │   ├── error-boundaries.md
│               │   ├── execution-model.md
│               │   ├── hosting.md
│               │   ├── hydration-errors.md
│               │   ├── import-protection.md
│               │   ├── llmo.md
│               │   ├── middleware.md
│               │   ├── observability.md
│               │   ├── path-aliases.md
│               │   ├── reading-writing-file.md
│               │   ├── routing.md
│               │   ├── selective-ssr.md
│               │   ├── seo.md
│               │   ├── server-entry-point.md
│               │   ├── server-functions.md
│               │   ├── server-routes.md
│               │   ├── spa-mode.md
│               │   ├── static-prerendering.md
│               │   ├── static-server-functions.md
│               │   └── tailwind-integration.md
│               ├── overview.md
│               ├── quick-start.md
│               └── tutorial/
│                   ├── fetching-external-api.md
│                   └── reading-writing-file.md
├── e2e/
│   ├── e2e-utils/
│   │   ├── eslint.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── derivePort.ts
│   │   │   ├── e2eSetupTeardown.ts
│   │   │   ├── fixture.ts
│   │   │   ├── index.ts
│   │   │   ├── localDummyServer.ts
│   │   │   ├── posts.ts
│   │   │   ├── resolve-runtime-suffix.ts
│   │   │   ├── to-runtime-path.ts
│   │   │   └── users.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── react-router/
│   │   ├── basepath-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── redirect.tsx
│   │   │   │       ├── redirectReload.tsx
│   │   │   │       └── scroll-error.tsx
│   │   │   ├── tests/
│   │   │   │   ├── reload-document.test.ts
│   │   │   │   ├── scroll-restoration-session-storage-error.test.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── esbuild.config.js
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── (group)/
│   │   │   │       │   ├── _layout.inside.tsx
│   │   │   │       │   ├── _layout.tsx
│   │   │   │       │   ├── lazyinside.lazy.tsx
│   │   │   │       │   └── lazyinside.tsx
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── _layout/
│   │   │   │       │   ├── _layout-2/
│   │   │   │       │   │   ├── layout-a.tsx
│   │   │   │       │   │   └── layout-b.tsx
│   │   │   │       │   └── _layout-2.tsx
│   │   │   │       ├── _layout.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── posts.$postId.tsx
│   │   │   │       ├── posts.index.tsx
│   │   │   │       └── posts.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   └── RenderCounter.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.lazy.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── anchor.tsx
│   │   │   │   │   ├── component-types-test.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── fullpath-test/
│   │   │   │   │   │   ├── _layout/
│   │   │   │   │   │   │   ├── $id.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── hover-preload-hash.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── lazy-error.lazy.tsx
│   │   │   │   │   ├── lazy-error.tsx
│   │   │   │   │   ├── masks.admin.$userId.tsx
│   │   │   │   │   ├── masks.public.$username.tsx
│   │   │   │   │   ├── masks.tsx
│   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo_.qux.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar_.qux.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $baz.foo.tsx
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   ├── baz.foo.tsx
│   │   │   │   │   │   │   ├── baz.index.tsx
│   │   │   │   │   │   │   ├── baz.route.tsx
│   │   │   │   │   │   │   ├── baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── prefix/
│   │   │   │   │   │   │   ├── prefix{$baz}.foo.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.index.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.route.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   └── suffix/
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── {$baz}suffix.foo.tsx
│   │   │   │   │   │       ├── {$baz}suffix.index.tsx
│   │   │   │   │   │       ├── {$baz}suffix.route.tsx
│   │   │   │   │   │       └── {$baz}suffix_.bar.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── params-ps/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $foo/
│   │   │   │   │   │   │   │   ├── $bar.$baz.tsx
│   │   │   │   │   │   │   │   ├── $bar.route.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── prefix{$foo}.tsx
│   │   │   │   │   │   │   └── {$foo}suffix.tsx
│   │   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   │   ├── $foo_/
│   │   │   │   │   │   │   │   ├── $bar.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── strict-false/
│   │   │   │   │   │   │   ├── $version.route.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── wildcard/
│   │   │   │   │   │       ├── $.tsx
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── prefix@대{$}.tsx
│   │   │   │   │   │       ├── prefix{$}.tsx
│   │   │   │   │   │       ├── {$}suffix.tsx
│   │   │   │   │   │       └── {$}suffix@대.tsx
│   │   │   │   │   ├── params.single.$value.tsx
│   │   │   │   │   ├── pathless-layout/
│   │   │   │   │   │   ├── _layout/
│   │   │   │   │   │   │   ├── child.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── destination.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   ├── via-loader.tsx
│   │   │   │   │   │   │   ├── via-route-redirect-beforeLoad.tsx
│   │   │   │   │   │   │   ├── via-route-redirect-loader.tsx
│   │   │   │   │   │   │   ├── via-routeApi-redirect-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-routeApi-redirect-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── preload/
│   │   │   │   │   │       ├── first.tsx
│   │   │   │   │   │       ├── second.tsx
│   │   │   │   │   │       └── third.tsx
│   │   │   │   │   ├── relative/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── link/
│   │   │   │   │   │   │   ├── nested/
│   │   │   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   │   ├── $path/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── relative-link-a.tsx
│   │   │   │   │   │   │   ├── relative-link-b.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── with-search/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   └── useNavigate/
│   │   │   │   │   │       ├── nested/
│   │   │   │   │   │       │   ├── deep/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── path/
│   │   │   │   │   │       │   ├── $path/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── relative-useNavigate-a.tsx
│   │   │   │   │   │       ├── relative-useNavigate-b.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       └── with-search/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── structural-sharing.$enabled.tsx
│   │   │   │   │   └── 대한민국/
│   │   │   │   │       ├── route.tsx
│   │   │   │   │       ├── wildcard.$.tsx
│   │   │   │   │       └── 🚀.$id.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── fullpath-types.spec.ts
│   │   │   │   ├── hover-preload-hash.spec.ts
│   │   │   │   ├── mask.spec.ts
│   │   │   │   ├── non-nested-paths.spec.ts
│   │   │   │   ├── open-redirect-prevention.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── relative.spec.ts
│   │   │   │   ├── scroll-into-view.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-file-based-code-splitting/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── shared-singleton.tsx
│   │   │   │   │   ├── viewport-test.tsx
│   │   │   │   │   └── without-loader.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── preload.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── shared-bindings.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-react-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── router-events.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── escaped-special-strings/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── [_]layout.tsx
│   │   │   │       ├── [index].tsx
│   │   │   │       ├── [lazy].tsx
│   │   │   │       ├── [route].tsx
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── blog[_].tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── escaped-routes.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── generator-cli-only/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── tsr.config.json
│   │   │   └── vite.config.js
│   │   ├── i18n-paraglide/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── messages/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── project.inlang/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── project_id
│   │   │   │   └── settings.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── navigation.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── js-only-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.jsx
│   │   │   │   ├── posts.js
│   │   │   │   ├── routeTree.gen.js
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.jsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.jsx
│   │   │   │   │   │   │   └── route-b.jsx
│   │   │   │   │   │   └── _nested-layout.jsx
│   │   │   │   │   ├── _pathlessLayout.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   ├── posts.$postId.jsx
│   │   │   │   │   ├── posts.index.jsx
│   │   │   │   │   └── posts.route.jsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── rspack-basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── rspack-basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── routes.ts
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── tsr.config.json
│   │   ├── scroll-restoration-sandbox-vite/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.browser.config.ts
│   │   │   ├── playwright.hash.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── lazy-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-page.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.tsx
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── page-with-search.tsx
│   │   │   │   │   │   └── virtual-page.lazy.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── sentry-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   └── view-transitions/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .vscode/
│   │       │   └── settings.json
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── src/
│   │       │   ├── main.tsx
│   │       │   ├── posts.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── routes/
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── how-it-works.tsx
│   │       │   │   ├── index.tsx
│   │       │   │   ├── posts.$postId.tsx
│   │       │   │   ├── posts.index.tsx
│   │       │   │   └── posts.route.tsx
│   │       │   └── styles.css
│   │       ├── tests/
│   │       │   ├── app.spec.ts
│   │       │   └── setup/
│   │       │       ├── global.setup.ts
│   │       │       └── global.teardown.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.js
│   ├── react-start/
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── async-user-script.js
│   │   │   │   ├── before-scripts-async-script.js
│   │   │   │   ├── before-scripts-script.js
│   │   │   │   ├── head-async-script.js
│   │   │   │   ├── head-script.js
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   ├── site.webmanifest
│   │   │   │   └── user-script.js
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── NotFound.tsx
│   │   │   │   │   ├── RedirectOnClick.tsx
│   │   │   │   │   ├── WindowSize.tsx
│   │   │   │   │   └── throwRedirect.ts
│   │   │   │   ├── raw-stream-fns.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── async-scripts.tsx
│   │   │   │   │   ├── client-only.tsx
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── foo/
│   │   │   │   │   │   └── $bar/
│   │   │   │   │   │       └── $qux/
│   │   │   │   │   │           ├── _here/
│   │   │   │   │   │           │   └── index.tsx
│   │   │   │   │   │           └── _here.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── inline-scripts.tsx
│   │   │   │   │   ├── links.tsx
│   │   │   │   │   ├── multi-cookie-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── not-found/
│   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   ├── b/
│   │   │   │   │   │   │   │   ├── c/
│   │   │   │   │   │   │   │   │   ├── d.tsx
│   │   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── parent-boundary/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── via-beforeLoad.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── via-beforeLoad-target-root.tsx
│   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── raw-stream/
│   │   │   │   │   │   ├── client-call.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── ssr-binary-hint.tsx
│   │   │   │   │   │   ├── ssr-mixed.tsx
│   │   │   │   │   │   ├── ssr-multiple.tsx
│   │   │   │   │   │   ├── ssr-single.tsx
│   │   │   │   │   │   └── ssr-text-hint.tsx
│   │   │   │   │   ├── raw-stream.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── serverFn/
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   │   ├── via-loader.tsx
│   │   │   │   │   │   │   │   └── via-useServerFn.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── scripts.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── loader-throws-redirect.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── specialChars/
│   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   ├── hash.tsx
│   │   │   │   │   │   ├── malformed/
│   │   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── search.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── search.tsx
│   │   │   │   │   │   └── 대한민국.tsx
│   │   │   │   │   ├── stream.tsx
│   │   │   │   │   ├── type-only-reexport.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── shared-lib/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── middleware.ts
│   │   │   │   │   └── typedefs/
│   │   │   │   │       ├── actions.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── client-only.spec.ts
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   ├── not-found.spec.ts
│   │   │   │   ├── open-redirect-prevention.spec.ts
│   │   │   │   ├── prerendering.spec.ts
│   │   │   │   ├── raw-stream.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── root-scripts.spec.ts
│   │   │   │   ├── script-duplication.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   ├── special-characters.spec.ts
│   │   │   │   ├── streaming.spec.ts
│   │   │   │   ├── type-only-reexport.spec.ts
│   │   │   │   └── utils/
│   │   │   │       ├── isPrerender.ts
│   │   │   │       ├── isPreview.ts
│   │   │   │       └── isSpaMode.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-auth/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── prisma/
│   │   │   │   ├── migrations/
│   │   │   │   │   ├── 20240811183753_init/
│   │   │   │   │   │   └── migration.sql
│   │   │   │   │   └── migration_lock.toml
│   │   │   │   └── schema.prisma
│   │   │   ├── prisma.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Auth.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── Login.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useMutation.ts
│   │   │   │   ├── prisma-generated/
│   │   │   │   │   ├── browser.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── commonInputTypes.ts
│   │   │   │   │   ├── enums.ts
│   │   │   │   │   ├── internal/
│   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   ├── prismaNamespace.ts
│   │   │   │   │   │   └── prismaNamespaceBrowser.ts
│   │   │   │   │   ├── models/
│   │   │   │   │   │   └── User.ts
│   │   │   │   │   └── models.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _authed/
│   │   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   ├── _authed.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── login.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   └── signup.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.ts
│   │   │   │       ├── prisma.ts
│   │   │   │       ├── seo.ts
│   │   │   │       └── session.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── mock-db-setup.test.ts
│   │   │   │   └── mock-db-teardown.test.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-cloudflare/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── static.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       └── seo.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── vite.config.ts
│   │   │   ├── worker-configuration.d.ts
│   │   │   └── wrangler.jsonc
│   │   ├── basic-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── redirect.tsx
│   │   │   │   │   ├── suspense-transition.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   └── count/
│   │   │   │   │   │       └── query.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── transition.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-rsc/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   └── posts_.$postId.deep.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── renderPosts.tsx
│   │   │   │       └── seo.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-tsr-config/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── clerk-basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _authed/
│   │   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   │   ├── posts.tsx
│   │   │   │   │   │   └── profile.$.tsx
│   │   │   │   │   ├── _authed.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.ts
│   │   │   │       └── seo.ts
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── csp/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── external.css
│   │   │   │   └── external.js
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   └── csp.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── css-modules/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── shared-widget-lazy.tsx
│   │   │   │   │   └── shared-widget.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── lazy-css-lazy.tsx
│   │   │   │   │   ├── lazy-css-static.tsx
│   │   │   │   │   ├── modules.tsx
│   │   │   │   │   ├── quotes.tsx
│   │   │   │   │   └── sass-mixin.tsx
│   │   │   │   └── styles/
│   │   │   │       ├── app.scss
│   │   │   │       ├── card.module.css
│   │   │   │       ├── center-mixin.scss
│   │   │   │       ├── global.css
│   │   │   │       ├── mixin-consumer.scss
│   │   │   │       ├── quotes.css
│   │   │   │       └── shared-widget.module.css
│   │   │   ├── tests/
│   │   │   │   ├── css.dev.spec.ts
│   │   │   │   ├── css.prod.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── vite.config.cloudflare.ts
│   │   │   ├── vite.config.ts
│   │   │   └── wrangler.jsonc
│   │   ├── custom-basepath/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── express-server.ts
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   ├── navigate-test.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── throw-it.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── basepath.ts
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── dev-ssr-styles/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── env.ts
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── flamegraph-bench/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── nested/
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.$y.$z.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.$y.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.tsx
│   │   │   │   │   │   ├── $a.$b.$c.tsx
│   │   │   │   │   │   ├── $a.$b.tsx
│   │   │   │   │   │   └── $a.tsx
│   │   │   │   │   ├── page.$id.tsx
│   │   │   │   │   └── search.tsx
│   │   │   │   └── server.ts
│   │   │   ├── tests/
│   │   │   │   └── bench.js
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── i18n-paraglide/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── .vscode/
│   │   │   │   ├── extensions.json
│   │   │   │   └── settings.json
│   │   │   ├── messages/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── project.inlang/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── project_id
│   │   │   │   └── settings.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles.css
│   │   │   │   └── utils/
│   │   │   │       ├── prerender.ts
│   │   │   │       ├── seo.ts
│   │   │   │       └── translated-pathnames.ts
│   │   │   ├── tests/
│   │   │   │   └── navigation.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── import-protection/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── alias-path-leak.tsx
│   │   │   │   │   ├── alias-path-namespace-leak.tsx
│   │   │   │   │   ├── barrel-false-positive.tsx
│   │   │   │   │   ├── beforeload-leak.tsx
│   │   │   │   │   ├── client-only-jsx.tsx
│   │   │   │   │   ├── client-only-violations.tsx
│   │   │   │   │   ├── component-server-leak.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── leaky-server-import.tsx
│   │   │   │   │   ├── noexternal-client-pkg.tsx
│   │   │   │   │   └── non-alias-namespace-leak.tsx
│   │   │   │   └── violations/
│   │   │   │       ├── barrel-reexport/
│   │   │   │       │   ├── db.server.ts
│   │   │   │       │   ├── foo.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   └── shared.ts
│   │   │   │       ├── beforeload-server-leak.ts
│   │   │   │       ├── boundary-safe.ts
│   │   │   │       ├── browser-api.client.ts
│   │   │   │       ├── compiler-leak.ts
│   │   │   │       ├── cross-boundary-leak/
│   │   │   │       │   ├── leaky-consumer.ts
│   │   │   │       │   ├── safe-consumer.ts
│   │   │   │       │   └── shared-util.ts
│   │   │   │       ├── cross-boundary-safe/
│   │   │   │       │   ├── auth-wrapper.ts
│   │   │   │       │   ├── session-util.ts
│   │   │   │       │   └── usage.ts
│   │   │   │       ├── db-credentials.server.ts
│   │   │   │       ├── edge-1.ts
│   │   │   │       ├── edge-2.ts
│   │   │   │       ├── edge-3.ts
│   │   │   │       ├── edge-a.ts
│   │   │   │       ├── factory-safe/
│   │   │   │       │   ├── createSecretFactory.ts
│   │   │   │       │   └── usage.ts
│   │   │   │       ├── leaky-server-import.ts
│   │   │   │       ├── marked-client-only-edge.ts
│   │   │   │       ├── marked-client-only.ts
│   │   │   │       ├── marked-server-only-edge.ts
│   │   │   │       ├── marked-server-only.ts
│   │   │   │       ├── secret.server.ts
│   │   │   │       └── window-size.client.tsx
│   │   │   ├── tests/
│   │   │   │   ├── error-mode.setup.ts
│   │   │   │   ├── error-mode.spec.ts
│   │   │   │   ├── import-protection.spec.ts
│   │   │   │   ├── utils/
│   │   │   │   │   └── isErrorMode.ts
│   │   │   │   ├── violations.setup.ts
│   │   │   │   └── violations.utils.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── import-protection-custom-config/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── backend-leak.tsx
│   │   │   │       ├── frontend-leak.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── custom-config.spec.ts
│   │   │   │   ├── error-mode.setup.ts
│   │   │   │   ├── error-mode.spec.ts
│   │   │   │   ├── utils/
│   │   │   │   │   └── isErrorMode.ts
│   │   │   │   ├── violations.setup.ts
│   │   │   │   └── violations.utils.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── query-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── queryOptions.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── loader-fetchQuery/
│   │   │   │   │   │   └── $type.tsx
│   │   │   │   │   ├── useQuery.tsx
│   │   │   │   │   └── useSuspenseQuery.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── with-loader.tsx
│   │   │   │   │   │   └── with-search.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── selective-ssr/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   ├── search.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── serialization-adapters/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── CustomError.ts
│   │   │   │   ├── data.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── server-function/
│   │   │   │   │   │   ├── custom-error.tsx
│   │   │   │   │   │   └── nested.tsx
│   │   │   │   │   └── ssr/
│   │   │   │   │       ├── data-only.tsx
│   │   │   │   │       ├── nested.tsx
│   │   │   │   │       └── stream.tsx
│   │   │   │   ├── start.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-functions/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── functions/
│   │   │   │   │   └── fnOnlyCalledByServer.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── abort-signal/
│   │   │   │   │   │   ├── $method.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── async-validation.tsx
│   │   │   │   │   ├── consistent.tsx
│   │   │   │   │   ├── cookies/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── set.tsx
│   │   │   │   │   ├── custom-fetch.tsx
│   │   │   │   │   ├── dead-code-preserve.tsx
│   │   │   │   │   ├── env-only.tsx
│   │   │   │   │   ├── factory/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── createBarServerFn.ts
│   │   │   │   │   │   │   ├── createFakeFn.ts
│   │   │   │   │   │   │   ├── createFooServerFn.ts
│   │   │   │   │   │   │   ├── functions.ts
│   │   │   │   │   │   │   ├── nestedReexportA.ts
│   │   │   │   │   │   │   ├── nestedReexportB.ts
│   │   │   │   │   │   │   ├── nestedReexportC.ts
│   │   │   │   │   │   │   ├── reexportIndex.ts
│   │   │   │   │   │   │   ├── reexportWrapper.ts
│   │   │   │   │   │   │   ├── starReexportIndex.ts
│   │   │   │   │   │   │   └── starReexportWrapper.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── formdata-context.tsx
│   │   │   │   │   ├── formdata-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.$name.tsx
│   │   │   │   │   ├── function-metadata/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── normalServerFn.ts
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── function-method/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── headers.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── isomorphic-fns.tsx
│   │   │   │   │   ├── method-not-allowed/
│   │   │   │   │   │   ├── $method.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── middleware/
│   │   │   │   │   │   ├── catch-handler-error.tsx
│   │   │   │   │   │   ├── client-middleware-router.tsx
│   │   │   │   │   │   ├── function-metadata.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── middleware-factory.tsx
│   │   │   │   │   │   ├── redirect-with-middleware/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── target.tsx
│   │   │   │   │   │   ├── request-middleware.tsx
│   │   │   │   │   │   ├── send-serverFn.tsx
│   │   │   │   │   │   ├── server-import-middleware.tsx
│   │   │   │   │   │   └── unhandled-exception.tsx
│   │   │   │   │   ├── multipart.tsx
│   │   │   │   │   ├── primitives/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── raw-response.tsx
│   │   │   │   │   ├── redirect-test/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── redirect-test-ssr/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── return-null.tsx
│   │   │   │   │   ├── serialize-form-data.tsx
│   │   │   │   │   ├── server-fn-in-client-only-fn.tsx
│   │   │   │   │   ├── server-only-fn.tsx
│   │   │   │   │   ├── status.tsx
│   │   │   │   │   └── submit-post-formdata.tsx
│   │   │   │   ├── start.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── server-functions.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-functions-global-middleware/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── multiple-server-functions.tsx
│   │   │   │   │   ├── pathname-middleware.tsx
│   │   │   │   │   └── simple.tsx
│   │   │   │   ├── start.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── global-middleware.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── middleware-context.ts
│   │   │   │   │   │   ├── only-any.ts
│   │   │   │   │   │   └── params/
│   │   │   │   │   │       └── $foo/
│   │   │   │   │   │           ├── $bar.ts
│   │   │   │   │   │           └── route.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── merge-middleware-context.tsx
│   │   │   │   │   └── methods/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       ├── only-any.tsx
│   │   │   │   │       └── route.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── server-routes.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-routes-global-middleware/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── server-route-with-middleware.tsx
│   │   │   │   ├── start.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── server-routes-global-middleware.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── spa-mode/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── split-base-and-basepath/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── prod-server.js
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── static-server-functions/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── posts.index.tsx
│   │   │   │       └── posts.tsx
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── streaming-ssr/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── concurrent.tsx
│   │   │   │       ├── deferred.tsx
│   │   │   │       ├── fast-serial.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── many-promises.tsx
│   │   │   │       ├── nested-deferred.tsx
│   │   │   │       ├── query-heavy.tsx
│   │   │   │       ├── slow-render.tsx
│   │   │   │       ├── stream.tsx
│   │   │   │       └── sync-only.tsx
│   │   │   ├── tests/
│   │   │   │   ├── client-navigation.spec.ts
│   │   │   │   ├── concurrent.spec.ts
│   │   │   │   ├── deferred.spec.ts
│   │   │   │   ├── fast-serial.spec.ts
│   │   │   │   ├── fixtures.ts
│   │   │   │   ├── home.spec.ts
│   │   │   │   ├── many-promises.spec.ts
│   │   │   │   ├── nested-deferred.spec.ts
│   │   │   │   ├── query-heavy.spec.ts
│   │   │   │   ├── slow-render.spec.ts
│   │   │   │   ├── stream.spec.ts
│   │   │   │   └── sync-only.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── transform-asset-urls/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.module.css
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── server.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   ├── cdn-server.mjs
│   │   │   │   └── transform-asset-urls.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── virtual-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── pipe.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── special-characters.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   └── website/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .prettierignore
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── public/
│   │       │   └── site.webmanifest
│   │       ├── src/
│   │       │   ├── components/
│   │       │   │   ├── DefaultCatchBoundary.tsx
│   │       │   │   └── NotFound.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── router.tsx
│   │       │   ├── routes/
│   │       │   │   ├── $project.$version.docs.framework.$framework.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.examples.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.index.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.{$}[.]md.tsx
│   │       │   │   ├── $project.$version.docs.index.tsx
│   │       │   │   ├── $project.index.tsx
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── _library.$project.$version.index.tsx
│   │       │   │   ├── _library.$project.tsx
│   │       │   │   ├── _library.index.tsx
│   │       │   │   └── _library.tsx
│   │       │   ├── server/
│   │       │   │   ├── document.tsx
│   │       │   │   └── projects.tsx
│   │       │   ├── styles/
│   │       │   │   └── app.css
│   │       │   └── utils/
│   │       │       └── seo.ts
│   │       ├── tests/
│   │       │   └── app.spec.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   ├── solid-router/
│   │   ├── basepath-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── reload-document.test.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── esbuild.config.js
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── (group)/
│   │   │   │       │   ├── _layout.inside.tsx
│   │   │   │       │   ├── _layout.tsx
│   │   │   │       │   ├── lazyinside.lazy.tsx
│   │   │   │       │   └── lazyinside.tsx
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── _layout/
│   │   │   │       │   ├── _layout-2/
│   │   │   │       │   │   ├── layout-a.tsx
│   │   │   │       │   │   └── layout-b.tsx
│   │   │   │       │   └── _layout-2.tsx
│   │   │   │       ├── _layout.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── posts.$postId.tsx
│   │   │   │       ├── posts.index.tsx
│   │   │   │       └── posts.tsx
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   └── tsconfig.json
│   │   ├── basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.lazy.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── anchor.tsx
│   │   │   │   │   ├── component-types-test.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── hover-preload-hash.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── masks.admin.$userId.tsx
│   │   │   │   │   ├── masks.public.$username.tsx
│   │   │   │   │   ├── masks.tsx
│   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo_.qux.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar_.qux.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $baz.foo.tsx
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   ├── baz.foo.tsx
│   │   │   │   │   │   │   ├── baz.index.tsx
│   │   │   │   │   │   │   ├── baz.route.tsx
│   │   │   │   │   │   │   ├── baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── prefix/
│   │   │   │   │   │   │   ├── prefix{$baz}.foo.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.index.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.route.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   └── suffix/
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── {$baz}suffix.foo.tsx
│   │   │   │   │   │       ├── {$baz}suffix.index.tsx
│   │   │   │   │   │       ├── {$baz}suffix.route.tsx
│   │   │   │   │   │       └── {$baz}suffix_.bar.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── params-ps/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $foo/
│   │   │   │   │   │   │   │   ├── $bar.$baz.tsx
│   │   │   │   │   │   │   │   ├── $bar.route.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── prefix{$foo}.tsx
│   │   │   │   │   │   │   └── {$foo}suffix.tsx
│   │   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   │   ├── $foo_/
│   │   │   │   │   │   │   │   ├── $bar.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── wildcard/
│   │   │   │   │   │       ├── $.tsx
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── prefix@대{$}.tsx
│   │   │   │   │   │       ├── prefix{$}.tsx
│   │   │   │   │   │       ├── {$}suffix.tsx
│   │   │   │   │   │       └── {$}suffix@대.tsx
│   │   │   │   │   ├── params.single.$value.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── preload/
│   │   │   │   │   │       ├── first.tsx
│   │   │   │   │   │       ├── second.tsx
│   │   │   │   │   │       └── third.tsx
│   │   │   │   │   ├── relative/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── link/
│   │   │   │   │   │   │   ├── nested/
│   │   │   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   │   ├── $path/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── relative-link-a.tsx
│   │   │   │   │   │   │   ├── relative-link-b.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── with-search/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   └── useNavigate/
│   │   │   │   │   │       ├── nested/
│   │   │   │   │   │       │   ├── deep/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── path/
│   │   │   │   │   │       │   ├── $path/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── relative-useNavigate-a.tsx
│   │   │   │   │   │       ├── relative-useNavigate-b.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       └── with-search/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   ├── count/
│   │   │   │   │   │   │   └── create-resource.tsx
│   │   │   │   │   │   └── typing/
│   │   │   │   │   │       └── create-resource.tsx
│   │   │   │   │   └── 대한민국/
│   │   │   │   │       ├── route.tsx
│   │   │   │   │       ├── wildcard.$.tsx
│   │   │   │   │       └── 🚀.$id.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── hover-preload-hash.spec.ts
│   │   │   │   ├── mask.spec.ts
│   │   │   │   ├── non-nested-paths.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── relative.spec.ts
│   │   │   │   ├── scroll-into-view.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── transition.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-file-based-code-splitting/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── viewport-test.tsx
│   │   │   │   │   └── without-loader.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── preload.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── router-events.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-solid-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-solid-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── generator-cli-only/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── tsr.config.json
│   │   │   └── vite.config.js
│   │   ├── js-only-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.jsx
│   │   │   │   ├── posts.js
│   │   │   │   ├── routeTree.gen.js
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.jsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.jsx
│   │   │   │   │   │   │   └── route-b.jsx
│   │   │   │   │   │   └── _nested-layout.jsx
│   │   │   │   │   ├── _pathlessLayout.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   ├── posts.$postId.jsx
│   │   │   │   │   ├── posts.index.jsx
│   │   │   │   │   └── posts.route.jsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── rspack-basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── rspack-basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── routes.ts
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── scroll-restoration-sandbox-vite/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.browser.config.ts
│   │   │   ├── playwright.hash.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── lazy-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-page.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.tsx
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── page-with-search.tsx
│   │   │   │   │   │   └── virtual-page.lazy.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── sentry-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   └── view-transitions/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .vscode/
│   │       │   └── settings.json
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── src/
│   │       │   ├── main.tsx
│   │       │   ├── posts.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── routes/
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── how-it-works.tsx
│   │       │   │   ├── index.tsx
│   │       │   │   ├── posts.$postId.tsx
│   │       │   │   ├── posts.index.tsx
│   │       │   │   └── posts.route.tsx
│   │       │   └── styles.css
│   │       ├── tests/
│   │       │   ├── app.spec.ts
│   │       │   └── setup/
│   │       │       ├── global.setup.ts
│   │       │       └── global.teardown.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.js
│   ├── solid-start/
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── NotFound.tsx
│   │   │   │   │   ├── PostErrorComponent.tsx
│   │   │   │   │   ├── RedirectOnClick.tsx
│   │   │   │   │   ├── UserErrorComponent.tsx
│   │   │   │   │   └── throwRedirect.ts
│   │   │   │   ├── raw-stream-fns.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── users.$userId.ts
│   │   │   │   │   │   └── users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── inline-scripts.tsx
│   │   │   │   │   ├── links.tsx
│   │   │   │   │   ├── multi-cookie-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── not-found/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── parent-boundary/
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── via-beforeLoad.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── via-beforeLoad-target-root.tsx
│   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── raw-stream/
│   │   │   │   │   │   ├── client-call.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── ssr-binary-hint.tsx
│   │   │   │   │   │   ├── ssr-mixed.tsx
│   │   │   │   │   │   ├── ssr-multiple.tsx
│   │   │   │   │   │   ├── ssr-single.tsx
│   │   │   │   │   │   └── ssr-text-hint.tsx
│   │   │   │   │   ├── raw-stream.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── serverFn/
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   │   ├── via-loader.tsx
│   │   │   │   │   │   │   │   └── via-useServerFn.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── scripts.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── loader-throws-redirect.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── specialChars/
│   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   ├── hash.tsx
│   │   │   │   │   │   ├── malformed/
│   │   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── search.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── search.tsx
│   │   │   │   │   │   └── 대한민국.tsx
│   │   │   │   │   ├── stream.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   ├── count/
│   │   │   │   │   │   │   └── create-resource.tsx
│   │   │   │   │   │   └── typing/
│   │   │   │   │   │       └── create-resource.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   ├── utils/
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── seo.ts
│   │   │   │   │   └── users.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   ├── not-found.spec.ts
│   │   │   │   ├── prerendering.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── script-duplication.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   ├── special-characters.spec.ts
│   │   │   │   ├── streaming.spec.ts
│   │   │   │   ├── transition.spec.ts
│   │   │   │   └── utils/
│   │   │   │       ├── isPrerender.ts
│   │   │   │       ├── isPreview.ts
│   │   │   │       └── isSpaMode.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-auth/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── prisma/
│   │   │   │   ├── migrations/
│   │   │   │   │   ├── 20240811183753_init/
│   │   │   │   │   │   └── migration.sql
│   │   │   │   │   └── migration_lock.toml
│   │   │   │   └── schema.prisma
│   │   │   ├── prisma.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Auth.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── Login.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useMutation.ts
│   │   │   │   ├── prisma-generated/
│   │   │   │   │   ├── browser.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── commonInputTypes.ts
│   │   │   │   │   ├── enums.ts
│   │   │   │   │   ├── internal/
│   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   ├── prismaNamespace.ts
│   │   │   │   │   │   └── prismaNamespaceBrowser.ts
│   │   │   │   │   ├── models/
│   │   │   │   │   │   └── User.ts
│   │   │   │   │   └── models.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _authed/
│   │   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   ├── _authed.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── login.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   └── signup.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.ts
│   │   │   │       ├── prisma.ts
│   │   │   │       ├── seo.ts
│   │   │   │       └── session.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── mock-db-setup.test.ts
│   │   │   │   └── mock-db-teardown.test.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-cloudflare/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── static.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       └── seo.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── vite.config.ts
│   │   │   ├── worker-configuration.d.ts
│   │   │   └── wrangler.jsonc
│   │   ├── basic-solid-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── suspense-transition.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   └── count/
│   │   │   │   │   │       └── query.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── transition.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-tsr-config/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   └── app/
│   │   │   │       ├── routeTree.gen.ts
│   │   │   │       ├── router.tsx
│   │   │   │       ├── routes/
│   │   │   │       │   ├── __root.tsx
│   │   │   │       │   └── index.tsx
│   │   │   │       └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── csp/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── external.css
│   │   │   │   └── external.js
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   └── csp.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── css-modules/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── modules.tsx
│   │   │   │   │   └── sass-mixin.tsx
│   │   │   │   └── styles/
│   │   │   │       ├── app.scss
│   │   │   │       ├── card.module.css
│   │   │   │       ├── center-mixin.scss
│   │   │   │       ├── global.css
│   │   │   │       └── mixin-consumer.scss
│   │   │   ├── tests/
│   │   │   │   ├── css.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── custom-basepath/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── express-server.ts
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── NotFound.tsx
│   │   │   │   │   ├── PostErrorComponent.tsx
│   │   │   │   │   └── UserErrorComponent.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── users.$userId.ts
│   │   │   │   │   │   └── users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   ├── navigate-test.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── redirect.index.tsx
│   │   │   │   │   ├── redirect.throw-it.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   ├── utils/
│   │   │   │   │   ├── basepath.ts
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── seo.ts
│   │   │   │   │   └── users.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── query-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── queryOptions.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── loader-fetchQuery/
│   │   │   │   │   │   └── $type.tsx
│   │   │   │   │   └── useQuery.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── with-loader.tsx
│   │   │   │   │   │   └── with-search.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   ├── utils/
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── seo.ts
│   │   │   │   │   └── users.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── selective-ssr/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   ├── search.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── serialization-adapters/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── CustomError.ts
│   │   │   │   ├── data.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── server-function/
│   │   │   │   │   │   ├── custom-error.tsx
│   │   │   │   │   │   └── nested.tsx
│   │   │   │   │   └── ssr/
│   │   │   │   │       ├── data-only.tsx
│   │   │   │   │       ├── nested.tsx
│   │   │   │   │       └── stream.tsx
│   │   │   │   ├── start.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-functions/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── abort-signal/
│   │   │   │   │   │   ├── $method.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── consistent.tsx
│   │   │   │   │   ├── cookies/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── set.tsx
│   │   │   │   │   ├── dead-code-preserve.tsx
│   │   │   │   │   ├── env-only.tsx
│   │   │   │   │   ├── factory/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── createBarServerFn.ts
│   │   │   │   │   │   │   ├── createFakeFn.ts
│   │   │   │   │   │   │   ├── createFooServerFn.ts
│   │   │   │   │   │   │   └── functions.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── formdata-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.$name.tsx
│   │   │   │   │   ├── function-metadata/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── normalServerFn.ts
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── function-method/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── headers.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── isomorphic-fns.tsx
│   │   │   │   │   ├── middleware/
│   │   │   │   │   │   ├── client-middleware-router.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── request-middleware.tsx
│   │   │   │   │   │   └── send-serverFn.tsx
│   │   │   │   │   ├── multipart.tsx
│   │   │   │   │   ├── primitives/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── raw-response.tsx
│   │   │   │   │   ├── redirect-test/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── redirect-test-ssr/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── return-null.tsx
│   │   │   │   │   ├── serialize-form-data.tsx
│   │   │   │   │   ├── status.tsx
│   │   │   │   │   └── submit-post-formdata.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   └── server-functions.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── middleware-context.ts
│   │   │   │   │   │   ├── only-any.ts
│   │   │   │   │   │   └── params/
│   │   │   │   │   │       └── $foo/
│   │   │   │   │   │           ├── $bar.ts
│   │   │   │   │   │           └── route.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── merge-middleware-context.tsx
│   │   │   │   │   └── methods/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       ├── only-any.tsx
│   │   │   │   │       └── route.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   └── server-routes.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── spa-mode/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── virtual-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── pipe.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── special-characters.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   └── website/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .prettierignore
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── public/
│   │       │   └── site.webmanifest
│   │       ├── src/
│   │       │   ├── components/
│   │       │   │   ├── DefaultCatchBoundary.tsx
│   │       │   │   └── NotFound.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── router.tsx
│   │       │   ├── routes/
│   │       │   │   ├── $project.$version.docs.framework.$framework.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.examples.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.index.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.tsx
│   │       │   │   ├── $project.$version.docs.index.tsx
│   │       │   │   ├── $project.index.tsx
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── _library.$project.$version.index.tsx
│   │       │   │   ├── _library.$project.tsx
│   │       │   │   ├── _library.index.tsx
│   │       │   │   └── _library.tsx
│   │       │   ├── server/
│   │       │   │   ├── document.tsx
│   │       │   │   └── projects.tsx
│   │       │   ├── styles/
│   │       │   │   └── app.css
│   │       │   ├── utils/
│   │       │   │   └── seo.ts
│   │       │   └── vite-env.d.ts
│   │       ├── tests/
│   │       │   └── app.spec.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   ├── vue-router/
│   │   ├── basepath-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── reload-document.test.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── EditingAComponent.tsx
│   │   │   │   │   ├── EditingBComponent.tsx
│   │   │   │   │   ├── NotFoundComponent.vue
│   │   │   │   │   ├── NotRemountDepsComponent.tsx
│   │   │   │   │   ├── PostErrorComponent.vue
│   │   │   │   │   ├── RemountDepsComponent.tsx
│   │   │   │   │   └── VueLogo.vue
│   │   │   │   ├── esbuild.config.js
│   │   │   │   ├── esbuild.run.js
│   │   │   │   ├── jsx-shim.ts
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── sfcComponent.component.vue
│   │   │   │   │   ├── sfcComponent.tsx
│   │   │   │   │   └── 대한민국.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── vue-shims.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── basic-file-based-jsx/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── EditingAComponent.tsx
│   │   │   │   │   ├── EditingBComponent.tsx
│   │   │   │   │   ├── NotFoundComponent.vue
│   │   │   │   │   ├── NotRemountDepsComponent.tsx
│   │   │   │   │   ├── PostErrorComponent.vue
│   │   │   │   │   ├── RemountDepsComponent.tsx
│   │   │   │   │   └── VueLogo.vue
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── sfcComponent.component.vue
│   │   │   │   │   ├── sfcComponent.tsx
│   │   │   │   │   └── 대한민국.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-file-based-sfc/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── EditingAComponent.tsx
│   │   │   │   │   ├── EditingBComponent.tsx
│   │   │   │   │   ├── NotFoundComponent.vue
│   │   │   │   │   ├── NotRemountDepsComponent.tsx
│   │   │   │   │   ├── PostErrorComponent.vue
│   │   │   │   │   ├── RemountDepsComponent.tsx
│   │   │   │   │   └── VueLogo.vue
│   │   │   │   ├── main.ts
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   ├── onlyrouteinside.component.vue
│   │   │   │   │   │   └── onlyrouteinside.ts
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.component.vue
│   │   │   │   │   │   ├── _layout.insidelayout.component.vue
│   │   │   │   │   │   ├── _layout.insidelayout.ts
│   │   │   │   │   │   ├── _layout.ts
│   │   │   │   │   │   ├── inside.component.vue
│   │   │   │   │   │   ├── inside.ts
│   │   │   │   │   │   ├── lazyinside.component.vue
│   │   │   │   │   │   ├── lazyinside.ts
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       ├── inside.component.vue
│   │   │   │   │   │       └── inside.ts
│   │   │   │   │   ├── __root.component.vue
│   │   │   │   │   ├── __root.notFoundComponent.vue
│   │   │   │   │   ├── __root.ts
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.component.vue
│   │   │   │   │   │   │   ├── layout-a.ts
│   │   │   │   │   │   │   ├── layout-b.component.vue
│   │   │   │   │   │   │   └── layout-b.ts
│   │   │   │   │   │   ├── _layout-2.component.vue
│   │   │   │   │   │   └── _layout-2.ts
│   │   │   │   │   ├── _layout.component.vue
│   │   │   │   │   ├── _layout.ts
│   │   │   │   │   ├── editing-a.component.vue
│   │   │   │   │   ├── editing-a.ts
│   │   │   │   │   ├── editing-b.component.vue
│   │   │   │   │   ├── editing-b.ts
│   │   │   │   │   ├── index.component.vue
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── notRemountDeps.component.vue
│   │   │   │   │   ├── notRemountDeps.ts
│   │   │   │   │   ├── posts.$postId.component.vue
│   │   │   │   │   ├── posts.$postId.errorComponent.vue
│   │   │   │   │   ├── posts.$postId.ts
│   │   │   │   │   ├── posts.component.vue
│   │   │   │   │   ├── posts.index.component.vue
│   │   │   │   │   ├── posts.index.ts
│   │   │   │   │   ├── posts.ts
│   │   │   │   │   ├── posts_.$postId.edit.component.vue
│   │   │   │   │   ├── posts_.$postId.edit.ts
│   │   │   │   │   ├── remountDeps.component.vue
│   │   │   │   │   ├── remountDeps.ts
│   │   │   │   │   ├── 대한민국.component.vue
│   │   │   │   │   └── 대한민국.ts
│   │   │   │   ├── styles.css
│   │   │   │   └── vue-shims.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── router-events.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-vue-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-vue-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── generator-cli-only/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── tsr.config.json
│   │   │   └── vite.config.js
│   │   ├── js-only-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.jsx
│   │   │   │   ├── posts.js
│   │   │   │   ├── routeTree.gen.js
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.jsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.jsx
│   │   │   │   │   │   │   └── route-b.jsx
│   │   │   │   │   │   └── _nested-layout.jsx
│   │   │   │   │   ├── _pathlessLayout.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   ├── posts.$postId.jsx
│   │   │   │   │   ├── posts.index.jsx
│   │   │   │   │   └── posts.route.jsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── rspack-basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── rspack-basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── routes.ts
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── scroll-restoration-sandbox-vite/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.browser.config.ts
│   │   │   ├── playwright.hash.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── lazy-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-page.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.tsx
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── page-with-search.tsx
│   │   │   │   │   │   └── virtual-page.lazy.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── sentry-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   └── view-transitions/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .vscode/
│   │       │   └── settings.json
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── src/
│   │       │   ├── main.tsx
│   │       │   ├── posts.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── routes/
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── how-it-works.tsx
│   │       │   │   ├── index.tsx
│   │       │   │   ├── posts.$postId.tsx
│   │       │   │   ├── posts.index.tsx
│   │       │   │   └── posts.route.tsx
│   │       │   └── styles.css
│   │       ├── tests/
│   │       │   ├── app.spec.ts
│   │       │   ├── setup/
│   │       │   │   ├── global.setup.ts
│   │       │   │   └── global.teardown.ts
│   │       │   └── view-transitions.spec.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.js
│   └── vue-start/
│       ├── basic/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── server.js
│       │   ├── src/
│       │   │   ├── client.tsx
│       │   │   ├── components/
│       │   │   │   ├── CustomMessage.tsx
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   ├── NotFound.tsx
│       │   │   │   ├── PostErrorComponent.tsx
│       │   │   │   ├── RedirectOnClick.tsx
│       │   │   │   ├── UserErrorComponent.tsx
│       │   │   │   └── throwRedirect.ts
│       │   │   ├── raw-stream-fns.ts
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── _layout/
│       │   │   │   │   ├── _layout-2/
│       │   │   │   │   │   ├── layout-a.tsx
│       │   │   │   │   │   └── layout-b.tsx
│       │   │   │   │   └── _layout-2.tsx
│       │   │   │   ├── _layout.tsx
│       │   │   │   ├── api/
│       │   │   │   │   ├── users.$userId.ts
│       │   │   │   │   └── users.ts
│       │   │   │   ├── deferred.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── inline-scripts.tsx
│       │   │   │   ├── links.tsx
│       │   │   │   ├── multi-cookie-redirect/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.tsx
│       │   │   │   ├── not-found/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── parent-boundary/
│       │   │   │   │   │   ├── route.tsx
│       │   │   │   │   │   └── via-beforeLoad.tsx
│       │   │   │   │   ├── route.tsx
│       │   │   │   │   ├── via-beforeLoad-target-root.tsx
│       │   │   │   │   ├── via-beforeLoad.tsx
│       │   │   │   │   └── via-loader.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   ├── posts.index.tsx
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── posts_.$postId.deep.tsx
│       │   │   │   ├── raw-stream/
│       │   │   │   │   ├── client-call.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── ssr-binary-hint.tsx
│       │   │   │   │   ├── ssr-mixed.tsx
│       │   │   │   │   ├── ssr-multiple.tsx
│       │   │   │   │   ├── ssr-single.tsx
│       │   │   │   │   └── ssr-text-hint.tsx
│       │   │   │   ├── raw-stream.tsx
│       │   │   │   ├── redirect/
│       │   │   │   │   ├── $target/
│       │   │   │   │   │   ├── index.tsx
│       │   │   │   │   │   ├── serverFn/
│       │   │   │   │   │   │   ├── index.tsx
│       │   │   │   │   │   │   ├── via-beforeLoad.tsx
│       │   │   │   │   │   │   ├── via-loader.tsx
│       │   │   │   │   │   │   └── via-useServerFn.tsx
│       │   │   │   │   │   ├── via-beforeLoad.tsx
│       │   │   │   │   │   └── via-loader.tsx
│       │   │   │   │   ├── $target.tsx
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── scripts.tsx
│       │   │   │   ├── search-params/
│       │   │   │   │   ├── default.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── loader-throws-redirect.tsx
│       │   │   │   │   └── route.tsx
│       │   │   │   ├── specialChars/
│       │   │   │   │   ├── $param.tsx
│       │   │   │   │   ├── hash.tsx
│       │   │   │   │   ├── malformed/
│       │   │   │   │   │   ├── $param.tsx
│       │   │   │   │   │   ├── route.tsx
│       │   │   │   │   │   └── search.tsx
│       │   │   │   │   ├── route.tsx
│       │   │   │   │   ├── search.tsx
│       │   │   │   │   └── 대한민국.tsx
│       │   │   │   ├── stream.tsx
│       │   │   │   ├── users.$userId.tsx
│       │   │   │   ├── users.index.tsx
│       │   │   │   └── users.tsx
│       │   │   ├── server.ts
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   ├── utils/
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── seo.ts
│       │   │   │   └── users.tsx
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   ├── navigation.spec.ts
│       │   │   ├── not-found.spec.ts
│       │   │   ├── prerendering.spec.ts
│       │   │   ├── redirect.spec.ts
│       │   │   ├── script-duplication.spec.ts
│       │   │   ├── search-params.spec.ts
│       │   │   ├── setup/
│       │   │   │   ├── global.setup.ts
│       │   │   │   └── global.teardown.ts
│       │   │   ├── special-characters.spec.ts
│       │   │   ├── streaming.spec.ts
│       │   │   └── utils/
│       │   │       ├── isPrerender.ts
│       │   │       ├── isPreview.ts
│       │   │       └── isSpaMode.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── basic-auth/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .env
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── prisma/
│       │   │   ├── migrations/
│       │   │   │   ├── 20240811183753_init/
│       │   │   │   │   └── migration.sql
│       │   │   │   └── migration_lock.toml
│       │   │   └── schema.prisma
│       │   ├── prisma.config.ts
│       │   ├── public/
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── Auth.tsx
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   ├── Login.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── hooks/
│       │   │   │   └── useMutation.ts
│       │   │   ├── prisma-generated/
│       │   │   │   ├── browser.ts
│       │   │   │   ├── client.ts
│       │   │   │   ├── commonInputTypes.ts
│       │   │   │   ├── enums.ts
│       │   │   │   ├── internal/
│       │   │   │   │   ├── class.ts
│       │   │   │   │   ├── prismaNamespace.ts
│       │   │   │   │   └── prismaNamespaceBrowser.ts
│       │   │   │   ├── models/
│       │   │   │   │   └── User.ts
│       │   │   │   └── models.ts
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── _authed/
│       │   │   │   │   ├── posts.$postId.tsx
│       │   │   │   │   ├── posts.index.tsx
│       │   │   │   │   └── posts.tsx
│       │   │   │   ├── _authed.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── login.tsx
│       │   │   │   ├── logout.tsx
│       │   │   │   └── signup.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       ├── posts.ts
│       │   │       ├── prisma.ts
│       │   │       ├── seo.ts
│       │   │       └── session.ts
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   ├── mock-db-setup.test.ts
│       │   │   └── mock-db-teardown.test.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── basic-cloudflare/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   └── static.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       └── seo.ts
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   ├── vite.config.ts
│       │   ├── worker-configuration.d.ts
│       │   └── wrangler.jsonc
│       ├── basic-tsr-config/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── README.md
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   └── app/
│       │   │       ├── routeTree.gen.ts
│       │   │       ├── router.tsx
│       │   │       ├── routes/
│       │   │       │   ├── __root.tsx
│       │   │       │   └── index.tsx
│       │   │       └── vite-env.d.ts
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── basic-vue-query/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── _layout/
│       │   │   │   │   ├── _layout-2/
│       │   │   │   │   │   ├── layout-a.tsx
│       │   │   │   │   │   └── layout-b.tsx
│       │   │   │   │   └── _layout-2.tsx
│       │   │   │   ├── _layout.tsx
│       │   │   │   ├── api/
│       │   │   │   │   └── users.$id.ts
│       │   │   │   ├── api.users.ts
│       │   │   │   ├── deferred.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   ├── posts.index.tsx
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── posts_.$postId.deep.tsx
│       │   │   │   ├── suspense-transition.tsx
│       │   │   │   ├── transition/
│       │   │   │   │   └── count/
│       │   │   │   │       └── query.tsx
│       │   │   │   ├── users.$userId.tsx
│       │   │   │   ├── users.index.tsx
│       │   │   │   └── users.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       ├── posts.tsx
│       │   │       ├── seo.ts
│       │   │       └── users.tsx
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   ├── setup/
│       │   │   │   ├── global.setup.ts
│       │   │   │   └── global.teardown.ts
│       │   │   └── transition.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── css-modules/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── modules.tsx
│       │   │   │   └── sass-mixin.tsx
│       │   │   └── styles/
│       │   │       ├── app.scss
│       │   │       ├── card.module.css
│       │   │       ├── center-mixin.scss
│       │   │       ├── global.css
│       │   │       └── mixin-consumer.scss
│       │   ├── tests/
│       │   │   ├── css.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── custom-basepath/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── express-server.ts
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── CustomMessage.tsx
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   ├── NotFound.tsx
│       │   │   │   ├── PostErrorComponent.tsx
│       │   │   │   └── UserErrorComponent.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── api/
│       │   │   │   │   ├── users.$userId.ts
│       │   │   │   │   └── users.ts
│       │   │   │   ├── deferred.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── logout.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   ├── posts.index.tsx
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── posts_.$postId.deep.tsx
│       │   │   │   ├── redirect.index.tsx
│       │   │   │   ├── redirect.throw-it.tsx
│       │   │   │   ├── users.$userId.tsx
│       │   │   │   ├── users.index.tsx
│       │   │   │   └── users.tsx
│       │   │   ├── server.ts
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   ├── utils/
│       │   │   │   ├── basepath.ts
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── seo.ts
│       │   │   │   └── users.tsx
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   ├── navigation.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── query-integration/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── queryOptions.ts
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── loader-fetchQuery/
│       │   │   │   │   └── $type.tsx
│       │   │   │   └── useQuery.tsx
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── scroll-restoration/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── (tests)/
│       │   │   │   │   ├── normal-page.tsx
│       │   │   │   │   ├── with-loader.tsx
│       │   │   │   │   └── with-search.tsx
│       │   │   │   ├── -components/
│       │   │   │   │   └── scroll-block.tsx
│       │   │   │   ├── __root.tsx
│       │   │   │   └── index.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   ├── utils/
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── seo.ts
│       │   │   │   └── users.tsx
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── selective-ssr/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   └── posts.tsx
│       │   │   ├── search.ts
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── serialization-adapters/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── CustomError.ts
│       │   │   ├── data.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── server-function/
│       │   │   │   │   ├── custom-error.tsx
│       │   │   │   │   └── nested.tsx
│       │   │   │   └── ssr/
│       │   │   │       ├── data-only.tsx
│       │   │   │       ├── nested.tsx
│       │   │   │       └── stream.tsx
│       │   │   ├── start.tsx
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── server-functions/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── abort-signal.tsx
│       │   │   │   ├── consistent.tsx
│       │   │   │   ├── cookies/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── set.tsx
│       │   │   │   ├── dead-code-preserve.tsx
│       │   │   │   ├── env-only.tsx
│       │   │   │   ├── factory/
│       │   │   │   │   ├── -functions/
│       │   │   │   │   │   ├── createBarServerFn.ts
│       │   │   │   │   │   ├── createFakeFn.ts
│       │   │   │   │   │   ├── createFooServerFn.ts
│       │   │   │   │   │   └── functions.ts
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── formdata-redirect/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.$name.tsx
│       │   │   │   ├── function-metadata/
│       │   │   │   │   ├── -functions/
│       │   │   │   │   │   ├── normalServerFn.ts
│       │   │   │   │   │   └── serverFnCallingServerFn.ts
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── function-method/
│       │   │   │   │   ├── -functions/
│       │   │   │   │   │   └── serverFnCallingServerFn.ts
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── headers.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── isomorphic-fns.tsx
│       │   │   │   ├── middleware/
│       │   │   │   │   ├── client-middleware-router.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── request-middleware.tsx
│       │   │   │   │   └── send-serverFn.tsx
│       │   │   │   ├── multipart.tsx
│       │   │   │   ├── primitives/
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── raw-response.tsx
│       │   │   │   ├── redirect-test/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.tsx
│       │   │   │   ├── redirect-test-ssr/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.tsx
│       │   │   │   ├── return-null.tsx
│       │   │   │   ├── serialize-form-data.tsx
│       │   │   │   ├── status.tsx
│       │   │   │   └── submit-post-formdata.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   └── server-functions.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── server-routes/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── api/
│       │   │   │   │   ├── middleware-context.ts
│       │   │   │   │   ├── only-any.ts
│       │   │   │   │   └── params/
│       │   │   │   │       └── $foo/
│       │   │   │   │           ├── $bar.ts
│       │   │   │   │           └── route.ts
│       │   │   │   ├── index.tsx
│       │   │   │   ├── merge-middleware-context.tsx
│       │   │   │   └── methods/
│       │   │   │       ├── index.tsx
│       │   │   │       ├── only-any.tsx
│       │   │   │       └── route.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   └── server-routes.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── spa-mode/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   └── posts.tsx
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── virtual-routes/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── routes.ts
│       │   ├── src/
│       │   │   ├── posts.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── a.tsx
│       │   │   │   ├── b.tsx
│       │   │   │   ├── file-based-subtree/
│       │   │   │   │   └── hello/
│       │   │   │   │       ├── index.tsx
│       │   │   │   │       ├── route.tsx
│       │   │   │   │       ├── universe.tsx
│       │   │   │   │       └── world.tsx
│       │   │   │   ├── home.tsx
│       │   │   │   ├── layout/
│       │   │   │   │   ├── first-layout.tsx
│       │   │   │   │   └── second-layout.tsx
│       │   │   │   ├── pipe.tsx
│       │   │   │   ├── posts/
│       │   │   │   │   ├── posts-detail.tsx
│       │   │   │   │   ├── posts-home.tsx
│       │   │   │   │   └── posts.tsx
│       │   │   │   └── root.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       ├── posts.tsx
│       │   │       ├── seo.ts
│       │   │       └── users.tsx
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   ├── setup/
│       │   │   │   ├── global.setup.ts
│       │   │   │   └── global.teardown.ts
│       │   │   └── special-characters.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       └── website/
│           ├── .devcontainer/
│           │   └── devcontainer.json
│           ├── .gitignore
│           ├── .prettierignore
│           ├── package.json
│           ├── playwright.config.ts
│           ├── public/
│           │   └── site.webmanifest
│           ├── src/
│           │   ├── components/
│           │   │   ├── DefaultCatchBoundary.tsx
│           │   │   └── NotFound.tsx
│           │   ├── routeTree.gen.ts
│           │   ├── router.tsx
│           │   ├── routes/
│           │   │   ├── $project.$version.docs.framework.$framework.$.tsx
│           │   │   ├── $project.$version.docs.framework.$framework.examples.$.tsx
│           │   │   ├── $project.$version.docs.framework.$framework.index.tsx
│           │   │   ├── $project.$version.docs.framework.$framework.tsx
│           │   │   ├── $project.$version.docs.index.tsx
│           │   │   ├── $project.index.tsx
│           │   │   ├── __root.tsx
│           │   │   ├── _library.$project.$version.index.tsx
│           │   │   ├── _library.$project.tsx
│           │   │   ├── _library.index.tsx
│           │   │   └── _library.tsx
│           │   ├── server/
│           │   │   ├── document.tsx
│           │   │   └── projects.tsx
│           │   ├── styles/
│           │   │   └── app.css
│           │   ├── utils/
│           │   │   └── seo.ts
│           │   └── vite-env.d.ts
│           ├── tests/
│           │   └── app.spec.ts
│           ├── tsconfig.json
│           └── vite.config.ts
├── eslint.config.js
├── examples/
│   ├── react/
│   │   ├── authenticated-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── auth.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.dashboard.tsx
│   │   │   │   │   ├── _auth.invoices.$invoiceId.tsx
│   │   │   │   │   ├── _auth.invoices.index.tsx
│   │   │   │   │   ├── _auth.invoices.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── utils.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── authenticated-routes-firebase/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env.example
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── auth.tsx
│   │   │   │   ├── firebase/
│   │   │   │   │   └── config.ts
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.dashboard.tsx
│   │   │   │   │   ├── _auth.invoices.$invoiceId.tsx
│   │   │   │   │   ├── _auth.invoices.index.tsx
│   │   │   │   │   ├── _auth.invoices.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   ├── utils.ts
│   │   │   │   └── vite.d.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-default-search-params/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-devtools-panel/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── App.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── anchor.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-non-nested-devtools/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-react-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-ssr-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── entry-client.tsx
│   │   │   │   ├── entry-server.tsx
│   │   │   │   ├── fetch-polyfill.js
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routerContext.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── error.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       └── posts/
│   │   │   │           ├── $postId.tsx
│   │   │   │           ├── index.tsx
│   │   │   │           └── route.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-ssr-streaming-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── entry-client.tsx
│   │   │   │   ├── entry-server.tsx
│   │   │   │   ├── fetch-polyfill.js
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routerContext.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── error.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       └── posts/
│   │   │   │           ├── $postId.tsx
│   │   │   │           ├── index.tsx
│   │   │   │           └── route.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-inside-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── __virtual.ts
│   │   │   │   │   │   ├── details.tsx
│   │   │   │   │   │   ├── home.tsx
│   │   │   │   │   │   └── lets-go/
│   │   │   │   │   │       ├── deeper/
│   │   │   │   │   │       │   ├── __virtual.ts
│   │   │   │   │   │       │   └── home.tsx
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── deferred-data/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── i18n-paraglide/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── messages/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── package.json
│   │   │   ├── project.inlang/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── project_id
│   │   │   │   └── settings.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── kitchen-sink/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── Expensive.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── mockTodos.ts
│   │   │   │   ├── styles.css
│   │   │   │   ├── useMutation.tsx
│   │   │   │   └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── kitchen-sink-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Breadcrumbs.tsx
│   │   │   │   │   ├── InvoiceFields.tsx
│   │   │   │   │   └── Spinner.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── useMutation.tsx
│   │   │   │   │   └── useSessionStorage.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (this-folder-is-not-in-the-url)/
│   │   │   │   │   │   └── route-group.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.profile.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── _pathlessLayout.route-a.tsx
│   │   │   │   │   ├── _pathlessLayout.route-b.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── dashboard.index.tsx
│   │   │   │   │   ├── dashboard.invoices.$invoiceId.tsx
│   │   │   │   │   ├── dashboard.invoices.index.tsx
│   │   │   │   │   ├── dashboard.invoices.route.tsx
│   │   │   │   │   ├── dashboard.route.tsx
│   │   │   │   │   ├── dashboard.users.index.tsx
│   │   │   │   │   ├── dashboard.users.route.tsx
│   │   │   │   │   ├── dashboard.users.user.tsx
│   │   │   │   │   ├── expensive/
│   │   │   │   │   │   ├── -components/
│   │   │   │   │   │   │   └── Expensive.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── utils/
│   │   │   │       ├── auth.tsx
│   │   │   │       ├── mockTodos.ts
│   │   │   │       └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── kitchen-sink-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── Expensive.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── mockTodos.ts
│   │   │   │   ├── styles.css
│   │   │   │   └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── kitchen-sink-react-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── InvoiceFields.tsx
│   │   │   │   │   └── Spinner.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useSessionStorage.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.profile.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── _pathlessLayout.route-a.tsx
│   │   │   │   │   ├── _pathlessLayout.route-b.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── dashboard.index.tsx
│   │   │   │   │   ├── dashboard.invoices.$invoiceId.tsx
│   │   │   │   │   ├── dashboard.invoices.index.tsx
│   │   │   │   │   ├── dashboard.invoices.route.tsx
│   │   │   │   │   ├── dashboard.route.tsx
│   │   │   │   │   ├── dashboard.users.index.tsx
│   │   │   │   │   ├── dashboard.users.route.tsx
│   │   │   │   │   ├── dashboard.users.user.tsx
│   │   │   │   │   ├── expensive/
│   │   │   │   │   │   ├── -components/
│   │   │   │   │   │   │   └── Expensive.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── foo/
│   │   │   │   │   │   └── bar.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── utils/
│   │   │   │       ├── auth.tsx
│   │   │   │       ├── mockTodos.ts
│   │   │   │       ├── queryOptions.ts
│   │   │   │       └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── large-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── createRoutes.mjs
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── absolute.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── linkProps.tsx
│   │   │   │   │   ├── params/
│   │   │   │   │   │   ├── $paramsPlaceholder.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── relative.tsx
│   │   │   │   │   └── search/
│   │   │   │   │       ├── route.tsx
│   │   │   │   │       └── searchPlaceholder.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── location-masking/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── navigation-blocking/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── quickstart/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── quickstart-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── esbuild.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       └── index.tsx
│   │   │   └── tsconfig.json
│   │   ├── quickstart-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── quickstart-rspack-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── 

================================================
FILE CONTENTS
================================================

================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
  "changelog": [
    "@svitejs/changesets-changelog-github-compact",
    { "repo": "TanStack/router" }
  ],
  "commit": false,
  "access": "public",
  "baseBranch": "main",
  "updateInternalDependencies": "patch",
  "fixed": [],
  "linked": [],
  "ignore": [],
  "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
    "onlyUpdatePeerDependentsWhenOutOfRange": true
  }
}


================================================
FILE: .devcontainer/devcontainer.json
================================================
{
  "image": "mcr.microsoft.com/devcontainers/typescript-node:24"
}


================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto


================================================
FILE: .github/FUNDING.yml
================================================
github: tannerlinsley


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: 🐛 Bug Report
description: Create a report to help us improve
body:
  - type: markdown
    attributes:
      value: |
        Thank you for reporting an issue :pray:.

        This issue tracker is for reporting bugs found in `router` (https://github.com/tanstack/router).
        If you have a question about how to achieve something and are struggling, please post a question
        inside of `router` Discussions tab: https://github.com/tanstack/router/discussions

        Before submitting a new bug/issue, please check the links below to see if there is a solution or question posted there already:
         - `router` Issues tab: https://github.com/tanstack/router/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc
         - `router` closed issues tab: https://github.com/tanstack/router/issues?q=is%3Aissue+sort%3Aupdated-desc+is%3Aclosed
         - `router` Discussions tab: https://github.com/tanstack/router/discussions

        The more information you fill in, the better the community can help you.
  - type: dropdown
    id: project
    attributes:
      label: Which project does this relate to?
      description: If you are unsure, please leave this as "Router".
      options:
        - Router
        - Start
    validations:
      required: true
  - type: textarea
    id: description
    attributes:
      label: Describe the bug
      description: Provide a clear and concise description of the challenge you are running into.
    validations:
      required: true
  - type: input
    id: link
    attributes:
      label: Your Example Website or App
      description: |
        Which website or app were you using when the bug happened?
        Note:
        - Please provide a link via our pre-configured Stackblitz project ([file-based routes](https://stackblitz.com/github/tanstack/router/tree/main/examples/react/quickstart-file-based?file=src%2Fmain.tsx)|[code-based routes](https://stackblitz.com/github/tanstack/router/tree/main/examples/react/quickstart?file=src%2Fmain.tsx)) or a link to a repo that can reproduce the issue.
        - Your bug will may get fixed much faster if we can run your code and it doesn't have dependencies other than the `router` npm package / dependency.
        - To create a shareable code example you can use Stackblitz. Please no localhost URLs.
        - Please read these tips for providing a minimal example: https://stackoverflow.com/help/mcve.
      placeholder: reproduction URL
    validations:
      required: true
  - type: textarea
    id: steps
    attributes:
      label: Steps to Reproduce the Bug or Issue
      description: Describe the steps we have to take to reproduce the behavior.
      placeholder: |
        1. Go to '...'
        2. Click on '....'
        3. Scroll down to '....'
        4. See error
    validations:
      required: true
  - type: textarea
    id: expected
    attributes:
      label: Expected behavior
      description: Provide a clear and concise description of what you expected to happen.
      placeholder: |
        As a user, I expected ___ behavior but i am seeing ___
    validations:
      required: true
  - type: textarea
    id: screenshots_or_videos
    attributes:
      label: Screenshots or Videos
      description: |
        If applicable, add screenshots or a video to help explain your problem.
        For more information on the supported file image/file types and the file size limits, please refer
        to the following link: https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/attaching-files
      placeholder: |
        You can drag your video or image files inside of this editor ↓
  - type: textarea
    id: platform
    attributes:
      label: Platform
      value: |
        - Router / Start Version: [e.g. 1.121.0]
        - OS: [e.g. macOS, Windows, Linux]
        - Browser: [e.g. Chrome, Safari, Firefox]
        - Browser Version: [e.g. 91.1]
        - Bundler: [e.g. vite]
        - Bundler Version: [e.g. 7.0.0]
    validations:
      required: true
  - type: textarea
    id: additional
    attributes:
      label: Additional context
      description: Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: 🤔 Feature Requests & Questions
    url: https://github.com/TanStack/router/discussions
    about: Please ask and answer questions here.
  - name: 💬 Community Chat
    url: https://discord.gg/mQd7egN
    about: A dedicated discord server hosted by TanStack
  - name: 🦋 TanStack Bluesky
    url: https://bsky.app/profile/tanstack.com
    about: Stay up to date with new releases of our libraries


================================================
FILE: .github/renovate.json
================================================
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "configMigration": true,
  "extends": [
    "config:recommended",
    "group:allNonMajor",
    "schedule:weekly",
    ":approveMajorUpdates",
    ":automergeMinor",
    ":disablePeerDependencies",
    ":maintainLockFilesMonthly",
    ":semanticCommits",
    ":semanticCommitTypeAll(chore)"
  ],
  "ignorePresets": [":ignoreModulesAndTests"],
  "labels": ["dependencies"],
  "rangeStrategy": "bump",
  "postUpdateOptions": ["pnpmDedupe"],
  "ignoreDeps": [
    "@types/node",
    "@types/react",
    "@types/react-dom",
    "h3",
    "node",
    "react",
    "react-dom",
    "react-server-dom-webpack",
    "temp-react",
    "temp-react-dom",
    "typescript",
    "typescript52",
    "typescript53",
    "typescript54",
    "typescript55",
    "typescript56",
    "unplugin",
    "use-sync-external-store",
    "waku"
  ]
}


================================================
FILE: .github/workflows/autofix.yml
================================================
name: autofix.ci # needed to securely identify the workflow

on:
  pull_request:
  push:
    branches: [main, alpha, beta]

concurrency:
  group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  autofix:
    name: autofix
    runs-on: ubuntu-latest
    if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }}
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
      - name: Setup Tools
        uses: TanStack/config/.github/setup@main
      - name: Fix formatting
        run: pnpm format
      - name: Generate labeler config
        run: pnpm labeler-generate
      - name: Apply fixes
        uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27
        with:
          commit-message: 'ci: apply automated fixes'


================================================
FILE: .github/workflows/bundle-size.yml
================================================
name: Bundle Size

on:
  # We use `pull_request_target` to split trust boundaries across jobs:
  # - `benchmark-pr` checks out PR merge code and runs it as untrusted with read-only permissions.
  # - `comment-pr` runs trusted base-repo code with limited write access to upsert the PR comment.
  pull_request_target:
    paths:
      - 'packages/**'
      - 'benchmarks/**'
  push:
    branches: [main]
    paths:
      - 'packages/**'
      - 'benchmarks/**'
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

env:
  NX_NO_CLOUD: true
jobs:
  benchmark-pr:
    name: Benchmark PR
    if: github.event_name == 'pull_request_target'
    runs-on: ubuntu-latest
    outputs:
      current_json_b64: ${{ steps.capture.outputs.current_json_b64 }}
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
        with:
          ref: refs/pull/${{ github.event.pull_request.number }}/merge
          fetch-depth: 0
          persist-credentials: false

      - name: Setup Tools
        uses: TanStack/config/.github/setup@main

      - name: Measure Bundle Size
        run: pnpm nx run @benchmarks/bundle-size:build --outputStyle=stream --skipRemoteCache

      - name: Capture Benchmark Outputs
        id: capture
        run: |
          {
            echo "current_json_b64=$(base64 -w 0 < benchmarks/bundle-size/results/current.json)"
          } >> "$GITHUB_OUTPUT"

  comment-pr:
    name: Upsert PR Comment
    if: github.event_name == 'pull_request_target'
    runs-on: ubuntu-latest
    needs: benchmark-pr
    permissions:
      contents: read
      pull-requests: write
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
        with:
          fetch-depth: 0
          persist-credentials: false

      - name: Restore Benchmark Outputs
        env:
          CURRENT_JSON_B64: ${{ needs.benchmark-pr.outputs.current_json_b64 }}
        run: |
          mkdir -p benchmarks/bundle-size/results
          node -e "const fs=require('node:fs'); fs.writeFileSync('benchmarks/bundle-size/results/current.json', Buffer.from(process.env.CURRENT_JSON_B64 || '', 'base64'))"

      - name: Read Historical Data (if available)
        run: |
          mkdir -p benchmarks/bundle-size/results
          if git fetch --depth=1 origin gh-pages; then
            if git show origin/gh-pages:benchmarks/bundle-size/data.js > benchmarks/bundle-size/results/history-data.js 2>/dev/null; then
              echo "Loaded bundle-size history from gh-pages."
            else
              rm -f benchmarks/bundle-size/results/history-data.js
              echo "No bundle-size history found on gh-pages yet."
            fi
          fi

      - name: Build PR Report
        run: |
          node scripts/benchmarks/bundle-size/pr-report.mjs \
            --current benchmarks/bundle-size/results/current.json \
            --history benchmarks/bundle-size/results/history-data.js \
            --output benchmarks/bundle-size/results/pr-comment.md \
            --base-sha "${{ github.event.pull_request.base.sha }}" \
            --dashboard-url "https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/benchmarks/bundle-size/"

      - name: Upsert Sticky PR Comment
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          node scripts/benchmarks/common/upsert-pr-comment.mjs \
            --pr "${{ github.event.pull_request.number }}" \
            --body-file benchmarks/bundle-size/results/pr-comment.md

  benchmark-main:
    name: Publish Bundle Size History
    if: github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'TanStack'
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
        with:
          fetch-depth: 0

      - name: Setup Tools
        uses: TanStack/config/.github/setup@main

      - name: Measure Bundle Size
        run: pnpm nx run @benchmarks/bundle-size:build --outputStyle=stream --skipRemoteCache
      - name: Publish Benchmark Dashboard
        uses: benchmark-action/github-action-benchmark@4bdcce38c94cec68da58d012ac24b7b1155efe8b # v1.20.7
        with:
          tool: customSmallerIsBetter
          name: Bundle Size (gzip)
          output-file-path: benchmarks/bundle-size/results/benchmark-action.json
          github-token: ${{ secrets.GITHUB_TOKEN }}
          auto-push: true
          gh-pages-branch: gh-pages
          benchmark-data-dir-path: benchmarks/bundle-size
          max-items-in-chart: 200
          summary-always: true
          comment-on-alert: false
          fail-on-alert: false


================================================
FILE: .github/workflows/check-skills.yml
================================================
# check-skills.yml — Drop this into your library repo's .github/workflows/
#
# Checks for stale intent skills after a release and opens a review PR
# if any skills need attention. The PR body includes a prompt you can
# paste into Claude Code, Cursor, or any coding agent to update them.
#
# Triggers: new release published, or manual workflow_dispatch.
#
# Template variables (replaced by `intent setup`):
#   @tanstack/react-router  — e.g. @tanstack/query
#
# Adapted for TanStack Router monorepo: loops over all packages with skills.

name: Check Skills

on:
  release:
    types: [published]
  workflow_dispatch: {}

permissions:
  contents: write
  pull-requests: write

jobs:
  check:
    name: Check for stale skills
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install intent CLI
        run: npm install -g @tanstack/intent

      - name: Install dependencies
        run: npm install --ignore-scripts
        env:
          npm_config_legacy_peer_deps: 'true'

      - name: Check staleness
        id: stale
        run: |
          # Monorepo: collect stale reports from all packages with skills
          ALL_OUTPUT="["
          FIRST=true
          for dir in packages/*/; do
            if [ -d "$dir/skills" ]; then
              PKG_OUTPUT=$(cd "$dir" && npx @tanstack/intent stale --json 2>/dev/null) || true
              if [ -n "$PKG_OUTPUT" ] && [ "$PKG_OUTPUT" != "[]" ] && [ "$PKG_OUTPUT" != "No intent-enabled packages found." ]; then
                if [ "$FIRST" = true ]; then
                  FIRST=false
                else
                  ALL_OUTPUT="${ALL_OUTPUT},"
                fi
                # Strip outer brackets and append entries
                ENTRIES=$(echo "$PKG_OUTPUT" | node -e "
                  const input = require('fs').readFileSync('/dev/stdin','utf8').trim();
                  try { const arr = JSON.parse(input); process.stdout.write(JSON.stringify(arr).slice(1, -1)); } catch {}
                ")
                ALL_OUTPUT="${ALL_OUTPUT}${ENTRIES}"
              fi
            fi
          done
          ALL_OUTPUT="${ALL_OUTPUT}]"

          echo "$ALL_OUTPUT"

          # Check if any skills need review
          NEEDS_REVIEW=$(echo "$ALL_OUTPUT" | node -e "
            const input = require('fs').readFileSync('/dev/stdin','utf8');
            try {
              const reports = JSON.parse(input);
              const stale = reports.flatMap(r =>
                r.skills.filter(s => s.needsReview).map(s => ({ library: r.library, skill: s.name, reasons: s.reasons }))
              );
              if (stale.length > 0) {
                console.log(JSON.stringify(stale));
              }
            } catch {}
          ")

          if [ -z "$NEEDS_REVIEW" ]; then
            echo "has_stale=false" >> "$GITHUB_OUTPUT"
          else
            echo "has_stale=true" >> "$GITHUB_OUTPUT"
            # Escape for multiline GH output
            EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
            echo "stale_json<<$EOF" >> "$GITHUB_OUTPUT"
            echo "$NEEDS_REVIEW" >> "$GITHUB_OUTPUT"
            echo "$EOF" >> "$GITHUB_OUTPUT"
          fi

      - name: Build summary
        if: steps.stale.outputs.has_stale == 'true'
        id: summary
        run: |
          node -e "
            const stale = JSON.parse(process.env.STALE_JSON);
            const lines = stale.map(s =>
              '- **' + s.skill + '** (' + s.library + '): ' + s.reasons.join(', ')
            );
            const summary = lines.join('\n');

            const prompt = [
              'Review and update the following stale intent skills for TanStack Router:',
              '',
              ...stale.map(s => '- ' + s.skill + ': ' + s.reasons.join(', ')),
              '',
              'For each stale skill:',
              '1. Read the current SKILL.md file',
              '2. Check what changed in the library since the skill was last updated',
              '3. Update the skill content to reflect current APIs and behavior',
              '4. Run \`npx @tanstack/intent validate\` to verify the updated skill',
            ].join('\n');

            // Write outputs
            const fs = require('fs');
            const env = fs.readFileSync(process.env.GITHUB_OUTPUT, 'utf8');
            const eof = require('crypto').randomBytes(15).toString('base64');
            fs.appendFileSync(process.env.GITHUB_OUTPUT,
              'summary<<' + eof + '\n' + summary + '\n' + eof + '\n' +
              'prompt<<' + eof + '\n' + prompt + '\n' + eof + '\n'
            );
          "
        env:
          STALE_JSON: ${{ steps.stale.outputs.stale_json }}

      - name: Open review PR
        if: steps.stale.outputs.has_stale == 'true'
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          VERSION="${{ github.event.release.tag_name || 'manual' }}"
          BRANCH="skills/review-${VERSION}"

          git config user.name "github-actions[bot]"
          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git checkout -b "$BRANCH"
          git commit --allow-empty -m "chore: review stale skills for ${VERSION}"
          git push origin "$BRANCH"

          gh pr create \
            --title "Review stale skills (${VERSION})" \
            --body "$(cat <<'PREOF'
          ## Stale Skills Detected

          The following skills may need updates after the latest release:

          ${{ steps.summary.outputs.summary }}

          ---

          ### Update Prompt

          Paste this into your coding agent (Claude Code, Cursor, etc.):

          ~~~
          ${{ steps.summary.outputs.prompt }}
          ~~~

          PREOF
          )" \
            --head "$BRANCH" \
            --base main


================================================
FILE: .github/workflows/client-nav-benchmarks.yml
================================================
# Setup taken from https://codspeed.io/docs/benchmarks/nodejs/vitest
name: Benchmarks

on:
  push:
    branches:
      - 'main'
    paths:
      - 'packages/**'
      - 'benchmarks/**'
  pull_request:
    paths:
      - 'packages/**'
      - 'benchmarks/**'
  workflow_dispatch:

permissions:
  contents: read # required for actions/checkout
  id-token: write # required for OIDC authentication with CodSpeed

env:
  NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
  SERVER_PRESET: 'node-server'
  NX_NO_CLOUD: true

jobs:
  benchmarks:
    name: Run ${{ matrix.benchmark }}:${{ matrix.framework }} CodSpeed benchmark
    strategy:
      fail-fast: false
      matrix:
        framework:
          - react
          - solid
          - vue
        benchmark:
          - client-nav
          - ssr
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2

      - name: Setup Tools
        uses: TanStack/config/.github/setup@main

      - name: Run ${{ matrix.benchmark }}:${{ matrix.framework }} CodSpeed benchmark
        continue-on-error: true
        uses: CodSpeedHQ/action@v4
        with:
          mode: simulation
          run: WITH_INSTRUMENTATION=1 pnpm nx run @benchmarks/${{ matrix.benchmark }}:test:perf:${{ matrix.framework }}


================================================
FILE: .github/workflows/labeler.yml
================================================
name: Labeler

on:
  pull_request_target:

permissions:
  contents: read
  pull-requests: write

jobs:
  labeler:
    runs-on: ubuntu-latest
    steps:
      - name: Labeller
        uses: actions/labeler@v6.0.1
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          configuration-path: labeler-config.yml


================================================
FILE: .github/workflows/notify-playbooks.yml
================================================
# notify-intent.yml — Drop this into your library repo's .github/workflows/
#
# Fires a repository_dispatch event to TanStack/intent whenever docs or
# source files change on merge to main. This triggers the skill staleness
# check workflow in the intent repo.
#
# Requirements:
#   - A fine-grained PAT with contents:write on TanStack/intent stored
#     as the INTENT_NOTIFY_TOKEN repository secret.
#
# Template variables (replaced by `intent setup`):
#   @tanstack/react-router  — e.g. @tanstack/query
#   docs/**     — e.g. docs/**
#   packages/*/src/**      — e.g. packages/query-core/src/**
#
# Adapted for TanStack Router monorepo: watches all packages.

name: Notify Intent

on:
  push:
    branches: [main]
    paths:
      - 'docs/**'
      - 'packages/*/src/**'

jobs:
  notify:
    name: Notify TanStack Intent
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 2

      - name: Collect changed files
        id: changes
        run: |
          FILES=$(git diff --name-only HEAD~1 HEAD | jq -R -s -c 'split("\n") | map(select(length > 0))')
          echo "files=$FILES" >> "$GITHUB_OUTPUT"

      - name: Dispatch to intent repo
        uses: peter-evans/repository-dispatch@v3
        with:
          token: ${{ secrets.INTENT_NOTIFY_TOKEN }}
          repository: TanStack/intent
          event-type: skill-check
          client-payload: |
            {
              "package": "@tanstack/router",
              "sha": "${{ github.sha }}",
              "changed_files": ${{ steps.changes.outputs.files }}
            }


================================================
FILE: .github/workflows/pr.yml
================================================
name: PR

on:
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
  cancel-in-progress: true

env:
  NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
  SERVER_PRESET: 'node-server'

permissions:
  contents: read
  pull-requests: write

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    env:
      TSR_TMP_DIR: ./tmp
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
        with:
          fetch-depth: 0
      - name: Start Nx Agents
        run: npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml"
      - name: Setup Tools
        uses: TanStack/config/.github/setup@main
      - name: Get base and head commits for `nx affected`
        uses: nrwl/nx-set-shas@v4.4.0
        with:
          main-branch-name: main
      - name: Run Checks
        run: pnpm run test:pr --parallel=3
      - name: Stop Nx Agents
        if: ${{ always() }}
        run: npx nx-cloud stop-all-agents
  preview:
    name: Preview
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
        with:
          fetch-depth: 0
      - name: Setup Tools
        uses: TanStack/config/.github/setup@main
      - name: Build Packages
        run: pnpm run build:all
      - name: Publish Previews
        run: pnpx pkg-pr-new publish --pnpm './packages/*' --template './examples/*/*'
  version-preview:
    name: Version Preview
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
      - name: Setup Tools
        uses: TanStack/config/.github/setup@main
      - name: Changeset Preview
        uses: TanStack/config/.github/changeset-preview@main


================================================
FILE: .github/workflows/release.yml
================================================
name: Release

on:
  push:
    branches: [main, '*-pre', '*-maint']

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false

env:
  NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
  SERVER_PRESET: 'node-server'

permissions:
  contents: write
  id-token: write
  pull-requests: write

jobs:
  release:
    name: Release
    if: "!contains(github.event.head_commit.message, 'ci: changeset release')"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.2
        with:
          fetch-depth: 0
      - name: Check for changesets
        id: changesets
        run: |
          CHANGESET_FILES=$(ls .changeset/*.md 2>/dev/null | grep -v README.md || true)
          if [ -z "$CHANGESET_FILES" ]; then
            echo "has_changesets=false" >> "$GITHUB_OUTPUT"
          else
            echo "has_changesets=true" >> "$GITHUB_OUTPUT"
          fi
      - name: Start Nx Agents
        if: steps.changesets.outputs.has_changesets == 'true'
        run: npx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml"
      - name: Setup Tools
        uses: TanStack/config/.github/setup@main
      - name: Run Tests
        if: steps.changesets.outputs.has_changesets == 'true'
        run: pnpm run test:ci --parallel=3
      - name: Stop Nx Agents
        if: ${{ always() && steps.changesets.outputs.has_changesets == 'true' }}
        run: npx nx-cloud stop-all-agents
      - name: Enter Pre-Release Mode
        if: "contains(github.ref_name, '-pre') && !hashFiles('.changeset/pre.json')"
        run: pnpm changeset pre enter pre
      - name: Version Packages
        run: pnpm run changeset:version
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Commit and Push Version Changes
        id: commit
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add .
          if git commit -m "ci: changeset release"; then
            git push
            echo "committed=true" >> "$GITHUB_OUTPUT"
          fi
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Determine dist-tag
        if: steps.commit.outputs.committed == 'true'
        id: dist-tag
        run: |
          BRANCH="${GITHUB_REF_NAME}"
          if [[ "$BRANCH" == *-pre ]]; then
            echo "prerelease=true" >> "$GITHUB_OUTPUT"
          elif [[ "$BRANCH" == *-maint ]]; then
            echo "tag=maint" >> "$GITHUB_OUTPUT"
          else
            echo "latest=true" >> "$GITHUB_OUTPUT"
          fi
      - name: Publish Packages
        if: steps.commit.outputs.committed == 'true'
        run: pnpm run changeset:publish ${{ steps.dist-tag.outputs.tag && format('--tag {0}', steps.dist-tag.outputs.tag) }}
      - name: Create GitHub Release
        if: steps.commit.outputs.committed == 'true'
        run: node scripts/create-github-release.mjs ${{ steps.dist-tag.outputs.prerelease == 'true' && '--prerelease' }} ${{ steps.dist-tag.outputs.latest == 'true' && '--latest' }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/validate-skills.yml
================================================
# validate-skills.yml — Drop this into your library repo's .github/workflows/
#
# Validates skill files on PRs that touch the skills/ directory.
# Ensures frontmatter is correct, names match paths, and files stay under
# the 500-line limit.

name: Validate Skills

on:
  pull_request:
    paths:
      - 'skills/**'
      - '**/skills/**'

jobs:
  validate:
    name: Validate skill files
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install intent CLI
        run: npm install -g @tanstack/intent

      - name: Find and validate skills
        run: |
          # Find all directories containing SKILL.md files
          SKILLS_DIR=""
          if [ -d "skills" ]; then
            SKILLS_DIR="skills"
          elif [ -d "packages" ]; then
            # Monorepo — find skills/ under packages
            for dir in packages/*/skills; do
              if [ -d "$dir" ]; then
                echo "Validating $dir..."
                intent validate "$dir"
              fi
            done
            exit 0
          fi

          if [ -n "$SKILLS_DIR" ]; then
            intent validate "$SKILLS_DIR"
          else
            echo "No skills/ directory found — skipping validation."
          fi


================================================
FILE: .gitignore
================================================
.vite
# See https://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
node_modules
package-lock.json
yarn.lock

# builds
types
build
*/build
dist
.output
lib
es
artifacts
.rpt2_cache
coverage
*.tgz
.wrangler

# tests
packages/router-generator/tests/**/*.gen.ts
packages/router-generator/tests/**/*.gen.js
**/port*.txt
**/test-results/

# Playwright artifacts
**/playwright-report/
**/blob-report/

# misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
.next

npm-debug.log*
yarn-debug.log*
yarn-error.log*
.history
size-plugin.json
stats-hydration.json
stats-react.json
stats.html
.vscode/settings.json

*.log
.DS_Store
.cache
.pnpm-store
ts-perf

/examples/*/*/yarn.lock
/examples/*/*/package-lock.json

.netlify

nx-cloud.env
.nx/cache
.nx/workspace-data

gpt/db.json

vite.config.timestamp-*
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

vite.config.timestamp_*
vite.config.js.timestamp_*
vite.config.ts.timestamp_*

.idea
*.vitest-temp.json

# Handling VSCode settings
/.vscode/
!/examples/react/**/.vscode/settings.json

**/llms

**/.tanstack


================================================
FILE: .npmrc
================================================
provenance=true


================================================
FILE: .nvmrc
================================================
24.8.0


================================================
FILE: .nx/workflows/dynamic-changesets.yaml
================================================
distribute-on:
  small-changeset: 3 linux-medium-js
  medium-changeset: 6 linux-medium-js
  large-changeset: 10 linux-medium-js


================================================
FILE: .prettierignore
================================================
**/.next
**/.nx/cache
**/.svelte-kit
**/build
**/coverage
**/dist
pnpm-lock.yaml
**/snapshots
**/.vercel
**/.output
**/node_modules
node_modules

**/test-results
**/tests/generator/file-modification/routes/(test)/*
**/tests/generator/**/routeTree*.snapshot.ts
/.nx/workspace-data
**/src/routeTree.gen.ts


================================================
FILE: AGENTS.md
================================================
# AGENTS.md

## Project overview

TanStack Router is a type-safe router with built-in caching and URL state management for React and Solid applications. This monorepo contains two main products:

- **TanStack Router** - Core routing library with type-safe navigation, search params, and path params
- **TanStack Start** - Full-stack framework built on top of TanStack Router

## Setup commands

- Install deps: `pnpm install`
- Setup e2e testing: `pnpm exec playwright install`
- Build packages: `pnpm build` (affected) or `pnpm build:all` (force all)
- Start dev server: `pnpm dev`
- Run tests: `pnpm test`

## Code style

- TypeScript strict mode with extensive type safety
- Framework-agnostic core logic separated from React/Solid bindings
- Type-safe routing with search params and path params
- Use workspace protocol for internal dependencies (`workspace:*`)

## Dev environment tips

- This is a pnpm workspace monorepo with packages organized by functionality
- Nx provides caching, affected testing, targeting, and parallel execution for efficiency
- Use `pnpm nx show projects` to list all available packages
- Target specific packages: `pnpm nx run @tanstack/react-router:test:unit`
- Target multiple packages: `pnpm nx run-many --target=test:eslint --projects=@tanstack/history,@tanstack/router-core`
- Run affected tests only: `pnpm nx affected --target=test:unit`
- Exclude patterns: `pnpm nx run-many --target=test:unit --exclude="examples/**,e2e/**"`
- Navigate to examples and run `pnpm dev` to test changes: `cd examples/react/basic && pnpm dev`
- **Granular unit testing through Nx (recommended):**
  - Specific files: `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx tests/Scripts.test.tsx`
  - Test patterns: `pnpm nx run @tanstack/react-router:test:unit -- tests/ClientOnly.test.tsx -t "should render fallback"`
  - Name patterns: `pnpm nx run @tanstack/react-router:test:unit -- -t "navigation"` (all tests with "navigation" in name)
  - Exclude patterns: `pnpm nx run @tanstack/react-router:test:unit -- --exclude="**/*link*" tests/`
  - List tests: `pnpm nx run @tanstack/react-router:test:unit -- list tests/link.test.tsx` (or `-- list` for all)
- **Available test targets per package:** `test:unit`, `test:types`, `test:eslint`, `test:build`, `test:perf`, `build`
- **Testing strategy:** Package level (nx) → File-level args via nx → Test-level args (`-t`) via nx → Pattern-level args (`--exclude`) via nx
- **Agent execution guardrails (important):**
  - Always prefer `pnpm nx ...` over `npx nx ...`.
  - Prefer Nx targets over direct test runners so task dependencies (including required builds) remain in the graph.
  - In sandbox, run Nx with `CI=1 NX_DAEMON=false pnpm nx run <project>:<target> --outputStyle=stream --skipRemoteCache`
  - Run only one Nx command at a time.
  - If an Nx command shows no output for ~20 seconds, stop, run `pnpm nx reset` once, and retry once.
  - Do not loop retries indefinitely. If it still hangs or sandbox blocks graph/daemon behavior, request escalation immediately.

## Testing instructions

- **Critical**: Always run unit and type tests during development - do not proceed if they fail
- **Test types:** `pnpm test:unit`, `pnpm test:types`, `pnpm test:eslint`, `pnpm test:e2e`, `pnpm test:build`
- **Full CI suite:** `pnpm test:ci`
- **Fix formatting:** `pnpm format`
- **Efficient targeted testing workflow:**
  1. **Affected only:** `pnpm nx affected --target=test:unit` (compares to main branch)
  2. **Specific packages:** `pnpm nx run @tanstack/react-router:test:unit`
  3. **Specific files:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx`
  4. **Specific patterns:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t "preloading"`
- **Pro tips:**
  - Use `pnpm nx run @tanstack/react-router:test:unit -- list` to explore available tests before running
  - Use `-t "pattern"` to focus on specific functionality during development
  - Use `--exclude` patterns to skip unrelated tests
  - Keep all test filtering arguments behind `pnpm nx run ... -- ...` for maximum precision while preserving task dependencies
- **Example workflow:** `pnpm nx run @tanstack/react-router:test:unit` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t "preloading"`

## PR instructions

- Always run `pnpm test:eslint`, `pnpm test:types`, and `pnpm test:unit` before committing
- Test changes in relevant example apps: `cd examples/react/basic && pnpm dev`
- Update corresponding documentation in `docs/` directory when adding features
- Add or update tests for any code changes
- Use internal docs links relative to `docs/` folder (e.g., `./guide/data-loading`)

## Package structure

**Core packages:**

- `packages/router-core/` - Framework-agnostic core router logic
- `packages/react-router/`, `packages/solid-router/` - React/Solid bindings and components
- `packages/history/` - Browser history management

**Tooling:**

- `packages/router-cli/` - CLI tools for code generation
- `packages/router-generator/` - Route generation utilities
- `packages/router-plugin/` - Universal bundler plugins (Vite, Webpack, ESBuild, Rspack)
- `packages/virtual-file-routes/` - Virtual file routing system

**Developer experience:**

- `packages/router-devtools/`, `packages/*-router-devtools/` - Development tools
- `packages/eslint-plugin-router/` - ESLint rules for router

**Validation adapters:**

- `packages/zod-adapter/`, `packages/valibot-adapter/`, `packages/arktype-adapter/`

**Start framework:**

- `packages/*-start/`, `packages/start-*/` - Full-stack framework packages

**Examples & testing:**

- `examples/react/`, `examples/solid/` - Example applications (test changes here)
- `e2e/` - End-to-end tests (requires Playwright)
- `docs/router/`, `docs/start/` - Documentation with React/Solid subdirectories

**Dependencies:** Uses workspace protocol (`workspace:*`) - core → framework → start packages

## Common development tasks

**Adding new routes:**

- Use file-based routing in `src/routes/` directories
- Or use code-based routing with route definitions
- Run route generation with CLI tools

**Testing changes:**

- Build packages: `pnpm build` or `pnpm dev` (watch mode)
- Run example apps to test functionality
- Use devtools for debugging router state

**Documentation updates:**

- Update relevant docs in `docs/` directory
- Ensure examples reflect documentation changes
- Test documentation links and references
- Use relative links to `docs/` folder format

## Framework-specific notes

**React:**

- Uses React Router components and hooks
- Supports React Server Components (RSC)
- Examples include React Query integration
- Package: `@tanstack/react-router`

**Solid:**

- Uses Solid Router components and primitives
- Supports Solid Start for full-stack applications
- Examples include Solid Query integration
- Package: `@tanstack/solid-router`

## Environment requirements

- **Node.js** - Required for development
- **pnpm** - Package manager (required for workspace features)
- **Playwright** - Required for e2e tests (`pnpm exec playwright install`)

## Key architecture patterns

- **Type Safety**: Extensive TypeScript for type-safe routing
- **Framework Agnostic**: Core logic separated from framework bindings
- **Plugin Architecture**: Universal bundler plugins using unplugin
- **File-based Routing**: Support for both code-based and file-based routing
- **Search Params**: First-class support for type-safe search parameters

## Development workflow

1. **Setup**: `pnpm install` and `pnpm exec playwright install`
2. **Build**: `pnpm build:all` or `pnpm dev` for watch mode
3. **Test**: Make changes and run relevant tests (use nx for targeted testing)
4. **Examples**: Navigate to examples and run `pnpm dev` to test changes
5. **Quality**: Run `pnpm test:eslint`, `pnpm test:types`, `pnpm test:unit` before committing

## References

- **Documentation**: https://tanstack.com/router
- **GitHub**: https://github.com/TanStack/router
- **Discord Community**: https://discord.com/invite/WrRKjPJ


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

- Clone the repo
  - `gh repo clone TanStack/router`
- Ensure `node` is installed
  - https://nodejs.org/en/
- Ensure `pnpm` is installed
  - https://pnpm.io/installation
  - Why? We use `pnpm` to manage workspace dependencies. It's easily the best monorepo/workspace experience available as of when this was written.
- Install dependencies
  - `pnpm install`
  - This installs dependencies for all of the packages in the monorepo, even examples!
  - Dependencies inside of the packages and examples are automatically linked together as local/dynamic dependencies.
- Install test dependencies
  - `pnpm exec playwright install` (required for e2e tests)
- Run the build or dev watcher
  - `pnpm build:all` (build all packages) or
  - `pnpm build` (cached build with [nx affected](https://nx.dev/nx-api/nx/documents/affected)) or
  - `pnpm dev`
- Navigate to an example
  - `cd examples/react/basic`
- Run the example
  - `pnpm dev`
- Make changes to the code
  - If you ran `pnpm dev` the dev watcher will automatically rebuild the code that has changed
- Editing the docs locally and previewing the changes
  - The documentations for all the TanStack projects are hosted on [tanstack.com](https://tanstack.com), which is a TanStack Start application (https://github.com/TanStack/tanstack.com). You need to run this app locally to preview your changes in the `TanStack/router` docs.

> [!NOTE]
> The website fetches the doc pages from GitHub in production, and searches for them at `../router/docs` in development. Your local clone of `TanStack/router` needs to be in the same directory as the local clone of `TanStack/tanstack.com`.

You can follow these steps to set up the docs for local development:

1. Make a new directory called `tanstack`.

```sh
mkdir tanstack
```

2. Enter that directory and clone the [`TanStack/router`](https://github.com/TanStack/router) and [`TanStack/tanstack.com`](https://github.com/TanStack/tanstack.com) repos.

```sh
cd tanstack
git clone git@github.com:TanStack/router.git
# We probably don't need all the branches and commit history
# from the `tanstack.com` repo, so let's just create a shallow
# clone of the latest version of the `main` branch.
# Read more about shallow clones here:
# https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/#user-content-shallow-clones
git clone git@github.com:TanStack/tanstack.com.git --depth=1 --single-branch --branch=main
```

> [!NOTE]
> Your `tanstack` directory should look like this:
>
> ```
> tanstack/
>    |
>    +-- router/ (<-- this directory cannot be called anything else!)
>    |
>    +-- tanstack.com/
> ```

3. Enter the `tanstack/tanstack.com` directory, install the dependencies and run the app in dev mode:

```sh
cd tanstack.com
pnpm i
# The app will run on https://localhost:3000 by default
pnpm dev
```

4. Now you can visit http://localhost:3000/router/latest/docs/framework/react/overview in the browser and see the changes you make in `tanstack/router/docs` there.

> [!WARNING]
> You will need to update the `docs/(router or start)config.json` file (in `TanStack/router`) if you add a new documentation page!

You can see the whole process in the screen capture below:

https://github.com/fulopkovacs/form/assets/43729152/9d35a3c3-8153-4e74-9cb2-af275f7a269b


================================================
FILE: DEBUGGING.md
================================================
# Debugging & Testing Guide

_A practical guide for debugging complex issues and running tests effectively, learned from investigating production regressions in large codebases._

## Quick Start Debugging Checklist

When you encounter a bug report or failing test:

1. **Reproduce first** - Create a minimal test case that demonstrates the exact issue
2. **Establish baseline** - Run existing tests to see what currently works/breaks
3. **Add targeted logging** - Insert debug output at key decision points
4. **Trace the data flow** - Follow the path from input to unexpected output
5. **Check recent changes** - Look for version changes mentioned in bug reports
6. **Test your hypothesis** - Make small, targeted changes and validate each step

## Essential Testing Commands

### Monorepo with Nx

```bash
# Run all tests for a package
npx nx test:unit @package-name

# Run specific test file
npx nx test:unit @package-name -- --run path/to/test.test.tsx

# Run tests matching a pattern
npx nx test:unit @package-name -- --run "pattern-in-test-name"

# Run with verbose output
npx nx test:unit @package-name -- --run --verbose
```

### Standard npm/yarn projects

```bash
# Run specific test file
npm test -- --run path/to/test.test.tsx
yarn test path/to/test.test.tsx

# Run tests matching pattern
npm test -- --grep "test pattern"
```

### Useful test flags

```bash
# Run only (don't watch for changes)
--run

# Show full output including console.logs
--verbose

# Run in specific environment
--environment=jsdom
```

## Effective Debugging Strategies

### 1. Strategic Logging

```javascript
// Use distinctive prefixes for easy filtering
console.log('[DEBUG useNavigate] from:', from, 'to:', to)
console.log('[DEBUG router] current location:', state.location.pathname)

// Log both input and output of functions
console.log('[DEBUG buildLocation] input:', dest)
// ... function logic ...
console.log('[DEBUG buildLocation] output:', result)
```

**Pro tip:** Use `[DEBUG componentName]` prefixes so you can easily filter logs in browser dev tools.

### 2. Reproduction Test Pattern

```javascript
test('should reproduce the exact issue from bug report', async () => {
  // Set up the exact scenario described
  const router = createRouter({
    /* exact config from bug report */
  })

  // Perform the exact user actions
  await navigate({ to: '/initial-route' })
  await navigate({ to: '.', search: { param: 'value' } })

  // Assert the expected vs actual behavior
  expect(router.state.location.pathname).toBe('/expected')
  // This should fail initially, proving reproduction
})
```

### 3. Data Flow Tracing

```
User Action → Hook Call → Router Logic → State Update → UI Update
     ↓            ↓           ↓           ↓          ↓
  onClick()  → useNavigate() → buildLocation() → setState() → re-render
```

Add logging at each step to see where the flow diverges from expectations.

## Common Pitfalls & Solutions

### React Testing Issues

**Problem:** State updates not reflected in tests

```javascript
// ❌ Bad - missing act() wrapper
fireEvent.click(button)
expect(component.state).toBe(newValue)

// ✅ Good - wrapped in act()
act(() => {
  fireEvent.click(button)
})
expect(component.state).toBe(newValue)
```

**Problem:** Async operations not completing

```javascript
// ❌ Bad - not waiting for async
const result = await someAsyncOperation()
expect(result).toBe(expected)

// ✅ Good - ensuring completion
await act(async () => {
  await someAsyncOperation()
})
expect(result).toBe(expected)
```

### React Router Specific Issues

**Context vs Location confusion:**

- `useMatch({ strict: false })` returns the **component's route context**
- `router.state.location.pathname` returns the **current URL**
- These can be different when components are rendered by parent routes

```javascript
// Component rendered by parent route "/" but URL is "/child"
const match = useMatch({ strict: false }) // Returns "/" context
const location = router.state.location.pathname // Returns "/child"
```

## Search & Investigation Commands

### Finding relevant code

```bash
# Search for specific patterns in TypeScript/JavaScript files
grep -r "navigate.*to.*\." --include="*.ts" --include="*.tsx" .

# Find files related to a feature
find . -name "*navigate*" -type f

# Search with ripgrep (faster)
rg "useNavigate" --type typescript
```

### Git investigation

```bash
# Find when a specific line was changed
git blame path/to/file.ts

# See recent changes to a file
git log --oneline -10 path/to/file.ts

# Search commit messages
git log --grep="navigation" --oneline
```

## Testing Best Practices

### Test Structure

```javascript
describe('Feature', () => {
  beforeEach(() => {
    // Reset state for each test
    cleanup()
    history = createBrowserHistory()
  })

  test('should handle specific scenario', async () => {
    // Arrange - set up the test conditions
    const router = createRouter(config)

    // Act - perform the action being tested
    await act(async () => {
      navigate({ to: '/target' })
    })

    // Assert - verify the results
    expect(router.state.location.pathname).toBe('/target')
  })
})
```

### Multiple Assertions

```javascript
test('navigation should update both path and search', async () => {
  await navigate({ to: '/page', search: { q: 'test' } })

  // Test multiple aspects
  expect(router.state.location.pathname).toBe('/page')
  expect(router.state.location.search).toEqual({ q: 'test' })
  expect(router.state.matches).toHaveLength(2)
})
```

## Architecture Investigation Process

### 1. Map the System

```
User Input → Component → Hook → Core Logic → State → UI
```

Identify each layer and what it's responsible for.

### 2. Find the Divergence Point

Use logging to identify exactly where expected behavior diverges:

```javascript
console.log('Input received:', input)
// ... processing ...
console.log('After step 1:', intermediate)
// ... more processing ...
console.log('Final output:', output) // Is this what we expected?
```

### 3. Check Assumptions

Common false assumptions:

- "This hook returns the current route" (might return component context)
- "State updates are synchronous" (often async in React)
- "This worked before" (check if tests actually covered this case)

## Regression Investigation

### Version Comparison

```bash
# Check what changed between versions
git diff v1.120.13..v1.121.34 -- packages/react-router/

# Look for specific changes
git log v1.120.13..v1.121.34 --oneline --grep="navigate"
```

### Bisecting Issues

```bash
# Start bisect to find breaking commit
git bisect start
git bisect bad HEAD
git bisect good v1.120.13

# Test each commit until you find the breaking change
```

## When to Stop & Reconsider

**Stop changing code when:**

- Your fix breaks multiple existing tests
- You're changing fundamental assumptions
- The solution feels hacky or overly complex

**Consider instead:**

- Adding a new API rather than changing existing behavior
- Documenting the current behavior if it's actually correct
- Creating a more targeted fix for the specific use case

## Advanced Debugging Techniques

### React DevTools

- Inspect component tree to understand render context
- Check props and state at each level
- Use Profiler to identify performance issues

### Browser DevTools

```javascript
// Add global debugging helpers
window.debugRouter = router
window.debugState = () => console.log(router.state)

// Use conditional breakpoints
if (router.state.location.pathname === '/problematic-route') {
  debugger
}
```

### Test Isolation

```javascript
// Run only one test to isolate issues
test.only('this specific failing test', () => {
  // ...
})

// Skip problematic tests temporarily
test.skip('temporarily disabled', () => {
  // ...
})
```

## Key Takeaways

1. **Reproduction beats theory** - A failing test that demonstrates the issue is worth more than understanding the problem in theory

2. **Existing tests are protection** - If your fix breaks many existing tests, you're probably changing the wrong thing

3. **Context matters** - Especially in React, understanding where components are rendered and what context they have access to is crucial

4. **Small changes, frequent validation** - Make small, targeted changes and test each one rather than large refactors

5. **Sometimes the answer is "don't change it"** - Not every reported issue needs a code change; sometimes documentation or a new API is the right solution

---

_This guide was developed while investigating a navigation regression in TanStack Router, where `navigate({ to: "." })` unexpectedly redirected to the root instead of staying on the current route._


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021-present Tanner Linsley

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
<img src="https://static.scarf.sh/a.png?x-pxid=d988eb79-b0fc-4a2b-8514-6a1ab932d188" />

<table>
<tr>
<td>

<img
src="./media/header_router.png"
alt="TanStack Router"
/>

## TanStack Router

A modern router designed for type safety, data‑driven navigation, and seamless developer experience.

- End‑to-end type safety (routes, params, loaders)
- Schema‑driven search params with validation
- Built‑in caching, prefetching & invalidation
- Nested layouts, transitions & error boundaries

### [Read the Router Docs →](https://tanstack.com/router)

</td>
<td>

<img
src="./media/header_start.png"
alt="TanStack Start"
/>

## TanStack Start

A full‑stack framework built on Router, designed for server rendering, streaming, and production‑ready deployments.

- Full‑document SSR & streaming
- Server functions & end‑to‑end type safety
- Deployment‑ready bundling & builds
- All the power of TanStack Router, plus full‑stack features

### [Read the Start Docs →](https://tanstack.com/start)

</td>
</tr>
</table>

<br />

<p align="center">
  <a href="https://npmjs.com/package/@tanstack/react-router"><img src="https://img.shields.io/npm/dm/@tanstack/react-router.svg" alt="npm downloads" /></a> <a href="https://github.com/tanstack/router"><img src="https://img.shields.io/github/stars/tanstack/router.svg?style=social&label=Star" alt="GitHub stars" /></a> <a href="https://bundlephobia.com/result?p=@tanstack/react-router"><img src="https://badgen.net/bundlephobia/minzip/@tanstack/react-router" alt="Bundle size" /></a>
</p>
<p align="center">
  <a href="#badge"><img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg"></a> <a href="https://bestofjs.org/projects/tanstack-router"><img alt="Best of JS" src="https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=TanStack%2Frouter%26since=daily" /></a> <a href="https://twitter.com/tan_stack"><img src="https://img.shields.io/twitter/follow/tan_stack.svg?style=social" alt="Follow @TanStack"/></a>
</p>

<div align="center">

### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)

</div>

## Get Involved

- We welcome issues and pull requests!
- Participate in [GitHub discussions](https://github.com/TanStack/router/discussions)
- Chat with the community on [Discord](https://discord.com/invite/WrRKjPJ)
- See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions

## Partners

<table align="center">
  <tr>
        <td>
      <a href="https://www.coderabbit.ai/?via=tanstack&dub_id=aCcEEdAOqqutX6OS" >
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/coderabbit-dark-D643Zkrv.svg" />
          <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/coderabbit-light-CIzGLYU_.svg" />
          <img src="https://tanstack.com/assets/coderabbit-light-CIzGLYU_.svg" height="40" alt="CodeRabbit" />
        </picture>
      </a>
    </td>
    <td>
      <a href="https://www.cloudflare.com?utm_source=tanstack">
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/cloudflare-white-Co-Tyjbl.svg" />
          <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/cloudflare-black-6Ojsn8yh.svg" />
          <img src="https://tanstack.com/assets/cloudflare-white-Co-Tyjbl.svg" height="60" alt="Cloudflare" />
        </picture>
      </a>
    </td>
    <td>
      <a href="https://netlify.com?utm_source=tanstack">
      <picture>
        <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tanstack/tanstack.com/main/src/images/netlify-dark.svg" height="70"/>
        <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/netlify.svg" height="70"/>
        <img src="https://raw.githubusercontent.com/tanstack/tanstack.com/main/src/images/netlify-dark.svg" height="70" alt="Netlify" />
      </picture>
      </a>
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://neon.tech?utm_source=tanstack">
		  <picture>
	        <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tanstack/tanstack.com/main/src/images/neon-dark.svg" height="50"/>
	        <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/neon.svg" height="50"/>
	        <img src="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/neon.svg" height="50" alt="Neon" />
		  </picture>
	  </a>
    </td>
    <td>
      <a href="https://go.clerk.com/wOwHtuJ">
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/clerk-logo-dark-CRE22T_2.svg" height="40"/>
          <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/clerk.svg" height="40"/>
          <img src="https://tanstack.com/assets/clerk-logo-dark-CRE22T_2.svg" height="40" alt="Clerk" />
        </picture>
      </a>
    </td>
    <td>
      <a href="https://convex.dev?utm_source=tanstack">
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tanstack/tanstack.com/main/src/images/convex-white.svg" height="30"/>
          <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/convex.svg" height="30"/>
          <img src="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/convex.svg" height="30" alt="Convex" />
        </picture>
      </a>
    </td>
  </tr>
    <tr>
    <td>
      <a href="https://sentry.io?utm_source=tanstack">
        <picture>
           <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tanstack/tanstack.com/main/src/images/sentry-wordmark-light.svg" height="50"/>
          <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/sentry.svg" height="50"/>
          <img src="https://raw.githubusercontent.com/tannerlinsley/files/master/partners/sentry.svg" height="50" alt="Sentry" />
        </picture>
      </a>
    </td>
    <td>
      <a href="https://www.prisma.io?utm_source=tanstack&via=tanstack">
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/prisma-dark-DwgDxLwn.svg" height="50"/>
          <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/prisma-light-Cloa3Onm.svg" height="50"/>
          <img src="https://tanstack.com/assets/prisma-dark-DwgDxLwn.svg" height="50" alt="Prisma" />
        </picture>
      </a>
    </td>
    <td>
      <a href="https://strapi.link/tanstack-start">
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/strapi-dark-CQ84tQTk.svg" height="40"/>
          <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/strapi-light-6x7linao.svg" height="40"/>
          <img src="https://tanstack.com/assets/strapi-dark-CQ84tQTk.svg" height="40" alt="Strapi" />
        </picture>
      </a>
    </td>
  </tr>
</table>

<div align="center">
<img src="./media/partner_logo.svg" alt="Router & you?" height="65">
<p>
We're looking for TanStack Router & Start Partners to join our mission! Partner with us to push the boundaries of TanStack Router & Start and build amazing things together.
</p>
<a href="mailto:partners@tanstack.com?subject=TanStack Router & Start Partnership"><b>LET'S CHAT</b></a>
</div>

## Explore the TanStack Ecosystem

- <a href="https://github.com/tanstack/config"><b>TanStack Config</b></a> – Tooling for JS/TS packages
- <a href="https://github.com/tanstack/db"><b>TanStack DB</b></a> – Reactive sync client store
- <a href="https://github.com/tanstack/devtools"><b>TanStack DevTools</b></a> – Unified devtools panel
- <a href="https://github.com/tanstack/form"><b>TanStack Form</b></a> – Type‑safe form state
- <a href="https://github.com/tanstack/pacer"><b>TanStack Pacer</b></a> – Debouncing, throttling, batching <br/>
- <a href="https://github.com/tanstack/query"><b>TanStack Query</b></a> – Async state & caching
- <a href="https://github.com/tanstack/ranger"><b>TanStack Ranger</b></a> – Range & slider primitives
- <a href="https://github.com/tanstack/store"><b>TanStack Store</b></a> – Reactive data store
- <a href="https://github.com/tanstack/table"><b>TanStack Table</b></a> – Headless datagrids
- <a href="https://github.com/tanstack/virtual"><b>TanStack Virtual</b></a> – Virtualized rendering

… and more at <a href="https://tanstack.com"><b>TanStack.com »</b></a>

<!-- Use the force, Luke!!! -->


================================================
FILE: _artifacts/domain_map.yaml
================================================
# domain_map.yaml
# Generated by skill-domain-discovery
# Library: TanStack Router
# Version: 1.166.2
# Date: 2026-03-07
# Status: reviewed

library:
  name: '@tanstack/react-router'
  version: '1.166.2'
  repository: 'https://github.com/TanStack/router'
  description: >-
    Type-safe router for React and Solid with built-in SWR caching,
    JSON-first search params, file-based route generation, and
    end-to-end type inference.
  primary_framework: 'React'

domains:
  - name: 'Defining Routes'
    slug: 'defining-routes'
    description: >-
      Setting up route trees via file-based, code-based, or virtual
      file routes, configuring the router instance, and registering
      types for end-to-end inference.

  - name: 'Navigating'
    slug: 'navigating'
    description: >-
      Moving between routes using Links, imperative navigation,
      redirects, preloading, active states, and navigation blocking.

  - name: 'Managing URL State'
    slug: 'managing-url-state'
    description: >-
      Reading and writing search params and path params with
      validation, serialization, middlewares, and type-safe adapters.

  - name: 'Loading Data'
    slug: 'loading-data'
    description: >-
      Fetching data via route loaders, coordinating external caches,
      managing SWR caching, deferred loading, and error/pending states.

  - name: 'Protecting Routes'
    slug: 'protecting-routes'
    description: >-
      Authentication guards, authorization checks, RBAC patterns,
      and redirect-based access control via beforeLoad.

  - name: 'Rendering and Layout'
    slug: 'rendering-and-layout'
    description: >-
      Outlets, nested layouts, pathless layouts, code splitting,
      error boundaries, not-found handling, route masking, scroll
      restoration, and document head management.

  - name: 'Type Safety'
    slug: 'type-safety'
    description: >-
      Router type registration, inference patterns, narrowing with
      from, TypeScript performance, and avoiding unnecessary type
      annotations.

  - name: 'Server-Side Rendering'
    slug: 'server-side-rendering'
    description: >-
      Non-streaming and streaming SSR setup, hydration, data
      serialization, and isomorphic router creation.

skills:
  # ── Defining Routes ──────────────────────────────────────────────
  - name: 'Route Setup'
    slug: 'route-setup'
    domain: 'defining-routes'
    description: >-
      Set up a TanStack Router project with file-based, code-based,
      or virtual file routes, configure the router instance, and
      register types.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
      - '@tanstack/router-plugin'
      - '@tanstack/router-generator'
      - '@tanstack/router-cli'
      - '@tanstack/virtual-file-routes'
      - '@tanstack/eslint-plugin-router'
    covers:
      - createRouter
      - createRootRoute
      - createRootRouteWithContext
      - createRoute
      - createFileRoute
      - createLazyFileRoute
      - addChildren
      - routeTree.gen.ts
      - declare module Register
      - TanStackRouter bundler plugin
      - tsr.config.json
      - virtual file routes API
      - file naming conventions
      - route matching and sorting
    tasks:
      - 'Scaffold a new TanStack Router project'
      - 'Configure file-based routing with Vite plugin'
      - 'Set up code-based route tree manually'
      - 'Configure virtual file routes for custom conventions'
      - 'Register router types via module declaration'
      - 'Set up ESLint plugin for route property ordering'
    reference_candidates:
      - topic: 'file naming conventions'
        reason: '>10 distinct conventions (dot separator, $ token, _ prefix/suffix, () groups, [] escaping, index, route.tsx, __root)'
    failure_modes:
      - mistake: 'Missing router type registration'
        mechanism: >-
          Without declare module Register, top-level exports like
          Link, useNavigate, useParams have no type safety. Code
          compiles but all route paths are untyped strings.
        wrong_pattern: |
          const router = createRouter({ routeTree })
          // no declare module — Link to="" has no autocomplete
        correct_pattern: |
          const router = createRouter({ routeTree })
          declare module '@tanstack/react-router' {
            interface Register {
              router: typeof router
            }
          }
        source: 'docs/router/guide/creating-a-router.md'
        priority: CRITICAL
        status: active
        skills: ['route-setup', 'type-safety']

      - mistake: 'Not committing routeTree.gen.ts'
        mechanism: >-
          routeTree.gen.ts is runtime code, not a build artifact.
          Without it in version control, other developers cannot
          build or run the project.
        source: 'docs/router/faq.md'
        priority: HIGH
        status: active

      - mistake: 'Wrong route property order breaks type inference'
        mechanism: >-
          Properties like beforeLoad must come before loader in
          createRoute/createFileRoute calls. Incorrect order causes
          context types to not flow into loader.
        wrong_pattern: |
          createFileRoute('/posts')({
            loader: ({ context }) => context.queryClient.ensureQueryData(postsQuery),
            beforeLoad: ({ context }) => ({ queryClient: context.queryClient }),
          })
        correct_pattern: |
          createFileRoute('/posts')({
            beforeLoad: ({ context }) => ({ queryClient: context.queryClient }),
            loader: ({ context }) => context.queryClient.ensureQueryData(postsQuery),
          })
        source: 'docs/router/eslint/create-route-property-order.md'
        priority: HIGH
        status: active

      - mistake: 'Placing TanStackRouter plugin after framework plugin'
        mechanism: >-
          The TanStackRouter Vite plugin must be listed before the
          React/Solid plugin in the Vite config. Wrong order causes
          route generation to fail silently.
        wrong_pattern: |
          plugins: [react(), TanStackRouterVite()]
        correct_pattern: |
          plugins: [TanStackRouterVite(), react()]
        source: 'docs/router/installation/with-vite.md'
        priority: HIGH
        status: active

      - mistake: 'Using getParentRoute incorrectly in code-based routing'
        mechanism: >-
          Every non-root route must reference its correct parent via
          getParentRoute. Wrong parent breaks type inference for
          context, search params, and path params from ancestors.
        source: 'docs/router/decisions-on-dx.md'
        priority: HIGH
        status: active

    compositions:
      - library: '@tanstack/eslint-plugin-router'
        skill: null

  # ── Navigating ───────────────────────────────────────────────────
  - name: 'Navigation'
    slug: 'navigation'
    domain: 'navigating'
    description: >-
      Navigate between routes using Link, useNavigate, Navigate
      component, and router.navigate. Configure preloading, active
      link states, and navigation blocking.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - Link component
      - useNavigate hook
      - Navigate component
      - router.navigate
      - ToOptions / NavigateOptions / LinkOptions
      - from / to relative navigation
      - activeOptions / activeProps / inactiveProps
      - preload (intent / viewport / render)
      - preloadDelay / defaultPreloadDelay
      - useBlocker hook
      - Block component
      - createLink (custom link components)
      - linkOptions helper
      - MatchRoute component
      - scroll restoration
    tasks:
      - 'Create type-safe links between routes'
      - 'Navigate programmatically after an action'
      - 'Set up link preloading on hover intent'
      - 'Style active and inactive links'
      - 'Block navigation for unsaved changes'
      - 'Create custom link components with createLink'
      - 'Build reusable navigation options with linkOptions'
      - 'Configure scroll restoration'
    failure_modes:
      - mistake: 'Interpolating params into the to string'
        mechanism: >-
          Agents build paths like to={`/posts/${id}`} instead of
          using the params option. Breaks type safety and param
          encoding.
        wrong_pattern: |
          <Link to={`/posts/${postId}`}>Post</Link>
        correct_pattern: |
          <Link to="/posts/$postId" params={{ postId }}>Post</Link>
        source: 'docs/router/guide/navigation.md'
        priority: CRITICAL
        status: active
        skills: ['navigation', 'type-safety']

      - mistake: 'Using useNavigate instead of Link for user-clickable elements'
        mechanism: >-
          Link renders a real <a> with href, supports cmd/ctrl+click
          and preloading. useNavigate produces no accessible element.
        source: 'docs/router/guide/navigation.md'
        priority: MEDIUM
        status: active

      - mistake: 'Not providing from for relative navigation'
        mechanism: >-
          Without from, the router assumes navigation from root.
          Only absolute paths are autocompleted. Relative paths
          like ".." resolve from root instead of current route.
        wrong_pattern: |
          <Link to="..">Back</Link>
        correct_pattern: |
          <Link from={Route.fullPath} to="..">Back</Link>
        source: 'docs/router/guide/navigation.md'
        priority: HIGH
        status: active

      - mistake: 'Using search as object instead of function loses existing params'
        mechanism: >-
          search={{ page: 2 }} replaces all search params.
          Must use function form to preserve existing params.
        wrong_pattern: |
          <Link to="." search={{ page: 2 }}>Page 2</Link>
        correct_pattern: |
          <Link to="." search={(prev) => ({ ...prev, page: 2 })}>Page 2</Link>
        source: 'docs/router/how-to/navigate-with-search-params.md'
        priority: HIGH
        status: active
        skills: ['navigation', 'search-params']

  # ── Managing URL State ───────────────────────────────────────────
  - name: 'Search Params'
    slug: 'search-params'
    domain: 'managing-url-state'
    description: >-
      Validate, read, write, and transform search params with
      schema validation, adapters, middlewares, and custom
      serialization.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
      - '@tanstack/zod-adapter'
      - '@tanstack/valibot-adapter'
      - '@tanstack/arktype-adapter'
    covers:
      - validateSearch
      - useSearch hook
      - Route.useSearch
      - getRouteApi().useSearch
      - search middlewares
      - retainSearchParams
      - stripSearchParams
      - custom serialization (parseSearch / stringifySearch)
      - zod adapter / valibot adapter / arktype adapter
      - search param inheritance from parent routes
      - structural sharing for search params
    tasks:
      - 'Add validated search params to a route'
      - 'Read search params in components'
      - 'Update search params while preserving others'
      - 'Share search params across parent and child routes'
      - 'Set up search param middlewares for retention/stripping'
      - 'Configure custom search param serialization'
      - 'Handle arrays, objects, and dates in search params'
    subsystems:
      - name: 'Zod adapter'
        package: '@tanstack/zod-adapter'
        config_surface: 'zodValidator, fallback() wrapper for .catch/.default type correctness'
      - name: 'Valibot adapter'
        package: '@tanstack/valibot-adapter'
        config_surface: 'Standard Schema compliant, requires valibot 1.0'
      - name: 'ArkType adapter'
        package: '@tanstack/arktype-adapter'
        config_surface: 'Standard Schema compliant, requires arktype 2.0-rc, pass directly to validateSearch'
    reference_candidates:
      - topic: 'search param validation patterns'
        reason: '>10 distinct patterns (basic, optional, arrays, objects, dates, discriminated unions, transforms, conditional, cross-route inheritance, middleware chaining)'
    failure_modes:
      - mistake: 'Using zod .catch() instead of adapter fallback()'
        mechanism: >-
          Zod .catch() makes the output type unknown, losing type
          safety. The @tanstack/zod-adapter fallback() preserves
          the correct inferred type.
        wrong_pattern: |
          z.object({ page: z.number().catch(1) })
        correct_pattern: |
          import { fallback } from '@tanstack/zod-adapter'
          z.object({ page: fallback(z.number(), 1) })
        source: 'docs/router/guide/search-params.md'
        priority: HIGH
        status: active

      - mistake: 'Returning entire search object from loaderDeps'
        mechanism: >-
          loaderDeps: ({ search }) => search causes loader to
          re-run on ANY search param change, not just relevant ones.
          Deep equality comparison fires on every unrelated change.
        wrong_pattern: |
          loaderDeps: ({ search }) => search
        correct_pattern: |
          loaderDeps: ({ search }) => ({ page: search.page })
        source: 'docs/router/guide/data-loading.md'
        priority: HIGH
        status: active
        skills: ['search-params', 'data-loading']

      - mistake: 'Passing Date objects in search params'
        mechanism: >-
          Date objects serialize to [object Object] in URLs.
          Must convert to ISO strings for correct serialization.
        wrong_pattern: |
          <Link search={{ startDate: new Date() }}>
        correct_pattern: |
          <Link search={{ startDate: new Date().toISOString() }}>
        source: 'docs/router/how-to/arrays-objects-dates-search-params.md'
        priority: HIGH
        status: active

      - mistake: 'Parent route missing validateSearch blocks inheritance'
        mechanism: >-
          Child routes cannot access shared search params unless
          the parent route defines validateSearch. Without it,
          the types and runtime values are not available.
        source: 'docs/router/how-to/share-search-params-across-routes.md'
        priority: MEDIUM
        status: active

  - name: 'Path Params'
    slug: 'path-params'
    domain: 'managing-url-state'
    description: >-
      Define and consume dynamic path segments, splat routes,
      optional params, and prefix/suffix patterns.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - '$paramName dynamic segments'
      - '$ splat / _splat'
      - '{-$paramName} optional params'
      - '{$paramName} prefix/suffix patterns'
      - useParams hook
      - params.parse / params.stringify
      - pathParamsAllowedCharacters
    tasks:
      - 'Define routes with dynamic path parameters'
      - 'Use splat routes for catch-all matching'
      - 'Set up optional path parameters for i18n'
      - 'Navigate with type-safe path params'
    failure_modes:
      - mistake: 'Interpolating path params into to string'
        mechanism: >-
          Same as navigation failure mode — agents build template
          literal paths instead of using params option.
        source: 'docs/router/guide/navigation.md'
        priority: CRITICAL
        status: active
        skills: ['path-params', 'navigation']

      - mistake: 'Using * for splat routes instead of $'
        mechanism: >-
          TanStack Router uses $ for splat routes, not * like some
          other routers. The captured value is under _splat key,
          not * (though * works in v1 for backwards compat, removed in v2).
        source: 'docs/router/routing/routing-concepts.md'
        priority: MEDIUM
        status: 'fixed-but-legacy-risk'
        version_context: '* works in v1 for compat but will be removed in v2'

      - mistake: 'Using curly braces for basic dynamic segments'
        mechanism: >-
          Basic dynamic segments use $postId (no braces). Curly
          braces are only for prefix/suffix patterns like {$postId}.txt
          or optional params {-$locale}.
        source: 'docs/router/guide/path-params.md'
        priority: MEDIUM
        status: active

  # ── Loading Data ─────────────────────────────────────────────────
  - name: 'Data Loading'
    slug: 'data-loading'
    domain: 'loading-data'
    description: >-
      Load data via route loaders with built-in SWR caching,
      configure staleTime/gcTime, use loaderDeps for cache keys,
      handle pending and error states, and inject dependencies
      via router context.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - loader option
      - loaderDeps
      - staleTime / gcTime / defaultPreloadStaleTime
      - pendingComponent / pendingMs / pendingMinMs
      - errorComponent / onError / onCatch
      - beforeLoad
      - router context / createRootRouteWithContext
      - router.invalidate
      - Await component
      - deferred data loading
    tasks:
      - 'Add a data loader to a route'
      - 'Configure cache timing (staleTime, gcTime)'
      - 'Set up loader dependencies for search-param-driven data'
      - 'Show pending UI during slow loads'
      - 'Handle loader errors with error boundaries'
      - 'Inject dependencies via router context'
      - 'Defer non-critical data with unawaited promises'
      - 'Invalidate cached data after mutations'
    failure_modes:
      - mistake: 'Assuming loaders only run on the server'
        mechanism: >-
          TanStack Router is client-first. Loaders run on the client
          by default (and also on the server if using TanStack Start).
          Agents trained on Remix/Next assume loaders are server-only
          and put server-only code (DB queries, fs access) in them.
        source: 'maintainer interview'
        priority: CRITICAL
        status: active
        skills: ['data-loading', 'ssr']

      - mistake: 'Not understanding staleTime default is 0'
        mechanism: >-
          Default staleTime is 0, meaning data is always considered
          stale and reloads in background on every route re-match.
          Agents may not set staleTime, causing excessive refetching.
        source: 'docs/router/guide/data-loading.md'
        priority: MEDIUM
        status: active

      - mistake: 'Using reset() instead of router.invalidate() in error components'
        mechanism: >-
          For loader errors, reset() only resets the error boundary
          but does not re-run the loader. Must use router.invalidate()
          to coordinate both reload and boundary reset.
        wrong_pattern: |
          function PostErrorComponent({ error, reset }) {
            return <button onClick={reset}>Retry</button>
          }
        correct_pattern: |
          function PostErrorComponent({ error, reset }) {
            const router = useRouter()
            return <button onClick={() => { router.invalidate(); reset() }}>Retry</button>
          }
        source: 'docs/router/guide/data-loading.md'
        priority: HIGH
        status: active

      - mistake: 'Double parentheses missing on createRootRouteWithContext'
        mechanism: >-
          createRootRouteWithContext<Type>() is a factory — it returns
          a function. Must call it twice: createRootRouteWithContext<Type>()(routeOptions).
          Missing second call is a common error.
        wrong_pattern: |
          const rootRoute = createRootRouteWithContext<{ auth: AuthState }>({
            component: RootComponent,
          })
        correct_pattern: |
          const rootRoute = createRootRouteWithContext<{ auth: AuthState }>()({
            component: RootComponent,
          })
        source: 'docs/router/guide/data-loading.md'
        priority: HIGH
        status: active

      - mistake: 'Using React hooks in beforeLoad or loader'
        mechanism: >-
          beforeLoad and loader are not React components — hooks
          cannot be called in them. Must extract hook state in a
          wrapper component and pass via router context.
        source: 'docs/router/guide/router-context.md'
        priority: HIGH
        status: active

    compositions:
      - library: '@tanstack/react-query'
        skill: 'external-data-loading'

  - name: 'External Data Loading'
    slug: 'external-data-loading'
    domain: 'loading-data'
    description: >-
      Integrate TanStack Query (or other external caches) with
      Router for coordinated data loading, SSR dehydration/hydration,
      and streaming.
    type: composition
    packages:
      - '@tanstack/react-router'
      - '@tanstack/react-router-ssr-query'
    covers:
      - External cache coordination pattern
      - queryClient.ensureQueryData in loader
      - useSuspenseQuery in components
      - setupRouterSsrQueryIntegration
      - defaultPreloadStaleTime
      - dehydrate / hydrate router options
      - QueryClient per-request isolation
      - Wrap router option for providers
    tasks:
      - 'Set up TanStack Query with Router'
      - 'Preload query data in route loaders'
      - 'Configure SSR dehydration/hydration with Query'
      - 'Stream query data during SSR'
    failure_modes:
      - mistake: 'Not setting defaultPreloadStaleTime to 0 with external caches'
        mechanism: >-
          Router's built-in preload cache (30s default) prevents
          external library from controlling freshness. Set
          defaultPreloadStaleTime: 0 to let Query manage caching.
        wrong_pattern: |
          createRouter({ routeTree })
        correct_pattern: |
          createRouter({ routeTree, defaultPreloadStaleTime: 0 })
        source: 'docs/router/guide/external-data-loading.md'
        priority: HIGH
        status: active

      - mistake: 'Creating QueryClient outside createRouter for SSR'
        mechanism: >-
          For SSR, QueryClient must be created inside createRouter
          to ensure per-request isolation. A shared singleton leaks
          data between requests.
        wrong_pattern: |
          const queryClient = new QueryClient()
          const router = createRouter({ routeTree, context: { queryClient } })
        correct_pattern: |
          function createAppRouter() {
            const queryClient = new QueryClient()
            return createRouter({ routeTree, context: { queryClient } })
          }
        source: 'docs/router/guide/external-data-loading.md'
        priority: HIGH
        status: active

      - mistake: 'Awaiting prefetchQuery in loader blocks rendering'
        mechanism: >-
          For streaming/deferred patterns, prefetchQuery should NOT
          be awaited in the loader — it starts fetching on server
          and streams without blocking. Awaiting defeats the purpose.
        source: 'docs/router/integrations/query.md'
        priority: MEDIUM
        status: active

  # ── Protecting Routes ────────────────────────────────────────────
  - name: 'Auth and Guards'
    slug: 'auth-and-guards'
    domain: 'protecting-routes'
    description: >-
      Protect routes with authentication checks, authorization
      guards, and RBAC patterns using beforeLoad redirects and
      layout routes.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - beforeLoad for auth checks
      - redirect() / throw 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
    tasks:
      - 'Protect routes with authentication checks'
      - 'Redirect unauthenticated users to login'
      - 'Implement role-based access control'
      - 'Integrate third-party auth providers'
      - 'Pass auth state through router context'
    failure_modes:
      - mistake: 'Auth check in component instead of beforeLoad'
        mechanism: >-
          Component-level auth checks cause protected content to
          flash before redirect. beforeLoad runs before any
          component rendering and prevents the flash entirely.
        wrong_pattern: |
          component: () => {
            const auth = useAuth()
            if (!auth.isAuthenticated) return <Navigate to="/login" />
            return <Dashboard />
          }
        correct_pattern: |
          beforeLoad: ({ context }) => {
            if (!context.auth.isAuthenticated) {
              throw redirect({ to: '/login' })
            }
          }
        source: 'docs/router/how-to/setup-authentication.md'
        priority: HIGH
        status: active

      - mistake: 'Not re-throwing redirects in try/catch'
        mechanism: >-
          redirect() works by throwing. If beforeLoad has a try/catch
          for error handling, the redirect gets swallowed unless
          re-thrown via isRedirect() check.
        wrong_pattern: |
          beforeLoad: async ({ context }) => {
            try {
              await validateSession(context.auth)
            } catch (e) {
              // swallows redirect!
              console.error(e)
            }
          }
        correct_pattern: |
          beforeLoad: async ({ context }) => {
            try {
              await validateSession(context.auth)
            } catch (e) {
              if (isRedirect(e)) throw e
              console.error(e)
            }
          }
        source: 'docs/router/guide/authenticated-routes.md'
        priority: HIGH
        status: active

      - mistake: 'Trying to conditionally render root route component'
        mechanism: >-
          Root route is always rendered regardless of auth state.
          Use a pathless layout route (_authenticated) with
          beforeLoad for conditional rendering.
        source: 'docs/router/faq.md'
        priority: MEDIUM
        status: active

  # ── Rendering and Layout ─────────────────────────────────────────
  - name: 'Code Splitting'
    slug: 'code-splitting'
    domain: 'rendering-and-layout'
    description: >-
      Split route code into lazy-loaded chunks using automatic
      code splitting, .lazy.tsx files, or code-based lazy loading.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-plugin'
    covers:
      - autoCodeSplitting plugin option
      - .lazy.tsx file convention
      - createLazyFileRoute
      - createLazyRoute
      - lazyRouteComponent
      - getRouteApi for code-split components
      - codeSplitGroupings per-route override
      - splitBehavior programmatic config
      - Critical vs non-critical route properties
    tasks:
      - 'Enable automatic code splitting'
      - 'Manually split a route with .lazy.tsx'
      - 'Access typed hooks from code-split components'
      - 'Customize which properties are split per route'
    failure_modes:
      - mistake: 'Exporting route property functions prevents code splitting'
        mechanism: >-
          Exported functions from route files are included in the
          main bundle even with auto code splitting. Component
          functions must NOT be exported.
        wrong_pattern: |
          export function PostsComponent() { return <div>Posts</div> }
        correct_pattern: |
          function PostsComponent() { return <div>Posts</div> }
        source: 'docs/router/guide/automatic-code-splitting.md'
        priority: HIGH
        status: active

      - mistake: 'Trying to code-split the root route'
        mechanism: >-
          __root.tsx does not support code splitting — it is always
          rendered regardless of current route.
        source: 'docs/router/guide/code-splitting.md'
        priority: MEDIUM
        status: active

      - mistake: 'Splitting the loader adds double async cost'
        mechanism: >-
          Loader is already async. Splitting it requires fetching
          the chunk AND then executing the loader, adding latency.
          Loaders should stay in the main bundle unless there is
          a specific reason to split them.
        source: 'docs/router/guide/code-splitting.md'
        priority: MEDIUM
        status: active

      - mistake: 'Importing Route in code-split files for typed hooks'
        mechanism: >-
          Importing the Route object in a lazy-loaded file pulls
          the route config into the lazy chunk, defeating code
          splitting. Use getRouteApi('/path') instead.
        wrong_pattern: |
          import { Route } from './posts.tsx'
          const data = Route.useLoaderData()
        correct_pattern: |
          import { getRouteApi } from '@tanstack/react-router'
          const route = getRouteApi('/posts')
          const data = route.useLoaderData()
        source: 'docs/router/guide/code-splitting.md'
        priority: HIGH
        status: active

  - name: 'Not Found and Errors'
    slug: 'not-found-and-errors'
    domain: 'rendering-and-layout'
    description: >-
      Handle not-found routes, missing resources, and route-level
      errors with notFound(), notFoundComponent, errorComponent,
      and CatchBoundary.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - notFound() function
      - notFoundComponent
      - defaultNotFoundComponent
      - notFoundMode (fuzzy / root)
      - errorComponent
      - onError / onCatch
      - CatchBoundary component
      - NotFoundRoute (deprecated)
    tasks:
      - 'Add a 404 page for unmatched routes'
      - 'Throw not-found for missing resources in loaders'
      - 'Configure error boundaries per route'
      - 'Target specific routes with notFound()'
    failure_modes:
      - mistake: 'Using deprecated NotFoundRoute'
        mechanism: >-
          NotFoundRoute is deprecated. When present, notFound() and
          notFoundComponent will NOT work. Must remove NotFoundRoute
          and use notFoundComponent instead.
        source: 'docs/router/guide/not-found-errors.md'
        priority: HIGH
        status: 'fixed-but-legacy-risk'
        version_context: 'NotFoundRoute deprecated, will be removed in next major'

      - mistake: 'Expecting useLoaderData to work in notFoundComponent'
        mechanism: >-
          When notFoundComponent renders, the route's loader may
          not have completed. useLoaderData() may return undefined.
          Use useParams, useSearch, or useRouteContext instead.
        source: 'docs/router/guide/not-found-errors.md'
        priority: MEDIUM
        status: active

      - mistake: 'Leaf route cannot handle not-found errors'
        mechanism: >-
          Routes without children never render Outlet and therefore
          cannot catch not-found errors. Only routes with children
          (or the root route) can have notFoundComponent.
        source: 'docs/router/guide/not-found-errors.md'
        priority: MEDIUM
        status: active

  - name: 'Route Masking'
    slug: 'route-masking'
    domain: 'rendering-and-layout'
    description: >-
      Mask the browser URL while navigating to a different internal
      route, with configurable unmask behavior.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - mask option on Link / navigate
      - createRouteMask
      - routeMasks router option
      - unmaskOnReload
      - location.maskedLocation
      - location.state.__tempLocation
    tasks:
      - 'Show a modal route with a clean URL'
      - 'Configure declarative route masks'
      - 'Control unmask behavior on page reload'
    failure_modes:
      - mistake: 'Expecting masked URLs to survive sharing'
        mechanism: >-
          Masking data is stored in browser history state. When a
          URL is shared or opened in a new tab, masking data is
          lost and the visible URL is used directly.
        source: 'docs/router/guide/route-masking.md'
        priority: MEDIUM
        status: active

  # ── Type Safety ──────────────────────────────────────────────────
  - name: 'Type Safety'
    slug: 'type-safety'
    domain: 'type-safety'
    description: >-
      Leverage TanStack Router's fully inferred type system.
      Avoid unnecessary type annotations, narrow routes with from,
      and optimize TypeScript performance.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - Full type inference philosophy
      - Register module declaration
      - from narrowing on hooks and Link
      - strict false for shared components
      - getRouteApi for code-split typed access
      - addChildren with object syntax for TS perf
      - LinkProps / ValidateLinkOptions type utilities
      - as const satisfies pattern
    tasks:
      - 'Register router types for global type safety'
      - 'Narrow route types with from parameter'
      - 'Use getRouteApi in code-split components'
      - 'Optimize TypeScript performance in large route trees'
      - 'Build type-safe link option utilities'
    failure_modes:
      - mistake: 'Adding type annotations or casts to inferred values'
        mechanism: >-
          TanStack Router is fully type-safe with full inference.
          Adding as Type, generic type parameters, satisfies, or
          explicit type annotations is unnecessary and can mask
          real type errors or break the inference chain.
        wrong_pattern: |
          const search = useSearch({ from: '/posts' }) as { page: number }
        correct_pattern: |
          const search = useSearch({ from: '/posts' })
          // search.page is already typed as number
        source: 'maintainer interview'
        priority: CRITICAL
        status: active

      - mistake: 'Using un-narrowed LinkProps type'
        mechanism: >-
          LinkProps without generics is an extremely large union type.
          Using it as a variable type causes severe TS performance
          degradation. Use as const satisfies or narrow with generics.
        wrong_pattern: |
          const props: LinkProps = { to: '/posts' }
        correct_pattern: |
          const props = { to: '/posts' } as const satisfies LinkProps
        source: 'docs/router/guide/type-safety.md'
        priority: HIGH
        status: active

      - mistake: 'Not narrowing Link/useNavigate with from'
        mechanism: >-
          Without from, search resolves to a union of ALL routes
          search params. TypeScript check time grows linearly with
          route count. Always provide from to narrow.
        wrong_pattern: |
          <Link to=".." search={{ page: 0 }} />
        correct_pattern: |
          <Link from={Route.fullPath} to=".." search={{ page: 0 }} />
        source: 'docs/router/guide/type-safety.md'
        priority: HIGH
        status: active

  # ── Server-Side Rendering ────────────────────────────────────────
  - name: 'SSR'
    slug: 'ssr'
    domain: 'server-side-rendering'
    description: >-
      Set up server-side rendering with non-streaming or streaming
      approaches, manage hydration, and handle document head.
    type: core
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-core'
    covers:
      - RouterClient / RouterServer
      - renderRouterToString / renderRouterToStream
      - createRequestHandler
      - defaultRenderHandler / defaultStreamHandler
      - HeadContent / Scripts components
      - head route option (meta, links, styles, scripts)
      - ScriptOnce component
      - Automatic loader dehydration/hydration
      - Memory history on server
      - Data serialization (Date, Error, FormData, undefined)
    tasks:
      - 'Set up non-streaming SSR with Express'
      - 'Set up streaming SSR'
      - 'Configure document head management'
      - 'Handle hydration mismatches'
    failure_modes:
      - mistake: 'Using browser APIs in loaders without environment check'
        mechanism: >-
          Loaders run on both client and server when using SSR.
          Browser-only APIs (window, document, localStorage) will
          throw on the server.
        source: 'docs/router/guide/ssr.md'
        priority: HIGH
        status: active
        skills: ['ssr', 'data-loading']

      - mistake: 'Using hash fragments for server-rendered content'
        mechanism: >-
          Hash fragments are client-only — browsers never send them
          to the server. Using hash for conditional rendering causes
          hydration mismatches during SSR.
        source: 'docs/router/guide/navigation.md'
        priority: MEDIUM
        status: active

      - mistake: 'Generating Next.js or Remix SSR patterns'
        mechanism: >-
          Agents trained on Next.js generate getServerSideProps,
          App Router patterns, or server components. Agents trained
          on Remix generate server-only loader exports. TanStack
          Router has its own SSR API (RouterClient/RouterServer).
        source: 'maintainer interview'
        priority: CRITICAL
        status: active
        skills: ['ssr', 'route-setup', 'data-loading']

  # ── Migration ────────────────────────────────────────────────────
  - name: 'Migrate from React Router'
    slug: 'migrate-from-react-router'
    domain: 'defining-routes'
    description: >-
      Step-by-step migration from React Router v7 to TanStack Router,
      covering route definitions, navigation, search params, and
      data loading.
    type: lifecycle
    packages:
      - '@tanstack/react-router'
      - '@tanstack/router-plugin'
    covers:
      - Migration checklist
      - Route definition conversion
      - Link / useNavigate API differences
      - useSearchParams to validateSearch + useSearch
      - useParams with from
      - Outlet replacement
      - Loader conversion
      - Code splitting differences
    tasks:
      - 'Migrate routes from React Router to TanStack Router'
      - 'Convert React Router Links and navigation'
      - 'Replace useSearchParams with validated search params'
      - 'Convert React Router loaders'
    failure_modes:
      - mistake: 'Leaving React Router imports alongside TanStack Router'
        mechanism: >-
          React Router and TanStack Router share similar API names
          (Link, useNavigate, Outlet). Leftover React Router imports
          cause context errors ("cannot use useNavigate outside of
          context"). Uninstall react-router-dom to surface these.
        source: 'docs/router/how-to/migrate-from-react-router.md'
        priority: HIGH
        status: active

      - mistake: 'Using React Router useSearchParams pattern'
        mechanism: >-
          React Router uses useSearchParams() returning URLSearchParams.
          TanStack Router uses validateSearch schema + useSearch()
          returning typed objects. Agents may generate the RR pattern.
        wrong_pattern: |
          const [searchParams, setSearchParams] = useSearchParams()
          const page = Number(searchParams.get('page'))
        correct_pattern: |
          // In route definition:
          validateSearch: z.object({ page: fallback(z.number(), 1) })
          // In component:
          const { page } = Route.useSearch()
        source: 'docs/router/installation/migrate-from-react-router.md'
        priority: HIGH
        status: active

tensions:
  - name: 'Type safety strictness vs rapid prototyping'
    skills: ['type-safety', 'route-setup']
    description: >-
      Full type inference requires proper setup (Register, correct
      property order, getParentRoute). This upfront cost conflicts
      with quick prototyping where developers want to skip setup.
    implication: >-
      Agents skip Register declaration or use type casts to silence
      errors, producing code that compiles but has no type safety.

  - name: 'Client-first loaders vs SSR expectations'
    skills: ['data-loading', 'ssr']
    description: >-
      Loaders are client-first by design but agents assume they are
      server-only (Remix/Next mental model). This tension means
      browser APIs work in loaders by default but break under SSR.
    implication: >-
      Agents either put server-only code in client loaders or avoid
      browser APIs unnecessarily, depending on which framework mental
      model they default to.

  - name: 'Built-in SWR cache vs external cache coordination'
    skills: ['data-loading', 'external-data-loading']
    description: >-
      Router has built-in caching with staleTime/gcTime defaults.
      When using an external cache like React Query, the built-in
      cache must be bypassed (defaultPreloadStaleTime: 0) or it
      conflicts with the external library's freshness management.
    implication: >-
      Agents use both caches simultaneously without disabling the
      built-in one, causing stale data or double-fetching.

  - name: 'Code splitting granularity vs loader performance'
    skills: ['code-splitting', 'data-loading']
    description: >-
      Splitting more aggressively reduces initial bundle but splitting
      the loader adds a network round-trip before data can be fetched.
      The optimal split point differs per route.
    implication: >-
      Agents split everything including loaders, adding latency to
      data loading without understanding the tradeoff.

cross_references:
  - from: 'route-setup'
    to: 'type-safety'
    reason: 'Register declaration and property order are prerequisites for type inference'
  - from: 'navigation'
    to: 'search-params'
    reason: 'Link search prop and navigate search option directly interact with search param validation'
  - from: 'data-loading'
    to: 'search-params'
    reason: 'loaderDeps consumes validated search params as cache keys'
  - from: 'data-loading'
    to: 'external-data-loading'
    reason: 'Understanding built-in caching is prerequisite for coordinating with external caches'
  - from: 'auth-and-guards'
    to: 'data-loading'
    reason: 'beforeLoad runs before loader — auth context flows into loader via route context'
  - from: 'code-splitting'
    to: 'data-loading'
    reason: 'Loader splitting decisions affect data loading performance'
  - from: 'ssr'
    to: 'data-loading'
    reason: 'SSR changes where loaders execute — must handle both environments'
  - from: 'ssr'
    to: 'external-data-loading'
    reason: 'SSR dehydration/hydration requires special setup for Query integration'
  - from: 'not-found-and-errors'
    to: 'data-loading'
    reason: 'notFound() thrown in loaders interacts with error boundaries and loader data availability'
  - from: 'migrate-from-react-router'
    to: 'route-setup'
    reason: 'Migration requires understanding TanStack Router route setup to replace RR patterns'

gaps: []


================================================
FILE: _artifacts/skill_spec.md
================================================
# TanStack Router — Skill Spec

TanStack Router is a type-safe router for React and Solid applications with built-in SWR caching, JSON-first search params, file-based route generation, and end-to-end type inference. It is client-first/isomorphic — loaders run on the client by default and additionally on the server when used with TanStack Start.

## Domains

| Domain                | Description                                                         | Skills                                              |
| --------------------- | ------------------------------------------------------------------- | --------------------------------------------------- |
| Defining Routes       | Setting up route trees, configuring the router, registering types   | route-setup, migrate-from-react-router              |
| Navigating            | Links, imperative navigation, preloading, blocking                  | navigation                                          |
| Managing URL State    | Search params and path params with validation and serialization     | search-params, path-params                          |
| Loading Data          | Route loaders, SWR caching, external cache coordination, context/DI | data-loading, external-data-loading                 |
| Protecting Routes     | Auth guards, RBAC, beforeLoad redirects                             | auth-and-guards                                     |
| Rendering and Layout  | Code splitting, error/not-found handling, route masking             | code-splitting, not-found-and-errors, route-masking |
| Type Safety           | Inference patterns, narrowing, TS performance                       | type-safety                                         |
| Server-Side Rendering | SSR setup, hydration, head management                               | ssr                                                 |

## Skill Inventory

| Skill                     | Type        | Domain                | What it covers                                                                       | Failure modes |
| ------------------------- | ----------- | --------------------- | ------------------------------------------------------------------------------------ | ------------- |
| route-setup               | core        | defining-routes       | createRouter, file/code/virtual routing, Register, plugin config, ESLint             | 5             |
| navigation                | core        | navigating            | Link, useNavigate, Navigate, preloading, blocking, active states, scroll restoration | 4             |
| search-params             | core        | managing-url-state    | validateSearch, useSearch, middlewares, serialization, adapters                      | 4             |
| path-params               | core        | managing-url-state    | $params, splats, optional params, prefix/suffix patterns                             | 3             |
| data-loading              | core        | loading-data          | loader, loaderDeps, staleTime/gcTime, pending/error, context/DI, deferred            | 5             |
| external-data-loading     | composition | loading-data          | TanStack Query integration, SSR dehydration/hydration, streaming                     | 3             |
| auth-and-guards           | core        | protecting-routes     | beforeLoad redirects, layout auth, RBAC, provider integration                        | 3             |
| code-splitting            | core        | rendering-and-layout  | autoCodeSplitting, .lazy.tsx, getRouteApi, split groupings                           | 4             |
| not-found-and-errors      | core        | rendering-and-layout  | notFound(), notFoundComponent, errorComponent, CatchBoundary                         | 3             |
| route-masking             | core        | rendering-and-layout  | mask option, createRouteMask, unmaskOnReload                                         | 1             |
| type-safety               | core        | type-safety           | Register, from narrowing, TS perf, type utilities                                    | 3             |
| ssr                       | core        | server-side-rendering | RouterClient/Server, streaming, hydration, head management                           | 3             |
| migrate-from-react-router | lifecycle   | defining-routes       | Migration checklist, API mapping, search params conversion                           | 2             |

## Failure Mode Inventory

### route-setup (5 failure modes)

| #   | Mistake                                                | Priority | Source                                  | Cross-skill? |
| --- | ------------------------------------------------------ | -------- | --------------------------------------- | ------------ |
| 1   | Missing router type registration                       | CRITICAL | docs/guide/creating-a-router            | type-safety  |
| 2   | Not committing routeTree.gen.ts                        | HIGH     | docs/faq                                | —            |
| 3   | Wrong route property order breaks type inference       | HIGH     | docs/eslint/create-route-property-order | —            |
| 4   | Placing TanStackRouter plugin after framework plugin   | HIGH     | docs/installation/with-vite             | —            |
| 5   | Using getParentRoute incorrectly in code-based routing | HIGH     | docs/decisions-on-dx                    | —            |

### navigation (4 failure modes)

| #   | Mistake                                                  | Priority | Source                                  | Cross-skill?  |
| --- | -------------------------------------------------------- | -------- | --------------------------------------- | ------------- |
| 1   | Interpolating params into the to string                  | CRITICAL | docs/guide/navigation                   | type-safety   |
| 2   | Using useNavigate instead of Link for clickable elements | MEDIUM   | docs/guide/navigation                   | —             |
| 3   | Not providing from for relative navigation               | HIGH     | docs/guide/navigation                   | —             |
| 4   | Using search as object instead of function loses params  | HIGH     | docs/how-to/navigate-with-search-params | search-params |

### search-params (4 failure modes)

| #   | Mistake                                                | Priority | Source                           | Cross-skill? |
| --- | ------------------------------------------------------ | -------- | -------------------------------- | ------------ |
| 1   | Using zod .catch() instead of adapter fallback()       | HIGH     | docs/guide/search-params         | —            |
| 2   | Returning entire search object from loaderDeps         | HIGH     | docs/guide/data-loading          | data-loading |
| 3   | Passing Date objects in search params                  | HIGH     | docs/how-to/arrays-objects-dates | —            |
| 4   | Parent route missing validateSearch blocks inheritance | MEDIUM   | docs/how-to/share-search-params  | —            |

### path-params (3 failure modes)

| #   | Mistake                                       | Priority | Source                        | Cross-skill? |
| --- | --------------------------------------------- | -------- | ----------------------------- | ------------ |
| 1   | Interpolating path params into to string      | CRITICAL | docs/guide/navigation         | navigation   |
| 2   | Using \* for splat routes instead of $        | MEDIUM   | docs/routing/routing-concepts | —            |
| 3   | Using curly braces for basic dynamic segments | MEDIUM   | docs/guide/path-params        | —            |

### data-loading (5 failure modes)

| #   | Mistake                                                          | Priority | Source                    | Cross-skill? |
| --- | ---------------------------------------------------------------- | -------- | ------------------------- | ------------ |
| 1   | Assuming loaders only run on the server                          | CRITICAL | maintainer interview      | ssr          |
| 2   | Not understanding staleTime default is 0                         | MEDIUM   | docs/guide/data-loading   | —            |
| 3   | Using reset() instead of router.invalidate() in error components | HIGH     | docs/guide/data-loading   | —            |
| 4   | Double parentheses missing on createRootRouteWithContext         | HIGH     | docs/guide/data-loading   | —            |
| 5   | Using React hooks in beforeLoad or loader                        | HIGH     | docs/guide/router-context | —            |

### external-data-loading (3 failure modes)

| #   | Mistake                                           | Priority | Source                           | Cross-skill? |
| --- | ------------------------------------------------- | -------- | -------------------------------- | ------------ |
| 1   | Not setting defaultPreloadStaleTime to 0          | HIGH     | docs/guide/external-data-loading | —            |
| 2   | Creating QueryClient outside createRouter for SSR | HIGH     | docs/guide/external-data-loading | —            |
| 3   | Awaiting prefetchQuery in loader blocks rendering | MEDIUM   | docs/integrations/query          | —            |

### auth-and-guards (3 failure modes)

| #   | Mistake                                             | Priority | Source                           | Cross-skill? |
| --- | --------------------------------------------------- | -------- | -------------------------------- | ------------ |
| 1   | Auth check in component instead of beforeLoad       | HIGH     | docs/how-to/setup-authentication | —            |
| 2   | Not re-throwing redirects in try/catch              | HIGH     | docs/guide/authenticated-routes  | —            |
| 3   | Trying to conditionally render root route component | MEDIUM   | docs/faq                         | —            |

### code-splitting (4 failure modes)

| #   | Mistake                                                    | Priority | Source                              | Cross-skill? |
| --- | ---------------------------------------------------------- | -------- | ----------------------------------- | ------------ |
| 1   | Exporting route property functions prevents code splitting | HIGH     | docs/guide/automatic-code-splitting | —            |
| 2   | Trying to code-split the root route                        | MEDIUM   | docs/guide/code-splitting           | —            |
| 3   | Splitting the loader adds double async cost                | MEDIUM   | docs/guide/code-splitting           | —            |
| 4   | Importing Route in code-split files for typed hooks        | HIGH     | docs/guide/code-splitting           | —            |

### not-found-and-errors (3 failure modes)

| #   | Mistake                                              | Priority | Source                      | Cross-skill? |
| --- | ---------------------------------------------------- | -------- | --------------------------- | ------------ |
| 1   | Using deprecated NotFoundRoute                       | HIGH     | docs/guide/not-found-errors | —            |
| 2   | Expecting useLoaderData to work in notFoundComponent | MEDIUM   | docs/guide/not-found-errors | —            |
| 3   | Leaf route cannot handle not-found errors            | MEDIUM   | docs/guide/not-found-errors | —            |

### route-masking (1 failure mode)

| #   | Mistake                                  | Priority | Source                   | Cross-skill? |
| --- | ---------------------------------------- | -------- | ------------------------ | ------------ |
| 1   | Expecting masked URLs to survive sharing | MEDIUM   | docs/guide/route-masking | —            |

### type-safety (3 failure modes)

| #   | Mistake                                             | Priority | Source                 | Cross-skill? |
| --- | --------------------------------------------------- | -------- | ---------------------- | ------------ |
| 1   | Adding type annotations or casts to inferred values | CRITICAL | maintainer interview   | —            |
| 2   | Using un-narrowed LinkProps type                    | HIGH     | docs/guide/type-safety | —            |
| 3   | Not narrowing Link/useNavigate with from            | HIGH     | docs/guide/type-safety | —            |

### ssr (3 failure modes)

| #   | Mistake                                                 | Priority | Source                | Cross-skill?              |
| --- | ------------------------------------------------------- | -------- | --------------------- | ------------------------- |
| 1   | Using browser APIs in loaders without environment check | HIGH     | docs/guide/ssr        | data-loading              |
| 2   | Using hash fragments for server-rendered content        | MEDIUM   | docs/guide/navigation | —                         |
| 3   | Generating Next.js or Remix SSR patterns                | CRITICAL | maintainer interview  | route-setup, data-loading |

### migrate-from-react-router (2 failure modes)

| #   | Mistake                                                | Priority | Source                                      | Cross-skill? |
| --- | ------------------------------------------------------ | -------- | ------------------------------------------- | ------------ |
| 1   | Leaving React Router imports alongside TanStack Router | HIGH     | docs/how-to/migrate-from-react-router       | —            |
| 2   | Using React Router useSearchParams pattern             | HIGH     | docs/installation/migrate-from-react-router | —            |

## Tensions

| Tension                                           | Skills                               | Agent implication                                                                 |
| ------------------------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------- |
| Type safety strictness vs rapid prototyping       | type-safety ↔ route-setup            | Agents skip Register declaration or use type casts to silence errors              |
| Client-first loaders vs SSR expectations          | data-loading ↔ ssr                   | Agents put server-only code in client loaders or avoid browser APIs unnecessarily |
| Built-in SWR cache vs external cache coordination | data-loading ↔ external-data-loading | Agents use both caches simultaneously causing stale data or double-fetching       |
| Code splitting granularity vs loader performance  | code-splitting ↔ data-loading        | Agents split everything including loaders, adding latency                         |

## Cross-References

| From                      | To                    | Reason                                                                             |
| ------------------------- | --------------------- | ---------------------------------------------------------------------------------- |
| route-setup               | type-safety           | Register declaration and property order are prerequisites for type inference       |
| navigation                | search-params         | Link search prop directly interacts with search param validation                   |
| data-loading              | search-params         | loaderDeps consumes validated search params as cache keys                          |
| data-loading              | external-data-loading | Understanding built-in caching is prerequisite for external cache coordination     |
| auth-and-guards           | data-loading          | beforeLoad runs before loader — auth context flows into loader via route context   |
| code-splitting            | data-loading          | Loader splitting decisions affect data loading performance                         |
| ssr                       | data-loading          | SSR changes where loaders execute — must handle both environments                  |
| ssr                       | external-data-loading | SSR dehydration/hydration requires special Query setup                             |
| not-found-and-errors      | data-loading          | notFound() in loaders interacts with error boundaries and loader data availability |
| migrate-from-react-router | route-setup           | Migration requires understanding TanStack Router route setup                       |

## Subsystems & Reference Candidates

| Skill         | Subsystems                                    | Reference candidates                                     |
| ------------- | --------------------------------------------- | -------------------------------------------------------- |
| route-setup   | —                                             | file naming conventions (>10 distinct conventions)       |
| search-params | Zod adapter, Valibot adapter, ArkType adapter | search param validation patterns (>10 distinct patterns) |
| All others    | —                                             | —                                                        |

## Recommended Skill File Structure

- **Core skills:** route-setup, navigation, search-params, path-params, data-loading, code-splitting, not-found-and-errors, route-masking, type-safety, ssr, auth-and-guards
- **Framework skills:** None needed separately — React and Solid share the same core API surface. Framework-specific notes belong inline.
- **Lifecycle skills:** migrate-from-react-router
- **Composition skills:** external-data-loading (TanStack Query)
- **Reference files:** search-params (validation patterns), route-setup (file naming conventions)

## Composition Opportunities

| Library               | Integration points                                        | Composition skill needed?                  |
| --------------------- | --------------------------------------------------------- | ------------------------------------------ |
| @tanstack/react-query | Loader coordination, SSR dehydration/hydration, streaming | Yes — external-data-loading                |
| Zod                   | Search param validation                                   | No — covered as subsystem in search-params |
| Valibot               | Search param validation                                   | No — covered as subsystem in search-params |
| ArkType               | Search param validation                                   | No — covered as subsystem in search-params |


================================================
FILE: _artifacts/skill_tree.yaml
================================================
# skills/_artifacts/skill_tree.yaml
library:
  name: '@tanstack/router'
  version: '1.166.2'
  repository: 'https://github.com/TanStack/router'
  description: >-
    Type-safe router for React and Solid with built-in SWR caching,
    JSON-first search params, and end-to-end type inference.
generated_from:
  domain_map: '_artifacts/domain_map.yaml'
  skill_spec: '_artifacts/skill_spec.md'
generated_at: '2026-03-07'

skills:
  # ── Router Core Skills ───────────────────────────────────────────
  - name: 'Router Core'
    slug: 'router-core'
    type: 'core'
    domain: 'defining-routes'
    path: 'skills/router-core/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Framework-agnostic core concepts for TanStack Router: route trees,
      createRouter, createRoute, createRootRoute, createRootRouteWithContext,
      addChildren, Register type declaration, route matching, route sorting,
      file naming conventions. Entry point for all router skills.
    sources:
      - 'TanStack/router:docs/router/overview.md'
      - 'TanStack/router:docs/router/routing/routing-concepts.md'
      - 'TanStack/router:docs/router/routing/route-trees.md'
      - 'TanStack/router:docs/router/routing/route-matching.md'
      - 'TanStack/router:docs/router/guide/creating-a-router.md'
      - 'TanStack/router:docs/router/decisions-on-dx.md'
      - 'TanStack/router:packages/router-core/src'

  - name: 'Search Params'
    slug: 'router-core/search-params'
    type: 'sub-skill'
    domain: 'managing-url-state'
    path: 'skills/router-core/search-params/SKILL.md'
    package: 'packages/router-core'
    description: >-
      validateSearch, search param validation with Zod/Valibot/ArkType adapters,
      fallback(), search middlewares (retainSearchParams, stripSearchParams),
      custom serialization (parseSearch, stringifySearch), search param
      inheritance, loaderDeps for cache keys, reading and writing search params.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/search-params.md'
      - 'TanStack/router:docs/router/how-to/setup-basic-search-params.md'
      - 'TanStack/router:docs/router/how-to/validate-search-params.md'
      - 'TanStack/router:docs/router/how-to/navigate-with-search-params.md'
      - 'TanStack/router:docs/router/how-to/share-search-params-across-routes.md'
      - 'TanStack/router:docs/router/how-to/arrays-objects-dates-search-params.md'
      - 'TanStack/router:docs/router/guide/custom-search-param-serialization.md'
    subsystems:
      - 'Zod adapter'
      - 'Valibot adapter'
      - 'ArkType adapter'
    references:
      - 'references/validation-patterns.md'

  - name: 'Path Params'
    slug: 'router-core/path-params'
    type: 'sub-skill'
    domain: 'managing-url-state'
    path: 'skills/router-core/path-params/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Dynamic path segments ($paramName), splat routes ($ / _splat),
      optional params ({-$paramName}), prefix/suffix patterns ({$param}.ext),
      useParams, params.parse/stringify, pathParamsAllowedCharacters,
      i18n locale patterns.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/path-params.md'
      - 'TanStack/router:docs/router/guide/internationalization-i18n.md'
      - 'TanStack/router:docs/router/routing/routing-concepts.md'

  - name: 'Navigation'
    slug: 'router-core/navigation'
    type: 'sub-skill'
    domain: 'navigating'
    path: 'skills/router-core/navigation/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Link component, useNavigate, Navigate component, router.navigate,
      ToOptions/NavigateOptions/LinkOptions, from/to relative navigation,
      activeOptions/activeProps, preloading (intent/viewport/render),
      preloadDelay, navigation blocking (useBlocker, Block), createLink,
      linkOptions helper, scroll restoration, MatchRoute.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/navigation.md'
      - 'TanStack/router:docs/router/guide/preloading.md'
      - 'TanStack/router:docs/router/guide/navigation-blocking.md'
      - 'TanStack/router:docs/router/guide/link-options.md'
      - 'TanStack/router:docs/router/guide/custom-link.md'
      - 'TanStack/router:docs/router/guide/scroll-restoration.md'

  - name: 'Data Loading'
    slug: 'router-core/data-loading'
    type: 'sub-skill'
    domain: 'loading-data'
    path: 'skills/router-core/data-loading/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Route loader option, loaderDeps for cache keys, staleTime/gcTime/
      defaultPreloadStaleTime SWR caching, pendingComponent/pendingMs/
      pendingMinMs, errorComponent/onError/onCatch, beforeLoad, router
      context and createRootRouteWithContext DI pattern, router.invalidate,
      Await component, deferred data loading with unawaited promises.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/data-loading.md'
      - 'TanStack/router:docs/router/guide/deferred-data-loading.md'
      - 'TanStack/router:docs/router/guide/router-context.md'
      - 'TanStack/router:docs/router/guide/data-mutations.md'

  - name: 'Auth and Guards'
    slug: 'router-core/auth-and-guards'
    type: 'sub-skill'
    domain: 'protecting-routes'
    path: 'skills/router-core/auth-and-guards/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Route protection with beforeLoad, redirect()/throw 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.
    requires:
      - 'router-core'
      - 'router-core/data-loading'
    sources:
      - 'TanStack/router:docs/router/guide/authenticated-routes.md'
      - 'TanStack/router:docs/router/how-to/setup-authentication.md'
      - 'TanStack/router:docs/router/how-to/setup-auth-providers.md'
      - 'TanStack/router:docs/router/how-to/setup-rbac.md'

  - name: 'Code Splitting'
    slug: 'router-core/code-splitting'
    type: 'sub-skill'
    domain: 'rendering-and-layout'
    path: 'skills/router-core/code-splitting/SKILL.md'
    package: 'packages/router-core'
    description: >-
      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.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/code-splitting.md'
      - 'TanStack/router:docs/router/guide/automatic-code-splitting.md'

  - name: 'Not Found and Errors'
    slug: 'router-core/not-found-and-errors'
    type: 'sub-skill'
    domain: 'rendering-and-layout'
    path: 'skills/router-core/not-found-and-errors/SKILL.md'
    package: 'packages/router-core'
    description: >-
      notFound() function, notFoundComponent, defaultNotFoundComponent,
      notFoundMode (fuzzy/root), errorComponent, onError/onCatch,
      CatchBoundary, NotFoundRoute (deprecated), route masking (mask
      option, createRouteMask, unmaskOnReload).
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/not-found-errors.md'
      - 'TanStack/router:docs/router/guide/route-masking.md'

  - name: 'Type Safety'
    slug: 'router-core/type-safety'
    type: 'sub-skill'
    domain: 'type-safety'
    path: 'skills/router-core/type-safety/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Full type inference philosophy (never cast, never annotate inferred
      values), Register module declaration, from narrowing on hooks and
      Link, strict:false for shared components, getRouteApi for code-split
      typed access, addChildren with object syntax for TS perf, LinkProps
      and ValidateLinkOptions type utilities, as const satisfies pattern.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:docs/router/guide/type-safety.md'
      - 'TanStack/router:docs/router/guide/type-utilities.md'
      - 'TanStack/router:docs/router/guide/render-optimizations.md'

  - name: 'SSR'
    slug: 'router-core/ssr'
    type: 'sub-skill'
    domain: 'server-side-rendering'
    path: 'skills/router-core/ssr/SKILL.md'
    package: 'packages/router-core'
    description: >-
      Non-streaming and streaming SSR, RouterClient/RouterServer,
      renderRouterToString/renderRouterToStream, createRequestHandler,
      defaultRenderHandler/defaultStreamHandler, HeadContent/Scripts
      components, head route option (meta/links/styles/scripts),
      ScriptOnce, automatic loader dehydration/hydration, memory
      history on server, data serialization, document head management.
    requires:
      - 'router-core'
      - 'router-core/data-loading'
    sources:
      - 'TanStack/router:docs/router/guide/ssr.md'
      - 'TanStack/router:docs/router/guide/document-head-management.md'
      - 'TanStack/router:docs/router/how-to/setup-ssr.md'

  # ── React Router Skills ──────────────────────────────────────────
  - name: 'React Router'
    slug: 'react-router'
    type: 'framework'
    domain: 'defining-routes'
    path: 'skills/react-router/SKILL.md'
    package: 'packages/react-router'
    description: >-
      React bindings for TanStack Router: RouterProvider, useRouter,
      useRouterState, useMatch, useMatches, useLocation, useSearch,
      useParams, useNavigate, useLoaderData, useLoaderDeps,
      useRouteContext, useBlocker, useCanGoBack, Link, Navigate,
      Outlet, CatchBoundary, ErrorComponent. React-specific patterns
      for hooks, providers, SSR hydration, and createLink with
      forwardRef.
    requires:
      - 'router-core'
    sources:
      - 'TanStack/router:packages/react-router/src'
      - 'TanStack/router:docs/router/guide/creating-a-router.md'
      - 'TanStack/router:docs/router/installation/manual.md'

  # ── Composition Skills ───────────────────────────────────────────
  - name: 'External Data Loading (TanStack Query)'
    slug: 'compositions/router-query'
    type: 'composition'
    domain: 'loading-data'
    path: 'skills/compositions/router-query/SKILL.md'
    package: 'packages/react-router'
    description: >-
      Integrating TanStack Router with TanStack Query: queryClient
      in router context, ensureQueryData/prefetchQuery in loaders,
      useSuspenseQuery in components, defaultPreloadStaleTime: 0,
      setupRouterSsrQueryIntegration for SSR dehydration/hydration
      and streaming, per-request QueryClient isolation.
    requires:
      - 'router-core'
      - 'router-core/data-loading'
      - 'react-router'
    sources:
      - 'TanStack/router:docs/router/guide/external-data-loading.md'
      - 'TanStack/router:docs/router/integrations/query.md'

  # ── Lifecycle Skills ─────────────────────────────────────────────
  - name: 'Migrate from React Router'
    slug: 'lifecycle/migrate-from-react-router'
    type: 'lifecycle'
    domain: 'defining-routes'
    path: 'skills/lifecycle/migrate-from-react-router/SKILL.md'
    package: 'packages/react-router'
    description: >-
      Step-by-step migration from React Router v7 to TanStack Router:
      route definition conversion, Link/useNavigate API differences,
      useSearchParams to validateSearch + useSearch, useParams with from,
      Outlet replacement, loader conversion, code splitting differences.
    requires:
      - 'router-core'
      - 'react-router'
    sources:
      - 'TanStack/router:docs/router/how-to/migrate-from-react-router.md'
      - 'TanStack/router:docs/router/installation/migrate-from-react-router.md'


================================================
FILE: _artifacts/start_domain_map.yaml
================================================
# domain_map.yaml
# Generated by skill-domain-discovery
# Library: TanStack Start
# Version: 1.166.2
# Date: 2026-03-07
# Status: reviewed

library:
  name: '@tanstack/react-start'
  version: '1.166.2'
  repository: 'https://github.com/TanStack/router'
  description: >-
    Full-stack React framework built on TanStack Router and Vite. Adds
    SSR, streaming, server functions (type-safe RPCs), middleware,
    server routes, and universal deployment. Isomorphic by default —
    all code runs in both environments unless explicitly constrained.
  primary_framework: 'React'

domains:
  - name: 'Project Setup'
    slug: 'project-setup'
    description: >-
      Scaffolding a Start project, configuring Vite plugin, router
      setup with getRouter(), root route with document shell, client
      and server entry points.

  - name: 'Server Functions'
    slug: 'server-functions'
    description: >-
      Creating type-safe RPCs with createServerFn, input validation,
      calling from loaders/components/other server functions, error
      handling, streaming responses.

  - name: 'Middleware and Context'
    slug: 'middleware-and-context'
    description: >-
      Request middleware, server function middleware, context passing
      with sendContext, global middleware via createStart, middleware
      factories, fetch override precedence.

  - name: 'Execution Model'
    slug: 'execution-model'
    description: >-
      Isomorphic code execution, environment functions
      (createServerFn, createServerOnlyFn, createClientOnlyFn,
      createIsomorphicFn), import protection, dead code elimination,
      environment variable safety.

  - name: 'Server Routes'
    slug: 'server-routes'
    description: >-
      Server-side API endpoints defined in routes, HTTP method
      handlers, handler middleware, request/response patterns.

  - name: 'Deployment and Rendering'
    slug: 'deployment-and-rendering'
    description: >-
      Hosting providers (Cloudflare, Netlify, Vercel, Node/Docker),
      selective SSR, SPA mode, static prerendering, ISR with
      Cache-Control headers, SEO and head management.

skills:
  # ── Project Setup ────────────────────────────────────────────────
  - name: 'Start Setup'
    slug: 'start-setup'
    domain: 'project-setup'
    description: >-
      Scaffold a TanStack Start project, configure Vite plugin with
      tanstackStart(), set up router with getRouter(), create root
      route with document shell (HeadContent, Scripts, Outlet),
      configure client and server entry points.
    type: core
    packages:
      - '@tanstack/react-start'
      - '@tanstack/start-plugin-core'
    covers:
      - tanstackStart Vite plugin
      - getRouter() factory pattern
      - Root route document shell
      - HeadContent / Scripts / Outlet
      - Client entry point (optional)
      - Server entry point (optional)
      - routeTree.gen.ts
      - tsconfig configuration
    tasks:
      - 'Scaffold a new TanStack Start project'
      - 'Configure the Vite plugin'
      - 'Set up the router factory'
      - 'Customize client/server entry points'
    failure_modes:
      - mistake: 'React plugin before Start plugin in Vite config'
        mechanism: >-
          Start's Vite plugin must come before React's plugin.
          Wrong order causes route generation and server function
          compilation to fail.
        wrong_pattern: |
          plugins: [react(), tanstackStart()]
        correct_pattern: |
          plugins: [tanstackStart(), react()]
        source: 'docs/start/framework/react/build-from-scratch.md'
        priority: CRITICAL
        status: active

      - mistake: 'Enabling verbatimModuleSyntax in tsconfig'
        mechanism: >-
          verbatimModuleSyntax causes server bundles to leak into
          client bundles. Must be disabled.
        source: 'docs/start/framework/react/build-from-scratch.md'
        priority: HIGH
        status: active

      - mistake: 'Missing Scripts component in root route'
        mechanism: >-
          The Scripts component must be rendered in the body of
          the root route for proper hydration and functionality.
          Without it, client-side JavaScript does not load.
        source: 'docs/start/framework/react/guide/routing.md'
        priority: HIGH
        status: active

  # ── Server Functions ─────────────────────────────────────────────
  - name: 'Server Functions'
    slug: 'server-functions'
    domain: 'server-functions'
    description: >-
      Create type-safe RPCs with createServerFn, validate inputs
      with Zod or plain functions, call from loaders/components/
      event handlers, handle errors/redirects/notFound, stream
      responses with ReadableStream or async generators.
    type: core
    packages:
      - '@tanstack/react-start'
      - '@tanstack/start-client-core'
      - '@tanstack/start-server-core'
    covers:
      - createServerFn (GET/POST)
      - inputValidator (Zod or function)
      - useServerFn hook
      - Server context utilities (getRequest, getRequestHeader, setResponseHeader, setResponseStatus)
      - Error handling (throw errors, redirect, notFound)
      - Streaming (ReadableStream, async generators)
      - File organization (.functions.ts, .server.ts)
      - FormData handling
    tasks:
      - 'Create a server function for data fetching'
      - 'Validate server function inputs'
      - 'Call server functions from components'
      - 'Stream data from server functions'
      - 'Handle errors in server functions'
    failure_modes:
      - mistake: 'Putting server-only code in loaders instead of server functions'
        mechanism: >-
          Loaders are ISOMORPHIC — they run on both client and server.
          Database queries, file system access, and secret API keys
          in loaders will either fail on the client or leak to the
          client bundle. Use createServerFn for server-only logic.
        wrong_pattern: |
          export const Route = createFileRoute('/posts')({
            loader: async () => {
              const posts = await db.query('SELECT * FROM posts')
              return { posts }
            },
          })
        correct_pattern: |
          const getPosts = createServerFn({ method: 'GET' })
            .handler(async () => {
              const posts = await db.query('SELECT * FROM posts')
              return { posts }
            })

          export const Route = createFileRoute('/posts')({
            loader: () => getPosts(),
          })
        source: 'maintainer interview'
        priority: CRITICAL
        status: active
        skills: ['server-functions', 'execution-model']

      - mistake: 'Using dynamic imports for server functions'
        mechanism: >-
          Dynamic imports of server functions can cause bundler
          issues. Static imports are safe — the build process
          replaces server implementations with RPC stubs.
        wrong_pattern: |
          const { getUser } = await import('~/utils/users.functions')
        correct_pattern: |
          import { getUser } from '~/utils/users.functions'
        source: 'docs/start/framework/react/guide/server-functions.md'
        priority: HIGH
        status: active

      - mistake: 'Generating Next.js or Remix server patterns'
        mechanism: >-
          Agents generate getServerSideProps, "use server" directives,
          or Remix-style loader exports. TanStack Start uses
          createServerFn for server-only code.
        wrong_pattern: |
          'use server'
          export async function getUser() { ... }
        correct_pattern: |
          const getUser = createServerFn({ method: 'GET' })
            .handler(async () => { ... })
        source: 'maintainer interview'
        priority: CRITICAL
        status: active

  # ── Middleware and Context ───────────────────────────────────────
  - name: 'Middleware'
    slug: 'middleware'
    domain: 'middleware-and-context'
    description: >-
      Request middleware and server function middleware with
      createMiddleware, context passing via next(), sendContext
      for client-server transfer, global middleware via createStart
      in src/start.ts, middleware factories, fetch override
      precedence, header merging.
    type: core
    packages:
      - '@tanstack/react-start'
      - '@tanstack/start-client-core'
      - '@tanstack/start-server-core'
    covers:
      - createMiddleware
      - Request middleware (.server only)
      - Server function middleware (.client + .server)
      - Context passing via next({ context })
      - sendContext for client-server transfer
      - Global middleware (createStart in src/start.ts)
      - Middleware factories
      - Fetch override precedence
      - Header merging
      - Method order enforcement (middleware → inputValidator → client → server)
    tasks:
      - 'Add authentication middleware'
      - 'Pass context through middleware chain'
      - 'Configure global request middleware'
      - 'Create reusable middleware factories'
    failure_modes:
      - mistake: 'Trusting client context without server validation'
        mechanism: >-
          Client context via sendContext is NOT validated by default.
          Dynamic user-generated data must be validated in server-side
          middleware before use.
        source: 'docs/start/framework/react/guide/middleware.md'
        priority: HIGH
        status: active

      - mistake: 'Wrong middleware method order'
        mechanism: >-
          TypeScript enforces method order: middleware → inputValidator
          → client → server. Wrong order causes type errors and
          runtime failures.
        source: 'docs/start/framework/react/guide/middleware.md'
        priority: MEDIUM
        status: active

      - mistake: 'Confusing request vs server function middleware'
        mechanism: >-
          Request middleware runs on ALL server requests (SSR, server
          routes, server functions). Server function middleware runs
          only for server functions and has .client() method. Using
          the wrong type causes unexpected scope.
        source: 'docs/start/framework/react/guide/middleware.md'
        priority: MEDIUM
        status: active

  # ── Execution Model ──────────────────────────────────────────────
  - name: 'Execution Model'
    slug: 'execution-model'
    domain: 'execution-model'
    description: >-
      Isomorphic code execution model, environment boundary functions
      (createServerFn, createServerOnlyFn, createClientOnlyFn,
      createIsomorphicFn), import protection, dead code elimination,
      environment variable safety (VITE_ prefix), useHydrated hook.
    type: core
    packages:
      - '@tanstack/react-start'
      - '@tanstack/start-client-core'
      - '@tanstack/start-server-core'
    covers:
      - Isomorphic-by-default principle
      - createServerFn (RPC boundary)
      - createServerOnlyFn (throws on client)
      - createClientOnlyFn (throws on server)
      - createIsomorphicFn (different impl per env)
      - ClientOnly component
      - useHydrated hook
      - Import protection (experimental)
      - Environment variables (VITE_ prefix, process.env)
      - Dead code elimination / tree shaking
    tasks:
      - 'Protect server-only code from client bundles'
      - 'Use environment-specific implementations'
      - 'Handle environment variables safely'
      - 'Debug import protection violations'
    failure_modes:
      - mistake: 'Assuming loaders are server-only'
        mechanism: >-
          ALL code in TanStack Start is isomorphic by default.
          Loaders run on BOTH server and client. Server-only
          operations must use createServerFn, createServerOnlyFn,
          or server routes.
        wrong_pattern: |
          export const Route = createFileRoute('/dashboard')({
            loader: async () => {
              const secret = process.env.API_SECRET
              return fetch(`https://api.example.com/data`, {
                headers: { Authorization: secret }
              })
            },
          })
        correct_pattern: |
          const getData = createServerFn({ method: 'GET' })
            .handler(async () => {
              const secret = process.env.API_SECRET
              return fetch(`https://api.example.com/data`, {
                headers: { Authorization: secret }
              })
            })

          export const Route = createFileRoute('/dashboard')({
            loader: () => getData(),
          })
        source: 'docs/start/framework/react/guide/execution-model.md'
        priority: CRITICAL
        status: active
        skills: ['execution-model', 'server-functions']

      - mistake: 'Exposing secrets via module-level process.env'
        mechanism: >-
          Module-level process.env access runs in both environments.
          The variable value leaks into the client bundle. Access
          secrets only inside createServerFn or createServerOnlyFn.
        wrong_pattern: |
          const apiKey = process.env.SECRET_KEY
          export function fetchData() { ... }
        correct_pattern: |
          const fetchData = createServerFn({ method: 'GET' })
            .handler(async () => {
              const apiKey = process.env.SECRET_KEY
              return fetch(url, { headers: { Authorization: apiKey } })
            })
        source: 'docs/start/framework/react/guide/execution-model.md'
        priority: CRITICAL
        status: active

      - mistake: 'Using VITE_ prefix for server secrets'
        mechanism: >-
          VITE_ prefixed variables are exposed to the client bundle.
          Server secrets must NOT have the VITE_ prefix. Access
          them via process.env inside server functions only.
        source: 'docs/start/framework/react/guide/environment-variables.md'
        priority: CRITICAL
        status: active

  # ── Server Routes ────────────────────────────────────────────────
  - name: 'Server Routes'
    slug: 'server-routes'
    domain: 'server-routes'
    description: >-
      Define server-side API endpoints alongside app routes using
      the server property with HTTP method handlers, per-handler
      middleware via createHandlers, request/response patterns.
    type: core
    packages:
      - '@tanstack/react-start'
      - '@tanstack/start-server-core'
    covers:
      - server property on createFileRoute
      - handlers object (GET, POST, PUT, DELETE)
      - createHandlers for per-handler middleware
      - Handler context (request, params, context)
      - Request body parsing (json, text, formData)
      - Response helpers (Response.json)
      - File naming for API routes
    tasks:
      - 'Create a REST API endpoint'
      - 'Add middleware to server route handlers'
      - 'Handle different HTTP methods'
    failure_modes:
      - mistake: 'Duplicate path resolution for server routes'
        mechanism: >-
          Each route can only have a single handler file. Having
          both users.ts and users/index.ts causes errors.
        source: 'docs/start/framework/react/guide/server-routes.md'
        priority: MEDIUM
        status: active

  # ── Deployment and Rendering ─────────────────────────────────────
  - name: 'Deployment'
    slug: 'deployment'
    domain: 'deployment-and-rendering'
    description: >-
      Deploy TanStack Start to Cloudflare Workers, Netlify, Vercel,
      Node.js/Docker, Bun, Railway. Configure selective SSR, SPA
      mode, static prerendering, ISR with Cache-Control headers.
    type: core
    packages:
      - '@tanstack/react-start'
      - '@tanstack/start-plugin-core'
    covers:
      - Cloudflare Workers deployment
      - Netlify deployment
      - Vercel / Railway deployment
      - Node.js / Docker deployment
      - Bun deployment
      - Selective SSR (ssr option per route)
      - SPA mode configuration
      - Static prerendering (prerender option)
      - ISR with Cache-Control headers
      - SEO (head property, structured data)
    tasks:
      - 'Deploy to Cloudflare Workers'
      - 'Deploy to Netlify'
      - 'Configure selective SSR per route'
      - 'Enable SPA mode'
      - 'Set up static prerendering'
      - 'Configure ISR with cache headers'
    failure_modes:
      - mistake: 'Bun deployment with React 18'
        mechanism: >-
          Bun-specific deployment only works with React 19.
          For React 18, use Node.js deployment guidelines.
        source: 'docs/start/framework/react/guide/hosting.md'
        priority: MEDIUM
        status: active

      - mistake: 'Missing nodejs_compat flag for Cloudflare Workers'
        mechanism: >-
          Cloudflare Workers requires compatibility_flags:
          ["nodejs_compat"] in wrangler config. Without it,
          Node.js APIs used by Start fail at runtime.
        source: 'docs/start/framework/react/guide/hosting.md'
        priority: HIGH
        status: active

      - mistake: 'Child route loosening parent SSR config'
        mechanism: >-
          SSR config inherits from parent and can only become MORE
          restrictive (true → data-only → false). A child cannot
          set ssr: true if parent has ssr: false.
        source: 'docs/start/framework/react/guide/selective-ssr.md'
        priority: MEDIUM
        status: active

tensions:
  - name: 'Isomorphic defaults vs server-only expectations'
    skills: ['execution-model', 'server-functions']
    description: >-
      All code runs everywhere by default. Agents trained on
      Next.js/Remix assume loaders and route code are server-only.
    implication: >-
      Agents put secrets, DB queries, and file system access in
      loaders instead of server functions, causing client-side
      failures or security leaks.

  - name: 'Simplicity of isomorphic code vs security boundaries'
    skills: ['execution-model', 'middleware']
    description: >-
      The isomorphic model makes code easy to write but requires
      explicit boundaries for security. Agents don't realize they
      need to actively constrain execution environment.
    implication: >-
      Agents expose secrets via module-level process.env or
      forget to validate sendContext data in middleware.

cross_references:
  - from: 'server-functions'
    to: 'execution-model'
    reason: 'Server functions ARE the isomorphic boundary — understanding the execution model is prerequisite'
  - from: 'server-functions'
    to: 'middleware'
    reason: 'Server function middleware chains compose with server functions'
  - from: 'middleware'
    to: 'server-routes'
    reason: 'Server routes use the same middleware system'
  - from: 'deployment'
    to: 'execution-model'
    reason: 'Deployment target affects which environment code runs in'

gaps: []


================================================
FILE: _artifacts/start_skill_tree.yaml
================================================
# skills/_artifacts/start_skill_tree.yaml
library:
  name: '@tanstack/react-start'
  version: '1.166.2'
  repository: 'https://github.com/TanStack/router'
  description: >-
    Full-stack React framework built on TanStack Router and Vite.
    Adds SSR, streaming, server functions (type-safe RPCs), middleware,
    server routes, and universal deployment. Isomorphic by default —
    all code runs in both environments unless explicitly constrained.
generated_from:
  domain_map: '_artifacts/start_domain_map.yaml'
generated_at: '2026-03-07'

skills:
  # ── Start Core Skills ───────────────────────────────────────────
  - name: 'Start Core'
    slug: 'start-core'
    type: 'core'
    domain: 'project-setup'
    path: 'skills/start-core/SKILL.md'
    package: 'packages/start-client-core'
    description: >-
      Core overview for TanStack Start: tanstackStart() Vite plugin,
      getRouter() factory, root route document shell (HeadContent,
      Scripts, Outlet), client/server entry points, routeTree.gen.ts,
      tsconfig configuration. Entry point for all Start skills.
    sources:
      - 'TanStack/router:docs/start/framework/react/build-from-scratch.md'
      - 'TanStack/router:docs/start/framework/react/quick-start.md'
      - 'TanStack/router:docs/start/framework/react/guide/routing.md'

  - name: 'Server Functions'
    slug: 'start-core/server-functions'
    type: 'sub-skill'
    domain: 'server-functions'
    path: 'skills/start-core/server-functions/SKILL.md'
    package: 'packages/start-client-core'
    description: >-
      createServerFn (GET/POST), inputValidator (Zod or function),
      useServerFn hook, server context utilities (getRequest,
      getRequestHeader, setResponseHeader, setResponseStatus), error
      handling (throw errors, redirect, notFound), streaming
      (ReadableStream, async generators), FormData handling, file
      organization (.functions.ts, .server.ts).
    requires:
      - 'start-core'
    sources:
      - 'TanStack/router:docs/start/framework/react/guide/server-functions.md'

  - name: 'Middleware'
    slug: 'start-core/middleware'
    type: 'sub-skill'
    domain: 'middleware-and-context'
    path: 'skills/start-core/middleware/SKILL.md'
    package: 'packages/start-client-core'
    description: >-
      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/start.ts, middleware
      factories, method order enforcement.
    requires:
      - 'start-core'
      - 'start-core/server-functions'
    sources:
      - 'TanStack/router:docs/start/framework/react/guide/middleware.md'

  - name: 'Execution Model'
    slug: 'start-core/execution-model'
    type: 'sub-skill'
    domain: 'execution-model'
    path: 'skills/start-core/execution-model/SKILL.md'
    package: 'packages/start-client-core'
    description: >-
      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).
    requires:
      - 'start-core'
    sources:
      - 'TanStack/router:docs/start/framework/react/guide/execution-model.md'
      - 'TanStack/router:docs/start/framework/react/guide/environment-variables.md'

  - name: 'Server Routes'
    slug: 'start-core/server-routes'
    type: 'sub-skill'
    domain: 'server-routes'
    path: 'skills/start-core/server-routes/SKILL.md'
    package: 'packages/start-client-core'
    description: >-
      Server-side API endpoints using the server property on
      createFileRoute, HTTP method handlers (GET, POST, PUT, DELETE),
      createHandlers for per-handler middleware, handler context
      (request, params, context), request body parsing, response
      helpers, file naming for API routes.
    requires:
      - 'start-core'
    sources:
      - 'TanStack/router:docs/start/framework/react/guide/server-routes.md'

  - name: 'Deployment'
    slug: 'start-core/deployment'
    type: 'sub-skill'
    domain: 'deployment-and-rendering'
    path: 'skills/start-core/deployment/SKILL.md'
    package: 'packages/start-client-core'
    description: >-
      Deploy to Cloudflare Workers, Netlify, Vercel, Node.js/Docker,
      Bun, Railway. Selective SSR (ssr option per route), SPA mode,
      static prerendering, ISR with Cache-Control headers, SEO and
      head management.
    requires:
      - 'start-core'
    sources:
      - 'TanStack/router:docs/start/framework/react/guide/hosting.md'
      - 'TanStack/router:docs/start/framework/react/guide/selective-ssr.md'
      - 'TanStack/router:docs/start/framework/react/guide/static-prerendering.md'
      - 'TanStack/router:docs/start/framework/react/guide/full-stack-seo.md'

  # ── React Start Skills ──────────────────────────────────────────
  - name: 'React Start'
    slug: 'react-start'
    type: 'framework'
    domain: 'project-setup'
    path: 'skills/react-start/SKILL.md'
    package: 'packages/react-start'
    description: >-
      React bindings for TanStack Start: createStart, StartClient,
      StartServer, React-specific imports, re-exports from
      @tanstack/react-router, full project setup with React.
    requires:
      - 'start-core'
    sources:
      - 'TanStack/router:packages/react-start/src'
      - 'TanStack/router:docs/start/framework/react/build-from-scratch.md'

  # ── Lifecycle Skills ────────────────────────────────────────────
  - name: 'Migrate from Next.js'
    slug: 'lifecycle/migrate-from-nextjs'
    type: 'lifecycle'
    domain: 'project-setup'
    path: 'skills/lifecycle/migrate-from-nextjs/SKILL.md'
    package: 'packages/react-start'
    description: >-
      Step-by-step migration from Next.js App Router to TanStack
      Start: route definition conversion, API mapping, server
      function conversion from Server Actions, middleware conversion,
      data fetching pattern changes.
    requires:
      - 'start-core'
      - 'react-start'
    sources:
      - 'TanStack/router:docs/start/framework/react/guide/server-functions.md'
      - 'TanStack/router:docs/start/framework/react/guide/middleware.md'
      - 'TanStack/router:docs/start/framework/react/guide/execution-model.md'


================================================
FILE: benchmarks/bundle-size/.gitignore
================================================
node_modules
dist
scenarios/*/src/routeTree.gen.ts

results/*.json
results/*.md
results/*.js
!results/.gitkeep


================================================
FILE: benchmarks/bundle-size/README.md
================================================
# Bundle Size Benchmarks

This workspace contains deterministic bundle-size fixtures for:

- `@tanstack/react-router`
- `@tanstack/solid-router`
- `@tanstack/vue-router`
- `@tanstack/react-start`
- `@tanstack/solid-start`

Each package has two scenarios:

- `minimal`: Small route app with `__root` + index route that renders `hello world`
- `full`: Same route shape plus a broad root-level harness that imports/uses the full hooks/components surface
- Start `full` scenarios also exercise `createServerFn`, `createMiddleware`, and `useServerFn`

## Design Notes

- Scenarios use file-based routing as the default app style.
- Router scenarios use `@tanstack/router-plugin/vite` with `autoCodeSplitting: true`.
- Start scenarios use `@tanstack/<framework>-start/plugin/vite` with router code-splitting enabled.
- Full-surface coverage is manually maintained (no strict export-coverage gate).
- Metrics are measured from initial-load JS graph only and reported as raw/gzip/brotli bytes.
- Gzip is the primary tracking signal for PR deltas and historical charting.

## Local Run

```bash
pnpm nx run @benchmarks/bundle-size:build
```

This writes:

- `benchmarks/bundle-size/results/current.json`
- `benchmarks/bundle-size/results/benchmark-action.json`

## CI Reporting

- PR workflow generates a sticky comment with:
  - current gzip values
  - baseline delta
  - inline sparkline trend
- Pushes to `main` publish historical chart data to GitHub Pages via `benchmark-action/github-action-benchmark`.

## Manual Update Policy

When router/start public hooks/components evolve, update the corresponding `*-full/src/routes/__root.tsx` harness to keep full scenarios representative.

## Backfill Readiness

The measurement script supports optional interfaces for historical backfilling:

- `--sha`
- `--measured-at`
- `--append-history`

These are intended for one-off scripts that replay historical commits and append results to the same history dataset shape used for chart generation.
If `--append-history` points at a `data.js` file, output is written as `window.BENCHMARK_DATA = ...` for direct GitHub Pages compatibility.


================================================
FILE: benchmarks/bundle-size/package.json
================================================
{
  "name": "@benchmarks/bundle-size",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "node ../../scripts/benchmarks/bundle-size/measure.mjs"
  },
  "dependencies": {
    "@tanstack/react-router": "workspace:^",
    "@tanstack/solid-router": "workspace:^",
    "@tanstack/vue-router": "workspace:^",
    "@tanstack/react-start": "workspace:^",
    "@tanstack/solid-start": "workspace:^",
    "react": "^19.0.0",
    "react-dom": "^19.0.0",
    "solid-js": "^1.9.10",
    "vue": "^3.5.16"
  },
  "devDependencies": {
    "@tanstack/router-plugin": "workspace:^",
    "@types/react": "^19.0.8",
    "@types/react-dom": "^19.0.3",
    "@vitejs/plugin-react": "^6.0.1",
    "@vitejs/plugin-vue": "^6.0.5",
    "@vitejs/plugin-vue-jsx": "^5.1.5",
    "typescript": "^5.7.2",
    "vite": "^8.0.0",
    "vite-plugin-solid": "^2.11.11"
  }
}


================================================
FILE: benchmarks/bundle-size/results/.gitkeep
================================================



================================================
FILE: benchmarks/bundle-size/scenarios/react-router-full/index.html
================================================
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>react-router-full</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-full/src/main.tsx
================================================
import ReactDOM from 'react-dom/client'
import { RouterProvider, createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

const router = createRouter({
  routeTree,
  scrollRestoration: true,
})

declare module '@tanstack/react-router' {
  interface Register {
    router: typeof router
  }
}

const rootElement = document.getElementById('app')
if (!rootElement) {
  throw new Error('Root element `#app` not found')
}
if (!rootElement.innerHTML) {
  ReactDOM.createRoot(rootElement).render(<RouterProvider router={router} />)
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-full/src/routes/__root.tsx
================================================
import {
  Asset,
  Await,
  Block,
  CatchBoundary,
  CatchNotFound,
  ClientOnly,
  DefaultGlobalNotFound,
  ErrorComponent,
  HeadContent,
  Link,
  Match,
  MatchRoute,
  Matches,
  Navigate,
  Outlet,
  RouterContextProvider,
  ScriptOnce,
  Scripts,
  ScrollRestoration,
  createLink,
  createRootRoute,
  linkOptions,
  useAwaited,
  useBlocker,
  useCanGoBack,
  useElementScrollRestoration,
  useHydrated,
  useLinkProps,
  useLoaderData,
  useLoaderDeps,
  useLocation,
  useMatch,
  useMatchRoute,
  useMatches,
  useNavigate,
  useParams,
  useParentMatches,
  useChildMatches,
  useRouteContext,
  useRouter,
  useRouterState,
  useSearch,
  useTags,
} from '@tanstack/react-router'

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  const router = useRouter()
  const hydrated = useHydrated()
  const awaited = useAwaited({ promise: Promise.resolve('ready') })
  const linkProps = useLinkProps({ to: '/' } as any)
  const matchRoute = useMatchRoute()
  const matches = useMatches()
  const parentMatches = useParentMatches()
  const childMatches = useChildMatches()
  const match = useMatch({ strict: false, shouldThrow: false } as any)
  const loaderDeps = useLoaderDeps({ strict: false } as any)
  const loaderData = useLoaderData({ strict: false } as any)
  const params = useParams({ strict: false } as any)
  const search = useSearch({ strict: false } as any)
  const routeContext = useRouteContext({ strict: false } as any)
  const routerState = useRouterState({ select: (state) => state.status } as any)
  const location = useLocation()
  const canGoBack = useCanGoBack()
  const navigate = useNavigate()
  const scrollEntry = useElementScrollRestoration({ id: 'root-scroll' })
  const tags = useTags()

  useBlocker({
    shouldBlockFn: () => false,
    disabled: true,
    withResolver: false,
  })

  const linkFactoryResult = linkOptions({ to: '/' } as any)
  const routeMatchResult = matchRoute({ to: '/' } as any)
  const SvgLink = createLink('svg')

  const hooksAndComponents = [
    useAwaited,
    useHydrated,
    useLinkProps,
    useMatchRoute,
    useMatches,
    useParentMatches,
    useChildMatches,
    useMatch,
    useLoaderDeps,
    useLoaderData,
    useBlocker,
    useNavigate,
    useParams,
    useSearch,
    useRouteContext,
    useRouter,
    useRouterState,
    useLocation,
    useCanGoBack,
    useElementScrollRestoration,
    useTags,
    Await,
    CatchBoundary,
    CatchNotFound,
    ClientOnly,
    DefaultGlobalNotFound,
    ErrorComponent,
    Link,
    Match,
    MatchRoute,
    Matches,
    Navigate,
    Outlet,
    RouterContextProvider,
    ScrollRestoration,
    Block,
    ScriptOnce,
    Asset,
    HeadContent,
    Scripts,
  ]

  ;(globalThis as any).__TANSTACK_BUNDLE_SIZE_KEEP__ = {
    hooksAndComponents,
  }

  void awaited
  void linkFactoryResult
  void matches
  void parentMatches
  void childMatches
  void match
  void loaderDeps
  void loaderData
  void params
  void search
  void routeContext
  void routerState
  void location
  void canGoBack
  void navigate
  void scrollEntry
  void tags
  void routeMatchResult

  return (
    <>
      <HeadContent />
      <ScriptOnce>{'window.__tsr_bundle_size = true'}</ScriptOnce>
      <Asset
        tag="meta"
        attrs={{ name: 'bundle-size', content: 'react-router-full' }}
      />
      <Link {...(linkProps as any)}>home</Link>
      <SvgLink to="/" aria-label="svg-home">
        <circle cx="8" cy="8" r="7" />
      </SvgLink>
      <MatchRoute to="/">{() => <span data-test="match-route" />}</MatchRoute>
      <ClientOnly fallback={<span data-test="client-only-fallback" />}>
        <span data-test="client-only" />
      </ClientOnly>
      <Await promise={Promise.resolve('done')}>
        {() => <span data-test="await" />}
      </Await>
      <Block shouldBlockFn={() => false} disabled withResolver={false}>
        {() => <span data-test="block" />}
      </Block>
      <CatchNotFound fallback={() => <DefaultGlobalNotFound />}>
        <span data-test="catch-not-found" />
      </CatchNotFound>
      <RouterContextProvider router={router}>
        <span data-test="nested-router-context" />
      </RouterContextProvider>
      <ScrollRestoration />
      <Outlet />
      <Scripts />
      <div data-test="full-root" data-hydrated={String(hydrated)}>
        <div>hello world</div>
      </div>
    </>
  )
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-full/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-full/vite.config.ts
================================================
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { tanstackRouter } from '@tanstack/router-plugin/vite'

export default defineConfig({
  plugins: [
    tanstackRouter({
      target: 'react',
      autoCodeSplitting: true,
    }),
    react(),
  ],
})


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-minimal/index.html
================================================
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>react-router-minimal</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-minimal/src/main.tsx
================================================
import ReactDOM from 'react-dom/client'
import { RouterProvider, createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

const router = createRouter({ routeTree })

declare module '@tanstack/react-router' {
  interface Register {
    router: typeof router
  }
}

const rootElement = document.getElementById('app')
if (!rootElement) {
  throw new Error('Root element `#app` not found')
}
if (!rootElement.innerHTML) {
  ReactDOM.createRoot(rootElement).render(<RouterProvider router={router} />)
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-minimal/src/routes/__root.tsx
================================================
import { Outlet, createRootRoute } from '@tanstack/react-router'

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  return <Outlet />
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-minimal/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-router-minimal/vite.config.ts
================================================
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { tanstackRouter } from '@tanstack/router-plugin/vite'

export default defineConfig({
  plugins: [
    tanstackRouter({
      target: 'react',
      autoCodeSplitting: true,
    }),
    react(),
  ],
})


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-full/src/router.tsx
================================================
import { createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

export function getRouter() {
  return createRouter({
    routeTree,
    scrollRestoration: true,
  })
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-full/src/routes/__root.tsx
================================================
import {
  Asset,
  Await,
  Block,
  CatchBoundary,
  CatchNotFound,
  ClientOnly,
  DefaultGlobalNotFound,
  ErrorComponent,
  HeadContent,
  Link,
  Match,
  MatchRoute,
  Matches,
  Navigate,
  Outlet,
  RouterContextProvider,
  ScriptOnce,
  Scripts,
  ScrollRestoration,
  createLink,
  createRootRoute,
  linkOptions,
  useAwaited,
  useBlocker,
  useCanGoBack,
  useElementScrollRestoration,
  useHydrated,
  useLinkProps,
  useLoaderData,
  useLoaderDeps,
  useLocation,
  useMatch,
  useMatchRoute,
  useMatches,
  useNavigate,
  useParams,
  useParentMatches,
  useChildMatches,
  useRouteContext,
  useRouter,
  useRouterState,
  useSearch,
  useTags,
} from '@tanstack/react-router'
import {
  createMiddleware,
  createServerFn,
  useServerFn,
} from '@tanstack/react-start'

const requestMiddleware = createMiddleware().server(async ({ next }) => {
  return next()
})

const functionMiddleware = createMiddleware({ type: 'function' })
  .client(async ({ next }) => {
    return next()
  })
  .server(async ({ next }) => {
    return next()
  })

const helloServerFn = createServerFn({ method: 'GET' })
  .middleware([requestMiddleware, functionMiddleware])
  .handler(async () => {
    return 'hello from server fn'
  })

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  const router = useRouter()
  const hydrated = useHydrated()
  const awaited = useAwaited({ promise: Promise.resolve('ready') })
  const linkProps = useLinkProps({ to: '/' } as any)
  const matchRoute = useMatchRoute()
  const matches = useMatches()
  const parentMatches = useParentMatches()
  const childMatches = useChildMatches()
  const match = useMatch({ strict: false, shouldThrow: false } as any)
  const loaderDeps = useLoaderDeps({ strict: false } as any)
  const loaderData = useLoaderData({ strict: false } as any)
  const params = useParams({ strict: false } as any)
  const search = useSearch({ strict: false } as any)
  const routeContext = useRouteContext({ strict: false } as any)
  const routerState = useRouterState({ select: (state) => state.status } as any)
  const location = useLocation()
  const canGoBack = useCanGoBack()
  const navigate = useNavigate()
  const scrollEntry = useElementScrollRestoration({ id: 'root-scroll' })
  const tags = useTags()
  const invokeServerFn = useServerFn(helloServerFn)

  useBlocker({
    shouldBlockFn: () => false,
    disabled: true,
    withResolver: false,
  })

  const linkFactoryResult = linkOptions({ to: '/' } as any)
  const routeMatchResult = matchRoute({ to: '/' } as any)
  const SvgLink = createLink('svg')

  const startSurface = [createMiddleware, createServerFn, useServerFn]
  const hooksAndComponents = [
    useAwaited,
    useHydrated,
    useLinkProps,
    useMatchRoute,
    useMatches,
    useParentMatches,
    useChildMatches,
    useMatch,
    useLoaderDeps,
    useLoaderData,
    useBlocker,
    useNavigate,
    useParams,
    useSearch,
    useRouteContext,
    useRouter,
    useRouterState,
    useLocation,
    useCanGoBack,
    useElementScrollRestoration,
    useTags,
    Await,
    CatchBoundary,
    CatchNotFound,
    ClientOnly,
    DefaultGlobalNotFound,
    ErrorComponent,
    Link,
    Match,
    MatchRoute,
    Matches,
    Navigate,
    Outlet,
    RouterContextProvider,
    ScrollRestoration,
    Block,
    ScriptOnce,
    Asset,
    HeadContent,
    Scripts,
  ]

  ;(globalThis as any).__TANSTACK_BUNDLE_SIZE_KEEP__ = {
    hooksAndComponents,
    startSurface,
  }

  void awaited
  void linkFactoryResult
  void matches
  void parentMatches
  void childMatches
  void match
  void loaderDeps
  void loaderData
  void params
  void search
  void routeContext
  void routerState
  void location
  void canGoBack
  void navigate
  void scrollEntry
  void tags
  void routeMatchResult
  void invokeServerFn

  return (
    <html>
      <head>
        <HeadContent />
      </head>
      <body>
        <ScriptOnce>{'window.__tsr_bundle_size = true'}</ScriptOnce>
        <Asset
          tag="meta"
          attrs={{ name: 'bundle-size', content: 'react-start-full' }}
        />
        <Link {...(linkProps as any)}>home</Link>
        <SvgLink to="/" aria-label="svg-home">
          <circle cx="8" cy="8" r="7" />
        </SvgLink>
        <MatchRoute to="/">{() => <span data-test="match-route" />}</MatchRoute>
        <ClientOnly fallback={<span data-test="client-only-fallback" />}>
          <span data-test="client-only" />
        </ClientOnly>
        <Await promise={Promise.resolve('done')}>
          {() => <span data-test="await" />}
        </Await>
        <Block shouldBlockFn={() => false} disabled withResolver={false}>
          {() => <span data-test="block" />}
        </Block>
        <CatchNotFound fallback={() => <DefaultGlobalNotFound />}>
          <span data-test="catch-not-found" />
        </CatchNotFound>
        <RouterContextProvider router={router}>
          <span data-test="nested-router-context" />
        </RouterContextProvider>
        <ScrollRestoration />
        <Outlet />
        <Scripts />
        <div data-test="full-root" data-hydrated={String(hydrated)}>
          <div>hello world</div>
        </div>
      </body>
    </html>
  )
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-full/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-full/vite.config.ts
================================================
import { defineConfig } from 'vite'
import viteReact from '@vitejs/plugin-react'
import { tanstackStart } from '@tanstack/react-start/plugin/vite'

export default defineConfig({
  plugins: [tanstackStart(), viteReact()],
})


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-minimal/src/router.tsx
================================================
import { createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'

export function getRouter() {
  return createRouter({
    routeTree,
    scrollRestoration: true,
  })
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-minimal/src/routes/__root.tsx
================================================
import {
  HeadContent,
  Outlet,
  Scripts,
  createRootRoute,
} from '@tanstack/react-router'

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  return (
    <html>
      <head>
        <HeadContent />
      </head>
      <body>
        <Outlet />
        <Scripts />
      </body>
    </html>
  )
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-minimal/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/react-start-minimal/vite.config.ts
================================================
import { defineConfig } from 'vite'
import viteReact from '@vitejs/plugin-react'
import { tanstackStart } from '@tanstack/react-start/plugin/vite'

export default defineConfig({
  plugins: [tanstackStart(), viteReact()],
})


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-full/index.html
================================================
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>solid-router-full</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-full/src/main.tsx
================================================
import { render } from 'solid-js/web'
import { RouterProvider, createRouter } from '@tanstack/solid-router'
import { routeTree } from './routeTree.gen'

const router = createRouter({
  routeTree,
  scrollRestoration: true,
})

declare module '@tanstack/solid-router' {
  interface Register {
    router: typeof router
  }
}

const rootElement = document.getElementById('app')
if (!rootElement) {
  throw new Error('Root element `#app` not found')
}
if (!rootElement.innerHTML) {
  render(() => <RouterProvider router={router} />, rootElement)
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-full/src/routes/__root.tsx
================================================
import {
  Asset,
  Await,
  Block,
  CatchBoundary,
  CatchNotFound,
  ClientOnly,
  DefaultGlobalNotFound,
  ErrorComponent,
  HeadContent,
  Link,
  Match,
  MatchRoute,
  Matches,
  Navigate,
  Outlet,
  RouterContextProvider,
  ScriptOnce,
  Scripts,
  ScrollRestoration,
  createLink,
  createRootRoute,
  linkOptions,
  useAwaited,
  useBlocker,
  useCanGoBack,
  useChildMatches,
  useElementScrollRestoration,
  useHydrated,
  useLinkProps,
  useLoaderData,
  useLoaderDeps,
  useLocation,
  useMatch,
  useMatchRoute,
  useMatches,
  useNavigate,
  useParams,
  useParentMatches,
  useRouteContext,
  useRouter,
  useRouterState,
  useSearch,
  useTags,
} from '@tanstack/solid-router'

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  const router = useRouter()
  const hydrated = useHydrated()
  const [awaited] = useAwaited({ promise: Promise.resolve('ready') })
  const linkProps = useLinkProps({ to: '/' } as any)
  const matchRoute = useMatchRoute()
  const matches = useMatches()
  const parentMatches = useParentMatches()
  const childMatches = useChildMatches()
  const match = useMatch({ strict: false, shouldThrow: false } as any)
  const loaderDeps = useLoaderDeps({ strict: false } as any)
  const loaderData = useLoaderData({ strict: false } as any)
  const params = useParams({ strict: false } as any)
  const search = useSearch({ strict: false } as any)
  const routeContext = useRouteContext({ strict: false } as any)
  const routerState = useRouterState({ select: (state) => state.status } as any)
  const location = useLocation()
  const canGoBack = useCanGoBack()
  const navigate = useNavigate()
  const scrollEntry = useElementScrollRestoration({ id: 'root-scroll' })
  const tags = useTags()

  useBlocker({
    shouldBlockFn: () => false,
    disabled: true,
    withResolver: false,
  })

  const linkFactoryResult = linkOptions({ to: '/' } as any)
  const routeMatchResult = matchRoute({ to: '/' } as any)
  const SvgLink = createLink('svg')

  const hooksAndComponents = [
    useAwaited,
    useHydrated,
    useLinkProps,
    useMatchRoute,
    useMatches,
    useParentMatches,
    useChildMatches,
    useMatch,
    useLoaderDeps,
    useLoaderData,
    useBlocker,
    useNavigate,
    useParams,
    useSearch,
    useRouteContext,
    useRouter,
    useRouterState,
    useLocation,
    useCanGoBack,
    useElementScrollRestoration,
    useTags,
    Await,
    CatchBoundary,
    CatchNotFound,
    ClientOnly,
    DefaultGlobalNotFound,
    ErrorComponent,
    Link,
    Match,
    MatchRoute,
    Matches,
    Navigate,
    Outlet,
    RouterContextProvider,
    ScrollRestoration,
    Block,
    ScriptOnce,
    Asset,
    HeadContent,
    Scripts,
  ]

  ;(globalThis as any).__TANSTACK_BUNDLE_SIZE_KEEP__ = {
    hooksAndComponents,
  }

  void awaited
  void linkFactoryResult
  void matches()
  void parentMatches()
  void childMatches()
  void match()
  void loaderDeps()
  void loaderData()
  void params()
  void search()
  void routeContext()
  void routerState()
  void location()
  void canGoBack()
  void navigate
  void scrollEntry
  void tags()
  void routeMatchResult()

  return (
    <>
      <HeadContent />
      <ScriptOnce>{'window.__tsr_bundle_size = true'}</ScriptOnce>
      <Asset
        tag="meta"
        attrs={{ name: 'bundle-size', content: 'solid-router-full' }}
      />
      <Link {...(linkProps as any)}>home</Link>
      <SvgLink to="/" aria-label="svg-home">
        <circle cx="8" cy="8" r="7" />
      </SvgLink>
      <MatchRoute to="/">{() => <span data-test="match-route" />}</MatchRoute>
      <ClientOnly fallback={<span data-test="client-only-fallback" />}>
        <span data-test="client-only" />
      </ClientOnly>
      <Await promise={Promise.resolve('done')}>
        {() => <span data-test="await" />}
      </Await>
      <Block shouldBlockFn={() => false} disabled withResolver={false}>
        {() => <span data-test="block" />}
      </Block>
      <CatchNotFound fallback={() => <DefaultGlobalNotFound />}>
        <span data-test="catch-not-found" />
      </CatchNotFound>
      <RouterContextProvider router={router}>
        {() => <span data-test="nested-router-context" />}
      </RouterContextProvider>
      <ScrollRestoration />
      <Outlet />
      <Scripts />
      <div data-test="full-root" data-hydrated={String(hydrated())}>
        <div>hello world</div>
      </div>
    </>
  )
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-full/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/solid-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-full/vite.config.ts
================================================
import { defineConfig } from 'vite'
import solid from 'vite-plugin-solid'
import { tanstackRouter } from '@tanstack/router-plugin/vite'

export default defineConfig({
  plugins: [
    tanstackRouter({
      target: 'solid',
      autoCodeSplitting: true,
    }),
    solid(),
  ],
})


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/index.html
================================================
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>solid-router-minimal</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/src/main.tsx
================================================
import { render } from 'solid-js/web'
import { RouterProvider, createRouter } from '@tanstack/solid-router'
import { routeTree } from './routeTree.gen'

const router = createRouter({ routeTree })

declare module '@tanstack/solid-router' {
  interface Register {
    router: typeof router
  }
}

const rootElement = document.getElementById('app')
if (!rootElement) {
  throw new Error('Root element `#app` not found')
}
if (!rootElement.innerHTML) {
  render(() => <RouterProvider router={router} />, rootElement)
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/src/routes/__root.tsx
================================================
import { Outlet, createRootRoute } from '@tanstack/solid-router'

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  return <Outlet />
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/solid-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/vite.config.ts
================================================
import { defineConfig } from 'vite'
import solid from 'vite-plugin-solid'
import { tanstackRouter } from '@tanstack/router-plugin/vite'

export default defineConfig({
  plugins: [
    tanstackRouter({
      target: 'solid',
      autoCodeSplitting: true,
    }),
    solid(),
  ],
})


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-full/src/router.tsx
================================================
import { createRouter } from '@tanstack/solid-router'
import { routeTree } from './routeTree.gen'

export function getRouter() {
  return createRouter({
    routeTree,
    scrollRestoration: true,
  })
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-full/src/routes/__root.tsx
================================================
import {
  Asset,
  Await,
  Block,
  CatchBoundary,
  CatchNotFound,
  ClientOnly,
  DefaultGlobalNotFound,
  ErrorComponent,
  HeadContent,
  Link,
  Match,
  MatchRoute,
  Matches,
  Navigate,
  Outlet,
  RouterContextProvider,
  ScriptOnce,
  Scripts,
  ScrollRestoration,
  createLink,
  createRootRoute,
  linkOptions,
  useAwaited,
  useBlocker,
  useCanGoBack,
  useChildMatches,
  useElementScrollRestoration,
  useHydrated,
  useLinkProps,
  useLoaderData,
  useLoaderDeps,
  useLocation,
  useMatch,
  useMatchRoute,
  useMatches,
  useNavigate,
  useParams,
  useParentMatches,
  useRouteContext,
  useRouter,
  useRouterState,
  useSearch,
  useTags,
} from '@tanstack/solid-router'
import {
  createMiddleware,
  createServerFn,
  useServerFn,
} from '@tanstack/solid-start'

type BundleSizeKeep = {
  hooksAndComponents: ReadonlyArray<unknown>
  startSurface: ReadonlyArray<unknown>
}

declare global {
  var __TANSTACK_BUNDLE_SIZE_KEEP__: BundleSizeKeep | undefined
}

const requestMiddleware = createMiddleware().server(async ({ next }) => {
  return next()
})

const functionMiddleware = createMiddleware({ type: 'function' })
  .client(async ({ next }) => {
    return next()
  })
  .server(async ({ next }) => {
    return next()
  })

const helloServerFn = createServerFn({ method: 'GET' })
  .middleware([requestMiddleware, functionMiddleware])
  .handler(async () => {
    return 'hello from server fn'
  })

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  const router = useRouter()
  const hydrated = useHydrated()
  const [awaited] = useAwaited({ promise: Promise.resolve('ready') })
  const linkProps = useLinkProps({ to: '/' })
  const matchRoute = useMatchRoute()
  const matches = useMatches()
  const parentMatches = useParentMatches()
  const childMatches = useChildMatches()
  const match = useMatch({ strict: false, shouldThrow: false })
  const loaderDeps = useLoaderDeps({ strict: false })
  const loaderData = useLoaderData({ strict: false })
  const params = useParams({ strict: false })
  const search = useSearch({ strict: false })
  const routeContext = useRouteContext({ strict: false })
  const routerState = useRouterState({ select: (state) => state.status })
  const location = useLocation()
  const canGoBack = useCanGoBack()
  const navigate = useNavigate()
  const scrollEntry = useElementScrollRestoration({ id: 'root-scroll' })
  const tags = useTags()
  const invokeServerFn = useServerFn(helloServerFn)

  useBlocker({
    shouldBlockFn: () => false,
    disabled: true,
    withResolver: false,
  })

  const linkFactoryResult = linkOptions({ to: '/' })
  const routeMatchResult = matchRoute({ to: '/' })
  const SvgLink = createLink('svg')

  const startSurface = [createMiddleware, createServerFn, useServerFn]
  const hooksAndComponents = [
    useAwaited,
    useHydrated,
    useLinkProps,
    useMatchRoute,
    useMatches,
    useParentMatches,
    useChildMatches,
    useMatch,
    useLoaderDeps,
    useLoaderData,
    useBlocker,
    useNavigate,
    useParams,
    useSearch,
    useRouteContext,
    useRouter,
    useRouterState,
    useLocation,
    useCanGoBack,
    useElementScrollRestoration,
    useTags,
    Await,
    CatchBoundary,
    CatchNotFound,
    ClientOnly,
    DefaultGlobalNotFound,
    ErrorComponent,
    Link,
    Match,
    MatchRoute,
    Matches,
    Navigate,
    Outlet,
    RouterContextProvider,
    ScrollRestoration,
    Block,
    ScriptOnce,
    Asset,
    HeadContent,
    Scripts,
  ]

  globalThis.__TANSTACK_BUNDLE_SIZE_KEEP__ = {
    hooksAndComponents,
    startSurface,
  }

  void awaited
  void linkFactoryResult
  void matches()
  void parentMatches()
  void childMatches()
  void match()
  void loaderDeps()
  void loaderData()
  void params()
  void search()
  void routeContext()
  void routerState()
  void location()
  void canGoBack()
  void navigate
  void scrollEntry
  void tags()
  void routeMatchResult()
  void invokeServerFn

  return (
    <html>
      <head>
        <HeadContent />
      </head>
      <body>
        <ScriptOnce>{'window.__tsr_bundle_size = true'}</ScriptOnce>
        <Asset
          tag="meta"
          attrs={{ name: 'bundle-size', content: 'solid-start-full' }}
        />
        <Link {...linkProps}>home</Link>
        <SvgLink to="/" aria-label="svg-home">
          <circle cx="8" cy="8" r="7" />
        </SvgLink>
        <MatchRoute to="/">{() => <span data-test="match-route" />}</MatchRoute>
        <ClientOnly fallback={<span data-test="client-only-fallback" />}>
          <span data-test="client-only" />
        </ClientOnly>
        <Await promise={Promise.resolve('done')}>
          {() => <span data-test="await" />}
        </Await>
        <Block shouldBlockFn={() => false} disabled withResolver={false}>
          {() => <span data-test="block" />}
        </Block>
        <CatchNotFound fallback={() => <DefaultGlobalNotFound />}>
          <span data-test="catch-not-found" />
        </CatchNotFound>
        <RouterContextProvider router={router}>
          {() => <span data-test="nested-router-context" />}
        </RouterContextProvider>
        <ScrollRestoration />
        <Outlet />
        <Scripts />
        <div data-test="full-root" data-hydrated={String(hydrated())}>
          <div>hello world</div>
        </div>
      </body>
    </html>
  )
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-full/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/solid-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-full/vite.config.ts
================================================
import { defineConfig } from 'vite'
import solid from 'vite-plugin-solid'
import { tanstackStart } from '@tanstack/solid-start/plugin/vite'

export default defineConfig({
  plugins: [tanstackStart(), solid({ ssr: true })],
})


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/src/router.tsx
================================================
import { createRouter } from '@tanstack/solid-router'
import { routeTree } from './routeTree.gen'

export function getRouter() {
  return createRouter({
    routeTree,
    scrollRestoration: true,
  })
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/src/routes/__root.tsx
================================================
import {
  HeadContent,
  Outlet,
  Scripts,
  createRootRoute,
} from '@tanstack/solid-router'

export const Route = createRootRoute({
  component: RootComponent,
})

function RootComponent() {
  return (
    <html>
      <head>
        <HeadContent />
      </head>
      <body>
        <Outlet />
        <Scripts />
      </body>
    </html>
  )
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/src/routes/index.tsx
================================================
import { createFileRoute } from '@tanstack/solid-router'

export const Route = createFileRoute('/')({
  component: IndexComponent,
})

function IndexComponent() {
  return <div>hello world</div>
}


================================================
FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/vite.config.ts
================================================
import { defineConfig } from 'vite'
import solid from 'vite-plugin-solid'
import { tanstackStart } from '@tanstack/solid-start/plugin/vite'

export default defineConfig({
  plugi
Download .txt
Showing preview only (416K chars total). Download the full file or copy to clipboard to get everything.
gitextract_94dotqtg/

├── .changeset/
│   └── config.json
├── .devcontainer/
│   └── devcontainer.json
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── config.yml
│   ├── renovate.json
│   └── workflows/
│       ├── autofix.yml
│       ├── bundle-size.yml
│       ├── check-skills.yml
│       ├── client-nav-benchmarks.yml
│       ├── labeler.yml
│       ├── notify-playbooks.yml
│       ├── pr.yml
│       ├── release.yml
│       └── validate-skills.yml
├── .gitignore
├── .npmrc
├── .nvmrc
├── .nx/
│   └── workflows/
│       └── dynamic-changesets.yaml
├── .prettierignore
├── AGENTS.md
├── CONTRIBUTING.md
├── DEBUGGING.md
├── LICENSE
├── README.md
├── _artifacts/
│   ├── domain_map.yaml
│   ├── skill_spec.md
│   ├── skill_tree.yaml
│   ├── start_domain_map.yaml
│   └── start_skill_tree.yaml
├── benchmarks/
│   ├── bundle-size/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── results/
│   │   │   └── .gitkeep
│   │   ├── scenarios/
│   │   │   ├── react-router-full/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── react-router-minimal/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── react-start-full/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── react-start-minimal/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-router-full/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-router-minimal/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-start-full/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── solid-start-minimal/
│   │   │   │   ├── src/
│   │   │   │   │   ├── router.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   ├── vue-router-full/
│   │   │   │   ├── index.html
│   │   │   │   ├── src/
│   │   │   │   │   ├── main.tsx
│   │   │   │   │   └── routes/
│   │   │   │   │       ├── __root.tsx
│   │   │   │   │       └── index.tsx
│   │   │   │   └── vite.config.ts
│   │   │   └── vue-router-minimal/
│   │   │       ├── index.html
│   │   │       ├── src/
│   │   │       │   ├── main.tsx
│   │   │       │   └── routes/
│   │   │       │       ├── __root.tsx
│   │   │       │       └── index.tsx
│   │   │       └── vite.config.ts
│   │   └── tsconfig.json
│   ├── client-nav/
│   │   ├── README.md
│   │   ├── jsdom.ts
│   │   ├── package.json
│   │   ├── react/
│   │   │   ├── app.tsx
│   │   │   ├── setup.ts
│   │   │   ├── speed.bench.ts
│   │   │   ├── speed.flame.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── solid/
│   │   │   ├── app.tsx
│   │   │   ├── setup.ts
│   │   │   ├── speed.bench.ts
│   │   │   ├── speed.flame.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── tsconfig.json
│   │   ├── vitest.config.ts
│   │   ├── vitest.setup.ts
│   │   └── vue/
│   │       ├── app.tsx
│   │       ├── setup.ts
│   │       ├── speed.bench.ts
│   │       ├── speed.flame.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   └── ssr/
│       ├── README.md
│       ├── bench-utils.ts
│       ├── package.json
│       ├── react/
│       │   ├── speed.bench.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── $a.$b.$c.$d.tsx
│       │   │   │   ├── $a.$b.$c.tsx
│       │   │   │   ├── $a.$b.tsx
│       │   │   │   ├── $a.tsx
│       │   │   │   └── __root.tsx
│       │   │   └── workload.tsx
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── solid/
│       │   ├── speed.bench.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── $a.$b.$c.$d.tsx
│       │   │   │   ├── $a.$b.$c.tsx
│       │   │   │   ├── $a.$b.tsx
│       │   │   │   ├── $a.tsx
│       │   │   │   └── __root.tsx
│       │   │   └── workload.tsx
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── tsconfig.json
│       ├── vitest.config.ts
│       └── vue/
│           ├── speed.bench.ts
│           ├── src/
│           │   ├── routeTree.gen.ts
│           │   ├── router.tsx
│           │   ├── routes/
│           │   │   ├── $a.$b.$c.$d.tsx
│           │   │   ├── $a.$b.$c.tsx
│           │   │   ├── $a.$b.tsx
│           │   │   ├── $a.tsx
│           │   │   └── __root.tsx
│           │   └── workload.tsx
│           ├── tsconfig.json
│           └── vite.config.ts
├── docs/
│   ├── router/
│   │   ├── api/
│   │   │   ├── file-based-routing.md
│   │   │   ├── router/
│   │   │   │   ├── ActiveLinkOptionsType.md
│   │   │   │   ├── AsyncRouteComponentType.md
│   │   │   │   ├── FileRouteClass.md
│   │   │   │   ├── LinkOptionsType.md
│   │   │   │   ├── LinkPropsType.md
│   │   │   │   ├── MatchRouteOptionsType.md
│   │   │   │   ├── NavigateOptionsType.md
│   │   │   │   ├── NotFoundErrorType.md
│   │   │   │   ├── NotFoundRouteClass.md
│   │   │   │   ├── ParsedHistoryStateType.md
│   │   │   │   ├── ParsedLocationType.md
│   │   │   │   ├── RedirectType.md
│   │   │   │   ├── RegisterType.md
│   │   │   │   ├── RootRouteClass.md
│   │   │   │   ├── RouteApiClass.md
│   │   │   │   ├── RouteApiType.md
│   │   │   │   ├── RouteClass.md
│   │   │   │   ├── RouteMaskType.md
│   │   │   │   ├── RouteMatchType.md
│   │   │   │   ├── RouteOptionsType.md
│   │   │   │   ├── RouteType.md
│   │   │   │   ├── RouterClass.md
│   │   │   │   ├── RouterEventsType.md
│   │   │   │   ├── RouterOptionsType.md
│   │   │   │   ├── RouterStateType.md
│   │   │   │   ├── RouterType.md
│   │   │   │   ├── ToMaskOptionsType.md
│   │   │   │   ├── ToOptionsType.md
│   │   │   │   ├── UseMatchRouteOptionsType.md
│   │   │   │   ├── ViewTransitionOptionsType.md
│   │   │   │   ├── awaitComponent.md
│   │   │   │   ├── catchBoundaryComponent.md
│   │   │   │   ├── catchNotFoundComponent.md
│   │   │   │   ├── clientOnlyComponent.md
│   │   │   │   ├── createFileRouteFunction.md
│   │   │   │   ├── createLazyFileRouteFunction.md
│   │   │   │   ├── createLazyRouteFunction.md
│   │   │   │   ├── createRootRouteFunction.md
│   │   │   │   ├── createRootRouteWithContextFunction.md
│   │   │   │   ├── createRouteFunction.md
│   │   │   │   ├── createRouteMaskFunction.md
│   │   │   │   ├── createRouterFunction.md
│   │   │   │   ├── defaultGlobalNotFoundComponent.md
│   │   │   │   ├── deferFunction.md
│   │   │   │   ├── errorComponentComponent.md
│   │   │   │   ├── getRouteApiFunction.md
│   │   │   │   ├── historyStateInterface.md
│   │   │   │   ├── isNotFoundFunction.md
│   │   │   │   ├── isRedirectFunction.md
│   │   │   │   ├── lazyRouteComponentFunction.md
│   │   │   │   ├── linkComponent.md
│   │   │   │   ├── linkOptions.md
│   │   │   │   ├── matchRouteComponent.md
│   │   │   │   ├── navigateComponent.md
│   │   │   │   ├── notFoundComponentComponent.md
│   │   │   │   ├── notFoundFunction.md
│   │   │   │   ├── outletComponent.md
│   │   │   │   ├── redirectFunction.md
│   │   │   │   ├── retainSearchParamsFunction.md
│   │   │   │   ├── rootRouteWithContextFunction.md
│   │   │   │   ├── stripSearchParamsFunction.md
│   │   │   │   ├── useAwaitedHook.md
│   │   │   │   ├── useBlockerHook.md
│   │   │   │   ├── useCanGoBack.md
│   │   │   │   ├── useChildMatchesHook.md
│   │   │   │   ├── useLinkPropsHook.md
│   │   │   │   ├── useLoaderDataHook.md
│   │   │   │   ├── useLoaderDepsHook.md
│   │   │   │   ├── useLocationHook.md
│   │   │   │   ├── useMatchHook.md
│   │   │   │   ├── useMatchRouteHook.md
│   │   │   │   ├── useMatchesHook.md
│   │   │   │   ├── useNavigateHook.md
│   │   │   │   ├── useParamsHook.md
│   │   │   │   ├── useParentMatchesHook.md
│   │   │   │   ├── useRouteContextHook.md
│   │   │   │   ├── useRouterHook.md
│   │   │   │   ├── useRouterStateHook.md
│   │   │   │   └── useSearchHook.md
│   │   │   └── router.md
│   │   ├── comparison.md
│   │   ├── config.json
│   │   ├── decisions-on-dx.md
│   │   ├── devtools.md
│   │   ├── eslint/
│   │   │   ├── create-route-property-order.md
│   │   │   └── eslint-plugin-router.md
│   │   ├── faq.md
│   │   ├── guide/
│   │   │   ├── authenticated-routes.md
│   │   │   ├── automatic-code-splitting.md
│   │   │   ├── code-splitting.md
│   │   │   ├── creating-a-router.md
│   │   │   ├── custom-link.md
│   │   │   ├── custom-search-param-serialization.md
│   │   │   ├── data-loading.md
│   │   │   ├── data-mutations.md
│   │   │   ├── deferred-data-loading.md
│   │   │   ├── document-head-management.md
│   │   │   ├── external-data-loading.md
│   │   │   ├── history-types.md
│   │   │   ├── internationalization-i18n.md
│   │   │   ├── link-options.md
│   │   │   ├── navigation-blocking.md
│   │   │   ├── navigation.md
│   │   │   ├── not-found-errors.md
│   │   │   ├── outlets.md
│   │   │   ├── parallel-routes.md
│   │   │   ├── path-params.md
│   │   │   ├── preloading.md
│   │   │   ├── render-optimizations.md
│   │   │   ├── route-masking.md
│   │   │   ├── router-context.md
│   │   │   ├── scroll-restoration.md
│   │   │   ├── search-params.md
│   │   │   ├── ssr.md
│   │   │   ├── static-route-data.md
│   │   │   ├── type-safety.md
│   │   │   ├── type-utilities.md
│   │   │   └── url-rewrites.md
│   │   ├── how-to/
│   │   │   ├── README.md
│   │   │   ├── arrays-objects-dates-search-params.md
│   │   │   ├── debug-router-issues.md
│   │   │   ├── deploy-to-production.md
│   │   │   ├── drafts/
│   │   │   │   ├── README.md
│   │   │   │   ├── build-search-filtering-systems.draft.md
│   │   │   │   ├── optimize-search-param-performance.draft.md
│   │   │   │   └── search-params-in-forms.draft.md
│   │   │   ├── install.md
│   │   │   ├── integrate-chakra-ui.md
│   │   │   ├── integrate-framer-motion.md
│   │   │   ├── integrate-material-ui.md
│   │   │   ├── integrate-shadcn-ui.md
│   │   │   ├── migrate-from-react-router.md
│   │   │   ├── navigate-with-search-params.md
│   │   │   ├── setup-auth-providers.md
│   │   │   ├── setup-authentication.md
│   │   │   ├── setup-basic-search-params.md
│   │   │   ├── setup-rbac.md
│   │   │   ├── setup-ssr.md
│   │   │   ├── setup-testing.md
│   │   │   ├── share-search-params-across-routes.md
│   │   │   ├── test-file-based-routing.md
│   │   │   ├── use-environment-variables.md
│   │   │   └── validate-search-params.md
│   │   ├── installation/
│   │   │   ├── manual.md
│   │   │   ├── migrate-from-react-location.md
│   │   │   ├── migrate-from-react-router.md
│   │   │   ├── with-esbuild.md
│   │   │   ├── with-router-cli.md
│   │   │   ├── with-rspack.md
│   │   │   ├── with-vite.md
│   │   │   └── with-webpack.md
│   │   ├── integrations/
│   │   │   └── query.md
│   │   ├── llm-support.md
│   │   ├── overview.md
│   │   ├── quick-start.md
│   │   └── routing/
│   │       ├── code-based-routing.md
│   │       ├── file-based-routing.md
│   │       ├── file-naming-conventions.md
│   │       ├── route-matching.md
│   │       ├── route-trees.md
│   │       ├── routing-concepts.md
│   │       └── virtual-file-routes.md
│   └── start/
│       ├── config.json
│       └── framework/
│           ├── react/
│           │   ├── build-from-scratch.md
│           │   ├── comparison.md
│           │   ├── getting-started.md
│           │   ├── guide/
│           │   │   ├── authentication-overview.md
│           │   │   ├── authentication.md
│           │   │   ├── cdn-asset-urls.md
│           │   │   ├── client-entry-point.md
│           │   │   ├── code-execution-patterns.md
│           │   │   ├── databases.md
│           │   │   ├── environment-functions.md
│           │   │   ├── environment-variables.md
│           │   │   ├── error-boundaries.md
│           │   │   ├── execution-model.md
│           │   │   ├── hosting.md
│           │   │   ├── hydration-errors.md
│           │   │   ├── import-protection.md
│           │   │   ├── isr.md
│           │   │   ├── llmo.md
│           │   │   ├── middleware.md
│           │   │   ├── observability.md
│           │   │   ├── path-aliases.md
│           │   │   ├── rendering-markdown.md
│           │   │   ├── routing.md
│           │   │   ├── selective-ssr.md
│           │   │   ├── seo.md
│           │   │   ├── server-entry-point.md
│           │   │   ├── server-functions.md
│           │   │   ├── server-routes.md
│           │   │   ├── spa-mode.md
│           │   │   ├── static-prerendering.md
│           │   │   ├── static-server-functions.md
│           │   │   ├── streaming-data-from-server-functions.md
│           │   │   └── tailwind-integration.md
│           │   ├── migrate-from-next-js.md
│           │   ├── overview.md
│           │   ├── quick-start.md
│           │   ├── start-vs-nextjs.md
│           │   └── tutorial/
│           │       ├── fetching-external-api.md
│           │       └── reading-writing-file.md
│           └── solid/
│               ├── build-from-scratch.md
│               ├── getting-started.md
│               ├── guide/
│               │   ├── authentication-overview.md
│               │   ├── authentication.md
│               │   ├── client-entry-point.md
│               │   ├── code-execution-patterns.md
│               │   ├── databases.md
│               │   ├── environment-functions.md
│               │   ├── environment-variables.md
│               │   ├── error-boundaries.md
│               │   ├── execution-model.md
│               │   ├── hosting.md
│               │   ├── hydration-errors.md
│               │   ├── import-protection.md
│               │   ├── llmo.md
│               │   ├── middleware.md
│               │   ├── observability.md
│               │   ├── path-aliases.md
│               │   ├── reading-writing-file.md
│               │   ├── routing.md
│               │   ├── selective-ssr.md
│               │   ├── seo.md
│               │   ├── server-entry-point.md
│               │   ├── server-functions.md
│               │   ├── server-routes.md
│               │   ├── spa-mode.md
│               │   ├── static-prerendering.md
│               │   ├── static-server-functions.md
│               │   └── tailwind-integration.md
│               ├── overview.md
│               ├── quick-start.md
│               └── tutorial/
│                   ├── fetching-external-api.md
│                   └── reading-writing-file.md
├── e2e/
│   ├── e2e-utils/
│   │   ├── eslint.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── derivePort.ts
│   │   │   ├── e2eSetupTeardown.ts
│   │   │   ├── fixture.ts
│   │   │   ├── index.ts
│   │   │   ├── localDummyServer.ts
│   │   │   ├── posts.ts
│   │   │   ├── resolve-runtime-suffix.ts
│   │   │   ├── to-runtime-path.ts
│   │   │   └── users.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── react-router/
│   │   ├── basepath-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── redirect.tsx
│   │   │   │       ├── redirectReload.tsx
│   │   │   │       └── scroll-error.tsx
│   │   │   ├── tests/
│   │   │   │   ├── reload-document.test.ts
│   │   │   │   ├── scroll-restoration-session-storage-error.test.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── esbuild.config.js
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── (group)/
│   │   │   │       │   ├── _layout.inside.tsx
│   │   │   │       │   ├── _layout.tsx
│   │   │   │       │   ├── lazyinside.lazy.tsx
│   │   │   │       │   └── lazyinside.tsx
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── _layout/
│   │   │   │       │   ├── _layout-2/
│   │   │   │       │   │   ├── layout-a.tsx
│   │   │   │       │   │   └── layout-b.tsx
│   │   │   │       │   └── _layout-2.tsx
│   │   │   │       ├── _layout.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── posts.$postId.tsx
│   │   │   │       ├── posts.index.tsx
│   │   │   │       └── posts.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   └── RenderCounter.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.lazy.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── anchor.tsx
│   │   │   │   │   ├── component-types-test.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── fullpath-test/
│   │   │   │   │   │   ├── _layout/
│   │   │   │   │   │   │   ├── $id.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── hover-preload-hash.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── lazy-error.lazy.tsx
│   │   │   │   │   ├── lazy-error.tsx
│   │   │   │   │   ├── masks.admin.$userId.tsx
│   │   │   │   │   ├── masks.public.$username.tsx
│   │   │   │   │   ├── masks.tsx
│   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo_.qux.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar_.qux.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $baz.foo.tsx
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   ├── baz.foo.tsx
│   │   │   │   │   │   │   ├── baz.index.tsx
│   │   │   │   │   │   │   ├── baz.route.tsx
│   │   │   │   │   │   │   ├── baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── prefix/
│   │   │   │   │   │   │   ├── prefix{$baz}.foo.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.index.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.route.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   └── suffix/
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── {$baz}suffix.foo.tsx
│   │   │   │   │   │       ├── {$baz}suffix.index.tsx
│   │   │   │   │   │       ├── {$baz}suffix.route.tsx
│   │   │   │   │   │       └── {$baz}suffix_.bar.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── params-ps/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $foo/
│   │   │   │   │   │   │   │   ├── $bar.$baz.tsx
│   │   │   │   │   │   │   │   ├── $bar.route.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── prefix{$foo}.tsx
│   │   │   │   │   │   │   └── {$foo}suffix.tsx
│   │   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   │   ├── $foo_/
│   │   │   │   │   │   │   │   ├── $bar.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── strict-false/
│   │   │   │   │   │   │   ├── $version.route.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── wildcard/
│   │   │   │   │   │       ├── $.tsx
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── prefix@대{$}.tsx
│   │   │   │   │   │       ├── prefix{$}.tsx
│   │   │   │   │   │       ├── {$}suffix.tsx
│   │   │   │   │   │       └── {$}suffix@대.tsx
│   │   │   │   │   ├── params.single.$value.tsx
│   │   │   │   │   ├── pathless-layout/
│   │   │   │   │   │   ├── _layout/
│   │   │   │   │   │   │   ├── child.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── destination.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   ├── via-loader.tsx
│   │   │   │   │   │   │   ├── via-route-redirect-beforeLoad.tsx
│   │   │   │   │   │   │   ├── via-route-redirect-loader.tsx
│   │   │   │   │   │   │   ├── via-routeApi-redirect-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-routeApi-redirect-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── preload/
│   │   │   │   │   │       ├── first.tsx
│   │   │   │   │   │       ├── second.tsx
│   │   │   │   │   │       └── third.tsx
│   │   │   │   │   ├── relative/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── link/
│   │   │   │   │   │   │   ├── nested/
│   │   │   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   │   ├── $path/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── relative-link-a.tsx
│   │   │   │   │   │   │   ├── relative-link-b.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── with-search/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   └── useNavigate/
│   │   │   │   │   │       ├── nested/
│   │   │   │   │   │       │   ├── deep/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── path/
│   │   │   │   │   │       │   ├── $path/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── relative-useNavigate-a.tsx
│   │   │   │   │   │       ├── relative-useNavigate-b.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       └── with-search/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── structural-sharing.$enabled.tsx
│   │   │   │   │   └── 대한민국/
│   │   │   │   │       ├── route.tsx
│   │   │   │   │       ├── wildcard.$.tsx
│   │   │   │   │       └── 🚀.$id.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── fullpath-types.spec.ts
│   │   │   │   ├── hover-preload-hash.spec.ts
│   │   │   │   ├── mask.spec.ts
│   │   │   │   ├── non-nested-paths.spec.ts
│   │   │   │   ├── open-redirect-prevention.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── relative.spec.ts
│   │   │   │   ├── scroll-into-view.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-file-based-code-splitting/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── shared-singleton.tsx
│   │   │   │   │   ├── viewport-test.tsx
│   │   │   │   │   └── without-loader.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── preload.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── shared-bindings.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-react-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── router-events.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── escaped-special-strings/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── [_]layout.tsx
│   │   │   │       ├── [index].tsx
│   │   │   │       ├── [lazy].tsx
│   │   │   │       ├── [route].tsx
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── blog[_].tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── escaped-routes.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── generator-cli-only/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── tsr.config.json
│   │   │   └── vite.config.js
│   │   ├── i18n-paraglide/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── messages/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── project.inlang/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── project_id
│   │   │   │   └── settings.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── navigation.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── js-only-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.jsx
│   │   │   │   ├── posts.js
│   │   │   │   ├── routeTree.gen.js
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.jsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.jsx
│   │   │   │   │   │   │   └── route-b.jsx
│   │   │   │   │   │   └── _nested-layout.jsx
│   │   │   │   │   ├── _pathlessLayout.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   ├── posts.$postId.jsx
│   │   │   │   │   ├── posts.index.jsx
│   │   │   │   │   └── posts.route.jsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── rspack-basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── rspack-basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── routes.ts
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── tsr.config.json
│   │   ├── scroll-restoration-sandbox-vite/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.browser.config.ts
│   │   │   ├── playwright.hash.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── lazy-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-page.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.tsx
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── page-with-search.tsx
│   │   │   │   │   │   └── virtual-page.lazy.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── sentry-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   └── view-transitions/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .vscode/
│   │       │   └── settings.json
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── src/
│   │       │   ├── main.tsx
│   │       │   ├── posts.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── routes/
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── how-it-works.tsx
│   │       │   │   ├── index.tsx
│   │       │   │   ├── posts.$postId.tsx
│   │       │   │   ├── posts.index.tsx
│   │       │   │   └── posts.route.tsx
│   │       │   └── styles.css
│   │       ├── tests/
│   │       │   ├── app.spec.ts
│   │       │   └── setup/
│   │       │       ├── global.setup.ts
│   │       │       └── global.teardown.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.js
│   ├── react-start/
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── async-user-script.js
│   │   │   │   ├── before-scripts-async-script.js
│   │   │   │   ├── before-scripts-script.js
│   │   │   │   ├── head-async-script.js
│   │   │   │   ├── head-script.js
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   ├── site.webmanifest
│   │   │   │   └── user-script.js
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── NotFound.tsx
│   │   │   │   │   ├── RedirectOnClick.tsx
│   │   │   │   │   ├── WindowSize.tsx
│   │   │   │   │   └── throwRedirect.ts
│   │   │   │   ├── raw-stream-fns.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── async-scripts.tsx
│   │   │   │   │   ├── client-only.tsx
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── foo/
│   │   │   │   │   │   └── $bar/
│   │   │   │   │   │       └── $qux/
│   │   │   │   │   │           ├── _here/
│   │   │   │   │   │           │   └── index.tsx
│   │   │   │   │   │           └── _here.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── inline-scripts.tsx
│   │   │   │   │   ├── links.tsx
│   │   │   │   │   ├── multi-cookie-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── not-found/
│   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   ├── b/
│   │   │   │   │   │   │   │   ├── c/
│   │   │   │   │   │   │   │   │   ├── d.tsx
│   │   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── parent-boundary/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── via-beforeLoad.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── via-beforeLoad-target-root.tsx
│   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── raw-stream/
│   │   │   │   │   │   ├── client-call.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── ssr-binary-hint.tsx
│   │   │   │   │   │   ├── ssr-mixed.tsx
│   │   │   │   │   │   ├── ssr-multiple.tsx
│   │   │   │   │   │   ├── ssr-single.tsx
│   │   │   │   │   │   └── ssr-text-hint.tsx
│   │   │   │   │   ├── raw-stream.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── serverFn/
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   │   ├── via-loader.tsx
│   │   │   │   │   │   │   │   └── via-useServerFn.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── scripts.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── loader-throws-redirect.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── specialChars/
│   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   ├── hash.tsx
│   │   │   │   │   │   ├── malformed/
│   │   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── search.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── search.tsx
│   │   │   │   │   │   └── 대한민국.tsx
│   │   │   │   │   ├── stream.tsx
│   │   │   │   │   ├── type-only-reexport.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── shared-lib/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── middleware.ts
│   │   │   │   │   └── typedefs/
│   │   │   │   │       ├── actions.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── client-only.spec.ts
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   ├── not-found.spec.ts
│   │   │   │   ├── open-redirect-prevention.spec.ts
│   │   │   │   ├── prerendering.spec.ts
│   │   │   │   ├── raw-stream.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── root-scripts.spec.ts
│   │   │   │   ├── script-duplication.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   ├── special-characters.spec.ts
│   │   │   │   ├── streaming.spec.ts
│   │   │   │   ├── type-only-reexport.spec.ts
│   │   │   │   └── utils/
│   │   │   │       ├── isPrerender.ts
│   │   │   │       ├── isPreview.ts
│   │   │   │       └── isSpaMode.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-auth/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── prisma/
│   │   │   │   ├── migrations/
│   │   │   │   │   ├── 20240811183753_init/
│   │   │   │   │   │   └── migration.sql
│   │   │   │   │   └── migration_lock.toml
│   │   │   │   └── schema.prisma
│   │   │   ├── prisma.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Auth.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── Login.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useMutation.ts
│   │   │   │   ├── prisma-generated/
│   │   │   │   │   ├── browser.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── commonInputTypes.ts
│   │   │   │   │   ├── enums.ts
│   │   │   │   │   ├── internal/
│   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   ├── prismaNamespace.ts
│   │   │   │   │   │   └── prismaNamespaceBrowser.ts
│   │   │   │   │   ├── models/
│   │   │   │   │   │   └── User.ts
│   │   │   │   │   └── models.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _authed/
│   │   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   ├── _authed.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── login.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   └── signup.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.ts
│   │   │   │       ├── prisma.ts
│   │   │   │       ├── seo.ts
│   │   │   │       └── session.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── mock-db-setup.test.ts
│   │   │   │   └── mock-db-teardown.test.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-cloudflare/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── static.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       └── seo.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── vite.config.ts
│   │   │   ├── worker-configuration.d.ts
│   │   │   └── wrangler.jsonc
│   │   ├── basic-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── redirect.tsx
│   │   │   │   │   ├── suspense-transition.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   └── count/
│   │   │   │   │   │       └── query.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── transition.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-rsc/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   └── posts_.$postId.deep.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── renderPosts.tsx
│   │   │   │       └── seo.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-tsr-config/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── clerk-basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _authed/
│   │   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   │   ├── posts.tsx
│   │   │   │   │   │   └── profile.$.tsx
│   │   │   │   │   ├── _authed.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.ts
│   │   │   │       └── seo.ts
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── csp/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── external.css
│   │   │   │   └── external.js
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   └── csp.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── css-modules/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── shared-widget-lazy.tsx
│   │   │   │   │   └── shared-widget.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── lazy-css-lazy.tsx
│   │   │   │   │   ├── lazy-css-static.tsx
│   │   │   │   │   ├── modules.tsx
│   │   │   │   │   ├── quotes.tsx
│   │   │   │   │   └── sass-mixin.tsx
│   │   │   │   └── styles/
│   │   │   │       ├── app.scss
│   │   │   │       ├── card.module.css
│   │   │   │       ├── center-mixin.scss
│   │   │   │       ├── global.css
│   │   │   │       ├── mixin-consumer.scss
│   │   │   │       ├── quotes.css
│   │   │   │       └── shared-widget.module.css
│   │   │   ├── tests/
│   │   │   │   ├── css.dev.spec.ts
│   │   │   │   ├── css.prod.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── vite.config.cloudflare.ts
│   │   │   ├── vite.config.ts
│   │   │   └── wrangler.jsonc
│   │   ├── custom-basepath/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── express-server.ts
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   ├── navigate-test.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── throw-it.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── basepath.ts
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── dev-ssr-styles/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── env.ts
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── flamegraph-bench/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── nested/
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.$y.$z.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.$y.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.$j.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.$i.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.$h.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.$g.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.$f.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.$e.tsx
│   │   │   │   │   │   ├── $a.$b.$c.$d.tsx
│   │   │   │   │   │   ├── $a.$b.$c.tsx
│   │   │   │   │   │   ├── $a.$b.tsx
│   │   │   │   │   │   └── $a.tsx
│   │   │   │   │   ├── page.$id.tsx
│   │   │   │   │   └── search.tsx
│   │   │   │   └── server.ts
│   │   │   ├── tests/
│   │   │   │   └── bench.js
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── i18n-paraglide/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── .vscode/
│   │   │   │   ├── extensions.json
│   │   │   │   └── settings.json
│   │   │   ├── messages/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── project.inlang/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── project_id
│   │   │   │   └── settings.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles.css
│   │   │   │   └── utils/
│   │   │   │       ├── prerender.ts
│   │   │   │       ├── seo.ts
│   │   │   │       └── translated-pathnames.ts
│   │   │   ├── tests/
│   │   │   │   └── navigation.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── import-protection/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── alias-path-leak.tsx
│   │   │   │   │   ├── alias-path-namespace-leak.tsx
│   │   │   │   │   ├── barrel-false-positive.tsx
│   │   │   │   │   ├── beforeload-leak.tsx
│   │   │   │   │   ├── client-only-jsx.tsx
│   │   │   │   │   ├── client-only-violations.tsx
│   │   │   │   │   ├── component-server-leak.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── leaky-server-import.tsx
│   │   │   │   │   ├── noexternal-client-pkg.tsx
│   │   │   │   │   └── non-alias-namespace-leak.tsx
│   │   │   │   └── violations/
│   │   │   │       ├── barrel-reexport/
│   │   │   │       │   ├── db.server.ts
│   │   │   │       │   ├── foo.ts
│   │   │   │       │   ├── index.ts
│   │   │   │       │   └── shared.ts
│   │   │   │       ├── beforeload-server-leak.ts
│   │   │   │       ├── boundary-safe.ts
│   │   │   │       ├── browser-api.client.ts
│   │   │   │       ├── compiler-leak.ts
│   │   │   │       ├── cross-boundary-leak/
│   │   │   │       │   ├── leaky-consumer.ts
│   │   │   │       │   ├── safe-consumer.ts
│   │   │   │       │   └── shared-util.ts
│   │   │   │       ├── cross-boundary-safe/
│   │   │   │       │   ├── auth-wrapper.ts
│   │   │   │       │   ├── session-util.ts
│   │   │   │       │   └── usage.ts
│   │   │   │       ├── db-credentials.server.ts
│   │   │   │       ├── edge-1.ts
│   │   │   │       ├── edge-2.ts
│   │   │   │       ├── edge-3.ts
│   │   │   │       ├── edge-a.ts
│   │   │   │       ├── factory-safe/
│   │   │   │       │   ├── createSecretFactory.ts
│   │   │   │       │   └── usage.ts
│   │   │   │       ├── leaky-server-import.ts
│   │   │   │       ├── marked-client-only-edge.ts
│   │   │   │       ├── marked-client-only.ts
│   │   │   │       ├── marked-server-only-edge.ts
│   │   │   │       ├── marked-server-only.ts
│   │   │   │       ├── secret.server.ts
│   │   │   │       └── window-size.client.tsx
│   │   │   ├── tests/
│   │   │   │   ├── error-mode.setup.ts
│   │   │   │   ├── error-mode.spec.ts
│   │   │   │   ├── import-protection.spec.ts
│   │   │   │   ├── utils/
│   │   │   │   │   └── isErrorMode.ts
│   │   │   │   ├── violations.setup.ts
│   │   │   │   └── violations.utils.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── import-protection-custom-config/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── backend-leak.tsx
│   │   │   │       ├── frontend-leak.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── custom-config.spec.ts
│   │   │   │   ├── error-mode.setup.ts
│   │   │   │   ├── error-mode.spec.ts
│   │   │   │   ├── utils/
│   │   │   │   │   └── isErrorMode.ts
│   │   │   │   ├── violations.setup.ts
│   │   │   │   └── violations.utils.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── query-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── queryOptions.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── loader-fetchQuery/
│   │   │   │   │   │   └── $type.tsx
│   │   │   │   │   ├── useQuery.tsx
│   │   │   │   │   └── useSuspenseQuery.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── with-loader.tsx
│   │   │   │   │   │   └── with-search.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── selective-ssr/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   ├── search.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── serialization-adapters/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── CustomError.ts
│   │   │   │   ├── data.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── server-function/
│   │   │   │   │   │   ├── custom-error.tsx
│   │   │   │   │   │   └── nested.tsx
│   │   │   │   │   └── ssr/
│   │   │   │   │       ├── data-only.tsx
│   │   │   │   │       ├── nested.tsx
│   │   │   │   │       └── stream.tsx
│   │   │   │   ├── start.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-functions/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── functions/
│   │   │   │   │   └── fnOnlyCalledByServer.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── abort-signal/
│   │   │   │   │   │   ├── $method.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── async-validation.tsx
│   │   │   │   │   ├── consistent.tsx
│   │   │   │   │   ├── cookies/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── set.tsx
│   │   │   │   │   ├── custom-fetch.tsx
│   │   │   │   │   ├── dead-code-preserve.tsx
│   │   │   │   │   ├── env-only.tsx
│   │   │   │   │   ├── factory/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── createBarServerFn.ts
│   │   │   │   │   │   │   ├── createFakeFn.ts
│   │   │   │   │   │   │   ├── createFooServerFn.ts
│   │   │   │   │   │   │   ├── functions.ts
│   │   │   │   │   │   │   ├── nestedReexportA.ts
│   │   │   │   │   │   │   ├── nestedReexportB.ts
│   │   │   │   │   │   │   ├── nestedReexportC.ts
│   │   │   │   │   │   │   ├── reexportIndex.ts
│   │   │   │   │   │   │   ├── reexportWrapper.ts
│   │   │   │   │   │   │   ├── starReexportIndex.ts
│   │   │   │   │   │   │   └── starReexportWrapper.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── formdata-context.tsx
│   │   │   │   │   ├── formdata-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.$name.tsx
│   │   │   │   │   ├── function-metadata/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── normalServerFn.ts
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── function-method/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── headers.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── isomorphic-fns.tsx
│   │   │   │   │   ├── method-not-allowed/
│   │   │   │   │   │   ├── $method.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── middleware/
│   │   │   │   │   │   ├── catch-handler-error.tsx
│   │   │   │   │   │   ├── client-middleware-router.tsx
│   │   │   │   │   │   ├── function-metadata.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── middleware-factory.tsx
│   │   │   │   │   │   ├── redirect-with-middleware/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── target.tsx
│   │   │   │   │   │   ├── request-middleware.tsx
│   │   │   │   │   │   ├── send-serverFn.tsx
│   │   │   │   │   │   ├── server-import-middleware.tsx
│   │   │   │   │   │   └── unhandled-exception.tsx
│   │   │   │   │   ├── multipart.tsx
│   │   │   │   │   ├── primitives/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── raw-response.tsx
│   │   │   │   │   ├── redirect-test/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── redirect-test-ssr/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── return-null.tsx
│   │   │   │   │   ├── serialize-form-data.tsx
│   │   │   │   │   ├── server-fn-in-client-only-fn.tsx
│   │   │   │   │   ├── server-only-fn.tsx
│   │   │   │   │   ├── status.tsx
│   │   │   │   │   └── submit-post-formdata.tsx
│   │   │   │   ├── start.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── server-functions.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-functions-global-middleware/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── multiple-server-functions.tsx
│   │   │   │   │   ├── pathname-middleware.tsx
│   │   │   │   │   └── simple.tsx
│   │   │   │   ├── start.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── global-middleware.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── middleware-context.ts
│   │   │   │   │   │   ├── only-any.ts
│   │   │   │   │   │   └── params/
│   │   │   │   │   │       └── $foo/
│   │   │   │   │   │           ├── $bar.ts
│   │   │   │   │   │           └── route.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── merge-middleware-context.tsx
│   │   │   │   │   └── methods/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       ├── only-any.tsx
│   │   │   │   │       └── route.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── server-routes.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-routes-global-middleware/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── server-route-with-middleware.tsx
│   │   │   │   ├── start.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── server-routes-global-middleware.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── spa-mode/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── split-base-and-basepath/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── prod-server.js
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── static-server-functions/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── posts.index.tsx
│   │   │   │       └── posts.tsx
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── streaming-ssr/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── concurrent.tsx
│   │   │   │       ├── deferred.tsx
│   │   │   │       ├── fast-serial.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── many-promises.tsx
│   │   │   │       ├── nested-deferred.tsx
│   │   │   │       ├── query-heavy.tsx
│   │   │   │       ├── slow-render.tsx
│   │   │   │       ├── stream.tsx
│   │   │   │       └── sync-only.tsx
│   │   │   ├── tests/
│   │   │   │   ├── client-navigation.spec.ts
│   │   │   │   ├── concurrent.spec.ts
│   │   │   │   ├── deferred.spec.ts
│   │   │   │   ├── fast-serial.spec.ts
│   │   │   │   ├── fixtures.ts
│   │   │   │   ├── home.spec.ts
│   │   │   │   ├── many-promises.spec.ts
│   │   │   │   ├── nested-deferred.spec.ts
│   │   │   │   ├── query-heavy.spec.ts
│   │   │   │   ├── slow-render.spec.ts
│   │   │   │   ├── stream.spec.ts
│   │   │   │   └── sync-only.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── transform-asset-urls/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.module.css
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── server.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   ├── cdn-server.mjs
│   │   │   │   └── transform-asset-urls.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── virtual-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── pipe.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── special-characters.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   └── website/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .prettierignore
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── public/
│   │       │   └── site.webmanifest
│   │       ├── src/
│   │       │   ├── components/
│   │       │   │   ├── DefaultCatchBoundary.tsx
│   │       │   │   └── NotFound.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── router.tsx
│   │       │   ├── routes/
│   │       │   │   ├── $project.$version.docs.framework.$framework.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.examples.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.index.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.{$}[.]md.tsx
│   │       │   │   ├── $project.$version.docs.index.tsx
│   │       │   │   ├── $project.index.tsx
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── _library.$project.$version.index.tsx
│   │       │   │   ├── _library.$project.tsx
│   │       │   │   ├── _library.index.tsx
│   │       │   │   └── _library.tsx
│   │       │   ├── server/
│   │       │   │   ├── document.tsx
│   │       │   │   └── projects.tsx
│   │       │   ├── styles/
│   │       │   │   └── app.css
│   │       │   └── utils/
│   │       │       └── seo.ts
│   │       ├── tests/
│   │       │   └── app.spec.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   ├── solid-router/
│   │   ├── basepath-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── reload-document.test.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── esbuild.config.js
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── (group)/
│   │   │   │       │   ├── _layout.inside.tsx
│   │   │   │       │   ├── _layout.tsx
│   │   │   │       │   ├── lazyinside.lazy.tsx
│   │   │   │       │   └── lazyinside.tsx
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── _layout/
│   │   │   │       │   ├── _layout-2/
│   │   │   │       │   │   ├── layout-a.tsx
│   │   │   │       │   │   └── layout-b.tsx
│   │   │   │       │   └── _layout-2.tsx
│   │   │   │       ├── _layout.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── posts.$postId.tsx
│   │   │   │       ├── posts.index.tsx
│   │   │   │       └── posts.tsx
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   └── tsconfig.json
│   │   ├── basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.lazy.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── anchor.tsx
│   │   │   │   │   ├── component-types-test.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── hover-preload-hash.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── masks.admin.$userId.tsx
│   │   │   │   │   ├── masks.public.$username.tsx
│   │   │   │   │   ├── masks.tsx
│   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.$foo_.qux.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.index.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar_.qux.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $baz.foo.tsx
│   │   │   │   │   │   │   ├── $baz.index.tsx
│   │   │   │   │   │   │   ├── $baz.route.tsx
│   │   │   │   │   │   │   ├── $baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   ├── baz.foo.tsx
│   │   │   │   │   │   │   ├── baz.index.tsx
│   │   │   │   │   │   │   ├── baz.route.tsx
│   │   │   │   │   │   │   ├── baz_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── prefix/
│   │   │   │   │   │   │   ├── prefix{$baz}.foo.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.index.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}.route.tsx
│   │   │   │   │   │   │   ├── prefix{$baz}_.bar.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   └── suffix/
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── {$baz}suffix.foo.tsx
│   │   │   │   │   │       ├── {$baz}suffix.index.tsx
│   │   │   │   │   │       ├── {$baz}suffix.route.tsx
│   │   │   │   │   │       └── {$baz}suffix_.bar.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── params-ps/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── $foo/
│   │   │   │   │   │   │   │   ├── $bar.$baz.tsx
│   │   │   │   │   │   │   │   ├── $bar.route.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── prefix{$foo}.tsx
│   │   │   │   │   │   │   └── {$foo}suffix.tsx
│   │   │   │   │   │   ├── non-nested/
│   │   │   │   │   │   │   ├── $foo_/
│   │   │   │   │   │   │   │   ├── $bar.tsx
│   │   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   │   └── route.tsx
│   │   │   │   │   │   └── wildcard/
│   │   │   │   │   │       ├── $.tsx
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── prefix@대{$}.tsx
│   │   │   │   │   │       ├── prefix{$}.tsx
│   │   │   │   │   │       ├── {$}suffix.tsx
│   │   │   │   │   │       └── {$}suffix@대.tsx
│   │   │   │   │   ├── params.single.$value.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── preload/
│   │   │   │   │   │       ├── first.tsx
│   │   │   │   │   │       ├── second.tsx
│   │   │   │   │   │       └── third.tsx
│   │   │   │   │   ├── relative/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── link/
│   │   │   │   │   │   │   ├── nested/
│   │   │   │   │   │   │   │   ├── deep/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── path/
│   │   │   │   │   │   │   │   ├── $path/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── relative-link-a.tsx
│   │   │   │   │   │   │   ├── relative-link-b.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── with-search/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   └── useNavigate/
│   │   │   │   │   │       ├── nested/
│   │   │   │   │   │       │   ├── deep/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── path/
│   │   │   │   │   │       │   ├── $path/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── relative-useNavigate-a.tsx
│   │   │   │   │   │       ├── relative-useNavigate-b.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       └── with-search/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   ├── count/
│   │   │   │   │   │   │   └── create-resource.tsx
│   │   │   │   │   │   └── typing/
│   │   │   │   │   │       └── create-resource.tsx
│   │   │   │   │   └── 대한민국/
│   │   │   │   │       ├── route.tsx
│   │   │   │   │       ├── wildcard.$.tsx
│   │   │   │   │       └── 🚀.$id.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── hover-preload-hash.spec.ts
│   │   │   │   ├── mask.spec.ts
│   │   │   │   ├── non-nested-paths.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── relative.spec.ts
│   │   │   │   ├── scroll-into-view.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── transition.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-file-based-code-splitting/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── viewport-test.tsx
│   │   │   │   │   └── without-loader.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── preload.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── router-events.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-solid-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-solid-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── generator-cli-only/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── tsr.config.json
│   │   │   └── vite.config.js
│   │   ├── js-only-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.jsx
│   │   │   │   ├── posts.js
│   │   │   │   ├── routeTree.gen.js
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.jsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.jsx
│   │   │   │   │   │   │   └── route-b.jsx
│   │   │   │   │   │   └── _nested-layout.jsx
│   │   │   │   │   ├── _pathlessLayout.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   ├── posts.$postId.jsx
│   │   │   │   │   ├── posts.index.jsx
│   │   │   │   │   └── posts.route.jsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── rspack-basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── rspack-basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── routes.ts
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── scroll-restoration-sandbox-vite/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.browser.config.ts
│   │   │   ├── playwright.hash.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── lazy-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-page.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.tsx
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── page-with-search.tsx
│   │   │   │   │   │   └── virtual-page.lazy.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── sentry-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   └── view-transitions/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .vscode/
│   │       │   └── settings.json
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── src/
│   │       │   ├── main.tsx
│   │       │   ├── posts.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── routes/
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── how-it-works.tsx
│   │       │   │   ├── index.tsx
│   │       │   │   ├── posts.$postId.tsx
│   │       │   │   ├── posts.index.tsx
│   │       │   │   └── posts.route.tsx
│   │       │   └── styles.css
│   │       ├── tests/
│   │       │   ├── app.spec.ts
│   │       │   └── setup/
│   │       │       ├── global.setup.ts
│   │       │       └── global.teardown.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.js
│   ├── solid-start/
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── NotFound.tsx
│   │   │   │   │   ├── PostErrorComponent.tsx
│   │   │   │   │   ├── RedirectOnClick.tsx
│   │   │   │   │   ├── UserErrorComponent.tsx
│   │   │   │   │   └── throwRedirect.ts
│   │   │   │   ├── raw-stream-fns.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── users.$userId.ts
│   │   │   │   │   │   └── users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── inline-scripts.tsx
│   │   │   │   │   ├── links.tsx
│   │   │   │   │   ├── multi-cookie-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── not-found/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── parent-boundary/
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── via-beforeLoad.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── via-beforeLoad-target-root.tsx
│   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── raw-stream/
│   │   │   │   │   │   ├── client-call.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── ssr-binary-hint.tsx
│   │   │   │   │   │   ├── ssr-mixed.tsx
│   │   │   │   │   │   ├── ssr-multiple.tsx
│   │   │   │   │   │   ├── ssr-single.tsx
│   │   │   │   │   │   └── ssr-text-hint.tsx
│   │   │   │   │   ├── raw-stream.tsx
│   │   │   │   │   ├── redirect/
│   │   │   │   │   │   ├── $target/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── serverFn/
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   │   ├── via-loader.tsx
│   │   │   │   │   │   │   │   └── via-useServerFn.tsx
│   │   │   │   │   │   │   ├── via-beforeLoad.tsx
│   │   │   │   │   │   │   └── via-loader.tsx
│   │   │   │   │   │   ├── $target.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── scripts.tsx
│   │   │   │   │   ├── search-params/
│   │   │   │   │   │   ├── default.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── loader-throws-redirect.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── specialChars/
│   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   ├── hash.tsx
│   │   │   │   │   │   ├── malformed/
│   │   │   │   │   │   │   ├── $param.tsx
│   │   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   │   └── search.tsx
│   │   │   │   │   │   ├── route.tsx
│   │   │   │   │   │   ├── search.tsx
│   │   │   │   │   │   └── 대한민국.tsx
│   │   │   │   │   ├── stream.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   ├── count/
│   │   │   │   │   │   │   └── create-resource.tsx
│   │   │   │   │   │   └── typing/
│   │   │   │   │   │       └── create-resource.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   ├── utils/
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── seo.ts
│   │   │   │   │   └── users.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   ├── not-found.spec.ts
│   │   │   │   ├── prerendering.spec.ts
│   │   │   │   ├── redirect.spec.ts
│   │   │   │   ├── script-duplication.spec.ts
│   │   │   │   ├── search-params.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   ├── special-characters.spec.ts
│   │   │   │   ├── streaming.spec.ts
│   │   │   │   ├── transition.spec.ts
│   │   │   │   └── utils/
│   │   │   │       ├── isPrerender.ts
│   │   │   │       ├── isPreview.ts
│   │   │   │       └── isSpaMode.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-auth/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── prisma/
│   │   │   │   ├── migrations/
│   │   │   │   │   ├── 20240811183753_init/
│   │   │   │   │   │   └── migration.sql
│   │   │   │   │   └── migration_lock.toml
│   │   │   │   └── schema.prisma
│   │   │   ├── prisma.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Auth.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── Login.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useMutation.ts
│   │   │   │   ├── prisma-generated/
│   │   │   │   │   ├── browser.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── commonInputTypes.ts
│   │   │   │   │   ├── enums.ts
│   │   │   │   │   ├── internal/
│   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   ├── prismaNamespace.ts
│   │   │   │   │   │   └── prismaNamespaceBrowser.ts
│   │   │   │   │   ├── models/
│   │   │   │   │   │   └── User.ts
│   │   │   │   │   └── models.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _authed/
│   │   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   ├── _authed.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── login.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   └── signup.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.ts
│   │   │   │       ├── prisma.ts
│   │   │   │       ├── seo.ts
│   │   │   │       └── session.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── mock-db-setup.test.ts
│   │   │   │   └── mock-db-teardown.test.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-cloudflare/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── static.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       └── seo.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── vite.config.ts
│   │   │   ├── worker-configuration.d.ts
│   │   │   └── wrangler.jsonc
│   │   ├── basic-solid-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── users.$id.ts
│   │   │   │   │   ├── api.users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── suspense-transition.tsx
│   │   │   │   │   ├── transition/
│   │   │   │   │   │   └── count/
│   │   │   │   │   │       └── query.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── transition.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-tsr-config/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   └── app/
│   │   │   │       ├── routeTree.gen.ts
│   │   │   │       ├── router.tsx
│   │   │   │       ├── routes/
│   │   │   │       │   ├── __root.tsx
│   │   │   │       │   └── index.tsx
│   │   │   │       └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── csp/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── external.css
│   │   │   │   └── external.js
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   └── csp.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── css-modules/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── modules.tsx
│   │   │   │   │   └── sass-mixin.tsx
│   │   │   │   └── styles/
│   │   │   │       ├── app.scss
│   │   │   │       ├── card.module.css
│   │   │   │       ├── center-mixin.scss
│   │   │   │       ├── global.css
│   │   │   │       └── mixin-consumer.scss
│   │   │   ├── tests/
│   │   │   │   ├── css.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── custom-basepath/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── express-server.ts
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── CustomMessage.tsx
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   ├── NotFound.tsx
│   │   │   │   │   ├── PostErrorComponent.tsx
│   │   │   │   │   └── UserErrorComponent.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── users.$userId.ts
│   │   │   │   │   │   └── users.ts
│   │   │   │   │   ├── deferred.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── logout.tsx
│   │   │   │   │   ├── navigate-test.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.deep.tsx
│   │   │   │   │   ├── redirect.index.tsx
│   │   │   │   │   ├── redirect.throw-it.tsx
│   │   │   │   │   ├── users.$userId.tsx
│   │   │   │   │   ├── users.index.tsx
│   │   │   │   │   └── users.tsx
│   │   │   │   ├── server.ts
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   ├── utils/
│   │   │   │   │   ├── basepath.ts
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── seo.ts
│   │   │   │   │   └── users.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── navigation.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── query-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── queryOptions.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── loader-fetchQuery/
│   │   │   │   │   │   └── $type.tsx
│   │   │   │   │   └── useQuery.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── with-loader.tsx
│   │   │   │   │   │   └── with-search.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   ├── utils/
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── seo.ts
│   │   │   │   │   └── users.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── selective-ssr/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   ├── search.ts
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── serialization-adapters/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── CustomError.ts
│   │   │   │   ├── data.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── server-function/
│   │   │   │   │   │   ├── custom-error.tsx
│   │   │   │   │   │   └── nested.tsx
│   │   │   │   │   └── ssr/
│   │   │   │   │       ├── data-only.tsx
│   │   │   │   │       ├── nested.tsx
│   │   │   │   │       └── stream.tsx
│   │   │   │   ├── start.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-functions/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── abort-signal/
│   │   │   │   │   │   ├── $method.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── consistent.tsx
│   │   │   │   │   ├── cookies/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── set.tsx
│   │   │   │   │   ├── dead-code-preserve.tsx
│   │   │   │   │   ├── env-only.tsx
│   │   │   │   │   ├── factory/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── createBarServerFn.ts
│   │   │   │   │   │   │   ├── createFakeFn.ts
│   │   │   │   │   │   │   ├── createFooServerFn.ts
│   │   │   │   │   │   │   └── functions.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── formdata-redirect/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.$name.tsx
│   │   │   │   │   ├── function-metadata/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   ├── normalServerFn.ts
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── function-method/
│   │   │   │   │   │   ├── -functions/
│   │   │   │   │   │   │   └── serverFnCallingServerFn.ts
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── headers.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── isomorphic-fns.tsx
│   │   │   │   │   ├── middleware/
│   │   │   │   │   │   ├── client-middleware-router.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── request-middleware.tsx
│   │   │   │   │   │   └── send-serverFn.tsx
│   │   │   │   │   ├── multipart.tsx
│   │   │   │   │   ├── primitives/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── raw-response.tsx
│   │   │   │   │   ├── redirect-test/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── redirect-test-ssr/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── target.tsx
│   │   │   │   │   ├── return-null.tsx
│   │   │   │   │   ├── serialize-form-data.tsx
│   │   │   │   │   ├── status.tsx
│   │   │   │   │   └── submit-post-formdata.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   └── server-functions.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── server-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── DefaultCatchBoundary.tsx
│   │   │   │   │   └── NotFound.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── api/
│   │   │   │   │   │   ├── middleware-context.ts
│   │   │   │   │   │   ├── only-any.ts
│   │   │   │   │   │   └── params/
│   │   │   │   │   │       └── $foo/
│   │   │   │   │   │           ├── $bar.ts
│   │   │   │   │   │           └── route.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── merge-middleware-context.tsx
│   │   │   │   │   └── methods/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       ├── only-any.tsx
│   │   │   │   │       └── route.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tests/
│   │   │   │   └── server-routes.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── spa-mode/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles/
│   │   │   │       └── app.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── virtual-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .prettierignore
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── public/
│   │   │   │   ├── script.js
│   │   │   │   ├── script2.js
│   │   │   │   └── site.webmanifest
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── pipe.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   ├── styles/
│   │   │   │   │   └── app.css
│   │   │   │   └── utils/
│   │   │   │       ├── posts.tsx
│   │   │   │       ├── seo.ts
│   │   │   │       └── users.tsx
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── setup/
│   │   │   │   │   ├── global.setup.ts
│   │   │   │   │   └── global.teardown.ts
│   │   │   │   └── special-characters.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   └── website/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .prettierignore
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── public/
│   │       │   └── site.webmanifest
│   │       ├── src/
│   │       │   ├── components/
│   │       │   │   ├── DefaultCatchBoundary.tsx
│   │       │   │   └── NotFound.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── router.tsx
│   │       │   ├── routes/
│   │       │   │   ├── $project.$version.docs.framework.$framework.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.examples.$.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.index.tsx
│   │       │   │   ├── $project.$version.docs.framework.$framework.tsx
│   │       │   │   ├── $project.$version.docs.index.tsx
│   │       │   │   ├── $project.index.tsx
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── _library.$project.$version.index.tsx
│   │       │   │   ├── _library.$project.tsx
│   │       │   │   ├── _library.index.tsx
│   │       │   │   └── _library.tsx
│   │       │   ├── server/
│   │       │   │   ├── document.tsx
│   │       │   │   └── projects.tsx
│   │       │   ├── styles/
│   │       │   │   └── app.css
│   │       │   ├── utils/
│   │       │   │   └── seo.ts
│   │       │   └── vite-env.d.ts
│   │       ├── tests/
│   │       │   └── app.spec.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.ts
│   ├── vue-router/
│   │   ├── basepath-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── tests/
│   │   │   │   ├── reload-document.test.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   ├── params.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── EditingAComponent.tsx
│   │   │   │   │   ├── EditingBComponent.tsx
│   │   │   │   │   ├── NotFoundComponent.vue
│   │   │   │   │   ├── NotRemountDepsComponent.tsx
│   │   │   │   │   ├── PostErrorComponent.vue
│   │   │   │   │   ├── RemountDepsComponent.tsx
│   │   │   │   │   └── VueLogo.vue
│   │   │   │   ├── esbuild.config.js
│   │   │   │   ├── esbuild.run.js
│   │   │   │   ├── jsx-shim.ts
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── sfcComponent.component.vue
│   │   │   │   │   ├── sfcComponent.tsx
│   │   │   │   │   └── 대한민국.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── vue-shims.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── basic-file-based-jsx/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── EditingAComponent.tsx
│   │   │   │   │   ├── EditingBComponent.tsx
│   │   │   │   │   ├── NotFoundComponent.vue
│   │   │   │   │   ├── NotRemountDepsComponent.tsx
│   │   │   │   │   ├── PostErrorComponent.vue
│   │   │   │   │   ├── RemountDepsComponent.tsx
│   │   │   │   │   └── VueLogo.vue
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   └── onlyrouteinside.tsx
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.insidelayout.tsx
│   │   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   │   ├── inside.tsx
│   │   │   │   │   │   ├── lazyinside.tsx
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       └── inside.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── editing-a.tsx
│   │   │   │   │   ├── editing-b.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── notRemountDeps.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   ├── posts.tsx
│   │   │   │   │   ├── posts_.$postId.edit.tsx
│   │   │   │   │   ├── remountDeps.tsx
│   │   │   │   │   ├── sfcComponent.component.vue
│   │   │   │   │   ├── sfcComponent.tsx
│   │   │   │   │   └── 대한민국.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-file-based-sfc/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── EditingAComponent.tsx
│   │   │   │   │   ├── EditingBComponent.tsx
│   │   │   │   │   ├── NotFoundComponent.vue
│   │   │   │   │   ├── NotRemountDepsComponent.tsx
│   │   │   │   │   ├── PostErrorComponent.vue
│   │   │   │   │   ├── RemountDepsComponent.tsx
│   │   │   │   │   └── VueLogo.vue
│   │   │   │   ├── main.ts
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (another-group)/
│   │   │   │   │   │   ├── onlyrouteinside.component.vue
│   │   │   │   │   │   └── onlyrouteinside.ts
│   │   │   │   │   ├── (group)/
│   │   │   │   │   │   ├── _layout.component.vue
│   │   │   │   │   │   ├── _layout.insidelayout.component.vue
│   │   │   │   │   │   ├── _layout.insidelayout.ts
│   │   │   │   │   │   ├── _layout.ts
│   │   │   │   │   │   ├── inside.component.vue
│   │   │   │   │   │   ├── inside.ts
│   │   │   │   │   │   ├── lazyinside.component.vue
│   │   │   │   │   │   ├── lazyinside.ts
│   │   │   │   │   │   └── subfolder/
│   │   │   │   │   │       ├── inside.component.vue
│   │   │   │   │   │       └── inside.ts
│   │   │   │   │   ├── __root.component.vue
│   │   │   │   │   ├── __root.notFoundComponent.vue
│   │   │   │   │   ├── __root.ts
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.component.vue
│   │   │   │   │   │   │   ├── layout-a.ts
│   │   │   │   │   │   │   ├── layout-b.component.vue
│   │   │   │   │   │   │   └── layout-b.ts
│   │   │   │   │   │   ├── _layout-2.component.vue
│   │   │   │   │   │   └── _layout-2.ts
│   │   │   │   │   ├── _layout.component.vue
│   │   │   │   │   ├── _layout.ts
│   │   │   │   │   ├── editing-a.component.vue
│   │   │   │   │   ├── editing-a.ts
│   │   │   │   │   ├── editing-b.component.vue
│   │   │   │   │   ├── editing-b.ts
│   │   │   │   │   ├── index.component.vue
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── notRemountDeps.component.vue
│   │   │   │   │   ├── notRemountDeps.ts
│   │   │   │   │   ├── posts.$postId.component.vue
│   │   │   │   │   ├── posts.$postId.errorComponent.vue
│   │   │   │   │   ├── posts.$postId.ts
│   │   │   │   │   ├── posts.component.vue
│   │   │   │   │   ├── posts.index.component.vue
│   │   │   │   │   ├── posts.index.ts
│   │   │   │   │   ├── posts.ts
│   │   │   │   │   ├── posts_.$postId.edit.component.vue
│   │   │   │   │   ├── posts_.$postId.edit.ts
│   │   │   │   │   ├── remountDeps.component.vue
│   │   │   │   │   ├── remountDeps.ts
│   │   │   │   │   ├── 대한민국.component.vue
│   │   │   │   │   └── 대한민국.ts
│   │   │   │   ├── styles.css
│   │   │   │   └── vue-shims.d.ts
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-scroll-restoration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── router-events.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-vue-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-vue-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── generator-cli-only/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   ├── tsr.config.json
│   │   │   └── vite.config.js
│   │   ├── js-only-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.jsx
│   │   │   │   ├── posts.js
│   │   │   │   ├── routeTree.gen.js
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.jsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.jsx
│   │   │   │   │   │   │   └── route-b.jsx
│   │   │   │   │   │   └── _nested-layout.jsx
│   │   │   │   │   ├── _pathlessLayout.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   ├── posts.$postId.jsx
│   │   │   │   │   ├── posts.index.jsx
│   │   │   │   │   └── posts.route.jsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── rspack-basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── rspack-basic-virtual-named-export-config-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── postcss.config.mjs
│   │   │   ├── routes.ts
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── env.d.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   └── tsconfig.json
│   │   ├── scroll-restoration-sandbox-vite/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.browser.config.ts
│   │   │   ├── playwright.hash.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (tests)/
│   │   │   │   │   │   ├── lazy-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-page.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.lazy.tsx
│   │   │   │   │   │   ├── lazy-with-loader-page.tsx
│   │   │   │   │   │   ├── normal-page.tsx
│   │   │   │   │   │   ├── page-with-search.tsx
│   │   │   │   │   │   └── virtual-page.lazy.tsx
│   │   │   │   │   ├── -components/
│   │   │   │   │   │   └── scroll-block.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   ├── app.spec.ts
│   │   │   │   └── setup/
│   │   │   │       ├── global.setup.ts
│   │   │   │       └── global.teardown.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── sentry-integration/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tests/
│   │   │   │   └── app.spec.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   └── view-transitions/
│   │       ├── .devcontainer/
│   │       │   └── devcontainer.json
│   │       ├── .gitignore
│   │       ├── .vscode/
│   │       │   └── settings.json
│   │       ├── README.md
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── playwright.config.ts
│   │       ├── src/
│   │       │   ├── main.tsx
│   │       │   ├── posts.tsx
│   │       │   ├── routeTree.gen.ts
│   │       │   ├── routes/
│   │       │   │   ├── __root.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── how-it-works.tsx
│   │       │   │   ├── index.tsx
│   │       │   │   ├── posts.$postId.tsx
│   │       │   │   ├── posts.index.tsx
│   │       │   │   └── posts.route.tsx
│   │       │   └── styles.css
│   │       ├── tests/
│   │       │   ├── app.spec.ts
│   │       │   ├── setup/
│   │       │   │   ├── global.setup.ts
│   │       │   │   └── global.teardown.ts
│   │       │   └── view-transitions.spec.ts
│   │       ├── tsconfig.json
│   │       └── vite.config.js
│   └── vue-start/
│       ├── basic/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── server.js
│       │   ├── src/
│       │   │   ├── client.tsx
│       │   │   ├── components/
│       │   │   │   ├── CustomMessage.tsx
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   ├── NotFound.tsx
│       │   │   │   ├── PostErrorComponent.tsx
│       │   │   │   ├── RedirectOnClick.tsx
│       │   │   │   ├── UserErrorComponent.tsx
│       │   │   │   └── throwRedirect.ts
│       │   │   ├── raw-stream-fns.ts
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── _layout/
│       │   │   │   │   ├── _layout-2/
│       │   │   │   │   │   ├── layout-a.tsx
│       │   │   │   │   │   └── layout-b.tsx
│       │   │   │   │   └── _layout-2.tsx
│       │   │   │   ├── _layout.tsx
│       │   │   │   ├── api/
│       │   │   │   │   ├── users.$userId.ts
│       │   │   │   │   └── users.ts
│       │   │   │   ├── deferred.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── inline-scripts.tsx
│       │   │   │   ├── links.tsx
│       │   │   │   ├── multi-cookie-redirect/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.tsx
│       │   │   │   ├── not-found/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── parent-boundary/
│       │   │   │   │   │   ├── route.tsx
│       │   │   │   │   │   └── via-beforeLoad.tsx
│       │   │   │   │   ├── route.tsx
│       │   │   │   │   ├── via-beforeLoad-target-root.tsx
│       │   │   │   │   ├── via-beforeLoad.tsx
│       │   │   │   │   └── via-loader.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   ├── posts.index.tsx
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── posts_.$postId.deep.tsx
│       │   │   │   ├── raw-stream/
│       │   │   │   │   ├── client-call.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── ssr-binary-hint.tsx
│       │   │   │   │   ├── ssr-mixed.tsx
│       │   │   │   │   ├── ssr-multiple.tsx
│       │   │   │   │   ├── ssr-single.tsx
│       │   │   │   │   └── ssr-text-hint.tsx
│       │   │   │   ├── raw-stream.tsx
│       │   │   │   ├── redirect/
│       │   │   │   │   ├── $target/
│       │   │   │   │   │   ├── index.tsx
│       │   │   │   │   │   ├── serverFn/
│       │   │   │   │   │   │   ├── index.tsx
│       │   │   │   │   │   │   ├── via-beforeLoad.tsx
│       │   │   │   │   │   │   ├── via-loader.tsx
│       │   │   │   │   │   │   └── via-useServerFn.tsx
│       │   │   │   │   │   ├── via-beforeLoad.tsx
│       │   │   │   │   │   └── via-loader.tsx
│       │   │   │   │   ├── $target.tsx
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── scripts.tsx
│       │   │   │   ├── search-params/
│       │   │   │   │   ├── default.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── loader-throws-redirect.tsx
│       │   │   │   │   └── route.tsx
│       │   │   │   ├── specialChars/
│       │   │   │   │   ├── $param.tsx
│       │   │   │   │   ├── hash.tsx
│       │   │   │   │   ├── malformed/
│       │   │   │   │   │   ├── $param.tsx
│       │   │   │   │   │   ├── route.tsx
│       │   │   │   │   │   └── search.tsx
│       │   │   │   │   ├── route.tsx
│       │   │   │   │   ├── search.tsx
│       │   │   │   │   └── 대한민국.tsx
│       │   │   │   ├── stream.tsx
│       │   │   │   ├── users.$userId.tsx
│       │   │   │   ├── users.index.tsx
│       │   │   │   └── users.tsx
│       │   │   ├── server.ts
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   ├── utils/
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── seo.ts
│       │   │   │   └── users.tsx
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   ├── navigation.spec.ts
│       │   │   ├── not-found.spec.ts
│       │   │   ├── prerendering.spec.ts
│       │   │   ├── redirect.spec.ts
│       │   │   ├── script-duplication.spec.ts
│       │   │   ├── search-params.spec.ts
│       │   │   ├── setup/
│       │   │   │   ├── global.setup.ts
│       │   │   │   └── global.teardown.ts
│       │   │   ├── special-characters.spec.ts
│       │   │   ├── streaming.spec.ts
│       │   │   └── utils/
│       │   │       ├── isPrerender.ts
│       │   │       ├── isPreview.ts
│       │   │       └── isSpaMode.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── basic-auth/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .env
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── prisma/
│       │   │   ├── migrations/
│       │   │   │   ├── 20240811183753_init/
│       │   │   │   │   └── migration.sql
│       │   │   │   └── migration_lock.toml
│       │   │   └── schema.prisma
│       │   ├── prisma.config.ts
│       │   ├── public/
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── Auth.tsx
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   ├── Login.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── hooks/
│       │   │   │   └── useMutation.ts
│       │   │   ├── prisma-generated/
│       │   │   │   ├── browser.ts
│       │   │   │   ├── client.ts
│       │   │   │   ├── commonInputTypes.ts
│       │   │   │   ├── enums.ts
│       │   │   │   ├── internal/
│       │   │   │   │   ├── class.ts
│       │   │   │   │   ├── prismaNamespace.ts
│       │   │   │   │   └── prismaNamespaceBrowser.ts
│       │   │   │   ├── models/
│       │   │   │   │   └── User.ts
│       │   │   │   └── models.ts
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── _authed/
│       │   │   │   │   ├── posts.$postId.tsx
│       │   │   │   │   ├── posts.index.tsx
│       │   │   │   │   └── posts.tsx
│       │   │   │   ├── _authed.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── login.tsx
│       │   │   │   ├── logout.tsx
│       │   │   │   └── signup.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       ├── posts.ts
│       │   │       ├── prisma.ts
│       │   │       ├── seo.ts
│       │   │       └── session.ts
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   ├── mock-db-setup.test.ts
│       │   │   └── mock-db-teardown.test.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── basic-cloudflare/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   └── static.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       └── seo.ts
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   ├── vite.config.ts
│       │   ├── worker-configuration.d.ts
│       │   └── wrangler.jsonc
│       ├── basic-tsr-config/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── README.md
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   └── app/
│       │   │       ├── routeTree.gen.ts
│       │   │       ├── router.tsx
│       │   │       ├── routes/
│       │   │       │   ├── __root.tsx
│       │   │       │   └── index.tsx
│       │   │       └── vite-env.d.ts
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── basic-vue-query/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── _layout/
│       │   │   │   │   ├── _layout-2/
│       │   │   │   │   │   ├── layout-a.tsx
│       │   │   │   │   │   └── layout-b.tsx
│       │   │   │   │   └── _layout-2.tsx
│       │   │   │   ├── _layout.tsx
│       │   │   │   ├── api/
│       │   │   │   │   └── users.$id.ts
│       │   │   │   ├── api.users.ts
│       │   │   │   ├── deferred.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   ├── posts.index.tsx
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── posts_.$postId.deep.tsx
│       │   │   │   ├── suspense-transition.tsx
│       │   │   │   ├── transition/
│       │   │   │   │   └── count/
│       │   │   │   │       └── query.tsx
│       │   │   │   ├── users.$userId.tsx
│       │   │   │   ├── users.index.tsx
│       │   │   │   └── users.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       ├── posts.tsx
│       │   │       ├── seo.ts
│       │   │       └── users.tsx
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   ├── setup/
│       │   │   │   ├── global.setup.ts
│       │   │   │   └── global.teardown.ts
│       │   │   └── transition.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── css-modules/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── modules.tsx
│       │   │   │   └── sass-mixin.tsx
│       │   │   └── styles/
│       │   │       ├── app.scss
│       │   │       ├── card.module.css
│       │   │       ├── center-mixin.scss
│       │   │       ├── global.css
│       │   │       └── mixin-consumer.scss
│       │   ├── tests/
│       │   │   ├── css.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── custom-basepath/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── express-server.ts
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── CustomMessage.tsx
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   ├── NotFound.tsx
│       │   │   │   ├── PostErrorComponent.tsx
│       │   │   │   └── UserErrorComponent.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── api/
│       │   │   │   │   ├── users.$userId.ts
│       │   │   │   │   └── users.ts
│       │   │   │   ├── deferred.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── logout.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   ├── posts.index.tsx
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── posts_.$postId.deep.tsx
│       │   │   │   ├── redirect.index.tsx
│       │   │   │   ├── redirect.throw-it.tsx
│       │   │   │   ├── users.$userId.tsx
│       │   │   │   ├── users.index.tsx
│       │   │   │   └── users.tsx
│       │   │   ├── server.ts
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   ├── utils/
│       │   │   │   ├── basepath.ts
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── seo.ts
│       │   │   │   └── users.tsx
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   ├── navigation.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── query-integration/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── queryOptions.ts
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── loader-fetchQuery/
│       │   │   │   │   └── $type.tsx
│       │   │   │   └── useQuery.tsx
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── scroll-restoration/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── (tests)/
│       │   │   │   │   ├── normal-page.tsx
│       │   │   │   │   ├── with-loader.tsx
│       │   │   │   │   └── with-search.tsx
│       │   │   │   ├── -components/
│       │   │   │   │   └── scroll-block.tsx
│       │   │   │   ├── __root.tsx
│       │   │   │   └── index.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   ├── utils/
│       │   │   │   ├── posts.tsx
│       │   │   │   ├── seo.ts
│       │   │   │   └── users.tsx
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   └── setup/
│       │   │       ├── global.setup.ts
│       │   │       └── global.teardown.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── selective-ssr/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   └── posts.tsx
│       │   │   ├── search.ts
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── serialization-adapters/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── CustomError.ts
│       │   │   ├── data.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── server-function/
│       │   │   │   │   ├── custom-error.tsx
│       │   │   │   │   └── nested.tsx
│       │   │   │   └── ssr/
│       │   │   │       ├── data-only.tsx
│       │   │   │       ├── nested.tsx
│       │   │   │       └── stream.tsx
│       │   │   ├── start.tsx
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── server-functions/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── abort-signal.tsx
│       │   │   │   ├── consistent.tsx
│       │   │   │   ├── cookies/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── set.tsx
│       │   │   │   ├── dead-code-preserve.tsx
│       │   │   │   ├── env-only.tsx
│       │   │   │   ├── factory/
│       │   │   │   │   ├── -functions/
│       │   │   │   │   │   ├── createBarServerFn.ts
│       │   │   │   │   │   ├── createFakeFn.ts
│       │   │   │   │   │   ├── createFooServerFn.ts
│       │   │   │   │   │   └── functions.ts
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── formdata-redirect/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.$name.tsx
│       │   │   │   ├── function-metadata/
│       │   │   │   │   ├── -functions/
│       │   │   │   │   │   ├── normalServerFn.ts
│       │   │   │   │   │   └── serverFnCallingServerFn.ts
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── function-method/
│       │   │   │   │   ├── -functions/
│       │   │   │   │   │   └── serverFnCallingServerFn.ts
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── headers.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── isomorphic-fns.tsx
│       │   │   │   ├── middleware/
│       │   │   │   │   ├── client-middleware-router.tsx
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   ├── request-middleware.tsx
│       │   │   │   │   └── send-serverFn.tsx
│       │   │   │   ├── multipart.tsx
│       │   │   │   ├── primitives/
│       │   │   │   │   └── index.tsx
│       │   │   │   ├── raw-response.tsx
│       │   │   │   ├── redirect-test/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.tsx
│       │   │   │   ├── redirect-test-ssr/
│       │   │   │   │   ├── index.tsx
│       │   │   │   │   └── target.tsx
│       │   │   │   ├── return-null.tsx
│       │   │   │   ├── serialize-form-data.tsx
│       │   │   │   ├── status.tsx
│       │   │   │   └── submit-post-formdata.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   └── server-functions.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── server-routes/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── components/
│       │   │   │   ├── DefaultCatchBoundary.tsx
│       │   │   │   └── NotFound.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── api/
│       │   │   │   │   ├── middleware-context.ts
│       │   │   │   │   ├── only-any.ts
│       │   │   │   │   └── params/
│       │   │   │   │       └── $foo/
│       │   │   │   │           ├── $bar.ts
│       │   │   │   │           └── route.ts
│       │   │   │   ├── index.tsx
│       │   │   │   ├── merge-middleware-context.tsx
│       │   │   │   └── methods/
│       │   │   │       ├── index.tsx
│       │   │   │       ├── only-any.tsx
│       │   │   │       └── route.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── vite-env.d.ts
│       │   ├── tests/
│       │   │   └── server-routes.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── spa-mode/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── src/
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── __root.tsx
│       │   │   │   ├── index.tsx
│       │   │   │   ├── posts.$postId.tsx
│       │   │   │   └── posts.tsx
│       │   │   └── styles/
│       │   │       └── app.css
│       │   ├── tests/
│       │   │   └── app.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       ├── virtual-routes/
│       │   ├── .devcontainer/
│       │   │   └── devcontainer.json
│       │   ├── .gitignore
│       │   ├── .prettierignore
│       │   ├── package.json
│       │   ├── playwright.config.ts
│       │   ├── public/
│       │   │   ├── script.js
│       │   │   ├── script2.js
│       │   │   └── site.webmanifest
│       │   ├── routes.ts
│       │   ├── src/
│       │   │   ├── posts.tsx
│       │   │   ├── routeTree.gen.ts
│       │   │   ├── router.tsx
│       │   │   ├── routes/
│       │   │   │   ├── a.tsx
│       │   │   │   ├── b.tsx
│       │   │   │   ├── file-based-subtree/
│       │   │   │   │   └── hello/
│       │   │   │   │       ├── index.tsx
│       │   │   │   │       ├── route.tsx
│       │   │   │   │       ├── universe.tsx
│       │   │   │   │       └── world.tsx
│       │   │   │   ├── home.tsx
│       │   │   │   ├── layout/
│       │   │   │   │   ├── first-layout.tsx
│       │   │   │   │   └── second-layout.tsx
│       │   │   │   ├── pipe.tsx
│       │   │   │   ├── posts/
│       │   │   │   │   ├── posts-detail.tsx
│       │   │   │   │   ├── posts-home.tsx
│       │   │   │   │   └── posts.tsx
│       │   │   │   └── root.tsx
│       │   │   ├── styles/
│       │   │   │   └── app.css
│       │   │   └── utils/
│       │   │       ├── posts.tsx
│       │   │       ├── seo.ts
│       │   │       └── users.tsx
│       │   ├── tests/
│       │   │   ├── app.spec.ts
│       │   │   ├── setup/
│       │   │   │   ├── global.setup.ts
│       │   │   │   └── global.teardown.ts
│       │   │   └── special-characters.spec.ts
│       │   ├── tsconfig.json
│       │   └── vite.config.ts
│       └── website/
│           ├── .devcontainer/
│           │   └── devcontainer.json
│           ├── .gitignore
│           ├── .prettierignore
│           ├── package.json
│           ├── playwright.config.ts
│           ├── public/
│           │   └── site.webmanifest
│           ├── src/
│           │   ├── components/
│           │   │   ├── DefaultCatchBoundary.tsx
│           │   │   └── NotFound.tsx
│           │   ├── routeTree.gen.ts
│           │   ├── router.tsx
│           │   ├── routes/
│           │   │   ├── $project.$version.docs.framework.$framework.$.tsx
│           │   │   ├── $project.$version.docs.framework.$framework.examples.$.tsx
│           │   │   ├── $project.$version.docs.framework.$framework.index.tsx
│           │   │   ├── $project.$version.docs.framework.$framework.tsx
│           │   │   ├── $project.$version.docs.index.tsx
│           │   │   ├── $project.index.tsx
│           │   │   ├── __root.tsx
│           │   │   ├── _library.$project.$version.index.tsx
│           │   │   ├── _library.$project.tsx
│           │   │   ├── _library.index.tsx
│           │   │   └── _library.tsx
│           │   ├── server/
│           │   │   ├── document.tsx
│           │   │   └── projects.tsx
│           │   ├── styles/
│           │   │   └── app.css
│           │   ├── utils/
│           │   │   └── seo.ts
│           │   └── vite-env.d.ts
│           ├── tests/
│           │   └── app.spec.ts
│           ├── tsconfig.json
│           └── vite.config.ts
├── eslint.config.js
├── examples/
│   ├── react/
│   │   ├── authenticated-routes/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── auth.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.dashboard.tsx
│   │   │   │   │   ├── _auth.invoices.$invoiceId.tsx
│   │   │   │   │   ├── _auth.invoices.index.tsx
│   │   │   │   │   ├── _auth.invoices.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── utils.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── authenticated-routes-firebase/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .env.example
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── auth.tsx
│   │   │   │   ├── firebase/
│   │   │   │   │   └── config.ts
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.dashboard.tsx
│   │   │   │   │   ├── _auth.invoices.$invoiceId.tsx
│   │   │   │   │   ├── _auth.invoices.index.tsx
│   │   │   │   │   ├── _auth.invoices.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   ├── utils.ts
│   │   │   │   └── vite.d.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-default-search-params/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-devtools-panel/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── App.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── anchor.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-non-nested-devtools/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.lazy.tsx
│   │   │   │   ├── posts.ts
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-react-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── postQueryOptions.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── postsQueryOptions.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _pathlessLayout/
│   │   │   │   │   │   ├── _nested-layout/
│   │   │   │   │   │   │   ├── route-a.tsx
│   │   │   │   │   │   │   └── route-b.tsx
│   │   │   │   │   │   └── _nested-layout.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts.$postId.tsx
│   │   │   │   │   ├── posts.index.tsx
│   │   │   │   │   └── posts.route.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── basic-ssr-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── entry-client.tsx
│   │   │   │   ├── entry-server.tsx
│   │   │   │   ├── fetch-polyfill.js
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routerContext.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── error.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       └── posts/
│   │   │   │           ├── $postId.tsx
│   │   │   │           ├── index.tsx
│   │   │   │           └── route.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-ssr-streaming-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── server.js
│   │   │   ├── src/
│   │   │   │   ├── entry-client.tsx
│   │   │   │   ├── entry-server.tsx
│   │   │   │   ├── fetch-polyfill.js
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── routerContext.tsx
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── error.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       └── posts/
│   │   │   │           ├── $postId.tsx
│   │   │   │           ├── index.tsx
│   │   │   │           └── route.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── routes.ts
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── a.tsx
│   │   │   │   │   ├── b.tsx
│   │   │   │   │   ├── file-based-subtree/
│   │   │   │   │   │   └── hello/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── route.tsx
│   │   │   │   │   │       ├── universe.tsx
│   │   │   │   │   │       └── world.tsx
│   │   │   │   │   ├── home.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── first-layout.tsx
│   │   │   │   │   │   └── second-layout.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── posts-detail.tsx
│   │   │   │   │   │   ├── posts-home.tsx
│   │   │   │   │   │   └── posts.tsx
│   │   │   │   │   └── root.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── basic-virtual-inside-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _layout/
│   │   │   │   │   │   ├── _layout-2/
│   │   │   │   │   │   │   ├── layout-a.tsx
│   │   │   │   │   │   │   └── layout-b.tsx
│   │   │   │   │   │   └── _layout-2.tsx
│   │   │   │   │   ├── _layout.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── posts/
│   │   │   │   │   │   ├── __virtual.ts
│   │   │   │   │   │   ├── details.tsx
│   │   │   │   │   │   ├── home.tsx
│   │   │   │   │   │   └── lets-go/
│   │   │   │   │   │       ├── deeper/
│   │   │   │   │   │       │   ├── __virtual.ts
│   │   │   │   │   │       │   └── home.tsx
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── posts.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── deferred-data/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── i18n-paraglide/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── messages/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── package.json
│   │   │   ├── project.inlang/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── project_id
│   │   │   │   └── settings.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── kitchen-sink/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── Expensive.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── mockTodos.ts
│   │   │   │   ├── styles.css
│   │   │   │   ├── useMutation.tsx
│   │   │   │   └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── kitchen-sink-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── Breadcrumbs.tsx
│   │   │   │   │   ├── InvoiceFields.tsx
│   │   │   │   │   └── Spinner.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   ├── useMutation.tsx
│   │   │   │   │   └── useSessionStorage.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── (this-folder-is-not-in-the-url)/
│   │   │   │   │   │   └── route-group.tsx
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.profile.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── _pathlessLayout.route-a.tsx
│   │   │   │   │   ├── _pathlessLayout.route-b.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── dashboard.index.tsx
│   │   │   │   │   ├── dashboard.invoices.$invoiceId.tsx
│   │   │   │   │   ├── dashboard.invoices.index.tsx
│   │   │   │   │   ├── dashboard.invoices.route.tsx
│   │   │   │   │   ├── dashboard.route.tsx
│   │   │   │   │   ├── dashboard.users.index.tsx
│   │   │   │   │   ├── dashboard.users.route.tsx
│   │   │   │   │   ├── dashboard.users.user.tsx
│   │   │   │   │   ├── expensive/
│   │   │   │   │   │   ├── -components/
│   │   │   │   │   │   │   └── Expensive.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── utils/
│   │   │   │       ├── auth.tsx
│   │   │   │       ├── mockTodos.ts
│   │   │   │       └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── kitchen-sink-react-query/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── Expensive.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── mockTodos.ts
│   │   │   │   ├── styles.css
│   │   │   │   └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── kitchen-sink-react-query-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── InvoiceFields.tsx
│   │   │   │   │   └── Spinner.tsx
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useSessionStorage.tsx
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── _auth.profile.tsx
│   │   │   │   │   ├── _auth.tsx
│   │   │   │   │   ├── _pathlessLayout.route-a.tsx
│   │   │   │   │   ├── _pathlessLayout.route-b.tsx
│   │   │   │   │   ├── _pathlessLayout.tsx
│   │   │   │   │   ├── dashboard.index.tsx
│   │   │   │   │   ├── dashboard.invoices.$invoiceId.tsx
│   │   │   │   │   ├── dashboard.invoices.index.tsx
│   │   │   │   │   ├── dashboard.invoices.route.tsx
│   │   │   │   │   ├── dashboard.route.tsx
│   │   │   │   │   ├── dashboard.users.index.tsx
│   │   │   │   │   ├── dashboard.users.route.tsx
│   │   │   │   │   ├── dashboard.users.user.tsx
│   │   │   │   │   ├── expensive/
│   │   │   │   │   │   ├── -components/
│   │   │   │   │   │   │   └── Expensive.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── foo/
│   │   │   │   │   │   └── bar.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── login.tsx
│   │   │   │   ├── styles.css
│   │   │   │   └── utils/
│   │   │   │       ├── auth.tsx
│   │   │   │       ├── mockTodos.ts
│   │   │   │       ├── queryOptions.ts
│   │   │   │       └── utils.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── large-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── createRoutes.mjs
│   │   │   │   ├── main.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── absolute.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── linkProps.tsx
│   │   │   │   │   ├── params/
│   │   │   │   │   │   ├── $paramsPlaceholder.tsx
│   │   │   │   │   │   └── route.tsx
│   │   │   │   │   ├── relative.tsx
│   │   │   │   │   └── search/
│   │   │   │   │       ├── route.tsx
│   │   │   │   │       └── searchPlaceholder.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── location-masking/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── navigation-blocking/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── quickstart/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── quickstart-esbuild-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── esbuild.config.js
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   └── routes/
│   │   │   │       ├── __root.tsx
│   │   │   │       ├── about.tsx
│   │   │   │       └── index.tsx
│   │   │   └── tsconfig.json
│   │   ├── quickstart-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── main.tsx
│   │   │   │   ├── posts.tsx
│   │   │   │   ├── routeTree.gen.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── __root.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   └── styles.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.js
│   │   ├── quickstart-rspack-file-based/
│   │   │   ├── .devcontainer/
│   │   │   │   └── devcontainer.json
│   │   │   ├── .gitignore
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── postcss.config.mjs
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │
Download .txt
Showing preview only (1,232K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (12733 symbols across 3628 files)

FILE: benchmarks/bundle-size/scenarios/react-router-full/src/main.tsx
  type Register (line 11) | interface Register {

FILE: benchmarks/bundle-size/scenarios/react-router-full/src/routes/__root.tsx
  function RootComponent (line 51) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/react-router-full/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/react-router-minimal/src/main.tsx
  type Register (line 8) | interface Register {

FILE: benchmarks/bundle-size/scenarios/react-router-minimal/src/routes/__root.tsx
  function RootComponent (line 7) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/react-router-minimal/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/react-start-full/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: benchmarks/bundle-size/scenarios/react-start-full/src/routes/__root.tsx
  function RootComponent (line 74) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/react-start-full/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/react-start-minimal/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: benchmarks/bundle-size/scenarios/react-start-minimal/src/routes/__root.tsx
  function RootComponent (line 12) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/react-start-minimal/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-router-full/src/main.tsx
  type Register (line 11) | interface Register {

FILE: benchmarks/bundle-size/scenarios/solid-router-full/src/routes/__root.tsx
  function RootComponent (line 51) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-router-full/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/src/main.tsx
  type Register (line 8) | interface Register {

FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/src/routes/__root.tsx
  function RootComponent (line 7) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-router-minimal/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-start-full/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: benchmarks/bundle-size/scenarios/solid-start-full/src/routes/__root.tsx
  type BundleSizeKeep (line 52) | type BundleSizeKeep = {
  function RootComponent (line 83) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-start-full/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/src/routes/__root.tsx
  function RootComponent (line 12) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/solid-start-minimal/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/vue-router-full/src/main.tsx
  type Register (line 11) | interface Register {
  method setup (line 22) | setup() {

FILE: benchmarks/bundle-size/scenarios/vue-router-full/src/routes/__root.tsx
  function RootComponent (line 52) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/vue-router-full/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/bundle-size/scenarios/vue-router-minimal/src/main.tsx
  type Register (line 8) | interface Register {
  method setup (line 19) | setup() {

FILE: benchmarks/bundle-size/scenarios/vue-router-minimal/src/routes/__root.tsx
  function RootComponent (line 7) | function RootComponent() {

FILE: benchmarks/bundle-size/scenarios/vue-router-minimal/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: benchmarks/client-nav/jsdom.ts
  function setGlobal (line 9) | function setGlobal(name: string, value: unknown) {

FILE: benchmarks/client-nav/react/app.tsx
  function runPerfSelectorComputation (line 14) | function runPerfSelectorComputation(seed: number) {
  function Params (line 26) | function Params() {
  function Search (line 35) | function Search() {
  function Links (line 44) | function Links() {
  function Root (line 52) | function Root() {
  function mountTestApp (line 79) | function mountTestApp(container: Element) {

FILE: benchmarks/client-nav/react/setup.ts
  function setup (line 7) | function setup() {

FILE: benchmarks/client-nav/react/speed.flame.ts
  constant DURATION_MS (line 4) | const DURATION_MS = 10_000

FILE: benchmarks/client-nav/solid/app.tsx
  function runPerfSelectorComputation (line 15) | function runPerfSelectorComputation(seed: number) {
  function Params (line 27) | function Params() {
  function Search (line 40) | function Search() {
  function Links (line 53) | function Links() {
  function Root (line 61) | function Root() {
  function mountTestApp (line 84) | function mountTestApp(container: Element) {

FILE: benchmarks/client-nav/solid/setup.ts
  function setup (line 7) | function setup() {

FILE: benchmarks/client-nav/solid/speed.flame.ts
  constant DURATION_MS (line 4) | const DURATION_MS = 10_000

FILE: benchmarks/client-nav/vue/app.tsx
  function runPerfSelectorComputation (line 14) | function runPerfSelectorComputation(seed: number) {
  method setup (line 27) | setup() {
  method setup (line 41) | setup() {
  method setup (line 55) | setup() {
  method setup (line 65) | setup() {
  function mountTestApp (line 93) | function mountTestApp(container: Element) {

FILE: benchmarks/client-nav/vue/setup.ts
  function setup (line 7) | function setup() {

FILE: benchmarks/client-nav/vue/speed.flame.ts
  constant DURATION_MS (line 4) | const DURATION_MS = 10_000

FILE: benchmarks/ssr/bench-utils.ts
  type StartRequestHandler (line 1) | interface StartRequestHandler {
  type RunSsrRequestLoopOptions (line 5) | interface RunSsrRequestLoopOptions {
  function createDeterministicRandom (line 17) | function createDeterministicRandom(seed: number) {
  function randomSegment (line 26) | function randomSegment(random: () => number) {
  function randomSearchValue (line 30) | function randomSearchValue(random: () => number) {
  function randomRequestUrl (line 34) | function randomRequestUrl(random: () => number) {
  function runSsrRequestLoop (line 44) | async function runSsrRequestLoop(

FILE: benchmarks/ssr/react/speed.bench.ts
  function setup (line 14) | async function setup() {
  function teardown (line 22) | function teardown() {

FILE: benchmarks/ssr/react/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 38) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 44) | interface FileRoutesByTo {
  type FileRoutesById (line 50) | interface FileRoutesById {
  type FileRouteTypes (line 57) | interface FileRouteTypes {
  type RootRouteChildren (line 65) | interface RootRouteChildren {
  type FileRoutesByPath (line 70) | interface FileRoutesByPath {
  type ABCRouteChildren (line 102) | interface ABCRouteChildren {
  type ABRouteChildren (line 112) | interface ABRouteChildren {
  type ARouteChildren (line 122) | interface ARouteChildren {
  type Register (line 142) | interface Register {

FILE: benchmarks/ssr/react/src/router.tsx
  function getRouter (line 4) | function getRouter() {
  type Register (line 13) | interface Register {

FILE: benchmarks/ssr/react/src/routes/$a.$b.$c.$d.tsx
  function LevelDComponent (line 8) | function LevelDComponent() {

FILE: benchmarks/ssr/react/src/routes/$a.$b.$c.tsx
  function LevelCComponent (line 8) | function LevelCComponent() {

FILE: benchmarks/ssr/react/src/routes/$a.$b.tsx
  function LevelBComponent (line 8) | function LevelBComponent() {

FILE: benchmarks/ssr/react/src/routes/$a.tsx
  function LevelAComponent (line 8) | function LevelAComponent() {

FILE: benchmarks/ssr/react/src/routes/__root.tsx
  function RootComponent (line 13) | function RootComponent() {

FILE: benchmarks/ssr/react/src/workload.tsx
  function runSelectorWork (line 5) | function runSelectorWork(input: string, salt: number) {
  function ParamsProbe (line 21) | function ParamsProbe({ salt }: { salt: number }) {
  function SearchProbe (line 36) | function SearchProbe({ salt }: { salt: number }) {
  function LinkProbe (line 47) | function LinkProbe({ salt }: { salt: number }) {
  function RouteWorkload (line 67) | function RouteWorkload() {

FILE: benchmarks/ssr/solid/speed.bench.ts
  function setup (line 14) | async function setup() {
  function teardown (line 22) | function teardown() {

FILE: benchmarks/ssr/solid/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 38) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 44) | interface FileRoutesByTo {
  type FileRoutesById (line 50) | interface FileRoutesById {
  type FileRouteTypes (line 57) | interface FileRouteTypes {
  type RootRouteChildren (line 65) | interface RootRouteChildren {
  type FileRoutesByPath (line 70) | interface FileRoutesByPath {
  type ABCRouteChildren (line 102) | interface ABCRouteChildren {
  type ABRouteChildren (line 112) | interface ABRouteChildren {
  type ARouteChildren (line 122) | interface ARouteChildren {
  type Register (line 142) | interface Register {

FILE: benchmarks/ssr/solid/src/router.tsx
  function getRouter (line 4) | function getRouter() {
  type Register (line 13) | interface Register {

FILE: benchmarks/ssr/solid/src/routes/$a.$b.$c.$d.tsx
  function LevelDComponent (line 8) | function LevelDComponent() {

FILE: benchmarks/ssr/solid/src/routes/$a.$b.$c.tsx
  function LevelCComponent (line 8) | function LevelCComponent() {

FILE: benchmarks/ssr/solid/src/routes/$a.$b.tsx
  function LevelBComponent (line 8) | function LevelBComponent() {

FILE: benchmarks/ssr/solid/src/routes/$a.tsx
  function LevelAComponent (line 8) | function LevelAComponent() {

FILE: benchmarks/ssr/solid/src/routes/__root.tsx
  function RootComponent (line 13) | function RootComponent() {

FILE: benchmarks/ssr/solid/src/workload.tsx
  function runSelectorWork (line 6) | function runSelectorWork(input: string, salt: number) {
  function ParamsProbe (line 22) | function ParamsProbe(props: { salt: number }) {
  function SearchProbe (line 39) | function SearchProbe(props: { salt: number }) {
  function LinkProbe (line 53) | function LinkProbe(props: { salt: number }) {
  function RouteWorkload (line 73) | function RouteWorkload() {

FILE: benchmarks/ssr/vue/speed.bench.ts
  function setup (line 14) | async function setup() {
  function teardown (line 22) | function teardown() {

FILE: benchmarks/ssr/vue/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 38) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 44) | interface FileRoutesByTo {
  type FileRoutesById (line 50) | interface FileRoutesById {
  type FileRouteTypes (line 57) | interface FileRouteTypes {
  type RootRouteChildren (line 65) | interface RootRouteChildren {
  type FileRoutesByPath (line 70) | interface FileRoutesByPath {
  type ABCRouteChildren (line 102) | interface ABCRouteChildren {
  type ABRouteChildren (line 112) | interface ABRouteChildren {
  type ARouteChildren (line 122) | interface ARouteChildren {
  type Register (line 142) | interface Register {

FILE: benchmarks/ssr/vue/src/router.tsx
  function getRouter (line 4) | function getRouter() {
  type Register (line 13) | interface Register {

FILE: benchmarks/ssr/vue/src/routes/$a.$b.$c.$d.tsx
  function LevelDComponent (line 8) | function LevelDComponent() {

FILE: benchmarks/ssr/vue/src/routes/$a.$b.$c.tsx
  function LevelCComponent (line 8) | function LevelCComponent() {

FILE: benchmarks/ssr/vue/src/routes/$a.$b.tsx
  function LevelBComponent (line 8) | function LevelBComponent() {

FILE: benchmarks/ssr/vue/src/routes/$a.tsx
  function LevelAComponent (line 8) | function LevelAComponent() {

FILE: benchmarks/ssr/vue/src/routes/__root.tsx
  function RootComponent (line 15) | function RootComponent() {

FILE: benchmarks/ssr/vue/src/workload.tsx
  function runSelectorWork (line 6) | function runSelectorWork(input: string, salt: number) {
  method setup (line 29) | setup(props) {
  method setup (line 53) | setup(props) {
  method setup (line 74) | setup(props) {
  method setup (line 96) | setup() {

FILE: e2e/e2e-utils/src/derivePort.ts
  function derivePort (line 9) | async function derivePort(input: string): Promise<number> {
  function getDummyServerPort (line 21) | async function getDummyServerPort(input: string): Promise<number> {
  function getTestServerPort (line 25) | async function getTestServerPort(input: string): Promise<number> {

FILE: e2e/e2e-utils/src/e2eSetupTeardown.ts
  function e2eStartDummyServer (line 4) | async function e2eStartDummyServer(input: string) {
  function e2eStopDummyServer (line 10) | async function e2eStopDummyServer(input: string) {

FILE: e2e/e2e-utils/src/fixture.ts
  type TestFixtureOptions (line 3) | interface TestFixtureOptions {

FILE: e2e/e2e-utils/src/localDummyServer.ts
  function localDummyServer (line 9) | async function localDummyServer(port: number) {

FILE: e2e/e2e-utils/src/posts.ts
  type Post (line 3) | type Post = {

FILE: e2e/e2e-utils/src/resolve-runtime-suffix.ts
  function resolveRuntimeSuffix (line 7) | function resolveRuntimeSuffix(input?: string): string {

FILE: e2e/e2e-utils/src/to-runtime-path.ts
  function toRuntimePath (line 14) | function toRuntimePath(input: string) {

FILE: e2e/e2e-utils/src/users.ts
  type User (line 3) | type User = {

FILE: e2e/react-router/basepath-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basepath-file-based/src/main.tsx
  type Register (line 17) | interface Register {

FILE: e2e/react-router/basepath-file-based/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 44) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 51) | interface FileRoutesByTo {
  type FileRoutesById (line 58) | interface FileRoutesById {
  type FileRouteTypes (line 66) | interface FileRouteTypes {
  type RootRouteChildren (line 80) | interface RootRouteChildren {
  type FileRoutesByPath (line 89) | interface FileRoutesByPath {

FILE: e2e/react-router/basepath-file-based/src/routes/about.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basepath-file-based/src/routes/index.tsx
  function App (line 7) | function App() {

FILE: e2e/react-router/basepath-file-based/src/routes/redirect.tsx
  function RouteComponent (line 10) | function RouteComponent() {

FILE: e2e/react-router/basepath-file-based/src/routes/redirectReload.tsx
  function RouteComponent (line 10) | function RouteComponent() {

FILE: e2e/react-router/basepath-file-based/src/routes/scroll-error.tsx
  function ScrollErrorComponent (line 7) | function ScrollErrorComponent() {

FILE: e2e/react-router/basepath-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basepath-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-esbuild-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-esbuild-file-based/src/main.tsx
  type Register (line 16) | interface Register {

FILE: e2e/react-router/basic-esbuild-file-based/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/basic-esbuild-file-based/src/routeTree.gen.ts
  type FileRoutesByPath (line 99) | interface FileRoutesByPath {
  type LayoutLayout2RouteChildren (line 189) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 203) | interface LayoutRouteChildren {
  type PostsRouteChildren (line 214) | interface PostsRouteChildren {
  type groupLayoutRouteChildren (line 226) | interface groupLayoutRouteChildren {
  type groupRouteChildren (line 238) | interface groupRouteChildren {
  type FileRoutesByFullPath (line 250) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 262) | interface FileRoutesByTo {
  type FileRoutesById (line 273) | interface FileRoutesById {
  type FileRouteTypes (line 289) | interface FileRouteTypes {
  type RootRouteChildren (line 328) | interface RootRouteChildren {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/__root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/_layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 7) | function LayoutAComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 7) | function LayoutBComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 15) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 19) | function PostComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/posts.index.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/src/routes/posts.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-router/basic-esbuild-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-esbuild-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-file-based-code-splitting/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-file-based-code-splitting/src/main.tsx
  type Register (line 17) | interface Register {

FILE: e2e/react-router/basic-file-based-code-splitting/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 80) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 91) | interface FileRoutesByTo {
  type FileRoutesById (line 101) | interface FileRoutesById {
  type FileRouteTypes (line 115) | interface FileRouteTypes {
  type RootRouteChildren (line 152) | interface RootRouteChildren {
  type FileRoutesByPath (line 162) | interface FileRoutesByPath {
  type LayoutLayout2RouteChildren (line 343) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 357) | interface LayoutRouteChildren {
  type PostsRouteChildren (line 368) | interface PostsRouteChildren {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/__root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/_layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 5) | function LayoutAComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 5) | function LayoutBComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/index.tsx
  function Home (line 7) | function Home() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 19) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 23) | function PostComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/posts.index.tsx
  function PostsIndexComponent (line 7) | function PostsIndexComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/posts.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/src/routes/shared-singleton.tsx
  function getInitCount (line 12) | function getInitCount() {
  function SharedSingletonComponent (line 26) | function SharedSingletonComponent() {

FILE: e2e/react-router/basic-file-based-code-splitting/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-file-based-code-splitting/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-file-based/src/main.tsx
  type Register (line 31) | interface Register {

FILE: e2e/react-router/basic-file-based/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/basic-file-based/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 781) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 898) | interface FileRoutesByTo {
  type FileRoutesById (line 1003) | interface FileRoutesById {
  type FileRouteTypes (line 1126) | interface FileRouteTypes {
  type RootRouteChildren (line 1473) | interface RootRouteChildren {
  type FileRoutesByPath (line 1523) | interface FileRoutesByPath {
  type FullpathTestLayoutRouteRouteChildren (line 2367) | interface FullpathTestLayoutRouteRouteChildren {
  type FullpathTestRouteRouteChildren (line 2383) | interface FullpathTestRouteRouteChildren {
  type NonNestedDeepBazRouteRouteChildren (line 2394) | interface NonNestedDeepBazRouteRouteChildren {
  type NonNestedDeepBazBarFooRouteRouteChildren (line 2407) | interface NonNestedDeepBazBarFooRouteRouteChildren {
  type NonNestedDeepBazBarRouteRouteChildren (line 2421) | interface NonNestedDeepBazBarRouteRouteChildren {
  type NonNestedDeepRouteRouteChildren (line 2440) | interface NonNestedDeepRouteRouteChildren {
  type NonNestedNamedBazRouteRouteChildren (line 2455) | interface NonNestedNamedBazRouteRouteChildren {
  type NonNestedNamedRouteRouteChildren (line 2471) | interface NonNestedNamedRouteRouteChildren {
  type NonNestedPathBazRouteRouteChildren (line 2484) | interface NonNestedPathBazRouteRouteChildren {
  type NonNestedPathRouteRouteChildren (line 2499) | interface NonNestedPathRouteRouteChildren {
  type NonNestedPrefixPrefixChar123bazChar125RouteRouteChildren (line 2512) | interface NonNestedPrefixPrefixChar123bazChar125RouteRouteChildren {
  type NonNestedPrefixRouteRouteChildren (line 2530) | interface NonNestedPrefixRouteRouteChildren {
  type NonNestedSuffixChar123bazChar125suffixRouteRouteChildren (line 2545) | interface NonNestedSuffixChar123bazChar125suffixRouteRouteChildren {
  type NonNestedSuffixRouteRouteChildren (line 2563) | interface NonNestedSuffixRouteRouteChildren {
  type NonNestedRouteRouteChildren (line 2578) | interface NonNestedRouteRouteChildren {
  type PathlessLayoutLayoutRouteRouteChildren (line 2598) | interface PathlessLayoutLayoutRouteRouteChildren {
  type PathlessLayoutRouteRouteChildren (line 2614) | interface PathlessLayoutRouteRouteChildren {
  type SearchParamsRouteRouteChildren (line 2625) | interface SearchParamsRouteRouteChildren {
  type Char45824Char54620Char48124Char44397RouteRouteChildren (line 2638) | interface Char45824Char54620Char48124Char44397RouteRouteChildren {
  type LayoutLayout2RouteChildren (line 2656) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 2670) | interface LayoutRouteChildren {
  type MasksRouteChildren (line 2681) | interface MasksRouteChildren {
  type PostsRouteChildren (line 2693) | interface PostsRouteChildren {
  type ParamsPsNonNestedFooRouteRouteChildren (line 2705) | interface ParamsPsNonNestedFooRouteRouteChildren {
  type ParamsPsNonNestedRouteRouteChildren (line 2719) | interface ParamsPsNonNestedRouteRouteChildren {
  type ParamsPsStrictFalseRouteRouteChildren (line 2733) | interface ParamsPsStrictFalseRouteRouteChildren {
  type RelativeLinkRouteRouteChildren (line 2747) | interface RelativeLinkRouteRouteChildren {
  type RelativeUseNavigateRouteRouteChildren (line 2770) | interface RelativeUseNavigateRouteRouteChildren {
  type groupLayoutRouteChildren (line 2801) | interface groupLayoutRouteChildren {
  type RedirectTargetRouteChildren (line 2813) | interface RedirectTargetRouteChildren {
  type ParamsPsNamedFooBarRouteRouteChildren (line 2843) | interface ParamsPsNamedFooBarRouteRouteChildren {
  type ParamsPsNamedFooRouteRouteChildren (line 2857) | interface ParamsPsNamedFooRouteRouteChildren {

FILE: e2e/react-router/basic-file-based/src/routes/__root.tsx
  function RootComponent (line 24) | function RootComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/_layout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 6) | function LayoutAComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 6) | function LayoutBComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/anchor.tsx
  function AnchorSection (line 30) | function AnchorSection({ id, title }: { id: string; title: string }) {
  function AnchorComponent (line 70) | function AnchorComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/editing-a.tsx
  function RouteComponent (line 9) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/editing-b.tsx
  function RouteComponent (line 9) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/fullpath-test/_layout/$id.tsx
  function IdComponent (line 7) | function IdComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/fullpath-test/_layout/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/fullpath-test/_layout/route.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/hover-preload-hash.tsx
  function Page (line 7) | function Page() {

FILE: e2e/react-router/basic-file-based/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/basic-file-based/src/routes/lazy-error.lazy.tsx
  function LazyErrorComponent (line 12) | function LazyErrorComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/masks.admin.$userId.tsx
  function AdminUserRoute (line 7) | function AdminUserRoute() {

FILE: e2e/react-router/basic-file-based/src/routes/masks.public.$username.tsx
  function PublicUserRoute (line 7) | function PublicUserRoute() {

FILE: e2e/react-router/basic-file-based/src/routes/masks.tsx
  function MasksLayout (line 12) | function MasksLayout() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz_.bar.$foo.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz_.bar.$foo.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz_.bar.$foo_.qux.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz_.bar.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz_.bar.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/$baz_.bar_.qux.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/deep/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz.foo.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz_.bar.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/named/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/path/baz.foo.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/path/baz.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/path/baz.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/path/baz_.bar.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/path/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/prefix/prefix{$baz}.foo.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/prefix/prefix{$baz}.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/prefix/prefix{$baz}.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/prefix/prefix{$baz}_.bar.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/prefix/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/suffix/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/suffix/{$baz}suffix.foo.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/suffix/{$baz}suffix.index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/suffix/{$baz}suffix.route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/non-nested/suffix/{$baz}suffix_.bar.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/notRemountDeps.tsx
  method validateSearch (line 5) | validateSearch(search: { searchParam: string }) {
  method loaderDeps (line 8) | loaderDeps(opts) {
  method remountDeps (line 12) | remountDeps(opts) {
  function Home (line 19) | function Home() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/named/$foo/$bar.$baz.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/named/$foo/$bar.route.tsx
  function RouteComponent (line 13) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/named/$foo/route.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/named/prefix{$foo}.tsx
  function RouteComponent (line 6) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/named/{$foo}suffix.tsx
  function RouteComponent (line 6) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/non-nested/$foo_/$bar.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/non-nested/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/$version.route.tsx
  function RouteComponent (line 17) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/strict-false/route.tsx
  function RouteComponent (line 12) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/wildcard/$.tsx
  function RouteComponent (line 6) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/wildcard/prefix@대{$}.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/wildcard/prefix{$}.tsx
  function RouteComponent (line 6) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/wildcard/{$}suffix.tsx
  function RouteComponent (line 6) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params-ps/wildcard/{$}suffix@대.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/params.single.$value.tsx
  function RouteComponent (line 9) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/posts.index.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/posts.tsx
  function PostsComponent (line 18) | function PostsComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/posts_.$postId.edit.tsx
  function PostEditPage (line 9) | function PostEditPage() {

FILE: e2e/react-router/basic-file-based/src/routes/redirect/preload/first.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/redirect/preload/second.tsx
  function RouteComponent (line 13) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/redirect/preload/third.tsx
  function RouteComponent (line 6) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/nested/deep/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/nested/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/path/$path/index.tsx
  function RouteComponent (line 10) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/path/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/relative-link-a.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/relative-link-b.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/route.tsx
  function RouteComponent (line 13) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/link/with-search/index.tsx
  function RouteComponent (line 11) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/nested/deep/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/nested/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/path/$path/index.tsx
  function RouteComponent (line 10) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/path/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/relative-useNavigate-a.tsx
  function RouteComponent (line 9) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/relative-useNavigate-b.tsx
  function RouteComponent (line 9) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/route.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/relative/useNavigate/with-search/index.tsx
  function RouteComponent (line 11) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/remountDeps.tsx
  method validateSearch (line 5) | validateSearch(search: { searchParam: string }) {
  method loaderDeps (line 8) | loaderDeps(opts) {
  method remountDeps (line 12) | remountDeps(opts) {
  function Home (line 19) | function Home() {

FILE: e2e/react-router/basic-file-based/src/routes/search-params/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/structural-sharing.$enabled.tsx
  function useRenderCount (line 24) | function useRenderCount() {
  function RouteComponent (line 31) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/대한민국/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/대한민국/wildcard.$.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/src/routes/대한민국/🚀.$id.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-router/basic-file-based/tests/app.spec.ts
  function getRenderCount (line 242) | async function getRenderCount(page: Page) {
  function structuralSharingTest (line 248) | async function structuralSharingTest(page: Page, enabled: boolean) {

FILE: e2e/react-router/basic-file-based/tests/params.spec.ts
  function getParsedValue (line 25) | function getParsedValue(page: Page) {

FILE: e2e/react-router/basic-file-based/tests/redirect.spec.ts
  constant PORT (line 13) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_HOST_PORT (line 14) | const EXTERNAL_HOST_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-file-based/tests/relative.spec.ts
  constant PORT (line 9) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-router/basic-file-based/tests/scroll-into-view.spec.ts
  function getAnchorTarget (line 23) | function getAnchorTarget(page: Page, anchor: string) {
  function getAnchorLink (line 27) | function getAnchorLink(page: Page, anchor: string) {

FILE: e2e/react-router/basic-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-react-query-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-react-query-file-based/src/main.tsx
  type Register (line 25) | interface Register {

FILE: e2e/react-router/basic-react-query-file-based/src/posts.tsx
  type PostType (line 3) | type PostType = {
  class PostNotFoundError (line 9) | class PostNotFoundError extends Error {}

FILE: e2e/react-router/basic-react-query-file-based/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 60) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 68) | interface FileRoutesByTo {
  type FileRoutesById (line 75) | interface FileRoutesById {
  type FileRouteTypes (line 86) | interface FileRouteTypes {
  type RootRouteChildren (line 109) | interface RootRouteChildren {
  type FileRoutesByPath (line 116) | interface FileRoutesByPath {
  type LayoutLayout2RouteChildren (line 176) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 190) | interface LayoutRouteChildren {
  type PostsRouteChildren (line 201) | interface PostsRouteChildren {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/__root.tsx
  function RootComponent (line 25) | function RootComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/_layout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 6) | function LayoutAComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 6) | function LayoutBComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 20) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 45) | function PostComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/posts.index.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/basic-react-query-file-based/src/routes/posts.tsx
  function PostsComponent (line 13) | function PostsComponent() {

FILE: e2e/react-router/basic-react-query-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-react-query-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-react-query/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-react-query/src/main.tsx
  function RootComponent (line 39) | function RootComponent() {
  function IndexRouteComponent (line 92) | function IndexRouteComponent() {
  function PostsIndexRouteComponent (line 113) | function PostsIndexRouteComponent() {
  function PostErrorComponent (line 126) | function PostErrorComponent({ error, reset }: ErrorComponentProps) {
  function PostRouteComponent (line 151) | function PostRouteComponent() {
  function LayoutComponent (line 170) | function LayoutComponent() {
  function Layout2Component (line 187) | function Layout2Component() {
  function LayoutAComponent (line 222) | function LayoutAComponent() {
  function LayoutBComponent (line 232) | function LayoutBComponent() {
  type Register (line 261) | interface Register {

FILE: e2e/react-router/basic-react-query/src/posts.lazy.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-router/basic-react-query/src/posts.ts
  class NotFoundError (line 4) | class NotFoundError extends Error {}
  type PostType (line 6) | type PostType = {

FILE: e2e/react-router/basic-react-query/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-react-query/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-scroll-restoration/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-router/basic-scroll-restoration/src/main.tsx
  function RootComponent (line 20) | function RootComponent() {
  function IndexComponent (line 50) | function IndexComponent() {
  function AboutComponent (line 82) | function AboutComponent() {
  function ByElementComponent (line 110) | function ByElementComponent() {
  function FooComponent (line 212) | function FooComponent() {
  function BarComponent (line 240) | function BarComponent() {
  type Window (line 274) | interface Window {
  type Register (line 288) | interface Register {

FILE: e2e/react-router/basic-scroll-restoration/tests/router-events.spec.ts
  function expectItemOrder (line 31) | function expectItemOrder<TItem>(

FILE: e2e/react-router/basic-virtual-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-virtual-file-based/src/main.tsx
  type Register (line 17) | interface Register {

FILE: e2e/react-router/basic-virtual-file-based/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/basic-virtual-file-based/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 86) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 98) | interface FileRoutesByTo {
  type FileRoutesById (line 108) | interface FileRoutesById {
  type FileRouteTypes (line 123) | interface FileRouteTypes {
  type RootRouteChildren (line 162) | interface RootRouteChildren {
  type FileRoutesByPath (line 170) | interface FileRoutesByPath {
  type layoutSecondLayoutRouteChildren (line 367) | interface layoutSecondLayoutRouteChildren {
  type layoutFirstLayoutRouteChildren (line 380) | interface layoutFirstLayoutRouteChildren {
  type postsPostsRouteChildren (line 391) | interface postsPostsRouteChildren {
  type ClassicHelloRouteRouteChildren (line 405) | interface ClassicHelloRouteRouteChildren {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/a.tsx
  function LayoutAComponent (line 5) | function LayoutAComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/b.tsx
  function LayoutBComponent (line 5) | function LayoutBComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/home.tsx
  function Home (line 7) | function Home() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/layout/first-layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/layout/second-layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/posts/posts-detail.tsx
  function PostErrorComponent (line 15) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 19) | function PostComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/posts/posts-home.tsx
  function PostsIndexComponent (line 7) | function PostsIndexComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/posts/posts.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-router/basic-virtual-file-based/src/routes/root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/basic-virtual-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-virtual-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/main.tsx
  type Register (line 17) | interface Register {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/a.tsx
  function LayoutAComponent (line 5) | function LayoutAComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/b.tsx
  function LayoutBComponent (line 5) | function LayoutBComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/home.tsx
  function Home (line 7) | function Home() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/layout/first-layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/layout/second-layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/posts/posts-detail.tsx
  function PostErrorComponent (line 15) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 19) | function PostComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/posts/posts-home.tsx
  function PostsIndexComponent (line 7) | function PostsIndexComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/posts/posts.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/src/routes/root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic-virtual-named-export-config-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/basic/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/basic/src/main.tsx
  function RootComponent (line 29) | function RootComponent() {
  function IndexComponent (line 101) | function IndexComponent() {
  function PostsIndexComponent (line 121) | function PostsIndexComponent() {
  function PostErrorComponent (line 133) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 141) | function PostComponent() {
  function LayoutComponent (line 159) | function LayoutComponent() {
  function Layout2Component (line 176) | function Layout2Component() {
  function LayoutAComponent (line 211) | function LayoutAComponent() {
  function LayoutBComponent (line 221) | function LayoutBComponent() {
  type Register (line 445) | interface Register {

FILE: e2e/react-router/basic/src/posts.lazy.tsx
  function PostsComponent (line 8) | function PostsComponent() {

FILE: e2e/react-router/basic/src/posts.ts
  class NotFoundError (line 3) | class NotFoundError extends Error {}
  type PostType (line 5) | type PostType = {

FILE: e2e/react-router/basic/tests/app.spec.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-router/basic/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/basic/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/escaped-special-strings/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/escaped-special-strings/src/main.tsx
  type Register (line 14) | interface Register {

FILE: e2e/react-router/escaped-special-strings/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 50) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 58) | interface FileRoutesByTo {
  type FileRoutesById (line 66) | interface FileRoutesById {
  type FileRouteTypes (line 75) | interface FileRouteTypes {
  type RootRouteChildren (line 83) | interface RootRouteChildren {
  type FileRoutesByPath (line 93) | interface FileRoutesByPath {

FILE: e2e/react-router/escaped-special-strings/src/routes/[_]layout.tsx
  function EscapedUnderscoreLayoutComponent (line 9) | function EscapedUnderscoreLayoutComponent() {

FILE: e2e/react-router/escaped-special-strings/src/routes/[index].tsx
  function EscapedIndexComponent (line 9) | function EscapedIndexComponent() {

FILE: e2e/react-router/escaped-special-strings/src/routes/[lazy].tsx
  function EscapedLazyComponent (line 9) | function EscapedLazyComponent() {

FILE: e2e/react-router/escaped-special-strings/src/routes/[route].tsx
  function EscapedRouteComponent (line 9) | function EscapedRouteComponent() {

FILE: e2e/react-router/escaped-special-strings/src/routes/__root.tsx
  function RootComponent (line 15) | function RootComponent() {

FILE: e2e/react-router/escaped-special-strings/src/routes/blog[_].tsx
  function EscapedBlogUnderscoreComponent (line 9) | function EscapedBlogUnderscoreComponent() {

FILE: e2e/react-router/escaped-special-strings/src/routes/index.tsx
  function HomeComponent (line 9) | function HomeComponent() {

FILE: e2e/react-router/escaped-special-strings/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/escaped-special-strings/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/generator-cli-only/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/generator-cli-only/src/main.tsx
  type Register (line 17) | interface Register {

FILE: e2e/react-router/generator-cli-only/src/posts.ts
  class NotFoundError (line 3) | class NotFoundError extends Error {}
  type PostType (line 5) | type PostType = {

FILE: e2e/react-router/generator-cli-only/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 63) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 71) | interface FileRoutesByTo {
  type FileRoutesById (line 78) | interface FileRoutesById {
  type FileRouteTypes (line 89) | interface FileRouteTypes {
  type RootRouteChildren (line 112) | interface RootRouteChildren {
  type FileRoutesByPath (line 119) | interface FileRoutesByPath {
  type PostsRouteRouteChildren (line 179) | interface PostsRouteRouteChildren {
  type PathlessLayoutNestedLayoutRouteChildren (line 193) | interface PathlessLayoutNestedLayoutRouteChildren {
  type PathlessLayoutRouteChildren (line 211) | interface PathlessLayoutRouteChildren {

FILE: e2e/react-router/generator-cli-only/src/routes/__root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/_pathlessLayout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/_pathlessLayout/_nested-layout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/_pathlessLayout/_nested-layout/route-a.tsx
  function LayoutAComponent (line 8) | function LayoutAComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/_pathlessLayout/_nested-layout/route-b.tsx
  function LayoutBComponent (line 8) | function LayoutBComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/generator-cli-only/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/posts.index.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/generator-cli-only/src/routes/posts.route.tsx
  function PostsLayoutComponent (line 11) | function PostsLayoutComponent() {

FILE: e2e/react-router/generator-cli-only/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/generator-cli-only/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/i18n-paraglide/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-router/i18n-paraglide/src/main.tsx
  type Register (line 26) | interface Register {

FILE: e2e/react-router/i18n-paraglide/src/routes/about.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-router/i18n-paraglide/src/routes/index.tsx
  function App (line 8) | function App() {

FILE: e2e/react-router/js-only-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/js-only-file-based/src/posts.js
  class NotFoundError (line 3) | class NotFoundError extends Error {}

FILE: e2e/react-router/js-only-file-based/src/routes/__root.jsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/_pathlessLayout.jsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout.jsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-a.jsx
  function LayoutAComponent (line 8) | function LayoutAComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-b.jsx
  function LayoutBComponent (line 8) | function LayoutBComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/index.jsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/js-only-file-based/src/routes/posts.$postId.jsx
  function PostErrorComponent (line 15) | function PostErrorComponent({ error }) {
  function PostComponent (line 19) | function PostComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/posts.index.jsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/js-only-file-based/src/routes/posts.route.jsx
  function PostsLayoutComponent (line 11) | function PostsLayoutComponent() {

FILE: e2e/react-router/js-only-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/js-only-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/rspack-basic-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/rspack-basic-file-based/src/app.tsx
  type Register (line 16) | interface Register {

FILE: e2e/react-router/rspack-basic-file-based/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/__root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/_layout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 6) | function LayoutAComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 6) | function LayoutBComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/posts.index.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/rspack-basic-file-based/src/routes/posts.tsx
  function PostsComponent (line 11) | function PostsComponent() {

FILE: e2e/react-router/rspack-basic-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/rspack-basic-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/app.tsx
  type Register (line 16) | interface Register {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/a.tsx
  function LayoutAComponent (line 6) | function LayoutAComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/b.tsx
  function LayoutBComponent (line 6) | function LayoutBComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/home.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/layout/first-layout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/layout/second-layout.tsx
  function LayoutComponent (line 8) | function LayoutComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/posts/posts-detail.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/posts/posts-home.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/posts/posts.tsx
  function PostsComponent (line 11) | function PostsComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/routes/root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/rspack-basic-virtual-named-export-config-file-based/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/playwright.browser.config.ts
  constant PORT (line 9) | const PORT = await getTestServerPort(
  constant EXTERNAL_PORT (line 12) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/scroll-restoration-sandbox-vite/playwright.hash.config.ts
  constant PORT (line 9) | const PORT = await getTestServerPort(
  constant EXTERNAL_PORT (line 12) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/main.tsx
  type Register (line 27) | interface Register {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/posts.tsx
  function sleep (line 3) | function sleep(ms: number) {
  type PostType (line 7) | type PostType = {
  class PostNotFoundError (line 19) | class PostNotFoundError extends Error {}

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 63) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 71) | interface FileRoutesByTo {
  type FileRoutesById (line 79) | interface FileRoutesById {
  type FileRouteTypes (line 88) | interface FileRouteTypes {
  type RootRouteChildren (line 115) | interface RootRouteChildren {
  type FileRoutesByPath (line 125) | interface FileRoutesByPath {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/(tests)/lazy-page.lazy.tsx
  function Component (line 10) | function Component() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/(tests)/lazy-with-loader-page.lazy.tsx
  function Component (line 8) | function Component() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/(tests)/normal-page.tsx
  function Component (line 10) | function Component() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/(tests)/page-with-search.tsx
  function Component (line 11) | function Component() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/(tests)/virtual-page.lazy.tsx
  function Component (line 10) | function Component() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/-components/scroll-block.tsx
  function ScrollBlock (line 4) | function ScrollBlock({ number = 100 }: { number?: number }) {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/__root.tsx
  function RootComponent (line 14) | function RootComponent() {
  function Nav (line 27) | function Nav({ type }: { type: 'header' | 'footer' }) {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/src/routes/index.tsx
  function HomeComponent (line 9) | function HomeComponent() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/scroll-restoration-sandbox-vite/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-router/sentry-integration/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-router/sentry-integration/src/main.tsx
  function RootComponent (line 26) | function RootComponent() {
  function IndexComponent (line 51) | function IndexComponent() {
  type Register (line 70) | interface Register {

FILE: e2e/react-router/view-transitions/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-router/view-transitions/src/main.tsx
  type Register (line 45) | interface Register {

FILE: e2e/react-router/view-transitions/src/posts.tsx
  type PostType (line 4) | type PostType = {

FILE: e2e/react-router/view-transitions/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 50) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 58) | interface FileRoutesByTo {
  type FileRoutesById (line 65) | interface FileRoutesById {
  type FileRouteTypes (line 74) | interface FileRouteTypes {
  type RootRouteChildren (line 95) | interface RootRouteChildren {
  type FileRoutesByPath (line 103) | interface FileRoutesByPath {
  type PostsRouteRouteChildren (line 149) | interface PostsRouteRouteChildren {

FILE: e2e/react-router/view-transitions/src/routes/__root.tsx
  function RootComponent (line 17) | function RootComponent() {

FILE: e2e/react-router/view-transitions/src/routes/explore.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-router/view-transitions/src/routes/how-it-works.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-router/view-transitions/src/routes/index.tsx
  function Home (line 9) | function Home() {

FILE: e2e/react-router/view-transitions/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-router/view-transitions/src/routes/posts.index.tsx
  function PostsIndexComponent (line 8) | function PostsIndexComponent() {

FILE: e2e/react-router/view-transitions/src/routes/posts.route.tsx
  function PostsLayoutComponent (line 11) | function PostsLayoutComponent() {

FILE: e2e/react-router/view-transitions/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-router/view-transitions/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-start/basic-auth/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-start/basic-auth/prisma/migrations/20240811183753_init/migration.sql
  type "User" (line 2) | CREATE TABLE "User" (
  type "User" (line 8) | CREATE UNIQUE INDEX "User_email_key" ON "User"("email")

FILE: e2e/react-start/basic-auth/src/components/Auth.tsx
  function Auth (line 1) | function Auth({

FILE: e2e/react-start/basic-auth/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/basic-auth/src/components/Login.tsx
  function Login (line 8) | function Login() {

FILE: e2e/react-start/basic-auth/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/basic-auth/src/hooks/useMutation.ts
  function useMutation (line 3) | function useMutation<TVariables, TData, TError = Error>(opts: {

FILE: e2e/react-start/basic-auth/src/prisma-generated/browser.ts
  type User (line 23) | type User = Prisma.UserModel

FILE: e2e/react-start/basic-auth/src/prisma-generated/client.ts
  type PrismaClient (line 38) | type PrismaClient<
  type User (line 51) | type User = Prisma.UserModel

FILE: e2e/react-start/basic-auth/src/prisma-generated/commonInputTypes.ts
  type StringFilter (line 15) | type StringFilter<$PrismaModel = never> = {
  type StringWithAggregatesFilter (line 29) | type StringWithAggregatesFilter<$PrismaModel = never> = {
  type NestedStringFilter (line 46) | type NestedStringFilter<$PrismaModel = never> = {
  type NestedStringWithAggregatesFilter (line 60) | type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
  type NestedIntFilter (line 77) | type NestedIntFilter<$PrismaModel = never> = {

FILE: e2e/react-start/basic-auth/src/prisma-generated/internal/class.ts
  function decodeBase64AsWasm (line 34) | async function decodeBase64AsWasm(
  type LogOptions (line 53) | type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
  type PrismaClientConstructor (line 60) | interface PrismaClientConstructor {
  type PrismaClient (line 104) | interface PrismaClient<
  function getPrismaClientClass (line 239) | function getPrismaClientClass(): PrismaClientConstructor {

FILE: e2e/react-start/basic-auth/src/prisma-generated/internal/prismaNamespace.ts
  type DMMF (line 23) | type DMMF = typeof runtime.DMMF
  type PrismaPromise (line 25) | type PrismaPromise<T> = runtime.Types.Public.PrismaPromise<T>
  type PrismaClientKnownRequestError (line 33) | type PrismaClientKnownRequestError =
  type PrismaClientUnknownRequestError (line 38) | type PrismaClientUnknownRequestError =
  type PrismaClientRustPanicError (line 42) | type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
  type PrismaClientInitializationError (line 46) | type PrismaClientInitializationError =
  type PrismaClientValidationError (line 50) | type PrismaClientValidationError = runtime.PrismaClientValidationError
  type Sql (line 60) | type Sql = runtime.Sql
  type Decimal (line 66) | type Decimal = runtime.Decimal
  type DecimalJsLike (line 68) | type DecimalJsLike = runtime.DecimalJsLike
  type Extension (line 73) | type Extension = runtime.Types.Extensions.UserArgs
  type Args (line 75) | type Args<T, F extends runtime.Operation> = runtime.Types.Public.Args<
  type Payload (line 79) | type Payload<
  type Result (line 83) | type Result<
  type Exact (line 88) | type Exact<A, W> = runtime.Types.Public.Exact<A, W>
  type PrismaVersion (line 90) | type PrismaVersion = {
  type Bytes (line 108) | type Bytes = runtime.Bytes
  type JsonObject (line 109) | type JsonObject = runtime.JsonObject
  type JsonArray (line 110) | type JsonArray = runtime.JsonArray
  type JsonValue (line 111) | type JsonValue = runtime.JsonValue
  type InputJsonObject (line 112) | type InputJsonObject = runtime.InputJsonObject
  type InputJsonArray (line 113) | type InputJsonArray = runtime.InputJsonArray
  type InputJsonValue (line 114) | type InputJsonValue = runtime.InputJsonValue
  type SelectAndInclude (line 148) | type SelectAndInclude = {
  type SelectAndOmit (line 153) | type SelectAndOmit = {
  type Prisma__Pick (line 161) | type Prisma__Pick<T, K extends keyof T> = {
  type Enumerable (line 165) | type Enumerable<T> = T | Array<T>
  type Subset (line 171) | type Subset<T, U> = {
  type SelectSubset (line 180) | type SelectSubset<T, U> = {
  type SubsetIntersection (line 192) | type SubsetIntersection<T, U, K> = {
  type Without (line 196) | type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never }
  type XOR (line 202) | type XOR<T, U> = T extends object
  type IsObject (line 211) | type IsObject<T extends any> =
  type UnEnumerate (line 227) | type UnEnumerate<T extends unknown> = T extends Array<infer U> ? U : T
  type __Either (line 233) | type __Either<O extends object, K extends Key> = Omit<O, K> &
  type EitherStrict (line 239) | type EitherStrict<O extends object, K extends Key> = Strict<__Either<O, K>>
  type EitherLoose (line 241) | type EitherLoose<O extends object, K extends Key> = ComputeRaw<__Either<...
  type _Either (line 243) | type _Either<O extends object, K extends Key, strict extends Boolean> = {
  type Either (line 248) | type Either<
  type Union (line 254) | type Union = any
  type PatchUndefined (line 256) | type PatchUndefined<O extends object, O1 extends object> = {
  type IntersectOf (line 261) | type IntersectOf<U extends Union> = (
  type Overwrite (line 267) | type Overwrite<O extends object, O1 extends object> = {
  type _Merge (line 271) | type _Merge<U extends object> = IntersectOf<
  type Key (line 280) | type Key = string | number | symbol
  type AtStrict (line 281) | type AtStrict<O extends object, K extends Key> = O[K & keyof O]
  type AtLoose (line 282) | type AtLoose<O extends object, K extends Key> = O extends unknown
  type At (line 285) | type At<O extends object, K extends Key, strict extends Boolean = 1> = {
  type ComputeRaw (line 290) | type ComputeRaw<A extends any> = A extends Function
  type OptionalFlat (line 296) | type OptionalFlat<O> = {
  type _Record (line 300) | type _Record<K extends keyof any, T> = {
  type NoExpand (line 305) | type NoExpand<T> = T extends unknown ? T : never
  type AtLeast (line 308) | type AtLeast<O extends object, K extends string> = NoExpand<
  type _Strict (line 316) | type _Strict<U, _U = U> = U extends unknown
  type Strict (line 320) | type Strict<U extends object> = ComputeRaw<_Strict<U>>
  type Merge (line 323) | type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>
  type Boolean (line 325) | type Boolean = True | False
  type True (line 327) | type True = 1
  type False (line 329) | type False = 0
  type Not (line 331) | type Not<B extends Boolean> = {
  type Extends (line 336) | type Extends<A1 extends any, A2 extends any> = [A1] extends [never]
  type Has (line 342) | type Has<U extends Union, U1 extends Union> = Not<
  type Or (line 346) | type Or<B1 extends Boolean, B2 extends Boolean> = {
  type Keys (line 357) | type Keys<U extends Union> = U extends unknown ? keyof U : never
  type GetScalarType (line 359) | type GetScalarType<T, O> = O extends object
  type FieldPaths (line 365) | type FieldPaths<T, U = Omit<T, '_avg' | '_sum' | '_count' | '_min' | '_m...
  type GetHavingFields (line 368) | type GetHavingFields<T> = {
  type _TupleToUnion (line 389) | type _TupleToUnion<T> = T extends (infer E)[] ? E : never
  type TupleToUnion (line 390) | type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>
  type MaybeTupleToUnion (line 391) | type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T
  type PickEnumerable (line 396) | type PickEnumerable<
  type ExcludeUnderscoreKeys (line 404) | type ExcludeUnderscoreKeys<T extends string> = T extends `_${string}`
  type FieldRef (line 408) | type FieldRef<Model, FieldType> = runtime.FieldRef<Model, FieldType>
  type FieldRefInputType (line 410) | type FieldRefInputType<Model, FieldType> = Model extends never
  type ModelName (line 418) | type ModelName = (typeof ModelName)[keyof typeof ModelName]
  type TypeMapCb (line 420) | interface TypeMapCb<GlobalOmitOptions = {}> extends runtime.Types.Utils
  type TypeMap (line 428) | type TypeMap<
  type TransactionIsolationLevel (line 550) | type TransactionIsolationLevel =
  type UserScalarFieldEnum (line 558) | type UserScalarFieldEnum =
  type SortOrder (line 566) | type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
  type StringFieldRefInput (line 575) | type StringFieldRefInput<$PrismaModel> = FieldRefInputType<
  type IntFieldRefInput (line 583) | type IntFieldRefInput<$PrismaModel> = FieldRefInputType<
  type BatchPayload (line 591) | type BatchPayload = {
  type DefaultPrismaClient (line 601) | type DefaultPrismaClient = PrismaClient
  type ErrorFormat (line 602) | type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
  type PrismaClientOptions (line 603) | type PrismaClientOptions = (
  type GlobalOmitConfig (line 674) | type GlobalOmitConfig = {
  type LogLevel (line 679) | type LogLevel = 'info' | 'query' | 'warn' | 'error'
  type LogDefinition (line 680) | type LogDefinition = {
  type CheckIsLogLevel (line 685) | type CheckIsLogLevel<T> = T extends LogLevel ? T : never
  type GetLogType (line 687) | type GetLogType<T> = CheckIsLogLevel<
  type GetEvents (line 691) | type GetEvents<T extends any[]> =
  type QueryEvent (line 694) | type QueryEvent = {
  type LogEvent (line 702) | type LogEvent = {
  type PrismaAction (line 709) | type PrismaAction =
  type TransactionClient (line 735) | type TransactionClient = Omit<

FILE: e2e/react-start/basic-auth/src/prisma-generated/internal/prismaNamespaceBrowser.ts
  type ModelName (line 60) | type ModelName = (typeof ModelName)[keyof typeof ModelName]
  type TransactionIsolationLevel (line 70) | type TransactionIsolationLevel =
  type UserScalarFieldEnum (line 78) | type UserScalarFieldEnum =
  type SortOrder (line 86) | type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]

FILE: e2e/react-start/basic-auth/src/prisma-generated/models/User.ts
  type UserModel (line 18) | type UserModel =
  type AggregateUser (line 21) | type AggregateUser = {
  type UserMinAggregateOutputType (line 27) | type UserMinAggregateOutputType = {
  type UserMaxAggregateOutputType (line 32) | type UserMaxAggregateOutputType = {
  type UserCountAggregateOutputType (line 37) | type UserCountAggregateOutputType = {
  type UserMinAggregateInputType (line 43) | type UserMinAggregateInputType = {
  type UserMaxAggregateInputType (line 48) | type UserMaxAggregateInputType = {
  type UserCountAggregateInputType (line 53) | type UserCountAggregateInputType = {
  type UserAggregateArgs (line 59) | type UserAggregateArgs<
  type GetUserAggregateType (line 113) | type GetUserAggregateType<T extends UserAggregateArgs> = {
  type UserGroupByArgs (line 121) | type UserGroupByArgs<
  type UserGroupByOutputType (line 138) | type UserGroupByOutputType = {
  type GetUserGroupByPayload (line 146) | type GetUserGroupByPayload<T extends UserGroupByArgs> = Prisma.PrismaPro...
  type UserWhereInput (line 158) | type UserWhereInput = {
  type UserOrderByWithRelationInput (line 166) | type UserOrderByWithRelationInput = {
  type UserWhereUniqueInput (line 171) | type UserWhereUniqueInput = Prisma.AtLeast<
  type UserOrderByWithAggregationInput (line 182) | type UserOrderByWithAggregationInput = {
  type UserScalarWhereWithAggregatesInput (line 190) | type UserScalarWhereWithAggregatesInput = {
  type UserCreateInput (line 202) | type UserCreateInput = {
  type UserUncheckedCreateInput (line 207) | type UserUncheckedCreateInput = {
  type UserUpdateInput (line 212) | type UserUpdateInput = {
  type UserUncheckedUpdateInput (line 217) | type UserUncheckedUpdateInput = {
  type UserCreateManyInput (line 222) | type UserCreateManyInput = {
  type UserUpdateManyMutationInput (line 227) | type UserUpdateManyMutationInput = {
  type UserUncheckedUpdateManyInput (line 232) | type UserUncheckedUpdateManyInput = {
  type UserCountOrderByAggregateInput (line 237) | type UserCountOrderByAggregateInput = {
  type UserMaxOrderByAggregateInput (line 242) | type UserMaxOrderByAggregateInput = {
  type UserMinOrderByAggregateInput (line 247) | type UserMinOrderByAggregateInput = {
  type StringFieldUpdateOperationsInput (line 252) | type StringFieldUpdateOperationsInput = {
  type UserSelect (line 256) | type UserSelect<
  type UserSelectCreateManyAndReturn (line 267) | type UserSelectCreateManyAndReturn<
  type UserSelectUpdateManyAndReturn (line 278) | type UserSelectUpdateManyAndReturn<
  type UserSelectScalar (line 289) | type UserSelectScalar = {
  type UserOmit (line 294) | type UserOmit<
  type $UserPayload (line 302) | type $UserPayload<
  type UserGetPayload (line 318) | type UserGetPayload<
  type UserCountArgs (line 322) | type UserCountArgs<
  type UserDelegate (line 329) | interface UserDelegate<
  type Prisma__UserClient (line 854) | interface Prisma__UserClient<
  type UserFieldRefs (line 903) | interface UserFieldRefs {
  type UserFindUniqueArgs (line 912) | type UserFindUniqueArgs<
  type UserFindUniqueOrThrowArgs (line 933) | type UserFindUniqueOrThrowArgs<
  type UserFindFirstArgs (line 954) | type UserFindFirstArgs<
  type UserFindFirstOrThrowArgs (line 1007) | type UserFindFirstOrThrowArgs<
  type UserFindManyArgs (line 1060) | type UserFindManyArgs<
  type UserCreateArgs (line 1108) | type UserCreateArgs<
  type UserCreateManyArgs (line 1129) | type UserCreateManyArgs<
  type UserCreateManyAndReturnArgs (line 1142) | type UserCreateManyAndReturnArgs<
  type UserUpdateArgs (line 1163) | type UserUpdateArgs<
  type UserUpdateManyArgs (line 1188) | type UserUpdateManyArgs<
  type UserUpdateManyAndReturnArgs (line 1212) | type UserUpdateManyAndReturnArgs<
  type UserUpsertArgs (line 1244) | type UserUpsertArgs<
  type UserDeleteArgs (line 1273) | type UserDeleteArgs<
  type UserDeleteManyArgs (line 1294) | type UserDeleteManyArgs<
  type UserDefaultArgs (line 1311) | type UserDefaultArgs<

FILE: e2e/react-start/basic-auth/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 61) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 70) | interface FileRoutesByTo {
  type FileRoutesById (line 78) | interface FileRoutesById {
  type FileRouteTypes (line 89) | interface FileRouteTypes {
  type RootRouteChildren (line 113) | interface RootRouteChildren {
  type FileRoutesByPath (line 122) | interface FileRoutesByPath {
  type AuthedPostsRouteChildren (line 182) | interface AuthedPostsRouteChildren {
  type AuthedRouteChildren (line 196) | interface AuthedRouteChildren {
  type Register (line 221) | interface Register {

FILE: e2e/react-start/basic-auth/src/router.tsx
  function getRouter (line 6) | function getRouter() {

FILE: e2e/react-start/basic-auth/src/routes/__root.tsx
  function RootComponent (line 89) | function RootComponent() {
  function RootDocument (line 97) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/basic-auth/src/routes/_authed/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-start/basic-auth/src/routes/_authed/posts.index.tsx
  function PostsIndexComponent (line 6) | function PostsIndexComponent() {

FILE: e2e/react-start/basic-auth/src/routes/_authed/posts.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-start/basic-auth/src/routes/index.tsx
  function Home (line 6) | function Home() {

FILE: e2e/react-start/basic-auth/src/routes/login.tsx
  function LoginComp (line 8) | function LoginComp() {

FILE: e2e/react-start/basic-auth/src/routes/signup.tsx
  function SignupComp (line 72) | function SignupComp() {

FILE: e2e/react-start/basic-auth/src/utils/posts.ts
  type PostType (line 5) | type PostType = {

FILE: e2e/react-start/basic-auth/src/utils/prisma.ts
  function hashPassword (line 10) | function hashPassword(password: string) {

FILE: e2e/react-start/basic-auth/src/utils/session.ts
  type SessionUser (line 5) | type SessionUser = {
  function useAppSession (line 9) | function useAppSession() {

FILE: e2e/react-start/basic-auth/tests/app.spec.ts
  function signup (line 4) | async function signup(
  function login (line 16) | async function login(

FILE: e2e/react-start/basic-cloudflare/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-start/basic-cloudflare/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/basic-cloudflare/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/basic-cloudflare/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 26) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 30) | interface FileRoutesByTo {
  type FileRoutesById (line 34) | interface FileRoutesById {
  type FileRouteTypes (line 39) | interface FileRouteTypes {
  type RootRouteChildren (line 47) | interface RootRouteChildren {
  type FileRoutesByPath (line 53) | interface FileRoutesByPath {
  type Register (line 82) | interface Register {

FILE: e2e/react-start/basic-cloudflare/src/router.tsx
  function getRouter (line 6) | function getRouter() {

FILE: e2e/react-start/basic-cloudflare/src/routes/__root.tsx
  function RootDocument (line 59) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/basic-cloudflare/src/routes/index.tsx
  function Home (line 17) | function Home() {

FILE: e2e/react-start/basic-cloudflare/src/routes/static.tsx
  function StaticPage (line 16) | function StaticPage() {

FILE: e2e/react-start/basic-cloudflare/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-start/basic-cloudflare/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-start/basic-cloudflare/worker-configuration.d.ts
  type Env (line 5) | interface Env {
  type Env (line 9) | interface Env extends Cloudflare.Env {}
  type StringifyValues (line 10) | type StringifyValues<EnvType extends Record<string, unknown>> = {
  type ProcessEnv (line 14) | interface ProcessEnv extends StringifyValues<Pick<Cloudflare.Env, "MY_VA...
  class DOMException (line 40) | class DOMException extends Error {
  type WorkerGlobalScopeEventMap (line 89) | type WorkerGlobalScopeEventMap = {
  type Console (line 104) | interface Console {
  type BufferSource (line 217) | type BufferSource = ArrayBufferView | ArrayBuffer;
  type TypedArray (line 218) | type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Arra...
  class CompileError (line 220) | class CompileError extends Error {
  class RuntimeError (line 223) | class RuntimeError extends Error {
  type ValueType (line 226) | type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64"...
  type GlobalDescriptor (line 227) | interface GlobalDescriptor {
  class Global (line 231) | class Global {
  type ImportValue (line 236) | type ImportValue = ExportValue | number;
  type ModuleImports (line 237) | type ModuleImports = Record<string, ImportValue>;
  type Imports (line 238) | type Imports = Record<string, ModuleImports>;
  type ExportValue (line 239) | type ExportValue = Function | Global | Memory | Table;
  type Exports (line 240) | type Exports = Record<string, ExportValue>;
  class Instance (line 241) | class Instance {
  type MemoryDescriptor (line 245) | interface MemoryDescriptor {
  class Memory (line 250) | class Memory {
  type ImportExportKind (line 255) | type ImportExportKind = "function" | "global" | "memory" | "table";
  type ModuleExportDescriptor (line 256) | interface ModuleExportDescriptor {
  type ModuleImportDescriptor (line 260) | interface ModuleImportDescriptor {
  type TableKind (line 270) | type TableKind = "anyfunc" | "externref";
  type TableDescriptor (line 271) | interface TableDescriptor {
  class Table (line 276) | class Table {
  type ServiceWorkerGlobalScope (line 292) | interface ServiceWorkerGlobalScope extends WorkerGlobalScope {
  type TestController (line 432) | interface TestController {
  type ExecutionContext (line 434) | interface ExecutionContext<Props = unknown> {
  type ExportedHandlerFetchHandler (line 439) | type ExportedHandlerFetchHandler<Env = unknown, CfHostMetadata = unknown...
  type ExportedHandlerTailHandler (line 440) | type ExportedHandlerTailHandler<Env = unknown, Props = unknown> = (event...
  type ExportedHandlerTraceHandler (line 441) | type ExportedHandlerTraceHandler<Env = unknown, Props = unknown> = (trac...
  type ExportedHandlerTailStreamHandler (line 442) | type ExportedHandlerTailStreamHandler<Env = unknown, Props = unknown> = ...
  type ExportedHandlerScheduledHandler (line 443) | type ExportedHandlerScheduledHandler<Env = unknown, Props = unknown> = (...
  type ExportedHandlerQueueHandler (line 444) | type ExportedHandlerQueueHandler<Env = unknown, Message = unknown, Props...
  type ExportedHandlerTestHandler (line 445) | type ExportedHandlerTestHandler<Env = unknown, Props = unknown> = (contr...
  type ExportedHandler (line 446) | interface ExportedHandler<Env = unknown, QueueHandlerMessage = unknown, ...
  type StructuredSerializeOptions (line 456) | interface StructuredSerializeOptions {
  type AlarmInvocationInfo (line 466) | interface AlarmInvocationInfo {
  type Cloudflare (line 470) | interface Cloudflare {
  type DurableObject (line 473) | interface DurableObject {
  type DurableObjectStub (line 480) | type DurableObjectStub<T extends Rpc.DurableObjectBranded | undefined = ...
  type DurableObjectId (line 484) | interface DurableObjectId {
  type DurableObjectJurisdiction (line 497) | type DurableObjectJurisdiction = "eu" | "fedramp" | "fedramp-high";
  type DurableObjectNamespaceNewUniqueIdOptions (line 498) | interface DurableObjectNamespaceNewUniqueIdOptions {
  type DurableObjectLocationHint (line 501) | type DurableObjectLocationHint = "wnam" | "enam" | "sam" | "weur" | "eeu...
  type DurableObjectRoutingMode (line 502) | type DurableObjectRoutingMode = "primary-only";
  type DurableObjectNamespaceGetDurableObjectOptions (line 503) | interface DurableObjectNamespaceGetDurableObjectOptions {
  type DurableObjectClass (line 507) | interface DurableObjectClass<_T extends Rpc.DurableObjectBranded | undef...
  type DurableObjectState (line 509) | interface DurableObjectState<Props = unknown> {
  type DurableObjectTransaction (line 526) | interface DurableObjectTransaction {
  type DurableObjectStorage (line 539) | interface DurableObjectStorage {
  type DurableObjectListOptions (line 560) | interface DurableObjectListOptions {
  type DurableObjectGetOptions (line 570) | interface DurableObjectGetOptions {
  type DurableObjectGetAlarmOptions (line 574) | interface DurableObjectGetAlarmOptions {
  type DurableObjectPutOptions (line 577) | interface DurableObjectPutOptions {
  type DurableObjectSetAlarmOptions (line 582) | interface DurableObjectSetAlarmOptions {
  class WebSocketRequestResponsePair (line 586) | class WebSocketRequestResponsePair {
  type AnalyticsEngineDataset (line 591) | interface AnalyticsEngineDataset {
  type AnalyticsEngineDataPoint (line 594) | interface AnalyticsEngineDataPoint {
  class Event (line 604) | class Event {
  type EventInit (line 723) | interface EventInit {
  type EventListener (line 728) | type EventListener<EventType extends Event = Event> = (event: EventType)...
  type EventListenerObject (line 729) | interface EventListenerObject<EventType extends Event = Event> {
  type EventListenerOrEventListenerObject (line 732) | type EventListenerOrEventListenerObject<EventType extends Event = Event>...
  class EventTarget (line 738) | class EventTarget<EventMap extends Record<string, Event> = Record<string...
  type EventTargetEventListenerOptions (line 759) | interface EventTargetEventListenerOptions {
  type EventTargetAddEventListenerOptions (line 762) | interface EventTargetAddEventListenerOptions {
  type EventTargetHandlerObject (line 768) | interface EventTargetHandlerObject {
  class AbortController (line 776) | class AbortController {
  type Scheduler (line 838) | interface Scheduler {
  type SchedulerWaitOptions (line 841) | interface SchedulerWaitOptions {
  class CustomEvent (line 862) | class CustomEvent<T = any> extends Event {
  type CustomEventCustomEventInit (line 871) | interface CustomEventCustomEventInit {
  class Blob (line 882) | class Blob {
  type BlobOptions (line 927) | interface BlobOptions {
  class File (line 935) | class File extends Blob {
  type FileOptions (line 950) | interface FileOptions {
  type CacheQueryOptions (line 981) | interface CacheQueryOptions {
  type CryptoKeyPair (line 1128) | interface CryptoKeyPair {
  type JsonWebKey (line 1132) | interface JsonWebKey {
  type RsaOtherPrimesInfo (line 1152) | interface RsaOtherPrimesInfo {
  type SubtleCryptoDeriveKeyAlgorithm (line 1157) | interface SubtleCryptoDeriveKeyAlgorithm {
  type SubtleCryptoEncryptAlgorithm (line 1165) | interface SubtleCryptoEncryptAlgorithm {
  type SubtleCryptoGenerateKeyAlgorithm (line 1174) | interface SubtleCryptoGenerateKeyAlgorithm {
  type SubtleCryptoHashAlgorithm (line 1182) | interface SubtleCryptoHashAlgorithm {
  type SubtleCryptoImportKeyAlgorithm (line 1185) | interface SubtleCryptoImportKeyAlgorithm {
  type SubtleCryptoSignAlgorithm (line 1192) | interface SubtleCryptoSignAlgorithm {
  type CryptoKeyKeyAlgorithm (line 1198) | interface CryptoKeyKeyAlgorithm {
  type CryptoKeyAesKeyAlgorithm (line 1201) | interface CryptoKeyAesKeyAlgorithm {
  type CryptoKeyHmacKeyAlgorithm (line 1205) | interface CryptoKeyHmacKeyAlgorithm {
  type CryptoKeyRsaKeyAlgorithm (line 1210) | interface CryptoKeyRsaKeyAlgorithm {
  type CryptoKeyEllipticKeyAlgorithm (line 1216) | interface CryptoKeyEllipticKeyAlgorithm {
  type CryptoKeyArbitraryKeyAlgorithm (line 1220) | interface CryptoKeyArbitraryKeyAlgorithm {
  class DigestStream (line 1226) | class DigestStream extends WritableStream<ArrayBuffer | ArrayBufferView> {
  class TextDecoder (line 1236) | class TextDecoder {
  class TextEncoder (line 1253) | class TextEncoder {
  type TextDecoderConstructorOptions (line 1269) | interface TextDecoderConstructorOptions {
  type TextDecoderDecodeOptions (line 1273) | interface TextDecoderDecodeOptions {
  type TextEncoderEncodeIntoResult (line 1276) | interface TextEncoderEncodeIntoResult {
  class ErrorEvent (line 1285) | class ErrorEvent extends Event {
  type ErrorEventErrorEventInit (line 1318) | interface ErrorEventErrorEventInit {
  class MessageEvent (line 1330) | class MessageEvent extends Event {
  type MessageEventInit (line 1363) | interface MessageEventInit {
  class FormData (line 1390) | class FormData {
  type ContentOptions (line 1467) | interface ContentOptions {
  class HTMLRewriter (line 1470) | class HTMLRewriter {
  type HTMLRewriterElementContentHandlers (line 1476) | interface HTMLRewriterElementContentHandlers {
  type HTMLRewriterDocumentContentHandlers (line 1481) | interface HTMLRewriterDocumentContentHandlers {
  type Doctype (line 1487) | interface Doctype {
  type Element (line 1492) | interface Element {
  type EndTag (line 1511) | interface EndTag {
  type Comment (line 1517) | interface Comment {
  type Text (line 1525) | interface Text {
  type DocumentEnd (line 1534) | interface DocumentEnd {
  type HeadersInit (line 1557) | type HeadersInit = Headers | Iterable<Iterable<string>> | Record<string,...
  class Headers (line 1563) | class Headers {
  type BodyInit (line 1617) | type BodyInit = ReadableStream<Uint8Array> | string | ArrayBuffer | Arra...
  type Response (line 1653) | interface Response extends Body {
  type ResponseInit (line 1705) | interface ResponseInit {
  type RequestInfo (line 1713) | type RequestInfo<CfHostMetadata = unknown, Cf = CfProperties<CfHostMetad...
  type Request (line 1728) | interface Request<CfHostMetadata = unknown, Cf = CfProperties<CfHostMeta...
  type RequestInit (line 1786) | interface RequestInit<Cf = CfProperties> {
  type Service (line 1805) | type Service<T extends (new (...args: any[]) => Rpc.WorkerEntrypointBran...
  type Fetcher (line 1806) | type Fetcher<T extends Rpc.EntrypointBranded | undefined = undefined, Re...
  type KVNamespaceListKey (line 1810) | interface KVNamespaceListKey<Metadata, Key extends string = string> {
  type KVNamespaceListResult (line 1815) | type KVNamespaceListResult<Metadata, Key extends string = string> = {
  type KVNamespace (line 1825) | interface KVNamespace<Key extends string = string> {
  type KVNamespaceListOptions (line 1858) | interface KVNamespaceListOptions {
  type KVNamespaceGetOptions (line 1863) | interface KVNamespaceGetOptions<Type> {
  type KVNamespacePutOptions (line 1867) | interface KVNamespacePutOptions {
  type KVNamespaceGetWithMetadataResult (line 1872) | interface KVNamespaceGetWithMetadataResult<Value, Metadata> {
  type QueueContentType (line 1877) | type QueueContentType = "text" | "bytes" | "json" | "v8";
  type Queue (line 1878) | interface Queue<Body = unknown> {
  type QueueSendOptions (line 1882) | interface QueueSendOptions {
  type QueueSendBatchOptions (line 1886) | interface QueueSendBatchOptions {
  type MessageSendRequest (line 1889) | interface MessageSendRequest<Body = unknown> {
  type QueueRetryOptions (line 1894) | interface QueueRetryOptions {
  type Message (line 1897) | interface Message<Body = unknown> {
  type QueueEvent (line 1905) | interface QueueEvent<Body = unknown> extends ExtendableEvent {
  type MessageBatch (line 1911) | interface MessageBatch<Body = unknown> {
  type R2Error (line 1917) | interface R2Error extends Error {
  type R2ListOptions (line 1924) | interface R2ListOptions {
  type R2MultipartUpload (line 1947) | interface R2MultipartUpload {
  type R2UploadedPart (line 1954) | interface R2UploadedPart {
  type R2ObjectBody (line 1973) | interface R2ObjectBody extends R2Object {
  type R2Range (line 1982) | type R2Range = {
  type R2Conditional (line 1991) | interface R2Conditional {
  type R2GetOptions (line 1998) | interface R2GetOptions {
  type R2PutOptions (line 2003) | interface R2PutOptions {
  type R2MultipartOptions (line 2015) | interface R2MultipartOptions {
  type R2Checksums (line 2021) | interface R2Checksums {
  type R2StringChecksums (line 2029) | interface R2StringChecksums {
  type R2HTTPMetadata (line 2036) | interface R2HTTPMetadata {
  type R2Objects (line 2044) | type R2Objects = {
  type R2UploadPartOptions (line 2053) | interface R2UploadPartOptions {
  type ScheduledController (line 2061) | interface ScheduledController {
  type QueuingStrategy (line 2066) | interface QueuingStrategy<T = any> {
  type UnderlyingSink (line 2070) | interface UnderlyingSink<W = any> {
  type UnderlyingByteSource (line 2077) | interface UnderlyingByteSource {
  type UnderlyingSource (line 2084) | interface UnderlyingSource<R = any> {
  type Transformer (line 2091) | interface Transformer<I = any, O = any> {
  type StreamPipeOptions (line 2100) | interface StreamPipeOptions {
  type ReadableStreamReadResult (line 2123) | type ReadableStreamReadResult<R = any> = {
  type ReadableStream (line 2135) | interface ReadableStream<R = any> {
  class ReadableStreamDefaultReader (line 2199) | class ReadableStreamDefaultReader<R = any> {
  class ReadableStreamBYOBReader (line 2221) | class ReadableStreamBYOBReader {
  type ReadableStreamBYOBReaderReadableStreamBYOBReaderReadOptions (line 2239) | interface ReadableStreamBYOBReaderReadableStreamBYOBReaderReadOptions {
  type ReadableStreamGetReaderOptions (line 2242) | interface ReadableStreamGetReaderOptions {
  type ReadableWritablePair (line 2394) | interface ReadableWritablePair<R = any, W = any> {
  class WritableStream (line 2408) | class WritableStream<W = any> {
  class WritableStreamDefaultWriter (line 2440) | class WritableStreamDefaultWriter<W = any> {
  class TransformStream (line 2490) | class TransformStream<I = any, O = any> {
  class FixedLengthStream (line 2505) | class FixedLengthStream extends IdentityTransformStream {
  class IdentityTransformStream (line 2508) | class IdentityTransformStream extends TransformStream<ArrayBuffer | Arra...
  type IdentityTransformStreamQueuingStrategy (line 2511) | interface IdentityTransformStreamQueuingStrategy {
  type ReadableStreamValuesOptions (line 2514) | interface ReadableStreamValuesOptions {
  class CompressionStream (line 2522) | class CompressionStream extends TransformStream<ArrayBuffer | ArrayBuffe...
  class DecompressionStream (line 2530) | class DecompressionStream extends TransformStream<ArrayBuffer | ArrayBuf...
  class TextEncoderStream (line 2538) | class TextEncoderStream extends TransformStream<string, Uint8Array> {
  class TextDecoderStream (line 2547) | class TextDecoderStream extends TransformStream<ArrayBuffer | ArrayBuffe...
  type TextDecoderStreamTextDecoderStreamInit (line 2553) | interface TextDecoderStreamTextDecoderStreamInit {
  class ByteLengthQueuingStrategy (line 2562) | class ByteLengthQueuingStrategy implements QueuingStrategy<ArrayBufferVi...
  class CountQueuingStrategy (line 2578) | class CountQueuingStrategy implements QueuingStrategy {
  type QueuingStrategyInit (line 2589) | interface QueuingStrategyInit {
  type ScriptVersion (line 2597) | interface ScriptVersion {
  type TraceItem (line 2606) | interface TraceItem {
  type TraceItemAlarmEventInfo (line 2624) | interface TraceItemAlarmEventInfo {
  type TraceItemCustomEventInfo (line 2627) | interface TraceItemCustomEventInfo {
  type TraceItemScheduledEventInfo (line 2629) | interface TraceItemScheduledEventInfo {
  type TraceItemQueueEventInfo (line 2633) | interface TraceItemQueueEventInfo {
  type TraceItemEmailEventInfo (line 2637) | interface TraceItemEmailEventInfo {
  type TraceItemTailEventInfo (line 2642) | interface TraceItemTailEventInfo {
  type TraceItemTailEventInfoTailItem (line 2645) | interface TraceItemTailEventInfoTailItem {
  type TraceItemFetchEventInfo (line 2648) | interface TraceItemFetchEventInfo {
  type TraceItemFetchEventInfoRequest (line 2652) | interface TraceItemFetchEventInfoRequest {
  type TraceItemFetchEventInfoResponse (line 2659) | interface TraceItemFetchEventInfoResponse {
  type TraceItemJsRpcEventInfo (line 2662) | interface TraceItemJsRpcEventInfo {
  type TraceItemHibernatableWebSocketEventInfo (line 2665) | interface TraceItemHibernatableWebSocketEventInfo {
  type TraceItemHibernatableWebSocketEventInfoMessage (line 2668) | interface TraceItemHibernatableWebSocketEventInfoMessage {
  type TraceItemHibernatableWebSocketEventInfoClose (line 2671) | interface TraceItemHibernatableWebSocketEventInfoClose {
  type TraceItemHibernatableWebSocketEventInfoError (line 2676) | interface TraceItemHibernatableWebSocketEventInfoError {
  type TraceLog (line 2679) | interface TraceLog {
  type TraceException (line 2684) | interface TraceException {
  type TraceDiagnosticChannelEvent (line 2690) | interface TraceDiagnosticChannelEvent {
  type TraceMetrics (line 2695) | interface TraceMetrics {
  type UnsafeTraceMetrics (line 2699) | interface UnsafeTraceMetrics {
  class URL (line 2707) | class URL {
  class URLSearchParams (line 2879) | class URLSearchParams {
  class URLPattern (line 2946) | class URLPattern {
  type URLPatternInit (line 2960) | interface URLPatternInit {
  type URLPatternComponentResult (line 2971) | interface URLPatternComponentResult {
  type URLPatternResult (line 2975) | interface URLPatternResult {
  type URLPatternOptions (line 2986) | interface URLPatternOptions {
  class CloseEvent (line 2994) | class CloseEvent extends Event {
  type CloseEventInit (line 3015) | interface CloseEventInit {
  type WebSocketEventMap (line 3020) | type WebSocketEventMap = {
  type WebSocket (line 3048) | interface WebSocket extends EventTarget<WebSocketEventMap> {
  type WebSocketAcceptOptions (line 3095) | interface WebSocketAcceptOptions {
  type SqlStorage (line 3111) | interface SqlStorage {
  type SqlStorageValue (line 3119) | type SqlStorageValue = ArrayBuffer | string | number | null;
  type Socket (line 3136) | interface Socket {
  type SocketOptions (line 3146) | interface SocketOptions {
  type SocketAddress (line 3151) | interface SocketAddress {
  type TlsOptions (line 3155) | interface TlsOptions {
  type SocketInfo (line 3158) | interface SocketInfo {
  class EventSource (line 3167) | class EventSource extends EventTarget {
  type EventSourceEventSourceInit (line 3210) | interface EventSourceEventSourceInit {
  type Container (line 3214) | interface Container {
  type ContainerStartupOptions (line 3225) | interface ContainerStartupOptions {
  class MessageChannel (line 3263) | class MessageChannel {
  type MessagePortPostMessageOptions (line 3278) | interface MessagePortPostMessageOptions {
  type LoopbackForExport (line 3281) | type LoopbackForExport<T extends (new (...args: any[]) => Rpc.Entrypoint...
  type LoopbackServiceStub (line 3282) | type LoopbackServiceStub<T extends Rpc.WorkerEntrypointBranded | undefin...
  type LoopbackDurableObjectClass (line 3287) | type LoopbackDurableObjectClass<T extends Rpc.DurableObjectBranded | und...
  type SyncKvStorage (line 3292) | interface SyncKvStorage {
  type SyncKvListOptions (line 3301) | interface SyncKvListOptions {
  type WorkerStub (line 3309) | interface WorkerStub {
  type WorkerStubEntrypointOptions (line 3312) | interface WorkerStubEntrypointOptions {
  type WorkerLoader (line 3315) | interface WorkerLoader {
  type WorkerLoaderModule (line 3319) | interface WorkerLoaderModule {
  type WorkerLoaderWorkerCode (line 3328) | interface WorkerLoaderWorkerCode {
  type AiSearchInternalError (line 3358) | interface AiSearchInternalError extends Error {
  type AiSearchNotFoundError (line 3360) | interface AiSearchNotFoundError extends Error {
  type AiSearchNameNotSetError (line 3362) | interface AiSearchNameNotSetError extends Error {
  type AiSearchSearchRequest (line 3365) | type AiSearchSearchRequest = {
  type AiSearchChatCompletionsRequest (line 3399) | type AiSearchChatCompletionsRequest = {
  type AiSearchSearchResponse (line 3432) | type AiSearchSearchResponse = {
  type AiSearchListResponse (line 3453) | type AiSearchListResponse = Array<{
  type AiSearchConfig (line 3464) | type AiSearchConfig = {
  type AiSearchInstance (line 3480) | type AiSearchInstance = {
  type AiImageClassificationInput (line 3526) | type AiImageClassificationInput = {
  type AiImageClassificationOutput (line 3529) | type AiImageClassificationOutput = {
  type AiImageToTextInput (line 3537) | type AiImageToTextInput = {
  type AiImageToTextOutput (line 3551) | type AiImageToTextOutput = {
  type AiImageTextToTextInput (line 3558) | type AiImageTextToTextInput = {
  type AiImageTextToTextOutput (line 3573) | type AiImageTextToTextOutput = {
  type AiMultimodalEmbeddingsInput (line 3580) | type AiMultimodalEmbeddingsInput = {
  type AiIMultimodalEmbeddingsOutput (line 3584) | type AiIMultimodalEmbeddingsOutput = {
  type AiObjectDetectionInput (line 3592) | type AiObjectDetectionInput = {
  type AiObjectDetectionOutput (line 3595) | type AiObjectDetectionOutput = {
  type AiSentenceSimilarityInput (line 3603) | type AiSentenceSimilarityInput = {
  type AiSentenceSimilarityOutput (line 3607) | type AiSentenceSimilarityOutput = number[];
  type AiAutomaticSpeechRecognitionInput (line 3612) | type AiAutomaticSpeechRecognitionInput = {
  type AiAutomaticSpeechRecognitionOutput (line 3615) | type AiAutomaticSpeechRecognitionOutput = {
  type AiSummarizationInput (line 3628) | type AiSummarizationInput = {
  type AiSummarizationOutput (line 3632) | type AiSummarizationOutput = {
  type AiTextClassificationInput (line 3639) | type AiTextClassificationInput = {
  type AiTextClassificationOutput (line 3642) | type AiTextClassificationOutput = {
  type AiTextEmbeddingsInput (line 3650) | type AiTextEmbeddingsInput = {
  type AiTextEmbeddingsOutput (line 3653) | type AiTextEmbeddingsOutput = {
  type RoleScopedChatInput (line 3661) | type RoleScopedChatInput = {
  type AiTextGenerationToolLegacyInput (line 3666) | type AiTextGenerationToolLegacyInput = {
  type AiTextGenerationToolInput (line 3680) | type AiTextGenerationToolInput = {
  type AiTextGenerationFunctionsInput (line 3697) | type AiTextGenerationFunctionsInput = {
  type AiTextGenerationResponseFormat (line 3701) | type AiTextGenerationResponseFormat = {
  type AiTextGenerationInput (line 3705) | type AiTextGenerationInput = {
  type AiTextGenerationToolLegacyOutput (line 3722) | type AiTextGenerationToolLegacyOutput = {
  type AiTextGenerationToolOutput (line 3726) | type AiTextGenerationToolOutput = {
  type UsageTags (line 3734) | type UsageTags = {
  type AiTextGenerationOutput (line 3739) | type AiTextGenerationOutput = {
  type AiTextToSpeechInput (line 3748) | type AiTextToSpeechInput = {
  type AiTextToSpeechOutput (line 3752) | type AiTextToSpeechOutput = Uint8Array | {
  type AiTextToImageInput (line 3759) | type AiTextToImageInput = {
  type AiTextToImageOutput (line 3772) | type AiTextToImageOutput = ReadableStream<Uint8Array>;
  type AiTranslationInput (line 3777) | type AiTranslationInput = {
  type AiTranslationOutput (line 3782) | type AiTranslationOutput = {
  type ResponsesInput (line 3799) | type ResponsesInput = {
  type ResponsesOutput (line 3821) | type ResponsesOutput = {
  type EasyInputMessage (line 3846) | type EasyInputMessage = {
  type ResponsesFunctionTool (line 3851) | type ResponsesFunctionTool = {
  type ResponseIncompleteDetails (line 3860) | type ResponseIncompleteDetails = {
  type ResponsePrompt (line 3863) | type ResponsePrompt = {
  type Reasoning (line 3870) | type Reasoning = {
  type ResponseContent (line 3875) | type ResponseContent = ResponseInputText | ResponseInputImage | Response...
  type ResponseContentReasoningText (line 3876) | type ResponseContentReasoningText = {
  type ResponseConversationParam (line 3880) | type ResponseConversationParam = {
  type ResponseCreatedEvent (line 3883) | type ResponseCreatedEvent = {
  type ResponseCustomToolCallOutput (line 3888) | type ResponseCustomToolCallOutput = {
  type ResponseError (line 3894) | type ResponseError = {
  type ResponseErrorEvent (line 3898) | type ResponseErrorEvent = {
  type ResponseFailedEvent (line 3905) | type ResponseFailedEvent = {
  type ResponseFormatText (line 3910) | type ResponseFormatText = {
  type ResponseFormatJSONObject (line 3913) | type ResponseFormatJSONObject = {
  type ResponseFormatTextConfig (line 3916) | type ResponseFormatTextConfig = ResponseFormatText | ResponseFormatTextJ...
  type ResponseFormatTextJSONSchemaConfig (line 3917) | type ResponseFormatTextJSONSchemaConfig = {
  type ResponseFunctionCallArgumentsDeltaEvent (line 3926) | type ResponseFunctionCallArgumentsDeltaEvent = {
  type ResponseFunctionCallArgumentsDoneEvent (line 3933) | type ResponseFunctionCallArgumentsDoneEvent = {
  type ResponseFunctionCallOutputItem (line 3941) | type ResponseFunctionCallOutputItem = ResponseInputTextContent | Respons...
  type ResponseFunctionCallOutputItemList (line 3942) | type ResponseFunctionCallOutputItemList = Array<ResponseFunctionCallOutp...
  type ResponseFunctionToolCall (line 3943) | type ResponseFunctionToolCall = {
  type ResponseFunctionToolCallItem (line 3951) | interface ResponseFunctionToolCallItem extends ResponseFunctionToolCall {
  type ResponseFunctionToolCallOutputItem (line 3954) | type ResponseFunctionToolCallOutputItem = {
  type ResponseIncludable (line 3961) | type ResponseIncludable = "message.input_image.image_url" | "message.out...
  type ResponseIncompleteEvent (line 3962) | type ResponseIncompleteEvent = {
  type ResponseInput (line 3967) | type ResponseInput = Array<ResponseInputItem>;
  type ResponseInputContent (line 3968) | type ResponseInputContent = ResponseInputText | ResponseInputImage;
  type ResponseInputImage (line 3969) | type ResponseInputImage = {
  type ResponseInputImageContent (line 3977) | type ResponseInputImageContent = {
  type ResponseInputItem (line 3985) | type ResponseInputItem = EasyInputMessage | ResponseInputItemMessage | R...
  type ResponseInputItemFunctionCallOutput (line 3986) | type ResponseInputItemFunctionCallOutput = {
  type ResponseInputItemMessage (line 3993) | type ResponseInputItemMessage = {
  type ResponseInputMessageContentList (line 3999) | type ResponseInputMessageContentList = Array<ResponseInputContent>;
  type ResponseInputMessageItem (line 4000) | type ResponseInputMessageItem = {
  type ResponseInputText (line 4007) | type ResponseInputText = {
  type ResponseInputTextContent (line 4011) | type ResponseInputTextContent = {
  type ResponseItem (line 4015) | type ResponseItem = ResponseInputMessageItem | ResponseOutputMessage | R...
  type ResponseOutputItem (line 4016) | type ResponseOutputItem = ResponseOutputMessage | ResponseFunctionToolCa...
  type ResponseOutputItemAddedEvent (line 4017) | type ResponseOutputItemAddedEvent = {
  type ResponseOutputItemDoneEvent (line 4023) | type ResponseOutputItemDoneEvent = {
  type ResponseOutputMessage (line 4029) | type ResponseOutputMessage = {
  type ResponseOutputRefusal (line 4036) | type ResponseOutputRefusal = {
  type ResponseOutputText (line 4040) | type ResponseOutputText = {
  type ResponseReasoningItem (line 4045) | type ResponseReasoningItem = {
  type ResponseReasoningSummaryItem (line 4053) | type ResponseReasoningSummaryItem = {
  type ResponseReasoningContentItem (line 4057) | type ResponseReasoningContentItem = {
  type ResponseReasoningTextDeltaEvent (line 4061) | type ResponseReasoningTextDeltaEvent = {
  type ResponseReasoningTextDoneEvent (line 4069) | type ResponseReasoningTextDoneEvent = {
  type ResponseRefusalDeltaEvent (line 4077) | type ResponseRefusalDeltaEvent = {
  type ResponseRefusalDoneEvent (line 4085) | type ResponseRefusalDoneEvent = {
  type ResponseStatus (line 4093) | type ResponseStatus = "completed" | "failed" | "in_progress" | "cancelle...
  type ResponseStreamEvent (line 4094) | type ResponseStreamEvent = ResponseCompletedEvent | ResponseCreatedEvent...
  type ResponseCompletedEvent (line 4095) | type ResponseCompletedEvent = {
  type ResponseTextConfig (line 4100) | type ResponseTextConfig = {
  type ResponseTextDeltaEvent (line 4104) | type ResponseTextDeltaEvent = {
  type ResponseTextDoneEvent (line 4113) | type ResponseTextDoneEvent = {
  type Logprob (line 4122) | type Logprob = {
  type TopLogprob (line 4127) | type TopLogprob = {
  type ResponseUsage (line 4131) | type ResponseUsage = {
  type Tool (line 4136) | type Tool = ResponsesFunctionTool;
  type ToolChoiceFunction (line 4137) | type ToolChoiceFunction = {
  type ToolChoiceOptions (line 4141) | type ToolChoiceOptions = "none";
  type ReasoningEffort (line 4142) | type ReasoningEffort = "minimal" | "low" | "medium" | "high" | null;
  type StreamOptions (line 4143) | type StreamOptions = {
  type Ai_Cf_Baai_Bge_Base_En_V1_5_Input (line 4146) | type Ai_Cf_Baai_Bge_Base_En_V1_5_Input = {
  type Ai_Cf_Baai_Bge_Base_En_V1_5_Output (line 4164) | type Ai_Cf_Baai_Bge_Base_En_V1_5_Output = {
  type Ai_Cf_Baai_Bge_Base_En_V1_5_AsyncResponse (line 4175) | interface Ai_Cf_Baai_Bge_Base_En_V1_5_AsyncResponse {
  type Ai_Cf_Openai_Whisper_Input (line 4185) | type Ai_Cf_Openai_Whisper_Input = string | {
  type Ai_Cf_Openai_Whisper_Output (line 4191) | interface Ai_Cf_Openai_Whisper_Output {
  type Ai_Cf_Meta_M2M100_1_2B_Input (line 4214) | type Ai_Cf_Meta_M2M100_1_2B_Input = {
  type Ai_Cf_Meta_M2M100_1_2B_Output (line 4246) | type Ai_Cf_Meta_M2M100_1_2B_Output = {
  type Ai_Cf_Meta_M2M100_1_2B_AsyncResponse (line 4252) | interface Ai_Cf_Meta_M2M100_1_2B_AsyncResponse {
  type Ai_Cf_Baai_Bge_Small_En_V1_5_Input (line 4262) | type Ai_Cf_Baai_Bge_Small_En_V1_5_Input = {
  type Ai_Cf_Baai_Bge_Small_En_V1_5_Output (line 4280) | type Ai_Cf_Baai_Bge_Small_En_V1_5_Output = {
  type Ai_Cf_Baai_Bge_Small_En_V1_5_AsyncResponse (line 4291) | interface Ai_Cf_Baai_Bge_Small_En_V1_5_AsyncResponse {
  type Ai_Cf_Baai_Bge_Large_En_V1_5_Input (line 4301) | type Ai_Cf_Baai_Bge_Large_En_V1_5_Input = {
  type Ai_Cf_Baai_Bge_Large_En_V1_5_Output (line 4319) | type Ai_Cf_Baai_Bge_Large_En_V1_5_Output = {
  type Ai_Cf_Baai_Bge_Large_En_V1_5_AsyncResponse (line 4330) | interface Ai_Cf_Baai_Bge_Large_En_V1_5_AsyncResponse {
  type Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Input (line 4340) | type Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Input = string | {
  type Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Output (line 4379) | interface Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Output {
  type Ai_Cf_Openai_Whisper_Tiny_En_Input (line 4386) | type Ai_Cf_Openai_Whisper_Tiny_En_Input = string | {
  type Ai_Cf_Openai_Whisper_Tiny_En_Output (line 4392) | interface Ai_Cf_Openai_Whisper_Tiny_En_Output {
  type Ai_Cf_Openai_Whisper_Large_V3_Turbo_Input (line 4415) | interface Ai_Cf_Openai_Whisper_Large_V3_Turbo_Input {
  type Ai_Cf_Openai_Whisper_Large_V3_Turbo_Output (line 4441) | interface Ai_Cf_Openai_Whisper_Large_V3_Turbo_Output {
  type Ai_Cf_Baai_Bge_M3_Input (line 4521) | type Ai_Cf_Baai_Bge_M3_Input = Ai_Cf_Baai_Bge_M3_Input_QueryAnd_Contexts...
  type Ai_Cf_Baai_Bge_M3_Input_QueryAnd_Contexts (line 4527) | interface Ai_Cf_Baai_Bge_M3_Input_QueryAnd_Contexts {
  type Ai_Cf_Baai_Bge_M3_Input_Embedding (line 4546) | interface Ai_Cf_Baai_Bge_M3_Input_Embedding {
  type Ai_Cf_Baai_Bge_M3_Input_QueryAnd_Contexts_1 (line 4553) | interface Ai_Cf_Baai_Bge_M3_Input_QueryAnd_Contexts_1 {
  type Ai_Cf_Baai_Bge_M3_Input_Embedding_1 (line 4572) | interface Ai_Cf_Baai_Bge_M3_Input_Embedding_1 {
  type Ai_Cf_Baai_Bge_M3_Output (line 4579) | type Ai_Cf_Baai_Bge_M3_Output = Ai_Cf_Baai_Bge_M3_Ouput_Query | Ai_Cf_Ba...
  type Ai_Cf_Baai_Bge_M3_Ouput_Query (line 4580) | interface Ai_Cf_Baai_Bge_M3_Ouput_Query {
  type Ai_Cf_Baai_Bge_M3_Output_EmbeddingFor_Contexts (line 4592) | interface Ai_Cf_Baai_Bge_M3_Output_EmbeddingFor_Contexts {
  type Ai_Cf_Baai_Bge_M3_Ouput_Embedding (line 4600) | interface Ai_Cf_Baai_Bge_M3_Ouput_Embedding {
  type Ai_Cf_Baai_Bge_M3_AsyncResponse (line 4611) | interface Ai_Cf_Baai_Bge_M3_AsyncResponse {
  type Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Input (line 4621) | interface Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Input {
  type Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Output (line 4631) | interface Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Output {
  type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Input (line 4641) | type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Input = Ai_Cf_Meta_Llama_3...
  type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Prompt (line 4642) | interface Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Prompt {
  type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Messages (line 4693) | interface Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Messages {
  type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Output (line 4861) | type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Output = {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Input (line 4884) | type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Input = Ai_Cf_Meta_Llama...
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Prompt (line 4885) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Prompt {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_JSON_Mode (line 4936) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_JSON_Mode {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Messages (line 4940) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Messages {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_JSON_Mode_1 (line 5087) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_JSON_Mode_1 {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Async_Batch (line 5091) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Async_Batch {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_JSON_Mode_2 (line 5136) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_JSON_Mode_2 {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Output (line 5140) | type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Output = {
  type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_AsyncResponse (line 5176) | interface Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_AsyncResponse {
  type Ai_Cf_Meta_Llama_Guard_3_8B_Input (line 5186) | interface Ai_Cf_Meta_Llama_Guard_3_8B_Input {
  type Ai_Cf_Meta_Llama_Guard_3_8B_Output (line 5218) | interface Ai_Cf_Meta_Llama_Guard_3_8B_Output {
  type Ai_Cf_Baai_Bge_Reranker_Base_Input (line 5251) | interface Ai_Cf_Baai_Bge_Reranker_Base_Input {
  type Ai_Cf_Baai_Bge_Reranker_Base_Output (line 5269) | interface Ai_Cf_Baai_Bge_Reranker_Base_Output {
  type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Input (line 5285) | type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Input = Ai_Cf_Qwen_Qwen2_5_Co...
  type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Prompt (line 5286) | interface Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Prompt {
  type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_JSON_Mode (line 5337) | interface Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_JSON_Mode {
  type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Messages (line 5341) | interface Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Messages {
  type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_JSON_Mode_1 (line 5488) | interface Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_JSON_Mode_1 {
  type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Output (line 5492) | type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Output = {
  type Ai_Cf_Qwen_Qwq_32B_Input (line 5532) | type Ai_Cf_Qwen_Qwq_32B_Input = Ai_Cf_Qwen_Qwq_32B_Prompt | Ai_Cf_Qwen_Q...
  type Ai_Cf_Qwen_Qwq_32B_Prompt (line 5533) | interface Ai_Cf_Qwen_Qwq_32B_Prompt {
  type Ai_Cf_Qwen_Qwq_32B_Messages (line 5583) | interface Ai_Cf_Qwen_Qwq_32B_Messages {
  type Ai_Cf_Qwen_Qwq_32B_Output (line 5758) | type Ai_Cf_Qwen_Qwq_32B_Output = {
  type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Input (line 5798) | type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Input = Ai_Cf_Mistra...
  type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Prompt (line 5799) | interface Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Prompt {
  type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Messages (line 5849) | interface Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Messages {
  type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Output (line 6024) | type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Output = {
  type Ai_Cf_Google_Gemma_3_12B_It_Input (line 6064) | type Ai_Cf_Google_Gemma_3_12B_It_Input = Ai_Cf_Google_Gemma_3_12B_It_Pro...
  type Ai_Cf_Google_Gemma_3_12B_It_Prompt (line 6065) | interface Ai_Cf_Google_Gemma_3_12B_It_Prompt {
  type Ai_Cf_Google_Gemma_3_12B_It_Messages (line 6115) | interface Ai_Cf_Google_Gemma_3_12B_It_Messages {
  type Ai_Cf_Google_Gemma_3_12B_It_Output (line 6274) | type Ai_Cf_Google_Gemma_3_12B_It_Output = {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Input (line 6314) | type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Input = Ai_Cf_Meta_Llama_...
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Prompt (line 6315) | interface Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Prompt {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_JSON_Mode (line 6366) | interface Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_JSON_Mode {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Messages (line 6370) | interface Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Messages {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Async_Batch (line 6546) | interface Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Async_Batch {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Prompt_Inner (line 6549) | interface Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Prompt_Inner {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Messages_Inner (line 6600) | interface Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Messages_Inner {
  type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Output (line 6776) | type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Output = {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Input (line 6829) | type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Input = Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_P...
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Prompt (line 6830) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Prompt {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode (line 6881) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Messages (line 6885) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Messages {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode_1 (line 7032) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode_1 {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Async_Batch (line 7036) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Async_Batch {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Prompt_1 (line 7039) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Prompt_1 {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode_2 (line 7090) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode_2 {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Messages_1 (line 7094) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Messages_1 {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode_3 (line 7241) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_JSON_Mode_3 {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Output (line 7245) | type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Output = Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_...
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Chat_Completion_Response (line 7246) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Chat_Completion_Response {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Text_Completion_Response (line 7346) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_Text_Completion_Response {
  type Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_AsyncResponse (line 7410) | interface Ai_Cf_Qwen_Qwen3_30B_A3B_Fp8_AsyncResponse {
  type Ai_Cf_Deepgram_Nova_3_Input (line 7420) | interface Ai_Cf_Deepgram_Nova_3_Input {
  type Ai_Cf_Deepgram_Nova_3_Output (line 7566) | interface Ai_Cf_Deepgram_Nova_3_Output {
  type Ai_Cf_Qwen_Qwen3_Embedding_0_6B_Input (line 7603) | interface Ai_Cf_Qwen_Qwen3_Embedding_0_6B_Input {
  type Ai_Cf_Qwen_Qwen3_Embedding_0_6B_Output (line 7612) | interface Ai_Cf_Qwen_Qwen3_Embedding_0_6B_Output {
  type Ai_Cf_Pipecat_Ai_Smart_Turn_V2_Input (line 7620) | type Ai_Cf_Pipecat_Ai_Smart_Turn_V2_Input = {
  type Ai_Cf_Pipecat_Ai_Smart_Turn_V2_Output (line 7642) | interface Ai_Cf_Pipecat_Ai_Smart_Turn_V2_Output {
  type Ai_Cf_Leonardo_Phoenix_1_0_Input (line 7664) | interface Ai_Cf_Leonardo_Phoenix_1_0_Input {
  type Ai_Cf_Leonardo_Phoenix_1_0_Output (line 7697) | type Ai_Cf_Leonardo_Phoenix_1_0_Output = string;
  type Ai_Cf_Leonardo_Lucid_Origin_Input (line 7702) | interface Ai_Cf_Leonardo_Lucid_Origin_Input {
  type Ai_Cf_Leonardo_Lucid_Origin_Output (line 7732) | interface Ai_Cf_Leonardo_Lucid_Origin_Output {
  type Ai_Cf_Deepgram_Aura_1_Input (line 7742) | interface Ai_Cf_Deepgram_Aura_1_Input {
  type Ai_Cf_Deepgram_Aura_1_Output (line 7771) | type Ai_Cf_Deepgram_Aura_1_Output = string;
  type Ai_Cf_Ai4Bharat_Indictrans2_En_Indic_1B_Input (line 7776) | interface Ai_Cf_Ai4Bharat_Indictrans2_En_Indic_1B_Input {
  type Ai_Cf_Ai4Bharat_Indictrans2_En_Indic_1B_Output (line 7786) | interface Ai_Cf_Ai4Bharat_Indictrans2_En_Indic_1B_Output {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Input (line 7796) | type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Input = Ai_Cf_Aisingapor...
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Prompt (line 7797) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Prompt {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode (line 7848) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Messages (line 7852) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Messages {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode_1 (line 7999) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode_1 {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Async_Batch (line 8003) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Async_Batch {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Prompt_1 (line 8006) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Prompt_1 {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode_2 (line 8057) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode_2 {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Messages_1 (line 8061) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Messages_1 {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode_3 (line 8208) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_JSON_Mode_3 {
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Output (line 8212) | type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Output = Ai_Cf_Aisingapo...
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Chat_Completion_Response (line 8213) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Chat_Completion_Res...
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Text_Completion_Response (line 8313) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_Text_Completion_Res...
  type Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_AsyncResponse (line 8377) | interface Ai_Cf_Aisingapore_Gemma_Sea_Lion_V4_27B_It_AsyncResponse {
  type Ai_Cf_Pfnet_Plamo_Embedding_1B_Input (line 8387) | interface Ai_Cf_Pfnet_Plamo_Embedding_1B_Input {
  type Ai_Cf_Pfnet_Plamo_Embedding_1B_Output (line 8393) | interface Ai_Cf_Pfnet_Plamo_Embedding_1B_Output {
  type Ai_Cf_Deepgram_Flux_Input (line 8413) | interface Ai_Cf_Deepgram_Flux_Input {
  type Ai_Cf_Deepgram_Flux_Output (line 8450) | interface Ai_Cf_Deepgram_Flux_Output {
  type Ai_Cf_Deepgram_Aura_2_En_Input (line 8501) | interface Ai_Cf_Deepgram_Aura_2_En_Input {
  type Ai_Cf_Deepgram_Aura_2_En_Output (line 8530) | type Ai_Cf_Deepgram_Aura_2_En_Output = string;
  type Ai_Cf_Deepgram_Aura_2_Es_Input (line 8535) | interface Ai_Cf_Deepgram_Aura_2_Es_Input {
  type Ai_Cf_Deepgram_Aura_2_Es_Output (line 8564) | type Ai_Cf_Deepgram_Aura_2_Es_Output = string;
  type AiModels (line 8569) | interface AiModels {
  type AiOptions (line 8655) | type AiOptions = {
  type AiModelsSearchParams (line 8680) | type AiModelsSearchParams = {
  type AiModelsSearchObject (line 8689) | type AiModelsSearchObject = {
  type InferenceUpstreamError (line 8705) | interface InferenceUpstreamError extends Error {
  type AiInternalError (line 8707) | interface AiInternalError extends Error {
  type AiModelListType (line 8709) | type AiModelListType = Record<string, any>;
  type GatewayRetries (line 8768) | type GatewayRetries = {
  type GatewayOptions (line 8773) | type GatewayOptions = {
  type UniversalGatewayOptions (line 8784) | type UniversalGatewayOptions = Exclude<GatewayOptions, 'id'> & {
  type AiGatewayPatchLog (line 8790) | type AiGatewayPatchLog = {
  type AiGatewayLog (line 8795) | type AiGatewayLog = {
  type AIGatewayProviders (line 8822) | type AIGatewayProviders = 'workers-ai' | 'anthropic' | 'aws-bedrock' | '...
  type AIGatewayHeaders (line 8823) | type AIGatewayHeaders = {
  type AIGatewayUniversalRequest (line 8844) | type AIGatewayUniversalRequest = {
  type AiGatewayInternalError (line 8850) | interface AiGatewayInternalError extends Error {
  type AiGatewayLogNotFound (line 8852) | interface AiGatewayLogNotFound extends Error {
  type AutoRAGInternalError (line 8867) | interface AutoRAGInternalError extends Error {
  type AutoRAGNotFoundError (line 8873) | interface AutoRAGNotFoundError extends Error {
  type AutoRAGUnauthorizedError (line 8878) | interface AutoRAGUnauthorizedError extends Error {
  type AutoRAGNameNotSetError (line 8884) | interface AutoRAGNameNotSetError extends Error {
  type ComparisonFilter (line 8886) | type ComparisonFilter = {
  type CompoundFilter (line 8891) | type CompoundFilter = {
  type AutoRagSearchRequest (line 8900) | type AutoRagSearchRequest = {
  type AutoRagAiSearchRequest (line 8919) | type AutoRagAiSearchRequest = AutoRagSearchRequest & {
  type AutoRagAiSearchRequestStreaming (line 8928) | type AutoRagAiSearchRequestStreaming = Omit<AutoRagAiSearchRequest, 'str...
  type AutoRagSearchResponse (line 8936) | type AutoRagSearchResponse = {
  type AutoRagListResponse (line 8957) | type AutoRagListResponse = {
  type AutoRagAiSearchResponse (line 8970) | type AutoRagAiSearchResponse = AutoRagSearchResponse & {
  type BasicImageTransformations (line 9013) | interface BasicImageTransformations {
  type BasicImageTransformationsGravityCoordinates (line 9080) | interface BasicImageTransformationsGravityCoordinates {
  type RequestInitCfProperties (line 9094) | interface RequestInitCfProperties extends Record<string, unknown> {
  type RequestInitCfPropertiesImageDraw (line 9145) | interface RequestInitCfPropertiesImageDraw extends BasicImageTransformat...
  type RequestInitCfPropertiesImage (line 9182) | interface RequestInitCfPropertiesImage extends BasicImageTransformations {
  type RequestInitCfPropertiesImageMinify (line 9333) | interface RequestInitCfPropertiesImageMinify {
  type RequestInitCfPropertiesR2 (line 9338) | interface RequestInitCfPropertiesR2 {
  type IncomingRequestCfProperties (line 9347) | type IncomingRequestCfProperties<HostMetadata = unknown> = IncomingReque...
  type IncomingRequestCfPropertiesBase (line 9348) | interface IncomingRequestCfPropertiesBase extends Record<string, unknown> {
  type IncomingRequestCfPropertiesBotManagementBase (line 9426) | interface IncomingRequestCfPropertiesBotManagementBase {
  type IncomingRequestCfPropertiesBotManagement (line 9453) | interface IncomingRequestCfPropertiesBotManagement {
  type IncomingRequestCfPropertiesBotManagementEnterprise (line 9465) | interface IncomingRequestCfPropertiesBotManagementEnterprise extends Inc...
  type IncomingRequestCfPropertiesCloudflareForSaaSEnterprise (line 9477) | interface IncomingRequestCfPropertiesCloudflareForSaaSEnterprise<HostMet...
  type IncomingRequestCfPropertiesCloudflareAccessOrApiShield (line 9486) | interface IncomingRequestCfPropertiesCloudflareAccessOrApiShield {
  type IncomingRequestCfPropertiesExportedAuthenticatorMetadata (line 9506) | interface IncomingRequestCfPropertiesExportedAuthenticatorMetadata {
  type IncomingRequestCfPropertiesGeographicInformation (line 9535) | interface IncomingRequestCfPropertiesGeographicInformation {
  type IncomingRequestCfPropertiesTLSClientAuth (line 9612) | interface IncomingRequestCfPropertiesTLSClientAuth {
  type IncomingRequestCfPropertiesTLSClientAuthPlaceholder (line 9705) | interface IncomingRequestCfPropertiesTLSClientAuthPlaceholder {
  type CertVerificationStatus (line 9725) | type CertVerificationStatus =
  type IncomingRequestCfPropertiesEdgeRequestKeepAliveStatus (line 9743) | type IncomingRequestCfPropertiesEdgeRequestKeepAliveStatus = 0 /** Unkno...
  type Iso3166Alpha2Code (line 9745) | type Iso3166Alpha2Code = "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" ...
  type ContinentCode (line 9747) | type ContinentCode = "AF" | "AN" | "AS" | "EU" | "NA" | "OC" | "SA";
  type CfProperties (line 9748) | type CfProperties<HostMetadata = unknown> = IncomingRequestCfProperties<...
  type D1Meta (line 9749) | interface D1Meta {
  type D1Response (line 9781) | interface D1Response {
  type D1Result (line 9786) | type D1Result<T = unknown> = D1Response & {
  type D1ExecResult (line 9789) | interface D1ExecResult {
  type D1SessionConstraint (line 9793) | type D1SessionConstraint =
  type D1SessionBookmark (line 9802) | type D1SessionBookmark = string;
  type Disposable (line 9851) | interface Disposable {
  type EmailSendResult (line 9856) | interface EmailSendResult {
  type EmailMessage (line 9865) | interface EmailMessage {
  type ForwardableEmailMessage (line 9878) | interface ForwardableEmailMessage extends EmailMessage {
  type EmailAttachment (line 9912) | type EmailAttachment = {
  type EmailAddress (line 9926) | interface EmailAddress {
  type SendEmail (line 9933) | interface SendEmail {
  type EmailExportedHandler (line 9951) | type EmailExportedHandler<Env = unknown, Props = unknown> = (message: Fo...
  type HelloWorldBinding (line 9962) | interface HelloWorldBinding {
  type Hyperdrive (line 9975) | interface Hyperdrive {
  type ImageInfoResponse (line 10025) | type ImageInfoResponse = {
  type ImageTransform (line 10033) | type ImageTransform = {
  type ImageDrawOptions (line 10075) | type ImageDrawOptions = {
  type ImageInputOptions (line 10083) | type ImageInputOptions = {
  type ImageOutputOptions (line 10086) | type ImageOutputOptions = {
  type ImageMetadata (line 10092) | interface ImageMetadata {
  type ImageUploadOptions (line 10102) | interface ImageUploadOptions {
  type ImageUpdateOptions (line 10110) | interface ImageUpdateOptions {
  type ImageListOptions (line 10115) | interface ImageListOptions {
  type ImageList (line 10121) | interface ImageList {
  type HostedImagesBinding (line 10126) | interface HostedImagesBinding {
  type ImagesBinding (line 10169) | interface ImagesBinding {
  type ImageTransformer (line 10187) | interface ImageTransformer {
  type ImageTransformationOutputOptions (line 10208) | type ImageTransformationOutputOptions = {
  type ImageTransformationResult (line 10211) | interface ImageTransformationResult {
  type ImagesError (line 10225) | interface ImagesError extends Error {
  type MediaBinding (line 10234) | interface MediaBinding {
  type MediaTransformer (line 10246) | interface MediaTransformer {
  type MediaTransformationGenerator (line 10264) | interface MediaTransformationGenerator {
  type MediaTransformationResult (line 10276) | interface MediaTransformationResult {
  type MediaTransformationInputOptions (line 10297) | type MediaTransformationInputOptions = {
  type MediaTransformationOutputOptions (line 10309) | type MediaTransformationOutputOptions = {
  type MediaError (line 10337) | interface MediaError extends Error {
  type NodeStyleServer (line 10343) | interface NodeStyleServer {
  type Params (line 10355) | type Params<P extends string = any> = Record<P, string | string[]>;
  type EventContext (line 10356) | type EventContext<Env, P extends string, Data> = {
  type PagesFunction (line 10370) | type PagesFunction<Env = unknown, Params extends string = any, Data exte...
  type EventPluginContext (line 10371) | type EventPluginContext<Env, P extends string, Data, PluginArgs> = {
  type PagesPluginFunction (line 10386) | type PagesPluginFunction<Env = unknown, Params extends string = any, Dat...
  type PipelineRecord (line 10407) | type PipelineRecord = Record<string, unknown>;
  type PipelineBatchMetadata (line 10408) | type PipelineBatchMetadata = {
  type Pipeline (line 10412) | interface Pipeline<T extends PipelineRecord = PipelineRecord> {
  type PubSubMessage (line 10425) | interface PubSubMessage {
  type JsonWebKeyWithKid (line 10451) | interface JsonWebKeyWithKid extends JsonWebKey {
  type RateLimitOptions (line 10455) | interface RateLimitOptions {
  type RateLimitOutcome (line 10458) | interface RateLimitOutcome {
  type RateLimit (line 10461) | interface RateLimit {
  type RpcTargetBranded (line 10482) | interface RpcTargetBranded {
  type WorkerEntrypointBranded (line 10485) | interface WorkerEntrypointBranded {
  type DurableObjectBranded (line 10488) | interface DurableObjectBranded {
  type WorkflowEntrypointBranded (line 10491) | interface WorkflowEntrypointBranded {
  type EntrypointBranded (line 10494) | type EntrypointBranded = WorkerEntrypointBranded | DurableObjectBranded ...
  type Stubable (line 10496) | type Stubable = RpcTargetBranded | ((...args: any[]) => any);
  type Serializable (line 10501) | type Serializable<T> =
  type StubBase (line 10514) | interface StubBase<T extends Stubable> extends Disposable {
  type Stub (line 10518) | type Stub<T extends Stubable> = Provider<T> & StubBase<T>;
  type BaseType (line 10520) | type BaseType = void | undefined | null | boolean | number | bigint | st...
  type Stubify (line 10523) | type Stubify<T> = T extends Stubable ? Stub<T> : T extends Map<infer K, ...
  type Unstubify (line 10532) | type Unstubify<T> = T extends StubBase<infer V> ? V : T extends Map<infe...
  type UnstubifyAll (line 10537) | type UnstubifyAll<A extends any[]> = {
  type MaybeProvider (line 10542) | type MaybeProvider<T> = T extends object ? Provider<T> : unknown;
  type MaybeDisposable (line 10543) | type MaybeDisposable<T> = T extends object ? Disposable : unknown;
  type Result (line 10552) | type Result<R> = R extends Stubable ? Promise<Stub<R>> & Provider<R> : R...
  type MethodOrProperty (line 10558) | type MethodOrProperty<V> = V extends (...args: infer P) => infer R ? (.....
  type MaybeCallableProvider (line 10561) | type MaybeCallableProvider<T> = T extends (...args: any[]) => any ? Meth...
  type Provider (line 10565) | type Provider<T extends object, Reserved extends string = never> = Maybe...
  type Env (line 10576) | interface Env {
  type GlobalProps (line 10596) | interface GlobalProps {
  type GlobalProp (line 10600) | type GlobalProp<K extends string, Default> = K extends keyof GlobalProps...
  type MainModule (line 10603) | type MainModule = GlobalProp<"mainModule", {}>;
  type Exports (line 10605) | type Exports = {
  type RpcStub (line 10613) | type RpcStub<T extends Rpc.Stubable> = Rpc.Stub<T>;
  type WorkflowDurationLabel (line 10646) | type WorkflowDurationLabel = 'second' | 'minute' | 'hour' | 'day' | 'wee...
  type WorkflowSleepDuration (line 10647) | type WorkflowSleepDuration = `${number} ${WorkflowDurationLabel}${'s' | ...
  type WorkflowDelayDuration (line 10648) | type WorkflowDelayDuration = WorkflowSleepDuration;
  type WorkflowTimeoutDuration (line 10649) | type WorkflowTimeoutDuration = WorkflowSleepDuration;
  type WorkflowRetentionDuration (line 10650) | type WorkflowRetentionDuration = WorkflowSleepDuration;
  type WorkflowBackoff (line 10651) | type WorkflowBackoff = 'constant' | 'linear' | 'exponential';
  type WorkflowStepConfig (line 10652) | type WorkflowStepConfig = {
  type WorkflowEvent (line 10660) | type WorkflowEvent<T> = {
  type WorkflowStepEvent (line 10665) | type WorkflowStepEvent<T> = {
  type WorkflowStepContext (line 10670) | type WorkflowStepContext = {
  type WorkflowInstanceStatus (line 10683) | type WorkflowInstanceStatus = 'queued' | 'running' | 'paused' | 'errored...
  type SecretsStoreSecret (line 10701) | interface SecretsStoreSecret {
  type StreamBinding (line 10734) | interface StreamBinding {
  type StreamVideoHandle (line 10780) | interface StreamVideoHandle {
  type StreamVideo (line 10817) | interface StreamVideo {
  type StreamVideoStatus (line 10924) | type StreamVideoStatus = {
  type StreamVideoInput (line 10946) | type StreamVideoInput = {
  type StreamPublicDetails (line 10956) | type StreamPublicDetails = {
  type StreamDirectUpload (line 10974) | type StreamDirectUpload = {
  type StreamDirectUploadCreateParams (line 10992) | type StreamDirectUploadCreateParams = {
  type StreamDirectUploadWatermark (line 11033) | type StreamDirectUploadWatermark = {
  type StreamUrlUploadParams (line 11039) | type StreamUrlUploadParams = {
  type StreamScopedCaptions (line 11081) | interface StreamScopedCaptions {
  type StreamScopedDownloads (line 11125) | interface StreamScopedDownloads {
  type StreamVideos (line 11155) | interface StreamVideos {
  type StreamWatermarks (line 11164) | interface StreamWatermarks {
  type StreamUpdateVideoParams (line 11212) | type StreamUpdateVideoParams = {
  type StreamCaption (line 11257) | type StreamCaption = {
  type StreamDownloadStatus (line 11275) | type StreamDownloadStatus = 'ready' | 'inprogress' | 'error';
  type StreamDownloadType (line 11276) | type StreamDownloadType = 'default' | 'audio';
  type StreamDownload (line 11277) | type StreamDownload = {
  type StreamDownloadGetResponse (line 11295) | type StreamDownloadGetResponse = {
  type StreamWatermarkPosition (line 11305) | type StreamWatermarkPosition = 'upperRight' | 'upperLeft' | 'lowerLeft' ...
  type StreamWatermark (line 11306) | type StreamWatermark = {
  type StreamWatermarkCreateParams (line 11362) | type StreamWatermarkCreateParams = {
  type StreamVideosListParams (line 11392) | type StreamVideosListParams = {
  type StreamPaginationComparison (line 11418) | type StreamPaginationComparison = 'eq' | 'gt' | 'gte' | 'lt' | 'lte';
  type StreamError (line 11422) | interface StreamError extends Error {
  type InternalError (line 11428) | interface InternalError extends StreamError {
  type BadRequestError (line 11431) | interface BadRequestError extends StreamError {
  type NotFoundError (line 11434) | interface NotFoundError extends StreamError {
  type ForbiddenError (line 11437) | interface ForbiddenError extends StreamError {
  type RateLimitedError (line 11440) | interface RateLimitedError extends StreamError {
  type QuotaReachedError (line 11443) | interface QuotaReachedError extends StreamError {
  type MaxFileSizeError (line 11446) | interface MaxFileSizeError extends StreamError {
  type InvalidURLError (line 11449) | interface InvalidURLError extends StreamError {
  type AlreadyUploadedError (line 11452) | interface AlreadyUploadedError extends StreamError {
  type TooManyWatermarksError (line 11455) | interface TooManyWatermarksError extends StreamError {
  type MarkdownDocument (line 11458) | type MarkdownDocument = {
  type ConversionResponse (line 11462) | type ConversionResponse = {
  type ImageConversionOptions (line 11476) | type ImageConversionOptions = {
  type EmbeddedImageConversionOptions (line 11479) | type EmbeddedImageConversionOptions = ImageConversionOptions & {
  type ConversionOptions (line 11483) | type ConversionOptions = {
  type ConversionRequestOptions (line 11500) | type ConversionRequestOptions = {
  type SupportedFileFormat (line 11505) | type SupportedFileFormat = {
  type Header (line 11515) | interface Header {
  type FetchEventInfo (line 11519) | interface FetchEventInfo {
  type JsRpcEventInfo (line 11526) | interface JsRpcEventInfo {
  type ScheduledEventInfo (line 11529) | interface ScheduledEventInfo {
  type AlarmEventInfo (line 11534) | interface AlarmEventInfo {
  type QueueEventInfo (line 11538) | interface QueueEventInfo {
  type EmailEventInfo (line 11543) | interface EmailEventInfo {
  type TraceEventInfo (line 11549) | interface TraceEventInfo {
  type HibernatableWebSocketEventInfoMessage (line 11553) | interface HibernatableWebSocketEventInfoMessage {
  type HibernatableWebSocketEventInfoError (line 11556) | interface HibernatableWebSocketEventInfoError {
  type HibernatableWebSocketEventInfoClose (line 11559) | interface HibernatableWebSocketEventInfoClose {
  type HibernatableWebSocketEventInfo (line 11564) | interface HibernatableWebSocketEventInfo {
  type CustomEventInfo (line 11568) | interface CustomEventInfo {
  type FetchResponseInfo (line 11571) | interface FetchResponseInfo {
  type EventOutcome (line 11575) | type EventOutcome = "ok" | "canceled" | "exception" | "unknown" | "killS...
  type ScriptVersion (line 11576) | interface ScriptVersion {
  type Onset (line 11581) | interface Onset {
  type Outcome (line 11594) | interface Outcome {
  type SpanOpen (line 11600) | interface SpanOpen {
  type SpanClose (line 11607) | interface SpanClose {
  type DiagnosticChannelEvent (line 11611) | interface DiagnosticChannelEvent {
  type Exception (line 11616) | interface Exception {
  type Log (line 11622) | interface Log {
  type DroppedEventsDiagnostic (line 11627) | interface DroppedEventsDiagnostic {
  type StreamDiagnostic (line 11631) | interface StreamDiagnostic {
  type Return (line 11640) | interface Return {
  type Attribute (line 11644) | interface Attribute {
  type Attributes (line 11648) | interface Attributes {
  type EventType (line 11652) | type EventType = Onset | Outcome | SpanOpen | SpanClose | DiagnosticChan...
  type SpanContext (line 11654) | interface SpanContext {
  type TailEvent (line 11669) | interface TailEvent<Event extends EventType> {
  type TailEventHandler (line 11679) | type TailEventHandler<Event extends EventType = EventType> = (event: Tai...
  type TailEventHandlerObject (line 11680) | type TailEventHandlerObject = {
  type TailEventHandlerType (line 11690) | type TailEventHandlerType = TailEventHandler | TailEventHandlerObject;
  type VectorizeVectorMetadataValue (line 11698) | type VectorizeVectorMetadataValue = string | number | boolean | string[];
  type VectorizeVectorMetadata (line 11702) | type VectorizeVectorMetadata = VectorizeVectorMetadataValue | Record<str...
  type VectorFloatArray (line 11703) | type VectorFloatArray = Float32Array | Float64Array;
  type VectorizeError (line 11704) | interface VectorizeError {
  type VectorizeVectorMetadataFilterOp (line 11713) | type VectorizeVectorMetadataFilterOp = '$eq' | '$ne' | '$lt' | '$lte' | ...
  type VectorizeVectorMetadataFilterCollectionOp (line 11714) | type VectorizeVectorMetadataFilterCollectionOp = '$in' | '$nin';
  type VectorizeVectorMetadataFilter (line 11718) | type VectorizeVectorMetadataFilter = {
  type VectorizeDistanceMetric (line 11729) | type VectorizeDistanceMetric = "euclidean" | "cosine" | "dot-product";
  type VectorizeMetadataRetrievalLevel (line 11739) | type VectorizeMetadataRetrievalLevel = "all" | "indexed" | "none";
  type VectorizeQueryOptions (line 11740) | interface VectorizeQueryOptions {
  type VectorizeIndexConfig (line 11750) | type VectorizeIndexConfig = {
  type VectorizeIndexDetails (line 11762) | interface VectorizeIndexDetails {
  type VectorizeIndexInfo (line 11777) | interface VectorizeIndexInfo {
  type VectorizeVector (line 11790) | interface VectorizeVector {
  type VectorizeMatch (line 11803) | type VectorizeMatch = Pick<Partial<VectorizeVector>, "values"> & Omit<Ve...
  type VectorizeMatches (line 11810) | interface VectorizeMatches {
  type VectorizeVectorMutation (line 11821) | interface VectorizeVectorMutation {
  type VectorizeAsyncMutation (line 11831) | interface VectorizeAsyncMutation {
  type WorkerVersionMetadata (line 11933) | type WorkerVersionMetadata = {
  type DynamicDispatchLimits (line 11941) | interface DynamicDispatchLimits {
  type DynamicDispatchOptions (line 11951) | interface DynamicDispatchOptions {
  type DispatchNamespace (line 11963) | interface DispatchNamespace {
  class NonRetryableError (line 11980) | class NonRetryableError extends Error {
  type WorkflowDurationLabel (line 12005) | type WorkflowDurationLabel = 'second' | 'minute' | 'hour' | 'day' | 'wee...
  type WorkflowSleepDuration (line 12006) | type WorkflowSleepDuration = `${number} ${WorkflowDurationLabel}${'s' | ...
  type WorkflowRetentionDuration (line 12007) | type WorkflowRetentionDuration = WorkflowSleepDuration;
  type WorkflowInstanceCreateOptions (line 12008) | interface WorkflowInstanceCreateOptions<PARAMS = unknown> {
  type InstanceStatus (line 12026) | type InstanceStatus = {
  type WorkflowError (line 12038) | interface WorkflowError {

FILE: e2e/react-start/basic-react-query/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-start/basic-react-query/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/basic-react-query/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/basic-react-query/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 120) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 138) | interface FileRoutesByTo {
  type FileRoutesById (line 154) | interface FileRoutesById {
  type FileRouteTypes (line 175) | interface FileRouteTypes {
  type RootRouteChildren (line 232) | interface RootRouteChildren {
  type FileRoutesByPath (line 246) | interface FileRoutesByPath {
  type LayoutLayout2RouteChildren (line 376) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 390) | interface LayoutRouteChildren {
  type PostsRouteChildren (line 401) | interface PostsRouteChildren {
  type UsersRouteChildren (line 413) | interface UsersRouteChildren {
  type ApiUsersRouteChildren (line 425) | interface ApiUsersRouteChildren {
  type Register (line 456) | interface Register {

FILE: e2e/react-start/basic-react-query/src/router.tsx
  function getRouter (line 8) | function getRouter() {

FILE: e2e/react-start/basic-react-query/src/routes/__root.tsx
  function RootComponent (line 70) | function RootComponent() {
  function RootDocument (line 78) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/basic-react-query/src/routes/_layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 6) | function LayoutAComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 6) | function LayoutBComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/deferred.tsx
  function Deferred (line 27) | function Deferred() {
  function DeferredQuery (line 43) | function DeferredQuery() {

FILE: e2e/react-start/basic-react-query/src/routes/index.tsx
  function Home (line 6) | function Home() {

FILE: e2e/react-start/basic-react-query/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 28) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 32) | function PostComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/posts.index.tsx
  function PostsIndexComponent (line 6) | function PostsIndexComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/posts.tsx
  function PostsComponent (line 14) | function PostsComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/posts_.$postId.deep.tsx
  function PostDeepComponent (line 23) | function PostDeepComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/suspense-transition.tsx
  function SuspenseTransitionComponent (line 21) | function SuspenseTransitionComponent() {
  function Result (line 42) | function Result() {

FILE: e2e/react-start/basic-react-query/src/routes/transition/count/query.tsx
  function TransitionPage (line 29) | function TransitionPage() {

FILE: e2e/react-start/basic-react-query/src/routes/users.$userId.tsx
  function UserErrorComponent (line 19) | function UserErrorComponent({ error }: ErrorComponentProps) {
  function UserComponent (line 23) | function UserComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/users.index.tsx
  function UsersIndexComponent (line 6) | function UsersIndexComponent() {

FILE: e2e/react-start/basic-react-query/src/routes/users.tsx
  function UsersComponent (line 13) | function UsersComponent() {

FILE: e2e/react-start/basic-react-query/src/utils/posts.tsx
  type PostType (line 6) | type PostType = {

FILE: e2e/react-start/basic-react-query/src/utils/users.tsx
  type User (line 4) | type User = {
  constant PORT (line 10) | const PORT =
  constant DEPLOY_URL (line 13) | const DEPLOY_URL = `http://localhost:${PORT}`

FILE: e2e/react-start/basic-react-query/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-start/basic-react-query/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-start/basic-rsc/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/basic-rsc/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/basic-rsc/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 66) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 75) | interface FileRoutesByTo {
  type FileRoutesById (line 83) | interface FileRoutesById {
  type FileRouteTypes (line 95) | interface FileRouteTypes {
  type RootRouteChildren (line 126) | interface RootRouteChildren {
  type FileRoutesByPath (line 134) | interface FileRoutesByPath {
  type LayoutLayout2RouteChildren (line 201) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 215) | interface LayoutRouteChildren {
  type PostsRouteChildren (line 226) | interface PostsRouteChildren {
  type Register (line 251) | interface Register {

FILE: e2e/react-start/basic-rsc/src/router.tsx
  function getRouter (line 6) | function getRouter() {

FILE: e2e/react-start/basic-rsc/src/routes/__root.tsx
  function RootComponent (line 66) | function RootComponent() {
  function RootDocument (line 74) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/basic-rsc/src/routes/_layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 6) | function LayoutAComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 6) | function LayoutBComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/index.tsx
  function Home (line 6) | function Home() {

FILE: e2e/react-start/basic-rsc/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 40) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 44) | function PostComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/posts.index.tsx
  function PostsIndexComponent (line 6) | function PostsIndexComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/posts.tsx
  function PostsComponent (line 14) | function PostsComponent() {

FILE: e2e/react-start/basic-rsc/src/routes/posts_.$postId.deep.tsx
  function PostDeepComponent (line 11) | function PostDeepComponent() {

FILE: e2e/react-start/basic-rsc/src/utils/posts.tsx
  type PostType (line 5) | type PostType = {

FILE: e2e/react-start/basic-rsc/src/utils/renderPosts.tsx
  function renderPosts (line 6) | async function renderPosts() {
  function DelayedDateViaSuspense (line 45) | function DelayedDateViaSuspense({ state }) {

FILE: e2e/react-start/basic-tsr-config/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-start/basic-tsr-config/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 20) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 23) | interface FileRoutesByTo {
  type FileRoutesById (line 26) | interface FileRoutesById {
  type FileRouteTypes (line 30) | interface FileRouteTypes {
  type RootRouteChildren (line 38) | interface RootRouteChildren {
  type FileRoutesByPath (line 43) | interface FileRoutesByPath {
  type Register (line 64) | interface Register {

FILE: e2e/react-start/basic-tsr-config/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: e2e/react-start/basic-tsr-config/src/routes/__root.tsx
  function RootComponent (line 27) | function RootComponent() {
  function RootDocument (line 35) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/basic-tsr-config/src/routes/index.tsx
  function Home (line 25) | function Home() {

FILE: e2e/react-start/basic/playwright.config.ts
  constant PORT (line 11) | const PORT = await getTestServerPort(
  constant START_PORT (line 14) | const START_PORT = await getTestServerPort(
  constant EXTERNAL_PORT (line 17) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-start/basic/server.js
  function createStartServer (line 13) | async function createStartServer() {
  function createSpaServer (line 34) | async function createSpaServer() {

FILE: e2e/react-start/basic/src/components/CustomMessage.tsx
  function CustomMessage (line 3) | function CustomMessage({ message }: { message: string }) {

FILE: e2e/react-start/basic/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/basic/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/basic/src/components/RedirectOnClick.tsx
  type RedirectOnClickProps (line 4) | interface RedirectOnClickProps {
  function RedirectOnClick (line 10) | function RedirectOnClick({

FILE: e2e/react-start/basic/src/components/WindowSize.tsx
  function WindowSize (line 12) | function WindowSize() {

FILE: e2e/react-start/basic/src/raw-stream-fns.ts
  function createDelayedStream (line 4) | function createDelayedStream(
  function createVariableDelayStream (line 21) | function createVariableDelayStream(
  function encode (line 36) | function encode(text: string): Uint8Array {
  constant TEST7_CHUNKS (line 45) | const TEST7_CHUNKS = [
  constant TEST7_EXPECTED (line 50) | const TEST7_EXPECTED = concatBytes(TEST7_CHUNKS)
  constant TEST8_CHUNKS (line 53) | const TEST8_CHUNKS = [
  constant TEST8_EXPECTED (line 57) | const TEST8_EXPECTED = concatBytes(TEST8_CHUNKS)
  constant TEST9_CHUNKS (line 60) | const TEST9_CHUNKS = [
  constant TEST9_EXPECTED (line 65) | const TEST9_EXPECTED = concatBytes(TEST9_CHUNKS)
  constant TEST10_CHUNKS (line 68) | const TEST10_CHUNKS = [encode('This is text but using binary hint')]
  constant TEST10_EXPECTED (line 69) | const TEST10_EXPECTED = concatBytes(TEST10_CHUNKS)
  constant TEST11_CHUNKS (line 72) | const TEST11_CHUNKS = [
  constant TEST11_EXPECTED (line 75) | const TEST11_EXPECTED = concatBytes(TEST11_CHUNKS)
  function concatBytes (line 78) | function concatBytes(chunks: Array<Uint8Array>): Uint8Array {
  constant TEST12_STREAM_A_CHUNKS (line 235) | const TEST12_STREAM_A_CHUNKS: Array<[Uint8Array, number]> = [
  constant TEST12_STREAM_B_CHUNKS (line 240) | const TEST12_STREAM_B_CHUNKS: Array<[Uint8Array, number]> = [
  constant TEST12_STREAM_A_EXPECTED (line 245) | const TEST12_STREAM_A_EXPECTED = concatBytes(
  constant TEST12_STREAM_B_EXPECTED (line 248) | const TEST12_STREAM_B_EXPECTED = concatBytes(
  constant TEST13_CHUNKS (line 254) | const TEST13_CHUNKS: Array<[Uint8Array, number]> = [
  constant TEST13_EXPECTED (line 262) | const TEST13_EXPECTED = concatBytes(
  constant TEST14_STREAM_A_CHUNKS (line 270) | const TEST14_STREAM_A_CHUNKS: Array<[Uint8Array, number]> = [
  constant TEST14_STREAM_B_CHUNKS (line 276) | const TEST14_STREAM_B_CHUNKS: Array<[Uint8Array, number]> = [
  constant TEST14_STREAM_C_CHUNKS (line 280) | const TEST14_STREAM_C_CHUNKS: Array<[Uint8Array, number]> = [
  constant TEST14_STREAM_A_EXPECTED (line 285) | const TEST14_STREAM_A_EXPECTED = concatBytes(
  constant TEST14_STREAM_B_EXPECTED (line 288) | const TEST14_STREAM_B_EXPECTED = concatBytes(
  constant TEST14_STREAM_C_EXPECTED (line 291) | const TEST14_STREAM_C_EXPECTED = concatBytes(
  method start (line 339) | start(controller) {
  method start (line 354) | async start(controller) {
  function createStreamConsumer (line 371) | function createStreamConsumer() {
  function consumeBinaryStream (line 396) | async function consumeBinaryStream(
  function collectBytes (line 418) | async function collectBytes(
  function compareBytes (line 447) | function compareBytes(

FILE: e2e/react-start/basic/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 436) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 504) | interface FileRoutesByTo {
  type FileRoutesById (line 563) | interface FileRoutesById {
  type FileRouteTypes (line 634) | interface FileRouteTypes {
  type RootRouteChildren (line 834) | interface RootRouteChildren {
  type FileRoutesByPath (line 861) | interface FileRoutesByPath {
  type NotFoundDeepBCRouteRouteChildren (line 1341) | interface NotFoundDeepBCRouteRouteChildren {
  type NotFoundDeepBRouteRouteChildren (line 1352) | interface NotFoundDeepBRouteRouteChildren {
  type NotFoundDeepRouteRouteChildren (line 1363) | interface NotFoundDeepRouteRouteChildren {
  type NotFoundParentBoundaryRouteRouteChildren (line 1376) | interface NotFoundParentBoundaryRouteRouteChildren {
  type NotFoundRouteRouteChildren (line 1393) | interface NotFoundRouteRouteChildren {
  type SearchParamsRouteRouteChildren (line 1416) | interface SearchParamsRouteRouteChildren {
  type SpecialCharsMalformedRouteRouteChildren (line 1431) | interface SpecialCharsMalformedRouteRouteChildren {
  type SpecialCharsRouteRouteChildren (line 1447) | interface SpecialCharsRouteRouteChildren {
  type LayoutLayout2RouteChildren (line 1467) | interface LayoutLayout2RouteChildren {
  type LayoutRouteChildren (line 1481) | interface LayoutRouteChildren {
  type PostsRouteChildren (line 1492) | interface PostsRouteChildren {
  type RawStreamRouteChildren (line 1504) | interface RawStreamRouteChildren {
  type UsersRouteChildren (line 1528) | interface UsersRouteChildren {
  type ApiUsersRouteChildren (line 1540) | interface ApiUsersRouteChildren {
  type RedirectTargetRouteChildren (line 1552) | interface RedirectTargetRouteChildren {
  type FooBarQuxHereRouteChildren (line 1578) | interface FooBarQuxHereRouteChildren {
  type Register (line 1622) | interface Register {

FILE: e2e/react-start/basic/src/router.tsx
  function getRouter (line 6) | function getRouter() {

FILE: e2e/react-start/basic/src/routes/__root.tsx
  function RootComponent (line 77) | function RootComponent() {
  function RootDocument (line 95) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/basic/src/routes/_layout.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic/src/routes/_layout/_layout-2.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic/src/routes/_layout/_layout-2/layout-a.tsx
  function LayoutAComponent (line 7) | function LayoutAComponent() {

FILE: e2e/react-start/basic/src/routes/_layout/_layout-2/layout-b.tsx
  function LayoutBComponent (line 7) | function LayoutBComponent() {

FILE: e2e/react-start/basic/src/routes/async-scripts.tsx
  function AsyncScriptsComponent (line 19) | function AsyncScriptsComponent() {

FILE: e2e/react-start/basic/src/routes/client-only.tsx
  function ClientOnlyPage (line 8) | function ClientOnlyPage() {

FILE: e2e/react-start/basic/src/routes/deferred.tsx
  function Deferred (line 31) | function Deferred() {

FILE: e2e/react-start/basic/src/routes/foo/$bar/$qux/_here.tsx
  function LayoutComponent (line 7) | function LayoutComponent() {

FILE: e2e/react-start/basic/src/routes/foo/$bar/$qux/_here/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-start/basic/src/routes/inline-scripts.tsx
  function InlineScriptsComponent (line 20) | function InlineScriptsComponent() {

FILE: e2e/react-start/basic/src/routes/multi-cookie-redirect/target.tsx
  function RouteComponent (line 9) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/deep/b/c/d.tsx
  function RouteComponent (line 30) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/deep/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/parent-boundary/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/parent-boundary/route.tsx
  function RouteComponent (line 12) | function RouteComponent() {
  function ParentBoundaryNotFoundComponent (line 20) | function ParentBoundaryNotFoundComponent(props: NotFoundRouteProps) {

FILE: e2e/react-start/basic/src/routes/not-found/parent-boundary/via-beforeLoad.tsx
  function RouteComponent (line 26) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/via-beforeLoad-target-root.tsx
  function RouteComponent (line 10) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/via-beforeLoad.tsx
  function RouteComponent (line 17) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/not-found/via-loader.tsx
  function RouteComponent (line 17) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-start/basic/src/routes/posts.index.tsx
  function PostsIndexComponent (line 7) | function PostsIndexComponent() {

FILE: e2e/react-start/basic/src/routes/posts.tsx
  function PostsComponent (line 17) | function PostsComponent() {

FILE: e2e/react-start/basic/src/routes/posts_.$postId.deep.tsx
  function PostDeepErrorComponent (line 11) | function PostDeepErrorComponent({ error }: ErrorComponentProps) {
  function PostDeepComponent (line 15) | function PostDeepComponent() {

FILE: e2e/react-start/basic/src/routes/raw-stream.tsx
  function RawStreamLayout (line 7) | function RawStreamLayout() {

FILE: e2e/react-start/basic/src/routes/raw-stream/client-call.tsx
  function ClientCallTests (line 41) | function ClientCallTests() {

FILE: e2e/react-start/basic/src/routes/raw-stream/index.tsx
  function RawStreamIndex (line 7) | function RawStreamIndex() {

FILE: e2e/react-start/basic/src/routes/raw-stream/ssr-binary-hint.tsx
  constant TEXT_CHUNKS (line 13) | const TEXT_CHUNKS = [encode('Binary '), encode('hint '), encode('with te...
  constant TEXT_EXPECTED (line 14) | const TEXT_EXPECTED = concatBytes(TEXT_CHUNKS)
  constant BINARY_CHUNKS (line 16) | const BINARY_CHUNKS = [
  constant BINARY_EXPECTED (line 20) | const BINARY_EXPECTED = concatBytes(BINARY_CHUNKS)
  function SSRBinaryHintTest (line 48) | function SSRBinaryHintTest() {

FILE: e2e/react-start/basic/src/routes/raw-stream/ssr-mixed.tsx
  function SSRMixedTest (line 31) | function SSRMixedTest() {

FILE: e2e/react-start/basic/src/routes/raw-stream/ssr-multiple.tsx
  function SSRMultipleTest (line 29) | function SSRMultipleTest() {

FILE: e2e/react-start/basic/src/routes/raw-stream/ssr-single.tsx
  function SSRSingleTest (line 25) | function SSRSingleTest() {

FILE: e2e/react-start/basic/src/routes/raw-stream/ssr-text-hint.tsx
  constant PURE_TEXT_CHUNKS (line 13) | const PURE_TEXT_CHUNKS = [
  constant PURE_TEXT_EXPECTED (line 18) | const PURE_TEXT_EXPECTED = concatBytes(PURE_TEXT_CHUNKS)
  constant MIXED_CHUNKS (line 20) | const MIXED_CHUNKS = [
  constant MIXED_EXPECTED (line 25) | const MIXED_EXPECTED = concatBytes(MIXED_CHUNKS)
  constant PURE_BINARY_CHUNKS (line 28) | const PURE_BINARY_CHUNKS = [
  constant PURE_BINARY_EXPECTED (line 32) | const PURE_BINARY_EXPECTED = concatBytes(PURE_BINARY_CHUNKS)
  function SSRTextHintTest (line 71) | function SSRTextHintTest() {

FILE: e2e/react-start/basic/src/routes/scripts.tsx
  function ScriptsComponent (line 21) | function ScriptsComponent() {

FILE: e2e/react-start/basic/src/routes/search-params/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/$param.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/hash.tsx
  function RouteComponent (line 8) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/malformed/$param.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/malformed/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/malformed/search.tsx
  function RouteComponent (line 11) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/route.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/search.tsx
  function RouteComponent (line 11) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/specialChars/대한민국.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/basic/src/routes/stream.tsx
  method loader (line 6) | loader() {
  function Home (line 26) | function Home() {

FILE: e2e/react-start/basic/src/routes/type-only-reexport.tsx
  function TypeOnlyReexportPage (line 30) | function TypeOnlyReexportPage() {

FILE: e2e/react-start/basic/src/routes/users.$userId.tsx
  function UserErrorComponent (line 26) | function UserErrorComponent({ error }: ErrorComponentProps) {
  function UserComponent (line 30) | function UserComponent() {

FILE: e2e/react-start/basic/src/routes/users.index.tsx
  function UsersIndexComponent (line 7) | function UsersIndexComponent() {

FILE: e2e/react-start/basic/src/routes/users.tsx
  function UsersComponent (line 20) | function UsersComponent() {

FILE: e2e/react-start/basic/src/server.ts
  method fetch (line 8) | fetch(request: Request) {

FILE: e2e/react-start/basic/src/shared-lib/typedefs/actions.ts
  type Action (line 10) | type Action = (...deps: any[]) => any
  type ActionParams (line 11) | type ActionParams<TFunction extends Action> = Parameters<TFunction>[0]

FILE: e2e/react-start/basic/src/utils/posts.tsx
  type PostType (line 5) | type PostType = {

FILE: e2e/react-start/basic/src/utils/users.tsx
  type User (line 1) | type User = {
  constant PORT (line 7) | const PORT = process.env.VITE_SERVER_PORT || 3000
  constant DEPLOY_URL (line 9) | const DEPLOY_URL = `http://localhost:${PORT}`

FILE: e2e/react-start/basic/tests/raw-stream.spec.ts
  constant HYDRATION_WAIT (line 16) | const HYDRATION_WAIT = 1000

FILE: e2e/react-start/basic/tests/redirect.spec.ts
  constant PORT (line 16) | const PORT = await getTestServerPort(
  constant EXTERNAL_HOST_PORT (line 20) | const EXTERNAL_HOST_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-start/basic/tests/root-scripts.spec.ts
  constant ALL_USER_SCRIPTS (line 5) | const ALL_USER_SCRIPTS = [

FILE: e2e/react-start/basic/tests/search-params.spec.ts
  function expectRedirect (line 7) | function expectRedirect(response: Response | null, endsWith: string) {
  function expectNoRedirect (line 19) | function expectNoRedirect(response: Response | null) {

FILE: e2e/react-start/basic/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-start/basic/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-start/clerk-basic/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-start/clerk-basic/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/clerk-basic/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/clerk-basic/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 49) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 56) | interface FileRoutesByTo {
  type FileRoutesById (line 62) | interface FileRoutesById {
  type FileRouteTypes (line 71) | interface FileRouteTypes {
  type RootRouteChildren (line 86) | interface RootRouteChildren {
  type FileRoutesByPath (line 92) | interface FileRoutesByPath {
  type AuthedPostsRouteChildren (line 138) | interface AuthedPostsRouteChildren {
  type AuthedRouteChildren (line 152) | interface AuthedRouteChildren {
  type Register (line 176) | interface Register {

FILE: e2e/react-start/clerk-basic/src/router.tsx
  function getRouter (line 6) | function getRouter() {

FILE: e2e/react-start/clerk-basic/src/routes/__root.tsx
  function RootComponent (line 85) | function RootComponent() {
  function RootDocument (line 95) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/clerk-basic/src/routes/_authed/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-start/clerk-basic/src/routes/_authed/posts.index.tsx
  function PostsIndexComponent (line 6) | function PostsIndexComponent() {

FILE: e2e/react-start/clerk-basic/src/routes/_authed/posts.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-start/clerk-basic/src/routes/_authed/profile.$.tsx
  function PostsComponent (line 10) | function PostsComponent() {

FILE: e2e/react-start/clerk-basic/src/routes/index.tsx
  function Home (line 6) | function Home() {

FILE: e2e/react-start/clerk-basic/src/utils/posts.ts
  type PostType (line 5) | type PostType = {

FILE: e2e/react-start/csp/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-start/csp/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 20) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 23) | interface FileRoutesByTo {
  type FileRoutesById (line 26) | interface FileRoutesById {
  type FileRouteTypes (line 30) | interface FileRouteTypes {
  type RootRouteChildren (line 38) | interface RootRouteChildren {
  type FileRoutesByPath (line 43) | interface FileRoutesByPath {
  type Register (line 64) | interface Register {

FILE: e2e/react-start/csp/src/router.tsx
  function getRouter (line 14) | function getRouter() {

FILE: e2e/react-start/csp/src/routes/__root.tsx
  function RootComponent (line 35) | function RootComponent() {

FILE: e2e/react-start/csp/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-start/css-modules/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(

FILE: e2e/react-start/css-modules/src/components/shared-widget-lazy.tsx
  function SharedWidgetLazy (line 3) | function SharedWidgetLazy() {

FILE: e2e/react-start/css-modules/src/components/shared-widget.tsx
  function SharedWidget (line 4) | function SharedWidget() {

FILE: e2e/react-start/css-modules/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 50) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 58) | interface FileRoutesByTo {
  type FileRoutesById (line 66) | interface FileRoutesById {
  type FileRouteTypes (line 75) | interface FileRouteTypes {
  type RootRouteChildren (line 102) | interface RootRouteChildren {
  type FileRoutesByPath (line 112) | interface FileRoutesByPath {
  type Register (line 173) | interface Register {

FILE: e2e/react-start/css-modules/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: e2e/react-start/css-modules/src/routes/__root.tsx
  function RootComponent (line 19) | function RootComponent() {

FILE: e2e/react-start/css-modules/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-start/css-modules/src/routes/lazy-css-lazy.tsx
  function LazyCssLazyRoute (line 12) | function LazyCssLazyRoute() {

FILE: e2e/react-start/css-modules/src/routes/lazy-css-static.tsx
  function LazyCssStaticRoute (line 8) | function LazyCssStaticRoute() {

FILE: e2e/react-start/css-modules/src/routes/modules.tsx
  function Modules (line 9) | function Modules() {

FILE: e2e/react-start/css-modules/src/routes/quotes.tsx
  function Quotes (line 8) | function Quotes() {

FILE: e2e/react-start/css-modules/src/routes/sass-mixin.tsx
  function SassMixin (line 8) | function SassMixin() {

FILE: e2e/react-start/css-modules/tests/setup/global.setup.ts
  function waitForServer (line 8) | async function waitForServer(url: string) {
  function preOptimizeDevServer (line 29) | async function preOptimizeDevServer(baseURL: string) {
  function setup (line 86) | async function setup() {

FILE: e2e/react-start/css-modules/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-start/custom-basepath/express-server.ts
  constant DEVELOPMENT (line 5) | const DEVELOPMENT = process.env.NODE_ENV === 'development'
  constant PORT (line 6) | const PORT = Number.parseInt(process.env.PORT || '3000')

FILE: e2e/react-start/custom-basepath/playwright.config.ts
  constant PORT (line 8) | const PORT = await getTestServerPort(packageJson.name)
  constant EXTERNAL_PORT (line 9) | const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)

FILE: e2e/react-start/custom-basepath/src/components/CustomMessage.tsx
  function CustomMessage (line 3) | function CustomMessage({ message }: { message: string }) {

FILE: e2e/react-start/custom-basepath/src/components/DefaultCatchBoundary.tsx
  function DefaultCatchBoundary (line 10) | function DefaultCatchBoundary({ error }: ErrorComponentProps) {

FILE: e2e/react-start/custom-basepath/src/components/NotFound.tsx
  function NotFound (line 3) | function NotFound({ children }: { children?: any }) {

FILE: e2e/react-start/custom-basepath/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 104) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 121) | interface FileRoutesByTo {
  type FileRoutesById (line 136) | interface FileRoutesById {
  type FileRouteTypes (line 154) | interface FileRouteTypes {
  type RootRouteChildren (line 206) | interface RootRouteChildren {
  type FileRoutesByPath (line 220) | interface FileRoutesByPath {
  type PostsRouteChildren (line 329) | interface PostsRouteChildren {
  type UsersRouteChildren (line 341) | interface UsersRouteChildren {
  type ApiUsersRouteChildren (line 353) | interface ApiUsersRouteChildren {
  type Register (line 384) | interface Register {

FILE: e2e/react-start/custom-basepath/src/router.tsx
  function getRouter (line 7) | function getRouter() {

FILE: e2e/react-start/custom-basepath/src/routes/__root.tsx
  function RootComponent (line 66) | function RootComponent() {
  function RootDocument (line 84) | function RootDocument({ children }: { children: React.ReactNode }) {

FILE: e2e/react-start/custom-basepath/src/routes/deferred.tsx
  function Deferred (line 31) | function Deferred() {

FILE: e2e/react-start/custom-basepath/src/routes/index.tsx
  function Home (line 8) | function Home() {

FILE: e2e/react-start/custom-basepath/src/routes/logout.tsx
  function Home (line 17) | function Home() {

FILE: e2e/react-start/custom-basepath/src/routes/navigate-test.tsx
  function NavigateTest (line 7) | function NavigateTest() {

FILE: e2e/react-start/custom-basepath/src/routes/posts.$postId.tsx
  function PostErrorComponent (line 16) | function PostErrorComponent({ error }: ErrorComponentProps) {
  function PostComponent (line 20) | function PostComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/posts.index.tsx
  function PostsIndexComponent (line 6) | function PostsIndexComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/posts.tsx
  function PostsComponent (line 17) | function PostsComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/posts_.$postId.deep.tsx
  function PostDeepComponent (line 12) | function PostDeepComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/redirect/index.tsx
  function RouteComponent (line 7) | function RouteComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/users.$userId.tsx
  function UserErrorComponent (line 25) | function UserErrorComponent({ error }: ErrorComponentProps) {
  function UserComponent (line 29) | function UserComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/users.index.tsx
  function UsersIndexComponent (line 6) | function UsersIndexComponent() {

FILE: e2e/react-start/custom-basepath/src/routes/users.tsx
  function UsersComponent (line 18) | function UsersComponent() {

FILE: e2e/react-start/custom-basepath/src/server.ts
  method fetch (line 4) | fetch(request: Request) {

FILE: e2e/react-start/custom-basepath/src/utils/posts.tsx
  type PostType (line 5) | type PostType = {

FILE: e2e/react-start/custom-basepath/src/utils/users.tsx
  type User (line 1) | type User = {
  constant PORT (line 7) | const PORT = process.env.VITE_SERVER_PORT || 3000
  constant DEPLOY_URL (line 9) | const DEPLOY_URL = `http://localhost:${PORT}`

FILE: e2e/react-start/custom-basepath/tests/setup/global.setup.ts
  function setup (line 4) | async function setup() {

FILE: e2e/react-start/custom-basepath/tests/setup/global.teardown.ts
  function teardown (line 4) | async function teardown() {

FILE: e2e/react-start/dev-ssr-styles/env.ts
  type SsrStylesMode (line 7) | type SsrStylesMode = z.infer<typeof ssrStylesModeSchema>

FILE: e2e/react-start/dev-ssr-styles/playwright.config.ts
  function getPortKey (line 12) | function getPortKey() {
  constant PORT (line 23) | const PORT = await getTestServerPort(getPortKey())
  function getDevCommand (line 27) | function getDevCommand() {

FILE: e2e/react-start/dev-ssr-styles/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 20) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 23) | interface FileRoutesByTo {
  type FileRoutesById (line 26) | interface FileRoutesById {
  type FileRouteTypes (line 30) | interface FileRouteTypes {
  type RootRouteChildren (line 38) | interface RootRouteChildren {
  type FileRoutesByPath (line 43) | interface FileRoutesByPath {
  type Register (line 64) | interface Register {

FILE: e2e/react-start/dev-ssr-styles/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: e2e/react-start/dev-ssr-styles/src/routes/__root.tsx
  function RootComponent (line 19) | function RootComponent() {

FILE: e2e/react-start/dev-ssr-styles/src/routes/index.tsx
  function Home (line 7) | function Home() {

FILE: e2e/react-start/dev-ssr-styles/tests/setup/global.setup.ts
  function getPortKey (line 9) | function getPortKey() {
  function waitForServer (line 20) | async function waitForServer(url: string) {
  function preOptimizeDevServer (line 41) | async function preOptimizeDevServer(baseURL: string) {
  function setup (line 68) | async function setup() {

FILE: e2e/react-start/dev-ssr-styles/tests/setup/global.teardown.ts
  function getPortKey (line 5) | function getPortKey() {
  function teardown (line 16) | async function teardown() {

FILE: e2e/react-start/dev-ssr-styles/vite.config.ts
  function getSsrStylesConfig (line 6) | function getSsrStylesConfig() {

FILE: e2e/react-start/flamegraph-bench/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 197) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 228) | interface FileRoutesByTo {
  type FileRoutesById (line 259) | interface FileRoutesById {
  type FileRouteTypes (line 291) | interface FileRouteTypes {
  type RootRouteChildren (line 387) | interface RootRouteChildren {
  type FileRoutesByPath (line 395) | interface FileRoutesByPath {
  type NestedABCDEFGHIJKLMNOPQRSTUVWXYRouteChildren (line 602) | interface NestedABCDEFGHIJKLMNOPQRSTUVWXYRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRSTUVWXRouteChildren (line 617) | interface NestedABCDEFGHIJKLMNOPQRSTUVWXRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRSTUVWRouteChildren (line 632) | interface NestedABCDEFGHIJKLMNOPQRSTUVWRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRSTUVRouteChildren (line 647) | interface NestedABCDEFGHIJKLMNOPQRSTUVRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRSTURouteChildren (line 662) | interface NestedABCDEFGHIJKLMNOPQRSTURouteChildren {
  type NestedABCDEFGHIJKLMNOPQRSTRouteChildren (line 677) | interface NestedABCDEFGHIJKLMNOPQRSTRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRSRouteChildren (line 692) | interface NestedABCDEFGHIJKLMNOPQRSRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRRouteChildren (line 707) | interface NestedABCDEFGHIJKLMNOPQRRouteChildren {
  type NestedABCDEFGHIJKLMNOPQRouteChildren (line 721) | interface NestedABCDEFGHIJKLMNOPQRouteChildren {
  type NestedABCDEFGHIJKLMNOPRouteChildren (line 735) | interface NestedABCDEFGHIJKLMNOPRouteChildren {
  type NestedABCDEFGHIJKLMNORouteChildren (line 749) | interface NestedABCDEFGHIJKLMNORouteChildren {
  type NestedABCDEFGHIJKLMNRouteChildren (line 762) | interface NestedABCDEFGHIJKLMNRouteChildren {
  type NestedABCDEFGHIJKLMRouteChildren (line 773) | interface NestedABCDEFGHIJKLMRouteChildren {
  type NestedABCDEFGHIJKLRouteChildren (line 784) | interface NestedABCDEFGHIJKLRouteChildren {
  type NestedABCDEFGHIJKRouteChildren (line 795) | interface NestedABCDEFGHIJKRouteChildren {
  type NestedABCDEFGHIJRouteChildren (line 806) | interface NestedABCDEFGHIJRouteChildren {
  type NestedABCDEFGHIRouteChildren (line 817) | interface NestedABCDEFGHIRouteChildren {
  type NestedABCDEFGHRouteChildren (line 829) | interface NestedABCDEFGHRouteChildren {
  type NestedABCDEFGRouteChildren (line 841) | interface NestedABCDEFGRouteChildren {
  type NestedABCDEFRouteChildren (line 853) | interface NestedABCDEFRouteChildren {
  type NestedABCDERouteChildren (line 865) | interface NestedABCDERouteChildren {
  type NestedABCDRouteChildren (line 877) | interface NestedABCDRouteChildren {
  type NestedABCRouteChildren (line 889) | interface NestedABCRouteChildren {
  type NestedABRouteChildren (line 901) | interface NestedABRouteChildren {
  type NestedARouteChildren (line 913) | interface NestedARouteChildren {
  type Register (line 937) | interface Register {

FILE: e2e/react-start/flamegraph-bench/src/router.tsx
  function getRouter (line 4) | function getRouter() {

FILE: e2e/react-start/flamegraph-bench/src/routes/__root.tsx
  function RootComponent (line 13) | function RootComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/index.tsx
  function IndexComponent (line 7) | function IndexComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.$y.$z.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.$y.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.$x.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.$w.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.$v.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.$u.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.$t.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.$s.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.$r.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.$q.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.$p.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.$o.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.$n.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.$m.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.$l.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.$k.tsx
  function PageComponent (line 9) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.$j.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.$i.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.$h.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.$g.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.$f.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.$e.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.$d.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.$c.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.$b.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/nested/$a.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/page.$id.tsx
  function PageComponent (line 7) | function PageComponent() {

FILE: e2e/react-start/flamegraph-bench/src/routes/search.tsx
  function SearchPage (line 27) | function SearchPage() {

FILE: e2e/react-start/flamegraph-bench/src/server.ts
  method fetch (line 4) | fetch(request: Request) {

FILE: e2e/react-start/flamegraph-bench/tests/bench.js
  constant BASE_URL (line 3) | const BASE_URL = 'http://localhost:3000'

FILE: e2e/react-start/i18n-paraglide/playwright.config.ts
  constant PORT (line 5) | const PORT = await getTestServerPort(packageJson.name)

FILE: e2e/react-start/i18n-paraglide/src/routeTree.gen.ts
  type FileRoutesByFullPath (line 26) | interface FileRoutesByFullPath {
  type FileRoutesByTo (line 30) | interface FileRoutesByTo {
  type FileRoutesById (line 34) | interface FileRoutesById {
  type FileRouteTypes (line 39) | interface FileRouteTypes {
  type RootRouteChildren (line 47) | interface RootRouteChildren {
  type FileRoutesByPath (line 53) | interface FileRoutesByPath {
  type Register (line 82) | interface Register {

FILE: e2e/react-start/i18n-paraglide/src/routes/__root.tsx
  function RootComponent (line 32) | function RootComponent() {

FILE: e2e/react-start/i18n-paraglide/src/routes/about.tsx
  function RouteComponent (line 8) | function RouteCompo
Copy disabled (too large) Download .json
Condensed preview — 8559 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,159K chars).
[
  {
    "path": ".changeset/config.json",
    "chars": 448,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@3.1.2/schema.json\",\n  \"changelog\": [\n    \"@svitejs/changesets-chang"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 68,
    "preview": "{\n  \"image\": \"mcr.microsoft.com/devcontainers/typescript-node:24\"\n}\n"
  },
  {
    "path": ".gitattributes",
    "chars": 66,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 22,
    "preview": "github: tannerlinsley\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 4195,
    "preview": "name: 🐛 Bug Report\ndescription: Create a report to help us improve\nbody:\n  - type: markdown\n    attributes:\n      value:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 447,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: 🤔 Feature Requests & Questions\n    url: https://github.com/TanStack"
  },
  {
    "path": ".github/renovate.json",
    "chars": 895,
    "preview": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"configMigration\": true,\n  \"extends\": [\n    \"confi"
  },
  {
    "path": ".github/workflows/autofix.yml",
    "chars": 851,
    "preview": "name: autofix.ci # needed to securely identify the workflow\n\non:\n  pull_request:\n  push:\n    branches: [main, alpha, bet"
  },
  {
    "path": ".github/workflows/bundle-size.yml",
    "chars": 4784,
    "preview": "name: Bundle Size\n\non:\n  # We use `pull_request_target` to split trust boundaries across jobs:\n  # - `benchmark-pr` chec"
  },
  {
    "path": ".github/workflows/check-skills.yml",
    "chars": 5995,
    "preview": "# check-skills.yml — Drop this into your library repo's .github/workflows/\n#\n# Checks for stale intent skills after a re"
  },
  {
    "path": ".github/workflows/client-nav-benchmarks.yml",
    "chars": 1299,
    "preview": "# Setup taken from https://codspeed.io/docs/benchmarks/nodejs/vitest\nname: Benchmarks\n\non:\n  push:\n    branches:\n      -"
  },
  {
    "path": ".github/workflows/labeler.yml",
    "chars": 325,
    "preview": "name: Labeler\n\non:\n  pull_request_target:\n\npermissions:\n  contents: read\n  pull-requests: write\n\njobs:\n  labeler:\n    ru"
  },
  {
    "path": ".github/workflows/notify-playbooks.yml",
    "chars": 1621,
    "preview": "# notify-intent.yml — Drop this into your library repo's .github/workflows/\n#\n# Fires a repository_dispatch event to Tan"
  },
  {
    "path": ".github/workflows/pr.yml",
    "chars": 1742,
    "preview": "name: PR\n\non:\n  pull_request:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.number || github.ref }}\n  c"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 3251,
    "preview": "name: Release\n\non:\n  push:\n    branches: [main, '*-pre', '*-maint']\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ gi"
  },
  {
    "path": ".github/workflows/validate-skills.yml",
    "chars": 1372,
    "preview": "# validate-skills.yml — Drop this into your library repo's .github/workflows/\n#\n# Validates skill files on PRs that touc"
  },
  {
    "path": ".gitignore",
    "chars": 1124,
    "preview": ".vite\n# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\npackage-lo"
  },
  {
    "path": ".npmrc",
    "chars": 16,
    "preview": "provenance=true\n"
  },
  {
    "path": ".nvmrc",
    "chars": 7,
    "preview": "24.8.0\n"
  },
  {
    "path": ".nx/workflows/dynamic-changesets.yaml",
    "chars": 128,
    "preview": "distribute-on:\n  small-changeset: 3 linux-medium-js\n  medium-changeset: 6 linux-medium-js\n  large-changeset: 10 linux-me"
  },
  {
    "path": ".prettierignore",
    "chars": 304,
    "preview": "**/.next\n**/.nx/cache\n**/.svelte-kit\n**/build\n**/coverage\n**/dist\npnpm-lock.yaml\n**/snapshots\n**/.vercel\n**/.output\n**/n"
  },
  {
    "path": "AGENTS.md",
    "chars": 8154,
    "preview": "# AGENTS.md\n\n## Project overview\n\nTanStack Router is a type-safe router with built-in caching and URL state management f"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3309,
    "preview": "# Contributing\n\n- Clone the repo\n  - `gh repo clone TanStack/router`\n- Ensure `node` is installed\n  - https://nodejs.org"
  },
  {
    "path": "DEBUGGING.md",
    "chars": 8667,
    "preview": "# Debugging & Testing Guide\n\n_A practical guide for debugging complex issues and running tests effectively, learned from"
  },
  {
    "path": "LICENSE",
    "chars": 1079,
    "preview": "MIT License\n\nCopyright (c) 2021-present Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obta"
  },
  {
    "path": "README.md",
    "chars": 8870,
    "preview": "<img src=\"https://static.scarf.sh/a.png?x-pxid=d988eb79-b0fc-4a2b-8514-6a1ab932d188\" />\n\n<table>\n<tr>\n<td>\n\n<img\nsrc=\"./"
  },
  {
    "path": "_artifacts/domain_map.yaml",
    "chars": 43004,
    "preview": "# domain_map.yaml\n# Generated by skill-domain-discovery\n# Library: TanStack Router\n# Version: 1.166.2\n# Date: 2026-03-07"
  },
  {
    "path": "_artifacts/skill_spec.md",
    "chars": 18444,
    "preview": "# TanStack Router — Skill Spec\n\nTanStack Router is a type-safe router for React and Solid applications with built-in SWR"
  },
  {
    "path": "_artifacts/skill_tree.yaml",
    "chars": 11883,
    "preview": "# skills/_artifacts/skill_tree.yaml\nlibrary:\n  name: '@tanstack/router'\n  version: '1.166.2'\n  repository: 'https://gith"
  },
  {
    "path": "_artifacts/start_domain_map.yaml",
    "chars": 18823,
    "preview": "# domain_map.yaml\n# Generated by skill-domain-discovery\n# Library: TanStack Start\n# Version: 1.166.2\n# Date: 2026-03-07\n"
  },
  {
    "path": "_artifacts/start_skill_tree.yaml",
    "chars": 6440,
    "preview": "# skills/_artifacts/start_skill_tree.yaml\nlibrary:\n  name: '@tanstack/react-start'\n  version: '1.166.2'\n  repository: 'h"
  },
  {
    "path": "benchmarks/bundle-size/.gitignore",
    "chars": 111,
    "preview": "node_modules\ndist\nscenarios/*/src/routeTree.gen.ts\n\nresults/*.json\nresults/*.md\nresults/*.js\n!results/.gitkeep\n"
  },
  {
    "path": "benchmarks/bundle-size/README.md",
    "chars": 2124,
    "preview": "# Bundle Size Benchmarks\n\nThis workspace contains deterministic bundle-size fixtures for:\n\n- `@tanstack/react-router`\n- "
  },
  {
    "path": "benchmarks/bundle-size/package.json",
    "chars": 854,
    "preview": "{\n  \"name\": \"@benchmarks/bundle-size\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"node ../../sc"
  },
  {
    "path": "benchmarks/bundle-size/results/.gitkeep",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-full/index.html",
    "chars": 303,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-full/src/main.tsx",
    "chars": 561,
    "preview": "import ReactDOM from 'react-dom/client'\nimport { RouterProvider, createRouter } from '@tanstack/react-router'\nimport { r"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-full/src/routes/__root.tsx",
    "chars": 4418,
    "preview": "import {\n  Asset,\n  Await,\n  Block,\n  CatchBoundary,\n  CatchNotFound,\n  ClientOnly,\n  DefaultGlobalNotFound,\n  ErrorComp"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-full/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/react-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-full/vite.config.ts",
    "chars": 287,
    "preview": "import { defineConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\nimport { tanstackRouter } from '@tanstack/r"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-minimal/index.html",
    "chars": 306,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-minimal/src/main.tsx",
    "chars": 531,
    "preview": "import ReactDOM from 'react-dom/client'\nimport { RouterProvider, createRouter } from '@tanstack/react-router'\nimport { r"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-minimal/src/routes/__root.tsx",
    "chars": 186,
    "preview": "import { Outlet, createRootRoute } from '@tanstack/react-router'\n\nexport const Route = createRootRoute({\n  component: Ro"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-minimal/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/react-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-router-minimal/vite.config.ts",
    "chars": 287,
    "preview": "import { defineConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\nimport { tanstackRouter } from '@tanstack/r"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-full/src/router.tsx",
    "chars": 204,
    "preview": "import { createRouter } from '@tanstack/react-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRo"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-full/src/routes/__root.tsx",
    "chars": 5246,
    "preview": "import {\n  Asset,\n  Await,\n  Block,\n  CatchBoundary,\n  CatchNotFound,\n  ClientOnly,\n  DefaultGlobalNotFound,\n  ErrorComp"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-full/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/react-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-full/vite.config.ts",
    "chars": 224,
    "preview": "import { defineConfig } from 'vite'\nimport viteReact from '@vitejs/plugin-react'\nimport { tanstackStart } from '@tanstac"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-minimal/src/router.tsx",
    "chars": 204,
    "preview": "import { createRouter } from '@tanstack/react-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRo"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-minimal/src/routes/__root.tsx",
    "chars": 352,
    "preview": "import {\n  HeadContent,\n  Outlet,\n  Scripts,\n  createRootRoute,\n} from '@tanstack/react-router'\n\nexport const Route = cr"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-minimal/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/react-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/react-start-minimal/vite.config.ts",
    "chars": 224,
    "preview": "import { defineConfig } from 'vite'\nimport viteReact from '@vitejs/plugin-react'\nimport { tanstackStart } from '@tanstac"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-full/index.html",
    "chars": 303,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-full/src/main.tsx",
    "chars": 545,
    "preview": "import { render } from 'solid-js/web'\nimport { RouterProvider, createRouter } from '@tanstack/solid-router'\nimport { rou"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-full/src/routes/__root.tsx",
    "chars": 4458,
    "preview": "import {\n  Asset,\n  Await,\n  Block,\n  CatchBoundary,\n  CatchNotFound,\n  ClientOnly,\n  DefaultGlobalNotFound,\n  ErrorComp"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-full/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/solid-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-full/vite.config.ts",
    "chars": 284,
    "preview": "import { defineConfig } from 'vite'\nimport solid from 'vite-plugin-solid'\nimport { tanstackRouter } from '@tanstack/rout"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-minimal/index.html",
    "chars": 306,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-minimal/src/main.tsx",
    "chars": 515,
    "preview": "import { render } from 'solid-js/web'\nimport { RouterProvider, createRouter } from '@tanstack/solid-router'\nimport { rou"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-minimal/src/routes/__root.tsx",
    "chars": 186,
    "preview": "import { Outlet, createRootRoute } from '@tanstack/solid-router'\n\nexport const Route = createRootRoute({\n  component: Ro"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-minimal/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/solid-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-router-minimal/vite.config.ts",
    "chars": 284,
    "preview": "import { defineConfig } from 'vite'\nimport solid from 'vite-plugin-solid'\nimport { tanstackRouter } from '@tanstack/rout"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-full/src/router.tsx",
    "chars": 204,
    "preview": "import { createRouter } from '@tanstack/solid-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRo"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-full/src/routes/__root.tsx",
    "chars": 5392,
    "preview": "import {\n  Asset,\n  Await,\n  Block,\n  CatchBoundary,\n  CatchNotFound,\n  ClientOnly,\n  DefaultGlobalNotFound,\n  ErrorComp"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-full/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/solid-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-full/vite.config.ts",
    "chars": 226,
    "preview": "import { defineConfig } from 'vite'\nimport solid from 'vite-plugin-solid'\nimport { tanstackStart } from '@tanstack/solid"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-minimal/src/router.tsx",
    "chars": 204,
    "preview": "import { createRouter } from '@tanstack/solid-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRo"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-minimal/src/routes/__root.tsx",
    "chars": 352,
    "preview": "import {\n  HeadContent,\n  Outlet,\n  Scripts,\n  createRootRoute,\n} from '@tanstack/solid-router'\n\nexport const Route = cr"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-minimal/src/routes/index.tsx",
    "chars": 197,
    "preview": "import { createFileRoute } from '@tanstack/solid-router'\n\nexport const Route = createFileRoute('/')({\n  component: Index"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/solid-start-minimal/vite.config.ts",
    "chars": 226,
    "preview": "import { defineConfig } from 'vite'\nimport solid from 'vite-plugin-solid'\nimport { tanstackStart } from '@tanstack/solid"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-full/index.html",
    "chars": 301,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-full/src/main.tsx",
    "chars": 579,
    "preview": "import { createApp } from 'vue'\nimport { RouterProvider, createRouter } from '@tanstack/vue-router'\nimport { routeTree }"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-full/src/routes/__root.tsx",
    "chars": 4444,
    "preview": "import {\n  Asset,\n  Await,\n  Block,\n  Body,\n  CatchBoundary,\n  CatchNotFound,\n  ClientOnly,\n  DefaultGlobalNotFound,\n  E"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-full/src/routes/index.tsx",
    "chars": 195,
    "preview": "import { createFileRoute } from '@tanstack/vue-router'\n\nexport const Route = createFileRoute('/')({\n  component: IndexCo"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-full/vite.config.ts",
    "chars": 337,
    "preview": "import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport vueJsx from '@vitejs/plugin-vue-jsx'\nimp"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-minimal/index.html",
    "chars": 304,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-minimal/src/main.tsx",
    "chars": 549,
    "preview": "import { createApp } from 'vue'\nimport { RouterProvider, createRouter } from '@tanstack/vue-router'\nimport { routeTree }"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-minimal/src/routes/__root.tsx",
    "chars": 184,
    "preview": "import { Outlet, createRootRoute } from '@tanstack/vue-router'\n\nexport const Route = createRootRoute({\n  component: Root"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-minimal/src/routes/index.tsx",
    "chars": 195,
    "preview": "import { createFileRoute } from '@tanstack/vue-router'\n\nexport const Route = createFileRoute('/')({\n  component: IndexCo"
  },
  {
    "path": "benchmarks/bundle-size/scenarios/vue-router-minimal/vite.config.ts",
    "chars": 337,
    "preview": "import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport vueJsx from '@vitejs/plugin-vue-jsx'\nimp"
  },
  {
    "path": "benchmarks/bundle-size/tsconfig.json",
    "chars": 301,
    "preview": "{\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\""
  },
  {
    "path": "benchmarks/client-nav/README.md",
    "chars": 1516,
    "preview": "# Client Navigation Benchmarks\n\nCross-framework client-side navigation benchmarks for:\n\n- `@tanstack/react-router`\n- `@t"
  },
  {
    "path": "benchmarks/client-nav/jsdom.ts",
    "chars": 1328,
    "preview": "import { JSDOM } from 'jsdom'\n\nconst dom = new JSDOM('<!doctype html><html><body></body></html>', {\n  url: 'http://local"
  },
  {
    "path": "benchmarks/client-nav/package.json",
    "chars": 3820,
    "preview": "{\n  \"name\": \"@benchmarks/client-nav\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build:react\": \"vite bui"
  },
  {
    "path": "benchmarks/client-nav/react/app.tsx",
    "chars": 1881,
    "preview": "import {\n  Link,\n  Outlet,\n  RouterProvider,\n  createMemoryHistory,\n  createRootRoute,\n  createRoute,\n  createRouter,\n  "
  },
  {
    "path": "benchmarks/client-nav/react/setup.ts",
    "chars": 1638,
    "preview": "import type { NavigateOptions } from '@tanstack/router-core'\nimport type * as App from './app'\n\nconst appModulePath = '."
  },
  {
    "path": "benchmarks/client-nav/react/speed.bench.ts",
    "chars": 939,
    "preview": "import { afterAll, beforeAll, bench, describe } from 'vitest'\nimport { setup } from './setup'\n\ndescribe('client-nav', ()"
  },
  {
    "path": "benchmarks/client-nav/react/speed.flame.ts",
    "chars": 318,
    "preview": "import { window } from '../jsdom.ts'\nimport { setup } from './setup.ts'\n\nconst DURATION_MS = 10_000\n\nconst test = setup("
  },
  {
    "path": "benchmarks/client-nav/react/tsconfig.json",
    "chars": 367,
    "preview": "{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"react-jsx\",\n    \"allowImportingTsExtensions\""
  },
  {
    "path": "benchmarks/client-nav/react/vite.config.ts",
    "chars": 618,
    "preview": "import { defineConfig } from 'vitest/config'\nimport react from '@vitejs/plugin-react'\nimport codspeedPlugin from '@codsp"
  },
  {
    "path": "benchmarks/client-nav/solid/app.tsx",
    "chars": 1838,
    "preview": "import { For, createEffect } from 'solid-js'\nimport { render } from 'solid-js/web'\nimport {\n  Link,\n  Outlet,\n  RouterPr"
  },
  {
    "path": "benchmarks/client-nav/solid/setup.ts",
    "chars": 1668,
    "preview": "import type { NavigateOptions } from '@tanstack/router-core'\nimport type * as App from './app'\n\nconst appModulePath = '."
  },
  {
    "path": "benchmarks/client-nav/solid/speed.bench.ts",
    "chars": 939,
    "preview": "import { afterAll, beforeAll, bench, describe } from 'vitest'\nimport { setup } from './setup'\n\ndescribe('client-nav', ()"
  },
  {
    "path": "benchmarks/client-nav/solid/speed.flame.ts",
    "chars": 318,
    "preview": "import { window } from '../jsdom.ts'\nimport { setup } from './setup.ts'\n\nconst DURATION_MS = 10_000\n\nconst test = setup("
  },
  {
    "path": "benchmarks/client-nav/solid/tsconfig.json",
    "chars": 369,
    "preview": "{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"allowImportingTsExtensions\":"
  },
  {
    "path": "benchmarks/client-nav/solid/vite.config.ts",
    "chars": 797,
    "preview": "import { defineConfig } from 'vitest/config'\nimport solid from 'vite-plugin-solid'\nimport codspeedPlugin from '@codspeed"
  },
  {
    "path": "benchmarks/client-nav/tsconfig.json",
    "chars": 156,
    "preview": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\", \"vite/client\", \"vitest/globals\"]\n  },"
  },
  {
    "path": "benchmarks/client-nav/vitest.config.ts",
    "chars": 229,
    "preview": "import { defineConfig } from 'vitest/config'\n\nexport default defineConfig({\n  test: {\n    watch: false,\n    projects: [\n"
  },
  {
    "path": "benchmarks/client-nav/vitest.setup.ts",
    "chars": 115,
    "preview": "import { vi } from 'vitest'\n\n// @ts-expect-error\nglobal.IS_REACT_ACT_ENVIRONMENT = true\n\nwindow.scrollTo = vi.fn()\n"
  },
  {
    "path": "benchmarks/client-nav/vue/app.tsx",
    "chars": 2205,
    "preview": "import * as Vue from 'vue'\nimport {\n  Link,\n  Outlet,\n  RouterProvider,\n  createMemoryHistory,\n  createRootRoute,\n  crea"
  },
  {
    "path": "benchmarks/client-nav/vue/setup.ts",
    "chars": 1675,
    "preview": "import type { NavigateOptions } from '@tanstack/router-core'\nimport type * as App from './app'\n\nconst appModulePath = '."
  },
  {
    "path": "benchmarks/client-nav/vue/speed.bench.ts",
    "chars": 937,
    "preview": "import { afterAll, beforeAll, bench, describe } from 'vitest'\nimport { setup } from './setup'\n\ndescribe('client-nav', ()"
  },
  {
    "path": "benchmarks/client-nav/vue/speed.flame.ts",
    "chars": 318,
    "preview": "import { window } from '../jsdom.ts'\nimport { setup } from './setup.ts'\n\nconst DURATION_MS = 10_000\n\nconst test = setup("
  },
  {
    "path": "benchmarks/client-nav/vue/tsconfig.json",
    "chars": 364,
    "preview": "{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"allowImportingTsExtensions\":"
  },
  {
    "path": "benchmarks/client-nav/vue/vite.config.ts",
    "chars": 739,
    "preview": "import { defineConfig } from 'vitest/config'\nimport vue from '@vitejs/plugin-vue'\nimport vueJsx from '@vitejs/plugin-vue"
  },
  {
    "path": "benchmarks/ssr/README.md",
    "chars": 1116,
    "preview": "# SSR Benchmarks\n\nCross-framework SSR request-loop benchmarks for:\n\n- `@tanstack/react-start`\n- `@tanstack/solid-start`\n"
  },
  {
    "path": "benchmarks/ssr/bench-utils.ts",
    "chars": 1687,
    "preview": "export interface StartRequestHandler {\n  fetch: (request: Request) => Promise<Response> | Response\n}\n\nexport interface R"
  },
  {
    "path": "benchmarks/ssr/package.json",
    "chars": 2842,
    "preview": "{\n  \"name\": \"@benchmarks/ssr\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build:react\": \"vite build --co"
  },
  {
    "path": "benchmarks/ssr/react/speed.bench.ts",
    "chars": 1374,
    "preview": "import { afterAll, beforeAll, bench, describe } from 'vitest'\nimport { runSsrRequestLoop } from '../bench-utils'\nimport "
  },
  {
    "path": "benchmarks/ssr/react/src/routeTree.gen.ts",
    "chars": 3926,
    "preview": "/* eslint-disable */\n\n// @ts-nocheck\n\n// noinspection JSUnusedGlobalSymbols\n\n// This file was automatically generated by"
  },
  {
    "path": "benchmarks/ssr/react/src/router.tsx",
    "chars": 345,
    "preview": "import { createRouter } from '@tanstack/react-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRo"
  },
  {
    "path": "benchmarks/ssr/react/src/routes/$a.$b.$c.$d.tsx",
    "chars": 249,
    "preview": "import { createFileRoute } from '@tanstack/react-router'\nimport { RouteWorkload } from '../workload'\n\nexport const Route"
  },
  {
    "path": "benchmarks/ssr/react/src/routes/$a.$b.$c.tsx",
    "chars": 298,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/react-router'\nimport { RouteWorkload } from '../workload'\n\nexport con"
  },
  {
    "path": "benchmarks/ssr/react/src/routes/$a.$b.tsx",
    "chars": 295,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/react-router'\nimport { RouteWorkload } from '../workload'\n\nexport con"
  },
  {
    "path": "benchmarks/ssr/react/src/routes/$a.tsx",
    "chars": 292,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/react-router'\nimport { RouteWorkload } from '../workload'\n\nexport con"
  },
  {
    "path": "benchmarks/ssr/react/src/routes/__root.tsx",
    "chars": 398,
    "preview": "import {\n  HeadContent,\n  Outlet,\n  Scripts,\n  createRootRoute,\n} from '@tanstack/react-router'\n\nexport const Route = cr"
  },
  {
    "path": "benchmarks/ssr/react/src/workload.tsx",
    "chars": 1788,
    "preview": "import { Link, useParams, useSearch } from '@tanstack/react-router'\n\nconst probes = Array.from({ length: 10 }, (_, index"
  },
  {
    "path": "benchmarks/ssr/react/tsconfig.json",
    "chars": 287,
    "preview": "{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"react-jsx\",\n    \"jsxImportSource\": \"react\",\n"
  },
  {
    "path": "benchmarks/ssr/react/vite.config.ts",
    "chars": 710,
    "preview": "import { fileURLToPath } from 'node:url'\nimport { defineConfig } from 'vitest/config'\nimport codspeedPlugin from '@codsp"
  },
  {
    "path": "benchmarks/ssr/solid/speed.bench.ts",
    "chars": 1374,
    "preview": "import { afterAll, beforeAll, bench, describe } from 'vitest'\nimport { runSsrRequestLoop } from '../bench-utils'\nimport "
  },
  {
    "path": "benchmarks/ssr/solid/src/routeTree.gen.ts",
    "chars": 3926,
    "preview": "/* eslint-disable */\n\n// @ts-nocheck\n\n// noinspection JSUnusedGlobalSymbols\n\n// This file was automatically generated by"
  },
  {
    "path": "benchmarks/ssr/solid/src/router.tsx",
    "chars": 345,
    "preview": "import { createRouter } from '@tanstack/solid-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRo"
  },
  {
    "path": "benchmarks/ssr/solid/src/routes/$a.$b.$c.$d.tsx",
    "chars": 249,
    "preview": "import { createFileRoute } from '@tanstack/solid-router'\nimport { RouteWorkload } from '../workload'\n\nexport const Route"
  },
  {
    "path": "benchmarks/ssr/solid/src/routes/$a.$b.$c.tsx",
    "chars": 298,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/solid-router'\nimport { RouteWorkload } from '../workload'\n\nexport con"
  },
  {
    "path": "benchmarks/ssr/solid/src/routes/$a.$b.tsx",
    "chars": 295,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/solid-router'\nimport { RouteWorkload } from '../workload'\n\nexport con"
  },
  {
    "path": "benchmarks/ssr/solid/src/routes/$a.tsx",
    "chars": 292,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/solid-router'\nimport { RouteWorkload } from '../workload'\n\nexport con"
  },
  {
    "path": "benchmarks/ssr/solid/src/routes/__root.tsx",
    "chars": 398,
    "preview": "import {\n  HeadContent,\n  Outlet,\n  Scripts,\n  createRootRoute,\n} from '@tanstack/solid-router'\n\nexport const Route = cr"
  },
  {
    "path": "benchmarks/ssr/solid/src/workload.tsx",
    "chars": 1827,
    "preview": "import { For, createEffect } from 'solid-js'\nimport { Link, useParams, useSearch } from '@tanstack/solid-router'\n\nconst "
  },
  {
    "path": "benchmarks/ssr/solid/tsconfig.json",
    "chars": 289,
    "preview": "{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"jsxImportSource\": \"solid-js\""
  },
  {
    "path": "benchmarks/ssr/solid/vite.config.ts",
    "chars": 844,
    "preview": "import { fileURLToPath } from 'node:url'\nimport { defineConfig } from 'vitest/config'\nimport codspeedPlugin from '@codsp"
  },
  {
    "path": "benchmarks/ssr/tsconfig.json",
    "chars": 155,
    "preview": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\", \"vite/client\", \"vitest/globals\"]\n  },"
  },
  {
    "path": "benchmarks/ssr/vitest.config.ts",
    "chars": 229,
    "preview": "import { defineConfig } from 'vitest/config'\n\nexport default defineConfig({\n  test: {\n    watch: false,\n    projects: [\n"
  },
  {
    "path": "benchmarks/ssr/vue/speed.bench.ts",
    "chars": 1372,
    "preview": "import { afterAll, beforeAll, bench, describe } from 'vitest'\nimport { runSsrRequestLoop } from '../bench-utils'\nimport "
  },
  {
    "path": "benchmarks/ssr/vue/src/routeTree.gen.ts",
    "chars": 3920,
    "preview": "/* eslint-disable */\n\n// @ts-nocheck\n\n// noinspection JSUnusedGlobalSymbols\n\n// This file was automatically generated by"
  },
  {
    "path": "benchmarks/ssr/vue/src/router.tsx",
    "chars": 341,
    "preview": "import { createRouter } from '@tanstack/vue-router'\nimport { routeTree } from './routeTree.gen'\n\nexport function getRout"
  },
  {
    "path": "benchmarks/ssr/vue/src/routes/$a.$b.$c.$d.tsx",
    "chars": 247,
    "preview": "import { createFileRoute } from '@tanstack/vue-router'\nimport { RouteWorkload } from '../workload'\n\nexport const Route ="
  },
  {
    "path": "benchmarks/ssr/vue/src/routes/$a.$b.$c.tsx",
    "chars": 296,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/vue-router'\nimport { RouteWorkload } from '../workload'\n\nexport const"
  },
  {
    "path": "benchmarks/ssr/vue/src/routes/$a.$b.tsx",
    "chars": 293,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/vue-router'\nimport { RouteWorkload } from '../workload'\n\nexport const"
  },
  {
    "path": "benchmarks/ssr/vue/src/routes/$a.tsx",
    "chars": 290,
    "preview": "import { Outlet, createFileRoute } from '@tanstack/vue-router'\nimport { RouteWorkload } from '../workload'\n\nexport const"
  },
  {
    "path": "benchmarks/ssr/vue/src/routes/__root.tsx",
    "chars": 412,
    "preview": "import {\n  Body,\n  HeadContent,\n  Html,\n  Outlet,\n  Scripts,\n  createRootRoute,\n} from '@tanstack/vue-router'\n\nexport co"
  },
  {
    "path": "benchmarks/ssr/vue/src/workload.tsx",
    "chars": 2317,
    "preview": "import * as Vue from 'vue'\nimport { Link, useParams, useSearch } from '@tanstack/vue-router'\n\nconst probes = Array.from("
  },
  {
    "path": "benchmarks/ssr/vue/tsconfig.json",
    "chars": 284,
    "preview": "{\n  \"extends\": \"../../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"jsxImportSource\": \"vue\",\n   "
  },
  {
    "path": "benchmarks/ssr/vue/vite.config.ts",
    "chars": 710,
    "preview": "import { fileURLToPath } from 'node:url'\nimport { defineConfig } from 'vitest/config'\nimport codspeedPlugin from '@codsp"
  },
  {
    "path": "docs/router/api/file-based-routing.md",
    "chars": 9567,
    "preview": "---\ntitle: File-Based Routing API Reference\n---\n\nTanStack Router's file-based routing is quite flexible and can be confi"
  },
  {
    "path": "docs/router/api/router/ActiveLinkOptionsType.md",
    "chars": 1008,
    "preview": "---\nid: ActiveLinkOptionsType\ntitle: ActiveLinkOptions type\n---\n\nThe `ActiveLinkOptions` type extends the [`LinkOptions`"
  },
  {
    "path": "docs/router/api/router/AsyncRouteComponentType.md",
    "chars": 321,
    "preview": "---\nid: AsyncRouteComponentType\ntitle: AsyncRouteComponent type\n---\n\nThe `AsyncRouteComponent` type is used to describe "
  },
  {
    "path": "docs/router/api/router/FileRouteClass.md",
    "chars": 2153,
    "preview": "---\nid: FileRouteClass\ntitle: FileRoute class\n---\n\n> [!CAUTION]\n> This class has been deprecated and will be removed in "
  },
  {
    "path": "docs/router/api/router/LinkOptionsType.md",
    "chars": 1281,
    "preview": "---\nid: LinkOptionsType\ntitle: LinkOptions type\n---\n\nThe `LinkOptions` type extends the [`NavigateOptions`](./NavigateOp"
  },
  {
    "path": "docs/router/api/router/LinkPropsType.md",
    "chars": 980,
    "preview": "---\nid: LinkPropsType\ntitle: LinkProps type\n---\n\nThe `LinkProps` type extends the [`ActiveLinkOptions`](./ActiveLinkOpti"
  },
  {
    "path": "docs/router/api/router/MatchRouteOptionsType.md",
    "chars": 1251,
    "preview": "---\nid: MatchRouteOptionsType\ntitle: MatchRouteOptions type\n---\n\nThe `MatchRouteOptions` type is used to describe the op"
  },
  {
    "path": "docs/router/api/router/NavigateOptionsType.md",
    "chars": 3072,
    "preview": "---\nid: NavigateOptionsType\ntitle: NavigateOptions type\n---\n\nThe `NavigateOptions` type is used to describe the options "
  },
  {
    "path": "docs/router/api/router/NotFoundErrorType.md",
    "chars": 1747,
    "preview": "---\nid: NotFoundErrorType\ntitle: NotFoundError\n---\n\nThe `NotFoundError` type is used to represent a not-found error in T"
  },
  {
    "path": "docs/router/api/router/NotFoundRouteClass.md",
    "chars": 1395,
    "preview": "---\nid: NotFoundRouteClass\ntitle: NotFoundRoute class\n---\n\n> [!CAUTION]\n> This class has been deprecated and will be rem"
  },
  {
    "path": "docs/router/api/router/ParsedHistoryStateType.md",
    "chars": 386,
    "preview": "---\nid: ParsedHistoryStateType\ntitle: ParsedHistoryState type\n---\n\nThe `ParsedHistoryState` type represents a parsed sta"
  },
  {
    "path": "docs/router/api/router/ParsedLocationType.md",
    "chars": 521,
    "preview": "---\nid: ParsedLocationType\ntitle: ParsedLocation type\n---\n\nThe `ParsedLocation` type represents a parsed location in Tan"
  },
  {
    "path": "docs/router/api/router/RedirectType.md",
    "chars": 1377,
    "preview": "---\nid: RedirectType\ntitle: Redirect type\n---\n\nThe `Redirect` type is used to represent a redirect action in TanStack Ro"
  },
  {
    "path": "docs/router/api/router/RegisterType.md",
    "chars": 653,
    "preview": "---\nid: RegisterType\ntitle: Register type\n---\n\nThis type is used to register a route tree with a router instance. Doing "
  },
  {
    "path": "docs/router/api/router/RootRouteClass.md",
    "chars": 1177,
    "preview": "---\nid: RootRouteClass\ntitle: RootRoute class\n---\n\n> [!CAUTION]\n> This class has been deprecated and will be removed in "
  },
  {
    "path": "docs/router/api/router/RouteApiClass.md",
    "chars": 1100,
    "preview": "---\nid: RouteApiClass\ntitle: RouteApi class\n---\n\n> [!CAUTION]\n> This class has been deprecated and will be removed in th"
  },
  {
    "path": "docs/router/api/router/RouteApiType.md",
    "chars": 7978,
    "preview": "---\nid: RouteApiType\ntitle: RouteApi Type\n---\n\nThe `RouteApi` describes an instance that provides type-safe versions of "
  },
  {
    "path": "docs/router/api/router/RouteClass.md",
    "chars": 1059,
    "preview": "---\nid: RouteClass\ntitle: Route class\n---\n\n> [!CAUTION]\n> This class has been deprecated and will be removed in the next"
  },
  {
    "path": "docs/router/api/router/RouteMaskType.md",
    "chars": 653,
    "preview": "---\nid: RouteMaskType\ntitle: RouteMask type\n---\n\nThe `RouteMask` type extends the [`ToOptions`](./ToOptionsType.md) type"
  },
  {
    "path": "docs/router/api/router/RouteMatchType.md",
    "chars": 669,
    "preview": "---\nid: RouteMatchType\ntitle: RouteMatch type\n---\n\nThe `RouteMatch` type represents a route match in TanStack Router.\n\n`"
  },
  {
    "path": "docs/router/api/router/RouteOptionsType.md",
    "chars": 17338,
    "preview": "---\nid: RouteOptionsType\ntitle: RouteOptions type\n---\n\nThe `RouteOptions` type is used to describe the options that can "
  },
  {
    "path": "docs/router/api/router/RouteType.md",
    "chars": 1886,
    "preview": "---\nid: RouteType\ntitle: Route type\n---\n\nThe `Route` type is used to describe a route instance.\n\n## `Route` properties a"
  },
  {
    "path": "docs/router/api/router/RouterClass.md",
    "chars": 960,
    "preview": "---\nid: RouterClass\ntitle: Router Class\n---\n\n> [!CAUTION]\n> This class has been deprecated and will be removed in the ne"
  },
  {
    "path": "docs/router/api/router/RouterEventsType.md",
    "chars": 2356,
    "preview": "---\nid: RouterEventsType\ntitle: RouterEvents type\n---\n\nThe `RouterEvents` type contains all of the events that the route"
  },
  {
    "path": "docs/router/api/router/RouterOptionsType.md",
    "chars": 14130,
    "preview": "---\nid: RouterOptions\ntitle: RouterOptions\n---\n\nThe `RouterOptions` type contains all of the options that can be used to"
  },
  {
    "path": "docs/router/api/router/RouterStateType.md",
    "chars": 1601,
    "preview": "---\nid: RouterStateType\ntitle: RouterState type\n---\n\nThe `RouterState` type represents shape of the internal state of th"
  },
  {
    "path": "docs/router/api/router/RouterType.md",
    "chars": 9552,
    "preview": "---\nid: RouterType\ntitle: Router type\n---\n\nThe `Router` type is used to describe a router instance.\n\n## `Router` propert"
  },
  {
    "path": "docs/router/api/router/ToMaskOptionsType.md",
    "chars": 560,
    "preview": "---\nid: ToMaskOptionsType\ntitle: ToMaskOptions type\n---\n\nThe `ToMaskOptions` type includes the same destination fields a"
  },
  {
    "path": "docs/router/api/router/ToOptionsType.md",
    "chars": 761,
    "preview": "---\nid: ToOptionsType\ntitle: ToOptions type\n---\n\nThe `ToOptions` type contains several properties that can be used to de"
  },
  {
    "path": "docs/router/api/router/UseMatchRouteOptionsType.md",
    "chars": 426,
    "preview": "---\nid: UseMatchRouteOptionsType\ntitle: UseMatchRouteOptions type\n---\n\nThe `UseMatchRouteOptions` type extends the [`ToO"
  },
  {
    "path": "docs/router/api/router/ViewTransitionOptionsType.md",
    "chars": 1258,
    "preview": "---\nid: ViewTransitionOptionsType\ntitle: ViewTransitionOptions type\n---\n\nThe `ViewTransitionOptions` type is used to def"
  },
  {
    "path": "docs/router/api/router/awaitComponent.md",
    "chars": 1076,
    "preview": "---\nid: awaitComponent\ntitle: Await component\n---\n\nThe `Await` component is a component that suspends until the provided"
  },
  {
    "path": "docs/router/api/router/catchBoundaryComponent.md",
    "chars": 1492,
    "preview": "---\nid: catchBoundaryComponent\ntitle: CatchBoundary component\n---\n\nThe `CatchBoundary` component is a component that cat"
  },
  {
    "path": "docs/router/api/router/catchNotFoundComponent.md",
    "chars": 1212,
    "preview": "---\nid: catchNotFoundComponent\ntitle: CatchNotFound Component\n---\n\nThe `CatchNotFound` component is a component that cat"
  },
  {
    "path": "docs/router/api/router/clientOnlyComponent.md",
    "chars": 1212,
    "preview": "---\nid: clientOnlyComponent\ntitle: ClientOnly Component\n---\n\nThe `ClientOnly` component is used to render a component on"
  },
  {
    "path": "docs/router/api/router/createFileRouteFunction.md",
    "chars": 1340,
    "preview": "---\nid: createFileRouteFunction\ntitle: createFileRoute function\n---\n\nThe `createFileRoute` function is a factory that ca"
  },
  {
    "path": "docs/router/api/router/createLazyFileRouteFunction.md",
    "chars": 1638,
    "preview": "---\nid: createLazyFileRouteFunction\ntitle: createLazyFileRoute function\n---\n\nThe `createLazyFileRoute` function is used "
  },
  {
    "path": "docs/router/api/router/createLazyRouteFunction.md",
    "chars": 1952,
    "preview": "---\nid: createLazyRouteFunction\ntitle: createLazyRoute function\n---\n\nThe `createLazyRoute` function is used for creating"
  },
  {
    "path": "docs/router/api/router/createRootRouteFunction.md",
    "chars": 884,
    "preview": "---\nid: createRootRouteFunction\ntitle: createRootRoute function\n---\n\nThe `createRootRoute` function returns a new root r"
  },
  {
    "path": "docs/router/api/router/createRootRouteWithContextFunction.md",
    "chars": 1369,
    "preview": "---\nid: createRootRouteWithContextFunction\ntitle: createRootRouteWithContext function\n---\n\nThe `createRootRouteWithConte"
  },
  {
    "path": "docs/router/api/router/createRouteFunction.md",
    "chars": 850,
    "preview": "---\nid: createRouteFunction\ntitle: createRoute function\n---\n\nThe `createRoute` function implements returns a [`Route`](."
  },
  {
    "path": "docs/router/api/router/createRouteMaskFunction.md",
    "chars": 891,
    "preview": "---\nid: createRouteMaskFunction\ntitle: createRouteMask function\n---\n\nThe `createRouteMask` function is a helper function"
  },
  {
    "path": "docs/router/api/router/createRouterFunction.md",
    "chars": 729,
    "preview": "---\nid: createRouterFunction\ntitle: createRouter function\n---\n\nThe `createRouter` function accepts a [`RouterOptions`](."
  },
  {
    "path": "docs/router/api/router/defaultGlobalNotFoundComponent.md",
    "chars": 327,
    "preview": "---\nid: defaultGlobalNotFoundComponent\ntitle: DefaultGlobalNotFound component\n---\n\nThe `DefaultGlobalNotFound` component"
  },
  {
    "path": "docs/router/api/router/deferFunction.md",
    "chars": 1322,
    "preview": "---\nid: deferFunction\ntitle: defer function\n---\n\n> [!CAUTION]\n> You don't need to call `defer` manually anymore, Promise"
  },
  {
    "path": "docs/router/api/router/errorComponentComponent.md",
    "chars": 897,
    "preview": "---\nid: errorComponentComponent\ntitle: ErrorComponent component\n---\n\nThe `ErrorComponent` component is a component that "
  },
  {
    "path": "docs/router/api/router/getRouteApiFunction.md",
    "chars": 921,
    "preview": "---\nid: getRouteApiFunction\ntitle: getRouteApi function\n---\n\nThe `getRouteApi` function provides type-safe version of co"
  },
  {
    "path": "docs/router/api/router/historyStateInterface.md",
    "chars": 568,
    "preview": "---\nid: historyStateInterface\ntitle: HistoryState interface\n---\n\nThe `HistoryState` interface is an interface exported b"
  },
  {
    "path": "docs/router/api/router/isNotFoundFunction.md",
    "chars": 736,
    "preview": "---\nid: isNotFoundFunction\ntitle: isNotFound function\n---\n\nThe `isNotFound` function can be used to determine if an obje"
  },
  {
    "path": "docs/router/api/router/isRedirectFunction.md",
    "chars": 616,
    "preview": "---\nid: isRedirectFunction\ntitle: isRedirect function\n---\n\nThe `isRedirect` function can be used to determine if an obje"
  },
  {
    "path": "docs/router/api/router/lazyRouteComponentFunction.md",
    "chars": 1266,
    "preview": "---\nid: lazyRouteComponentFunction\ntitle: lazyRouteComponent function\n---\n\n> [!IMPORTANT]\n> If you are using file-based "
  },
  {
    "path": "docs/router/api/router/linkComponent.md",
    "chars": 1261,
    "preview": "---\nid: linkComponent\ntitle: Link component\n---\n\nThe `Link` component is a component that can be used to create a link t"
  },
  {
    "path": "docs/router/api/router/linkOptions.md",
    "chars": 729,
    "preview": "---\nid: linkOptions\ntitle: Link options\n---\n\n`linkOptions` is a function which type checks an object literal with the in"
  },
  {
    "path": "docs/router/api/router/matchRouteComponent.md",
    "chars": 1247,
    "preview": "---\nid: matchRouteComponent\ntitle: MatchRoute component\n---\n\nA component version of the `useMatchRoute` hook. It accepts"
  },
  {
    "path": "docs/router/api/router/navigateComponent.md",
    "chars": 512,
    "preview": "---\nid: navigateComponent\ntitle: Navigate component\n---\n\nThe `Navigate` component is a component that can be used to nav"
  },
  {
    "path": "docs/router/api/router/notFoundComponentComponent.md",
    "chars": 1078,
    "preview": "---\nid: notFoundComponentComponent\ntitle: NotFoundComponent component\n---\n\nThe `NotFoundComponent` component is a compon"
  }
]

// ... and 8359 more files (download for full content)

About this extraction

This page contains the full source code of the TanStack/router GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 8559 files (17.6 MB), approximately 4.5M tokens, and a symbol index with 12733 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!