Repository: sveltejs/kit Branch: main Commit: b31efce05cbc Files: 2540 Total size: 3.1 MB Directory structure: gitextract_6rnhbcf0/ ├── .changeset/ │ ├── busy-goats-brush.md │ ├── config.json │ ├── eight-sheep-unite.md │ ├── great-actors-stop.md │ ├── many-flowers-press.md │ ├── orange-queens-rush.md │ └── silver-baths-camp.md ├── .editorconfig ├── .eslint/ │ └── no-runtime-to-exports-imports.js ├── .gitattributes ├── .githooks/ │ └── pre-push ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── actions/ │ │ ├── platform-test/ │ │ │ └── action.yml │ │ └── vercel-deploy/ │ │ └── action.yml │ └── workflows/ │ ├── audit.yml │ ├── autofix-lint.yml │ ├── ci.yml │ ├── platform-tests-all.yml │ ├── platform-tests-vercel.yml │ └── release.yml ├── .gitignore ├── .npmrc ├── .prettierrc ├── .well-known/ │ └── funding-manifest-urls ├── AGENTS.md ├── CONTRIBUTING.md ├── FUNDING.json ├── LICENSE ├── README.md ├── documentation/ │ └── docs/ │ ├── 10-getting-started/ │ │ ├── 10-introduction.md │ │ ├── 20-creating-a-project.md │ │ ├── 25-project-types.md │ │ ├── 30-project-structure.md │ │ ├── 40-web-standards.md │ │ └── index.md │ ├── 20-core-concepts/ │ │ ├── 10-routing.md │ │ ├── 20-load.md │ │ ├── 30-form-actions.md │ │ ├── 40-page-options.md │ │ ├── 50-state-management.md │ │ ├── 60-remote-functions.md │ │ └── index.md │ ├── 25-build-and-deploy/ │ │ ├── 10-building-your-app.md │ │ ├── 20-adapters.md │ │ ├── 30-adapter-auto.md │ │ ├── 40-adapter-node.md │ │ ├── 50-adapter-static.md │ │ ├── 55-single-page-apps.md │ │ ├── 60-adapter-cloudflare.md │ │ ├── 70-adapter-cloudflare-workers.md │ │ ├── 80-adapter-netlify.md │ │ ├── 90-adapter-vercel.md │ │ ├── 99-writing-adapters.md │ │ └── index.md │ ├── 30-advanced/ │ │ ├── 10-advanced-routing.md │ │ ├── 20-hooks.md │ │ ├── 25-errors.md │ │ ├── 30-link-options.md │ │ ├── 40-service-workers.md │ │ ├── 50-server-only-modules.md │ │ ├── 65-snapshots.md │ │ ├── 67-shallow-routing.md │ │ ├── 68-observability.md │ │ ├── 70-packaging.md │ │ └── index.md │ ├── 40-best-practices/ │ │ ├── 03-auth.md │ │ ├── 05-performance.md │ │ ├── 06-icons.md │ │ ├── 07-images.md │ │ ├── 10-accessibility.md │ │ ├── 20-seo.md │ │ └── index.md │ ├── 60-appendix/ │ │ ├── 10-faq.md │ │ ├── 20-integrations.md │ │ ├── 25-debugging.md │ │ ├── 30-migrating-to-sveltekit-2.md │ │ ├── 40-migrating.md │ │ ├── 50-additional-resources.md │ │ ├── 60-glossary.md │ │ └── index.md │ ├── 98-reference/ │ │ ├── 10-@sveltejs-kit.md │ │ ├── 15-@sveltejs-kit-hooks.md │ │ ├── 15-@sveltejs-kit-node-polyfills.md │ │ ├── 15-@sveltejs-kit-node.md │ │ ├── 15-@sveltejs-kit-vite.md │ │ ├── 20-$app-environment.md │ │ ├── 20-$app-forms.md │ │ ├── 20-$app-navigation.md │ │ ├── 20-$app-paths.md │ │ ├── 20-$app-server.md │ │ ├── 20-$app-state.md │ │ ├── 20-$app-stores.md │ │ ├── 20-$app-types.md │ │ ├── 25-$env-dynamic-private.md │ │ ├── 25-$env-dynamic-public.md │ │ ├── 25-$env-static-private.md │ │ ├── 25-$env-static-public.md │ │ ├── 26-$lib.md │ │ ├── 27-$service-worker.md │ │ ├── 50-configuration.md │ │ ├── 52-cli.md │ │ ├── 54-types.md │ │ └── index.md │ └── index.md ├── eslint.config.js ├── package.json ├── packages/ │ ├── adapter-auto/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── adapters.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test/ │ │ │ └── adapters.spec.js │ │ └── tsconfig.json │ ├── adapter-cloudflare/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── ambient.d.ts │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ ├── package.json │ │ ├── src/ │ │ │ └── worker.js │ │ ├── test/ │ │ │ ├── apps/ │ │ │ │ ├── pages/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── server-side-dep/ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ └── workers/ │ │ │ │ ├── .gitignore │ │ │ │ ├── config/ │ │ │ │ │ └── wrangler.jsonc │ │ │ │ ├── package.json │ │ │ │ ├── playwright.config.js │ │ │ │ ├── server-side-dep/ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ ├── index.js │ │ │ │ │ └── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ ├── app.html │ │ │ │ │ └── routes/ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ ├── +page.svelte │ │ │ │ │ ├── ctx/ │ │ │ │ │ │ └── +server.js │ │ │ │ │ └── read/ │ │ │ │ │ ├── +server.js │ │ │ │ │ └── file.txt │ │ │ │ ├── svelte.config.js │ │ │ │ ├── test/ │ │ │ │ │ └── test.js │ │ │ │ ├── tsconfig.json │ │ │ │ └── vite.config.js │ │ │ └── utils.js │ │ ├── tsconfig.json │ │ ├── utils.js │ │ └── utils.spec.js │ ├── adapter-netlify/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── ambient.d.ts │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── edge.js │ │ │ ├── serverless.js │ │ │ └── shims.js │ │ ├── test/ │ │ │ ├── apps/ │ │ │ │ ├── basic/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── netlify.toml │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── instrumentation.server.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ └── read/ │ │ │ │ │ │ ├── +server.js │ │ │ │ │ │ └── file.txt │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.ts │ │ │ │ ├── edge/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── netlify.toml │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ └── read/ │ │ │ │ │ │ ├── +server.js │ │ │ │ │ │ └── file.txt │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.ts │ │ │ │ └── split/ │ │ │ │ ├── .gitignore │ │ │ │ ├── netlify.toml │ │ │ │ ├── package.json │ │ │ │ ├── playwright.config.js │ │ │ │ ├── src/ │ │ │ │ │ ├── app.html │ │ │ │ │ ├── instrumentation.server.js │ │ │ │ │ └── routes/ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ └── [id]/ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ └── remote/ │ │ │ │ │ └── query/ │ │ │ │ │ ├── +page.js │ │ │ │ │ ├── +page.svelte │ │ │ │ │ └── example.remote.js │ │ │ │ ├── svelte.config.js │ │ │ │ ├── test/ │ │ │ │ │ └── test.js │ │ │ │ ├── tsconfig.json │ │ │ │ └── vite.config.ts │ │ │ ├── preview.js │ │ │ └── utils.js │ │ └── tsconfig.json │ ├── adapter-node/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ambient.d.ts │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── env.js │ │ │ ├── handler.js │ │ │ ├── index.js │ │ │ └── shims.js │ │ ├── tests/ │ │ │ ├── env.spec.ts │ │ │ ├── smoke.spec_disabled.js │ │ │ └── utils.spec.ts │ │ ├── tsconfig.json │ │ └── utils.js │ ├── adapter-static/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ ├── package.json │ │ ├── platforms.js │ │ ├── test/ │ │ │ ├── apps/ │ │ │ │ ├── prerendered/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .npmrc │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── global.d.ts │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ ├── explicit.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ └── implicit.json/ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ ├── public-env/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── server-emitted-asset/ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ └── vite.config.js │ │ │ │ └── spa/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .npmrc │ │ │ │ ├── jsconfig.json │ │ │ │ ├── package.json │ │ │ │ ├── playwright.config.js │ │ │ │ ├── src/ │ │ │ │ │ ├── app.html │ │ │ │ │ └── routes/ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ ├── +page.svelte │ │ │ │ │ ├── about/ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ └── fallback/ │ │ │ │ │ └── [...rest]/ │ │ │ │ │ └── +page.svelte │ │ │ │ ├── svelte.config.js │ │ │ │ ├── test/ │ │ │ │ │ └── test.js │ │ │ │ └── vite.config.js │ │ │ └── utils.js │ │ └── tsconfig.json │ ├── adapter-vercel/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── ambient.d.ts │ │ ├── files/ │ │ │ ├── edge.js │ │ │ └── serverless.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ ├── package.json │ │ ├── test/ │ │ │ ├── apps/ │ │ │ │ └── basic/ │ │ │ │ ├── package.json │ │ │ │ ├── playwright.config.js │ │ │ │ ├── src/ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ ├── app.html │ │ │ │ │ └── routes/ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ ├── +page.svelte │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── json/ │ │ │ │ │ │ └── +server.ts │ │ │ │ │ ├── deep/ │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ └── route/ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── isr/ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── prerendered/ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── read/ │ │ │ │ │ │ ├── +server.ts │ │ │ │ │ │ └── file.txt │ │ │ │ │ └── server-data/ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ └── +page.svelte │ │ │ │ ├── svelte.config.js │ │ │ │ ├── test/ │ │ │ │ │ └── test.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── vite.config.ts │ │ │ ├── utils.js │ │ │ └── utils.spec.js │ │ ├── tsconfig.json │ │ └── utils.js │ ├── amp/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ └── tsconfig.json │ ├── enhanced-img/ │ │ ├── .prettierignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.js │ │ │ └── vite-plugin.js │ │ ├── test/ │ │ │ ├── Input.svelte │ │ │ ├── Output.svelte │ │ │ ├── apps/ │ │ │ │ └── basics/ │ │ │ │ ├── .npmrc │ │ │ │ ├── jsconfig.json │ │ │ │ ├── package.json │ │ │ │ ├── playwright.config.js │ │ │ │ ├── src/ │ │ │ │ │ ├── app.html │ │ │ │ │ └── routes/ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ └── +page.svelte │ │ │ │ ├── svelte.config.js │ │ │ │ ├── test/ │ │ │ │ │ └── test.js │ │ │ │ └── vite.config.js │ │ │ ├── markup-plugin.spec.js │ │ │ └── utils.js │ │ ├── tsconfig.json │ │ └── types/ │ │ ├── ambient.d.ts │ │ ├── index.d.ts │ │ └── internal.d.ts │ ├── kit/ │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── CHANGELOG-pre-1.md │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── kit.vitest.config.js │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── cp.js │ │ │ ├── generate-dts.js │ │ │ └── generate-version.js │ │ ├── src/ │ │ │ ├── cli.js │ │ │ ├── constants.js │ │ │ ├── core/ │ │ │ │ ├── adapt/ │ │ │ │ │ ├── builder.js │ │ │ │ │ ├── builder.spec.js │ │ │ │ │ ├── fixtures/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ │ └── static/ │ │ │ │ │ │ │ └── answer.md │ │ │ │ │ │ ├── compress/ │ │ │ │ │ │ │ └── foo.css │ │ │ │ │ │ └── instrument/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── server/ │ │ │ │ │ │ └── instrumentation.server.js │ │ │ │ │ └── index.js │ │ │ │ ├── config/ │ │ │ │ │ ├── default-error.html │ │ │ │ │ ├── fixtures/ │ │ │ │ │ │ ├── custom-src/ │ │ │ │ │ │ │ └── svelte.config.js │ │ │ │ │ │ ├── default/ │ │ │ │ │ │ │ └── svelte.config.js │ │ │ │ │ │ ├── export-string/ │ │ │ │ │ │ │ └── svelte.config.js │ │ │ │ │ │ ├── multiple/ │ │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ │ └── svelte.config.ts │ │ │ │ │ │ └── typescript/ │ │ │ │ │ │ └── svelte.config.ts │ │ │ │ │ ├── index.js │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── options.js │ │ │ │ │ └── types.d.ts │ │ │ │ ├── env.js │ │ │ │ ├── generate_manifest/ │ │ │ │ │ ├── find_server_assets.js │ │ │ │ │ └── index.js │ │ │ │ ├── postbuild/ │ │ │ │ │ ├── analyse.js │ │ │ │ │ ├── crawl.js │ │ │ │ │ ├── crawl.spec.js │ │ │ │ │ ├── entities.js │ │ │ │ │ ├── entities.spec.js │ │ │ │ │ ├── fallback.js │ │ │ │ │ ├── fixtures/ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── basic-href/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── basic-src/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── basic-srcset/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── encoded-ids/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── href-with-character-reference/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── ids/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── include-rel-external/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ ├── meta/ │ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ │ └── output.json │ │ │ │ │ │ └── unquoted-attributes/ │ │ │ │ │ │ ├── input.html │ │ │ │ │ │ └── output.json │ │ │ │ │ ├── prerender.js │ │ │ │ │ ├── queue.js │ │ │ │ │ └── queue.spec.js │ │ │ │ ├── sync/ │ │ │ │ │ ├── create_manifest_data/ │ │ │ │ │ │ ├── conflict.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.spec.js │ │ │ │ │ │ ├── sort.js │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ │ ├── bar.js │ │ │ │ │ │ │ │ └── foo.js │ │ │ │ │ │ │ ├── samples/ │ │ │ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ │ │ │ ├── +page.d.ts │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── about/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── blog/ │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── [slug].json/ │ │ │ │ │ │ │ │ │ │ │ └── +server.ts │ │ │ │ │ │ │ │ │ │ └── default.svelte │ │ │ │ │ │ │ │ │ └── blog.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── basic-layout/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── conflicting-groups/ │ │ │ │ │ │ │ │ │ ├── (x)/ │ │ │ │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── (y)/ │ │ │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── conflicting-params/ │ │ │ │ │ │ │ │ │ ├── [slug1]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── [slug2]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── conflicting-ts-js-handlers-layout/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ └── +layout.server.ts │ │ │ │ │ │ │ │ ├── conflicting-ts-js-handlers-page/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ │ ├── conflicting-ts-js-handlers-server/ │ │ │ │ │ │ │ │ │ ├── +server.js │ │ │ │ │ │ │ │ │ └── +server.ts │ │ │ │ │ │ │ │ ├── custom-extension/ │ │ │ │ │ │ │ │ │ ├── +page.funk │ │ │ │ │ │ │ │ │ ├── about/ │ │ │ │ │ │ │ │ │ │ └── +page.jazz │ │ │ │ │ │ │ │ │ ├── blog/ │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ │ │ │ │ └── +page.beebop │ │ │ │ │ │ │ │ │ │ ├── [slug].json/ │ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ │ └── _default.svelte │ │ │ │ │ │ │ │ │ └── blog.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── declared-layout/ │ │ │ │ │ │ │ │ │ └── +layout-foo.svelte │ │ │ │ │ │ │ │ ├── encoding/ │ │ │ │ │ │ │ │ │ ├── [x+22]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+23]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── [x+3f]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── hidden-dot/ │ │ │ │ │ │ │ │ │ ├── .unknown/ │ │ │ │ │ │ │ │ │ │ └── foo.txt.js │ │ │ │ │ │ │ │ │ └── .well-known/ │ │ │ │ │ │ │ │ │ └── dnt-policy.txt/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── hidden-underscore/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── _foo.js │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── _b/ │ │ │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ │ │ └── d.js │ │ │ │ │ │ │ │ │ ├── e/ │ │ │ │ │ │ │ │ │ │ └── f/ │ │ │ │ │ │ │ │ │ │ └── g/ │ │ │ │ │ │ │ │ │ │ └── h/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── i/ │ │ │ │ │ │ │ │ │ └── _j.js │ │ │ │ │ │ │ │ ├── invalid-named-layout-reference/ │ │ │ │ │ │ │ │ │ └── x/ │ │ │ │ │ │ │ │ │ ├── +page@.js │ │ │ │ │ │ │ │ │ └── +page@.svelte │ │ │ │ │ │ │ │ ├── invalid-params/ │ │ │ │ │ │ │ │ │ └── [foo][bar]/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── lockfiles/ │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ ├── +server.js │ │ │ │ │ │ │ │ │ └── +server.js_tmp │ │ │ │ │ │ │ │ ├── multiple-layouts/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── +layout@.svelte │ │ │ │ │ │ │ │ ├── multiple-pages/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── +page@.svelte │ │ │ │ │ │ │ │ ├── multiple-slugs/ │ │ │ │ │ │ │ │ │ └── [file].[ext]/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── named-layout-missing/ │ │ │ │ │ │ │ │ │ └── +page@missing.svelte │ │ │ │ │ │ │ │ ├── named-layouts/ │ │ │ │ │ │ │ │ │ ├── (special)/ │ │ │ │ │ │ │ │ │ │ ├── (alsospecial)/ │ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ │ │ │ └── c1/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ │ │ │ └── a2/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── a1/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ ├── c/ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── c2/ │ │ │ │ │ │ │ │ │ │ └── +page@.svelte │ │ │ │ │ │ │ │ │ └── d/ │ │ │ │ │ │ │ │ │ ├── (special)/ │ │ │ │ │ │ │ │ │ │ ├── (extraspecial)/ │ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ │ ├── d2/ │ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ │ └── d3/ │ │ │ │ │ │ │ │ │ │ │ └── +page@(special).svelte │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── d1/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── nested-errors/ │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── bar/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ └── baz/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── nested-optionals/ │ │ │ │ │ │ │ │ │ └── [[a]]/ │ │ │ │ │ │ │ │ │ └── [[b]]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── optional/ │ │ │ │ │ │ │ │ │ ├── [[foo]]bar/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── [[optional]]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── nested/ │ │ │ │ │ │ │ │ │ │ └── [[optional]]/ │ │ │ │ │ │ │ │ │ │ └── sub/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── prefix[[suffix]]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── optional-group/ │ │ │ │ │ │ │ │ │ └── [[optional]]/ │ │ │ │ │ │ │ │ │ └── (group)/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── page-without-svelte-file/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── error/ │ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ │ └── [...path]/ │ │ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── exists/ │ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── redirect/ │ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ │ ├── rest/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── [...rest]/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── [...rest]/ │ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── rest-prefix-suffix/ │ │ │ │ │ │ │ │ │ ├── [...rest].json/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── prefix-[...rest]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── symlinks/ │ │ │ │ │ │ │ │ ├── bar/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── static/ │ │ │ │ │ │ │ ├── bar/ │ │ │ │ │ │ │ │ └── baz.txt │ │ │ │ │ │ │ └── foo.txt │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── sync.js │ │ │ │ │ ├── ts.js │ │ │ │ │ ├── utils.js │ │ │ │ │ ├── write_ambient.js │ │ │ │ │ ├── write_client_manifest.js │ │ │ │ │ ├── write_non_ambient.js │ │ │ │ │ ├── write_root.js │ │ │ │ │ ├── write_server.js │ │ │ │ │ ├── write_tsconfig.js │ │ │ │ │ ├── write_tsconfig.spec.js │ │ │ │ │ └── write_types/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── test/ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── app-types/ │ │ │ │ │ │ ├── (group)/ │ │ │ │ │ │ │ └── path-a/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── trailing-slash/ │ │ │ │ │ │ │ ├── always/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ └── inside/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── ignore/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ └── inside/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── mixed/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ └── never/ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ └── inside/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ ├── foo/ │ │ │ │ │ │ │ └── [bar]/ │ │ │ │ │ │ │ └── [baz]/ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ ├── matcher-test/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ ├── no-matcher/ │ │ │ │ │ │ │ │ └── [locale]/ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ └── with-matcher/ │ │ │ │ │ │ │ └── [[locale=locale]]/ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ └── locale.js │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── layout-advanced/ │ │ │ │ │ │ ├── (main)/ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ ├── +page@.svelte │ │ │ │ │ │ │ └── sub/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── param-type-inference/ │ │ │ │ │ │ ├── optional/ │ │ │ │ │ │ │ └── [[optionalNarrowedParam=narrowed]]/ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ ├── narrowed.js │ │ │ │ │ │ │ └── not_narrowed.js │ │ │ │ │ │ ├── required/ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ ├── [narrowedParam=narrowed]/ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ └── [regularParam=not_narrowed]/ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ ├── spread/ │ │ │ │ │ │ │ └── [...spread=narrowed]/ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── simple-page-server-and-shared/ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── simple-page-server-only/ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── sub/ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── simple-page-shared-only/ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── sub/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ ├── slugs/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── [...rest]/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── x/ │ │ │ │ │ │ └── [[optional]]/ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ └── slugs-layout-not-all-pages-have-load/ │ │ │ │ │ ├── +layout.js │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ ├── nested/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── [...rest]/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ └── +page@.svelte │ │ │ │ │ ├── package.json │ │ │ │ │ └── tsconfig.json │ │ │ │ └── utils.js │ │ │ ├── exports/ │ │ │ │ ├── hooks/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── sequence.js │ │ │ │ │ └── sequence.spec.js │ │ │ │ ├── index.js │ │ │ │ ├── index.spec.js │ │ │ │ ├── internal/ │ │ │ │ │ ├── event.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── remote-functions.js │ │ │ │ │ └── server.js │ │ │ │ ├── node/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── polyfills.js │ │ │ │ ├── public.d.ts │ │ │ │ └── vite/ │ │ │ │ ├── build/ │ │ │ │ │ ├── build_server.js │ │ │ │ │ ├── build_service_worker.js │ │ │ │ │ ├── utils.js │ │ │ │ │ └── utils.spec.js │ │ │ │ ├── dev/ │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ ├── module_ids.js │ │ │ │ ├── preview/ │ │ │ │ │ └── index.js │ │ │ │ ├── static_analysis/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── utils.js │ │ │ │ │ └── utils.spec.js │ │ │ │ ├── types.d.ts │ │ │ │ ├── utils.js │ │ │ │ └── utils.spec.js │ │ │ ├── runtime/ │ │ │ │ ├── app/ │ │ │ │ │ ├── environment/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── forms.js │ │ │ │ │ ├── navigation.js │ │ │ │ │ ├── paths/ │ │ │ │ │ │ ├── client.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ ├── client.js │ │ │ │ │ │ │ └── server.js │ │ │ │ │ │ ├── public.d.ts │ │ │ │ │ │ ├── server.js │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── server/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── remote/ │ │ │ │ │ │ ├── command.js │ │ │ │ │ │ ├── form.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── prerender.js │ │ │ │ │ │ ├── query.js │ │ │ │ │ │ └── shared.js │ │ │ │ │ ├── state/ │ │ │ │ │ │ ├── client.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── server.js │ │ │ │ │ └── stores.js │ │ │ │ ├── client/ │ │ │ │ │ ├── bundle.js │ │ │ │ │ ├── client.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── entry.js │ │ │ │ │ ├── fetcher.js │ │ │ │ │ ├── parse.js │ │ │ │ │ ├── remote-functions/ │ │ │ │ │ │ ├── command.svelte.js │ │ │ │ │ │ ├── form.svelte.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── prerender.svelte.js │ │ │ │ │ │ ├── query.svelte.js │ │ │ │ │ │ └── shared.svelte.js │ │ │ │ │ ├── session-storage.js │ │ │ │ │ ├── state.svelte.js │ │ │ │ │ ├── types.d.ts │ │ │ │ │ └── utils.js │ │ │ │ ├── components/ │ │ │ │ │ ├── svelte-4/ │ │ │ │ │ │ ├── error.svelte │ │ │ │ │ │ └── layout.svelte │ │ │ │ │ └── svelte-5/ │ │ │ │ │ ├── error.svelte │ │ │ │ │ └── layout.svelte │ │ │ │ ├── env/ │ │ │ │ │ └── dynamic/ │ │ │ │ │ ├── private.js │ │ │ │ │ └── public.js │ │ │ │ ├── form-utils.js │ │ │ │ ├── form-utils.spec.js │ │ │ │ ├── pathname.js │ │ │ │ ├── server/ │ │ │ │ │ ├── ambient.d.ts │ │ │ │ │ ├── app.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── cookie.js │ │ │ │ │ ├── cookie.spec.js │ │ │ │ │ ├── data/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── endpoint.js │ │ │ │ │ ├── env_module.js │ │ │ │ │ ├── fetch.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── page/ │ │ │ │ │ │ ├── actions.js │ │ │ │ │ │ ├── crypto.js │ │ │ │ │ │ ├── crypto.spec.js │ │ │ │ │ │ ├── csp.js │ │ │ │ │ │ ├── csp.spec.js │ │ │ │ │ │ ├── data_serializer.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── load_data.js │ │ │ │ │ │ ├── load_data.spec.js │ │ │ │ │ │ ├── render.js │ │ │ │ │ │ ├── respond_with_error.js │ │ │ │ │ │ ├── serialize_data.js │ │ │ │ │ │ ├── serialize_data.spec.js │ │ │ │ │ │ ├── server_routing.js │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── remote.js │ │ │ │ │ ├── respond.js │ │ │ │ │ ├── utils.js │ │ │ │ │ ├── validate-headers.js │ │ │ │ │ └── validate-headers.spec.js │ │ │ │ ├── shared-server.js │ │ │ │ ├── shared.js │ │ │ │ ├── telemetry/ │ │ │ │ │ ├── noop.js │ │ │ │ │ ├── otel.disabled.spec.js │ │ │ │ │ ├── otel.enabled.spec.js │ │ │ │ │ ├── otel.js │ │ │ │ │ ├── otel.missing.spec.js │ │ │ │ │ ├── record_span.disabled.spec.js │ │ │ │ │ ├── record_span.enabled.spec.js │ │ │ │ │ └── record_span.js │ │ │ │ ├── utils.js │ │ │ │ └── utils.spec.js │ │ │ ├── types/ │ │ │ │ ├── ambient-private.d.ts │ │ │ │ ├── ambient.d.ts │ │ │ │ ├── global-private.d.ts │ │ │ │ ├── internal.d.ts │ │ │ │ ├── private.d.ts │ │ │ │ └── synthetic/ │ │ │ │ ├── $env+dynamic+private.md │ │ │ │ ├── $env+dynamic+public.md │ │ │ │ ├── $env+static+private.md │ │ │ │ ├── $env+static+public.md │ │ │ │ └── $lib.md │ │ │ ├── utils/ │ │ │ │ ├── array.js │ │ │ │ ├── css.js │ │ │ │ ├── css.spec.js │ │ │ │ ├── env.js │ │ │ │ ├── error.js │ │ │ │ ├── escape.js │ │ │ │ ├── escape.spec.js │ │ │ │ ├── exports.js │ │ │ │ ├── exports.spec.js │ │ │ │ ├── features.js │ │ │ │ ├── filesystem.js │ │ │ │ ├── filesystem.spec.js │ │ │ │ ├── fork.js │ │ │ │ ├── functions.js │ │ │ │ ├── hash.js │ │ │ │ ├── http.js │ │ │ │ ├── http.spec.js │ │ │ │ ├── import.js │ │ │ │ ├── misc.js │ │ │ │ ├── page_nodes.js │ │ │ │ ├── promise.js │ │ │ │ ├── routing.js │ │ │ │ ├── routing.spec.js │ │ │ │ ├── streaming.js │ │ │ │ ├── streaming.spec.js │ │ │ │ ├── url.js │ │ │ │ └── url.spec.js │ │ │ ├── version.js │ │ │ └── version.spec.js │ │ ├── svelte-kit.js │ │ ├── test/ │ │ │ ├── .gitignore │ │ │ ├── ambient.d.ts │ │ │ ├── apps/ │ │ │ │ ├── amp/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── http-equiv/ │ │ │ │ │ │ │ └── cache-control/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── invalid/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── has-stylesheet/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── origin/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── origin.json/ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ ├── styles/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ ├── Unused.svelte │ │ │ │ │ │ │ └── imported.css │ │ │ │ │ │ ├── valid/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── valid.json/ │ │ │ │ │ │ └── +server.js │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── async/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.md │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.client.js │ │ │ │ │ │ ├── hooks.js │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── remote/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ ├── accessing-env.remote.js │ │ │ │ │ │ │ ├── batch/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── batch.remote.js │ │ │ │ │ │ │ ├── batch-ssr/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── batch.remote.js │ │ │ │ │ │ │ ├── batch-validation/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── batch.remote.js │ │ │ │ │ │ │ ├── dev/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── preload/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── example.remote.js │ │ │ │ │ │ │ │ └── schema.js │ │ │ │ │ │ │ ├── event/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── data.remote.ts │ │ │ │ │ │ │ ├── form/ │ │ │ │ │ │ │ │ ├── [test_name]/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── file-upload/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── for-duplicate/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── imperative/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── preflight/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── preflight-only/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── preflight-pending/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── redirect-target/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── destination/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── select-untouched/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── set-ssr/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── submitter/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── underscore/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ ├── validate/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── form.remote.ts │ │ │ │ │ │ │ │ └── value/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── value.remote.ts │ │ │ │ │ │ │ ├── prerender/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── functions-only/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── prerender.remote.js │ │ │ │ │ │ │ │ ├── test.txt │ │ │ │ │ │ │ │ └── whole-page/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── query-boundary/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── data.remote.js │ │ │ │ │ │ │ ├── query-command.remote.js │ │ │ │ │ │ │ ├── query-non-exported/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── data.remote.ts │ │ │ │ │ │ │ ├── query-redirect/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── from-common-layout/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── redirected/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── from-page/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect.remote.js │ │ │ │ │ │ │ │ └── redirected/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── query-runtime-errors/ │ │ │ │ │ │ │ │ ├── inactive/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── TrackedQuery.svelte │ │ │ │ │ │ │ │ ├── not-tracked/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── run-in-render/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── server-action/ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── action.remote.ts │ │ │ │ │ │ │ ├── server-endpoint/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ │ │ └── +server.ts │ │ │ │ │ │ │ │ └── internal.remote.ts │ │ │ │ │ │ │ ├── server-load-command/ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── transport/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── data.remote.ts │ │ │ │ │ │ │ └── validation/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── validation.remote.js │ │ │ │ │ │ └── server-error-boundary/ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── static/ │ │ │ │ │ │ └── robots.txt │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── client.test.js │ │ │ │ │ │ ├── server.test.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── basics/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── error.html │ │ │ │ │ │ ├── global.d.ts │ │ │ │ │ │ ├── hooks.client.js │ │ │ │ │ │ ├── hooks.js │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ ├── instrumentation.server.js │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ ├── lowercase.js │ │ │ │ │ │ │ ├── numeric.js │ │ │ │ │ │ │ └── uppercase.js │ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ ├── accessibility/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── autofocus/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ │ │ ├── enhance/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── file-without-enctype/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── form-errors/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── adjacent-error-boundary/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── form-errors-persist-fields/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── invalidate-all/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect-in-handle/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── success-data/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── update-form/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── prerendered/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── anchor/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── anchor/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── anchor-with-manual-scroll/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── anchor-afternavigate/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── anchor-onmount/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── answer.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── app-environment/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── asset-import/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── asset-preload/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── prerendered/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── styles.css │ │ │ │ │ │ │ ├── caching/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── server-data/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── content-length-header/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── content-type-header/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── cookies/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── collect-without-re-escaping/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── set-cookie/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── delete/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── encoding/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── not-decoded-twice/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── set/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── enhanced/ │ │ │ │ │ │ │ │ │ └── basic/ │ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── forwarded-in-etag/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── nested/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── serialize/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── set/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── set-in-layout/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── set-more-than-one/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── shared.js │ │ │ │ │ │ │ ├── csrf/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── _base.css │ │ │ │ │ │ │ │ ├── _manual.css │ │ │ │ │ │ │ │ ├── _styles.css │ │ │ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── Dynamic.svelte │ │ │ │ │ │ │ │ ├── encöded/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── other/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── cyclical-dynamic-import/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── _is_even.js │ │ │ │ │ │ │ │ └── _is_odd.js │ │ │ │ │ │ │ ├── data-sveltekit/ │ │ │ │ │ │ │ │ ├── noscroll/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── preload-code/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ ├── eager/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── hover/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── tap/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── viewport/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── preload-data/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── offline/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── slow-navigation/ │ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── reload/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── hash/ │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── new/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── replacestate/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── delete-route/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── [id].json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── encoded/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── @[username]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── escape-sequences/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── [u+82d7]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [u+d83e][u+dd2a]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+23]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+25]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+2f]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+3a]-[x+29]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+3c]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [x+3f]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── [x][x+3c][y]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirected/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── 反应/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── 苗条/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── endpoint-input/ │ │ │ │ │ │ │ │ └── sha256/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── endpoint-output/ │ │ │ │ │ │ │ │ ├── +server.js │ │ │ │ │ │ │ │ ├── body/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fallback/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-asset/ │ │ │ │ │ │ │ │ │ ├── absolute/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── relative/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── test.txt │ │ │ │ │ │ │ │ ├── head-handler/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── head-write-error/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── stream/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── stream-throw-error/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ └── stream-typeerror/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── env/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── includes/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── errors/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── clientside/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── endpoint-shadow/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── endpoint-shadow-not-ok/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── endpoint-throw-error/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── endpoint-throw-redirect/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── endpoint.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── error-html/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── make-root-fail/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── error-in-handle/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── error-in-layout/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── init-error-endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── invalid-load-response/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── invalid-route-response/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── invalid-server-load-response/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── load-client/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── load-error-client/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── load-error-page-options/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ └── csr/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ │ ├── load-error-server/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── layout-data/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── load-error-string-server/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── load-server/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── load-status-without-error-client/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── missing-actions/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── module-scope-client/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── module-scope-server/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── nested-error-page/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── nope/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── page-endpoint/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── _shared.js │ │ │ │ │ │ │ │ │ ├── get-explicit/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── get-implicit/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── post-explicit/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── post-implicit/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── serverside/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── stack-trace/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── _bad.js │ │ │ │ │ │ │ ├── get-request-event/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── with-error/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ │ └── with-message/ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── goto/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── loadreplace1/ │ │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ │ ├── loadreplace2/ │ │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ │ ├── loadreplace3/ │ │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ │ ├── testentry/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── testfinish/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── teststart/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── headers/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── class/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── echo/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ └── set-cookie/ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ └── sub/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── iframes/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ │ │ ├── child/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── parent/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── immutable-headers/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── index.css │ │ │ │ │ │ │ ├── init-hooks/ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── navigate/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── interactivity/ │ │ │ │ │ │ │ │ └── toggle-element/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── keepfocus/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── load/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── [dynamic]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── [dynamic].json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── accumulated/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── with-page-data/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── without-page-data/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── cache-control/ │ │ │ │ │ │ │ │ │ ├── bust/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── count/ │ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ │ └── increment/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── default/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── count/ │ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ │ └── increment/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── force/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── count/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── increment/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── change-detection/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── data.json/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── one/ │ │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── two/ │ │ │ │ │ │ │ │ │ └── [y]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── devalue/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── regex/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── dynamic-import-styles/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── _/ │ │ │ │ │ │ │ │ │ └── Thing.svelte │ │ │ │ │ │ │ │ ├── fetch-abort-signal/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── slow/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-arraybuffer-b64/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── data/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-asset/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── example.json │ │ │ │ │ │ │ │ ├── fetch-body-stream-b64/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── data/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-cache-control/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── headers-diff/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── load-data/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-credentialed/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-credentialed.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-external-no-cookies/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-no-body/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-origin-external/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-origin-internal/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── resource/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-relative/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-relative.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-request/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-request-empty-headers/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-request-headers/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── data/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-request.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-response-headers/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── fetch-response-headers.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── fetch-same-url/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── data.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── invalidation/ │ │ │ │ │ │ │ │ │ ├── depends/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── depends-goto/ │ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── forced/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── reset-states/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── forced-goto/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── reset-states/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── invalidate-then-goto/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── multiple/ │ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── state.js │ │ │ │ │ │ │ │ │ ├── multiple-batched/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── [a]/ │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── [b]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── route/ │ │ │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── shared/ │ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── [x]/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── search-params/ │ │ │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── universal/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── server-fetch/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── count.json/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── url/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── large-response/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── text.txt/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── mutated-url/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── no-server-load/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── parent/ │ │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── [y]/ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── [z]/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── shared/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── [y]/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── [z]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── props/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── raw-body/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── dataview/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── string/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── uint8array/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── raw-body.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── relay/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── relay.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── serialization/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── fetched-from-server.json/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── fetched-from-shared.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── serialization-empty-node/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── serialization-post/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── serialization-post-request/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── serialization-post.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── server-data-nostore/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── server-data-reuse/ │ │ │ │ │ │ │ │ │ ├── no-load/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── with-changing-parent/ │ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── no-load/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── with-server-load/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── with-server-load/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── server-fetch-request/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── server-log-search-param/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── server-response-clone/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── set-cookie-fetch/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── a.json/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ └── b.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── state.js │ │ │ │ │ │ │ │ ├── static-file-with-hash/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── unchanged/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── isolated/ │ │ │ │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── state.js │ │ │ │ │ │ │ │ ├── unchanged-parent/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── state.js │ │ │ │ │ │ │ │ │ └── uses-parent/ │ │ │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── url-hash/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── url-query-param/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── url-to-string/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── window-fetch/ │ │ │ │ │ │ │ │ ├── correct/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── data.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── incorrect/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── outside-load/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── patching/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── patching-server-load/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── patching-server-load-ii/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── match/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── const.ts │ │ │ │ │ │ │ │ ├── load/ │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── slug/ │ │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── navigation-lifecycle/ │ │ │ │ │ │ │ │ ├── after-navigate/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── after-navigate-properly-removed/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── before-navigate/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── complete/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── event/ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── hash-links/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── prevent-navigation/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── redirect/ │ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ │ ├── on-navigate/ │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── scroll-state/ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── nested-layout/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── error/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── foo/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── bar/ │ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ └── nope/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── baz/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── reset/ │ │ │ │ │ │ │ │ ├── +layout@.svelte │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── no-csr/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── data.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── no-ssr/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── after-navigate/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── browser-only-global/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── margin/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── other/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── ssr-page-config/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── inherit/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── overwrite/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── node-analysis/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── origin/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── package.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── params-prop/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── paths/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── deeply/ │ │ │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── prerendering/ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ ├── env/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── prerendered/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── log-url/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── mutative-endpoint/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.server.ts │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── no-ssr/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── prerendered-endpoint/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── api-with-param/ │ │ │ │ │ │ │ │ │ │ └── [option]/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── page/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── proxy/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ └── 中文/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ ├── query/ │ │ │ │ │ │ │ │ └── echo/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ ├── read-file/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── [auto].txt │ │ │ │ │ │ │ │ ├── [styles].css │ │ │ │ │ │ │ │ ├── [url].txt │ │ │ │ │ │ │ │ └── assets/ │ │ │ │ │ │ │ │ └── [file].txt │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── c/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── in-handle/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── loopy/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── missing-status/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── package/ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ ├── redirect-on-load/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── redirected/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── reroute/ │ │ │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ │ │ ├── +server.ts │ │ │ │ │ │ │ │ │ └── [prerendered]/ │ │ │ │ │ │ │ │ │ └── +server.ts │ │ │ │ │ │ │ │ ├── async/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── +page.ts │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── client-only-redirect/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── error-handling/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── client-error/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── client-error-rewritten/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── server-error/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── external/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── invalidate/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── preload-data/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ │ └── prerendered/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── destination/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ ├── reset-focus/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── routing/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── ambiguous/ │ │ │ │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── [slug].json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── b.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── cancellation/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── client/ │ │ │ │ │ │ │ │ │ ├── bar/ │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── const/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── content-negotiation/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── dirs/ │ │ │ │ │ │ │ │ │ ├── bar/ │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── [a]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── [b]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── external-popstate/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── focus/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── form-get/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── form-target-blank/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── hashes/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── focus/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── pagestate/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── link-outside-app-target/ │ │ │ │ │ │ │ │ │ ├── source/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── state.js │ │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── long-navigation/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── matched/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── [fallback]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [letter=lowercase]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── [letter=uppercase]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── [number=numeric]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── missing-href/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── next-paint/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── params-in-handle/ │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── preloading/ │ │ │ │ │ │ │ │ │ ├── hash-route/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── preload-error/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── preloaded/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── preloaded.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── prerendered/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ └── trailing-slash/ │ │ │ │ │ │ │ │ │ ├── always/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── ignore/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── never/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── rest/ │ │ │ │ │ │ │ │ │ ├── [...rest]/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── deep/ │ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── deep.json/ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ ├── complex/ │ │ │ │ │ │ │ │ │ │ ├── [...parts].json/ │ │ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ │ │ └── prefix-[...parts]/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── non-greedy/ │ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ │ ├── [dynamic]-bar/ │ │ │ │ │ │ │ │ │ │ │ └── [...rest]/ │ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ │ │ │ └── [...rest]/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── path/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ └── [...ignored]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── route-id/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── shadow-dom/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── skipped/ │ │ │ │ │ │ │ │ │ └── [one]/ │ │ │ │ │ │ │ │ │ └── [two]/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── slashes/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── split-params/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── [a]-[b]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── symlink-to/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── trailing-slash/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── always/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── ignore/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── never/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── trailing-slash-server/ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── always/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── ignore/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── never/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── scroll/ │ │ │ │ │ │ │ │ ├── cross-document/ │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── push-state/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── top/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── selection/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── serialization-basic/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── child/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── serialization-form-enhanced/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── serialization-form-non-enhanced/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── server-deserialize/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── serialization-stream/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── set-cookie/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── shadowed/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── error-get/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── error-post/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── missing-get/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── no-get/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── parent/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── sub/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── post-success-redirect/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── redirected/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── [a]/ │ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect-get/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect-get-with-cookie/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect-get-with-cookie-from-fetch/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── endpoint/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── redirect-post/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect-post-with-cookie/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirected/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── same-render/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── same-render-entry/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── serialization/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── simple/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── post/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── shallow-routing/ │ │ │ │ │ │ │ │ ├── push-state/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── effect/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── replace-state/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── effect/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── snapshot/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ │ └── [...anything]/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── state/ │ │ │ │ │ │ │ │ ├── client-access/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── [item]/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── foo/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── state-update/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── same-keys/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── same/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── same-deep/ │ │ │ │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── navigating/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── url/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── static/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── store/ │ │ │ │ │ │ │ │ ├── client-access/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── [item]/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── foo/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── store-update/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── same-keys/ │ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ ├── same/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── same-deep/ │ │ │ │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── navigating/ │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ │ └── c/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── subscribe/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── streaming/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── discarded-promise/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── fast-n-slow/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── server-error/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── universal/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── tracing/ │ │ │ │ │ │ │ │ ├── http-error/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── non-error-object/ │ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ │ ├── one/ │ │ │ │ │ │ │ │ │ └── two/ │ │ │ │ │ │ │ │ │ └── three/ │ │ │ │ │ │ │ │ │ └── [...four]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ │ └── regular-error/ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ ├── transform-page-chunk/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── treeshaking/ │ │ │ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── dev/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── unsafe-replacement/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── untrack/ │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── universal/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── use-action/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── focus-and-scroll/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── xss/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── [path]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── query/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ │ ├── query-tracking/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── shadow/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── xss.json/ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ └── service-worker.js │ │ │ │ │ ├── static/ │ │ │ │ │ │ ├── empty.js │ │ │ │ │ │ ├── load/ │ │ │ │ │ │ │ ├── assets/ │ │ │ │ │ │ │ │ └── a#b.txt │ │ │ │ │ │ │ └── foo.json │ │ │ │ │ │ ├── static.json │ │ │ │ │ │ ├── subdirectory/ │ │ │ │ │ │ │ └── static.json │ │ │ │ │ │ └── symlink-to/ │ │ │ │ │ │ └── hello.txt │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── client.test.js │ │ │ │ │ │ ├── cross-platform/ │ │ │ │ │ │ │ ├── client.test.js │ │ │ │ │ │ │ ├── server.test.js │ │ │ │ │ │ │ └── test.js │ │ │ │ │ │ ├── server.test.js │ │ │ │ │ │ ├── setup.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ ├── unit-test/ │ │ │ │ │ │ └── client.spec.js │ │ │ │ │ └── vite.config.js │ │ │ │ ├── dev-only/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── _test_dependencies/ │ │ │ │ │ │ └── cjs-only/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.client.js │ │ │ │ │ │ ├── hooks.js │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ └── blah/ │ │ │ │ │ │ │ │ └── private.js │ │ │ │ │ │ │ └── test.server.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── headers/ │ │ │ │ │ │ │ └── invalid/ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ ├── illegal-imports/ │ │ │ │ │ │ │ ├── env/ │ │ │ │ │ │ │ │ ├── dynamic-private/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── static-private/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── server-only-folder/ │ │ │ │ │ │ │ │ └── static-import/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── server-only-modules/ │ │ │ │ │ │ │ ├── illegal.server.js │ │ │ │ │ │ │ ├── static-import/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── foo.js │ │ │ │ │ │ │ └── static-import-2/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── optimize-deps/ │ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ └── request-abort/ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ └── +server.js │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── embed/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ └── embed/ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── b/ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── hash-based-routing/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── anchor/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── b/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── focus/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── a/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── rerouted/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── resolve/ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── no-ssr/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ └── browser-globals/ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── options/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── env-dir/ │ │ │ │ │ │ └── .env │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── public/ │ │ │ │ │ │ └── answer.html │ │ │ │ │ ├── source/ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── Message.svelte │ │ │ │ │ │ │ ├── SharedCSS.svelte │ │ │ │ │ │ │ └── SvelteLogo.svelte │ │ │ │ │ │ ├── hooks.client.js │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ ├── pages/ │ │ │ │ │ │ │ ├── +layout.server.js │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ ├── +server.js │ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── csp/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── csp-hydratable/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── csp-with-stream/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── custom-extensions/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.jesuslivesineveryone │ │ │ │ │ │ │ │ ├── [slug]/ │ │ │ │ │ │ │ │ │ └── +page.svelte.md │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── const/ │ │ │ │ │ │ │ │ │ └── +page.whokilledthemuffinman │ │ │ │ │ │ │ │ └── unsafe-replacement/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── endpoint/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── endpoint-with-slash/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── env/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── error/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── fetch/ │ │ │ │ │ │ │ │ ├── link-outside-base/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── link-root/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── inline-style/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── conditional-rendering/ │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── Component.svelte │ │ │ │ │ │ │ │ ├── dynamic-import/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ │ └── Thing.svelte │ │ │ │ │ │ │ │ ├── import-meta/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── static-dir/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── url-encoded/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── match/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── mode/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── on-navigate/ │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── page-endpoint/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── preloading/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── code/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── preloaded/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── resolve-route/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── [foo]/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── routing/ │ │ │ │ │ │ │ │ └── link-outside-app-target/ │ │ │ │ │ │ │ │ ├── source/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── state.js │ │ │ │ │ │ │ │ └── target/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── slash/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── child/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── test.txt │ │ │ │ │ │ └── template.html │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── paths-assets.test.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.custom.config.js │ │ │ │ ├── options-2/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.js │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ ├── deeply/ │ │ │ │ │ │ │ │ └── nested/ │ │ │ │ │ │ │ │ └── page/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── deserialize/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ ├── env/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── hello/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── remote/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── count.remote.js │ │ │ │ │ │ │ ├── serialization-stream/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── trailing-slash-server/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── prerender/ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── service-worker.js │ │ │ │ │ ├── static/ │ │ │ │ │ │ └── answer.txt │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── options-3/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.js │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ └── serialization-stream/ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── prerendered-app-error-pages/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.md │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── playwright.config.js │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +error.svelte │ │ │ │ │ │ ├── +layout.ts │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── test.js │ │ │ │ │ └── vite.config.js │ │ │ │ ├── read-file-test/ │ │ │ │ │ └── [file].txt │ │ │ │ ├── test.svelte │ │ │ │ └── writes/ │ │ │ │ ├── .gitignore │ │ │ │ ├── package.json │ │ │ │ ├── playwright.config.js │ │ │ │ ├── src/ │ │ │ │ │ ├── app.html │ │ │ │ │ ├── global.d.ts │ │ │ │ │ └── routes/ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ ├── double-mount/ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── new-route/ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ └── universal/ │ │ │ │ │ ├── +page.js │ │ │ │ │ ├── +page.svelte │ │ │ │ │ └── parent-changed/ │ │ │ │ │ ├── +layout.js │ │ │ │ │ ├── +page.js │ │ │ │ │ └── +page.svelte │ │ │ │ ├── svelte.config.js │ │ │ │ ├── test/ │ │ │ │ │ └── test.js │ │ │ │ ├── tsconfig.json │ │ │ │ └── vite.config.js │ │ │ ├── build-errors/ │ │ │ │ ├── apps/ │ │ │ │ │ ├── prerender-entry-generator-mismatch/ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ ├── [notSpecific]/ │ │ │ │ │ │ │ │ └── +page.ts │ │ │ │ │ │ │ └── specific/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── prerender-remote-function-error/ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── data.remote.ts │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── prerenderable-incorrect-fragment/ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── foo/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── prerenderable-not-prerendered/ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── [x]/ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── private-dynamic-env/ │ │ │ │ │ │ ├── .env │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── private-dynamic-env-dynamic-import/ │ │ │ │ │ │ ├── .env │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── private-static-env/ │ │ │ │ │ │ ├── .env │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── private-static-env-dynamic-import/ │ │ │ │ │ │ ├── .env │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── server-only-folder/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ │ └── server/ │ │ │ │ │ │ │ │ └── something/ │ │ │ │ │ │ │ │ └── private.js │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── server-only-folder-dynamic-import/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ │ └── server/ │ │ │ │ │ │ │ │ └── something/ │ │ │ │ │ │ │ │ └── private.js │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── server-only-module/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ │ └── test.server.js │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── server-only-module-dynamic-import/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ │ └── test.server.js │ │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── service-worker-dynamic-public-env/ │ │ │ │ │ │ ├── .env │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── service-worker.js │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ ├── service-worker-private-env/ │ │ │ │ │ │ ├── .env │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── .npmrc │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── service-worker.js │ │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── vite.config.js │ │ │ │ │ └── syntax-error/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .npmrc │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ └── test.server.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── env.spec.js │ │ │ │ ├── package.json │ │ │ │ ├── prerender.spec.js │ │ │ │ ├── server-only.spec.js │ │ │ │ ├── syntax-error.spec.js │ │ │ │ └── tsconfig.json │ │ │ ├── github-flaky-warning-reporter.js │ │ │ ├── mocks/ │ │ │ │ └── path.js │ │ │ ├── prerendering/ │ │ │ │ ├── basics/ │ │ │ │ │ ├── .env │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── globalSetup.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ │ ├── (grouped)/ │ │ │ │ │ │ │ │ └── grouped/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ ├── encoding/ │ │ │ │ │ │ │ │ ├── [path]/ │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── [path].json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── path with spaces/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── redirect/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── encöded-hash-link/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── env/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── fetch-404/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── fetch-endpoint/ │ │ │ │ │ │ │ │ ├── also-not-buffered/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── buffered/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ ├── buffered.json/ │ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ │ ├── not-buffered/ │ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── not-buffered.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── fetch-image/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── [...slug]/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── immutable-headers/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── load-file-with-spaces/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── max-age/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── missing-id/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── optional-params/ │ │ │ │ │ │ │ │ └── [[optional]]/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── origin/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── message.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ ├── page.html/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── prerender-origin/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── [dynamic]/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── prerendering-true/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── redirect/ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ ├── redirect-encoded/ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ ├── redirect-malicious/ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ ├── redirect-relative/ │ │ │ │ │ │ │ │ └── +page.js │ │ │ │ │ │ │ ├── redirect-server/ │ │ │ │ │ │ │ │ └── +page.server.js │ │ │ │ │ │ │ ├── resolve-relative/ │ │ │ │ │ │ │ │ └── lv1/ │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── lv2/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── shadowed-get/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ └── ssr-off/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── shadowed-post/ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── spa-shell/ │ │ │ │ │ │ │ │ ├── +page.js │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ ├── trailing-slash/ │ │ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ │ ├── page/ │ │ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ │ └── standalone-endpoint.json/ │ │ │ │ │ │ │ │ └── +server.js │ │ │ │ │ │ │ └── 初めまして/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── service-worker.js │ │ │ │ │ ├── static/ │ │ │ │ │ │ └── file with spaces.json │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── tests.spec.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── options/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── public/ │ │ │ │ │ │ └── robots.txt │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── (group)/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── csp-hydratable/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── nested/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── rss.xml/ │ │ │ │ │ │ └── +server.js │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── tests.spec.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── paths-base/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.d.ts │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ ├── hooks.server.js │ │ │ │ │ │ └── routes/ │ │ │ │ │ │ ├── +layout.js │ │ │ │ │ │ ├── +layout.svelte │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ ├── a/ │ │ │ │ │ │ │ └── b/ │ │ │ │ │ │ │ ├── c/ │ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ │ └── d/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── assets/ │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── emitted/ │ │ │ │ │ │ │ ├── +page.server.js │ │ │ │ │ │ │ ├── +page.svelte │ │ │ │ │ │ │ └── message.csv │ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ │ └── [slug]/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ ├── nested/ │ │ │ │ │ │ │ └── +page.svelte │ │ │ │ │ │ └── redirect/ │ │ │ │ │ │ └── +page.js │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── tests.spec.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ └── test-utils.js │ │ │ ├── setup.js │ │ │ ├── tsconfig.json │ │ │ ├── types/ │ │ │ │ ├── actions.test.ts │ │ │ │ ├── load.test.ts │ │ │ │ ├── remote.test.ts │ │ │ │ └── tsconfig.json │ │ │ ├── types.d.ts │ │ │ └── utils.js │ │ ├── tsconfig.json │ │ └── types/ │ │ └── index.d.ts │ ├── package/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── cli.js │ │ │ ├── config.js │ │ │ ├── filesystem.js │ │ │ ├── index.js │ │ │ ├── types.d.ts │ │ │ ├── typescript.js │ │ │ ├── utils.js │ │ │ └── validate.js │ │ ├── svelte-package.js │ │ ├── test/ │ │ │ ├── errors/ │ │ │ │ └── no-lib-folder/ │ │ │ │ ├── package.json │ │ │ │ ├── svelte.config.js │ │ │ │ └── tsconfig.json │ │ │ ├── fixtures/ │ │ │ │ ├── assets/ │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ ├── package.json │ │ │ │ │ └── svelte.config.js │ │ │ │ ├── emitTypes-false/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test2.svelte │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test2.svelte │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ └── svelte.config.js │ │ │ │ ├── javascript/ │ │ │ │ │ ├── ReadMe.md │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── Test2.svelte │ │ │ │ │ │ ├── Test2.svelte.d.ts │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── runes.svelte.d.ts │ │ │ │ │ │ │ └── runes.svelte.js │ │ │ │ │ │ ├── utils.d.ts │ │ │ │ │ │ └── utils.js │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test2.svelte │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── runes.svelte.js │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── svelte.config.js │ │ │ │ ├── preserve-output/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── assets/ │ │ │ │ │ │ │ └── theme.css │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── svelte-3-types/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── svelte-kit/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── jsconfig.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── kitlib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ └── svelte.config.js │ │ │ │ ├── tsconfig-specified/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── runes.svelte.d.ts │ │ │ │ │ │ └── runes.svelte.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ └── runes.svelte.ts │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ ├── tsconfig.build.json │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── typescript-declaration-map/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── typescript-esnext/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Plain.svelte │ │ │ │ │ │ ├── Plain.svelte.d.ts │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── Test2.svelte │ │ │ │ │ │ ├── Test2.svelte.d.ts │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── runes.svelte.d.ts │ │ │ │ │ │ ├── runes.svelte.js │ │ │ │ │ │ ├── utils.d.ts │ │ │ │ │ │ └── utils.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Plain.svelte │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test2.svelte │ │ │ │ │ │ ├── foo.d.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── runes.svelte.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── typescript-nodenext/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── runes.svelte.d.ts │ │ │ │ │ │ └── runes.svelte.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── runes.svelte.ts │ │ │ │ │ ├── svelte.config.js │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── typescript-svelte-config/ │ │ │ │ │ ├── expected/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── runes.svelte.d.ts │ │ │ │ │ │ └── runes.svelte.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ ├── Test.svelte │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── runes.svelte.ts │ │ │ │ │ ├── svelte.config.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ └── typescript-ts-extension-rewrites/ │ │ │ │ ├── expected/ │ │ │ │ │ ├── Demo.svelte │ │ │ │ │ ├── Demo.svelte.d.ts │ │ │ │ │ ├── helper.d.ts │ │ │ │ │ ├── helper.js │ │ │ │ │ ├── helper2.d.ts │ │ │ │ │ ├── helper2.js │ │ │ │ │ ├── index.d.ts │ │ │ │ │ └── index.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ └── lib/ │ │ │ │ │ ├── Demo.svelte │ │ │ │ │ ├── helper.ts │ │ │ │ │ ├── helper2.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── svelte.config.js │ │ │ │ └── tsconfig.json │ │ │ ├── index.spec.js │ │ │ └── watch/ │ │ │ ├── expected/ │ │ │ │ ├── Test.svelte │ │ │ │ ├── Test.svelte.d.ts │ │ │ │ ├── a.d.ts │ │ │ │ ├── a.js │ │ │ │ ├── b.d.ts │ │ │ │ ├── b.js │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ └── post-error.svelte │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ └── lib/ │ │ │ │ └── index.js │ │ │ ├── svelte.config.js │ │ │ └── tsconfig.json │ │ └── tsconfig.json │ └── test-redirect-importer/ │ ├── index.js │ └── package.json ├── playgrounds/ │ ├── README.md │ └── basic/ │ ├── .gitignore │ ├── package.json │ ├── src/ │ │ ├── app.d.ts │ │ ├── app.html │ │ ├── lib/ │ │ │ └── index.js │ │ └── routes/ │ │ ├── +layout.svelte │ │ └── +page.svelte │ ├── svelte.config.js │ ├── tsconfig.json │ └── vite.config.js ├── pnpm-workspace.yaml ├── renovate.json ├── scripts/ │ ├── check-dependencies.js │ ├── print-flaky-test-report.js │ └── sync-all.js ├── test-utils/ │ └── index.js └── tsconfig.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .changeset/busy-goats-brush.md ================================================ --- '@sveltejs/kit': patch --- fix: don't request new data when `.refresh` is called on a query with no cache entry ================================================ FILE: .changeset/config.json ================================================ { "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", "changelog": ["@svitejs/changesets-changelog-github-compact", { "repo": "sveltejs/kit" }], "commit": false, "linked": [], "access": "public", "baseBranch": "main", "bumpVersionsWithWorkspaceProtocolOnly": true, "ignore": ["!(@sveltejs/*)"] } ================================================ FILE: .changeset/eight-sheep-unite.md ================================================ --- '@sveltejs/kit': minor --- breaking: add `run()` method to queries, disallow awaiting queries outside render ================================================ FILE: .changeset/great-actors-stop.md ================================================ --- '@sveltejs/kit': patch --- fix: manage queries in their own `$effect.root` ================================================ FILE: .changeset/many-flowers-press.md ================================================ --- '@sveltejs/kit': patch --- fix: avoid `inlineDynamicImports` deprecation warning when building the service worker with Vite 8 ================================================ FILE: .changeset/orange-queens-rush.md ================================================ --- '@sveltejs/kit': minor --- feat: use `hydratable` for remote function transport ================================================ FILE: .changeset/silver-baths-camp.md ================================================ --- '@sveltejs/kit': patch --- fix: deduplicate same-cache-key `batch` calls during SSR ================================================ FILE: .editorconfig ================================================ root = true [*] end_of_line = lf insert_final_newline = true indent_style = tab indent_size = 2 charset = utf-8 trim_trailing_whitespace = true ================================================ FILE: .eslint/no-runtime-to-exports-imports.js ================================================ // @ts-expect-error no types here import path from 'node:path'; /** * @type {import('eslint').Rule.RuleModule} */ export default { meta: { type: 'problem', docs: { description: 'disallow relative imports from src/runtime to src/exports', category: 'Possible Errors', recommended: true }, schema: [], messages: { noRuntimeToExportsImport: 'Relative imports from src/runtime to src/exports are not allowed because they can cause Vite to resolve the same module both via regular Node and internal Vite. Use internal import maps or `@sveltejs/kit/internal` instead.' } }, create(context) { const filename = context.filename; // Only apply this rule to files in packages/kit/src/runtime const in_runtime = filename.includes(path.join('packages', 'kit', 'src', 'runtime')); if (!in_runtime) { return {}; } return { ImportDeclaration(node) { const import_path = node.source.value; // Check if this is a relative import if (typeof import_path === 'string' && import_path.startsWith('.')) { // Resolve the import path relative to the current file const current_dir = path.dirname(filename); const resolved_path = path.resolve(current_dir, import_path); // Check if the resolved path points to src/exports const exports_path = path.join('packages', 'kit', 'src', 'exports'); if (resolved_path.includes(exports_path)) { context.report({ node: node.source, messageId: 'noRuntimeToExportsImport' }); } } } }; } }; ================================================ FILE: .gitattributes ================================================ * text=auto eol=lf /packages/**/test/** -linguist-detectable /packages/**/fixtures/** -linguist-detectable ================================================ FILE: .githooks/pre-push ================================================ #!/bin/sh set -e pnpm install --frozen-lockfile pnpm lint pnpm check ================================================ FILE: .github/FUNDING.yml ================================================ open_collective: svelte ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yml ================================================ name: "\U0001F41E Bug report" description: Report an issue with SvelteKit body: - type: markdown attributes: value: | Thanks for taking the time to fill out this bug report! **Before you start, make sure you have the latest versions of the packages you're using, including adapters.** - type: textarea id: bug-description attributes: label: Describe the bug description: Please [check if bugs related to building are caused by Vite](https://github.com/sveltejs/kit#bug-reporting) and [file there](https://github.com/vitejs/vite/issues) if appropriate. If you intend to submit a PR for this issue, tell us in the description. Thanks! placeholder: Bug description validations: required: true - type: textarea id: reproduction attributes: label: Reproduction description: A link to a repository, or a fork of https://node.new/sveltekit, that reproduces the issue. Reproductions must be [short, self-contained and correct](http://sscce.org/) and must not contain files or code that aren't relevant to the issue — please do NOT just paste a link to your project. Explaining how to reproduce is generally not enough. It pushes the burden of creating a reproduction project onto a small set of volunteer maintainers and isn't scalable. If no reproduction is provided, the issue will be closed. placeholder: Reproduction validations: required: true - type: textarea id: logs attributes: label: Logs description: "Please include browser console and server logs around the time this bug occurred. Please try not to insert an image but copy paste the log text." render: Shell - type: textarea id: system-info attributes: label: System Info description: Output of `npx envinfo --system --binaries --browsers --npmPackages "{svelte,@sveltejs/*,vite}"` render: Shell placeholder: System, Binaries, Browsers validations: required: true - type: dropdown id: severity attributes: label: Severity options: - annoyance - serious, but I can work around it - blocking an upgrade - blocking all usage of SvelteKit validations: required: true - type: textarea id: additional-context attributes: label: Additional Information ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ blank_issues_enabled: false contact_links: - name: Discord Chat url: https://svelte.dev/chat about: Ask questions and discuss with other SvelteKit users in real time. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.yml ================================================ name: "Feature Request" description: Suggest an idea for this project body: - type: markdown attributes: value: | Thanks for taking the time to request this feature! If your feature request is complex or substantial enough to warrant in-depth discussion, maintainers may close the issue and ask you to open an [RFC](https://github.com/sveltejs/rfcs). - type: textarea id: problem attributes: label: Describe the problem description: Please provide a clear and concise description the problem this feature would solve. The more information you can provide here, the better. placeholder: I'm always frustrated when... validations: required: true - type: textarea id: solution attributes: label: Describe the proposed solution description: Please provide a clear and concise description of what you would like to happen. placeholder: I would like to see... validations: required: true - type: textarea id: alternatives attributes: label: Alternatives considered description: "Please provide a clear and concise description of any alternative solutions or features you've considered." - type: dropdown id: importance attributes: label: Importance description: How important is this feature to you? options: - nice to have - would make my life easier - i cannot use SvelteKit without it validations: required: true - type: textarea id: additional-context attributes: label: Additional Information description: Add any other context or screenshots about the feature request here. ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================ closes # --- ### Please don't delete this checklist! Before submitting the PR, please make sure you do the following: - [ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs - [ ] This message body should clearly illustrate what problems it solves. - [ ] Ideally, include a test that fails without this PR but passes with it. ### Tests - [ ] Run the tests with `pnpm test` and lint the project with `pnpm lint` and `pnpm check` ### Changesets - [ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running `pnpm changeset` and following the prompts. Changesets that add features should be `minor` and those that fix bugs should be `patch`. Please prefix changeset messages with `feat:`, `fix:`, or `chore:`. ### Edits - [ ] Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed. ================================================ FILE: .github/actions/platform-test/action.yml ================================================ name: 'Platform Test' description: 'Run Playwright tests against a deployed platform preview' inputs: test-app-dir: description: 'Path to the test app directory' required: true deployment-url: description: 'URL of the deployed preview to test against' required: true runs: using: 'composite' steps: - name: Install Playwright shell: bash run: pnpm playwright install chromium --no-shell - name: Run Playwright tests shell: bash working-directory: ${{ inputs.test-app-dir }} env: DEPLOYMENT_URL: ${{ inputs.deployment-url }} run: pnpm test:platform - name: Upload test artifacts if: failure() uses: actions/upload-artifact@v7 with: name: platform-test-results-${{ github.job }} path: ${{ inputs.test-app-dir }}/test-results retention-days: 3 ================================================ FILE: .github/actions/vercel-deploy/action.yml ================================================ name: 'Vercel Deploy' description: 'Set up the repo and deploy a test app to Vercel' inputs: # Important: When setting up a new Vercel test app, make sure # to set the root directory in the dashboard to the correct path. # The `vercel deploy` command runs from the root of the repository, # so it has to be able to look up the test app's dir in order to know # what to deploy. vercel-project-id: description: 'Vercel project ID for the test app' required: true vercel-token: description: 'Vercel authentication token' required: true vercel-org-id: description: 'Vercel organization ID' required: true outputs: deployment-url: description: 'URL of the deployed preview' value: ${{ steps.deploy.outputs.url }} runs: using: 'composite' steps: - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm - name: Install dependencies shell: bash run: pnpm install --frozen-lockfile - name: Install Vercel CLI shell: bash run: npm i -g vercel - name: Deploy to Vercel id: deploy shell: bash env: VERCEL_TOKEN: ${{ inputs.vercel-token }} VERCEL_ORG_ID: ${{ inputs.vercel-org-id }} VERCEL_PROJECT_ID: ${{ inputs.vercel-project-id }} run: echo "url=$(vercel deploy --yes --token="$VERCEL_TOKEN")" >> "$GITHUB_OUTPUT" ================================================ FILE: .github/workflows/audit.yml ================================================ name: audit on: schedule: - cron: "0 5 * * *" # daily 5AM env: # not needed for audit PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1' permissions: contents: read # to fetch code (actions/checkout) jobs: Audit: # prevents this action from running on forks if: github.repository == 'sveltejs/kit' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: '24.x' cache: pnpm - run: pnpm install --frozen-lockfile # check prod dependencies as these would affect users - run: pnpm audit --prod ================================================ FILE: .github/workflows/autofix-lint.yml ================================================ name: Autofix Lint on: issue_comment: types: [created] workflow_dispatch: permissions: {} jobs: autofix-lint: permissions: contents: write # to push the generated types commit pull-requests: read # to resolve the PR head ref # prevents this action from running on forks if: | github.repository == 'sveltejs/kit' && ( github.event_name == 'workflow_dispatch' || ( github.event.issue.pull_request != null && github.event.comment.body == '/autofix' && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) ) ) runs-on: ubuntu-latest steps: - name: Get PR ref if: github.event_name != 'workflow_dispatch' id: pr uses: actions/github-script@v8 with: script: | const { data: pull } = await github.rest.pulls.get({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number }); if (pull.head.repo.full_name !== `${context.repo.owner}/${context.repo.repo}`) { await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, body: 'Cannot autofix: this PR is from a forked repository. The autofix workflow can only push to branches within this repository.' }); core.setFailed('PR is from a fork'); } core.setOutput('ref', pull.head.ref); - uses: actions/checkout@v6 if: github.event_name == 'workflow_dispatch' || steps.pr.outcome == 'success' with: ref: ${{ github.event_name == 'workflow_dispatch' && github.ref || steps.pr.outputs.ref }} - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - name: Run prettier run: pnpm format - name: Generate types run: pnpm -F @sveltejs/kit generate:types - name: Commit changes run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add -A git diff --staged --quiet || git commit -m "chore: autofix lint" git push origin HEAD ================================================ FILE: .github/workflows/ci.yml ================================================ name: CI on: push: branches: - main paths-ignore: &paths_ignore - '.changeset/**' - '.githooks/**' - '.github/ISSUE_TEMPLATE/**' - '.github/copilot-instructions.md' - '.github/FUNDING.yml' - '.github/PULL_REQUEST_TEMPLATE.md' - 'documentation/**' - 'packages/*/CHANGELOG*.md' - 'packages/kit/src/types/synthetic/**' - 'AGENTS.md' - 'CLAUDE.md' - 'CONTRIBUTING.md' - 'FUNDING.json' - 'LICENSE' - 'README.md' pull_request: paths-ignore: *paths_ignore env: # we call `pnpm playwright install` instead PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1' # cancel in-progress runs on new commits to same PR (gitub.event.number) concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.sha }} cancel-in-progress: true permissions: contents: read # to fetch code (actions/checkout) jobs: pkg-pr-new: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm build - run: pnpx pkg-pr-new publish --comment=off ./packages/* lint-all: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm run lint - run: cd packages/kit && pnpm prepublishOnly && { [ "`git status --porcelain=v1`" == "" ] || (echo "Generated types have changed — please run prepublishOnly locally and commit the changes after you have reviewed them"; git diff; exit 1); } - run: pnpm run check test-kit: runs-on: ${{ matrix.os }} timeout-minutes: 30 strategy: fail-fast: false matrix: include: - node-version: 18 os: ubuntu-latest e2e-browser: 'chromium' vite: 'baseline' - node-version: 20 os: ubuntu-latest e2e-browser: 'chromium' vite: 'current' - node-version: 22 os: ubuntu-latest e2e-browser: 'chromium' vite: 'current' - node-version: 24 os: ubuntu-latest e2e-browser: 'chromium' vite: 'current' - node-version: 24 os: ubuntu-latest e2e-browser: 'chromium' vite: 'beta' env: KIT_E2E_BROWSER: ${{matrix.e2e-browser}} MATRIX_VITE: ${{matrix.vite}} steps: - run: git config --global core.autocrlf false - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} cache: pnpm - run: pnpm install --frozen-lockfile - name: setup overrides for matrix.vite if: matrix.vite != 'current' run: | # copies catalogs.vite-xxx to overrides in pnpm-workspace.yaml so the subsequent `pnpm install` enforces them yq -i '.overrides =.catalogs."vite-${{matrix.vite}}"' pnpm-workspace.yaml pnpm install --no-frozen-lockfile git checkout pnpm-lock.yaml pnpm-workspace.yaml # revert changes to pnpm files to avoid cache key changes pnpm --dir packages/kit ls vite - run: pnpm playwright install ${{ matrix.e2e-browser }} - run: pnpm run sync-all - run: pnpm test:kit env: NODE_OPTIONS: ${{matrix.node-version == 22 && '--experimental-strip-types' || ''}} # allows loading svelte.config.ts - name: Print flaky test report run: node scripts/print-flaky-test-report.js - name: Archive test results if: failure() shell: bash run: find packages -type d -name test-results -not -empty | tar -czf test-results.tar.gz --files-from=- - name: Upload test results if: failure() uses: actions/upload-artifact@v7 with: retention-days: 3 name: test-failure-${{ github.run_id }}-${{ matrix.os }}-${{ matrix.node-version }}-${{ matrix.e2e-browser }}-vite-${{matrix.vite}} path: test-results.tar.gz test-kit-cross-browser: runs-on: ${{ matrix.os }} timeout-minutes: 30 strategy: fail-fast: false matrix: include: - node-version: 24 os: windows-latest e2e-browser: 'chromium' mode: 'dev' - node-version: 24 os: ubuntu-latest e2e-browser: 'firefox' mode: 'dev' - node-version: 24 os: macOS-latest e2e-browser: 'webkit' mode: 'dev' - node-version: 24 os: windows-latest e2e-browser: 'chromium' mode: 'build' - node-version: 24 os: ubuntu-latest e2e-browser: 'firefox' mode: 'build' - node-version: 24 os: macOS-latest e2e-browser: 'webkit' mode: 'build' env: KIT_E2E_BROWSER: ${{matrix.e2e-browser}} steps: - run: git config --global core.autocrlf false - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm playwright install ${{ matrix.e2e-browser }} - run: pnpm run sync-all - run: pnpm test:cross-platform:${{ matrix.mode }} - name: Print flaky test report run: node scripts/print-flaky-test-report.js - name: Archive test results if: failure() shell: bash run: find packages -type d -name test-results -not -empty | tar -czf test-results-cross-platform-${{ matrix.mode }}.tar.gz --files-from=- - name: Upload test results if: failure() uses: actions/upload-artifact@v7 with: retention-days: 3 name: test-failure-cross-platform-${{ matrix.mode }}-${{ github.run_id }}-${{ matrix.os }}-${{ matrix.node-version }}-${{ matrix.e2e-browser }} path: test-results-cross-platform-${{ matrix.mode }}.tar.gz test-kit-server-side-route-resolution: runs-on: ubuntu-latest timeout-minutes: 30 strategy: fail-fast: false matrix: include: - mode: 'dev' - mode: 'build' steps: - run: git config --global core.autocrlf false - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm playwright install chromium --no-shell - run: pnpm run sync-all - run: pnpm test:server-side-route-resolution:${{ matrix.mode }} - name: Print flaky test report run: node scripts/print-flaky-test-report.js - name: Archive test results if: failure() shell: bash run: find packages -type d -name test-results -not -empty | tar -czf test-results-server-side-route-resolution-${{ matrix.mode }}.tar.gz --files-from=- - name: Upload test results if: failure() uses: actions/upload-artifact@v7 with: retention-days: 3 name: test-failure-server-side-route-resolution-${{ matrix.mode }}-${{ github.run_id }} path: test-results-server-side-route-resolution-${{ matrix.mode }}.tar.gz test-kit-svelte-async: runs-on: ubuntu-latest timeout-minutes: 30 strategy: fail-fast: false matrix: include: - mode: 'dev' - mode: 'build' steps: - run: git config --global core.autocrlf false - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm playwright install chromium --no-shell - run: pnpm run sync-all - run: pnpm test:svelte-async:${{ matrix.mode }} - name: Print flaky test report run: node scripts/print-flaky-test-report.js - name: Archive test results if: failure() shell: bash run: find packages -type d -name test-results -not -empty | tar -czf test-results-svelte-async-${{ matrix.mode }}.tar.gz --files-from=- - name: Upload test results if: failure() uses: actions/upload-artifact@v7 with: retention-days: 3 name: test-failure-svelte-async-${{ matrix.mode }}-${{ github.run_id }} path: test-results-svelte-async-${{ matrix.mode }}.tar.gz test-others: runs-on: ubuntu-latest strategy: matrix: node-version: [18, 20, 22, 24] steps: - uses: actions/checkout@v6 - uses: pnpm/action-setup@v5.0.0 - uses: actions/setup-node@v6 with: node-version: ${{matrix.node-version}} cache: pnpm # required for testing netlify edge functions - uses: denoland/setup-deno@v2 with: deno-version: ^2.2.4 - run: pnpm install --frozen-lockfile - name: setup overrides for matrix.node if: matrix.node-version == 18 run: | # copies catalogs.node-xx to overrides in pnpm-workspace.yaml so the subsequent `pnpm install` enforces them yq -i '.overrides =.catalogs."node-18"' pnpm-workspace.yaml pnpm install --no-frozen-lockfile git checkout pnpm-lock.yaml pnpm-workspace.yaml # revert changes to pnpm files to avoid cache key changes pnpm --dir packages/kit ls vite @sveltejs/vite-plugin-svelte - run: pnpm playwright install chromium --no-shell - run: cd packages/kit && pnpm prepublishOnly - run: pnpm run test:others env: NODE_OPTIONS: ${{matrix.node-version == 22 && '--experimental-strip-types' || ''}} # allows loading svelte.config.ts ================================================ FILE: .github/workflows/platform-tests-all.yml ================================================ name: Platform Tests (All) on: workflow_dispatch: inputs: sha: description: 'Commit SHA to test and update check status on' required: false default: '' permissions: contents: write jobs: vercel: uses: ./.github/workflows/platform-tests-vercel.yml with: sha: ${{ inputs.sha }} secrets: inherit report-status: if: always() needs: [vercel] runs-on: ubuntu-latest steps: - name: Determine outcome id: outcome run: | if [ "${{ contains(needs.*.result, 'failure') }}" = "true" ]; then echo "conclusion=failure" >> "$GITHUB_OUTPUT" echo "title=Platform tests failed" >> "$GITHUB_OUTPUT" echo "summary=One or more platform test jobs failed. See the [workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details." >> "$GITHUB_OUTPUT" elif [ "${{ contains(needs.*.result, 'cancelled') }}" = "true" ]; then echo "conclusion=cancelled" >> "$GITHUB_OUTPUT" echo "title=Platform tests cancelled" >> "$GITHUB_OUTPUT" echo "summary=Platform tests were cancelled before completing." >> "$GITHUB_OUTPUT" else echo "conclusion=success" >> "$GITHUB_OUTPUT" echo "title=Platform tests passed" >> "$GITHUB_OUTPUT" echo "summary=All platform test jobs passed." >> "$GITHUB_OUTPUT" fi - name: Report results env: GH_TOKEN: ${{ github.token }} run: | gh api repos/${{ github.repository }}/dispatches \ -f event_type=platform-tests-result \ -f 'client_payload[sha]=${{ inputs.sha || github.sha }}' \ -f 'client_payload[conclusion]=${{ steps.outcome.outputs.conclusion }}' \ -f 'client_payload[title]=${{ steps.outcome.outputs.title }}' \ -f 'client_payload[summary]=${{ steps.outcome.outputs.summary }}' \ -f 'client_payload[details_url]=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' ================================================ FILE: .github/workflows/platform-tests-vercel.yml ================================================ name: Platform Tests (Vercel) on: workflow_dispatch: inputs: sha: description: 'Commit SHA to test' required: false default: '' workflow_call: inputs: sha: description: 'Commit SHA to test' required: false type: string default: '' permissions: contents: read env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1' jobs: test-basic: if: github.repository == 'sveltejs/kit' runs-on: ubuntu-latest timeout-minutes: 15 environment: '@sveltejs/adapter-vercel platform tests' steps: - uses: actions/checkout@v6 with: ref: ${{ inputs.sha || github.sha }} - uses: ./.github/actions/vercel-deploy id: deploy with: test-app-dir: packages/adapter-vercel/test/apps/basic vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID_BASIC }} vercel-token: ${{ secrets.VERCEL_TOKEN }} vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} - uses: ./.github/actions/platform-test with: test-app-dir: packages/adapter-vercel/test/apps/basic deployment-url: ${{ steps.deploy.outputs.deployment-url }} ================================================ FILE: .github/workflows/release.yml ================================================ name: Release on: push: branches: - main concurrency: # prevent two release workflows from running at once # race conditions here can result in releases failing group: ${{ github.workflow }} permissions: {} jobs: release: # prevents this action from running on forks if: github.repository == 'sveltejs/kit' permissions: contents: write # to create release (changesets/action) id-token: write # OpenID Connect token needed for provenance pull-requests: write # to create pull request (changesets/action) name: Release runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v6 with: # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits fetch-depth: 0 - uses: pnpm/action-setup@v5.0.0 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 24.x cache: pnpm - run: pnpm install --frozen-lockfile - name: Create Release Pull Request or Publish to npm id: changesets uses: changesets/action@v1 with: # This expects you to have a script called release which does a build for your packages and calls changeset publish publish: pnpm changeset:release version: pnpm changeset:version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_CONFIG_PROVENANCE: true # TODO alert discord # - name: Send a Slack notification if a publish happens # if: steps.changesets.outputs.published == 'true' # # You can do something when a publish happens. # run: my-slack-bot send-notification --message "A new version of ${GITHUB_REPOSITORY} was published!" ================================================ FILE: .gitignore ================================================ .DS_Store node_modules dist test-results/ package-lock.json yarn.lock vite.config.js.timestamp-* /packages/package/test/**/package /documentation/types.js .env .vercel_build_output .svelte-kit .cloudflare .pnpm-debug.log .netlify .turbo .vercel .test-tmp symlink-from .idea/ _tmp_flaky_test_output.txt ================================================ FILE: .npmrc ================================================ link-workspace-packages = true shell-emulator = true ================================================ FILE: .prettierrc ================================================ { "useTabs": true, "singleQuote": true, "trailingComma": "none", "printWidth": 100, "plugins": ["prettier-plugin-svelte"], "overrides": [ { "files": ["*.svelte"], "options": { "bracketSameLine": false } }, { "files": ["packages/*/README.md"], "options": { "useTabs": false, "tabWidth": 2 } }, { "files": [ "**/CHANGELOG.md", "**/vite.config.js.timestamp-*", "**/.netlify/**", "**/.svelte-kit/**", "**/.custom-out-dir/**", "**/test-results/**", "**/.vercel/**", "**/.wrangler/**", "documentation/**/*.md", "packages/package/test/fixtures/**/expected/**/*", "packages/package/test/watch/expected/**/*", "packages/package/test/watch/package/**/*", "packages/kit/src/core/postbuild/fixtures/**/*", "packages/adapter-cloudflare/test/apps/workers/dist/**/*", "packages/*/test/**/build/**" ], "options": { "rangeEnd": 0 } } ] } ================================================ FILE: .well-known/funding-manifest-urls ================================================ https://svelte.dev/funding.json ================================================ FILE: AGENTS.md ================================================ # SvelteKit Coding Agent Guide This guide is for AI coding agents working in the SvelteKit monorepo. **Important:** Read and follow [`CONTRIBUTING.md`](./CONTRIBUTING.md) as well - it contains essential information about testing, code structure, and contribution guidelines that applies here. ## Quick Reference ### Essential Commands ```bash # Initial setup (takes 3-4 minutes, set 10+ min timeout) pnpm install --frozen-lockfile # Build all packages (~1-2 seconds) pnpm build # Format code (~15 seconds) pnpm run format # Lint (takes 2-3 minutes, set 5+ min timeout) pnpm run lint # Type checking (takes 3-4 minutes, set 8+ min timeout) pnpm run check ``` ### Testing Commands ```bash # Unit tests only (fastest - ~6 seconds) pnpm -F @sveltejs/kit test:unit # Run a single unit test file pnpm -F @sveltejs/kit test:unit:dev path/to/test.spec.js # Integration tests (10-30 minutes, set 60+ min timeout) pnpm test:kit # A single integration test suite (name of suite found in packages/kit/test/apps/*/package.json) pnpm -F {name-of-suite} test # Run single Playwright test (must use workdir - no pnpm -F shorthand) cd packages/kit/test/apps/basics && npx playwright test --grep "test name" # Other package tests (5-15 minutes, set 30+ min timeout) pnpm test:others ``` ### Pre-submission Checklist Before opening a PR, **all of these must pass** (see also the [PR template](./.github/PULL_REQUEST_TEMPLATE.md)): 1. `pnpm run format` - Auto-format code 2. `pnpm run lint` - Check code style (don't cancel early) 3. `pnpm run check` - Type checking (don't cancel early) 4. `pnpm -F @sveltejs/kit test:unit` - Run unit tests 5. For @sveltejs/kit changes: `pnpm -F @sveltejs/kit prepublishOnly` - Generate types 6. Run `pnpm changeset` to document changes (prefix with `fix`, `feat`, `breaking`, or `chore`) ## Code Style Examples The coding style guidelines are in `CONTRIBUTING.md`. Here are additional examples: ### Imports ```javascript // JSDoc type imports at the top /** @import { Handle, RequestEvent } from '@sveltejs/kit' */ // Named imports (no default exports) import { HttpError, SvelteKitError } from '@sveltejs/kit/internal'; ``` ### Functions ```javascript // Exported named functions (no default exports) export function coalesce_to_error(err) { // Implementation } // JSDoc for all parameters and return types /** * @param {unknown} error * @returns {Error} */ export function coalesce_to_error(error) { // Implementation } // Use arrow functions for callbacks const handler = (event) => { /* ... */ }; ``` ### Error Handling ```javascript // Type checking with instanceof if (error instanceof HttpError || error instanceof SvelteKitError) { // Handle } // Graceful fallbacks const status = error?.status ?? 500; // Optional chaining and nullish coalescing const content_type = request.headers.get('content-type')?.split(';', 1)[0]; ``` ### TypeScript/JSDoc - Use JSDoc annotations for all function parameters and return types - Complex types: `/** @type {Array<{ type: string, subtype: string }>} */` - Type casting when needed: `/** @type {Error} */ (err)` - Enable strict mode: `checkJs: true`, `strict: true` in tsconfig.json ### Formatting (via Prettier) - **Tabs for indentation** (not spaces) - **Single quotes** for strings - **No trailing commas** - **100 character line width** - Files are auto-formatted by `pnpm run format` ### Comments ````javascript // JSDoc with usage examples for public APIs /** * Sequence multiple handle functions * * @example * ```js * export const handle = sequence(first, second); * ``` * * @param {...Handle} handlers * @returns {Handle} */ // Inline comments for clarifications // no match equals invalid header — ignore ```` ## Key Packages - `@sveltejs/kit` - Main framework (`packages/kit/`) - `adapter-*` - Platform adapters (node, cloudflare, netlify, vercel, static, auto) - `@sveltejs/package` - Package building utilities - `@sveltejs/enhanced-img` - Enhanced image component - `@sveltejs/amp` - AMP support ## Troubleshooting - **Browser tests fail**: `pnpm playwright install chromium` - **Build failures**: Ensure `pnpm install --frozen-lockfile` completed - **Type errors**: Run `pnpm -F @sveltejs/kit prepublishOnly` - **Lint issues**: Run `pnpm run format` first ================================================ FILE: CONTRIBUTING.md ================================================ # SvelteKit Contributing Guide ## Preparing This is a monorepo, meaning the repo holds multiple packages. It requires the use of [pnpm](https://pnpm.io/). You can [install pnpm](https://pnpm.io/installation) with: ```sh npm i -g pnpm ``` `pnpm` commands run in the project's root directory will run on all sub-projects. You can checkout the code and install the dependencies with: ```sh git clone git@github.com:sveltejs/kit.git cd kit pnpm install ``` ## Testing Changes ### Playground You can use the playground at [`playgrounds/basic`](./playgrounds/basic/) to experiment with your changes to SvelteKit locally. ### Linking local changes If you want to test against an existing project, you can use [pnpm `overrides`](https://pnpm.io/package_json#pnpmoverrides) in that project: ```jsonc { // ... "pnpm": { "overrides": { "@sveltejs/kit": "link:../path/to/svelte-kit/packages/kit", // additionally/optional the adapter you're using "@sveltejs/adapter-auto": "link:../path/to/svelte-kit/packages/adapter-auto" } } } ``` ### Testing PR changes Each pull request will be built and published via [pkg.pr.new/](https://pkg.pr.new/). You can test the change by installing the package with your PR number: ``` npm add https://pkg.pr.new/sveltejs/kit/@sveltejs/kit@YOUR_PR_NUMBER_GOES_HERE ``` ## Code structure Entry points to be aware of are: - [`packages/package`](https://github.com/sveltejs/kit/tree/main/packages/package) - for the `svelte-package` command - [`packages/kit/src/core`](https://github.com/sveltejs/kit/tree/main/packages/kit/src/core) - code that's called at dev/build-time - [`packages/kit/src/core/sync`](https://github.com/sveltejs/kit/tree/main/packages/kit/src/core/sync) - for `svelte-kit sync`, which regenerates routing info and type definitions - [`packages/kit/src/runtime`](https://github.com/sveltejs/kit/tree/main/packages/kit/src/runtime) - code that's called at runtime - [`packages/kit/src/exports/vite`](https://github.com/sveltejs/kit/tree/main/packages/kit/src/exports/vite) - for all the Vite plugin related stuff - [`packages/adapter-[platform]`](https://github.com/sveltejs/kit/tree/main/packages) - for the various SvelteKit-provided adapters ## Good first issues If you're looking for an issue to tackle to get familiar with the codebase and test suite, the [**low hanging fruit**](https://github.com/sveltejs/kit/issues?q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22) label contains issues that ought to be relatively straightforward to fix. Check to see if a PR already exists for an issue before working on it! Issues that have a clear solution but which _may_ be slightly more involved have the [**ready to implement**](https://github.com/sveltejs/kit/issues?q=is%3Aissue+is%3Aopen+label%3A%22ready+to+implement%22) label. Issues with the [**soon**](https://github.com/sveltejs/kit/issues?q=is%3Aissue+is%3Aopen+milestone%3Asoon) milestone are higher priority than issues with the [**later**](https://github.com/sveltejs/kit/issues?q=is%3Aissue+is%3Aopen+milestone%3Alater+) label (though PRs for 'later' issues are still welcome, especially if you're affected by them). ## Testing Run `pnpm test:kit` to run the tests from the `packages/kit` directory. You can also run `pnpm test:others` to run tests from all packages **except** the `packages/kit` directory. Browser tests live in subdirectories of `packages/kit/test` such as `packages/kit/test/apps/basics`. You can run the tests for only a single package by first moving to that directory. E.g. `cd packages/kit`. For some packages you must rebuild each time before running the tests if you've made code changes. These packages have a `build` command. Packages like `packages/kit` don't require a build step. To run a single integration test or otherwise control the running of the tests locally see [the Playwright CLI docs](https://playwright.dev/docs/test-cli). Note that you will need to run these commands from the test project directory such as `packages/kit/test/apps/basics`. You can run the test server with `cd packages/kit/test/apps/basics; pnpm run dev` to hit it with your browser. The Playwright Inspector offers similar functionality. You may need to install some dependencies first, e.g. with `npx playwright install-deps` (which only works on Ubuntu). If there are tests that fail on the CI, you can retrieve the failed screenshots by going to the summary page of the CI run. You can usually find this by clicking on "Details" of the check results, clicking "Summary" at the top-left corner, and then scrolling to the bottom "Artifacts" section to download the archive. It is very easy to introduce flakiness in a browser test. If you try to fix the flakiness in a test, you can run it until failure to gain some confidence you've fixed the test with a command like: ``` npx playwright test --workers=1 --repeat-each 1000 --max-failures 1 -g "accepts a Request object" ``` ## Working on Vite and other dependencies If you would like to test local changes to Vite or another dependency, you can build it and then use [`pnpm.overrides`](https://pnpm.io/package_json#pnpmoverrides). Please note that `pnpm.overrides` must be specified in the root `package.json` and you must first list the package as a dependency in the root `package.json`: ```jsonc { // ... "dependencies": { "vite": "^4.0.0" }, "pnpm": { "overrides": { "vite": "link:../path/to/vite/packages/vite" } } } ``` ## Documentation changes All documentation for SvelteKit is in the [`documentation` directory](https://github.com/sveltejs/kit/tree/main/documentation), and any improvements should be made as a Pull Request to this repository. The site itself is located in the [`sveltejs/svelte.dev` repo](https://github.com/sveltejs/svelte.dev) and can be run locally to preview changes. ## Sending PRs When you open a PR, the [PR template](./.github/PULL_REQUEST_TEMPLATE.md) includes a checklist. Please read it carefully and don't delete it. **Run tests locally before submitting.** CI runs the full suite, but catching failures early saves time for everyone. At a minimum, run `pnpm format`, `pnpm lint`, `pnpm check`, and `pnpm -F @sveltejs/kit test:unit`. ### Coding style There are a few guidelines we follow: - Internal variables are written with `snake_case` while external APIs are written with `camelCase` - Provide a single object as the argument to public APIs. This object can have multiple properties - Avoid creating new test projects under `packages/kit/test/apps` but reuse an existing one when possible - Ensure `pnpm lint` and `pnpm check` pass. You can run `pnpm format` to format the code To use the git hooks in the repo, which will save you from waiting for CI to tell you that you forgot to lint, run this: ```sh git config core.hookspath .githooks ``` ### Generating changelogs For changes to be reflected in package changelogs, run `pnpm changeset` and follow the prompts. ### Type changes If your PR changes the generated types of SvelteKit, run `pnpm generate:types` inside `packages/kit` and commit the new output (don't format it with Prettier!). Review the changes carefully to ensure there are no unwanted changes. If you don't commit type changes, CI will fail. ## Releases The [Changesets GitHub action](https://github.com/changesets/action#with-publishing) will create and update a PR that applies changesets and publishes new versions of changed packages to npm. New packages will need to be published manually the first time if they are scoped to the `@sveltejs` organisation, by running this from the package directory: ```sh npm publish --access=public ``` ================================================ FILE: FUNDING.json ================================================ { "drips": { "ethereum": { "ownedBy": "0xCE08E02c37d90d75C2bf7D9e55f7606C8DB80E70" } } } ================================================ FILE: LICENSE ================================================ Copyright (c) 2020 [these people](https://github.com/sveltejs/kit/graphs/contributors) 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 ================================================ [](https://svelte.dev/chat) # SvelteKit Web development, streamlined. Read the [documentation](https://svelte.dev/docs/kit) to get started. ### Packages | Package | Changelog | | --------------------------------------------------------------------------- | ------------------------------------------------------------- | | [@sveltejs/kit](packages/kit) | [Changelog](packages/kit/CHANGELOG.md) | | [@sveltejs/adapter-auto](packages/adapter-auto) | [Changelog](packages/adapter-auto/CHANGELOG.md) | | [@sveltejs/adapter-cloudflare](packages/adapter-cloudflare) | [Changelog](packages/adapter-cloudflare/CHANGELOG.md) | | [@sveltejs/adapter-netlify](packages/adapter-netlify) | [Changelog](packages/adapter-netlify/CHANGELOG.md) | | [@sveltejs/adapter-node](packages/adapter-node) | [Changelog](packages/adapter-node/CHANGELOG.md) | | [@sveltejs/adapter-static](packages/adapter-static) | [Changelog](packages/adapter-static/CHANGELOG.md) | | [@sveltejs/adapter-vercel](packages/adapter-vercel) | [Changelog](packages/adapter-vercel/CHANGELOG.md) | | [@sveltejs/amp](packages/amp) | [Changelog](packages/amp/CHANGELOG.md) | | [@sveltejs/enhanced-img](packages/enhanced-img) | [Changelog](packages/enhanced-img/CHANGELOG.md) | | [@sveltejs/package](packages/package) | [Changelog](packages/package/CHANGELOG.md) | [Additional adapters](https://sveltesociety.dev/packages?category=sveltekit-adapters) are maintained by the community. ## Bug reporting Please make sure the issue you're reporting involves SvelteKit. Many issues related to how a project builds originate from [Vite](https://vitejs.dev/), which is used to build a SvelteKit project. You can create a new Vite project with `npm create vite@latest` for client-side only repros and `npm create vite-extra@latest` for SSR or library repros. If an issue originates from Vite, please report it in the [Vite issue tracker](https://github.com/vitejs/vite/issues). ## Contributing See [CONTRIBUTING.md](./CONTRIBUTING.md) for information on how to develop SvelteKit locally. ## Supporting Svelte Svelte is an MIT-licensed open source project with its ongoing development made possible entirely by fantastic volunteers. If you'd like to support their efforts, please consider: - [Becoming a backer on Open Collective](https://opencollective.com/svelte). Funds donated via Open Collective will be used for compensating expenses related to Svelte's development such as hosting costs. If sufficient donations are received, funds may also be used to support Svelte's development more directly. ## License [MIT](https://github.com/sveltejs/kit/blob/main/LICENSE) ================================================ FILE: documentation/docs/10-getting-started/10-introduction.md ================================================ --- title: Introduction --- ## Before we begin > [!NOTE] If you're new to Svelte or SvelteKit we recommend checking out the [interactive tutorial](/tutorial/kit). > > If you get stuck, reach out for help in the [Discord chatroom](/chat). ## What is SvelteKit? SvelteKit is a framework for rapidly developing robust, performant web applications using [Svelte](../svelte). If you're coming from React, SvelteKit is similar to Next. If you're coming from Vue, SvelteKit is similar to Nuxt. To learn more about the kinds of applications you can build with SvelteKit, see the [documentation regarding project types](project-types). ## What is Svelte? In short, Svelte is a way of writing user interface components — like a navigation bar, comment section, or contact form — that users see and interact with in their browsers. The Svelte compiler converts your components to JavaScript that can be run to render the HTML for the page and to CSS that styles the page. You don't need to know Svelte to understand the rest of this guide, but it will help. If you'd like to learn more, check out [the Svelte tutorial](/tutorial). ## SvelteKit vs Svelte Svelte renders UI components. You can compose these components and render an entire page with just Svelte, but you need more than just Svelte to write an entire app. SvelteKit helps you build web apps while following modern best practices and providing solutions to common development challenges. It offers everything from basic functionalities — like a [router](glossary#Routing) that updates your UI when a link is clicked — to more advanced capabilities. Its extensive list of features includes [build optimizations](https://vitejs.dev/guide/features.html#build-optimizations) to load only the minimal required code; [offline support](service-workers); [preloading](link-options#data-sveltekit-preload-data) pages before user navigation; [configurable rendering](page-options) to handle different parts of your app on the server via [SSR](glossary#SSR), in the browser through [client-side rendering](glossary#CSR), or at build-time with [prerendering](glossary#Prerendering); [image optimization](images); and much more. Building an app with all the modern best practices is fiendishly complicated, but SvelteKit does all the boring stuff for you so that you can get on with the creative part. It reflects changes to your code in the browser instantly to provide a lightning-fast and feature-rich development experience by leveraging [Vite](https://vitejs.dev/) with a [Svelte plugin](https://github.com/sveltejs/vite-plugin-svelte) to do [Hot Module Replacement (HMR)](https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/config.md#hot). ================================================ FILE: documentation/docs/10-getting-started/20-creating-a-project.md ================================================ --- title: Creating a project --- The easiest way to start building a SvelteKit app is to run `npx sv create`: ```sh npx sv create my-app cd my-app npm run dev ``` The first command will scaffold a new project in the `my-app` directory asking if you'd like to set up some basic tooling such as TypeScript. See [the CLI docs](/docs/cli/overview) for information about these options and [the integrations page](./integrations) for pointers on setting up additional tooling. `npm run dev` will then start the development server on [localhost:5173](http://localhost:5173) - make sure you install dependencies before running this if you didn't do so during project creation. There are two basic concepts: - Each page of your app is a [Svelte](../svelte) component - You create pages by adding files to the `src/routes` directory of your project. These will be server-rendered so that a user's first visit to your app is as fast as possible, then a client-side app takes over Try editing the files to get a feel for how everything works. ## Editor setup We recommend using [Visual Studio Code (aka VS Code)](https://code.visualstudio.com/download) with [the Svelte extension](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode), but [support also exists for numerous other editors](https://sveltesociety.dev/collection/editor-support-c85c080efc292a34). ================================================ FILE: documentation/docs/10-getting-started/25-project-types.md ================================================ --- title: Project types --- SvelteKit offers configurable rendering, which allows you to build and deploy your project in several different ways. You can build all of the below types of applications and more with SvelteKit. Rendering settings are not mutually exclusive and you may choose the optimal manner with which to render different parts of your application. If you don't have a particular way you'd like to build your application in mind, don't worry! The way your application is built, deployed, and rendered is controlled by which adapter you've chosen and a small amount of configuration and these can always be changed later. The [project structure](project-structure) and [routing](glossary#Routing) will be the same regardless of the project type that you choose. ## Default rendering By default, when a user visits a site, SvelteKit will render the first page with [server-side rendering (SSR)](glossary#SSR) and subsequent pages with [client-side rendering (CSR)](glossary#CSR). Using SSR for the initial render improves SEO and perceived performance of the initial page load. Client-side rendering then takes over and updates the page without having to rerender common components, which is typically faster and eliminates a flash when navigating between pages. Apps built with this hybrid rendering approach have also been called [transitional apps](https://www.youtube.com/watch?v=860d8usGC0o). ## Static site generation You can use SvelteKit as a [static site generator (SSG)](glossary#SSG) that fully [prerenders](glossary#Prerendering) your site with static rendering using [`adapter-static`](adapter-static). You may also use [the prerender option](page-options#prerender) to prerender only some pages and then choose a different adapter with which to dynamically server-render other pages. Tools built solely to do static site generation may scale the prerendering process more efficiently during build when rendering a very large number of pages. When working with very large statically generated sites, you can avoid long build times with [Incremental Static Regeneration (ISR) if using `adapter-vercel`](adapter-vercel#Incremental-Static-Regeneration). And in contrast to purpose-built SSGs, SvelteKit allows for nicely mixing and matching different rendering types on different pages. ## Single-page app [Single-page apps (SPAs)](glossary#SPA) exclusively use [client-side rendering (CSR)](glossary#CSR). You can [build single-page apps (SPAs)](single-page-apps) with SvelteKit. As with all types of SvelteKit applications, you can write your backend in SvelteKit or [another language or framework](#Separate-backend). If you are building an application with no backend or a [separate backend](#Separate-backend), you can simply skip over and ignore the parts of the docs talking about `server` files. ## Multi-page app SvelteKit isn't typically used to build [traditional multi-page apps](glossary#MPA). However, in SvelteKit you can remove all JavaScript on a page with [`csr = false`](page-options#csr), which will render subsequent links on the server, or you can use [`data-sveltekit-reload`](link-options#data-sveltekit-reload) to render specific links on the server. ## Separate backend If your backend is written in another language such as Go, Java, PHP, Ruby, Rust, or C#, there are a couple of ways that you can deploy your application. The most recommended way would be to deploy your SvelteKit frontend separately from your backend utilizing `adapter-node` or a serverless adapter. Some users prefer not to have a separate process to manage and decide to deploy their application as a [single-page app (SPA)](single-page-apps) served by their backend server, but note that single-page apps have worse SEO and performance characteristics. If you are using an external backend, you can simply skip over and ignore the parts of the docs talking about `server` files. You may also want to reference [the FAQ about how to make calls to a separate backend](faq#How-do-I-use-a-different-backend-API-server). ## Serverless app SvelteKit apps are simple to run on serverless platforms. [The default zero config adapter](adapter-auto) will automatically run your app on a number of supported platforms or you can use [`adapter-vercel`](adapter-vercel), [`adapter-netlify`](adapter-netlify), or [`adapter-cloudflare`](adapter-cloudflare) to provide platform-specific configuration. And [community adapters](/packages#sveltekit-adapters) allow you to deploy your application to almost any serverless environment. Some of these adapters such as [`adapter-vercel`](adapter-vercel) and [`adapter-netlify`](adapter-netlify) offer an `edge` option, to support [edge rendering](glossary#Edge) for improved latency. ## Your own server You can deploy to your own server or VPS using [`adapter-node`](adapter-node). ## Container You can use [`adapter-node`](adapter-node) to run a SvelteKit app within a container such as Docker or LXC. ## Library You can create a library to be used by other Svelte apps with the [`@sveltejs/package`](packaging) add-on to SvelteKit by choosing the library option when running [`sv create`](/docs/cli/sv-create). ## Offline app SvelteKit has full support for [service workers](service-workers) allowing you to build many types of applications such as offline apps and [progressive web apps](glossary#PWA). ## Mobile app You can turn a [SvelteKit SPA](single-page-apps) into a mobile app with [Tauri](https://v2.tauri.app/start/frontend/sveltekit/) or [Capacitor](https://capacitorjs.com/solution/svelte). Mobile features like the camera, geolocation, and push notifications are available via plugins for both platforms. These mobile development platforms work by starting a local web server and then serving your application like a static host on your phone. You may find [`bundleStrategy: 'single'`](configuration#output) to be a helpful option to limit the number of requests made. E.g. at the time of writing, the Capacitor local server uses HTTP/1, which limits the number of concurrent connections. ## Desktop app You can turn a [SvelteKit SPA](single-page-apps) into a desktop app with [Tauri](https://v2.tauri.app/start/frontend/sveltekit/), [Wails](https://wails.io/docs/guides/sveltekit/), or [Electron](https://www.electronjs.org/). ## Browser extension You can build browser extensions using either [`adapter-static`](adapter-static) or [community adapters](/packages#sveltekit-adapters) specifically tailored towards browser extensions. ## Embedded device Because of its efficient rendering, Svelte can be run on low power devices. Embedded devices like microcontrollers and TVs may limit the number of concurrent connections. In order to reduce the number of concurrent requests, you may find [`bundleStrategy: 'single'`](configuration#output) to be a helpful option in this deployment configuration. ================================================ FILE: documentation/docs/10-getting-started/30-project-structure.md ================================================ --- title: Project structure --- A typical SvelteKit project looks like this: ```tree my-project/ ├ src/ │ ├ lib/ │ │ ├ server/ │ │ │ └ [your server-only lib files] │ │ └ [your lib files] │ ├ params/ │ │ └ [your param matchers] │ ├ routes/ │ │ └ [your routes] │ ├ app.html │ ├ error.html │ ├ hooks.client.js │ ├ hooks.server.js │ ├ service-worker.js │ └ instrumentation.server.js ├ static/ │ └ [your static assets] ├ tests/ │ └ [your tests] ├ package.json ├ svelte.config.js ├ tsconfig.json └ vite.config.js ``` You'll also find common files like `.gitignore` and `.npmrc` (and `.prettierrc` and `eslint.config.js` and so on, if you chose those options when running `npx sv create`). ## Project files ### src The `src` directory contains the meat of your project. Everything except `src/routes` and `src/app.html` is optional. - `lib` contains your library code (utilities and components), which can be imported via the [`$lib`]($lib) alias, or packaged up for distribution using [`svelte-package`](packaging) - `server` contains your server-only library code. It can be imported by using the [`$lib/server`](server-only-modules) alias. SvelteKit will prevent you from importing these in client code. - `params` contains any [param matchers](advanced-routing#Matching) your app needs - `routes` contains the [routes](routing) of your application. You can also colocate other components that are only used within a single route here - `app.html` is your page template — an HTML document containing the following placeholders: - `%sveltekit.head%` — `` and `