chore(deps): update dependency @sveltejs/kit to v2.70.2 [security] #2

Open
update-kitten-bot wants to merge 1 commit from renovate/npm-sveltejs-kit-vulnerability into main

This PR contains the following updates:

Package Change Age Confidence
@sveltejs/kit (source) 2.48.52.70.2 age confidence

SvelteKit is vulnerable to denial of service and possible SSRF when using prerendering

CVE-2025-67647 / GHSA-j62c-4x62-9r35

More information

Details

Summary

Versions of SvelteKit are vulnerable to a server side request forgery (SSRF) and denial of service (DoS) under certain conditions.

Details

Affected versions from 2.44.0 onwards are vulnerable to DoS if:

  • your app has at least one prerendered route (export const prerender = true)

Affected versions from 2.19.0 onwards are vulnerable to DoS and SSRF if:

  • your app has at least one prerendered route (export const prerender = true)
  • AND you are using adapter-node without a configured ORIGIN environment variable, and you are not using a reverse proxy that implements Host header validation
Impact

The DoS causes the running server process to end.

The SSRF allows access to internal services that can be reached without authentication when fetched from SvelteKit's server runtime.

It is also possible to obtain an SXSS via cache poisoning, by forcing a potential CDN to cache an XSS returned by the attacker's server (the latter being able to specify the cache-control of their choice).

Credits

Severity

  • CVSS Score: 8.4 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:H/SC:L/SI:L/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


@​sveltejs/adapter-node has a BODY_SIZE_LIMIT bypass

CVE-2026-40073 / GHSA-2crg-3p73-43xp

More information

Details

Under certain circumstances, requests could bypass the BODY_SIZE_LIMIT on SvelteKit applications running with adapter-node. This bypass does not affect body size limits at other layers of the application stack, so limits enforced in the WAF, gateway, or at the platform level are unaffected.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


@​sveltejs/kit: Unvalidated redirect in handle hook causes Denial-of-Service

CVE-2026-40074 / GHSA-3f6h-2hrp-w5wx

More information

Details

redirect, when called from inside the handle server hook with a location parameter containing characters that are invalid in a HTTP header, will cause an unhandled TypeError. This could result in DoS on some platforms, especially if the location passed to redirect contains unsanitized user input.

Severity

  • CVSS Score: 6.3 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


SvelteKit: Prototype pollution in file input deletion path in remote-function forms

GHSA-866w-xmhq-wj7x

More information

Details

If you use remote form functions, have an input field of type file, and accept arbitrary user-controlled path names for the field, then you are vulnerable to a prototype pollution attack where the attacker can remove e.g. methods on the prototype.

Severity

  • CVSS Score: 4.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


SvelteKit: Big remote form function payloads can cause Node process to crash

GHSA-wqjv-9729-c5q2

More information

Details

Big remote form function payloads can cause the Node process to crash. Doing this repeatedly can cause DoS.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


SvelteKit: ReDoS (O(n^2)) in content negotiation — unauthenticated DoS via the Accept header

CVE-2026-66062 / GHSA-29g2-3rmr-qm68

More information

Details

Impact

SvelteKit is vulnerable to remote CPU-exhaustion DoS attacks via specifically-crafted Accept headers. The impact is mitigated by default header length limits on most platforms, but in the case of raised or absent limits a denial of service is possible.

Patches

The vulnerability is patched in @sveltejs/kit version 2.70.2.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

sveltejs/kit (@​sveltejs/kit)

v2.70.2

Compare Source

Patch Changes
  • fix: prevent quadratic backtracking in Accept header content negotiation (#​1)

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: detect destructured load and actions exports during type generation (#​16329)

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

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

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

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

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

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

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)


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • 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.48.5` → `2.70.2`](https://renovatebot.com/diffs/npm/@sveltejs%2fkit/2.48.5/2.70.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@sveltejs%2fkit/2.70.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sveltejs%2fkit/2.48.5/2.70.2?slim=true) | --- ### SvelteKit is vulnerable to denial of service and possible SSRF when using prerendering [CVE-2025-67647](https://nvd.nist.gov/vuln/detail/CVE-2025-67647) / [GHSA-j62c-4x62-9r35](https://github.com/advisories/GHSA-j62c-4x62-9r35) <details> <summary>More information</summary> #### Details ##### Summary Versions of SvelteKit are vulnerable to a server side request forgery (SSRF) and denial of service (DoS) under certain conditions. ##### Details Affected versions from 2.44.0 onwards are vulnerable to DoS if: - your app has at least one prerendered route (`export const prerender = true`) Affected versions from 2.19.0 onwards are vulnerable to DoS and SSRF if: - your app has at least one prerendered route (`export const prerender = true`) - AND you are using `adapter-node` without a configured `ORIGIN` environment variable, and you are not using a reverse proxy that implements Host header validation ##### Impact The DoS causes the running server process to end. The SSRF allows access to internal services that can be reached without authentication when fetched from SvelteKit's server runtime. It is also possible to obtain an SXSS via cache poisoning, by forcing a potential CDN to cache an XSS returned by the attacker's server (the latter being able to specify the cache-control of their choice). ##### Credits - Allam Rachid ([zhero;](https://zhero-web-sec.github.io/research-and-things/)) - Allam Yasser (inzo) - d-xuan ([wednesday](https://d-xuan.github.io/wednesday/)) #### Severity - CVSS Score: 8.4 / 10 (High) - Vector String: `CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:H/SC:L/SI:L/SA:N` #### References - [https://github.com/sveltejs/kit/security/advisories/GHSA-j62c-4x62-9r35](https://github.com/sveltejs/kit/security/advisories/GHSA-j62c-4x62-9r35) - [https://nvd.nist.gov/vuln/detail/CVE-2025-67647](https://nvd.nist.gov/vuln/detail/CVE-2025-67647) - [https://github.com/sveltejs/kit/commit/d9ae9b00b14f5574d109f3fd548f960594346226](https://github.com/sveltejs/kit/commit/d9ae9b00b14f5574d109f3fd548f960594346226) - [https://github.com/sveltejs/kit](https://github.com/sveltejs/kit) - [https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fadapter-node%405.5.1](https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fadapter-node%405.5.1) - [https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.49.5](https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.49.5) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-j62c-4x62-9r35) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### @&#8203;sveltejs/adapter-node has a BODY_SIZE_LIMIT bypass [CVE-2026-40073](https://nvd.nist.gov/vuln/detail/CVE-2026-40073) / [GHSA-2crg-3p73-43xp](https://github.com/advisories/GHSA-2crg-3p73-43xp) <details> <summary>More information</summary> #### Details Under certain circumstances, requests could bypass the `BODY_SIZE_LIMIT` on SvelteKit applications running with `adapter-node`. This bypass does not affect body size limits at other layers of the application stack, so limits enforced in the WAF, gateway, or at the platform level are unaffected. #### Severity - CVSS Score: 8.2 / 10 (High) - Vector String: `CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N` #### References - [https://github.com/sveltejs/kit/security/advisories/GHSA-2crg-3p73-43xp](https://github.com/sveltejs/kit/security/advisories/GHSA-2crg-3p73-43xp) - [https://nvd.nist.gov/vuln/detail/CVE-2026-40073](https://nvd.nist.gov/vuln/detail/CVE-2026-40073) - [https://github.com/sveltejs/kit/commit/3202ed6c98f9e8d86bf0c4c7ad0f2e273e5e3b95](https://github.com/sveltejs/kit/commit/3202ed6c98f9e8d86bf0c4c7ad0f2e273e5e3b95) - [https://github.com/sveltejs/kit](https://github.com/sveltejs/kit) - [https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.57.1](https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.57.1) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.57.1](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.57.1) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-2crg-3p73-43xp) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### @&#8203;sveltejs/kit: Unvalidated redirect in handle hook causes Denial-of-Service [CVE-2026-40074](https://nvd.nist.gov/vuln/detail/CVE-2026-40074) / [GHSA-3f6h-2hrp-w5wx](https://github.com/advisories/GHSA-3f6h-2hrp-w5wx) <details> <summary>More information</summary> #### Details `redirect`, when called from inside the `handle` server hook with a location parameter containing characters that are invalid in a HTTP header, will cause an unhandled `TypeError`. This could result in DoS on some platforms, especially if the location passed to `redirect` contains unsanitized user input. #### Severity - CVSS Score: 6.3 / 10 (Medium) - Vector String: `CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L` #### References - [https://github.com/sveltejs/kit/security/advisories/GHSA-3f6h-2hrp-w5wx](https://github.com/sveltejs/kit/security/advisories/GHSA-3f6h-2hrp-w5wx) - [https://nvd.nist.gov/vuln/detail/CVE-2026-40074](https://nvd.nist.gov/vuln/detail/CVE-2026-40074) - [https://github.com/sveltejs/kit/commit/10d7b44425c3d9da642eecce373d0c6ef83b4fcd](https://github.com/sveltejs/kit/commit/10d7b44425c3d9da642eecce373d0c6ef83b4fcd) - [https://github.com/sveltejs/kit](https://github.com/sveltejs/kit) - [https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.57.1](https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.57.1) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.57.1](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.57.1) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-3f6h-2hrp-w5wx) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### SvelteKit: Prototype pollution in file input deletion path in remote-function forms [GHSA-866w-xmhq-wj7x](https://github.com/advisories/GHSA-866w-xmhq-wj7x) <details> <summary>More information</summary> #### Details If you use remote form functions, have an input field of type `file`, and accept arbitrary user-controlled path names for the field, then you are vulnerable to a prototype pollution attack where the attacker can remove e.g. methods on the prototype. #### Severity - CVSS Score: 4.3 / 10 (Medium) - Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L` #### References - [https://github.com/sveltejs/kit/security/advisories/GHSA-866w-xmhq-wj7x](https://github.com/sveltejs/kit/security/advisories/GHSA-866w-xmhq-wj7x) - [https://github.com/sveltejs/kit/pull/16218](https://github.com/sveltejs/kit/pull/16218) - [https://github.com/sveltejs/kit/commit/df32f6fe86cdd0b68b650e3e4631e5896453dcd3](https://github.com/sveltejs/kit/commit/df32f6fe86cdd0b68b650e3e4631e5896453dcd3) - [https://github.com/sveltejs/kit](https://github.com/sveltejs/kit) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.69.1](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.69.1) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@3.0.0-next.7](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@3.0.0-next.7) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-866w-xmhq-wj7x) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### SvelteKit: Big remote form function payloads can cause Node process to crash [GHSA-wqjv-9729-c5q2](https://github.com/advisories/GHSA-wqjv-9729-c5q2) <details> <summary>More information</summary> #### Details Big remote form function payloads can cause the Node process to crash. Doing this repeatedly can cause DoS. #### Severity - CVSS Score: 5.3 / 10 (Medium) - Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L` #### References - [https://github.com/sveltejs/kit/security/advisories/GHSA-wqjv-9729-c5q2](https://github.com/sveltejs/kit/security/advisories/GHSA-wqjv-9729-c5q2) - [https://github.com/sveltejs/kit/pull/16219](https://github.com/sveltejs/kit/pull/16219) - [https://github.com/sveltejs/kit/commit/82b0370c793ac392cee5c2e28f4b8fed09c64582](https://github.com/sveltejs/kit/commit/82b0370c793ac392cee5c2e28f4b8fed09c64582) - [https://github.com/sveltejs/kit](https://github.com/sveltejs/kit) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.69.1](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.69.1) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@3.0.0-next.7](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@3.0.0-next.7) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-wqjv-9729-c5q2) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### SvelteKit: ReDoS (O(n^2)) in content negotiation — unauthenticated DoS via the Accept header [CVE-2026-66062](https://nvd.nist.gov/vuln/detail/CVE-2026-66062) / [GHSA-29g2-3rmr-qm68](https://github.com/advisories/GHSA-29g2-3rmr-qm68) <details> <summary>More information</summary> #### Details ##### Impact SvelteKit is vulnerable to remote CPU-exhaustion DoS attacks via specifically-crafted `Accept` headers. The impact is mitigated by default header length limits on most platforms, but in the case of raised or absent limits a denial of service is possible. ##### Patches The vulnerability is patched in `@sveltejs/kit` version 2.70.2. #### Severity - CVSS Score: 5.3 / 10 (Medium) - Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L` #### References - [https://github.com/sveltejs/kit/security/advisories/GHSA-29g2-3rmr-qm68](https://github.com/sveltejs/kit/security/advisories/GHSA-29g2-3rmr-qm68) - [https://github.com/sveltejs/kit/commit/82712fc02c24b1dcf5b25d7a52129cd8455f04f5](https://github.com/sveltejs/kit/commit/82712fc02c24b1dcf5b25d7a52129cd8455f04f5) - [https://github.com/sveltejs/kit](https://github.com/sveltejs/kit) - [https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.70.2](https://github.com/sveltejs/kit/releases/tag/@&#8203;sveltejs/kit@2.70.2) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-29g2-3rmr-qm68) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### Release Notes <details> <summary>sveltejs/kit (@&#8203;sveltejs/kit)</summary> ### [`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 ([#&#8203;1](https://github.com/homebase-garage/igeclouds.github.io/pull/1)) ### [`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: 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: exclude deleted cookies from `cookies.getAll()` so it stays consistent with `cookies.get()` ([#&#8203;16297](https://github.com/sveltejs/kit/pull/16297)) - 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: preserve shared client chunk hashes when the app version changes ([#&#8203;16324](https://github.com/sveltejs/kit/pull/16324)) - fix: align MAX\_COOKIE\_SIZE with RFC 6265bis ([#&#8203;16322](https://github.com/sveltejs/kit/pull/16322)) - fix: use mouseover+mousemove for preloading to reduce events ([#&#8203;16325](https://github.com/sveltejs/kit/pull/16325)) ### [`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)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4zIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->
update-kitten-bot force-pushed renovate/npm-sveltejs-kit-vulnerability from 2a29db4e16 to 6963e2a6f7 2026-08-16 00:02:52 +00:00 Compare
update-kitten-bot force-pushed renovate/npm-sveltejs-kit-vulnerability from 6963e2a6f7 to f6e334c54c 2026-08-23 00:02:22 +00:00 Compare
This pull request can be merged automatically.
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/npm-sveltejs-kit-vulnerability:renovate/npm-sveltejs-kit-vulnerability
git switch renovate/npm-sveltejs-kit-vulnerability

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/npm-sveltejs-kit-vulnerability
git switch renovate/npm-sveltejs-kit-vulnerability
git rebase main
git switch main
git merge --ff-only renovate/npm-sveltejs-kit-vulnerability
git switch renovate/npm-sveltejs-kit-vulnerability
git rebase main
git switch main
git merge --no-ff renovate/npm-sveltejs-kit-vulnerability
git switch main
git merge --squash renovate/npm-sveltejs-kit-vulnerability
git switch main
git merge --ff-only renovate/npm-sveltejs-kit-vulnerability
git switch main
git merge renovate/npm-sveltejs-kit-vulnerability
git push origin main
Sign in to join this conversation.
No reviewers
No labels
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
Gang/doodlesocial!2
No description provided.