Update dependency @sveltejs/kit to v3 #70

Open
teckids_renovate_bot wants to merge 1 commit from renovate/sveltejs-kit-3.x into main

This PR contains the following updates:

Package Change Age Confidence
@sveltejs/kit (source) 2.22.2 → 3.0.1 age confidence

Release Notes

sveltejs/kit (@​sveltejs/kit)

v3.0.1

Compare Source

Patch Changes
  • fix: ensure relative imports in generated types work with nodenext module resolution (#​17351)

v3.0.0

Compare Source

Major Changes
  • breaking: move remote function types to $app/server (#​16740)

  • breaking: remove experimental.handleRenderingErrors flag (#​16265)

  • breaking: make getRequest and setResponse synchronous (#​16280)

  • breaking: TypeScript 6 is now the minimum required version (#​15930)

  • breaking: refresh all load functions/queries when clicking a link to the current URL (#​16572)

  • breaking: move remote function types to $app/server (#​16764)

  • breaking: upgrade to cookie v2. Cookie names must now contain only ASCII characters (#​13386)

  • breaking: require Node 22 or newer (#​12548)

  • major: error when a client-requested single-flight mutation isn't respected by the server, allow the server to explicitly ignore refreshes (#​16892)

  • breaking: remove the preloadStrategy option. modulepreload will always be used (#​15256)

  • breaking: default the cookie path option to '/' (#​15398)

  • breaking: remove @sveltejs/kit/node/polyfills (#​15430)

  • breaking: add config.kit.output.linkHeaderPreload to preload using the Link header (#​15939)

  • breaking: require @sveltejs/vite-plugin-svelte v7 (#​15371)

  • breaking: make page.url immutable on a type level (#​16256)

  • breaking: remove base, assets, and resolveRoute from $app/paths (#​15507)

  • breaking: remove createEntries from the Builder object passed to adapter functions (#​15509)

  • breaking: return no content for 204 responses (#​16200)

  • breaking: rename Pathname type to Path and Asset to AssetPath (#​16430)
    breaking: remove leading / from Path and AssetPath

  • breaking: handle's resolve is now typed to always return a Promise (#​16352)

  • breaking: remove Server constructor and SSRManifest from public types (#​16876)

  • breaking: require Svelte config options to be passed through the Vite plugin (#​16007)

  • breaking: form action responses now use the HTTP status code returned from fail (#​16200)

  • breaking: write tsconfig to node_modules/$app/tsconfig (#​16458)

  • breaking: move defineParams and associated types to @sveltejs/kit/params (#​16716)

  • breaking: remove the deprecated CSRF checkOrigin option in favor of trustedOrigins (#​15437)

  • breaking: the delta property now only exists for popstate navigation events (#​15522)

  • breaking: change form.error type from any to App.Error | undefined (#​16245)

  • breaking: remove deprecated pragma header in version polling for improved CORS support (#​15428)

  • breaking: goto now rejects when called with a URL that does not resolve to a route within the app, matching the existing behaviour for external URLs (#​16164)

  • breaking: run all errors through the handleError hook (#​16664)

  • breaking: require Svelte 5.56.4 or newer (#​15371)

  • breaking: error on event.url, event.params and event.route access inside queries (#​16452)

  • breaking: enhanced cross-page form actions now navigate to the action page on success and failure, matching native form behavior (#​16684)

  • breaking: delete $service-worker module (#​16450)

  • breaking: move defineEnvVars to @sveltejs/kit/env (#​16375)

  • breaking: nested server-only directories (#​15685)

  • feat: allow adapters to provide additional Vite plugins (#​16206)

  • breaking: replace the $lib alias with #lib and remove files.lib config. (#​16360)

  • breaking: remove #lib definition from paths; requires explicit module extensions as a result (#​16736)

  • chore: change error, isHttpError, redirect, and isRedirect to refer to public type instead of internal class (#​13036)

  • breaking: move hooks-related types to @sveltejs/kit/hooks (#​16737)

  • breaking: add 'error' result type to preloadData (#​12579)

  • breaking: detect new deployments on data, remote, and form action responses, tab focus, and visibility change, and default version.pollInterval to 1 hour (#​16496)

  • breaking: disallow cross-origin form submissions without a Content-Type header (#​16347)

  • breaking: Server-only directories (/server/ in the path) are now treated as server-only everywhere inside the project (except src/routes and the assets directory) (#​16360)

  • breaking: config exported from a universal route file takes precedence over a server one (#​16400)

  • breaking: require Vite 8. Provides new functionality even for existing Vite 8 users such as faster builds with Vite hook filters and more powerful SvelteKit adapters with the Vite environment API (#​15371)

  • breaking: remove data-sveltekit-* option 'off' in favour of false (#​15907)

  • breaking: move tracing out of the experimental namespace and remove the instrumentation flag (#​16260)

  • breaking: add kit.paths.origin config option, remove kit.prerender.origin and the adapter-node ORIGIN environment variable (#​16161)

  • breaking: move Page, ReadonlyURL and ReadonlyURLSearchParams from @sveltejs/kit to $app/state (#​16694)

  • breaking: remove $app/stores (#​15499)

  • breaking: add refreshAll and deprecate invalidateAll (#​16289)

  • breaking: reject query parameters beginning with x-sveltekit- (#​17125)

  • breaking: disallow *.remote.ts/js files unless experimental.remoteFunctions is enabled (#​16247)

  • breaking: replace the noScroll and keepFocus options of goto with a single reset option, and the data-sveltekit-noscroll and data-sveltekit-keepfocus attributes with data-sveltekit-reset (#​16558)

  • breaking: don't abort navigation when calling invalidate(All) during navigation (#​16188)

  • breaking: consistent special filename patterns (#​16382)

  • breaking: allow handleError to influence status code (#​16162)

  • breaking: delegate CORS handling to Vite for static directory requests during development (#​16357)

  • breaking: require vite@^8.0.12, the first Vite 8 release bundling stable rolldown 1.0.0 (#​16134)

  • breaking: only include routes with a +page or +server in RouteId (#​16580)

  • breaking: require Node 22.17 (#​16597)

  • breaking: deprecate error(status, {...}) in favour of error(status, message, {...}) (#​16540)

  • breaking: replace the builder.generateManifest with builder.generateServerInstance and builder.manifest (#​16875)

  • breaking: forbid external redirects by default (#​16198)

  • breaking: separate adapter Vite plugins into pre and post (#​16711)

  • breaking: remove param files in folder in favor of params.js/ts file (#​16189)

  • breaking: move env-related types to @sveltejs/kit/env (#​16739)

  • breaking: preloadCode now takes a route ID (e.g. /blog/[slug]) instead of a pathname. Route IDs are not prefixed with paths.base (#​16576)

  • breaking: move BeforeNavigate, OnNavigate, AfterNavigate, Navigation, NavigationTarget, NavigationType, GotoOptions and the Navigation* variant types from @sveltejs/kit to $app/navigation (#​16694)

  • breaking: move ActionResult and SubmitFunction from @sveltejs/kit to $app/forms (#​16694)

  • breaking: remove handleValidationError and pass remote function validation errors to handleError with kind: 'validation' (#​16672)

  • breaking: remove deprecated .run() method from live queries (#​16573)

Minor Changes
  • feat: allow hyphens in param and matcher names (#​16284)

  • feat: add $app/manifest module with immutable, assets, prerendered, and routes exports (#​16372)

  • feat: ignore files with + prefix if they contain test/spec/stories (#​16715)

  • feat: add ErrorProps to generated types (#​16272)

  • feat: support sourcemaps in production (#​16412)

  • feat: return the list of compressed files from builder.compress (#​16566)

  • feat: better response logging (#​16744)

  • feat: warn when tsconfig doesn't exclude service worker (#​16645)

  • feat: validate that all remote form fields were created with form.fields.foo.as(...) (#​16331)

  • feat: support function validators for environment variables (#​16402)

  • feat: use type: 'module' for service worker registrations (#​16169)

  • feat: allow adapters to receive the Svelte config as a function argument when adding Vite plugins (#​16986)

  • feat: add shallow routing to goto and deprecate pushState and replaceState (#​16449)

  • feat: abort request.signal when the response closes prematurely, via a new response option for getRequest (#​16793)

  • feat: make $app/paths importable in service workers (#​16441)

  • feat: pass the project-relative source filename to the preload filter for fonts (#​16443)

  • feat: preserve page state set through goto(..., { state, persistState: true }) across reloads (#​16449)

  • feat: reinstate $env/static/private, $env/dynamic/private, $env/static/public, $env/dynamic/public and $app/environment as deprecated aliases for $app/env/private $app/env/public and $app/env (#​16334)

  • feat: add page and endpoint booleans to $app/manifest's routes, and export a ManifestRoute type (#​16594)

  • feat: $app/service-worker module (#​16458)

  • feat: resolve paths using the Vite config root option instead of process.cwd() to better support monorepo configurations such as Vitest workspaces (#​15469)

  • feat: better error logging (#​16374)

  • feat: add PageRouteId and EndpointRouteId to $app/types (#​16594)

  • feat: better tsconfig validation (#​16458)

  • feat: add dirty() property to form fields (#​16208)

  • feat: support the QUERY HTTP method in +server.js (#​16782)

  • feat: allow adapters to override getRequest and setResponse during vite dev and vite preview (#​16753)

  • chore: deprecate Response helpers in favor of platform-provided alternatives (#​15448)

  • feat: add cookies.parse method (#​16203)

  • chore: deprecate export const snapshot in favour of the snapshot helper (#​16687)

  • feat: add snapshot helper to $app/navigation (#​16685)

  • feat: support custom values in page.state via transport hook (#​16662)

  • fix: default cookies to secure to false during development (#​16462)

  • feat: warn when naively proxying requests that result in responses with a content-encoding header (#​16633)

  • feat: accept the checked state as a third argument to .as('radio', ...) and .as('checkbox', ...) so that these inputs reset to it after a submission (#​16926)

  • feat: add an applyReroute helper for adapters that support split serverless function deployments (#​16665)

Patch Changes
  • fix: prevent scheme-like path segments from causing off-site trailing-slash redirects (#​17294)

  • chore: share the action error result between form actions and remote forms (#​16835)

  • fix: persist global app state across module graph reloads (#​16663)

  • fix: generate valid Path types for routes with optional or rest params, several params in one segment, or escape sequences (#​16577)

  • fix: coerce values typed into remote form fields, and only apply the default given to .as() until the field is edited (#​16939)

  • fix: blur focused SVG elements before the DOM update on navigation (#​16983)

  • fix: support bigint params in server-side route resolution (#​17130)

  • chore: build streamed responses from async generators (#​16847)

  • fix: generate types when dev server starts (#​17034)

  • fix: allow undefined values to be passed to form field .as(...) where applicable (#​15681)

  • fix: respect paths.relative during development for client files (#​17053)

  • fix: validate prerender concurrency (#​17145)

  • chore: deprecate builder.rimraf and builder.mkdirp in favour of node:fs methods (#​16610)

  • fix: manipulate stack trace for errors that happen while generating prerender inputs (#​17113)

  • fix: don't treat callable standard schemas as function param matchers (#​16403)

  • fix: prevent non-redirect enhanced form results from navigating to another origin (#​17293)

  • fix: clarify circular imports from src/env (#​17014)

  • fix: keep memory flat when precompressing many files (#​16993)

  • fix: render remote form actions while prerendering (#​17139)

  • fix: ignore Vitest browser loader HTML transforms (#​17092)

  • fix: prevent failed link preloads from causing unhandled promise rejections in production (#​17181)

  • fix: resolve generated rootDirs from the project root (#​17242)

  • fix: generate route resolution modules as siblings of .html pages (#​16674)

  • perf: parse large streamed frames in linear time (#​16489)

  • fix: keep at most one pending body read at a time when deserializing binary forms (#​16783)

  • fix: escape cache-control headers in prerendered HTML (#​17293)

  • fix: decode all numeric character references, including above ffff, when crawling prerendered pages (#​16611)

  • fix: enforce request body size limits when Content-Type is absent (#​17127)

  • fix: include queries refreshed from within another query in the serialized response (#​16461)

  • fix: reject malformed streamed data encoding (#​16423)

  • perf: cache the default cookie header parse and avoid allocations in cookies.get (#​16341)

  • fix: exclude deleted cookies from cookies.getAll() so it stays consistent with cookies.get() (#​16297)

  • fix: hide stack traces for internal errors like 404s (#​16411)

  • chore: deduplicate repeated CSP directive handling (#​16498)

  • fix: render the nearest error page when a form submission receives a non-ActionResult error response (#​16308)

  • chore: bump mrmime to 2.0.1 (#​16745)

  • fix: correctly implement Vite plugin hook filters (#​16760)

  • fix: ignore nested outDir files outside generated (#​17150)

  • fix: defer query.refresh() in server commands until after the command body completes (#​16225)

  • fix: drain unconsumed request bodies so keep-alive connections don't hang (#​16170)

  • fix: keep history.scrollRestoration set to manual when leaving the page, so a document restored from the back/forward cache does not fall back to browser scroll restoration (#​17244)

  • fix: resolve service worker and tsconfig.json based on Vite root setting (#​16229)

  • fix: rebuild the dev manifest when route files disappear during an incremental update (#​16643)

  • breaking: populate env vars before instrumentation.server.js is evaluated and update the adapter instrumentation API (#​16303)

  • fix: only print prerender progress newline when necessary (#​16766)

  • perf: match only unpaired surrogates when escaping HTML (#​16407)

  • fix: treat data: protocol URLs as external for redirect (#​16392)

  • chore: deduplicate request hashing for serialized fetch responses (#​16499)

  • fix: don't treat Object.prototype members as param matchers during validation (#​16612)

  • fix: generate a never Path type when there are no routes (#​17228)

  • fix: follow HTTP redirects from authentication proxies when enhancing form submissions (#​17106)

  • fix: don't report empty environment variables as missing (#​16401)

  • chore: generate the env modules in a single pass (#​16833)

  • fix: externalize @opentelemetry/api to prevent bundler chunk colocation between instrumentation.server.js and application code (#​16302)

  • fix: support form fields named after Object prototype properties (#​17136)

  • fix: exclude routes without a page or endpoint from routes in $app/manifest, and remove directories with no route files from LayoutParams (#​16588)

  • fix: record a history traversal before resolving its route (#​16959)

  • fix: avoid Vite dev server reload on initial page request (#​16553)

  • fix: don't set a null accept-language header on internal fetch sub-requests when the incoming request has none (#​16527)

  • fix: reuse SSR-cached fetch responses during hydration when a cross-origin URL is not in canonical form (#​16339)

  • fix: correctly detect prerendered paths in server fetch when paths.base is set (#​16525)

  • chore: say what a valid remote form field name looks like when rejecting one (#​16938)

  • chore: warn when remote form fields are enumerated in dev (#​16940)

  • fix: populate $app/env/* dynamic variables in contexts that don't run the dev server, such as vite-node (#​16223)

  • fix: resolve client manifest imports against the Vite root (#​16803)

  • fix: properly handle Date objects in form.fields.set (#​16168)

  • fix: return 404 for form actions and remote functions whose name is an Object.prototype member (#​16072)

  • fix: no longer throw "An impossible situation occurred" when a server-only module is imported by both server and client code (#​16257)

  • fix: respect Vite default log level (#​16767)

  • fix: set the focus starting point without a fragment navigation, which leaked a hashchange to app listeners (#​16992)

  • fix: keep a form.for instance registered when the derived that holds it disconnects and reconnects (#​17230)

  • fix: make cookie options optional (#​17201)

  • fix: don't duplicate remote modules in the generated manifest (#​16532)

  • fix: evict hashed fetch cache entries after mutations (#​17146)

  • chore: reuse base64 and text decoding helpers (#​16608)

  • fix: explain the removal of $lib and $service-worker when their imports fail to resolve (#​16635)

  • fix: tweak response logging for remote requests (#​16865)

  • fix: correctly massage stack traces with async frames (#​16633)

  • fix: mark RequestEvent properties as readonly (#​16661)

  • fix: render the nearest +error.svelte at the depth it occupies when an error is thrown during rendering (#​16526)

  • fix: support coordinate objects from image inputs in remote forms (#​16944)

  • fix: revert route metadata caching to regenerate missing root-route types during sync (#​17281)

  • chore: bump @sveltejs/acorn-typescript to 1.0.12 (#​16745)

  • fix: update match parameter type (#​16636)

  • fix: generate sourcemaps for remote modules (#​16440)

  • fix: keep hash-router links on the current document when resolving paths (#​17107)

  • fix: avoid empty getElementById() call on hash routing navigation (#​16448)

  • fix: resolve every module entry point using kit.moduleExtensions (#​17043)

  • fix: serve .ico files with image/x-icon Content-Type (#​16234)

  • chore: bump magic-string to 1.1.0 (#​16745)

  • fix: exclude inlined files from the page's $app/manifest immutable list (#​16531)

  • fix: discard invalidation results when a navigation completes while they load (#​16852)

  • fix: avoid client-side code being bundled by Cloudflare Wrangler (#​16364)

  • fix: wait for the redirect navigation before remote form submissions resolve (#​16765)

  • fix: record the mime types of prerendered paths in the server manifest (#​16564)

  • fix: only require the svelte-trusted-html trusted-types policy when client-side code is shipped, allowing builds where all pages have csr: false (#​16928)

  • chore: clarify which hooks run during server route resolution (#​16397)

  • fix: yield to allow prerender updates to be visible (#​16748)

  • fix: make paths.origin type looser (#​16215)

  • chore: bump devalue to 5.9.0 (#​16745)

  • feat: send periodic keep-alive SSE comments from query.live to prevent idle-timeout errors (#​16063)

  • fix: send an explicit SSE Accept header for query.live requests to avoid buffering by proxies (#​17104)

  • fix: don't touch the query.live stream controller after teardown, and make response cancellation observable via the generator's request.signal (#​16790)

  • fix: print builder.log.warn messages to stderr, as documented (#​17253)

  • fix: warn if hook files are spelled as "hook" instead of "hooks" (#​16483)

  • fix: only suggest a + prefix for route filenames that are valid with the file's extension (#​16837)

  • chore: only generate each route's resolution module once when prerendering (#​16576)

  • fix: don't throw from remote form validate() if the form unmounts while it is waiting for a tick (#​16720)

  • chore: share navigation completion between navigate and shallow routing (#​16838)

  • fix: route dev-server response logging through Vite's logger so it respects logLevel and customLogger (#​16858)

  • fix: skip clean fields when programmatically validating forms (#​16208)

  • perf: skip import graph collection outside client environments (#​16383)

  • breaking: experimental remote form validate({ includeUntouched }) option is now all (#​16208)

  • fix: rerun load functions when the number of values of a tracked search parameter changes (#​16495)

  • chore: read build-time config from defines on the server instead of carrying it in options (#​16873)

  • fix: avoid client build warning about externalising node:async_hooks (#​16244)

  • chore: stop externalizing cookie dependency during build (#​16936)

  • fix: reinstate $app/environment as an alias for $app/env, in case dependencies import it (#​15964)

  • fix: preserve paths.base when vite preview redirects a prerendered page to the correct trailing slash (#​16836)

  • fix: error when reading non-serialized set-cookie headers via getSetCookie in load (#​16614)

  • fix: walk and copy directories without a stat per file (#​16995)

  • perf: avoid quadratic remote form issue merging (#​16493)

  • fix: widen remote form fields for union schemas and string enums (#​16937)

  • chore: deprecate the alias option (#​16470)

  • fix: don't attempt to serialize fetch responses when the request body is not a string or TypedArray (#​16501)

  • fix: respond to HEAD requests without a body (#​17036)

  • chore: replace deprecated Vite dev server APIs (#​16961)

  • chore: iterate the query cache maps through a single generator (#​16846)

  • fix: handle rejected streamed server data after delayed loads (#​16268)

  • fix: don't crash on interactions inside a form whose controls shadow nodeName (#​16769)

  • fix: don't replay a preloaded redirect when a later hop of the navigation returns to the route (#​16955)

  • fix: prevent path traversal when previewing prerendered pages and data on Windows (#​17293)

  • fix: settle a query's pending request in place when its value arrives through set() (#​16958)

  • fix: render pages over sibling endpoints without GET or HEAD handlers (#​16125)

  • fix: exit build workers after completing their tasks while allowing synchronous exit handlers to run (#​17135)

  • fix: prevent infinite loops when server-side queries refresh each other in a cycle during the single-flight drain (#​16461)

  • fix: populate version in service workers (#​16434)

  • feat: add field.touched() helper to remote form fields (#​14692)

  • fix: respect paths.relative for server-side route resolution imports (#​17056)

  • fix: read the error status of App.Error in the prerender and query.live remote functions (#​16529)

  • fix: resolve remote modules as external during dev prebundling so packages can re-export remote functions (#​16426)

  • chore: standardize remote-function and shared form diagnostics (#​17277)

  • fix: avoid Promise.withResolvers in client remote functions for older browser support (#​16777)

  • fix: propagate errors from prerendered remote responses instead of re-running the function (#​16535)

  • chore: remove unused helpers (#​16834)

  • fix: allow reserved words (e.g. delete, class) as remote function export names (#​16264)

  • fix: reset failed <svelte:boundary> on client navigation so a stale +error.svelte is torn down (#​16296)

  • fix: clear navigating when a shallow popstate aborts an in-flight navigation (#​17118)

  • fix: expand [x+nn] and [u+nnnn] escape sequences when resolving a route id to a pathname (#​16570)

  • fix: respect user-set server.cors and preview.cors config instead of overriding them (#​16924)

  • fix: respect the status returned from handleError on the fallback error page served to error-page sub-requests (#​16528)

  • fix: restore scroll position after back-forward cache returns (#​17255)

  • fix: warn if there are plugins using transformIndexHtml (#​16394)

  • fix: refetch route-tracking server data when navigating away from an error page (#​16381)

  • fix: allow routes to contain [ and ] via the [x+5b] and [x+5d] escapes (#​16569)

  • chore: use Response.json instead of the deprecated json helper in runtime responses (#​16804)

  • fix: recommend safe include and exclude patterns in tsconfig warning (#​17102)

  • chore: remove dependency on kleur (#​12548)

  • fix: prevent server-side self-fetch fallbacks from following redirects (#​17293)

  • fix: serialize query(...).set(...)/query(...).refresh() values into the rendered HTML when called from within a query during SSR (#​16461)

  • chore: configure the server runtime in one place, deprecate Server in favour of the server object written by builder.generateServerInstance (#​17000)

  • chore: derive content-length from fixed response bodies in setResponse (#​16794)

  • fix: correctly read zero-length files at the end of a binary form payload (#​16783)

  • fix: reject fallback handlers on prerendered endpoints (#​17140)

  • fix: don't destroy partial-line app output with the prerender progress line (#​16750)

  • chore: remove virtual modules (#​16813)

  • fix: surface prerender errors during development (#​16507)

  • chore: bump cookie to 2.0.1 (#​16745)

  • fix: detect $app/server and $app/env/private client imports when SvelteKit is installed inside the project root (#​16648)

  • chore: read options from a single module instead of passing it through the server runtime (#​16871)

  • fix: wait for the redirect navigation before prerendered remote functions resolve (#​16765)

  • fix: sort directory entries when building the route manifest so node indices are deterministic across runtimes (e.g. Bun and Node) (#​16074)

  • fix: skip unnecessary version.json checks if updated.current is already true (#​16518)

  • fix: allow generation of $app/tsconfig without TypeScript installed (#​16534)

  • chore: remove dependency on set-cookie-parser (#​15384)

  • chore: share the nearest error page walk between client and server (#​16774)

  • fix: fall back to the page's form actions when a sibling endpoint has no POST handler (#​16349)

  • fix: record client output extensions in builder.mimeTypes (#​16908)

  • perf: use a Set to check element ids when validating fragment links during prerendering (#​16494)

  • fix: preserve shared client chunk hashes when the app version changes (#​16324)

  • fix: include hoisted packages in Vite's server.fs.allow list (#​15998)

  • chore: standardize app template diagnostics (#​17250)

  • chore: standardize Vite plugin, build, prerender and adapter diagnostics (#​17253)

  • chore: standardize client navigation, preload, snapshot and enhancement diagnostics (#​17276)

  • chore: standardize configuration, environment and tsconfig diagnostics (#​17251)

  • chore: standardize public API, $app/* and deprecated module diagnostics (#​17265)

  • chore: standardize route discovery, parameter and route export diagnostics (#​17252)

  • chore: standardize server request, hook and page diagnostics (#​17275)

  • fix: preserve metadata on streamed page responses (#​16935)

  • fix: only include _app/immutable files in $app/manifest's immutable in the service worker (#​16531)

  • chore: remove the dead SSRState.fallback field and name the server state fork semantics (#​16598)

  • fix: atomically replace route metadata during sync (#​17096)

  • fix: import resolved peer dependencies as file URLs so project-relative resolution works on Windows (#​16618)

  • fix: preserve sourcemap source paths when adapters copy build output (#​17082)

  • fix: log errors caught by the Vite dev server handler (#​16550)

  • chore: bump acorn to 8.18.0 (#​16745)

  • fix: resolve root per instance of the SvelteKit Vite plugin (#​16513)

  • fix: report tsconfig parse errors on Windows (#​17251)

  • fix: return root layout server data for error-page data requests to non-existent routes (#​16376)

  • fix: prevent prerender crawler from hanging on unterminated unquoted attributes (#​17141)

  • fix: prevent await_reactivity_loss warning and state_unsafe_mutation error when the new version detector runs after an await (#​16915)

  • fix: redact nested and typed underscore-prefixed remote form fields after invalid submissions (#​17128)

  • fix: ignore path casing differences when warning about overridden Vite config on Windows (#​16545)

  • fix: return a lightweight 404 instead of rendering the error page for subresource requests (#​16463)

  • fix: preserve stripped path prefixes by making trailing-slash redirects relative (#​16431)

  • fix: preserve the current URL search parameters when submitting a remote form without JavaScript (#​16373)

  • fix: only treat files in node_modules as remote modules when the package has a peer dependency on @​sveltejs/kit (#​16492)

  • fix: treeshake prerendered remote functions in the right chunks (#​16533)

  • fix: correctly serialize Node.js buffers returned from remote functions during SSR (#​17158)

  • fix: preserve errors with read-only stack properties (#​17180)

  • chore: deduplicate type-stripping logic in tweak_types (#​16454)

  • fix: avoid infinite loop when building with --watch flag (#​16632)

  • chore: unify the walk and list_files filesystem helpers (#​16784)

  • fix: error during development if the adapter does not support instrumentation and it exists (#​16548)

  • fix: use mouseover+mousemove for preloading to reduce events (#​16325)

  • fix: reject invalid binary form file metadata (#​17149)

  • fix: error on server-only imports reachable from hooks or service worker files outside the project root (#​16912)

  • fix: write generated tsconfig to node_modules/$app/tsconfig.json so that tools with simplified tsconfig resolution can find it (#​16589)

  • chore: emit env modules to disk (#​16807)

  • fix: more informative error message when running a command inside a query or prerender function (#​17293)

  • fix: adjust error overload for optional App.Error parameters (#​16725)

  • fix: prerender and crawl pages whose content-type header carries a charset parameter (#​16567)

  • fix: stream promised read results lazily instead of eagerly buffering them (#​16622)

  • fix: copy worker files emitted by the server build to the client output directory (#​16929)

  • chore: parse page options and remote modules with Vite's parseSync instead of acorn (#​16947)

  • fix: correctly decode [u+nnnn] escape sequences above ffff (#​16611)

  • fix: Reject all pending query promises when a query fails before resolving with a value for the first time (#​16890)

v2.70.3

Compare Source

Patch Changes
  • fix: avoid eagerly reading $app/state dependencies during module initialization (b61018d)

v2.70.2

Compare Source

Patch Changes
  • fix: prevent quadratic backtracking in Accept header content negotiation (82712fc)

v2.70.1

Compare Source

Patch Changes
  • docs: update links to hooks documentation (#​16417)

v2.70.0

Compare Source

Minor Changes
  • feat: move defineEnvVars to @sveltejs/kit/env (#​16378)
Patch Changes
  • fix: enable CSRF protection in builds with a non-production NODE_ENV value (#​16313)

v2.69.3

Compare Source

Patch Changes
  • fix: detect destructured load and actions exports during type generation (#​16329)

  • fix: ensure CSS URL references are absolute when paths.relative is false (#​16315)

  • fix: align MAX_COOKIE_SIZE with RFC 6265bis (#​16322)

v2.69.2

Compare Source

Patch Changes
  • fix: set define values on globalThis when running Vitest (#​16246)

v2.69.1

Compare Source

Patch Changes
  • fix: prevent prototype pollution when deleting file inputs (#​16218)

  • fix: prevent unhandled promise rejection (#​16219)

v2.69.0

Compare Source

Minor Changes
  • feat: expose submitted property of remote forms (#​14811)
Patch Changes
  • fix: clear issues and touched states on form reset (#​16163)

  • fix: return undefined from fields.branch.issues() when only fields.branch.leaf has issues (#​16187)

v2.68.0

Compare Source

Minor Changes
  • feat: expose RemoteFormEnhanceInstance and RemoteFormEnhanceCallback types (#​15816)

  • feat: set value of submit fields when form is submitted (#​15979)

Patch Changes
  • fix: skip native_navigation when __data.json returns 404 on a static fallback page (#​16135)

  • fix: ignore third-party monkeypatches in pushState/replaceState warning detection (#​15267)

  • fix: snapshot form fields on read (#​16150)

  • fix: strip field prefix before erroring on duplicates (#​16151)

  • fix: call reset function via prototype (#​16138)

  • chore: fix navigation type hover info (#​16147)

v2.67.0

Compare Source

Minor Changes
  • feat: add prerender.handleInvalidUrl option for invalid URLs discovered while crawling (#​16088)
Patch Changes
  • fix: dedupe remote data (#​15991)

  • fix: skip client build if all routes have CSR disabled (#​15936)

v2.66.0

Compare Source

Minor Changes
  • feat: precompress prerendered .md and .mdx files (#​15893)

  • feat: warn the user when they forget to make boolean inputs optional in their form schemas (#​15804)

Patch Changes
  • fix: blur active element before component update during navigation so that blur/focusout handlers fire while old component data is still valid (#​15452)

  • fix: ensure base is available from $service-worker during development (#​15882)

  • fix: use correct relative asset paths when rendering an error page for a missing __data.json request (#​15884)

  • fix: preserve active for await consumers across query.live reconnects (#​16022)

  • fix: settle query.live reconnect promise on all exit paths, preventing invalidateAll() from deadlocking when a live query is offline or interrupted (#​16022)

  • fix: preserve last value when a query.live stream completes without yielding on reconnect (#​16022)

  • fix: remove types: ['node'] from generated tsconfig to avoid errors when @types/node is not installed (#​15709)

  • fix: prefer pages over endpoints when prerendering (#​16076)

  • fix: restore snapshots after afterNavigate callbacks (#​16066)

  • fix: support ws:/wss: and trusted-types-eval for CSP sources (#​15938)

  • fix: omit empty file inputs from remote form data (#​15898)

  • fix: fail early if a route with +page and +server is marked as prerenderable (#​16075)

  • fix: wait a tick before resetting forms (#​15805)

  • fix: preflight schemas apply correctly when chained before for (#​15863)

  • fix: blank page in SPA mode when root layout load() throws (#​15798)

  • fix: pass all unknown options from the sveltekit Vite plugin through to vite-plugin-svelte (#​16010)

v2.65.2

Compare Source

Patch Changes
  • fix: throw an error when prerendering a root +server.js that returns a non-HTML response (#​15994)

  • fix: decode base64-serialized fetch bodies before caching them for client-side replay (#​16034)

  • fix: correctly access explicit dynamic public environment variables from prerendered pages and service workers (#​16024)

  • fix: allow preloadCode to be called during initial page load (#​16028)

  • fix: send cache-control: private, no-store on remote function responses so personalized query results can never be cached by shared caches (#​16020)

  • fix: preserve the HTTP status and error body when a remote function request fails in transport (e.g. a 401/403 from a handle hook), instead of reporting a generic 500 (#​16021)

  • fix: avoid loading universal nodes during build analysis when the app uses a hash router (#​16042)

  • fix: correctly serve client entry during development when using the pnpm global virtual store (#​16045)

  • fix: normalize path separators when comparing config (#​16037)

  • fix: ensure building resolves correctly to allow avoiding build-time explicit environment variable validation (#​16058)

  • fix: prevent unhandled promise rejections when remote function failures are consumed via current/error instead of await (#​16018)

v2.65.1

Compare Source

Patch Changes
  • fix: avoid importing the Vite development client code into builds with a non-standard NODE_ENV (#​16023)

  • fix: don't emit the unused bundle and stylesheet files when using bundleStrategy: 'inline' (#​16025)

  • fix: reset queries before navigating when invalidateAll is set (#​16014)

  • fix: regression in loading assets for absolute path apps (#​16026)

v2.65.0

Compare Source

Minor Changes
  • feat: allow queries to refresh other queries (#​16012)
Patch Changes
  • fix: dedupe remote data (#​15991)

  • fix: skip client build if all routes have CSR disabled (#​15936)

v2.64.0

Compare Source

Minor Changes
  • feat: allow commands to receive File objects (#​15978)
Patch Changes
  • fix: avoid server components from being bundled if SSR is turned off for a route (#​15982)

v2.63.1

Compare Source

Patch Changes
  • fix: use SSE for query.live (#​15957)

  • fix: use forward slashes in the generated env.d.ts import path on Windows (#​15977)

  • fix: allow $app/environment with a warning when explicitEnvironmentVariables is enabled (#​15980)

  • fix: avoid importing Vite while validating explicit environment variables (#​15953)

  • docs: adjust the release version of explicit env vars (#​15968)

  • fix: ensure version is defined when importing from $app/env with explicit environment variables (#​15971)

v2.63.0

Compare Source

Minor Changes
Patch Changes
  • fix: remove check for svelte.config.js before running sync (#​15946)

  • fix: generate a placeholder tsconfig.json to squelch sync-time warnings (#​15948)

  • fix: allow use of $app/env/public in service workers (#​15950)

v2.62.0

Compare Source

Minor Changes
  • feat: support passing Svelte(Kit) config via Vite plugin (#​15944)
Patch Changes
  • fix: preserve multiple Set-Cookie headers on 304 responses (#​15902)

  • fix: preload for anchor elements that were just previously preloaded (#​15915)

  • fix: catch load function streaming errors on the client (#​15929)

  • fix: avoid generating the _app/env.js module if public dynamic environment variables are not used by the app (#​15940)

v2.61.1

Compare Source

Patch Changes
  • fix: regression where routes starting and ending with a route group are not matched correctly (#​15903)

v2.61.0

Compare Source

Minor Changes
  • breaking: the .run() method has been removed from remote queries on both the client and the server. Use await query() directly instead — it now works everywhere (#​15779)

  • feat: remote queries can now be awaited in any context (event handlers, module scope, async callbacks), not just inside reactive contexts. The cache is shared across reactive and non-reactive subscribers, so awaiting a query in an event handler will dedupe with components that have already subscribed to the same query. (#​15779)

  • feat: live query instances are now themselves async-iterable (#​15878)

  • feat: add programmatic submit method to form remote function instances (#​15657)

  • feat: pass form remote function instance into enhance callback (#​15657)

Patch Changes
  • fix: resolve the app payload without using process.env.NODE_ENV (#​15852)

  • fix: support exactOptionalPropertyTypes for optional route params (#​15825)

  • fix: correctly send true value to the server for 'submit' and 'hidden' form fields (#​15858)

  • fix: avoid build warnings about undefined universal hooks (#​15895)

  • fix: prefer default error page when failing to decode the URL pathname (#​15744)

  • fix: disable link prefetching on slow internet connections (#​15885)

  • fix: allow routes ending with optional parameters next to more specific routes (#​15861)

  • fix: remove reliance on Content-Length header in deserialize_binary_form, which caused failures when proxies (e.g. Vercel, Azure) strip the header and use chunked transfer encoding (#​15796)

v2.60.1

Compare Source

Patch Changes
  • chore: bump svelte and devalue (#​15836)

  • fix: prevent query.batch cross-talk (dadaefc)

v2.60.0

Compare Source

Minor Changes
  • feat: allow 'submit' and 'hidden' form fields to accept numbers and booleans (#​15802)

  • feat: warn on unread form remote function validation issues (#​15653)

Patch Changes
  • fix: abort navigation after async rendering if obsolete (#​15811)

  • fix: skip refreshing queries on full-page reload form submissions (#​15803)

v2.59.1

Compare Source

Patch Changes
  • fix: resolve paths to route files with the letter drive on Windows (#​15793)

v2.59.0

Compare Source

Minor Changes
  • feat: support query.batch in requested(...) (#​15751)

  • breaking: on the server, make the promise returned from refresh represent adding the refresh to the map, not the time it takes to run the remote function (#​15705)

  • feat: experimental query.live function (#​15705)

Patch Changes
  • fix: unwrap Promise in RemoteCommand output type (#​15771)

  • fix: empty call to .updates() on a command/form invocation means "don't update anything" (#​15705)

  • fix: form.fields.foo.as('checkbox', default_value) now works (#​15752)

  • fix: remote forms with default values defined by field.as('text', defaultValue) now correctly reset to the provided default values once submitted (#​15753)

  • fix: make sure queries always get started correctly (#​15705)

  • fix: allow plain functions as overrides in updates (#​15705)

v2.58.0

Compare Source

Minor Changes
  • breaking: require limit in requested (as originally intended) (#​15739)

  • feat: RemoteQueryFunction gains an optional third generic parameter Validated (defaulting to Input) that represents the argument type after schema validation/transformation (#​15739)

  • breaking: requested now yields { arg, query } entries instead of the validated argument (#​15739)

Patch Changes
  • fix: allow query().current, .error, .loading, and .ready to work in non-reactive contexts (#​15699)

  • fix: prevent deep_set crash on nullish nested values (#​15600)

  • fix: restore correct RemoteFormFields typing for nullable array fields (e.g. when a schema uses .default([])), so .as('checkbox') and friends work again (#​15723)

  • fix: don't warn about removed SSI comments in transformPageChunk (#​15695)

    Server-side include (SSI) directives like <!--#include virtual="..." --> are HTML comments that are replaced by servers such as nginx. Previously, removing them in transformPageChunk would trigger a false positive warning about breaking Svelte's hydration. Since SSI comments always start with <!--# and Svelte's hydration comments never do, they can be safely excluded from the check.

  • Change enhance function return type from void to MaybePromise. (#​15710)

  • fix: throw an error when resolve is called with an external URL (#​15733)

  • fix: avoid FOUC for CSR-only pages by loading styles and fonts before CSR starts (#​15718)

  • fix: reset form result on redirect (#​15724)

v2.57.1

Compare Source

Patch Changes
  • fix: better validation for redirect inputs (10d7b44)

  • fix: enforce BODY_SIZE_LIMIT on chunked requests (3202ed6)

  • fix: use default values as fallbacks (#​15680)

  • fix: relax form typings for union types (#​15687)

v2.57.0

Compare Source

Minor Changes
  • feat: return boolean from submit to indicate submission validity for enhanced form remote functions (#​15530)
Patch Changes
  • fix: use array type for select fields that accept multiple values (#​15591)

  • fix: silently 404 Chrome DevTools workspaces request in dev and preview (#​15656)

  • fix: config.kit.csp.directives['trusted-types'] requires 'svelte-trusted-html' (and 'sveltekit-trusted-url' when a service worker is automatically registered) if it is configured (#​15323)

  • fix: avoid inlineDynamicImports ignored with codeSplitting warning when using Vite 8 (#​15647)

  • fix: reimplement treeshaking non-dynamic prerendered remote functions (#​15447)

v2.56.1

Compare Source

Patch Changes

v2.56.0

Compare Source

Minor Changes
  • breaking: rework client-driven refreshes (#​15562)

  • breaking: stabilize remote function caching by sorting object keys (#​15570)

  • breaking: add run() method to queries, disallow awaiting queries outside render (#​15533)

  • feat: support TypeScript 6.0 (#​15595)

  • breaking: isolate command-triggered query refresh failures per-query (#​15562)

  • feat: use hydratable for remote function transport (#​15533)

  • feat: allow form fields to specify a default value (field.as(type, value)) (#​15577)

Patch Changes
  • fix: don't request new data when .refresh is called on a query with no cache entry (#​15533)

  • fix: allow using multiple remote functions within one async derived (#​15561)

  • fix: avoid false-positive overridden Vite base setting warning when setting a paths.base in svelte.config.js (#​15623)

  • fix: manage queries in their own $effect.root (#​15533)

  • fix: avoid inlineDynamicImports deprecation warning when building the service worker with Vite 8 (#​15550)

  • fix: correctly escape backticks when precomputing CSS (#​15593)

  • fix: discard obsolete forks before finishing navigation (#​15634)

  • chore: tighten up override implementation (#​15562)

  • fix: ensure the default Svelte 5 error.svelte file uses runes mode (#​15609)

  • fix: deduplicate same-cache-key batch calls during SSR (#​15533)

  • fix: decrement pending_count when form callback doesn't call submit() (#​15520)

v2.55.0

Compare Source

Minor Changes
  • feat: page and layout params with matchers are now type narrowed in $app/types, leading to better type safety when working with params in $app/types, $app/state, and hooks. (#​15502)

v2.54.0

Compare Source

Minor Changes
  • feat: allow error boundaries to catch errors on the server (#​15308)
Patch Changes
  • chore: upgrade devalue (#​15535)

  • fix: don't wait for remote functions that are not awaited in the template (#​15280)

  • feat: allow resolve() to accept pathnames with a search string and/or hash (#​15458)

  • chore: remove deprecation warnings for config.kit.files.* options when validating the Svelte config file (#​15482)

  • fix: handles form target attribute in remote form redirects (#​15457)

v2.53.4

Compare Source

Patch Changes
  • fix: avoid Vite warning about unknown codeSplitting option (#​15451)

v2.53.3

Compare Source

Patch Changes
  • fix: prevent overlapping file metadata in remote functions form (faba869)

v2.53.2

Compare Source

Patch Changes
  • fix: server-render nested form value sets (#​15378)

  • fix: use deep partial types for form remote functions .value() and .set(...) (#​14837)

  • fix: provide correct url info to remote functions (#​15418)

  • fix: allow optional types for remote query/command/prerender functions (#​15293)

  • fix: allow commands in more places (#​15288)

v2.53.1

Compare Source

Patch Changes
  • fix: address warning about inlineDynamicImports when using Vite 8 (#​15403)

v2.53.0

Compare Source

Minor Changes
Patch Changes
  • fix: remove event listeners on form attachment cleanup (#​15286)

  • fix: apply queries refreshed in a form remote function when a redirect is thrown (#​15362)

v2.52.2

Compare Source

Patch Changes
  • fix: validate form file information to prevent amplification attacks (3e607b3)

  • chore: upgrade devalue and svelte (#​15339)

  • fix: parse file offset table more strictly (f47c01b)

v2.52.0

Compare Source

Minor Changes
  • feat: match function to map a path back to a route id and params (#​14997)
Patch Changes
  • fix: respect scroll-margin when navigating to a url-supplied anchor (#​15246)

  • fix: resolve will narrow types to follow trailing slash page settings (#​15027)

v2.51.0

Compare Source

Minor Changes
  • feat: add scroll property to NavigationTarget in navigation callbacks (#​15248)

    Navigation callbacks (beforeNavigate, onNavigate, and afterNavigate) now include scroll position information via the scroll property on from and to targets:

    • from.scroll: The scroll position at the moment navigation was triggered
    • to.scroll: In beforeNavigate and onNavigate, this is populated for popstate navigations (back/forward) with the scroll position that will be restored, and null for other navigation types. In afterNavigate, this is always the final scroll position after navigation completed.

    This enables use cases like animating transitions based on the target scroll position when using browser back/forward navigation.

  • feat: hydratable's injected script now works with CSP (#​15048)

Patch Changes
  • fix: put preloads before styles (#​15232)

  • fix: suppress false-positive inner content warning when children prop is forwarded to a child component (#​15269)

  • fix: fetch not working when URL is same host but different than paths.base (#​15291)

  • fix: navigate to hash link when base element is present (#​15236)

  • fix: avoid triggering handleError when redirecting in a remote function (#​15222)

  • fix: include test directory in generated tsconfig.json alongside existing tests entry (#​15254)

  • fix: generate tsconfig.json using the value of kit.files.src (#​15253)

v2.50.2

Compare Source

Patch Changes
  • fix: ensure inlined CSS follows paths.assets and paths.relative settings (#​15153)

  • fix: emit script CSP nonces when unsafe-inline is present if strict-dynamic is also present (#​15221)

  • fix: re-export browser/dev from esm-env (#​15206)

  • fix: use validated args in batch resolver in both csr and ssr (#​15215)

  • fix: ensure CSS inlining includes components that are conditionally rendered (#​15153)

  • fix: only match rest params with matchers when the matcher matches (#​15216)

  • fix: properly handle percent-encoded anchors (e.g. <a href="#sparkles-%E2%9C%A8">) during prerendering. (#​15231)

v2.50.1

Compare Source

Patch Changes
  • fix: include hooks.server and hooks.universal as explicit Vite build inputs to ensure assets imported by hooks files are correctly discovered (#​15178)

  • fix: improves fields type for generic components (#​14974)

  • fix: preload links if href changes (#​15191)

v2.50.0

Compare Source

Minor Changes
  • breaking: remove buttonProps from experimental remote form functions; use e.g. <button {...myForm.fields.action.as('submit', 'register')}>Register</button> button instead (#​15144)

v2.49.5

Compare Source

Patch Changes
  • fix: avoid overriding Vite default base when running Vitest 4 (#​14866)

  • fix: ensure url decoded pathnames are not mistaken as rerouted requests (d9ae9b0)

  • fix: add length checks to remote forms (8ed8155)

v2.49.4

Compare Source

Patch Changes
  • fix: support instrumentation for vite preview (#​15105)

  • fix: support for URLSearchParams.has(name, value) overload (#​15076)

  • fix: put forking behind experimental.forkPreloads (#​15135)

v2.49.3

Compare Source

Patch Changes
  • fix: avoid false-positive Vite config overridden warning when using Vitest 4 (#​15121)

  • fix: add typescript as an optional peer dependency (#​15074)

  • fix: use hasOwn check when deep-setting object properties (#​15127)

v2.49.2

Compare Source

Patch Changes
  • fix: Stop re-loading already-loaded CSS during server-side route resolution (#​15014)

  • fix: posixify the instrumentation file import on Windows (#​14993)

  • fix: Correctly handle shared memory when decoding binary form data (#​15028)

v2.49.1

Compare Source

Patch Changes
  • fix: suppress state_referenced_locally warnings in .svelte-kit/generated/root.svelte (#​15013)

  • fix: TypeError when doing response.clone() in page load (#​15005)

v2.49.0

Compare Source

Minor Changes
  • feat: stream file uploads inside form remote functions allowing form data to be accessed before large files finish uploading (#​14775)

v2.48.8

Compare Source

Patch Changes
  • breaking: invalid now must be imported from @sveltejs/kit (#​14768)

  • breaking: remove submitter option from experimental form validate() method, always provide default submitter (#​14762)

v2.48.7

Compare Source

Patch Changes
  • fix: allow multiple server-timing headers (#​14700)

  • fix: allow access to root-level issues in schema-less forms (#​14893)

  • fix: allow hosting hash-based apps from non-index.html files (#​14825)

v2.48.6

Compare Source

Patch Changes
  • fix: clear issues upon passing validation (#​14683)

  • fix: don't use fork of unrelated route (#​14947)

  • fix: prevent type errors when optional @opentelemetry/api dependency isn't installed (#​14949)

  • fix: preserve this when invoking standard validator (#​14943)

  • fix: treat client/universal hooks as entrypoints for illegal server import detection (#​14876)

  • fix: correct query .set and .refresh behavior in commands (#​14877)

  • fix: improved the accuracy of the types of the output of field.as('...') (#​14908)

v2.48.5

Compare Source

Patch Changes
  • fix: wait an extra microtask in dev before calling $_init_$ (#​14799)

  • fix: discard preload fork before creating a new one (#​14865)

  • fix: delete RemoteFormAllIssue, add path to RemoteFormIssue (#​14864)

v2.48.4

Compare Source

Patch Changes
  • fix: adjust query's promise implementation to properly allow chaining (#​14859)

  • fix: make prerender cache work, including in development (#​14860)

v2.48.3

Compare Source

Patch Changes
  • fix: include hash when using resolve with hash routing enabled (#​14786)

  • fix: afterNavigate callback not running after hydration when experimental async is enabled (#​14644)
    fix: Snapshot restore method not called after reload when experimental async is enabled

  • fix: expose issue.path in .allIssues() (#​14784)

v2.48.2

Compare Source

Patch Changes
  • fix: update DOM before running navigate callbacks (#​14829)

v2.48.1

Compare Source

Patch Changes
  • fix: wait for commit promise instead of settled (#​14818)

v2.48.0

Compare Source

Minor Changes
  • feat: use experimental fork API when available (#​14793)
Patch Changes
  • fix: await for settled instead of tick in navigate (#​14800)

v2.47.3

Compare Source

Patch Changes
  • fix: avoid hanging when error() is used while streaming promises from a server load function (#​14722)

  • chore: treeshake load function code if we know it's unused (#​14764)

  • fix: RecursiveFormFields type for recursive or unknown schemas (#​14734)

  • fix: rework internal representation of form value to be $state (#​14771)

v2.47.2

Compare Source

Patch Changes
  • fix: streamed promise not resolving when another load function returns a fast resolving promise (#​14753)

  • chore: allow to run preflight validation only (#​14744)

  • fix: update overload to set invalid type to schema input (#​14748)

v2.47.1

Compare Source

Patch Changes
  • fix: allow read to be used at the top-level of remote function files (#​14672)

  • fix: more robust remote files generation (#​14682)

v2.47.0

Compare Source

Minor Changes
Patch Changes
  • fix: resolve remote module syntax errors with trailing expressions (#​14728)

v2.46.5

Compare Source

Patch Changes
  • fix: ensure form remote functions' fields.set triggers reactivity (#​14661)

v2.46.4

Compare Source

Patch Changes
  • fix: prevent access of Svelte 5-only untrack function (#​14658)

v2.46.3

Compare Source

Patch Changes
  • fix: merge field.set(...) calls (#​14651)

  • fix: don't automatically reset form after an enhanced submission (#​14626)

  • fix: normalize path strings when updating field values (#​14649)

v2.46.2

Compare Source

Patch Changes
  • fix: prevent code execution order issues around SvelteKit's env modules (#​14637)

v2.46.1

Compare Source

Patch Changes
  • fix: use $derived for form fields (#​14621)

  • docs: remove @example blocks to allow docs to deploy (#​14636)

  • fix: require a value with submit and hidden fields (#​14635)

  • fix: delete hydration cache on effect teardown (#​14611)

v2.46.0

Compare Source

Minor Changes
  • feat: imperative form validation (#​14624)
Patch Changes
  • fix: wait a tick before collecting form data for validation (#​14631)

  • fix: prevent code execution order issues around SvelteKit's env modules (#​14632)

v2.45.0

Compare Source

Minor Changes
  • feat: form.for(id) now implicitly sets id on form object (#​14623)
Patch Changes
  • fix: allow fetch in remote function without emitting a warning (#​14610)

v2.44.0

Compare Source

Minor Changes
  • feat: expose event.route and event.url to remote functions (#​14606)

  • breaking: update experimental form API (#​14481)

Patch Changes
  • fix: don't crawl error responses during prerendering (#​14596)

v2.43.8

Compare Source

Patch Changes
  • fix: HMR for query (#​14587)

  • fix: avoid client modules while traversing dependencies to prevent FOUC during dev (#​14577)

  • fix: skip prebundling of .remote.js files (#​14583)

  • fix: more robust remote file pattern matching (#​14578)

v2.43.7

Compare Source

Patch Changes
  • fix: correctly type the result of form remote functions that do not accept data (#​14573)

  • fix: force remote module chunks to isolate themselves (#​14571)

v2.43.6

Compare Source

Patch Changes
  • fix: ensure cache key is consistent between client/server (#​14563)

  • fix: keep resolve relative to initial base during prerender (#​14533)

  • fix: avoid including HEAD twice when an unhandled HTTP method is used in a request to a +server handler that has both a GET handler and a HEAD handler (#​14564)

  • fix: smoothscroll to deep link (#​14569)

v2.43.5

Compare Source

Patch Changes
  • fix: fall back to non-relative resolution when calling resolve(...) outside an event context (#​14532)

v2.43.4

Compare Source

Patch Changes
  • fix: Webcontainer AsyncLocalStorage workaround (#​14526)

v2.43.3

Compare Source

Patch Changes
  • fix: Webcontainer AsyncLocalStorage workaround (#​14521)

  • fix: include the value of form submitters on form remote functions (#​14475)

v2.43.2

Compare Source

Patch Changes
  • fix: ensure rendering starts off synchronously (#​14517)

  • fix: keep serialized remote data alive until navigation (#​14508)

v2.43.1

Compare Source

Patch Changes
  • fix: consistently use bare import for internals (#​14506)

v2.43.0

Compare Source

Minor Changes
Patch Changes
  • fix: ensure __SVELTEKIT_PAYLOAD__.data is accessed safely (#​14491)

  • fix: create separate cache entries for non-exported remote function queries (#​14499)

v2.42.2

Compare Source

Patch Changes
  • fix: prevent loops in postbuild analysis phase (#​14450)

  • fix: handle nested object fields in form data (#​14469)

  • fix: robustify form helper types (#​14463)

  • fix: avoid running the init hook during builds if there's nothing to prerender (#​14464)

  • fix: ensure SSR rendering gets request store context (#​14476)

v2.42.1

Compare Source

Patch Changes
  • fix: ensure environment setup is in its own chunk (#​14441)

v2.42.0

Compare Source

Minor Changes
  • feat: enhance remote form functions with schema support, input and issues properties (#​14383)

  • breaking: remote form functions get passed a parsed POJO instead of a FormData object now (#​14383)

v2.41.0

Compare Source

Minor Changes
  • feat: add %sveltekit.version% to app.html (#​12132)
Patch Changes
  • fix: allow remote functions to return custom types serialized with transport hooks (#​14435)

  • fix: fulfil beforeNavigate complete when redirected (#​12896)

v2.40.0

Compare Source

Minor Changes
  • feat: include event property on popstate/link/form navigation (#​14307)
Patch Changes
  • fix: respect replaceState/keepFocus/noScroll when a navigation results in a redirect (#​14424)

  • fix: invalidate preload cache when invalidateAll is true (#​14420)

v2.39.1

Compare Source

Patch Changes
  • fix: more robust remote function code transformation (#​14418)

v2.39.0

Compare Source

Minor Changes
  • feat: lazy discovery of remote functions (#​14293)
Patch Changes
  • fix: layout load data not serialized on error page (#​14395)

  • fix: fail prerendering when remote function fails (#​14365)

  • fix: treat handle hook redirect as part of remote function call as json redirect (#​14362)

v2.38.1

Compare Source

Patch Changes
  • fix: enable redirects from queries (#​14400)

  • fix: remove empty nodes from serialized server load data (#​14404)

  • fix: allow commands from within endpoints (#​14343)

v2.38.0

Compare Source

Minor Changes
  • feat: add new remote function query.batch (#​14272)

v2.37.1

Compare Source

Patch Changes
  • fix: serialize server load data before passing to universal load, to handle mutations and promises (#​14298)

  • fix: resolve_route prevent dropping a trailing slash of id (#​14294)

  • fix: assign correct status code to form submission error on the client (#​14345)

  • fix: un-proxy form.result (#​14346)

v2.37.0

Compare Source

Minor Changes
  • feat: automatically resolve query.refresh() promises on the server (#​14332)

  • feat: allow query.set() to be called on the server (#​14304)

Patch Changes
  • fix: disable CSRF checks in dev (#​14335)

  • fix: allow redirects to external URLs from within form functions (#​14329)

  • fix: add type definitions for query.set() method to override the value of a remote query function (#​14303)

  • fix: ensure uniqueness of form.for(...) across form functions (#​14327)

v2.36.3

Compare Source

Patch Changes
  • fix: bump devalue (#​14323)

  • chore: consolidate dev checks to use esm-env instead of a __SVELTEKIT_DEV__ global (#​14308)

  • fix: reset form inputs by default when using remote form functions (#​14322)

v2.36.2

Compare Source

Patch Changes
  • chore: make config deprecation warnings more visible (#​14281)

  • chore: remove redundant Not Found error message (#​14289)

  • chore: deprecate csrf.checkOrigin in favour of csrf.trustedOrigins: ['*'] (#​14281)

v2.36.1

Compare Source

Patch Changes
  • fix: ensure importing from $app/navigation works in test files (#​14195)

v2.36.0

Compare Source

Minor Changes
  • feat: add csrf.trustedOrigins configuration (#​14021)
Patch Changes
  • fix: correctly decode custom types streamed from a server load function (#​14261)

  • fix: add trailing slash pathname when generating typed routes (#​14065)

v2.35.0

Compare Source

Minor Changes
  • feat: better server-side error logging (#​13990)
Patch Changes
  • fix: ensure static error page is loaded correctly for custom user errors (#​13952)

v2.34.1

Compare Source

Patch Changes
  • fix: support multiple cookies with the same name across different paths and domains (b2c5d02)

  • fix: add link header when preloading font (#​14200)

  • fix: cookies.get(...) returns undefined for a just-deleted cookie (b2c5d02)

  • fix: load env before prerender (c5f7139)

v2.34.0

Compare Source

Minor Changes
  • feat: allow dynamic env access during prerender (#​14243)
Patch Changes
  • fix: clone fetch responses so that headers are mutable (#​13942)

  • fix: serialize server load data before passing to universal load, to handle mutations (#​14268)

  • fix: allow asset(...) to be used with imported assets (#​14270)

v2.33.1

Compare Source

Patch Changes
  • fix: make paths in .css assets relative (#​14262)

  • fix: avoid copying SSR stylesheets to client assets (#​13069)

v2.33.0

Compare Source

Minor Changes
  • feat: configure error reporting when routes marked as prerendable were not prerendered (#​11702)
Patch Changes
  • fix: use correct flag for server tracing (#​14250)

  • fix: correct type names for new handleUnseenRoutes option (#​14254)

  • chore: Better docs and error message for missing @opentelemetry/api dependency (#​14250)

v2.32.0

Compare Source

Minor Changes
  • feat: inline load fetch response.body stream data as base64 in page (#​11473)
Patch Changes
  • fix: better error when .remote.ts files are used without the experimental.remoteFunctions flag (#​14225)

v2.31.1

Compare Source

Patch Changes
  • fix: pass options to resolve in resolveId hook (#​14223)

v2.31.0

Compare Source

Minor Changes
  • feat: OpenTelemetry tracing for handle, sequence, form actions, remote functions, and load functions running on the server (#​13899)

  • feat: add instrumentation.server.ts for tracing and observability setup (#​13899)

v2.30.1

Compare Source

Patch Changes
  • chore: generate $app/types in a more Typescript-friendly way (#​14207)

v2.30.0

Compare Source

Minor Changes
  • feat: allow to specify options for the service worker in svelte.config.js (#​13578)
Patch Changes
  • fix: ensure buttonProps.enhance works on buttons with nested text (#​14199)

  • fix: pass validation issues specifically to avoid non-enumerable spreading error (#​14197)

v2.29.1

Compare Source

Patch Changes
  • chore: allow remote functions in all of the src directory (#​14198)

v2.29.0

Compare Source

Minor Changes
  • feat: add a kit.files.src option (#​14152)
Patch Changes
  • fix: don't treat $lib/server.ts or $lib/server_whatever.ts as server-only modules, only $lib/server/** (#​14191)

  • fix: make illegal server-only import errors actually useful (#​14155)

  • chore: deprecate config.kit.files options (#​14152)

  • fix: avoid warning if page options in a Svelte file belongs to a comment (#​14180)

v2.28.0

Compare Source

Minor Changes
  • feat: add RouteId and RouteParams to NavigationTarget interface (#​14167)

  • feat: add pending property to forms and commands (#​14137)

Patch Changes
  • fix: fetch imported assets during prerender (#​12201)

  • chore: refactor redundant base64 encoding/decoding functions (#​14160)

  • fix: use correct cache result when fetching same url multiple times (#​12355)

  • fix: don't refresh queries automatically when running commands (#​14170)

  • fix: avoid writing remote function bundle to disk when treeshaking prerendered queries (#​14161)

v2.27.3

Compare Source

Patch Changes
  • chore: add .git to the end of package.json repository url (#​14134)

v2.27.2

Compare Source

Patch Changes
  • fix: ensure form() remote functions work when the app is configured to a single output (#​14127)

  • fix: use the configured base path when calling remote functions from the client (#​14106)

v2.27.1

Compare Source

Patch Changes
  • fix: correctly type remote function input parameters from a schema (#​14098)

  • fix: match URL-encoded newlines in rest route params (#​14102)

  • fix: correctly spell server-side in error messages (#​14101)

v2.27.0

Compare Source

Minor Changes

v2.26.1

Compare Source

Patch Changes
  • fix: posixify internal app server path (#​14049)

  • fix: ignore route groups when generating typed routes (#​14050)

v2.26.0

Compare Source

Minor Changes
  • feat: better type-safety for page.route.id, page.params, page.url.pathname and various other places (#​13864)

  • feat: resolve(...) and asset(...) helpers for resolving paths (#​13864)

  • feat: Add $app/types module with Asset, RouteId, Pathname, ResolvedPathname RouteParams<T> and LayoutParams<T> (#​13864)

v2.25.2

Compare Source

Patch Changes
  • fix: correctly set URL when navigating during an ongoing navigation (#​14004)

v2.25.1

Compare Source

Patch Changes
  • fix: add missing params property (#​14012)

v2.25.0

Compare Source

Minor Changes
  • feat: support asynchronous read implementations from adapters (#​13859)
Patch Changes
  • fix: log when no Svelte config file has been found to avoid confusion (#​14001)

v2.24.0

Compare Source

Minor Changes
  • feat: typed params prop for page/layout components (#​13999)
Patch Changes
  • fix: treeshake internal storage.get helper (#​13998)

v2.23.0

Compare Source

Minor Changes
  • feat: support svelte.config.ts (#​13935)

    NOTE

    Your runtime has to support importing TypeScript files for svelte.config.ts to work.
    In Node.js, the feature is supported with the --experimental-strip-types flag starting in Node 22.6.0 and supported without a flag starting in Node 23.6.0.

Patch Changes
  • fix: extend vite-plugin-svelte's Config type instead of duplicating it (#​13982)

  • fix: regression with rolldown-vite not bundling a single JS file for single and inline apps (#​13941)

v2.22.5

Compare Source

Patch Changes
  • fix: re-add @sveltejs/kit to optimizeDeps.exclude (#​13983)

v2.22.4

Compare Source

Patch Changes
  • fix: force $app/* modules to be bundled (#​13977)

v2.22.3

Compare Source

Patch Changes
  • fix: don't bundle @sveltejs/kit (#​13971)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@sveltejs/kit](https://svelte.dev) ([source](https://github.com/sveltejs/kit/tree/HEAD/packages/kit)) | [`2.22.2` → `3.0.1`](https://renovatebot.com/diffs/npm/@sveltejs%2fkit/2.22.2/3.0.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@sveltejs%2fkit/3.0.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sveltejs%2fkit/2.22.2/3.0.1?slim=true) | --- ### Release Notes <details> <summary>sveltejs/kit (@&#8203;sveltejs/kit)</summary> ### [`v3.0.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#301) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@3.0.0...@sveltejs/kit@3.0.1) ##### Patch Changes - fix: ensure relative imports in generated types work with `nodenext` module resolution ([#&#8203;17351](https://github.com/sveltejs/kit/pull/17351)) ### [`v3.0.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#300) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.70.3...@sveltejs/kit@3.0.0) ##### Major Changes - breaking: move remote function types to `$app/server` ([#&#8203;16740](https://github.com/sveltejs/kit/pull/16740)) - breaking: remove `experimental.handleRenderingErrors` flag ([#&#8203;16265](https://github.com/sveltejs/kit/pull/16265)) - breaking: make `getRequest` and `setResponse` synchronous ([#&#8203;16280](https://github.com/sveltejs/kit/pull/16280)) - breaking: TypeScript 6 is now the minimum required version ([#&#8203;15930](https://github.com/sveltejs/kit/pull/15930)) - breaking: refresh all load functions/queries when clicking a link to the current URL ([#&#8203;16572](https://github.com/sveltejs/kit/pull/16572)) - breaking: move remote function types to `$app/server` ([#&#8203;16764](https://github.com/sveltejs/kit/pull/16764)) - breaking: upgrade to `cookie` v2. Cookie names must now contain only ASCII characters ([#&#8203;13386](https://github.com/sveltejs/kit/pull/13386)) - breaking: require Node 22 or newer ([#&#8203;12548](https://github.com/sveltejs/kit/pull/12548)) - major: error when a client-requested single-flight mutation isn't respected by the server, allow the server to explicitly ignore refreshes ([#&#8203;16892](https://github.com/sveltejs/kit/pull/16892)) - breaking: remove the `preloadStrategy` option. `modulepreload` will always be used ([#&#8203;15256](https://github.com/sveltejs/kit/pull/15256)) - breaking: default the cookie `path` option to `'/'` ([#&#8203;15398](https://github.com/sveltejs/kit/pull/15398)) - breaking: remove `@sveltejs/kit/node/polyfills` ([#&#8203;15430](https://github.com/sveltejs/kit/pull/15430)) - breaking: add `config.kit.output.linkHeaderPreload` to preload using the `Link` header ([#&#8203;15939](https://github.com/sveltejs/kit/pull/15939)) - breaking: require `@sveltejs/vite-plugin-svelte` v7 ([#&#8203;15371](https://github.com/sveltejs/kit/pull/15371)) - breaking: make `page.url` immutable on a type level ([#&#8203;16256](https://github.com/sveltejs/kit/pull/16256)) - breaking: remove `base`, `assets`, and `resolveRoute` from `$app/paths` ([#&#8203;15507](https://github.com/sveltejs/kit/pull/15507)) - breaking: remove `createEntries` from the `Builder` object passed to adapter functions ([#&#8203;15509](https://github.com/sveltejs/kit/pull/15509)) - breaking: return no content for 204 responses ([#&#8203;16200](https://github.com/sveltejs/kit/pull/16200)) - breaking: rename `Pathname` type to `Path` and `Asset` to `AssetPath` ([#&#8203;16430](https://github.com/sveltejs/kit/pull/16430)) breaking: remove leading `/` from `Path` and `AssetPath` - breaking: `handle`'s `resolve` is now typed to always return a `Promise` ([#&#8203;16352](https://github.com/sveltejs/kit/pull/16352)) - breaking: remove `Server` constructor and `SSRManifest` from public types ([#&#8203;16876](https://github.com/sveltejs/kit/pull/16876)) - breaking: require Svelte config options to be passed through the Vite plugin ([#&#8203;16007](https://github.com/sveltejs/kit/pull/16007)) - breaking: form action responses now use the HTTP status code returned from `fail` ([#&#8203;16200](https://github.com/sveltejs/kit/pull/16200)) - breaking: write tsconfig to `node_modules/$app/tsconfig` ([#&#8203;16458](https://github.com/sveltejs/kit/pull/16458)) - breaking: move `defineParams` and associated types to `@sveltejs/kit/params` ([#&#8203;16716](https://github.com/sveltejs/kit/pull/16716)) - breaking: remove the deprecated CSRF `checkOrigin` option in favor of `trustedOrigins` ([#&#8203;15437](https://github.com/sveltejs/kit/pull/15437)) - breaking: the `delta` property now only exists for `popstate` navigation events ([#&#8203;15522](https://github.com/sveltejs/kit/pull/15522)) - breaking: change `form.error` type from `any` to `App.Error | undefined` ([#&#8203;16245](https://github.com/sveltejs/kit/pull/16245)) - breaking: remove deprecated `pragma` header in version polling for improved CORS support ([#&#8203;15428](https://github.com/sveltejs/kit/pull/15428)) - breaking: `goto` now rejects when called with a URL that does not resolve to a route within the app, matching the existing behaviour for external URLs ([#&#8203;16164](https://github.com/sveltejs/kit/pull/16164)) - breaking: run all errors through the `handleError` hook ([#&#8203;16664](https://github.com/sveltejs/kit/pull/16664)) - breaking: require Svelte 5.56.4 or newer ([#&#8203;15371](https://github.com/sveltejs/kit/pull/15371)) - breaking: error on `event.url`, `event.params` and `event.route` access inside queries ([#&#8203;16452](https://github.com/sveltejs/kit/pull/16452)) - breaking: enhanced cross-page form actions now navigate to the action page on success and failure, matching native form behavior ([#&#8203;16684](https://github.com/sveltejs/kit/pull/16684)) - breaking: delete `$service-worker` module ([#&#8203;16450](https://github.com/sveltejs/kit/pull/16450)) - breaking: move `defineEnvVars` to `@sveltejs/kit/env` ([#&#8203;16375](https://github.com/sveltejs/kit/pull/16375)) - breaking: nested server-only directories ([#&#8203;15685](https://github.com/sveltejs/kit/pull/15685)) - feat: allow adapters to provide additional Vite plugins ([#&#8203;16206](https://github.com/sveltejs/kit/pull/16206)) - breaking: replace the `$lib` alias with `#lib` and remove `files.lib` config. ([#&#8203;16360](https://github.com/sveltejs/kit/pull/16360)) - breaking: remove `#lib` definition from `paths`; requires explicit module extensions as a result ([#&#8203;16736](https://github.com/sveltejs/kit/pull/16736)) - chore: change `error`, `isHttpError`, `redirect`, and `isRedirect` to refer to public type instead of internal class ([#&#8203;13036](https://github.com/sveltejs/kit/pull/13036)) - breaking: move hooks-related types to `@sveltejs/kit/hooks` ([#&#8203;16737](https://github.com/sveltejs/kit/pull/16737)) - breaking: add 'error' result type to `preloadData` ([#&#8203;12579](https://github.com/sveltejs/kit/pull/12579)) - breaking: detect new deployments on data, remote, and form action responses, tab focus, and visibility change, and default `version.pollInterval` to 1 hour ([#&#8203;16496](https://github.com/sveltejs/kit/pull/16496)) - breaking: disallow cross-origin form submissions without a `Content-Type` header ([#&#8203;16347](https://github.com/sveltejs/kit/pull/16347)) - breaking: Server-only directories (`/server/` in the path) are now treated as server-only everywhere inside the project (except `src/routes` and the assets directory) ([#&#8203;16360](https://github.com/sveltejs/kit/pull/16360)) - breaking: `config` exported from a universal route file takes precedence over a server one ([#&#8203;16400](https://github.com/sveltejs/kit/pull/16400)) - breaking: require Vite 8. Provides new functionality even for existing Vite 8 users such as faster builds with Vite hook filters and more powerful SvelteKit adapters with the Vite environment API ([#&#8203;15371](https://github.com/sveltejs/kit/pull/15371)) - breaking: remove `data-sveltekit-*` option `'off'` in favour of `false` ([#&#8203;15907](https://github.com/sveltejs/kit/pull/15907)) - breaking: move tracing out of the experimental namespace and remove the instrumentation flag ([#&#8203;16260](https://github.com/sveltejs/kit/pull/16260)) - breaking: add `kit.paths.origin` config option, remove `kit.prerender.origin` and the `adapter-node` `ORIGIN` environment variable ([#&#8203;16161](https://github.com/sveltejs/kit/pull/16161)) - breaking: move `Page`, `ReadonlyURL` and `ReadonlyURLSearchParams` from `@sveltejs/kit` to `$app/state` ([#&#8203;16694](https://github.com/sveltejs/kit/pull/16694)) - breaking: remove `$app/stores` ([#&#8203;15499](https://github.com/sveltejs/kit/pull/15499)) - breaking: add `refreshAll` and deprecate `invalidateAll` ([#&#8203;16289](https://github.com/sveltejs/kit/pull/16289)) - breaking: reject query parameters beginning with `x-sveltekit-` ([#&#8203;17125](https://github.com/sveltejs/kit/pull/17125)) - breaking: disallow `*.remote.ts/js` files unless `experimental.remoteFunctions` is enabled ([#&#8203;16247](https://github.com/sveltejs/kit/pull/16247)) - breaking: replace the `noScroll` and `keepFocus` options of `goto` with a single `reset` option, and the `data-sveltekit-noscroll` and `data-sveltekit-keepfocus` attributes with `data-sveltekit-reset` ([#&#8203;16558](https://github.com/sveltejs/kit/pull/16558)) - breaking: don't abort navigation when calling `invalidate(All)` during navigation ([#&#8203;16188](https://github.com/sveltejs/kit/pull/16188)) - breaking: consistent special filename patterns ([#&#8203;16382](https://github.com/sveltejs/kit/pull/16382)) - breaking: allow `handleError` to influence status code ([#&#8203;16162](https://github.com/sveltejs/kit/pull/16162)) - breaking: delegate CORS handling to Vite for static directory requests during development ([#&#8203;16357](https://github.com/sveltejs/kit/pull/16357)) - breaking: require `vite@^8.0.12`, the first Vite 8 release bundling stable `rolldown` 1.0.0 ([#&#8203;16134](https://github.com/sveltejs/kit/pull/16134)) - breaking: only include routes with a `+page` or `+server` in `RouteId` ([#&#8203;16580](https://github.com/sveltejs/kit/pull/16580)) - breaking: require Node 22.17 ([#&#8203;16597](https://github.com/sveltejs/kit/pull/16597)) - breaking: deprecate `error(status, {...})` in favour of `error(status, message, {...})` ([#&#8203;16540](https://github.com/sveltejs/kit/pull/16540)) - breaking: replace the `builder.generateManifest` with `builder.generateServerInstance` and `builder.manifest` ([#&#8203;16875](https://github.com/sveltejs/kit/pull/16875)) - breaking: forbid external redirects by default ([#&#8203;16198](https://github.com/sveltejs/kit/pull/16198)) - breaking: separate adapter Vite plugins into `pre` and `post` ([#&#8203;16711](https://github.com/sveltejs/kit/pull/16711)) - breaking: remove param files in folder in favor of `params.js/ts` file ([#&#8203;16189](https://github.com/sveltejs/kit/pull/16189)) - breaking: move env-related types to `@sveltejs/kit/env` ([#&#8203;16739](https://github.com/sveltejs/kit/pull/16739)) - breaking: `preloadCode` now takes a route ID (e.g. `/blog/[slug]`) instead of a pathname. Route IDs are not prefixed with `paths.base` ([#&#8203;16576](https://github.com/sveltejs/kit/pull/16576)) - breaking: move `BeforeNavigate`, `OnNavigate`, `AfterNavigate`, `Navigation`, `NavigationTarget`, `NavigationType`, `GotoOptions` and the `Navigation*` variant types from `@sveltejs/kit` to `$app/navigation` ([#&#8203;16694](https://github.com/sveltejs/kit/pull/16694)) - breaking: move `ActionResult` and `SubmitFunction` from `@sveltejs/kit` to `$app/forms` ([#&#8203;16694](https://github.com/sveltejs/kit/pull/16694)) - breaking: remove `handleValidationError` and pass remote function validation errors to `handleError` with `kind: 'validation'` ([#&#8203;16672](https://github.com/sveltejs/kit/pull/16672)) - breaking: remove deprecated `.run()` method from live queries ([#&#8203;16573](https://github.com/sveltejs/kit/pull/16573)) ##### Minor Changes - feat: allow hyphens in param and matcher names ([#&#8203;16284](https://github.com/sveltejs/kit/pull/16284)) - feat: add `$app/manifest` module with `immutable`, `assets`, `prerendered`, and `routes` exports ([#&#8203;16372](https://github.com/sveltejs/kit/pull/16372)) - feat: ignore files with + prefix if they contain test/spec/stories ([#&#8203;16715](https://github.com/sveltejs/kit/pull/16715)) - feat: add `ErrorProps` to generated types ([#&#8203;16272](https://github.com/sveltejs/kit/pull/16272)) - feat: support sourcemaps in production ([#&#8203;16412](https://github.com/sveltejs/kit/pull/16412)) - feat: return the list of compressed files from `builder.compress` ([#&#8203;16566](https://github.com/sveltejs/kit/pull/16566)) - feat: better response logging ([#&#8203;16744](https://github.com/sveltejs/kit/pull/16744)) - feat: warn when tsconfig doesn't exclude service worker ([#&#8203;16645](https://github.com/sveltejs/kit/pull/16645)) - feat: validate that all remote form fields were created with form.fields.foo.as(...) ([#&#8203;16331](https://github.com/sveltejs/kit/pull/16331)) - feat: support function validators for environment variables ([#&#8203;16402](https://github.com/sveltejs/kit/pull/16402)) - feat: use `type: 'module'` for service worker registrations ([#&#8203;16169](https://github.com/sveltejs/kit/pull/16169)) - feat: allow adapters to receive the Svelte config as a function argument when adding Vite plugins ([#&#8203;16986](https://github.com/sveltejs/kit/pull/16986)) - feat: add shallow routing to `goto` and deprecate `pushState` and `replaceState` ([#&#8203;16449](https://github.com/sveltejs/kit/pull/16449)) - feat: abort `request.signal` when the response closes prematurely, via a new `response` option for `getRequest` ([#&#8203;16793](https://github.com/sveltejs/kit/pull/16793)) - feat: make `$app/paths` importable in service workers ([#&#8203;16441](https://github.com/sveltejs/kit/pull/16441)) - feat: pass the project-relative source `filename` to the `preload` filter for fonts ([#&#8203;16443](https://github.com/sveltejs/kit/pull/16443)) - feat: preserve page state set through `goto(..., { state, persistState: true })` across reloads ([#&#8203;16449](https://github.com/sveltejs/kit/pull/16449)) - feat: reinstate `$env/static/private`, `$env/dynamic/private`, `$env/static/public`, `$env/dynamic/public` and `$app/environment` as deprecated aliases for `$app/env/private` `$app/env/public` and `$app/env` ([#&#8203;16334](https://github.com/sveltejs/kit/pull/16334)) - feat: add `page` and `endpoint` booleans to `$app/manifest`'s `routes`, and export a `ManifestRoute` type ([#&#8203;16594](https://github.com/sveltejs/kit/pull/16594)) - feat: `$app/service-worker` module ([#&#8203;16458](https://github.com/sveltejs/kit/pull/16458)) - feat: resolve paths using the Vite config `root` option instead of `process.cwd()` to better support monorepo configurations such as Vitest workspaces ([#&#8203;15469](https://github.com/sveltejs/kit/pull/15469)) - feat: better error logging ([#&#8203;16374](https://github.com/sveltejs/kit/pull/16374)) - feat: add `PageRouteId` and `EndpointRouteId` to `$app/types` ([#&#8203;16594](https://github.com/sveltejs/kit/pull/16594)) - feat: better tsconfig validation ([#&#8203;16458](https://github.com/sveltejs/kit/pull/16458)) - feat: add `dirty()` property to form fields ([#&#8203;16208](https://github.com/sveltejs/kit/pull/16208)) - feat: support the `QUERY` HTTP method in `+server.js` ([#&#8203;16782](https://github.com/sveltejs/kit/pull/16782)) - feat: allow adapters to override `getRequest` and `setResponse` during `vite dev` and `vite preview` ([#&#8203;16753](https://github.com/sveltejs/kit/pull/16753)) - chore: deprecate `Response` helpers in favor of platform-provided alternatives ([#&#8203;15448](https://github.com/sveltejs/kit/pull/15448)) - feat: add `cookies.parse` method ([#&#8203;16203](https://github.com/sveltejs/kit/pull/16203)) - chore: deprecate `export const snapshot` in favour of the `snapshot` helper ([#&#8203;16687](https://github.com/sveltejs/kit/pull/16687)) - feat: add `snapshot` helper to `$app/navigation` ([#&#8203;16685](https://github.com/sveltejs/kit/pull/16685)) - feat: support custom values in `page.state` via `transport` hook ([#&#8203;16662](https://github.com/sveltejs/kit/pull/16662)) - fix: default cookies to `secure` to `false` during development ([#&#8203;16462](https://github.com/sveltejs/kit/pull/16462)) - feat: warn when naively proxying requests that result in responses with a `content-encoding` header ([#&#8203;16633](https://github.com/sveltejs/kit/pull/16633)) - feat: accept the checked state as a third argument to `.as('radio', ...)` and `.as('checkbox', ...)` so that these inputs reset to it after a submission ([#&#8203;16926](https://github.com/sveltejs/kit/pull/16926)) - feat: add an `applyReroute` helper for adapters that support split serverless function deployments ([#&#8203;16665](https://github.com/sveltejs/kit/pull/16665)) ##### Patch Changes - fix: prevent scheme-like path segments from causing off-site trailing-slash redirects ([#&#8203;17294](https://github.com/sveltejs/kit/pull/17294)) - chore: share the action error result between form actions and remote forms ([#&#8203;16835](https://github.com/sveltejs/kit/pull/16835)) - fix: persist global app state across module graph reloads ([#&#8203;16663](https://github.com/sveltejs/kit/pull/16663)) - fix: generate valid `Path` types for routes with optional or rest params, several params in one segment, or escape sequences ([#&#8203;16577](https://github.com/sveltejs/kit/pull/16577)) - fix: coerce values typed into remote form fields, and only apply the default given to `.as()` until the field is edited ([#&#8203;16939](https://github.com/sveltejs/kit/pull/16939)) - fix: blur focused SVG elements before the DOM update on navigation ([#&#8203;16983](https://github.com/sveltejs/kit/pull/16983)) - fix: support bigint params in server-side route resolution ([#&#8203;17130](https://github.com/sveltejs/kit/pull/17130)) - chore: build streamed responses from async generators ([#&#8203;16847](https://github.com/sveltejs/kit/pull/16847)) - fix: generate types when dev server starts ([#&#8203;17034](https://github.com/sveltejs/kit/pull/17034)) - fix: allow `undefined` values to be passed to form field `.as(...)` where applicable ([#&#8203;15681](https://github.com/sveltejs/kit/pull/15681)) - fix: respect `paths.relative` during development for client files ([#&#8203;17053](https://github.com/sveltejs/kit/pull/17053)) - fix: validate prerender concurrency ([#&#8203;17145](https://github.com/sveltejs/kit/pull/17145)) - chore: deprecate `builder.rimraf` and `builder.mkdirp` in favour of `node:fs` methods ([#&#8203;16610](https://github.com/sveltejs/kit/pull/16610)) - fix: manipulate stack trace for errors that happen while generating prerender inputs ([#&#8203;17113](https://github.com/sveltejs/kit/pull/17113)) - fix: don't treat callable standard schemas as function param matchers ([#&#8203;16403](https://github.com/sveltejs/kit/pull/16403)) - fix: prevent non-redirect enhanced form results from navigating to another origin ([#&#8203;17293](https://github.com/sveltejs/kit/pull/17293)) - fix: clarify circular imports from `src/env` ([#&#8203;17014](https://github.com/sveltejs/kit/pull/17014)) - fix: keep memory flat when precompressing many files ([#&#8203;16993](https://github.com/sveltejs/kit/pull/16993)) - fix: render remote form actions while prerendering ([#&#8203;17139](https://github.com/sveltejs/kit/pull/17139)) - fix: ignore Vitest browser loader HTML transforms ([#&#8203;17092](https://github.com/sveltejs/kit/pull/17092)) - fix: prevent failed link preloads from causing unhandled promise rejections in production ([#&#8203;17181](https://github.com/sveltejs/kit/pull/17181)) - fix: resolve generated rootDirs from the project root ([#&#8203;17242](https://github.com/sveltejs/kit/pull/17242)) - fix: generate route resolution modules as siblings of `.html` pages ([#&#8203;16674](https://github.com/sveltejs/kit/pull/16674)) - perf: parse large streamed frames in linear time ([#&#8203;16489](https://github.com/sveltejs/kit/pull/16489)) - fix: keep at most one pending body read at a time when deserializing binary forms ([#&#8203;16783](https://github.com/sveltejs/kit/pull/16783)) - fix: escape cache-control headers in prerendered HTML ([#&#8203;17293](https://github.com/sveltejs/kit/pull/17293)) - fix: decode all numeric character references, including above `ffff`, when crawling prerendered pages ([#&#8203;16611](https://github.com/sveltejs/kit/pull/16611)) - fix: enforce request body size limits when Content-Type is absent ([#&#8203;17127](https://github.com/sveltejs/kit/pull/17127)) - fix: include queries refreshed from within another query in the serialized response ([#&#8203;16461](https://github.com/sveltejs/kit/pull/16461)) - fix: reject malformed streamed data encoding ([#&#8203;16423](https://github.com/sveltejs/kit/pull/16423)) - perf: cache the default cookie header parse and avoid allocations in `cookies.get` ([#&#8203;16341](https://github.com/sveltejs/kit/pull/16341)) - fix: exclude deleted cookies from `cookies.getAll()` so it stays consistent with `cookies.get()` ([#&#8203;16297](https://github.com/sveltejs/kit/pull/16297)) - fix: hide stack traces for internal errors like 404s ([#&#8203;16411](https://github.com/sveltejs/kit/pull/16411)) - chore: deduplicate repeated CSP directive handling ([#&#8203;16498](https://github.com/sveltejs/kit/pull/16498)) - fix: render the nearest error page when a form submission receives a non-ActionResult error response ([#&#8203;16308](https://github.com/sveltejs/kit/pull/16308)) - chore: bump `mrmime` to 2.0.1 ([#&#8203;16745](https://github.com/sveltejs/kit/pull/16745)) - fix: correctly implement Vite plugin hook filters ([#&#8203;16760](https://github.com/sveltejs/kit/pull/16760)) - fix: ignore nested outDir files outside generated ([#&#8203;17150](https://github.com/sveltejs/kit/pull/17150)) - fix: defer `query.refresh()` in server commands until after the command body completes ([#&#8203;16225](https://github.com/sveltejs/kit/pull/16225)) - fix: drain unconsumed request bodies so keep-alive connections don't hang ([#&#8203;16170](https://github.com/sveltejs/kit/pull/16170)) - fix: keep `history.scrollRestoration` set to `manual` when leaving the page, so a document restored from the back/forward cache does not fall back to browser scroll restoration ([#&#8203;17244](https://github.com/sveltejs/kit/pull/17244)) - fix: resolve service worker and `tsconfig.json` based on Vite `root` setting ([#&#8203;16229](https://github.com/sveltejs/kit/pull/16229)) - fix: rebuild the dev manifest when route files disappear during an incremental update ([#&#8203;16643](https://github.com/sveltejs/kit/pull/16643)) - breaking: populate env vars before `instrumentation.server.js` is evaluated and update the adapter instrumentation API ([#&#8203;16303](https://github.com/sveltejs/kit/pull/16303)) - fix: only print prerender progress newline when necessary ([#&#8203;16766](https://github.com/sveltejs/kit/pull/16766)) - perf: match only unpaired surrogates when escaping HTML ([#&#8203;16407](https://github.com/sveltejs/kit/pull/16407)) - fix: treat `data:` protocol URLs as external for redirect ([#&#8203;16392](https://github.com/sveltejs/kit/pull/16392)) - chore: deduplicate request hashing for serialized fetch responses ([#&#8203;16499](https://github.com/sveltejs/kit/pull/16499)) - fix: don't treat `Object.prototype` members as param matchers during validation ([#&#8203;16612](https://github.com/sveltejs/kit/pull/16612)) - fix: generate a `never` `Path` type when there are no routes ([#&#8203;17228](https://github.com/sveltejs/kit/pull/17228)) - fix: follow HTTP redirects from authentication proxies when enhancing form submissions ([#&#8203;17106](https://github.com/sveltejs/kit/pull/17106)) - fix: don't report empty environment variables as missing ([#&#8203;16401](https://github.com/sveltejs/kit/pull/16401)) - chore: generate the env modules in a single pass ([#&#8203;16833](https://github.com/sveltejs/kit/pull/16833)) - fix: externalize `@opentelemetry/api` to prevent bundler chunk colocation between `instrumentation.server.js` and application code ([#&#8203;16302](https://github.com/sveltejs/kit/pull/16302)) - fix: support form fields named after Object prototype properties ([#&#8203;17136](https://github.com/sveltejs/kit/pull/17136)) - fix: exclude routes without a page or endpoint from `routes` in `$app/manifest`, and remove directories with no route files from `LayoutParams` ([#&#8203;16588](https://github.com/sveltejs/kit/pull/16588)) - fix: record a history traversal before resolving its route ([#&#8203;16959](https://github.com/sveltejs/kit/pull/16959)) - fix: avoid Vite dev server reload on initial page request ([#&#8203;16553](https://github.com/sveltejs/kit/pull/16553)) - fix: don't set a `null` `accept-language` header on internal `fetch` sub-requests when the incoming request has none ([#&#8203;16527](https://github.com/sveltejs/kit/pull/16527)) - fix: reuse SSR-cached fetch responses during hydration when a cross-origin URL is not in canonical form ([#&#8203;16339](https://github.com/sveltejs/kit/pull/16339)) - fix: correctly detect prerendered paths in server `fetch` when `paths.base` is set ([#&#8203;16525](https://github.com/sveltejs/kit/pull/16525)) - chore: say what a valid remote form field name looks like when rejecting one ([#&#8203;16938](https://github.com/sveltejs/kit/pull/16938)) - chore: warn when remote form fields are enumerated in dev ([#&#8203;16940](https://github.com/sveltejs/kit/pull/16940)) - fix: populate `$app/env/*` dynamic variables in contexts that don't run the dev server, such as `vite-node` ([#&#8203;16223](https://github.com/sveltejs/kit/pull/16223)) - fix: resolve client manifest imports against the Vite root ([#&#8203;16803](https://github.com/sveltejs/kit/pull/16803)) - fix: properly handle Date objects in form.fields.set ([#&#8203;16168](https://github.com/sveltejs/kit/pull/16168)) - fix: return 404 for form actions and remote functions whose name is an `Object.prototype` member ([#&#8203;16072](https://github.com/sveltejs/kit/pull/16072)) - fix: no longer throw "An impossible situation occurred" when a server-only module is imported by both server and client code ([#&#8203;16257](https://github.com/sveltejs/kit/pull/16257)) - fix: respect Vite default log level ([#&#8203;16767](https://github.com/sveltejs/kit/pull/16767)) - fix: set the focus starting point without a fragment navigation, which leaked a `hashchange` to app listeners ([#&#8203;16992](https://github.com/sveltejs/kit/pull/16992)) - fix: keep a `form.for` instance registered when the derived that holds it disconnects and reconnects ([#&#8203;17230](https://github.com/sveltejs/kit/pull/17230)) - fix: make cookie options optional ([#&#8203;17201](https://github.com/sveltejs/kit/pull/17201)) - fix: don't duplicate remote modules in the generated manifest ([#&#8203;16532](https://github.com/sveltejs/kit/pull/16532)) - fix: evict hashed fetch cache entries after mutations ([#&#8203;17146](https://github.com/sveltejs/kit/pull/17146)) - chore: reuse base64 and text decoding helpers ([#&#8203;16608](https://github.com/sveltejs/kit/pull/16608)) - fix: explain the removal of `$lib` and `$service-worker` when their imports fail to resolve ([#&#8203;16635](https://github.com/sveltejs/kit/pull/16635)) - fix: tweak response logging for remote requests ([#&#8203;16865](https://github.com/sveltejs/kit/pull/16865)) - fix: correctly massage stack traces with async frames ([#&#8203;16633](https://github.com/sveltejs/kit/pull/16633)) - fix: mark `RequestEvent` properties as `readonly` ([#&#8203;16661](https://github.com/sveltejs/kit/pull/16661)) - fix: render the nearest `+error.svelte` at the depth it occupies when an error is thrown during rendering ([#&#8203;16526](https://github.com/sveltejs/kit/pull/16526)) - fix: support coordinate objects from image inputs in remote forms ([#&#8203;16944](https://github.com/sveltejs/kit/pull/16944)) - fix: revert route metadata caching to regenerate missing root-route types during sync ([#&#8203;17281](https://github.com/sveltejs/kit/pull/17281)) - chore: bump `@sveltejs/acorn-typescript` to 1.0.12 ([#&#8203;16745](https://github.com/sveltejs/kit/pull/16745)) - fix: update `match` parameter type ([#&#8203;16636](https://github.com/sveltejs/kit/pull/16636)) - fix: generate sourcemaps for remote modules ([#&#8203;16440](https://github.com/sveltejs/kit/pull/16440)) - fix: keep hash-router links on the current document when resolving paths ([#&#8203;17107](https://github.com/sveltejs/kit/pull/17107)) - fix: avoid empty getElementById() call on hash routing navigation ([#&#8203;16448](https://github.com/sveltejs/kit/pull/16448)) - fix: resolve every module entry point using `kit.moduleExtensions` ([#&#8203;17043](https://github.com/sveltejs/kit/pull/17043)) - fix: serve `.ico` files with `image/x-icon` Content-Type ([#&#8203;16234](https://github.com/sveltejs/kit/pull/16234)) - chore: bump `magic-string` to 1.1.0 ([#&#8203;16745](https://github.com/sveltejs/kit/pull/16745)) - fix: exclude inlined files from the page's `$app/manifest` immutable list ([#&#8203;16531](https://github.com/sveltejs/kit/pull/16531)) - fix: discard invalidation results when a navigation completes while they load ([#&#8203;16852](https://github.com/sveltejs/kit/pull/16852)) - fix: avoid client-side code being bundled by Cloudflare Wrangler ([#&#8203;16364](https://github.com/sveltejs/kit/pull/16364)) - fix: wait for the redirect navigation before remote form submissions resolve ([#&#8203;16765](https://github.com/sveltejs/kit/pull/16765)) - fix: record the mime types of prerendered paths in the server manifest ([#&#8203;16564](https://github.com/sveltejs/kit/pull/16564)) - fix: only require the `svelte-trusted-html` trusted-types policy when client-side code is shipped, allowing builds where all pages have `csr: false` ([#&#8203;16928](https://github.com/sveltejs/kit/pull/16928)) - chore: clarify which hooks run during server route resolution ([#&#8203;16397](https://github.com/sveltejs/kit/pull/16397)) - fix: yield to allow prerender updates to be visible ([#&#8203;16748](https://github.com/sveltejs/kit/pull/16748)) - fix: make `paths.origin` type looser ([#&#8203;16215](https://github.com/sveltejs/kit/pull/16215)) - chore: bump `devalue` to 5.9.0 ([#&#8203;16745](https://github.com/sveltejs/kit/pull/16745)) - feat: send periodic `keep-alive` SSE comments from `query.live` to prevent idle-timeout errors ([#&#8203;16063](https://github.com/sveltejs/kit/pull/16063)) - fix: send an explicit SSE Accept header for `query.live` requests to avoid buffering by proxies ([#&#8203;17104](https://github.com/sveltejs/kit/pull/17104)) - fix: don't touch the `query.live` stream controller after teardown, and make response cancellation observable via the generator's `request.signal` ([#&#8203;16790](https://github.com/sveltejs/kit/pull/16790)) - fix: print `builder.log.warn` messages to stderr, as documented ([#&#8203;17253](https://github.com/sveltejs/kit/pull/17253)) - fix: warn if hook files are spelled as "hook" instead of "hooks" ([#&#8203;16483](https://github.com/sveltejs/kit/pull/16483)) - fix: only suggest a `+` prefix for route filenames that are valid with the file's extension ([#&#8203;16837](https://github.com/sveltejs/kit/pull/16837)) - chore: only generate each route's resolution module once when prerendering ([#&#8203;16576](https://github.com/sveltejs/kit/pull/16576)) - fix: don't throw from remote form `validate()` if the form unmounts while it is waiting for a tick ([#&#8203;16720](https://github.com/sveltejs/kit/pull/16720)) - chore: share navigation completion between navigate and shallow routing ([#&#8203;16838](https://github.com/sveltejs/kit/pull/16838)) - fix: route dev-server response logging through Vite's logger so it respects `logLevel` and `customLogger` ([#&#8203;16858](https://github.com/sveltejs/kit/pull/16858)) - fix: skip clean fields when programmatically validating forms ([#&#8203;16208](https://github.com/sveltejs/kit/pull/16208)) - perf: skip import graph collection outside client environments ([#&#8203;16383](https://github.com/sveltejs/kit/pull/16383)) - breaking: experimental remote form `validate({ includeUntouched })` option is now `all` ([#&#8203;16208](https://github.com/sveltejs/kit/pull/16208)) - fix: rerun load functions when the number of values of a tracked search parameter changes ([#&#8203;16495](https://github.com/sveltejs/kit/pull/16495)) - chore: read build-time config from defines on the server instead of carrying it in `options` ([#&#8203;16873](https://github.com/sveltejs/kit/pull/16873)) - fix: avoid client build warning about externalising `node:async_hooks` ([#&#8203;16244](https://github.com/sveltejs/kit/pull/16244)) - chore: stop externalizing `cookie` dependency during build ([#&#8203;16936](https://github.com/sveltejs/kit/pull/16936)) - fix: reinstate `$app/environment` as an alias for `$app/env`, in case dependencies import it ([#&#8203;15964](https://github.com/sveltejs/kit/pull/15964)) - fix: preserve `paths.base` when `vite preview` redirects a prerendered page to the correct trailing slash ([#&#8203;16836](https://github.com/sveltejs/kit/pull/16836)) - fix: error when reading non-serialized `set-cookie` headers via `getSetCookie` in `load` ([#&#8203;16614](https://github.com/sveltejs/kit/pull/16614)) - fix: walk and copy directories without a stat per file ([#&#8203;16995](https://github.com/sveltejs/kit/pull/16995)) - perf: avoid quadratic remote form issue merging ([#&#8203;16493](https://github.com/sveltejs/kit/pull/16493)) - fix: widen remote form fields for union schemas and string enums ([#&#8203;16937](https://github.com/sveltejs/kit/pull/16937)) - chore: deprecate the `alias` option ([#&#8203;16470](https://github.com/sveltejs/kit/pull/16470)) - fix: don't attempt to serialize fetch responses when the request body is not a string or TypedArray ([#&#8203;16501](https://github.com/sveltejs/kit/pull/16501)) - fix: respond to `HEAD` requests without a body ([#&#8203;17036](https://github.com/sveltejs/kit/pull/17036)) - chore: replace deprecated Vite dev server APIs ([#&#8203;16961](https://github.com/sveltejs/kit/pull/16961)) - chore: iterate the query cache maps through a single generator ([#&#8203;16846](https://github.com/sveltejs/kit/pull/16846)) - fix: handle rejected streamed server data after delayed loads ([#&#8203;16268](https://github.com/sveltejs/kit/pull/16268)) - fix: don't crash on interactions inside a form whose controls shadow `nodeName` ([#&#8203;16769](https://github.com/sveltejs/kit/pull/16769)) - fix: don't replay a preloaded redirect when a later hop of the navigation returns to the route ([#&#8203;16955](https://github.com/sveltejs/kit/pull/16955)) - fix: prevent path traversal when previewing prerendered pages and data on Windows ([#&#8203;17293](https://github.com/sveltejs/kit/pull/17293)) - fix: settle a query's pending request in place when its value arrives through `set()` ([#&#8203;16958](https://github.com/sveltejs/kit/pull/16958)) - fix: render pages over sibling endpoints without GET or HEAD handlers ([#&#8203;16125](https://github.com/sveltejs/kit/pull/16125)) - fix: exit build workers after completing their tasks while allowing synchronous exit handlers to run ([#&#8203;17135](https://github.com/sveltejs/kit/pull/17135)) - fix: prevent infinite loops when server-side queries refresh each other in a cycle during the single-flight drain ([#&#8203;16461](https://github.com/sveltejs/kit/pull/16461)) - fix: populate `version` in service workers ([#&#8203;16434](https://github.com/sveltejs/kit/pull/16434)) - feat: add field.touched() helper to remote form fields ([#&#8203;14692](https://github.com/sveltejs/kit/pull/14692)) - fix: respect `paths.relative` for server-side route resolution imports ([#&#8203;17056](https://github.com/sveltejs/kit/pull/17056)) - fix: read the error status of `App.Error` in the `prerender` and `query.live` remote functions ([#&#8203;16529](https://github.com/sveltejs/kit/pull/16529)) - fix: resolve remote modules as external during dev prebundling so packages can re-export remote functions ([#&#8203;16426](https://github.com/sveltejs/kit/pull/16426)) - chore: standardize remote-function and shared form diagnostics ([#&#8203;17277](https://github.com/sveltejs/kit/pull/17277)) - fix: avoid `Promise.withResolvers` in client remote functions for older browser support ([#&#8203;16777](https://github.com/sveltejs/kit/pull/16777)) - fix: propagate errors from prerendered remote responses instead of re-running the function ([#&#8203;16535](https://github.com/sveltejs/kit/pull/16535)) - chore: remove unused helpers ([#&#8203;16834](https://github.com/sveltejs/kit/pull/16834)) - fix: allow reserved words (e.g. `delete`, `class`) as remote function export names ([#&#8203;16264](https://github.com/sveltejs/kit/pull/16264)) - fix: reset failed `<svelte:boundary>` on client navigation so a stale `+error.svelte` is torn down ([#&#8203;16296](https://github.com/sveltejs/kit/pull/16296)) - fix: clear `navigating` when a shallow popstate aborts an in-flight navigation ([#&#8203;17118](https://github.com/sveltejs/kit/pull/17118)) - fix: expand `[x+nn]` and `[u+nnnn]` escape sequences when resolving a route id to a pathname ([#&#8203;16570](https://github.com/sveltejs/kit/pull/16570)) - fix: respect user-set `server.cors` and `preview.cors` config instead of overriding them ([#&#8203;16924](https://github.com/sveltejs/kit/pull/16924)) - fix: respect the status returned from `handleError` on the fallback error page served to error-page sub-requests ([#&#8203;16528](https://github.com/sveltejs/kit/pull/16528)) - fix: restore scroll position after back-forward cache returns ([#&#8203;17255](https://github.com/sveltejs/kit/pull/17255)) - fix: warn if there are plugins using `transformIndexHtml` ([#&#8203;16394](https://github.com/sveltejs/kit/pull/16394)) - fix: refetch route-tracking server data when navigating away from an error page ([#&#8203;16381](https://github.com/sveltejs/kit/pull/16381)) - fix: allow routes to contain `[` and `]` via the `[x+5b]` and `[x+5d]` escapes ([#&#8203;16569](https://github.com/sveltejs/kit/pull/16569)) - chore: use `Response.json` instead of the deprecated `json` helper in runtime responses ([#&#8203;16804](https://github.com/sveltejs/kit/pull/16804)) - fix: recommend safe include and exclude patterns in tsconfig warning ([#&#8203;17102](https://github.com/sveltejs/kit/pull/17102)) - chore: remove dependency on kleur ([#&#8203;12548](https://github.com/sveltejs/kit/pull/12548)) - fix: prevent server-side self-fetch fallbacks from following redirects ([#&#8203;17293](https://github.com/sveltejs/kit/pull/17293)) - fix: serialize `query(...).set(...)`/`query(...).refresh()` values into the rendered HTML when called from within a query during SSR ([#&#8203;16461](https://github.com/sveltejs/kit/pull/16461)) - chore: configure the server runtime in one place, deprecate `Server` in favour of the `server` object written by `builder.generateServerInstance` ([#&#8203;17000](https://github.com/sveltejs/kit/pull/17000)) - chore: derive `content-length` from fixed response bodies in `setResponse` ([#&#8203;16794](https://github.com/sveltejs/kit/pull/16794)) - fix: correctly read zero-length files at the end of a binary form payload ([#&#8203;16783](https://github.com/sveltejs/kit/pull/16783)) - fix: reject fallback handlers on prerendered endpoints ([#&#8203;17140](https://github.com/sveltejs/kit/pull/17140)) - fix: don't destroy partial-line app output with the prerender progress line ([#&#8203;16750](https://github.com/sveltejs/kit/pull/16750)) - chore: remove virtual modules ([#&#8203;16813](https://github.com/sveltejs/kit/pull/16813)) - fix: surface prerender errors during development ([#&#8203;16507](https://github.com/sveltejs/kit/pull/16507)) - chore: bump `cookie` to 2.0.1 ([#&#8203;16745](https://github.com/sveltejs/kit/pull/16745)) - fix: detect `$app/server` and `$app/env/private` client imports when SvelteKit is installed inside the project root ([#&#8203;16648](https://github.com/sveltejs/kit/pull/16648)) - chore: read `options` from a single module instead of passing it through the server runtime ([#&#8203;16871](https://github.com/sveltejs/kit/pull/16871)) - fix: wait for the redirect navigation before prerendered remote functions resolve ([#&#8203;16765](https://github.com/sveltejs/kit/pull/16765)) - fix: sort directory entries when building the route manifest so node indices are deterministic across runtimes (e.g. Bun and Node) ([#&#8203;16074](https://github.com/sveltejs/kit/pull/16074)) - fix: skip unnecessary `version.json` checks if `updated.current` is already `true` ([#&#8203;16518](https://github.com/sveltejs/kit/pull/16518)) - fix: allow generation of $app/tsconfig without TypeScript installed ([#&#8203;16534](https://github.com/sveltejs/kit/pull/16534)) - chore: remove dependency on `set-cookie-parser` ([#&#8203;15384](https://github.com/sveltejs/kit/pull/15384)) - chore: share the nearest error page walk between client and server ([#&#8203;16774](https://github.com/sveltejs/kit/pull/16774)) - fix: fall back to the page's form actions when a sibling endpoint has no POST handler ([#&#8203;16349](https://github.com/sveltejs/kit/pull/16349)) - fix: record client output extensions in `builder.mimeTypes` ([#&#8203;16908](https://github.com/sveltejs/kit/pull/16908)) - perf: use a `Set` to check element ids when validating fragment links during prerendering ([#&#8203;16494](https://github.com/sveltejs/kit/pull/16494)) - fix: preserve shared client chunk hashes when the app version changes ([#&#8203;16324](https://github.com/sveltejs/kit/pull/16324)) - fix: include hoisted packages in Vite's `server.fs.allow` list ([#&#8203;15998](https://github.com/sveltejs/kit/pull/15998)) - chore: standardize app template diagnostics ([#&#8203;17250](https://github.com/sveltejs/kit/pull/17250)) - chore: standardize Vite plugin, build, prerender and adapter diagnostics ([#&#8203;17253](https://github.com/sveltejs/kit/pull/17253)) - chore: standardize client navigation, preload, snapshot and enhancement diagnostics ([#&#8203;17276](https://github.com/sveltejs/kit/pull/17276)) - chore: standardize configuration, environment and tsconfig diagnostics ([#&#8203;17251](https://github.com/sveltejs/kit/pull/17251)) - chore: standardize public API, `$app/*` and deprecated module diagnostics ([#&#8203;17265](https://github.com/sveltejs/kit/pull/17265)) - chore: standardize route discovery, parameter and route export diagnostics ([#&#8203;17252](https://github.com/sveltejs/kit/pull/17252)) - chore: standardize server request, hook and page diagnostics ([#&#8203;17275](https://github.com/sveltejs/kit/pull/17275)) - fix: preserve metadata on streamed page responses ([#&#8203;16935](https://github.com/sveltejs/kit/pull/16935)) - fix: only include `_app/immutable` files in `$app/manifest`'s `immutable` in the service worker ([#&#8203;16531](https://github.com/sveltejs/kit/pull/16531)) - chore: remove the dead `SSRState.fallback` field and name the server state fork semantics ([#&#8203;16598](https://github.com/sveltejs/kit/pull/16598)) - fix: atomically replace route metadata during sync ([#&#8203;17096](https://github.com/sveltejs/kit/pull/17096)) - fix: import resolved peer dependencies as file URLs so project-relative resolution works on Windows ([#&#8203;16618](https://github.com/sveltejs/kit/pull/16618)) - fix: preserve sourcemap source paths when adapters copy build output ([#&#8203;17082](https://github.com/sveltejs/kit/pull/17082)) - fix: log errors caught by the Vite dev server handler ([#&#8203;16550](https://github.com/sveltejs/kit/pull/16550)) - chore: bump `acorn` to 8.18.0 ([#&#8203;16745](https://github.com/sveltejs/kit/pull/16745)) - fix: resolve `root` per instance of the SvelteKit Vite plugin ([#&#8203;16513](https://github.com/sveltejs/kit/pull/16513)) - fix: report tsconfig parse errors on Windows ([#&#8203;17251](https://github.com/sveltejs/kit/pull/17251)) - fix: return root layout server data for error-page data requests to non-existent routes ([#&#8203;16376](https://github.com/sveltejs/kit/pull/16376)) - fix: prevent prerender crawler from hanging on unterminated unquoted attributes ([#&#8203;17141](https://github.com/sveltejs/kit/pull/17141)) - fix: prevent `await_reactivity_loss` warning and `state_unsafe_mutation` error when the new version detector runs after an `await` ([#&#8203;16915](https://github.com/sveltejs/kit/pull/16915)) - fix: redact nested and typed underscore-prefixed remote form fields after invalid submissions ([#&#8203;17128](https://github.com/sveltejs/kit/pull/17128)) - fix: ignore path casing differences when warning about overridden Vite config on Windows ([#&#8203;16545](https://github.com/sveltejs/kit/pull/16545)) - fix: return a lightweight 404 instead of rendering the error page for subresource requests ([#&#8203;16463](https://github.com/sveltejs/kit/pull/16463)) - fix: preserve stripped path prefixes by making trailing-slash redirects relative ([#&#8203;16431](https://github.com/sveltejs/kit/pull/16431)) - fix: preserve the current URL search parameters when submitting a remote form without JavaScript ([#&#8203;16373](https://github.com/sveltejs/kit/pull/16373)) - fix: only treat files in node\_modules as remote modules when the package has a peer dependency on [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit) ([#&#8203;16492](https://github.com/sveltejs/kit/pull/16492)) - fix: treeshake prerendered remote functions in the right chunks ([#&#8203;16533](https://github.com/sveltejs/kit/pull/16533)) - fix: correctly serialize Node.js buffers returned from remote functions during SSR ([#&#8203;17158](https://github.com/sveltejs/kit/pull/17158)) - fix: preserve errors with read-only stack properties ([#&#8203;17180](https://github.com/sveltejs/kit/pull/17180)) - chore: deduplicate type-stripping logic in `tweak_types` ([#&#8203;16454](https://github.com/sveltejs/kit/pull/16454)) - fix: avoid infinite loop when building with `--watch` flag ([#&#8203;16632](https://github.com/sveltejs/kit/pull/16632)) - chore: unify the `walk` and `list_files` filesystem helpers ([#&#8203;16784](https://github.com/sveltejs/kit/pull/16784)) - fix: error during development if the adapter does not support instrumentation and it exists ([#&#8203;16548](https://github.com/sveltejs/kit/pull/16548)) - fix: use mouseover+mousemove for preloading to reduce events ([#&#8203;16325](https://github.com/sveltejs/kit/pull/16325)) - fix: reject invalid binary form file metadata ([#&#8203;17149](https://github.com/sveltejs/kit/pull/17149)) - fix: error on server-only imports reachable from hooks or service worker files outside the project root ([#&#8203;16912](https://github.com/sveltejs/kit/pull/16912)) - fix: write generated tsconfig to `node_modules/$app/tsconfig.json` so that tools with simplified tsconfig resolution can find it ([#&#8203;16589](https://github.com/sveltejs/kit/pull/16589)) - chore: emit env modules to disk ([#&#8203;16807](https://github.com/sveltejs/kit/pull/16807)) - fix: more informative error message when running a command inside a query or prerender function ([#&#8203;17293](https://github.com/sveltejs/kit/pull/17293)) - fix: adjust error overload for optional `App.Error` parameters ([#&#8203;16725](https://github.com/sveltejs/kit/pull/16725)) - fix: prerender and crawl pages whose `content-type` header carries a `charset` parameter ([#&#8203;16567](https://github.com/sveltejs/kit/pull/16567)) - fix: stream promised `read` results lazily instead of eagerly buffering them ([#&#8203;16622](https://github.com/sveltejs/kit/pull/16622)) - fix: copy worker files emitted by the server build to the client output directory ([#&#8203;16929](https://github.com/sveltejs/kit/pull/16929)) - chore: parse page options and remote modules with Vite's `parseSync` instead of `acorn` ([#&#8203;16947](https://github.com/sveltejs/kit/pull/16947)) - fix: correctly decode `[u+nnnn]` escape sequences above `ffff` ([#&#8203;16611](https://github.com/sveltejs/kit/pull/16611)) - fix: Reject all pending query promises when a query fails before resolving with a value for the first time ([#&#8203;16890](https://github.com/sveltejs/kit/pull/16890)) ### [`v2.70.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2703) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.70.2...@sveltejs/kit@2.70.3) ##### Patch Changes - fix: avoid eagerly reading `$app/state` dependencies during module initialization ([`b61018d`](https://github.com/sveltejs/kit/commit/b61018d0526e827d1ef8cf8e21ef62b92230ae3d)) ### [`v2.70.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2702) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.70.1...@sveltejs/kit@2.70.2) ##### Patch Changes - fix: prevent quadratic backtracking in `Accept` header content negotiation ([`82712fc`](https://github.com/sveltejs/kit/commit/82712fc02c24b1dcf5b25d7a52129cd8455f04f5)) ### [`v2.70.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2701) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.70.0...@sveltejs/kit@2.70.1) ##### Patch Changes - docs: update links to hooks documentation ([#&#8203;16417](https://github.com/sveltejs/kit/pull/16417)) ### [`v2.70.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2700) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.69.3...@sveltejs/kit@2.70.0) ##### Minor Changes - feat: move `defineEnvVars` to `@sveltejs/kit/env` ([#&#8203;16378](https://github.com/sveltejs/kit/pull/16378)) ##### Patch Changes - fix: enable CSRF protection in builds with a non-production `NODE_ENV` value ([#&#8203;16313](https://github.com/sveltejs/kit/pull/16313)) ### [`v2.69.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2693) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.69.2...@sveltejs/kit@2.69.3) ##### Patch Changes - fix: detect destructured `load` and `actions` exports during type generation ([#&#8203;16329](https://github.com/sveltejs/kit/pull/16329)) - fix: ensure CSS URL references are absolute when `paths.relative` is `false` ([#&#8203;16315](https://github.com/sveltejs/kit/pull/16315)) - fix: align MAX\_COOKIE\_SIZE with RFC 6265bis ([#&#8203;16322](https://github.com/sveltejs/kit/pull/16322)) ### [`v2.69.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2692) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.69.1...@sveltejs/kit@2.69.2) ##### Patch Changes - fix: set `define` values on `globalThis` when running Vitest ([#&#8203;16246](https://github.com/sveltejs/kit/pull/16246)) ### [`v2.69.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2691) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.69.0...@sveltejs/kit@2.69.1) ##### Patch Changes - fix: prevent prototype pollution when deleting file inputs ([#&#8203;16218](https://github.com/sveltejs/kit/pull/16218)) - fix: prevent unhandled promise rejection ([#&#8203;16219](https://github.com/sveltejs/kit/pull/16219)) ### [`v2.69.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2690) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.68.0...@sveltejs/kit@2.69.0) ##### Minor Changes - feat: expose `submitted` property of remote forms ([#&#8203;14811](https://github.com/sveltejs/kit/pull/14811)) ##### Patch Changes - fix: clear issues and touched states on form reset ([#&#8203;16163](https://github.com/sveltejs/kit/pull/16163)) - fix: return `undefined` from `fields.branch.issues()` when only `fields.branch.leaf` has issues ([#&#8203;16187](https://github.com/sveltejs/kit/pull/16187)) ### [`v2.68.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2680) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.67.0...@sveltejs/kit@2.68.0) ##### Minor Changes - feat: expose `RemoteFormEnhanceInstance` and `RemoteFormEnhanceCallback` types ([#&#8203;15816](https://github.com/sveltejs/kit/pull/15816)) - feat: set value of `submit` fields when form is submitted ([#&#8203;15979](https://github.com/sveltejs/kit/pull/15979)) ##### Patch Changes - fix: skip `native_navigation` when `__data.json` returns 404 on a static fallback page ([#&#8203;16135](https://github.com/sveltejs/kit/pull/16135)) - fix: ignore third-party monkeypatches in `pushState`/`replaceState` warning detection ([#&#8203;15267](https://github.com/sveltejs/kit/pull/15267)) - fix: snapshot form fields on read ([#&#8203;16150](https://github.com/sveltejs/kit/pull/16150)) - fix: strip field prefix before erroring on duplicates ([#&#8203;16151](https://github.com/sveltejs/kit/pull/16151)) - fix: call reset function via prototype ([#&#8203;16138](https://github.com/sveltejs/kit/pull/16138)) - chore: fix navigation `type` hover info ([#&#8203;16147](https://github.com/sveltejs/kit/pull/16147)) ### [`v2.67.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2670) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.66.0...@sveltejs/kit@2.67.0) ##### Minor Changes - feat: add `prerender.handleInvalidUrl` option for invalid URLs discovered while crawling ([#&#8203;16088](https://github.com/sveltejs/kit/pull/16088)) ##### Patch Changes - fix: dedupe remote data ([#&#8203;15991](https://github.com/sveltejs/kit/pull/15991)) - fix: skip client build if all routes have CSR disabled ([#&#8203;15936](https://github.com/sveltejs/kit/pull/15936)) ### [`v2.66.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2660) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.65.2...@sveltejs/kit@2.66.0) ##### Minor Changes - feat: precompress prerendered `.md` and `.mdx` files ([#&#8203;15893](https://github.com/sveltejs/kit/pull/15893)) - feat: warn the user when they forget to make boolean inputs optional in their form schemas ([#&#8203;15804](https://github.com/sveltejs/kit/pull/15804)) ##### Patch Changes - fix: blur active element before component update during navigation so that blur/focusout handlers fire while old component data is still valid ([#&#8203;15452](https://github.com/sveltejs/kit/pull/15452)) - fix: ensure `base` is available from `$service-worker` during development ([#&#8203;15882](https://github.com/sveltejs/kit/pull/15882)) - fix: use correct relative asset paths when rendering an error page for a missing `__data.json` request ([#&#8203;15884](https://github.com/sveltejs/kit/pull/15884)) - fix: preserve active `for await` consumers across `query.live` reconnects ([#&#8203;16022](https://github.com/sveltejs/kit/pull/16022)) - fix: settle `query.live` reconnect promise on all exit paths, preventing `invalidateAll()` from deadlocking when a live query is offline or interrupted ([#&#8203;16022](https://github.com/sveltejs/kit/pull/16022)) - fix: preserve last value when a `query.live` stream completes without yielding on reconnect ([#&#8203;16022](https://github.com/sveltejs/kit/pull/16022)) - fix: remove `types: ['node']` from generated tsconfig to avoid errors when `@types/node` is not installed ([#&#8203;15709](https://github.com/sveltejs/kit/pull/15709)) - fix: prefer pages over endpoints when prerendering ([#&#8203;16076](https://github.com/sveltejs/kit/pull/16076)) - fix: restore snapshots after afterNavigate callbacks ([#&#8203;16066](https://github.com/sveltejs/kit/pull/16066)) - fix: support `ws:`/`wss:` and `trusted-types-eval` for CSP sources ([#&#8203;15938](https://github.com/sveltejs/kit/pull/15938)) - fix: omit empty `file` inputs from remote form data ([#&#8203;15898](https://github.com/sveltejs/kit/pull/15898)) - fix: fail early if a route with `+page` and `+server` is marked as prerenderable ([#&#8203;16075](https://github.com/sveltejs/kit/pull/16075)) - fix: wait a tick before resetting forms ([#&#8203;15805](https://github.com/sveltejs/kit/pull/15805)) - fix: `preflight` schemas apply correctly when chained before `for` ([#&#8203;15863](https://github.com/sveltejs/kit/pull/15863)) - fix: blank page in SPA mode when root layout `load()` throws ([#&#8203;15798](https://github.com/sveltejs/kit/pull/15798)) - fix: pass all unknown options from the `sveltekit` Vite plugin through to `vite-plugin-svelte` ([#&#8203;16010](https://github.com/sveltejs/kit/pull/16010)) ### [`v2.65.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2652) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.65.1...@sveltejs/kit@2.65.2) ##### Patch Changes - fix: throw an error when prerendering a root +server.js that returns a non-HTML response ([#&#8203;15994](https://github.com/sveltejs/kit/pull/15994)) - fix: decode base64-serialized fetch bodies before caching them for client-side replay ([#&#8203;16034](https://github.com/sveltejs/kit/pull/16034)) - fix: correctly access explicit dynamic public environment variables from prerendered pages and service workers ([#&#8203;16024](https://github.com/sveltejs/kit/pull/16024)) - fix: allow `preloadCode` to be called during initial page load ([#&#8203;16028](https://github.com/sveltejs/kit/pull/16028)) - fix: send `cache-control: private, no-store` on remote function responses so personalized query results can never be cached by shared caches ([#&#8203;16020](https://github.com/sveltejs/kit/pull/16020)) - fix: preserve the HTTP status and error body when a remote function request fails in transport (e.g. a 401/403 from a `handle` hook), instead of reporting a generic 500 ([#&#8203;16021](https://github.com/sveltejs/kit/pull/16021)) - fix: avoid loading universal nodes during build analysis when the app uses a hash router ([#&#8203;16042](https://github.com/sveltejs/kit/pull/16042)) - fix: correctly serve client entry during development when using the pnpm global virtual store ([#&#8203;16045](https://github.com/sveltejs/kit/pull/16045)) - fix: normalize path separators when comparing config ([#&#8203;16037](https://github.com/sveltejs/kit/pull/16037)) - fix: ensure `building` resolves correctly to allow avoiding build-time explicit environment variable validation ([#&#8203;16058](https://github.com/sveltejs/kit/pull/16058)) - fix: prevent unhandled promise rejections when remote function failures are consumed via `current`/`error` instead of `await` ([#&#8203;16018](https://github.com/sveltejs/kit/pull/16018)) ### [`v2.65.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2651) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.65.0...@sveltejs/kit@2.65.1) ##### Patch Changes - fix: avoid importing the Vite development client code into builds with a non-standard `NODE_ENV` ([#&#8203;16023](https://github.com/sveltejs/kit/pull/16023)) - fix: don't emit the unused bundle and stylesheet files when using `bundleStrategy: 'inline'` ([#&#8203;16025](https://github.com/sveltejs/kit/pull/16025)) - fix: reset queries before navigating when `invalidateAll` is set ([#&#8203;16014](https://github.com/sveltejs/kit/pull/16014)) - fix: regression in loading assets for absolute path apps ([#&#8203;16026](https://github.com/sveltejs/kit/pull/16026)) ### [`v2.65.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2650) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.64.0...@sveltejs/kit@2.65.0) ##### Minor Changes - feat: allow queries to refresh other queries ([#&#8203;16012](https://github.com/sveltejs/kit/pull/16012)) ##### Patch Changes - fix: dedupe remote data ([#&#8203;15991](https://github.com/sveltejs/kit/pull/15991)) - fix: skip client build if all routes have CSR disabled ([#&#8203;15936](https://github.com/sveltejs/kit/pull/15936)) ### [`v2.64.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2640) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.63.1...@sveltejs/kit@2.64.0) ##### Minor Changes - feat: allow commands to receive `File` objects ([#&#8203;15978](https://github.com/sveltejs/kit/pull/15978)) ##### Patch Changes - fix: avoid server components from being bundled if SSR is turned off for a route ([#&#8203;15982](https://github.com/sveltejs/kit/pull/15982)) ### [`v2.63.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2631) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.63.0...@sveltejs/kit@2.63.1) ##### Patch Changes - fix: use SSE for `query.live` ([#&#8203;15957](https://github.com/sveltejs/kit/pull/15957)) - fix: use forward slashes in the generated `env.d.ts` import path on Windows ([#&#8203;15977](https://github.com/sveltejs/kit/pull/15977)) - fix: allow `$app/environment` with a warning when `explicitEnvironmentVariables` is enabled ([#&#8203;15980](https://github.com/sveltejs/kit/pull/15980)) - fix: avoid importing Vite while validating explicit environment variables ([#&#8203;15953](https://github.com/sveltejs/kit/pull/15953)) - docs: adjust the release version of explicit env vars ([#&#8203;15968](https://github.com/sveltejs/kit/pull/15968)) - fix: ensure `version` is defined when importing from `$app/env` with explicit environment variables ([#&#8203;15971](https://github.com/sveltejs/kit/pull/15971)) ### [`v2.63.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2630) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.62.0...@sveltejs/kit@2.63.0) ##### Minor Changes - feat: explicit env vars ([#&#8203;15934](https://github.com/sveltejs/kit/pull/15934)) ##### Patch Changes - fix: remove check for svelte.config.js before running `sync` ([#&#8203;15946](https://github.com/sveltejs/kit/pull/15946)) - fix: generate a placeholder tsconfig.json to squelch sync-time warnings ([#&#8203;15948](https://github.com/sveltejs/kit/pull/15948)) - fix: allow use of `$app/env/public` in service workers ([#&#8203;15950](https://github.com/sveltejs/kit/pull/15950)) ### [`v2.62.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2620) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.61.1...@sveltejs/kit@2.62.0) ##### Minor Changes - feat: support passing Svelte(Kit) config via Vite plugin ([#&#8203;15944](https://github.com/sveltejs/kit/pull/15944)) ##### Patch Changes - fix: preserve multiple `Set-Cookie` headers on 304 responses ([#&#8203;15902](https://github.com/sveltejs/kit/pull/15902)) - fix: preload for anchor elements that were just previously preloaded ([#&#8203;15915](https://github.com/sveltejs/kit/pull/15915)) - fix: catch load function streaming errors on the client ([#&#8203;15929](https://github.com/sveltejs/kit/pull/15929)) - fix: avoid generating the `_app/env.js` module if public dynamic environment variables are not used by the app ([#&#8203;15940](https://github.com/sveltejs/kit/pull/15940)) ### [`v2.61.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2611) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.61.0...@sveltejs/kit@2.61.1) ##### Patch Changes - fix: regression where routes starting and ending with a route group are not matched correctly ([#&#8203;15903](https://github.com/sveltejs/kit/pull/15903)) ### [`v2.61.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2610) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.60.1...@sveltejs/kit@2.61.0) ##### Minor Changes - breaking: the `.run()` method has been removed from remote queries on both the client and the server. Use `await query()` directly instead — it now works everywhere ([#&#8203;15779](https://github.com/sveltejs/kit/pull/15779)) - feat: remote queries can now be awaited in any context (event handlers, module scope, async callbacks), not just inside reactive contexts. The cache is shared across reactive and non-reactive subscribers, so awaiting a query in an event handler will dedupe with components that have already subscribed to the same query. ([#&#8203;15779](https://github.com/sveltejs/kit/pull/15779)) - feat: live query instances are now themselves async-iterable ([#&#8203;15878](https://github.com/sveltejs/kit/pull/15878)) - feat: add programmatic `submit` method to `form` remote function instances ([#&#8203;15657](https://github.com/sveltejs/kit/pull/15657)) - feat: pass `form` remote function instance into `enhance` callback ([#&#8203;15657](https://github.com/sveltejs/kit/pull/15657)) ##### Patch Changes - fix: resolve the app payload without using `process.env.NODE_ENV` ([#&#8203;15852](https://github.com/sveltejs/kit/pull/15852)) - fix: support `exactOptionalPropertyTypes` for optional route params ([#&#8203;15825](https://github.com/sveltejs/kit/pull/15825)) - fix: correctly send `true` value to the server for 'submit' and 'hidden' form fields ([#&#8203;15858](https://github.com/sveltejs/kit/pull/15858)) - fix: avoid build warnings about undefined universal hooks ([#&#8203;15895](https://github.com/sveltejs/kit/pull/15895)) - fix: prefer default error page when failing to decode the URL pathname ([#&#8203;15744](https://github.com/sveltejs/kit/pull/15744)) - fix: disable link prefetching on slow internet connections ([#&#8203;15885](https://github.com/sveltejs/kit/pull/15885)) - fix: allow routes ending with optional parameters next to more specific routes ([#&#8203;15861](https://github.com/sveltejs/kit/pull/15861)) - fix: remove reliance on Content-Length header in deserialize\_binary\_form, which caused failures when proxies (e.g. Vercel, Azure) strip the header and use chunked transfer encoding ([#&#8203;15796](https://github.com/sveltejs/kit/pull/15796)) ### [`v2.60.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2601) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.60.0...@sveltejs/kit@2.60.1) ##### Patch Changes - chore: bump `svelte` and `devalue` ([#&#8203;15836](https://github.com/sveltejs/kit/pull/15836)) - fix: prevent `query.batch` cross-talk ([`dadaefc`](https://github.com/sveltejs/kit/commit/dadaefc2e647a0a62f49f3ee8bc7aa46f5e27056)) ### [`v2.60.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2600) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.59.1...@sveltejs/kit@2.60.0) ##### Minor Changes - feat: allow 'submit' and 'hidden' form fields to accept numbers and booleans ([#&#8203;15802](https://github.com/sveltejs/kit/pull/15802)) - feat: warn on unread `form` remote function validation issues ([#&#8203;15653](https://github.com/sveltejs/kit/pull/15653)) ##### Patch Changes - fix: abort navigation after async rendering if obsolete ([#&#8203;15811](https://github.com/sveltejs/kit/pull/15811)) - fix: skip refreshing queries on full-page reload form submissions ([#&#8203;15803](https://github.com/sveltejs/kit/pull/15803)) ### [`v2.59.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2591) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.59.0...@sveltejs/kit@2.59.1) ##### Patch Changes - fix: resolve paths to route files with the letter drive on Windows ([#&#8203;15793](https://github.com/sveltejs/kit/pull/15793)) ### [`v2.59.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2590) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.58.0...@sveltejs/kit@2.59.0) ##### Minor Changes - feat: support `query.batch` in `requested(...)` ([#&#8203;15751](https://github.com/sveltejs/kit/pull/15751)) - breaking: on the server, make the promise returned from `refresh` represent adding the refresh to the map, not the time it takes to run the remote function ([#&#8203;15705](https://github.com/sveltejs/kit/pull/15705)) - feat: experimental `query.live` function ([#&#8203;15705](https://github.com/sveltejs/kit/pull/15705)) ##### Patch Changes - fix: unwrap `Promise` in `RemoteCommand` output type ([#&#8203;15771](https://github.com/sveltejs/kit/pull/15771)) - fix: empty call to `.updates()` on a command/form invocation means "don't update anything" ([#&#8203;15705](https://github.com/sveltejs/kit/pull/15705)) - fix: `form.fields.foo.as('checkbox', default_value)` now works ([#&#8203;15752](https://github.com/sveltejs/kit/pull/15752)) - fix: remote forms with default values defined by `field.as('text', defaultValue)` now correctly reset to the provided default values once submitted ([#&#8203;15753](https://github.com/sveltejs/kit/pull/15753)) - fix: make sure queries always get started correctly ([#&#8203;15705](https://github.com/sveltejs/kit/pull/15705)) - fix: allow plain functions as overrides in `updates` ([#&#8203;15705](https://github.com/sveltejs/kit/pull/15705)) ### [`v2.58.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2580) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.57.1...@sveltejs/kit@2.58.0) ##### Minor Changes - breaking: require `limit` in `requested` (as originally intended) ([#&#8203;15739](https://github.com/sveltejs/kit/pull/15739)) - feat: `RemoteQueryFunction` gains an optional third generic parameter `Validated` (defaulting to `Input`) that represents the argument type after schema validation/transformation ([#&#8203;15739](https://github.com/sveltejs/kit/pull/15739)) - breaking: `requested` now yields `{ arg, query }` entries instead of the validated argument ([#&#8203;15739](https://github.com/sveltejs/kit/pull/15739)) ##### Patch Changes - fix: allow `query().current`, `.error`, `.loading`, and `.ready` to work in non-reactive contexts ([#&#8203;15699](https://github.com/sveltejs/kit/pull/15699)) - fix: prevent `deep_set` crash on nullish nested values ([#&#8203;15600](https://github.com/sveltejs/kit/pull/15600)) - fix: restore correct `RemoteFormFields` typing for nullable array fields (e.g. when a schema uses `.default([])`), so `.as('checkbox')` and friends work again ([#&#8203;15723](https://github.com/sveltejs/kit/pull/15723)) - fix: don't warn about removed SSI comments in `transformPageChunk` ([#&#8203;15695](https://github.com/sveltejs/kit/pull/15695)) Server-side include (SSI) directives like `<!--#include virtual="..." -->` are HTML comments that are replaced by servers such as nginx. Previously, removing them in `transformPageChunk` would trigger a false positive warning about breaking Svelte's hydration. Since SSI comments always start with `<!--#` and Svelte's hydration comments never do, they can be safely excluded from the check. - Change enhance function return type from void to MaybePromise<void>. ([#&#8203;15710](https://github.com/sveltejs/kit/pull/15710)) - fix: throw an error when `resolve` is called with an external URL ([#&#8203;15733](https://github.com/sveltejs/kit/pull/15733)) - fix: avoid FOUC for CSR-only pages by loading styles and fonts before CSR starts ([#&#8203;15718](https://github.com/sveltejs/kit/pull/15718)) - fix: reset form result on redirect ([#&#8203;15724](https://github.com/sveltejs/kit/pull/15724)) ### [`v2.57.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2571) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.57.0...@sveltejs/kit@2.57.1) ##### Patch Changes - fix: better validation for `redirect` inputs ([`10d7b44`](https://github.com/sveltejs/kit/commit/10d7b44425c3d9da642eecce373d0c6ef83b4fcd)) - fix: enforce `BODY_SIZE_LIMIT` on chunked requests ([`3202ed6`](https://github.com/sveltejs/kit/commit/3202ed6c98f9e8d86bf0c4c7ad0f2e273e5e3b95)) - fix: use default values as fallbacks ([#&#8203;15680](https://github.com/sveltejs/kit/pull/15680)) - fix: relax form typings for union types ([#&#8203;15687](https://github.com/sveltejs/kit/pull/15687)) ### [`v2.57.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2570) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.56.1...@sveltejs/kit@2.57.0) ##### Minor Changes - feat: return boolean from `submit` to indicate submission validity for enhanced `form` remote functions ([#&#8203;15530](https://github.com/sveltejs/kit/pull/15530)) ##### Patch Changes - fix: use array type for select fields that accept multiple values ([#&#8203;15591](https://github.com/sveltejs/kit/pull/15591)) - fix: silently 404 Chrome DevTools workspaces request in dev and preview ([#&#8203;15656](https://github.com/sveltejs/kit/pull/15656)) - fix: `config.kit.csp.directives['trusted-types']` requires `'svelte-trusted-html'` (and `'sveltekit-trusted-url'` when a service worker is automatically registered) if it is configured ([#&#8203;15323](https://github.com/sveltejs/kit/pull/15323)) - fix: avoid inlineDynamicImports ignored with codeSplitting warning when using Vite 8 ([#&#8203;15647](https://github.com/sveltejs/kit/pull/15647)) - fix: reimplement treeshaking non-dynamic prerendered remote functions ([#&#8203;15447](https://github.com/sveltejs/kit/pull/15447)) ### [`v2.56.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2561) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.56.0...@sveltejs/kit@2.56.1) ##### Patch Changes - chore: update JSDoc ([#&#8203;15640](https://github.com/sveltejs/kit/pull/15640)) ### [`v2.56.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2560) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.55.0...@sveltejs/kit@2.56.0) ##### Minor Changes - breaking: rework client-driven refreshes ([#&#8203;15562](https://github.com/sveltejs/kit/pull/15562)) - breaking: stabilize remote function caching by sorting object keys ([#&#8203;15570](https://github.com/sveltejs/kit/pull/15570)) - breaking: add `run()` method to queries, disallow awaiting queries outside render ([#&#8203;15533](https://github.com/sveltejs/kit/pull/15533)) - feat: support TypeScript 6.0 ([#&#8203;15595](https://github.com/sveltejs/kit/pull/15595)) - breaking: isolate command-triggered query refresh failures per-query ([#&#8203;15562](https://github.com/sveltejs/kit/pull/15562)) - feat: use `hydratable` for remote function transport ([#&#8203;15533](https://github.com/sveltejs/kit/pull/15533)) - feat: allow `form` fields to specify a default value (`field.as(type, value)`) ([#&#8203;15577](https://github.com/sveltejs/kit/pull/15577)) ##### Patch Changes - fix: don't request new data when `.refresh` is called on a query with no cache entry ([#&#8203;15533](https://github.com/sveltejs/kit/pull/15533)) - fix: allow using multiple remote functions within one async derived ([#&#8203;15561](https://github.com/sveltejs/kit/pull/15561)) - fix: avoid false-positive overridden Vite `base` setting warning when setting a `paths.base` in `svelte.config.js` ([#&#8203;15623](https://github.com/sveltejs/kit/pull/15623)) - fix: manage queries in their own `$effect.root` ([#&#8203;15533](https://github.com/sveltejs/kit/pull/15533)) - fix: avoid `inlineDynamicImports` deprecation warning when building the service worker with Vite 8 ([#&#8203;15550](https://github.com/sveltejs/kit/pull/15550)) - fix: correctly escape backticks when precomputing CSS ([#&#8203;15593](https://github.com/sveltejs/kit/pull/15593)) - fix: discard obsolete forks before finishing navigation ([#&#8203;15634](https://github.com/sveltejs/kit/pull/15634)) - chore: tighten up override implementation ([#&#8203;15562](https://github.com/sveltejs/kit/pull/15562)) - fix: ensure the default Svelte 5 `error.svelte` file uses runes mode ([#&#8203;15609](https://github.com/sveltejs/kit/pull/15609)) - fix: deduplicate same-cache-key `batch` calls during SSR ([#&#8203;15533](https://github.com/sveltejs/kit/pull/15533)) - fix: decrement pending\_count when form callback doesn't call submit() ([#&#8203;15520](https://github.com/sveltejs/kit/pull/15520)) ### [`v2.55.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2550) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.54.0...@sveltejs/kit@2.55.0) ##### Minor Changes - feat: page and layout params with matchers are now type narrowed in `$app/types`, leading to better type safety when working with params in `$app/types`, `$app/state`, and hooks. ([#&#8203;15502](https://github.com/sveltejs/kit/pull/15502)) ### [`v2.54.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2540) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.53.4...@sveltejs/kit@2.54.0) ##### Minor Changes - feat: allow error boundaries to catch errors on the server ([#&#8203;15308](https://github.com/sveltejs/kit/pull/15308)) ##### Patch Changes - chore: upgrade `devalue` ([#&#8203;15535](https://github.com/sveltejs/kit/pull/15535)) - fix: don't wait for remote functions that are not awaited in the template ([#&#8203;15280](https://github.com/sveltejs/kit/pull/15280)) - feat: allow `resolve()` to accept pathnames with a search string and/or hash ([#&#8203;15458](https://github.com/sveltejs/kit/pull/15458)) - chore: remove deprecation warnings for `config.kit.files.*` options when validating the Svelte config file ([#&#8203;15482](https://github.com/sveltejs/kit/pull/15482)) - fix: handles form target attribute in remote form redirects ([#&#8203;15457](https://github.com/sveltejs/kit/pull/15457)) ### [`v2.53.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2534) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.53.3...@sveltejs/kit@2.53.4) ##### Patch Changes - fix: avoid Vite warning about unknown `codeSplitting` option ([#&#8203;15451](https://github.com/sveltejs/kit/pull/15451)) ### [`v2.53.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2533) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.53.2...@sveltejs/kit@2.53.3) ##### Patch Changes - fix: prevent overlapping file metadata in remote functions `form` ([`faba869`](https://github.com/sveltejs/kit/commit/faba869db3644077169bf5d7c6e41fd5f3d6c65e)) ### [`v2.53.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2532) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.53.1...@sveltejs/kit@2.53.2) ##### Patch Changes - fix: server-render nested form value sets ([#&#8203;15378](https://github.com/sveltejs/kit/pull/15378)) - fix: use deep partial types for form remote functions `.value()` and `.set(...)` ([#&#8203;14837](https://github.com/sveltejs/kit/pull/14837)) - fix: provide correct url info to remote functions ([#&#8203;15418](https://github.com/sveltejs/kit/pull/15418)) - fix: allow optional types for remote query/command/prerender functions ([#&#8203;15293](https://github.com/sveltejs/kit/pull/15293)) - fix: allow commands in more places ([#&#8203;15288](https://github.com/sveltejs/kit/pull/15288)) ### [`v2.53.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2531) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.53.0...@sveltejs/kit@2.53.1) ##### Patch Changes - fix: address warning about `inlineDynamicImports` when using Vite 8 ([#&#8203;15403](https://github.com/sveltejs/kit/pull/15403)) ### [`v2.53.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2530) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.52.2...@sveltejs/kit@2.53.0) ##### Minor Changes - feat: support Vite 8 ([#&#8203;15024](https://github.com/sveltejs/kit/pull/15024)) ##### Patch Changes - fix: remove event listeners on form attachment cleanup ([#&#8203;15286](https://github.com/sveltejs/kit/pull/15286)) - fix: apply queries refreshed in a form remote function when a redirect is thrown ([#&#8203;15362](https://github.com/sveltejs/kit/pull/15362)) ### [`v2.52.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2522) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.52.0...@sveltejs/kit@2.52.2) ##### Patch Changes - fix: validate `form` file information to prevent amplification attacks ([`3e607b3`](https://github.com/sveltejs/kit/commit/3e607b314aec9e5f278d32847945b8b6323e1cb8)) - chore: upgrade `devalue` and `svelte` ([#&#8203;15339](https://github.com/sveltejs/kit/pull/15339)) - fix: parse file offset table more strictly ([`f47c01b`](https://github.com/sveltejs/kit/commit/f47c01bd8100328c24fdb8522fe35913b0735f35)) ### [`v2.52.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2520) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.51.0...@sveltejs/kit@2.52.0) ##### Minor Changes - feat: `match` function to map a path back to a route id and params ([#&#8203;14997](https://github.com/sveltejs/kit/pull/14997)) ##### Patch Changes - fix: respect scroll-margin when navigating to a url-supplied anchor ([#&#8203;15246](https://github.com/sveltejs/kit/pull/15246)) - fix: `resolve` will narrow types to follow trailing slash page settings ([#&#8203;15027](https://github.com/sveltejs/kit/pull/15027)) ### [`v2.51.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2510) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.50.2...@sveltejs/kit@2.51.0) ##### Minor Changes - feat: add `scroll` property to `NavigationTarget` in navigation callbacks ([#&#8203;15248](https://github.com/sveltejs/kit/pull/15248)) Navigation callbacks (`beforeNavigate`, `onNavigate`, and `afterNavigate`) now include scroll position information via the `scroll` property on `from` and `to` targets: - `from.scroll`: The scroll position at the moment navigation was triggered - `to.scroll`: In `beforeNavigate` and `onNavigate`, this is populated for `popstate` navigations (back/forward) with the scroll position that will be restored, and `null` for other navigation types. In `afterNavigate`, this is always the final scroll position after navigation completed. This enables use cases like animating transitions based on the target scroll position when using browser back/forward navigation. - feat: `hydratable`'s injected script now works with CSP ([#&#8203;15048](https://github.com/sveltejs/kit/pull/15048)) ##### Patch Changes - fix: put preloads before styles ([#&#8203;15232](https://github.com/sveltejs/kit/pull/15232)) - fix: suppress false-positive inner content warning when children prop is forwarded to a child component ([#&#8203;15269](https://github.com/sveltejs/kit/pull/15269)) - fix: `fetch` not working when URL is same host but different than `paths.base` ([#&#8203;15291](https://github.com/sveltejs/kit/pull/15291)) - fix: navigate to hash link when base element is present ([#&#8203;15236](https://github.com/sveltejs/kit/pull/15236)) - fix: avoid triggering `handleError` when redirecting in a remote function ([#&#8203;15222](https://github.com/sveltejs/kit/pull/15222)) - fix: include `test` directory in generated `tsconfig.json` alongside existing `tests` entry ([#&#8203;15254](https://github.com/sveltejs/kit/pull/15254)) - fix: generate `tsconfig.json` using the value of `kit.files.src` ([#&#8203;15253](https://github.com/sveltejs/kit/pull/15253)) ### [`v2.50.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2502) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.50.1...@sveltejs/kit@2.50.2) ##### Patch Changes - fix: ensure inlined CSS follows `paths.assets` and `paths.relative` settings ([#&#8203;15153](https://github.com/sveltejs/kit/pull/15153)) - fix: emit script CSP nonces when `unsafe-inline` is present if `strict-dynamic` is also present ([#&#8203;15221](https://github.com/sveltejs/kit/pull/15221)) - fix: re-export browser/dev from esm-env ([#&#8203;15206](https://github.com/sveltejs/kit/pull/15206)) - fix: use validated args in batch resolver in both csr and ssr ([#&#8203;15215](https://github.com/sveltejs/kit/pull/15215)) - fix: ensure CSS inlining includes components that are conditionally rendered ([#&#8203;15153](https://github.com/sveltejs/kit/pull/15153)) - fix: only match rest params with matchers when the matcher matches ([#&#8203;15216](https://github.com/sveltejs/kit/pull/15216)) - fix: properly handle percent-encoded anchors (e.g. `<a href="#sparkles-%E2%9C%A8">`) during prerendering. ([#&#8203;15231](https://github.com/sveltejs/kit/pull/15231)) ### [`v2.50.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2501) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.50.0...@sveltejs/kit@2.50.1) ##### Patch Changes - fix: include `hooks.server` and `hooks.universal` as explicit Vite build inputs to ensure assets imported by hooks files are correctly discovered ([#&#8203;15178](https://github.com/sveltejs/kit/pull/15178)) - fix: improves fields type for generic components ([#&#8203;14974](https://github.com/sveltejs/kit/pull/14974)) - fix: preload links if href changes ([#&#8203;15191](https://github.com/sveltejs/kit/pull/15191)) ### [`v2.50.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2500) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.5...@sveltejs/kit@2.50.0) ##### Minor Changes - breaking: remove `buttonProps` from experimental remote form functions; use e.g. `<button {...myForm.fields.action.as('submit', 'register')}>Register</button>` button instead ([#&#8203;15144](https://github.com/sveltejs/kit/pull/15144)) ### [`v2.49.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2495) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.4...@sveltejs/kit@2.49.5) ##### Patch Changes - fix: avoid overriding Vite default `base` when running Vitest 4 ([#&#8203;14866](https://github.com/sveltejs/kit/pull/14866)) - fix: ensure url decoded pathnames are not mistaken as rerouted requests ([`d9ae9b0`](https://github.com/sveltejs/kit/commit/d9ae9b00b14f5574d109f3fd548f960594346226)) - fix: add length checks to remote forms ([`8ed8155`](https://github.com/sveltejs/kit/commit/8ed8155215b9a74012fecffb942ad9a793b274e5)) ### [`v2.49.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2494) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.3...@sveltejs/kit@2.49.4) ##### Patch Changes - fix: support instrumentation for `vite preview` ([#&#8203;15105](https://github.com/sveltejs/kit/pull/15105)) - fix: support for `URLSearchParams.has(name, value)` overload ([#&#8203;15076](https://github.com/sveltejs/kit/pull/15076)) - fix: put forking behind `experimental.forkPreloads` ([#&#8203;15135](https://github.com/sveltejs/kit/pull/15135)) ### [`v2.49.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2493) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.2...@sveltejs/kit@2.49.3) ##### Patch Changes - fix: avoid false-positive Vite config overridden warning when using Vitest 4 ([#&#8203;15121](https://github.com/sveltejs/kit/pull/15121)) - fix: add `typescript` as an optional peer dependency ([#&#8203;15074](https://github.com/sveltejs/kit/pull/15074)) - fix: use hasOwn check when deep-setting object properties ([#&#8203;15127](https://github.com/sveltejs/kit/pull/15127)) ### [`v2.49.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2492) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.1...@sveltejs/kit@2.49.2) ##### Patch Changes - fix: Stop re-loading already-loaded CSS during server-side route resolution ([#&#8203;15014](https://github.com/sveltejs/kit/pull/15014)) - fix: posixify the instrumentation file import on Windows ([#&#8203;14993](https://github.com/sveltejs/kit/pull/14993)) - fix: Correctly handle shared memory when decoding binary form data ([#&#8203;15028](https://github.com/sveltejs/kit/pull/15028)) ### [`v2.49.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2491) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.0...@sveltejs/kit@2.49.1) ##### Patch Changes - fix: suppress `state_referenced_locally` warnings in `.svelte-kit/generated/root.svelte` ([#&#8203;15013](https://github.com/sveltejs/kit/pull/15013)) - fix: TypeError when doing response.clone() in page load ([#&#8203;15005](https://github.com/sveltejs/kit/pull/15005)) ### [`v2.49.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2490) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.8...@sveltejs/kit@2.49.0) ##### Minor Changes - feat: stream file uploads inside `form` remote functions allowing form data to be accessed before large files finish uploading ([#&#8203;14775](https://github.com/sveltejs/kit/pull/14775)) ### [`v2.48.8`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2488) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.7...@sveltejs/kit@2.48.8) ##### Patch Changes - breaking: `invalid` now must be imported from `@sveltejs/kit` ([#&#8203;14768](https://github.com/sveltejs/kit/pull/14768)) - breaking: remove `submitter` option from experimental form `validate()` method, always provide default submitter ([#&#8203;14762](https://github.com/sveltejs/kit/pull/14762)) ### [`v2.48.7`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2487) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.6...@sveltejs/kit@2.48.7) ##### Patch Changes - fix: allow multiple `server-timing` headers ([#&#8203;14700](https://github.com/sveltejs/kit/pull/14700)) - fix: allow access to root-level issues in schema-less forms ([#&#8203;14893](https://github.com/sveltejs/kit/pull/14893)) - fix: allow hosting hash-based apps from non-index.html files ([#&#8203;14825](https://github.com/sveltejs/kit/pull/14825)) ### [`v2.48.6`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2486) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.5...@sveltejs/kit@2.48.6) ##### Patch Changes - fix: clear issues upon passing validation ([#&#8203;14683](https://github.com/sveltejs/kit/pull/14683)) - fix: don't use fork of unrelated route ([#&#8203;14947](https://github.com/sveltejs/kit/pull/14947)) - fix: prevent type errors when optional `@opentelemetry/api` dependency isn't installed ([#&#8203;14949](https://github.com/sveltejs/kit/pull/14949)) - fix: preserve `this` when invoking standard validator ([#&#8203;14943](https://github.com/sveltejs/kit/pull/14943)) - fix: treat client/universal hooks as entrypoints for illegal server import detection ([#&#8203;14876](https://github.com/sveltejs/kit/pull/14876)) - fix: correct query `.set` and `.refresh` behavior in commands ([#&#8203;14877](https://github.com/sveltejs/kit/pull/14877)) - fix: improved the accuracy of the types of the output of `field.as('...')` ([#&#8203;14908](https://github.com/sveltejs/kit/pull/14908)) ### [`v2.48.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2485) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.4...@sveltejs/kit@2.48.5) ##### Patch Changes - fix: wait an extra microtask in dev before calling `$_init_$` ([#&#8203;14799](https://github.com/sveltejs/kit/pull/14799)) - fix: discard preload fork before creating a new one ([#&#8203;14865](https://github.com/sveltejs/kit/pull/14865)) - fix: delete `RemoteFormAllIssue`, add `path` to `RemoteFormIssue` ([#&#8203;14864](https://github.com/sveltejs/kit/pull/14864)) ### [`v2.48.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2484) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.3...@sveltejs/kit@2.48.4) ##### Patch Changes - fix: adjust query's promise implementation to properly allow chaining ([#&#8203;14859](https://github.com/sveltejs/kit/pull/14859)) - fix: make prerender cache work, including in development ([#&#8203;14860](https://github.com/sveltejs/kit/pull/14860)) ### [`v2.48.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2483) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.2...@sveltejs/kit@2.48.3) ##### Patch Changes - fix: include hash when using `resolve` with hash routing enabled ([#&#8203;14786](https://github.com/sveltejs/kit/pull/14786)) - fix: `afterNavigate` callback not running after hydration when experimental async is enabled ([#&#8203;14644](https://github.com/sveltejs/kit/pull/14644)) fix: Snapshot `restore` method not called after reload when experimental async is enabled - fix: expose `issue.path` in `.allIssues()` ([#&#8203;14784](https://github.com/sveltejs/kit/pull/14784)) ### [`v2.48.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2482) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.1...@sveltejs/kit@2.48.2) ##### Patch Changes - fix: update DOM before running navigate callbacks ([#&#8203;14829](https://github.com/sveltejs/kit/pull/14829)) ### [`v2.48.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2481) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.0...@sveltejs/kit@2.48.1) ##### Patch Changes - fix: wait for commit promise instead of `settled` ([#&#8203;14818](https://github.com/sveltejs/kit/pull/14818)) ### [`v2.48.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2480) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.3...@sveltejs/kit@2.48.0) ##### Minor Changes - feat: use experimental `fork` API when available ([#&#8203;14793](https://github.com/sveltejs/kit/pull/14793)) ##### Patch Changes - fix: await for `settled` instead of `tick` in navigate ([#&#8203;14800](https://github.com/sveltejs/kit/pull/14800)) ### [`v2.47.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2473) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.2...@sveltejs/kit@2.47.3) ##### Patch Changes - fix: avoid hanging when `error()` is used while streaming promises from a server `load` function ([#&#8203;14722](https://github.com/sveltejs/kit/pull/14722)) - chore: treeshake load function code if we know it's unused ([#&#8203;14764](https://github.com/sveltejs/kit/pull/14764)) - fix: `RecursiveFormFields` type for recursive or unknown schemas ([#&#8203;14734](https://github.com/sveltejs/kit/pull/14734)) - fix: rework internal representation of form value to be `$state` ([#&#8203;14771](https://github.com/sveltejs/kit/pull/14771)) ### [`v2.47.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2472) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.1...@sveltejs/kit@2.47.2) ##### Patch Changes - fix: streamed promise not resolving when another load function returns a fast resolving promise ([#&#8203;14753](https://github.com/sveltejs/kit/pull/14753)) - chore: allow to run preflight validation only ([#&#8203;14744](https://github.com/sveltejs/kit/pull/14744)) - fix: update overload to set `invalid` type to schema input ([#&#8203;14748](https://github.com/sveltejs/kit/pull/14748)) ### [`v2.47.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2471) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.0...@sveltejs/kit@2.47.1) ##### Patch Changes - fix: allow `read` to be used at the top-level of remote function files ([#&#8203;14672](https://github.com/sveltejs/kit/pull/14672)) - fix: more robust remote files generation ([#&#8203;14682](https://github.com/sveltejs/kit/pull/14682)) ### [`v2.47.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2470) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.5...@sveltejs/kit@2.47.0) ##### Minor Changes - feat: add [`signal`](https://developer.mozilla.org/en-US/docs/Web/API/Request/signal) property to request ([#&#8203;14715](https://github.com/sveltejs/kit/pull/14715)) ##### Patch Changes - fix: resolve remote module syntax errors with trailing expressions ([#&#8203;14728](https://github.com/sveltejs/kit/pull/14728)) ### [`v2.46.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2465) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.4...@sveltejs/kit@2.46.5) ##### Patch Changes - fix: ensure `form` remote functions' `fields.set` triggers reactivity ([#&#8203;14661](https://github.com/sveltejs/kit/pull/14661)) ### [`v2.46.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2464) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.3...@sveltejs/kit@2.46.4) ##### Patch Changes - fix: prevent access of Svelte 5-only `untrack` function ([#&#8203;14658](https://github.com/sveltejs/kit/pull/14658)) ### [`v2.46.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2463) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.2...@sveltejs/kit@2.46.3) ##### Patch Changes - fix: merge `field.set(...)` calls ([#&#8203;14651](https://github.com/sveltejs/kit/pull/14651)) - fix: don't automatically reset form after an enhanced submission ([#&#8203;14626](https://github.com/sveltejs/kit/pull/14626)) - fix: normalize path strings when updating field values ([#&#8203;14649](https://github.com/sveltejs/kit/pull/14649)) ### [`v2.46.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2462) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.1...@sveltejs/kit@2.46.2) ##### Patch Changes - fix: prevent code execution order issues around SvelteKit's `env` modules ([#&#8203;14637](https://github.com/sveltejs/kit/pull/14637)) ### [`v2.46.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2461) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.0...@sveltejs/kit@2.46.1) ##### Patch Changes - fix: use `$derived` for form fields ([#&#8203;14621](https://github.com/sveltejs/kit/pull/14621)) - docs: remove `@example` blocks to allow docs to deploy ([#&#8203;14636](https://github.com/sveltejs/kit/pull/14636)) - fix: require a value with `submit` and `hidden` fields ([#&#8203;14635](https://github.com/sveltejs/kit/pull/14635)) - fix: delete hydration cache on effect teardown ([#&#8203;14611](https://github.com/sveltejs/kit/pull/14611)) ### [`v2.46.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2460) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.45.0...@sveltejs/kit@2.46.0) ##### Minor Changes - feat: imperative form validation ([#&#8203;14624](https://github.com/sveltejs/kit/pull/14624)) ##### Patch Changes - fix: wait a tick before collecting form data for validation ([#&#8203;14631](https://github.com/sveltejs/kit/pull/14631)) - fix: prevent code execution order issues around SvelteKit's `env` modules ([#&#8203;14632](https://github.com/sveltejs/kit/pull/14632)) ### [`v2.45.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2450) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.44.0...@sveltejs/kit@2.45.0) ##### Minor Changes - feat: `form.for(id)` now implicitly sets id on form object ([#&#8203;14623](https://github.com/sveltejs/kit/pull/14623)) ##### Patch Changes - fix: allow `fetch` in remote function without emitting a warning ([#&#8203;14610](https://github.com/sveltejs/kit/pull/14610)) ### [`v2.44.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2440) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.8...@sveltejs/kit@2.44.0) ##### Minor Changes - feat: expose `event.route` and `event.url` to remote functions ([#&#8203;14606](https://github.com/sveltejs/kit/pull/14606)) - breaking: update experimental `form` API ([#&#8203;14481](https://github.com/sveltejs/kit/pull/14481)) ##### Patch Changes - fix: don't crawl error responses during prerendering ([#&#8203;14596](https://github.com/sveltejs/kit/pull/14596)) ### [`v2.43.8`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2438) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.7...@sveltejs/kit@2.43.8) ##### Patch Changes - fix: HMR for `query` ([#&#8203;14587](https://github.com/sveltejs/kit/pull/14587)) - fix: avoid client modules while traversing dependencies to prevent FOUC during dev ([#&#8203;14577](https://github.com/sveltejs/kit/pull/14577)) - fix: skip prebundling of .remote.js files ([#&#8203;14583](https://github.com/sveltejs/kit/pull/14583)) - fix: more robust remote file pattern matching ([#&#8203;14578](https://github.com/sveltejs/kit/pull/14578)) ### [`v2.43.7`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2437) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.6...@sveltejs/kit@2.43.7) ##### Patch Changes - fix: correctly type the `result` of `form` remote functions that do not accept data ([#&#8203;14573](https://github.com/sveltejs/kit/pull/14573)) - fix: force remote module chunks to isolate themselves ([#&#8203;14571](https://github.com/sveltejs/kit/pull/14571)) ### [`v2.43.6`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2436) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.5...@sveltejs/kit@2.43.6) ##### Patch Changes - fix: ensure cache key is consistent between client/server ([#&#8203;14563](https://github.com/sveltejs/kit/pull/14563)) - fix: keep resolve relative to initial base during prerender ([#&#8203;14533](https://github.com/sveltejs/kit/pull/14533)) - fix: avoid including `HEAD` twice when an unhandled HTTP method is used in a request to a `+server` handler that has both a `GET` handler and a `HEAD` handler ([#&#8203;14564](https://github.com/sveltejs/kit/pull/14564)) - fix: smoothscroll to deep link ([#&#8203;14569](https://github.com/sveltejs/kit/pull/14569)) ### [`v2.43.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2435) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.4...@sveltejs/kit@2.43.5) ##### Patch Changes - fix: fall back to non-relative resolution when calling `resolve(...)` outside an event context ([#&#8203;14532](https://github.com/sveltejs/kit/pull/14532)) ### [`v2.43.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2434) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.3...@sveltejs/kit@2.43.4) ##### Patch Changes - fix: Webcontainer AsyncLocalStorage workaround ([#&#8203;14526](https://github.com/sveltejs/kit/pull/14526)) ### [`v2.43.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2433) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.2...@sveltejs/kit@2.43.3) ##### Patch Changes - fix: Webcontainer AsyncLocalStorage workaround ([#&#8203;14521](https://github.com/sveltejs/kit/pull/14521)) - fix: include the value of form submitters on `form` remote functions ([#&#8203;14475](https://github.com/sveltejs/kit/pull/14475)) ### [`v2.43.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2432) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.1...@sveltejs/kit@2.43.2) ##### Patch Changes - fix: ensure rendering starts off synchronously ([#&#8203;14517](https://github.com/sveltejs/kit/pull/14517)) - fix: keep serialized remote data alive until navigation ([#&#8203;14508](https://github.com/sveltejs/kit/pull/14508)) ### [`v2.43.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2431) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.0...@sveltejs/kit@2.43.1) ##### Patch Changes - fix: consistently use bare import for internals ([#&#8203;14506](https://github.com/sveltejs/kit/pull/14506)) ### [`v2.43.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2430) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.42.2...@sveltejs/kit@2.43.0) ##### Minor Changes - feat: experimental async SSR ([#&#8203;14447](https://github.com/sveltejs/kit/pull/14447)) ##### Patch Changes - fix: ensure `__SVELTEKIT_PAYLOAD__.data` is accessed safely ([#&#8203;14491](https://github.com/sveltejs/kit/pull/14491)) - fix: create separate cache entries for non-exported remote function queries ([#&#8203;14499](https://github.com/sveltejs/kit/pull/14499)) ### [`v2.42.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2422) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.42.1...@sveltejs/kit@2.42.2) ##### Patch Changes - fix: prevent loops in postbuild analysis phase ([#&#8203;14450](https://github.com/sveltejs/kit/pull/14450)) - fix: handle nested object fields in form data ([#&#8203;14469](https://github.com/sveltejs/kit/pull/14469)) - fix: robustify form helper types ([#&#8203;14463](https://github.com/sveltejs/kit/pull/14463)) - fix: avoid running the `init` hook during builds if there's nothing to prerender ([#&#8203;14464](https://github.com/sveltejs/kit/pull/14464)) - fix: ensure SSR rendering gets request store context ([#&#8203;14476](https://github.com/sveltejs/kit/pull/14476)) ### [`v2.42.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2421) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.42.0...@sveltejs/kit@2.42.1) ##### Patch Changes - fix: ensure environment setup is in its own chunk ([#&#8203;14441](https://github.com/sveltejs/kit/pull/14441)) ### [`v2.42.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2420) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.41.0...@sveltejs/kit@2.42.0) ##### Minor Changes - feat: enhance remote form functions with schema support, `input` and `issues` properties ([#&#8203;14383](https://github.com/sveltejs/kit/pull/14383)) - breaking: remote form functions get passed a parsed POJO instead of a `FormData` object now ([#&#8203;14383](https://github.com/sveltejs/kit/pull/14383)) ### [`v2.41.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2410) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.40.0...@sveltejs/kit@2.41.0) ##### Minor Changes - feat: add `%sveltekit.version%` to `app.html` ([#&#8203;12132](https://github.com/sveltejs/kit/pull/12132)) ##### Patch Changes - fix: allow remote functions to return custom types serialized with `transport` hooks ([#&#8203;14435](https://github.com/sveltejs/kit/pull/14435)) - fix: fulfil `beforeNavigate` `complete` when redirected ([#&#8203;12896](https://github.com/sveltejs/kit/pull/12896)) ### [`v2.40.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2400) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.39.1...@sveltejs/kit@2.40.0) ##### Minor Changes - feat: include `event` property on popstate/link/form navigation ([#&#8203;14307](https://github.com/sveltejs/kit/pull/14307)) ##### Patch Changes - fix: respect `replaceState`/`keepFocus`/`noScroll` when a navigation results in a redirect ([#&#8203;14424](https://github.com/sveltejs/kit/pull/14424)) - fix: invalidate preload cache when invalidateAll is true ([#&#8203;14420](https://github.com/sveltejs/kit/pull/14420)) ### [`v2.39.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2391) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.39.0...@sveltejs/kit@2.39.1) ##### Patch Changes - fix: more robust remote function code transformation ([#&#8203;14418](https://github.com/sveltejs/kit/pull/14418)) ### [`v2.39.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2390) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.38.1...@sveltejs/kit@2.39.0) ##### Minor Changes - feat: lazy discovery of remote functions ([#&#8203;14293](https://github.com/sveltejs/kit/pull/14293)) ##### Patch Changes - fix: layout load data not serialized on error page ([#&#8203;14395](https://github.com/sveltejs/kit/pull/14395)) - fix: fail prerendering when remote function fails ([#&#8203;14365](https://github.com/sveltejs/kit/pull/14365)) - fix: treat handle hook redirect as part of remote function call as json redirect ([#&#8203;14362](https://github.com/sveltejs/kit/pull/14362)) ### [`v2.38.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2381) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.38.0...@sveltejs/kit@2.38.1) ##### Patch Changes - fix: enable redirects from queries ([#&#8203;14400](https://github.com/sveltejs/kit/pull/14400)) - fix: remove empty nodes from serialized server load data ([#&#8203;14404](https://github.com/sveltejs/kit/pull/14404)) - fix: allow commands from within endpoints ([#&#8203;14343](https://github.com/sveltejs/kit/pull/14343)) ### [`v2.38.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2380) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.37.1...@sveltejs/kit@2.38.0) ##### Minor Changes - feat: add new remote function `query.batch` ([#&#8203;14272](https://github.com/sveltejs/kit/pull/14272)) ### [`v2.37.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2371) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.37.0...@sveltejs/kit@2.37.1) ##### Patch Changes - fix: serialize server `load` data before passing to universal `load`, to handle mutations and promises ([#&#8203;14298](https://github.com/sveltejs/kit/pull/14298)) - fix: resolve\_route prevent dropping a trailing slash of id ([#&#8203;14294](https://github.com/sveltejs/kit/pull/14294)) - fix: assign correct status code to form submission error on the client ([#&#8203;14345](https://github.com/sveltejs/kit/pull/14345)) - fix: un-proxy `form.result` ([#&#8203;14346](https://github.com/sveltejs/kit/pull/14346)) ### [`v2.37.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2370) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.3...@sveltejs/kit@2.37.0) ##### Minor Changes - feat: automatically resolve `query.refresh()` promises on the server ([#&#8203;14332](https://github.com/sveltejs/kit/pull/14332)) - feat: allow query.set() to be called on the server ([#&#8203;14304](https://github.com/sveltejs/kit/pull/14304)) ##### Patch Changes - fix: disable CSRF checks in dev ([#&#8203;14335](https://github.com/sveltejs/kit/pull/14335)) - fix: allow redirects to external URLs from within form functions ([#&#8203;14329](https://github.com/sveltejs/kit/pull/14329)) - fix: add type definitions for `query.set()` method to override the value of a remote query function ([#&#8203;14303](https://github.com/sveltejs/kit/pull/14303)) - fix: ensure uniqueness of `form.for(...)` across form functions ([#&#8203;14327](https://github.com/sveltejs/kit/pull/14327)) ### [`v2.36.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2363) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.2...@sveltejs/kit@2.36.3) ##### Patch Changes - fix: bump devalue ([#&#8203;14323](https://github.com/sveltejs/kit/pull/14323)) - chore: consolidate dev checks to use `esm-env` instead of a `__SVELTEKIT_DEV__` global ([#&#8203;14308](https://github.com/sveltejs/kit/pull/14308)) - fix: reset form inputs by default when using remote form functions ([#&#8203;14322](https://github.com/sveltejs/kit/pull/14322)) ### [`v2.36.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2362) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.1...@sveltejs/kit@2.36.2) ##### Patch Changes - chore: make config deprecation warnings more visible ([#&#8203;14281](https://github.com/sveltejs/kit/pull/14281)) - chore: remove redundant Not Found error message ([#&#8203;14289](https://github.com/sveltejs/kit/pull/14289)) - chore: deprecate `csrf.checkOrigin` in favour of `csrf.trustedOrigins: ['*']` ([#&#8203;14281](https://github.com/sveltejs/kit/pull/14281)) ### [`v2.36.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2361) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.0...@sveltejs/kit@2.36.1) ##### Patch Changes - fix: ensure importing from `$app/navigation` works in test files ([#&#8203;14195](https://github.com/sveltejs/kit/pull/14195)) ### [`v2.36.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2360) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.35.0...@sveltejs/kit@2.36.0) ##### Minor Changes - feat: add `csrf.trustedOrigins` configuration ([#&#8203;14021](https://github.com/sveltejs/kit/pull/14021)) ##### Patch Changes - fix: correctly decode custom types streamed from a server load function ([#&#8203;14261](https://github.com/sveltejs/kit/pull/14261)) - fix: add trailing slash pathname when generating typed routes ([#&#8203;14065](https://github.com/sveltejs/kit/pull/14065)) ### [`v2.35.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2350) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.34.1...@sveltejs/kit@2.35.0) ##### Minor Changes - feat: better server-side error logging ([#&#8203;13990](https://github.com/sveltejs/kit/pull/13990)) ##### Patch Changes - fix: ensure static error page is loaded correctly for custom user errors ([#&#8203;13952](https://github.com/sveltejs/kit/pull/13952)) ### [`v2.34.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2341) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.34.0...@sveltejs/kit@2.34.1) ##### Patch Changes - fix: support multiple cookies with the same name across different paths and domains ([`b2c5d02`](https://github.com/sveltejs/kit/commit/b2c5d02994a6d83275d6fb3645e6f9a2518c8d20)) - fix: add link header when preloading font ([#&#8203;14200](https://github.com/sveltejs/kit/pull/14200)) - fix: `cookies.get(...)` returns `undefined` for a just-deleted cookie ([`b2c5d02`](https://github.com/sveltejs/kit/commit/b2c5d02994a6d83275d6fb3645e6f9a2518c8d20)) - fix: load env before prerender ([`c5f7139`](https://github.com/sveltejs/kit/commit/c5f713951e41af2000f21929d42eb9d30c9d3a5c)) ### [`v2.34.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2340) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.33.1...@sveltejs/kit@2.34.0) ##### Minor Changes - feat: allow dynamic `env` access during prerender ([#&#8203;14243](https://github.com/sveltejs/kit/pull/14243)) ##### Patch Changes - fix: clone `fetch` responses so that headers are mutable ([#&#8203;13942](https://github.com/sveltejs/kit/pull/13942)) - fix: serialize server `load` data before passing to universal `load`, to handle mutations ([#&#8203;14268](https://github.com/sveltejs/kit/pull/14268)) - fix: allow `asset(...)` to be used with imported assets ([#&#8203;14270](https://github.com/sveltejs/kit/pull/14270)) ### [`v2.33.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2331) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.33.0...@sveltejs/kit@2.33.1) ##### Patch Changes - fix: make paths in .css assets relative ([#&#8203;14262](https://github.com/sveltejs/kit/pull/14262)) - fix: avoid copying SSR stylesheets to client assets ([#&#8203;13069](https://github.com/sveltejs/kit/pull/13069)) ### [`v2.33.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2330) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.32.0...@sveltejs/kit@2.33.0) ##### Minor Changes - feat: configure error reporting when routes marked as prerendable were not prerendered ([#&#8203;11702](https://github.com/sveltejs/kit/pull/11702)) ##### Patch Changes - fix: use correct flag for server tracing ([#&#8203;14250](https://github.com/sveltejs/kit/pull/14250)) - fix: correct type names for new `handleUnseenRoutes` option ([#&#8203;14254](https://github.com/sveltejs/kit/pull/14254)) - chore: Better docs and error message for missing `@opentelemetry/api` dependency ([#&#8203;14250](https://github.com/sveltejs/kit/pull/14250)) ### [`v2.32.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2320) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.31.1...@sveltejs/kit@2.32.0) ##### Minor Changes - feat: inline load fetch `response.body` stream data as base64 in page ([#&#8203;11473](https://github.com/sveltejs/kit/pull/11473)) ##### Patch Changes - fix: better error when `.remote.ts` files are used without the `experimental.remoteFunctions` flag ([#&#8203;14225](https://github.com/sveltejs/kit/pull/14225)) ### [`v2.31.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2311) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.31.0...@sveltejs/kit@2.31.1) ##### Patch Changes - fix: pass options to resolve in resolveId hook ([#&#8203;14223](https://github.com/sveltejs/kit/pull/14223)) ### [`v2.31.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2310) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.30.1...@sveltejs/kit@2.31.0) ##### Minor Changes - feat: OpenTelemetry tracing for `handle`, `sequence`, form actions, remote functions, and `load` functions running on the server ([#&#8203;13899](https://github.com/sveltejs/kit/pull/13899)) - feat: add `instrumentation.server.ts` for tracing and observability setup ([#&#8203;13899](https://github.com/sveltejs/kit/pull/13899)) ### [`v2.30.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2301) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.30.0...@sveltejs/kit@2.30.1) ##### Patch Changes - chore: generate `$app/types` in a more Typescript-friendly way ([#&#8203;14207](https://github.com/sveltejs/kit/pull/14207)) ### [`v2.30.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2300) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.29.1...@sveltejs/kit@2.30.0) ##### Minor Changes - feat: allow to specify options for the service worker in `svelte.config.js` ([#&#8203;13578](https://github.com/sveltejs/kit/pull/13578)) ##### Patch Changes - fix: ensure buttonProps.enhance works on buttons with nested text ([#&#8203;14199](https://github.com/sveltejs/kit/pull/14199)) - fix: pass validation issues specifically to avoid non-enumerable spreading error ([#&#8203;14197](https://github.com/sveltejs/kit/pull/14197)) ### [`v2.29.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2291) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.29.0...@sveltejs/kit@2.29.1) ##### Patch Changes - chore: allow remote functions in all of the src directory ([#&#8203;14198](https://github.com/sveltejs/kit/pull/14198)) ### [`v2.29.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2290) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.28.0...@sveltejs/kit@2.29.0) ##### Minor Changes - feat: add a `kit.files.src` option ([#&#8203;14152](https://github.com/sveltejs/kit/pull/14152)) ##### Patch Changes - fix: don't treat `$lib/server.ts` or `$lib/server_whatever.ts` as server-only modules, only `$lib/server/**` ([#&#8203;14191](https://github.com/sveltejs/kit/pull/14191)) - fix: make illegal server-only import errors actually useful ([#&#8203;14155](https://github.com/sveltejs/kit/pull/14155)) - chore: deprecate `config.kit.files` options ([#&#8203;14152](https://github.com/sveltejs/kit/pull/14152)) - fix: avoid warning if page options in a Svelte file belongs to a comment ([#&#8203;14180](https://github.com/sveltejs/kit/pull/14180)) ### [`v2.28.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2280) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.3...@sveltejs/kit@2.28.0) ##### Minor Changes - feat: add `RouteId` and `RouteParams` to NavigationTarget interface ([#&#8203;14167](https://github.com/sveltejs/kit/pull/14167)) - feat: add `pending` property to forms and commands ([#&#8203;14137](https://github.com/sveltejs/kit/pull/14137)) ##### Patch Changes - fix: `fetch` imported assets during prerender ([#&#8203;12201](https://github.com/sveltejs/kit/pull/12201)) - chore: refactor redundant base64 encoding/decoding functions ([#&#8203;14160](https://github.com/sveltejs/kit/pull/14160)) - fix: use correct cache result when fetching same url multiple times ([#&#8203;12355](https://github.com/sveltejs/kit/pull/12355)) - fix: don't refresh queries automatically when running commands ([#&#8203;14170](https://github.com/sveltejs/kit/pull/14170)) - fix: avoid writing remote function bundle to disk when treeshaking prerendered queries ([#&#8203;14161](https://github.com/sveltejs/kit/pull/14161)) ### [`v2.27.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2273) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.2...@sveltejs/kit@2.27.3) ##### Patch Changes - chore: add `.git` to the end of `package.json` repository url ([#&#8203;14134](https://github.com/sveltejs/kit/pull/14134)) ### [`v2.27.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2272) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.1...@sveltejs/kit@2.27.2) ##### Patch Changes - fix: ensure `form()` remote functions work when the app is configured to a single output ([#&#8203;14127](https://github.com/sveltejs/kit/pull/14127)) - fix: use the configured base path when calling remote functions from the client ([#&#8203;14106](https://github.com/sveltejs/kit/pull/14106)) ### [`v2.27.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2271) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.0...@sveltejs/kit@2.27.1) ##### Patch Changes - fix: correctly type remote function input parameters from a schema ([#&#8203;14098](https://github.com/sveltejs/kit/pull/14098)) - fix: match URL-encoded newlines in rest route params ([#&#8203;14102](https://github.com/sveltejs/kit/pull/14102)) - fix: correctly spell server-side in error messages ([#&#8203;14101](https://github.com/sveltejs/kit/pull/14101)) ### [`v2.27.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2270) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.26.1...@sveltejs/kit@2.27.0) ##### Minor Changes - feat: remote functions ([#&#8203;13986](https://github.com/sveltejs/kit/pull/13986)) ### [`v2.26.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2261) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.26.0...@sveltejs/kit@2.26.1) ##### Patch Changes - fix: posixify internal app server path ([#&#8203;14049](https://github.com/sveltejs/kit/pull/14049)) - fix: ignore route groups when generating typed routes ([#&#8203;14050](https://github.com/sveltejs/kit/pull/14050)) ### [`v2.26.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2260) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.25.2...@sveltejs/kit@2.26.0) ##### Minor Changes - feat: better type-safety for `page.route.id`, `page.params`, `page.url.pathname` and various other places ([#&#8203;13864](https://github.com/sveltejs/kit/pull/13864)) - feat: `resolve(...)` and `asset(...)` helpers for resolving paths ([#&#8203;13864](https://github.com/sveltejs/kit/pull/13864)) - feat: Add `$app/types` module with `Asset`, `RouteId`, `Pathname`, `ResolvedPathname` `RouteParams<T>` and `LayoutParams<T>` ([#&#8203;13864](https://github.com/sveltejs/kit/pull/13864)) ### [`v2.25.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2252) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.25.1...@sveltejs/kit@2.25.2) ##### Patch Changes - fix: correctly set URL when navigating during an ongoing navigation ([#&#8203;14004](https://github.com/sveltejs/kit/pull/14004)) ### [`v2.25.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2251) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.25.0...@sveltejs/kit@2.25.1) ##### Patch Changes - fix: add missing params property ([#&#8203;14012](https://github.com/sveltejs/kit/pull/14012)) ### [`v2.25.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2250) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.24.0...@sveltejs/kit@2.25.0) ##### Minor Changes - feat: support asynchronous `read` implementations from adapters ([#&#8203;13859](https://github.com/sveltejs/kit/pull/13859)) ##### Patch Changes - fix: log when no Svelte config file has been found to avoid confusion ([#&#8203;14001](https://github.com/sveltejs/kit/pull/14001)) ### [`v2.24.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2240) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.23.0...@sveltejs/kit@2.24.0) ##### Minor Changes - feat: typed `params` prop for page/layout components ([#&#8203;13999](https://github.com/sveltejs/kit/pull/13999)) ##### Patch Changes - fix: treeshake internal `storage.get` helper ([#&#8203;13998](https://github.com/sveltejs/kit/pull/13998)) ### [`v2.23.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2230) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.5...@sveltejs/kit@2.23.0) ##### Minor Changes - feat: support svelte.config.ts ([#&#8203;13935](https://github.com/sveltejs/kit/pull/13935)) > **NOTE** > > Your runtime has to support importing TypeScript files for `svelte.config.ts` to work. > In Node.js, the feature is supported with the `--experimental-strip-types` flag starting in Node 22.6.0 and supported without a flag starting in Node 23.6.0. ##### Patch Changes - fix: extend `vite-plugin-svelte`'s `Config` type instead of duplicating it ([#&#8203;13982](https://github.com/sveltejs/kit/pull/13982)) - fix: regression with `rolldown-vite` not bundling a single JS file for single and inline apps ([#&#8203;13941](https://github.com/sveltejs/kit/pull/13941)) ### [`v2.22.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2225) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.4...@sveltejs/kit@2.22.5) ##### Patch Changes - fix: re-add `@sveltejs/kit` to `optimizeDeps.exclude` ([#&#8203;13983](https://github.com/sveltejs/kit/pull/13983)) ### [`v2.22.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2224) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.3...@sveltejs/kit@2.22.4) ##### Patch Changes - fix: force `$app/*` modules to be bundled ([#&#8203;13977](https://github.com/sveltejs/kit/pull/13977)) ### [`v2.22.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2223) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.2...@sveltejs/kit@2.22.3) ##### Patch Changes - fix: don't bundle `@sveltejs/kit` ([#&#8203;13971](https://github.com/sveltejs/kit/pull/13971)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMjEuNCIsInVwZGF0ZWRJblZlciI6IjQ0LjEzMi42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Update dependency @sveltejs/kit to v3
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
2fc02d609f
Author
Member

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: kalle-ui@0.0.1
npm error Found: vite@8.3.3
npm error node_modules/vite
npm error   dev vite@"8.3.3" from the root project
npm error   peer vite@"^8.0.12" from @sveltejs/kit@3.0.1
npm error   node_modules/@sveltejs/kit
npm error     dev @sveltejs/kit@"3.0.1" from the root project
npm error   3 more (@vitejs/devtools, @vitejs/devtools-vite, vitest)
npm error
npm error Could not resolve dependency:
npm error peer vite@"^5.0.0" from @sveltejs/vite-plugin-svelte@4.0.4
npm error node_modules/@sveltejs/vite-plugin-svelte
npm error   dev @sveltejs/vite-plugin-svelte@"4.0.4" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /tmp/renovate/cache/others/npm/_logs/2026-10-09T06_29_55_605Z-eresolve-report.txt
npm error A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2026-10-09T06_29_55_605Z-debug-0.log

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: package-lock.json ``` npm warn Unknown env config "store". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. npm error code ERESOLVE npm error ERESOLVE unable to resolve dependency tree npm error npm error While resolving: kalle-ui@0.0.1 npm error Found: vite@8.3.3 npm error node_modules/vite npm error dev vite@"8.3.3" from the root project npm error peer vite@"^8.0.12" from @sveltejs/kit@3.0.1 npm error node_modules/@sveltejs/kit npm error dev @sveltejs/kit@"3.0.1" from the root project npm error 3 more (@vitejs/devtools, @vitejs/devtools-vite, vitest) npm error npm error Could not resolve dependency: npm error peer vite@"^5.0.0" from @sveltejs/vite-plugin-svelte@4.0.4 npm error node_modules/@sveltejs/vite-plugin-svelte npm error dev @sveltejs/vite-plugin-svelte@"4.0.4" from the root project npm error npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error /tmp/renovate/cache/others/npm/_logs/2026-10-09T06_29_55_605Z-eresolve-report.txt npm error A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2026-10-09T06_29_55_605Z-debug-0.log ```
teckids_renovate_bot force-pushed renovate/sveltejs-kit-3.x from 2fc02d609f
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
to a20e57a475
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
2026-10-09 04:41:59 +02:00
Compare
teckids_renovate_bot force-pushed renovate/sveltejs-kit-3.x from a20e57a475
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
to 793df15a81
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
2026-10-09 08:30:03 +02:00
Compare
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/sveltejs-kit-3.x:renovate/sveltejs-kit-3.x
git switch renovate/sveltejs-kit-3.x

Merge

Merge the changes and update on Forgejo.
git switch main
git merge --no-ff renovate/sveltejs-kit-3.x
git switch renovate/sveltejs-kit-3.x
git rebase main
git switch main
git merge --ff-only renovate/sveltejs-kit-3.x
git switch renovate/sveltejs-kit-3.x
git rebase main
git switch main
git merge --no-ff renovate/sveltejs-kit-3.x
git switch main
git merge --squash renovate/sveltejs-kit-3.x
git switch main
git merge --ff-only renovate/sveltejs-kit-3.x
git switch main
git merge renovate/sveltejs-kit-3.x
git push origin main
Sign in to join this conversation.
No reviewers
No labels
Doing
To Do
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
teckids/kalle-ui!70
No description provided.