@sveltejs/kit@3.0.0
Major Changes
-
breaking: move remote function types to
$app/server(#16740) -
breaking: remove
experimental.handleRenderingErrorsflag (#16265) -
breaking: make
getRequestandsetResponsesynchronous (#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
cookiev2. 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
preloadStrategyoption.modulepreloadwill always be used (#15256) -
breaking: default the cookie
pathoption to'/'(#15398) -
breaking: remove
@sveltejs/kit/node/polyfills(#15430) -
breaking: add
config.kit.output.linkHeaderPreloadto preload using theLinkheader (#15939) -
breaking: require
@sveltejs/vite-plugin-sveltev7 (#15371) -
breaking: make
page.urlimmutable on a type level (#16256) -
breaking: remove
base,assets, andresolveRoutefrom$app/paths(#15507) -
breaking: remove
createEntriesfrom theBuilderobject passed to adapter functions (#15509) -
breaking: return no content for 204 responses (#16200)
-
breaking: rename
Pathnametype toPathandAssettoAssetPath(#16430)
breaking: remove leading/fromPathandAssetPath -
breaking:
handle'sresolveis now typed to always return aPromise(#16352) -
breaking: remove
Serverconstructor andSSRManifestfrom 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
defineParamsand associated types to@sveltejs/kit/params(#16716) -
breaking: remove the deprecated CSRF
checkOriginoption in favor oftrustedOrigins(#15437) -
breaking: the
deltaproperty now only exists forpopstatenavigation events (#15522) -
breaking: change
form.errortype fromanytoApp.Error | undefined(#16245) -
breaking: remove deprecated
pragmaheader in version polling for improved CORS support (#15428) -
breaking:
gotonow 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
handleErrorhook (#16664) -
breaking: require Svelte 5.56.4 or newer (#15371)
-
breaking: error on
event.url,event.paramsandevent.routeaccess 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-workermodule (#16450) -
breaking: move
defineEnvVarsto@sveltejs/kit/env(#16375) -
breaking: nested server-only directories (#15685)
-
feat: allow adapters to provide additional Vite plugins (#16206)
-
breaking: replace the
$libalias with#liband removefiles.libconfig. (#16360) -
breaking: remove
#libdefinition frompaths; requires explicit module extensions as a result (#16736) -
chore: change
error,isHttpError,redirect, andisRedirectto 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.pollIntervalto 1 hour (#16496) -
breaking: disallow cross-origin form submissions without a
Content-Typeheader (#16347) -
breaking: Server-only directories (
/server/in the path) are now treated as server-only everywhere inside the project (exceptsrc/routesand the assets directory) (#16360) -
breaking:
configexported 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 offalse(#15907) -
breaking: move tracing out of the experimental namespace and remove the instrumentation flag (#16260)
-
breaking: add
kit.paths.originconfig option, removekit.prerender.originand theadapter-nodeORIGINenvironment variable (#16161) -
breaking: move
Page,ReadonlyURLandReadonlyURLSearchParamsfrom@sveltejs/kitto$app/state(#16694) -
breaking: remove
$app/stores(#15499) -
breaking: add
refreshAlland deprecateinvalidateAll(#16289) -
breaking: reject query parameters beginning with
x-sveltekit-(#17125) -
breaking: disallow
*.remote.ts/jsfiles unlessexperimental.remoteFunctionsis enabled (#16247) -
breaking: replace the
noScrollandkeepFocusoptions ofgotowith a singleresetoption, and thedata-sveltekit-noscrollanddata-sveltekit-keepfocusattributes withdata-sveltekit-reset(#16558) -
breaking: don't abort navigation when calling
invalidate(All)during navigation (#16188) -
breaking: consistent special filename patterns (#16382)
-
breaking: allow
handleErrorto 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 stablerolldown1.0.0 (#16134) -
breaking: only include routes with a
+pageor+serverinRouteId(#16580) -
breaking: require Node 22.17 (#16597)
-
breaking: deprecate
error(status, {...})in favour oferror(status, message, {...})(#16540) -
breaking: replace the
builder.generateManifestwithbuilder.generateServerInstanceandbuilder.manifest(#16875) -
breaking: forbid external redirects by default (#16198)
-
breaking: separate adapter Vite plugins into
preandpost(#16711) -
breaking: remove param files in folder in favor of
params.js/tsfile (#16189) -
breaking: move env-related types to
@sveltejs/kit/env(#16739) -
breaking:
preloadCodenow takes a route ID (e.g./blog/[slug]) instead of a pathname. Route IDs are not prefixed withpaths.base(#16576) -
breaking: move
BeforeNavigate,OnNavigate,AfterNavigate,Navigation,NavigationTarget,NavigationType,GotoOptionsand theNavigation*variant types from@sveltejs/kitto$app/navigation(#16694) -
breaking: move
ActionResultandSubmitFunctionfrom@sveltejs/kitto$app/forms(#16694) -
breaking: remove
handleValidationErrorand pass remote function validation errors tohandleErrorwithkind: '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/manifestmodule withimmutable,assets,prerendered, androutesexports (#16372) -
feat: ignore files with + prefix if they contain test/spec/stories (#16715)
-
feat: add
ErrorPropsto 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
gotoand deprecatepushStateandreplaceState(#16449) -
feat: abort
request.signalwhen the response closes prematurely, via a newresponseoption forgetRequest(#16793) -
feat: make
$app/pathsimportable in service workers (#16441) -
feat: pass the project-relative source
filenameto thepreloadfilter 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/publicand$app/environmentas deprecated aliases for$app/env/private$app/env/publicand$app/env(#16334) -
feat: add
pageandendpointbooleans to$app/manifest'sroutes, and export aManifestRoutetype (#16594) -
feat:
$app/service-workermodule (#16458) -
feat: resolve paths using the Vite config
rootoption instead ofprocess.cwd()to better support monorepo configurations such as Vitest workspaces (#15469) -
feat: better error logging (#16374)
-
feat: add
PageRouteIdandEndpointRouteIdto$app/types(#16594) -
feat: better tsconfig validation (#16458)
-
feat: add
dirty()property to form fields (#16208) -
feat: support the
QUERYHTTP method in+server.js(#16782) -
feat: allow adapters to override
getRequestandsetResponseduringvite devandvite preview(#16753) -
chore: deprecate
Responsehelpers in favor of platform-provided alternatives (#15448) -
feat: add
cookies.parsemethod (#16203) -
chore: deprecate
export const snapshotin favour of thesnapshothelper (#16687) -
feat: add
snapshothelper to$app/navigation(#16685) -
feat: support custom values in
page.stateviatransporthook (#16662) -
fix: default cookies to
securetofalseduring development (#16462) -
feat: warn when naively proxying requests that result in responses with a
content-encodingheader (#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
applyReroutehelper 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
Pathtypes 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
undefinedvalues to be passed to form field.as(...)where applicable (#15681) -
fix: respect
paths.relativeduring development for client files (#17053) -
fix: validate prerender concurrency (#17145)
-
chore: deprecate
builder.rimrafandbuilder.mkdirpin favour ofnode:fsmethods (#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
.htmlpages (#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 withcookies.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
mrmimeto 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.scrollRestorationset tomanualwhen 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.jsonbased on Viterootsetting (#16229) -
fix: rebuild the dev manifest when route files disappear during an incremental update (#16643)
-
breaking: populate env vars before
instrumentation.server.jsis 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.prototypemembers as param matchers during validation (#16612) -
fix: generate a
neverPathtype 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/apito prevent bundler chunk colocation betweeninstrumentation.server.jsand application code (#16302) -
fix: support form fields named after Object prototype properties (#17136)
-
fix: exclude routes without a page or endpoint from
routesin$app/manifest, and remove directories with no route files fromLayoutParams(#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
nullaccept-languageheader on internalfetchsub-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
fetchwhenpaths.baseis 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 asvite-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.prototypemember (#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
hashchangeto app listeners (#16992) -
fix: keep a
form.forinstance 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
$liband$service-workerwhen 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
RequestEventproperties asreadonly(#16661) -
fix: render the nearest
+error.svelteat 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-typescriptto 1.0.12 (#16745) -
fix: update
matchparameter 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
.icofiles withimage/x-iconContent-Type (#16234) -
chore: bump
magic-stringto 1.1.0 (#16745) -
fix: exclude inlined files from the page's
$app/manifestimmutable 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-htmltrusted-types policy when client-side code is shipped, allowing builds where all pages havecsr: 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.origintype looser (#16215) -
chore: bump
devalueto 5.9.0 (#16745) -
feat: send periodic
keep-aliveSSE comments fromquery.liveto prevent idle-timeout errors (#16063) -
fix: send an explicit SSE Accept header for
query.liverequests to avoid buffering by proxies (#17104) -
fix: don't touch the
query.livestream controller after teardown, and make response cancellation observable via the generator'srequest.signal(#16790) -
fix: print
builder.log.warnmessages 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
logLevelandcustomLogger(#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 nowall(#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
cookiedependency during build (#16936) -
fix: reinstate
$app/environmentas an alias for$app/env, in case dependencies import it (#15964) -
fix: preserve
paths.basewhenvite previewredirects a prerendered page to the correct trailing slash (#16836) -
fix: error when reading non-serialized
set-cookieheaders viagetSetCookieinload(#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
aliasoption (#16470) -
fix: don't attempt to serialize fetch responses when the request body is not a string or TypedArray (#16501)
-
fix: respond to
HEADrequests 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
versionin service workers (#16434) -
feat: add field.touched() helper to remote form fields (#14692)
-
fix: respect
paths.relativefor server-side route resolution imports (#17056) -
fix: read the error status of
App.Errorin theprerenderandquery.liveremote 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.withResolversin 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.svelteis torn down (#16296) -
fix: clear
navigatingwhen 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.corsandpreview.corsconfig instead of overriding them (#16924) -
fix: respect the status returned from
handleErroron 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.jsoninstead of the deprecatedjsonhelper 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
Serverin favour of theserverobject written bybuilder.generateServerInstance(#17000) -
chore: derive
content-lengthfrom fixed response bodies insetResponse(#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
cookieto 2.0.1 (#16745) -
fix: detect
$app/serverand$app/env/privateclient imports when SvelteKit is installed inside the project root (#16648) -
chore: read
optionsfrom 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.jsonchecks ifupdated.currentis alreadytrue(#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
Setto 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.allowlist (#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/immutablefiles in$app/manifest'simmutablein the service worker (#16531) -
chore: remove the dead
SSRState.fallbackfield 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
acornto 8.18.0 (#16745) -
fix: resolve
rootper 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_losswarning andstate_unsafe_mutationerror when the new version detector runs after anawait(#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
--watchflag (#16632) -
chore: unify the
walkandlist_filesfilesystem 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.jsonso 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.Errorparameters (#16725) -
fix: prerender and crawl pages whose
content-typeheader carries acharsetparameter (#16567) -
fix: stream promised
readresults 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
parseSyncinstead ofacorn(#16947) -
fix: correctly decode
[u+nnnn]escape sequences aboveffff(#16611) -
fix: Reject all pending query promises when a query fails before resolving with a value for the first time (#16890)