chore(deps): update npm dependencies #44

Merged
renovatebot merged 1 commit from renovate/npm-dependencies into main 2025-12-07 05:03:29 +01:00
Collaborator

This PR contains the following updates:

Package Change Age Confidence
@eslint/compat (source) 1.2.9 -> 1.4.1 age confidence
@fullcalendar/core (source) 6.1.17 -> 6.1.19 age confidence
@fullcalendar/daygrid (source) 6.1.17 -> 6.1.19 age confidence
@fullcalendar/list (source) 6.1.17 -> 6.1.19 age confidence
@sveltejs/adapter-node (source) 5.2.12 -> 5.4.0 age confidence
@sveltejs/kit (source) 2.20.8 -> 2.49.1 age confidence
@tailwindcss/postcss (source) 4.1.5 -> 4.1.17 age confidence
@tailwindcss/vite (source) 4.1.5 -> 4.1.17 age confidence
@types/node (source) 22.15.12 -> 22.19.1 age confidence
autoprefixer 10.4.21 -> 10.4.22 age confidence
daisyui (source) 5.0.35 -> 5.5.8 age confidence
esbuild ^0.22.0 -> ^0.27.0 age confidence
eslint (source) 9.26.0 -> 9.39.1 age confidence
eslint-config-prettier 9.1.0 -> 9.1.2 age confidence
iconv-lite ^0.6.3 -> ^0.7.0 age confidence
lucide-svelte (source) ^0.501.0 -> ^0.556.0 age confidence
overlayscrollbars (source) 2.11.2 -> 2.13.0 age confidence
prettier (source) 3.5.3 -> 3.7.4 age confidence
prettier-plugin-svelte 3.3.3 -> 3.4.0 age confidence
prettier-plugin-tailwindcss ^0.6.5 -> ^0.7.0 age confidence
svelte (source) 5.28.2 -> 5.45.6 age confidence
svelte-check 4.1.7 -> 4.3.4 age confidence
tailwindcss (source) 4.1.5 -> 4.1.17 age confidence
tsx (source) 4.19.4 -> 4.21.0 age confidence
typescript (source) 5.8.3 -> 5.9.3 age confidence
typescript-eslint (source) 8.32.0 -> 8.48.1 age confidence
vite (source) 5.4.19 -> 5.4.21 age confidence
yaml (source) 2.7.1 -> 2.8.2 age confidence

Release Notes

eslint/rewrite (@​eslint/compat)

v1.4.1

Compare Source

Dependencies
  • The following workspace dependencies were updated

v1.4.0

Compare Source

Features
Dependencies
  • The following workspace dependencies were updated

v1.3.2

Compare Source

Dependencies
  • The following workspace dependencies were updated

v1.3.1

Compare Source

Bug Fixes
  • relax @eslint/compat eslint peerDependencies constraint (#​215) (b96ec0c)
Dependencies
  • The following workspace dependencies were updated

v1.3.0

Compare Source

Features
  • add support for custom name parameter to includeIgnoreFile (#​211) (3e18175)
Dependencies
  • The following workspace dependencies were updated
fullcalendar/fullcalendar (@​fullcalendar/core)

v6.1.19

Compare Source

  • feature: Angular 20 support (#​7946)
  • feature: setting to control how nowIndicator displays in all-day slots (#​6175)
    (nowIndicatorSnap. use false to ensure time-granularity always)
  • fix: allow business hours that START past midnight (#​7934)

v6.1.18

Compare Source

  • fix: Optimize custom content-injection rerendering performance (#​3003, #​7650)
    (Especially important for event rerendering with eventContent)
sveltejs/kit (@​sveltejs/adapter-node)

v5.4.0

Compare Source

Minor Changes
Patch Changes

v5.3.3

Compare Source

Patch Changes
  • chore: update "homepage" field in package.json (#​14579)

v5.3.2

Compare Source

Patch Changes

v5.3.1

Compare Source

Patch Changes
  • fix: avoid erroring on builder properties that only exist on the latest version of SvelteKit (#​14233)

  • Updated dependencies [f2db41c]:

v5.3.0

Compare Source

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

v5.2.16

Compare Source

Patch Changes

v5.2.15

Compare Source

Patch Changes

v5.2.14

Compare Source

Patch Changes

v5.2.13

Compare Source

Patch Changes
sveltejs/kit (@​sveltejs/kit)

v2.49.1

Compare Source

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

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

v2.49.0

Compare Source

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

v2.48.8

Compare Source

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

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

v2.48.7

Compare Source

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

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

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

v2.48.6

Compare Source

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

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

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

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

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

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

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

v2.48.5

Compare Source

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

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

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

v2.48.4

Compare Source

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

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

v2.48.3

Compare Source

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

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

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

v2.48.2

Compare Source

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

v2.48.1

Compare Source

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

v2.48.0

Compare Source

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

v2.47.3

Compare Source

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

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

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

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

v2.47.2

Compare Source

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

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

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

v2.47.1

Compare Source

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

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

v2.47.0

Compare Source

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

v2.46.5

Compare Source

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

v2.46.4

Compare Source

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

v2.46.3

Compare Source

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

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

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

v2.46.2

Compare Source

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

v2.46.1

Compare Source

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

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

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

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

v2.46.0

Compare Source

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

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

v2.45.0

Compare Source

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

v2.44.0

Compare Source

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

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

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

v2.43.8

Compare Source

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

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

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

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

v2.43.7

Compare Source

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

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

v2.43.6

Compare Source

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

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

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

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

v2.43.5

Compare Source

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

v2.43.4

Compare Source

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

v2.43.3

Compare Source

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

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

v2.43.2

Compare Source

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

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

v2.43.1

Compare Source

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

v2.43.0

Compare Source

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

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

v2.42.2

Compare Source

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

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

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

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

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

v2.42.1

Compare Source

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

v2.42.0

Compare Source

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

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

v2.41.0

Compare Source

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

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

v2.40.0

Compare Source

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

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

v2.39.1

Compare Source

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

v2.39.0

Compare Source

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

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

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

v2.38.1

Compare Source

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

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

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

v2.38.0

Compare Source

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

v2.37.1

Compare Source

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

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

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

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

v2.37.0

Compare Source

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

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

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

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

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

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

v2.36.3

Compare Source

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

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

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

v2.36.2

Compare Source

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

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

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

v2.36.1

Compare Source

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

v2.36.0

Compare Source

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

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

v2.35.0

Compare Source

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

v2.34.1

Compare Source

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

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

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

  • fix: load env before prerender (c5f7139)

v2.34.0

Compare Source

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

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

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

v2.33.1

Compare Source

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

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

v2.33.0

Compare Source

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

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

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

v2.32.0

Compare Source

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

v2.31.1

Compare Source

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

v2.31.0

Compare Source

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

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

v2.30.1

Compare Source

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

v2.30.0

Compare Source

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

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

v2.29.1

Compare Source

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

v2.29.0

Compare Source

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

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

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

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

v2.28.0

Compare Source

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

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

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

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

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

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

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

v2.27.3

Compare Source

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

v2.27.2

Compare Source

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

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

v2.27.1

Compare Source

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

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

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

v2.27.0

Compare Source

Minor Changes

v2.26.1

Compare Source

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

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

v2.26.0

Compare Source

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

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

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

v2.25.2

Compare Source

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

v2.25.1

Compare Source

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

v2.25.0

Compare Source

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

v2.24.0

Compare Source

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

v2.23.0

Compare Source

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

    NOTE

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

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

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

v2.22.5

Compare Source

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

v2.22.4

Compare Source

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

v2.22.3

Compare Source

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

v2.22.2

Compare Source

Patch Changes
  • fix: use fallback if untrack doesn't exist in svelte package (#​13933)

  • fix: warning for chrome devtools requests now suggests sv instead of vite plugin (#​13905)

v2.22.1

Compare Source

Patch Changes
  • fix: prevent infinite loop when calling pushState/replaceState in $effect (#​13914)

  • chore: use manualChunks to bundle single and inline apps with Rolldown (#​13915)

v2.22.0

Compare Source

Minor Changes
  • feat: add support for Vite 7 and Rolldown. See https://vite.dev/guide/rolldown.html#how-to-try-rolldown for details about how to try experimental Rolldown support. You will also need vite-plugin-svelte@^6.0.0-next.0 and vite@^7.0.0-beta.0. Compilation should be faster using Rolldown, but with larger bundle sizes until additional tree-shaking is implemented in Rolldown. See #​13738 for ongoing work. (#​13747)

v2.21.5

Compare Source

Patch Changes
  • fix: correctly set the sequential focus navigation point when using hash routing (#​13884)

  • fix: regression when resetting focus and the URL hash contains selector combinators or separators (#​13884)

v2.21.4

Compare Source

Patch Changes
  • fix: correctly access transport decoders on the client when building for a single or inline output app (#​13871)

v2.21.3

Compare Source

Patch Changes
  • fix: correctly invalidate static analysis cache of child nodes when modifying a universal +layout file during dev (#​13793)

  • fix: correctly set sequential focus navigation starting point after navigation (#​10856)

  • fix: suppress console spam for chrome devtools requests (#​13830)

  • fix: avoid externalising packages that depend on @sveltejs/kit so that libraries can also use redirect and error helpers (#​13843)

  • fix: correctly run deserialize on the server (#​13686)

  • fix: correctly inline stylesheets of components dynamically imported in a universal load function if they are below the configured inlineStyleThreshold (#​13723)

v2.21.2

Compare Source

Patch Changes
  • fix: omit stack when logging 404 errors (#​13848)

v2.21.1

Compare Source

Patch Changes
  • chore: clarify which functions handleFetch affects (#​13788)

  • fix: ensure $env and $app/environment are correctly set while analysing server nodes (#​13790)

v2.21.0

Compare Source

Minor Changes
  • feat: allow running client-side code at the top-level of universal pages/layouts when SSR is disabled and page options are only boolean or string literals (#​13684)
Patch Changes
  • chore: remove import-meta-resolve dependency (#​13629)

  • fix: remove component code from server nodes that are never used for SSR (#​13684)

tailwindlabs/tailwindcss (@​tailwindcss/postcss)

v4.1.17

Compare Source

Fixed
  • Substitute @variant inside legacy JS APIs (#​19263)
  • Prevent occasional crash on Windows when loaded into a worker thread (#​19242)

v4.1.16

Compare Source

Fixed
  • Discard candidates with an empty data type (#​19172)
  • Fix canonicalization of arbitrary variants with attribute selectors (#​19176)
  • Fix invalid colors due to nested & (#​19184)
  • Improve canonicalization for & > :pseudo and & :pseudo arbitrary variants (#​19178)

v4.1.15

Compare Source

Fixed
  • Fix Safari devtools rendering issue due to color-mix fallback (#​19069)
  • Suppress Lightning CSS warnings about :deep, :slotted, and :global (#​19094)
  • Fix resolving theme keys when starting with the name of another theme key in JS configs and plugins (#​19097)
  • Allow named groups in combination with not-*, has-*, and in-* (#​19100)
  • Prevent important utilities from affecting other utilities (#​19110)
  • Don’t index into strings with the theme(…) function (#​19111)
  • Fix parsing issue when \t is used in at-rules (#​19130)
  • Upgrade: Canonicalize utilities containing 0 values (#​19095)
  • Upgrade: Migrate deprecated break-words to wrap-break-word (#​19157)
Changed

v4.1.14

Compare Source

Fixed
  • Handle ' syntax in ClojureScript when extracting classes (#​18888)
  • Handle @variant inside @custom-variant (#​18885)
  • Merge suggestions when using @utility (#​18900)
  • Ensure that file system watchers created when using the CLI are always cleaned up (#​18905)
  • Do not generate grid-column utilities when configuring grid-column-start or grid-column-end (#​18907)
  • Do not generate grid-row utilities when configuring grid-row-start or grid-row-end (#​18907)
  • Prevent duplicate CSS when overwriting a static utility with a theme key (#​18056)
  • Show Lightning CSS warnings (if any) when optimizing/minifying (#​18918)
  • Use default export condition for @tailwindcss/vite (#​18948)
  • Re-throw errors from PostCSS nodes (#​18373)
  • Detect classes in markdown inline directives (#​18967)
  • Ensure files with only @theme produce no output when built (#​18979)
  • Support Maud templates when extracting classes (#​18988)
  • Upgrade: Do not migrate variant = 'outline' during upgrades (#​18922)
  • Upgrade: Show version mismatch (if any) when running upgrade tool (#​19028)
  • Upgrade: Ensure first class inside className is migrated (#​19031)
  • Upgrade: Migrate classes inside *ClassName and *Class attributes (#​19031)

v4.1.13

Compare Source

Changed
  • Drop warning from browser build (#​18731)
  • Drop exact duplicate declarations when emitting CSS (#​18809)
Fixed
  • Don't transition visibility when using transition (#​18795)
  • Discard matched variants with unknown named values (#​18799)
  • Discard matched variants with non-string values (#​18799)
  • Show suggestions for known matchVariant values (#​18798)
  • Replace deprecated clip with clip-path in sr-only (#​18769)
  • Hide internal fields from completions in matchUtilities (#​18820)
  • Ignore .vercel folders by default (can be overridden by @source … rules) (#​18855)
  • Consider variants starting with @- to be invalid (e.g. @-2xl:flex) (#​18869)
  • Do not allow custom variants to start or end with a - or _ (#​18867, #​18872)
  • Upgrade: Migrate aria theme keys to @custom-variant (#​18815)
  • Upgrade: Migrate data theme keys to @custom-variant (#​18816)
  • Upgrade: Migrate supports theme keys to @custom-variant (#​18817)

v4.1.12

Compare Source

Fixed
  • Don't consider the global important state in @apply (#​18404)
  • Add missing suggestions for flex-<number> utilities (#​18642)
  • Fix trailing ) from interfering with extraction in Clojure keywords (#​18345)
  • Detect classes inside Elixir charlist, word list, and string sigils (#​18432)
  • Track source locations through @plugin and @config (#​18345)
  • Allow boolean values of process.env.DEBUG in @tailwindcss/node (#​18485)
  • Ignore consecutive semicolons in the CSS parser (#​18532)
  • Center the dropdown icon added to an input with a paired datalist by default (#​18511)
  • Extract candidates in Slang templates (#​18565)
  • Improve error messages when encountering invalid functional utility names (#​18568)
  • Discard CSS AST objects with false or undefined properties (#​18571)
  • Allow users to disable URL rebasing in @tailwindcss/postcss via transformAssetUrls: false (#​18321)
  • Fix false-positive migrations in addEventListener and JavaScript variable names (#​18718)
  • Fix Standalone CLI showing default Bun help when run via symlink on Windows (#​18723)
  • Read from --border-color-* theme keys in divide-* utilities for backwards compatibility (#​18704)
  • Don't scan .hdr and .exr files for classes by default (#​18734)

v4.1.11

Compare Source

Fixed
  • Add heuristic to skip candidate migrations inside emit(…) (#​18330)
  • Extract candidates with variants in Clojure/ClojureScript keywords (#​18338)
  • Document --watch=always in the CLI's usage (#​18337)
  • Add support for Vite 7 to @tailwindcss/vite (#​18384)

v4.1.10

Compare Source

Fixed
  • Fix incorrectly generated CSS when using percentages in arbitrary values with calc (e.g. w-[calc(100%-var(--offset))]) (#​18289)

v4.1.9

Compare Source

Fixed
  • Correctly parse custom properties with strings containing semicolons (#​18251)
  • Upgrade: Migrate arbitrary modifiers without percentage signs to bare values (e.g. /[0.16]/16) (#​18184)
  • Upgrade: Migrate CSS variable shorthands where fallback value contains function call (#​18184)
  • Upgrade: Migrate negative arbitrary values to negative bare values (e.g. mb-[-32rem]-mb-128) (#​18212)
  • Upgrade: Do not migrate blur in wire:model.blur (#​18216)
  • Don't add spaces around CSS dashed idents when formatting math expressions (#​18220)

v4.1.8

Compare Source

Added
  • Improve error messages when @apply fails (#​18059)
Fixed
  • Upgrade: Do not migrate declarations that look like candidates in <style> blocks (#​18057, 18068)
  • Upgrade: Don't error when looking for tailwindcss in pnpm monorepos (#​18065)
  • Upgrade: Don't error when updating dependencies in pnpm monorepos (#​18065)
  • Upgrade: Migrate deprecated order-none to order-0 (#​18126)
  • Support Leptos class: attributes when extracting classes (#​18093)
  • Fix "Cannot read properties of undefined" crash on malformed arbitrary value (#​18133)
  • Upgrade: Migrate -mt-[0px] to mt-[0px] instead of the other way around (#​18154)
  • Fix Haml pre-processing crash when there is no \n at the end of the file (#​18155)
  • Ignore .pnpm-store folders by default (can be overridden by @source … rules) (#​18163)
  • Fix PostCSS crash when calling toJSON() (#​18083)

v4.1.7

Compare Source

Added
  • Upgrade: Migrate bare values to named values (#​18000)
  • Upgrade: Added cache to improve template migration performance (#​18025)
Fixed
  • Allow _ before numbers during candidate extraction (#​17961)
  • Prevent duplicate suggestions when using @theme and @utility together (#​17675)
  • Ensure that media queries within ::before and ::after pseudo selectors create valid CSS rules in production builds (#​17979)
  • Ensure that the standalone CLI does not leave temporary files behind (#​17981)
  • Ensure -rotate-* utilities properly negate arbitrary values (#​18014)
  • Ignore custom variants using :merge(…) selectors in legacy JS plugins (#​18020)
  • Ensure classes containing . are properly extracted from Clojure files (#​18038)
  • Upgrade: Fix error when using @import … source(…) (#​17963)
  • Upgrade: Change casing of utilities with named values to kebab-case to match updated theme variables (#​18017)
  • Upgrade: Don't migrate strings that match utility names in Vue attribute bindings other than class (#​18025)

v4.1.6

Compare Source

Added
  • Upgrade: Automatically convert arbitrary values to named values when possible (e.g. h-[1lh] to h-lh) (#​17831, #​17854)
  • Upgrade: Update dependencies in parallel for improved performance (#​17898)
  • Add detailed logging about @source directives, discovered files and scanned files when using DEBUG=* (#​17906, #​17952)
  • Add support for generating source maps in development (#​17775)
Fixed
  • Ensure negative arbitrary scale values generate negative values (#​17831)
  • Fix HAML extraction with embedded Ruby (#​17846)
  • Don't scan files for utilities when using @reference (#​17836)
  • Fix incorrectly replacing _ with in arbitrary modifier shorthand bg-red-500/(--my_opacity) (#​17889)
  • Don't scan .log files for classes by default (#​17906)
  • Ensure that custom utilities applying other custom utilities don't swallow nested @apply rules (#​17925)
  • Download platform specific package if optionalDependencies are skipped (#​17929)
postcss/autoprefixer (autoprefixer)

v10.4.22

Compare Source

  • Fixed stretch prefixes on new Can I Use database.
  • Updated fraction.js.
saadeghi/daisyui (daisyui)

v5.5.8

Compare Source

Bug Fixes
  • badge padding to respect --size-selector, clean up kbd and tab padding properties. closes: #​4293 (e713958)

v5.5.7

Compare Source

Bug Fixes

v5.5.6

Compare Source

Bug Fixes

v5.5.5

Compare Source

Bug Fixes

v5.5.4

Compare Source

Bug Fixes

v5.5.3

Compare Source

Bug Fixes

v5.5.2

Compare Source

Bug Fixes
  • prefix for is-drawer-close and is-drawer-open. closes: #​4197 (f3005f4)

v5.5.1

Compare Source

Bug Fixes

v5.5.0

Compare Source

Features
  • new component hover-3d to make a 3D card
  • new component text-rotate to rotate between multiple words
  • new skeleton variant: skeleton-text for animated gradient text
  • improve diff drag area
  • improve <code> padding in prose. closes: #​4243
  • new dropdown modifier: dropdown-close to force close a dropdown
  • btn selector improvements (7% smaller CSS size)
  • details in menu now has smooth transition
Docs
  • search now includes all class names and variables
  • update disable menu example to be more accessible
  • update llms.txt

v5.4.8

Compare Source

🌼 Read changelog: https://daisyui.com/docs/changelog/

📦 Install this update:

npm i -D daisyui@5.4.8

💚 Thank you for using daisyUI!

v5.4.7

Compare Source

Bug Fixes

v5.4.6

Compare Source

Bug Fixes

v5.4.5

Compare Source

Bug Fixes
  • leaking grid style issue in list (a22e54d)

v5.4.4

Compare Source

Bug Fixes
  • substract padding from tab-content height for tabs-box (#​4235) (e59a7a0)

v5.4.3

Compare Source

Bug Fixes
  • kbd box-shadow in prose (1f3e4d1)

v5.4.2

Compare Source

Bug Fixes
  • drawer height issue from 5.4.0 (261b302)

v5.4.1

Compare Source

Bug Fixes
  • allow outline on all methods of dropdown, not just summary (624a0a6)

v5.4.0

Compare Source

Bug Fixes
  • drawer height issue from 5.4.0 (261b302)

v5.3.11

Compare Source

Bug Fixes

v5.3.10

Compare Source

Bug Fixes
  • range thumb color on Safari (2c4a825)

v5.3.9

Compare Source

Bug Fixes
  • allow browser to find text in collapse <details> (bde0427), closes #​4194

v5.3.8

Compare Source

Bug Fixes
  • easier overriding before/after content using utility classes. closes: #​4196 (f2b1e9f)

v5.3.7

Compare Source

Bug Fixes
  • btn in prose shouldn't have underline by default. closes: #​4192 (1205a90)

v5.3.6

Compare Source

Bug Fixes
  • backdrop color bleeding issue + scrollbar improvements. closes: #​3928 (240d1d8)

v5.3.5

Compare Source

Bug Fixes

v5.3.4

Compare Source

Bug Fixes
  • validator-hint overrides hidden class as expected. close: #​4188 (c05604d)

v5.3.3

Compare Source

Bug Fixes
  • do not show the line before for first step in horizontal orientation (#​4187) (3cce2c8)

v5.3.2

Compare Source

Bug Fixes

v5.3.1

Compare Source

Bug Fixes

v5.3.0

Compare Source

Features
Bug Fixes
  • fix: card modifier classes can be used with Tailwind variants now, closes: #​3589

  • fix: btn-disabled can be used with Tailwind variants now, closes: #​3622

v5.2.5

Compare Source

Bug Fixes

v5.2.4

Compare Source

v5.2.3

Compare Source

Bug Fixes
  • fix: style for nested validator with aria-invalid attribute. closes: #​4176

v5.2.2

Compare Source

Bug Fixes
  • countdown RTL bug and allow defining number of digits (426de84)

v5.2.1

Compare Source

Bug Fixes

v5.2.0

Compare Source

Features
  • new variants for drawer: is-drawer-open and is-drawer-close to style elements based on drawer state. Allowing us to create icon-only drawer sidebar.
  • countdown now supports 0 to 999 with dynamic width (6b63563)
  • countdown: animate independently the 2 digits of the number (d3a32e2), closes #​4143
  • detect if page has vertical scrollbar visible and set scrollbar-gutter (abf02cc)
  • icon-only drawer sidebar, new variants is-drawer-open and is-drawer-close (32e919e)
Bug Fixes
  • dropdown: do not open dropdown on click (but open it on kbd focus) (39e4cb5), closes #​3880
  • enable tailwind conditional classes on menu-active (4a8d227)
  • Tailwind CSS collapse utility class conflict (c39d839)
  • fix scrollbar gutter layout shift on Windows when modal or drawer has a different scrollbar visibility than the body

v5.1.32

Compare Source

v5.1.31

Compare Source

Bug Fixes

v5.1.30

Compare Source

Bug Fixes
  • focus the first focusable element when modal opens. closes: #​3440 (c1e2f0c)

v5.1.29

Compare Source

Bug Fixes
  • (iOS) increase font size of small text input and textarea on focus so page wont zoom in (3b35fbb), closes #​3871 #​1145

v5.1.28

Compare Source

Bug Fixes

v5.1.27

Compare Source

Bug Fixes
  • prevent select line break on long text when select is not open and prevent page overflow when select is open. closes: #​4105 (6782522)

v5.1.26

Compare Source

Bug Fixes
  • navbar default position (f75a5ed)

v5.1.25

Compare Source

Bug Fixes

v5.1.24

Compare Source

Bug Fixes

v5.1.23

Compare Source

Bug Fixes

v5.1.22

Compare Source

Bug Fixes
  • unwanted box shadow of kbd inside prose (233c58a)

v5.1.21

Compare Source

Bug Fixes
  • fix: collapse focus-within issue. closes: #​4128
  • fix: text truncate issue. closes: #​2965

v5.1.20

Compare Source

Bug Fixes
  • allow height customization for select with multiple attribute (8292854)

v5.1.19

Compare Source

Bug Fixes
  • Update dependencies

v5.1.18

Compare Source

Bug Fixes

v5.1.17

Compare Source

Bug Fixes
  • fix: .prose class not working with daisyUI prefix. closes: #​4119

v5.1.16

Compare Source

Bug Fixes
  • Collapse gets closed when interactive input inside is focused. closes: #​4128 (f55cf0e)

v5.1.15

Compare Source

Bug Fixes

v5.1.14

Compare Source

Bug Fixes

v5.1.13

Compare Source

v5.1.12

Compare Source

Bug Fixes

v5.1.11

Compare Source

Bug Fixes

v5.1.10

Compare Source

Bug Fixes

v5.1.9

Compare Source

Bug Fixes

v5.1.8

Compare Source

v5.1.7

Compare Source

Bug Fixes

v5.1.6

Compare Source

Bug Fixes

v5.1.5

Compare Source

Bug Fixes
  • checkbox background color (fd938ab)

v5.1.4

Compare Source

Bug Fixes

v5.1.3

Compare Source

v5.1.2

Compare Source

Bug Fixes
  • (iOS) increase font size of small text input and textarea on focus so page wont zoom in (3b35fbb), closes #​3871 #​1145

v5.1.1

Compare Source

Bug Fixes
  • Update dependencies

v5.1.0

Compare Source

Features
  • feat: New component - Hover Gallery
  • feat: New component - FAB / Speed Dial
  • feat: Styled native HTML <select> element (works in Chromium, other browsers use the old OS style)
  • feat: Support prefers-reduced-motion for all animations
Bug Fixes
  • fix: theme-controller prefix
  • fix: support aria-current for tab
  • fix: add scrollbar-gutter auto to prevent modal scrollbar shift
  • fix: increase drawer z-index to prevent overlap issues

v5.0.55

Compare Source

v5.0.54

Compare Source

Bug Fixes
  • prefersdark theme overriding the default theme in custom themes. closes: #​3921 (bd6b064)

v5.0.53

Compare Source

Bug Fixes

v5.0.52

Compare Source

Bug Fixes

v5.0.51

Compare Source

Bug Fixes
  • styles for disabled inputs and select in fieldset (c60350d), closes #​4021

v5.0.50

Compare Source

Bug Fixes
  • use semantic fallbacks for checkbox states, improve indeterminate visibility. closes: #​3979 (d19f38a)

v5.0.49

Compare Source

Bug Fixes
  • react-day-picker disableNavigation not styling properly. closes: #​3990 (29123bc)

v5.0.48

Compare Source

Bug Fixes
  • apply theme-aware hover styling to Cally day buttons. closes: #​3991 (9960287)

v5.0.47

Compare Source

Bug Fixes

v5.0.46

Compare Source

v5.0.43

Compare Source

Bug Fixes
  • badge-outline, badge-dash, badge-soft can be used with tailwind responsive variants. closes: #​3643 (2470fe2)

v5.0.42

Compare Source

Bug Fixes

v5.0.41

Compare Source

v5.0.40

Compare Source

Bug Fixes
  • Chat bubble mask not working with tailwind prefixes. closes: #​3847 (c7856f2)

v5.0.39

Compare Source

Bug Fixes

v5.0.38

Compare Source

Bug Fixes

v5.0.37

Compare Source

Bug Fixes

v5.0.36

Compare Source

Bug Fixes
  • Safari iOS page zoom when user focuses Text Input. closes: #​3871 (1b5b997)
  • bug: The collapse input/title has a fixed min-height applied with high specificity #​3885
  • bug: Button Link and Ghost hover states persisting on mobile devices #​3888
  • bug: URL and email inputs with icons don't maintain LTR in RTL mode #​3886
  • bug: disabled button should not change border size #​3877
  • bug: indicator direction not reflecting on RTL #​3851
  • bug: validator on aria-invalid="false" should not be considered as invalid #​3855
evanw/esbuild (esbuild)

v0.27.1

Compare Source

  • Fix bundler bug with var nested inside if (#​4348)

    This release fixes a bug with the bundler that happens when importing an ES module using require (which causes it to be wrapped) and there's a top-level var inside an if statement without being wrapped in a { ... } block (and a few other conditions). The bundling transform needed to hoist these var declarations outside of the lazy ES module wrapper for correctness. See the issue for details.

  • Fix minifier bug with for inside try inside label (#​4351)

    This fixes an old regression from version v0.21.4. Some code was introduced to move the label inside the try statement to address a problem with transforming labeled for await loops to avoid the await (the transformation involves converting the for await loop into a for loop and wrapping it in a try statement). However, it introduces problems for cross-compiled JVM code that uses all three of these features heavily. This release restricts this transform to only apply to for loops that esbuild itself generates internally as part of the for await transform. Here is an example of some affected code:

    // Original code
    d: {
      e: {
        try {
          while (1) { break d }
        } catch { break e; }
      }
    }
    
    // Old output (with --minify)
    a:try{e:for(;;)break a}catch{break e}
    
    // New output (with --minify)
    a:e:try{for(;;)break a}catch{break e}
    
  • Inline IIFEs containing a single expression (#​4354)

    Previously inlining of IIFEs (immediately-invoked function expressions) only worked if the body contained a single return statement. Now it should also work if the body contains a single expression statement instead:

    // Original code
    const foo = () => {
      const cb = () => {
        console.log(x())
      }
      return cb()
    }
    
    // Old output (with --minify)
    const foo=()=>(()=>{console.log(x())})();
    
    // New output (with --minify)
    const foo=()=>{console.log(x())};
    
  • The minifier now strips empty finally clauses (#​4353)

    This improvement means that finally clauses containing dead code can potentially cause the associated try statement to be removed from the output entirely in minified builds:

    // Original code
    function foo(callback) {
      if (DEBUG) stack.push(callback.name);
      try {
        callback();
      } finally {
        if (DEBUG) stack.pop();
      }
    }
    
    // Old output (with --minify --define:DEBUG=false)
    function foo(a){try{a()}finally{}}
    
    // New output (with --minify --define:DEBUG=false)
    function foo(a){a()}
    
  • Allow tree-shaking of the Symbol constructor

    With this release, calling Symbol is now considered to be side-effect free when the argument is known to be a primitive value. This means esbuild can now tree-shake module-level symbol variables:

    // Original code
    const a = Symbol('foo')
    const b = Symbol(bar)
    
    // Old output (with --tree-shaking=true)
    const a = Symbol("foo");
    const b = Symbol(bar);
    
    // New output (with --tree-shaking=true)
    const b = Symbol(bar);
    

v0.27.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.26.0 or ~0.26.0. See npm's documentation about semver for more information.

  • Use Uint8Array.fromBase64 if available (#​4286)

    With this release, esbuild's binary loader will now use the new Uint8Array.fromBase64 function unless it's unavailable in the configured target environment. If it's unavailable, esbuild's previous code for this will be used as a fallback. Note that this means you may now need to specify target when using this feature with Node (for example --target=node22) unless you're using Node v25+.

  • Update the Go compiler from v1.23.12 to v1.25.4 (#​4208, #​4311)

    This raises the operating system requirements for running esbuild:

    • Linux: now requires a kernel version of 3.2 or later
    • macOS: now requires macOS 12 (Monterey) or later

v0.26.0

Compare Source

  • Enable trusted publishing (#​4281)

    GitHub and npm are recommending that maintainers for packages such as esbuild switch to trusted publishing. With this release, a VM on GitHub will now build and publish all of esbuild's packages to npm instead of me. In theory.

    Unfortunately there isn't really a way to test that this works other than to do it live. So this release is that live test. Hopefully this release is uneventful and is exactly the same as the previous one (well, except for the green provenance attestation checkmark on npm that happens with trusted publishing).

v0.25.12

Compare Source

  • Fix a minification regression with CSS media queries (#​4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#​4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
    
  • Add support for the new @view-transition CSS rule (#​4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @&#8203;view-transition {
      navigation: auto;
      types: check;
    }
    
    /* Old output */
    @&#8203;view-transition { navigation: auto; types: check; }
    
    /* New output */
    @&#8203;view-transition {
      navigation: auto;
      types: check;
    }
    

    The new view transition feature provides a mechanism for creating animated transitions between documents in a multi-page app. You can read more about view transition rules here.

    This change was contributed by @​yisibl.

  • Trim CSS rules that will never match

    The CSS minifier will now remove rules whose selectors contain :is() and :where() as those selectors will never match. These selectors can currently be automatically generated by esbuild when you give esbuild nonsensical input such as the following:

    /* Original code */
    div:before {
      color: green;
      &.foo {
        color: red;
      }
    }
    
    /* Old output (with --supported:nesting=false --minify) */
    div:before{color:green}:is().foo{color:red}
    
    /* New output (with --supported:nesting=false --minify) */
    div:before{color:green}
    

    This input is nonsensical because CSS nesting is (unfortunately) not supported inside of pseudo-elements such as :before. Currently esbuild generates a rule containing :is() in this case when you tell esbuild to transform nested CSS into non-nested CSS. I think it's reasonable to do that as it sort of helps explain what's going on (or at least indicates that something is wrong in the output). It shouldn't be present in minified code, however, so this release now strips it out.

v0.25.11

Compare Source

  • Add support for with { type: 'bytes' } imports (#​4292)

    The import bytes proposal has reached stage 2.7 in the TC39 process, which means that although it isn't quite recommended for implementation, it's generally approved and ready for validation. Furthermore it has already been implemented by Deno and Webpack. So with this release, esbuild will also add support for this. It behaves exactly the same as esbuild's existing binary loader. Here's an example:

    import data from './image.png' with { type: 'bytes' }
    const view = new DataView(data.buffer, 0, 24)
    const width = view.getInt32(16)
    const height = view.getInt32(20)
    console.log('size:', width + '\xD7' + height)
    
  • Lower CSS media query range syntax (#​3748, #​4293)

    With this release, esbuild will now transform CSS media query range syntax into equivalent syntax using min-/max- prefixes for older browsers. For example, the following CSS:

    @&#8203;media (640px <= width <= 960px) {
      main {
        display: flex;
      }
    }
    

    will be transformed like this with a target such as --target=chrome100 (or more specifically with --supported:media-range=false if desired):

    @&#8203;media (min-width: 640px) and (max-width: 960px) {
      main {
        display: flex;
      }
    }
    

v0.25.10

Compare Source

  • Fix a panic in a minification edge case (#​4287)

    This release fixes a panic due to a null pointer that could happen when esbuild inlines a doubly-nested identity function and the final result is empty. It was fixed by emitting the value undefined in this case, which avoids the panic. This case must be rare since it hasn't come up until now. Here is an example of code that previously triggered the panic (which only happened when minifying):

    function identity(x) { return x }
    identity({ y: identity(123) })
    
  • Fix @supports nested inside pseudo-element (#​4265)

    When transforming nested CSS to non-nested CSS, esbuild is supposed to filter out pseudo-elements such as ::placeholder for correctness. The CSS nesting specification says the following:

    The nesting selector cannot represent pseudo-elements (identical to the behavior of the ':is()' pseudo-class). We’d like to relax this restriction, but need to do so simultaneously for both ':is()' and '&', since they’re intentionally built on the same underlying mechanisms.

    However, it seems like this behavior is different for nested at-rules such as @supports, which do work with pseudo-elements. So this release modifies esbuild's behavior to now take that into account:

    /* Original code */
    ::placeholder {
      color: red;
      body & { color: green }
      @&#8203;supports (color: blue) { color: blue }
    }
    
    /* Old output (with --supported:nesting=false) */
    ::placeholder {
      color: red;
    }
    body :is() {
      color: green;
    }
    @&#8203;supports (color: blue) {
       {
        color: blue;
      }
    }
    
    /* New output (with --supported:nesting=false) */
    ::placeholder {
      color: red;
    }
    body :is() {
      color: green;
    }
    @&#8203;supports (color: blue) {
      ::placeholder {
        color: blue;
      }
    }
    

v0.25.9

Compare Source

  • Better support building projects that use Yarn on Windows (#​3131, #​3663)

    With this release, you can now use esbuild to bundle projects that use Yarn Plug'n'Play on Windows on drives other than the C: drive. The problem was as follows:

    1. Yarn in Plug'n'Play mode on Windows stores its global module cache on the C: drive
    2. Some developers put their projects on the D: drive
    3. Yarn generates relative paths that use ../.. to get from the project directory to the cache directory
    4. Windows-style paths don't support directory traversal between drives via .. (so D:\.. is just D:)
    5. I didn't have access to a Windows machine for testing this edge case

    Yarn works around this edge case by pretending Windows-style paths beginning with C:\ are actually Unix-style paths beginning with /C:/, so the ../.. path segments are able to navigate across drives inside Yarn's implementation. This was broken for a long time in esbuild but I finally got access to a Windows machine and was able to debug and fix this edge case. So you should now be able to bundle these projects with esbuild.

  • Preserve parentheses around function expressions (#​4252)

    The V8 JavaScript VM uses parentheses around function expressions as an optimization hint to immediately compile the function. Otherwise the function would be lazily-compiled, which has additional overhead if that function is always called immediately as lazy compilation involves parsing the function twice. You can read V8's blog post about this for more details.

    Previously esbuild did not represent parentheses around functions in the AST so they were lost during compilation. With this change, esbuild will now preserve parentheses around function expressions when they are present in the original source code. This means these optimization hints will not be lost when bundling with esbuild. In addition, esbuild will now automatically add this optimization hint to immediately-invoked function expressions. Here's an example:

    // Original code
    const fn0 = () => 0
    const fn1 = (() => 1)
    console.log(fn0, function() { return fn1() }())
    
    // Old output
    const fn0 = () => 0;
    const fn1 = () => 1;
    console.log(fn0, function() {
      return fn1();
    }());
    
    // New output
    const fn0 = () => 0;
    const fn1 = (() => 1);
    console.log(fn0, (function() {
      return fn1();
    })());
    

    Note that you do not want to wrap all function expressions in parentheses. This optimization hint should only be used for functions that are called on initial load. Using this hint for functions that are not called on initial load will unnecessarily delay the initial load. Again, see V8's blog post linked above for details.

  • Update Go from 1.23.10 to 1.23.12 (#​4257, #​4258)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain false positive reports (specifically CVE-2025-4674 and CVE-2025-47907) from vulnerability scanners that only detect which version of the Go compiler esbuild uses.

v0.25.8

Compare Source

  • Fix another TypeScript parsing edge case (#​4248)

    This fixes a regression with a change in the previous release that tries to more accurately parse TypeScript arrow functions inside the ?: operator. The regression specifically involves parsing an arrow function containing a #private identifier inside the middle of a ?: ternary operator inside a class body. This was fixed by propagating private identifier state into the parser clone used to speculatively parse the arrow function body. Here is an example of some affected code:

    class CachedDict {
      #has = (a: string) => dict.has(a);
      has = window
        ? (word: string): boolean => this.#has(word)
        : this.#has;
    }
    
  • Fix a regression with the parsing of source phase imports

    The change in the previous release to parse source phase imports failed to properly handle the following cases:

    import source from 'bar'
    import source from from 'bar'
    import source type foo from 'bar'
    

    Parsing for these cases should now be fixed. The first case was incorrectly treated as a syntax error because esbuild was expecting the second case. And the last case was previously allowed but is now forbidden. TypeScript hasn't added this feature yet so it remains to be seen whether the last case will be allowed, but it's safer to disallow it for now. At least Babel doesn't allow the last case when parsing TypeScript, and Babel was involved with the source phase import specification.

v0.25.7

Compare Source

  • Parse and print JavaScript imports with an explicit phase (#​4238)

    This release adds basic syntax support for the defer and source import phases in JavaScript:

    • defer

      This is a stage 3 proposal for an upcoming JavaScript feature that will provide one way to eagerly load but lazily initialize imported modules. The imported module is automatically initialized on first use. Support for this syntax will also be part of the upcoming release of TypeScript 5.9. The syntax looks like this:

      import defer * as foo from "<specifier>";
      const bar = await import.defer("<specifier>");
      

      Note that this feature deliberately cannot be used with the syntax import defer foo from "<specifier>" or import defer { foo } from "<specifier>".

    • source

      This is a stage 3 proposal for an upcoming JavaScript feature that will provide another way to eagerly load but lazily initialize imported modules. The imported module is returned in an uninitialized state. Support for this syntax may or may not be a part of TypeScript 5.9 (see this issue for details). The syntax looks like this:

      import source foo from "<specifier>";
      const bar = await import.source("<specifier>");
      

      Note that this feature deliberately cannot be used with the syntax import defer * as foo from "<specifier>" or import defer { foo } from "<specifier>".

    This change only adds support for this syntax. These imports cannot currently be bundled by esbuild. To use these new features with esbuild's bundler, the imported paths must be external to the bundle and the output format must be set to esm.

  • Support optionally emitting absolute paths instead of relative paths (#​338, #​2082, #​3023)

    This release introduces the --abs-paths= feature which takes a comma-separated list of situations where esbuild should use absolute paths instead of relative paths. There are currently three supported situations: code (comments and string literals), log (log message text and location info), and metafile (the JSON build metadata).

    Using absolute paths instead of relative paths is not the default behavior because it means that the build results are no longer machine-independent (which means builds are no longer reproducible). Absolute paths can be useful when used with certain terminal emulators that allow you to click on absolute paths in the terminal text and/or when esbuild is being automatically invoked from several different directories within the same script.

  • Fix a TypeScript parsing edge case (#​4241)

    This release fixes an edge case with parsing an arrow function in TypeScript with a return type that's in the middle of a ?: ternary operator. For example:

    x = a ? (b) : c => d;
    y = a ? (b) : c => d : e;
    

    The : token in the value assigned to x pairs with the ? token, so it's not the start of a return type annotation. However, the first : token in the value assigned to y is the start of a return type annotation because after parsing the arrow function body, it turns out there's another : token that can be used to pair with the ? token. This case is notable as it's the first TypeScript edge case that esbuild has needed a backtracking parser to parse. It has been addressed by a quick hack (cloning the whole parser) as it's a rare edge case and esbuild doesn't otherwise need a backtracking parser. Hopefully this is sufficient and doesn't cause any issues.

  • Inline small constant strings when minifying

    Previously esbuild's minifier didn't inline string constants because strings can be arbitrarily long, and this isn't necessarily a size win if the string is used more than once. Starting with this release, esbuild will now inline string constants when the length of the string is three code units or less. For example:

    // Original code
    const foo = 'foo'
    console.log({ [foo]: true })
    
    // Old output (with --minify --bundle --format=esm)
    var o="foo";console.log({[o]:!0});
    
    // New output (with --minify --bundle --format=esm)
    console.log({foo:!0});
    

    Note that esbuild's constant inlining only happens in very restrictive scenarios to avoid issues with TDZ handling. This change doesn't change when esbuild's constant inlining happens. It only expands the scope of it to include certain string literals in addition to numeric and boolean literals.

v0.25.6

Compare Source

  • Fix a memory leak when cancel() is used on a build context (#​4231)

    Calling rebuild() followed by cancel() in rapid succession could previously leak memory. The bundler uses a producer/consumer model internally, and the resource leak was caused by the consumer being termianted while there were still remaining unreceived results from a producer. To avoid the leak, the consumer now waits for all producers to finish before terminating.

  • Support empty :is() and :where() syntax in CSS (#​4232)

    Previously using these selectors with esbuild would generate a warning. That warning has been removed in this release for these cases.

  • Improve tree-shaking of try statements in dead code (#​4224)

    With this release, esbuild will now remove certain try statements if esbuild considers them to be within dead code (i.e. code that is known to not ever be evaluated). For example:

    // Original code
    return 'foo'
    try { return 'bar' } catch {}
    
    // Old output (with --minify)
    return"foo";try{return"bar"}catch{}
    
    // New output (with --minify)
    return"foo";
    
  • Consider negated bigints to have no side effects

    While esbuild currently considers 1, -1, and 1n to all have no side effects, it didn't previously consider -1n to have no side effects. This is because esbuild does constant folding with numbers but not bigints. However, it meant that unused negative bigint constants were not tree-shaken. With this release, esbuild will now consider these expressions to also be side-effect free:

    // Original code
    let a = 1, b = -1, c = 1n, d = -1n
    
    // Old output (with --bundle --minify)
    (()=>{var n=-1n;})();
    
    // New output (with --bundle --minify)
    (()=>{})();
    
  • Support a configurable delay in watch mode before rebuilding (#​3476, #​4178)

    The watch() API now takes a delay option that lets you add a delay (in milliseconds) before rebuilding when a change is detected in watch mode. If you use a tool that regenerates multiple source files very slowly, this should make it more likely that esbuild's watch mode won't generate a broken intermediate build before the successful final build. This option is also available via the CLI using the --watch-delay= flag.

    This should also help avoid confusion about the watch() API's options argument. It was previously empty to allow for future API expansion, which caused some people to think that the documentation was missing. It's no longer empty now that the watch() API has an option.

  • Allow mixed array for entryPoints API option (#​4223)

    The TypeScript type definitions now allow you to pass a mixed array of both string literals and object literals to the entryPoints API option, such as ['foo.js', { out: 'lib', in: 'bar.js' }]. This was always possible to do in JavaScript but the TypeScript type definitions were previously too restrictive.

  • Update Go from 1.23.8 to 1.23.10 (#​4204, #​4207)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain false positive reports (specifically CVE-2025-4673 and CVE-2025-22874) from vulnerability scanners that only detect which version of the Go compiler esbuild uses.

  • Experimental support for esbuild on OpenHarmony (#​4212)

    With this release, esbuild now publishes the @esbuild/openharmony-arm64 npm package for OpenHarmony. It contains a WebAssembly binary instead of a native binary because Go doesn't currently support OpenHarmony. Node does support it, however, so in theory esbuild should now work on OpenHarmony through WebAssembly.

    This change was contributed by @​hqzing.

v0.25.5

Compare Source

  • Fix a regression with browser in package.json (#​4187)

    The fix to #​4144 in version 0.25.3 introduced a regression that caused browser overrides specified in package.json to fail to override relative path names that end in a trailing slash. That behavior change affected the axios@0.30.0 package. This regression has been fixed, and now has test coverage.

  • Add support for certain keywords as TypeScript tuple labels (#​4192)

    Previously esbuild could incorrectly fail to parse certain keywords as TypeScript tuple labels that are parsed by the official TypeScript compiler if they were followed by a ? modifier. These labels included function, import, infer, new, readonly, and typeof. With this release, these keywords will now be parsed correctly. Here's an example of some affected code:

    type Foo = [
      value: any,
      readonly?: boolean, // This is now parsed correctly
    ]
    
  • Add CSS prefixes for the stretch sizing value (#​4184)

    This release adds support for prefixing CSS declarations such as div { width: stretch }. That CSS is now transformed into this depending on what the --target= setting includes:

    div {
      width: -webkit-fill-available;
      width: -moz-available;
      width: stretch;
    }
    

v0.25.4

Compare Source

  • Add simple support for CORS to esbuild's development server (#​4125)

    Starting with version 0.25.0, esbuild's development server is no longer configured to serve cross-origin requests. This was a deliberate change to prevent any website you visit from accessing your running esbuild development server. However, this change prevented (by design) certain use cases such as "debugging in production" by having your production website load code from localhost where the esbuild development server is running.

    To enable this use case, esbuild is adding a feature to allow Cross-Origin Resource Sharing (a.k.a. CORS) for simple requests. Specifically, passing your origin to the new cors option will now set the Access-Control-Allow-Origin response header when the request has a matching Origin header. Note that this currently only works for requests that don't send a preflight OPTIONS request, as esbuild's development server doesn't currently support OPTIONS requests.

    Some examples:

    • CLI:

      esbuild --servedir=. --cors-origin=https://example.com
      
    • JS:

      const ctx = await esbuild.context({})
      await ctx.serve({
        servedir: '.',
        cors: {
          origin: 'https://example.com',
        },
      })
      
    • Go:

      ctx, _ := api.Context(api.BuildOptions{})
      ctx.Serve(api.ServeOptions{
        Servedir: ".",
        CORS: api.CORSOptions{
          Origin: []string{"https://example.com"},
        },
      })
      

    The special origin * can be used to allow any origin to access esbuild's development server. Note that this means any website you visit will be able to read everything served by esbuild.

  • Pass through invalid URLs in source maps unmodified (#​4169)

    This fixes a regression in version 0.25.0 where sources in source maps that form invalid URLs were not being passed through to the output. Version 0.25.0 changed the interpretation of sources from file paths to URLs, which means that URL parsing can now fail. Previously URLs that couldn't be parsed were replaced with the empty string. With this release, invalid URLs in sources should now be passed through unmodified.

  • Handle exports named __proto__ in ES modules (#​4162, #​4163)

    In JavaScript, the special property name __proto__ sets the prototype when used inside an object literal. Previously esbuild's ESM-to-CommonJS conversion didn't special-case the property name of exports named __proto__ so the exported getter accidentally became the prototype of the object literal. It's unclear what this affects, if anything, but it's better practice to avoid this by using a computed property name in this case.

    This fix was contributed by @​magic-akari.

v0.25.3

Compare Source

  • Fix lowered async arrow functions before super() (#​4141, #​4142)

    This change makes it possible to call an async arrow function in a constructor before calling super() when targeting environments without async support, as long as the function body doesn't reference this. Here's an example (notice the change from this to null):

    // Original code
    class Foo extends Object {
      constructor() {
        (async () => await foo())()
        super()
      }
    }
    
    // Old output (with --target=es2016)
    class Foo extends Object {
      constructor() {
        (() => __async(this, null, function* () {
          return yield foo();
        }))();
        super();
      }
    }
    
    // New output (with --target=es2016)
    class Foo extends Object {
      constructor() {
        (() => __async(null, null, function* () {
          return yield foo();
        }))();
        super();
      }
    }
    

    Some background: Arrow functions with the async keyword are transformed into generator functions for older language targets such as --target=es2016. Since arrow functions capture this, the generated code forwards this into the body of the generator function. However, JavaScript class syntax forbids using this in a constructor before calling super(), and this forwarding was problematic since previously happened even when the function body doesn't use this. Starting with this release, esbuild will now only forward this if it's used within the function body.

    This fix was contributed by @​magic-akari.

  • Fix memory leak with --watch=true (#​4131, #​4132)

    This release fixes a memory leak with esbuild when --watch=true is used instead of --watch. Previously using --watch=true caused esbuild to continue to use more and more memory for every rebuild, but --watch=true should now behave like --watch and not leak memory.

    This bug happened because esbuild disables the garbage collector when it's not run as a long-lived process for extra speed, but esbuild's checks for which arguments cause esbuild to be a long-lived process weren't updated for the new --watch=true style of boolean command-line flags. This has been an issue since this boolean flag syntax was added in version 0.14.24 in 2022. These checks are unfortunately separate from the regular argument parser because of how esbuild's internals are organized (the command-line interface is exposed as a separate Go API so you can build your own custom esbuild CLI).

    This fix was contributed by @​mxschmitt.

  • More concise output for repeated legal comments (#​4139)

    Some libraries have many files and also use the same legal comment text in all files. Previously esbuild would copy each legal comment to the output file. Starting with this release, legal comments duplicated across separate files will now be grouped in the output file by unique comment content.

  • Allow a custom host with the development server (#​4110)

    With this release, you can now use a custom non-IP host with esbuild's local development server (either with --serve= for the CLI or with the serve() call for the API). This was previously possible, but was intentionally broken in version 0.25.0 to fix a security issue. This change adds the functionality back except that it's now opt-in and only for a single domain name that you provide.

    For example, if you add a mapping in your /etc/hosts file from local.example.com to 127.0.0.1 and then use esbuild --serve=local.example.com:8000, you will now be able to visit http://local.example.com:8000/ in your browser and successfully connect to esbuild's development server (doing that would previously have been blocked by the browser). This should also work with HTTPS if it's enabled (see esbuild's documentation for how to do that).

  • Add a limit to CSS nesting expansion (#​4114)

    With this release, esbuild will now fail with an error if there is too much CSS nesting expansion. This can happen when nested CSS is converted to CSS without nesting for older browsers as expanding CSS nesting is inherently exponential due to the resulting combinatorial explosion. The expansion limit is currently hard-coded and cannot be changed, but is extremely unlikely to trigger for real code. It exists to prevent esbuild from using too much time and/or memory. Here's an example:

    a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
    

    Previously, transforming this file with --target=safari1 took 5 seconds and generated 40mb of CSS. Trying to do that will now generate the following error instead:

    ✘ [ERROR] CSS nesting is causing too much expansion
    
        example.css:1:60:
          1 │ a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
            ╵                                                             ^
    
      CSS nesting expansion was terminated because a rule was generated with 65536 selectors. This limit
      exists to prevent esbuild from using too much time and/or memory. Please change your CSS to use
      fewer levels of nesting.
    
  • Fix path resolution edge case (#​4144)

    This fixes an edge case where esbuild's path resolution algorithm could deviate from node's path resolution algorithm. It involves a confusing situation where a directory shares the same file name as a file (but without the file extension). See the linked issue for specific details. This appears to be a case where esbuild is correctly following node's published resolution algorithm but where node itself is doing something different. Specifically the step LOAD_AS_FILE appears to be skipped when the input ends with ... This release changes esbuild's behavior for this edge case to match node's behavior.

  • Update Go from 1.23.7 to 1.23.8 (#​4133, #​4134)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses, such as for CVE-2025-22871.

    As a reminder, esbuild's development server is intended for development, not for production, so I do not consider most networking-related vulnerabilities in Go to be vulnerabilities in esbuild. Please do not use esbuild's development server in production.

v0.25.2

Compare Source

  • Support flags in regular expressions for the API (#​4121)

    The JavaScript plugin API for esbuild takes JavaScript regular expression objects for the filter option. Internally these are translated into Go regular expressions. However, this translation previously ignored the flags property of the regular expression. With this release, esbuild will now translate JavaScript regular expression flags into Go regular expression flags. Specifically the JavaScript regular expression /\.[jt]sx?$/i is turned into the Go regular expression `(?i)\.[jt]sx?$` internally inside of esbuild's API. This should make it possible to use JavaScript regular expressions with the i flag. Note that JavaScript and Go don't support all of the same regular expression features, so this mapping is only approximate.

  • Fix node-specific annotations for string literal export names (#​4100)

    When node instantiates a CommonJS module, it scans the AST to look for names to expose via ESM named exports. This is a heuristic that looks for certain patterns such as exports.NAME = ... or module.exports = { ... }. This behavior is used by esbuild to "annotate" CommonJS code that was converted from ESM with the original ESM export names. For example, when converting the file export let foo, bar from ESM to CommonJS, esbuild appends this to the end of the file:

    // Annotate the CommonJS export names for ESM import in node:
    0 && (module.exports = {
      bar,
      foo
    });
    

    However, this feature previously didn't work correctly for export names that are not valid identifiers, which can be constructed using string literal export names. The generated code contained a syntax error. That problem is fixed in this release:

    // Original code
    let foo
    export { foo as "foo!" }
    
    // Old output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      "foo!"
    });
    
    // New output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      "foo!": null
    });
    
  • Basic support for index source maps (#​3439, #​4109)

    The source map specification has an optional mode called index source maps that makes it easier for tools to create an aggregate JavaScript file by concatenating many smaller JavaScript files with source maps, and then generate an aggregate source map by simply providing the original source maps along with some offset information. My understanding is that this is rarely used in practice. I'm only aware of two uses of it in the wild: ClojureScript and Turbopack.

    This release provides basic support for indexed source maps. However, the implementation has not been tested on a real app (just on very simple test input). If you are using index source maps in a real app, please try this out and report back if anything isn't working for you.

    Note that this is also not a complete implementation. For example, index source maps technically allows nesting source maps to an arbitrary depth, while esbuild's implementation in this release only supports a single level of nesting. It's unclear whether supporting more than one level of nesting is important or not given the lack of available test cases.

    This feature was contributed by @​clyfish.

v0.25.1

Compare Source

  • Fix a minification regression with CSS media queries (#​4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#​4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
    
  • Add support for the new @view-transition CSS rule (#​4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @&#8203;view-transition {
      navigation: auto;
      types: check;
    }
    
    /* Old output */
    @&#8203;view-transition { navigation: auto; types: check; }
    
    /* New output */
    @&#8203;view-transition {
      navigation: auto;
      types: check;
    }
    

    The new view transition feature provides a mechanism for creating animated transitions between documents in a multi-page app. You can read more about view transition rules here.

    This change was contributed by @​yisibl.

  • Trim CSS rules that will never match

    The CSS minifier will now remove rules whose selectors contain :is() and :where() as those selectors will never match. These selectors can currently be automatically generated by esbuild when you give esbuild nonsensical input such as the following:

    /* Original code */
    div:before {
      color: green;
      &.foo {
        color: red;
      }
    }
    
    /* Old output (with --supported:nesting=false --minify) */
    div:before{color:green}:is().foo{color:red}
    
    /* New output (with --supported:nesting=false --minify) */
    div:before{color:green}
    

    This input is nonsensical because CSS nesting is (unfortunately) not supported inside of pseudo-elements such as :before. Currently esbuild generates a rule containing :is() in this case when you tell esbuild to transform nested CSS into non-nested CSS. I think it's reasonable to do that as it sort of helps explain what's going on (or at least indicates that something is wrong in the output). It shouldn't be present in minified code, however, so this release now strips it out.

v0.25.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.24.0 or ~0.24.0. See npm's documentation about semver for more information.

  • Restrict access to esbuild's development server (GHSA-67mh-4wv8-2f99)

    This change addresses esbuild's first security vulnerability report. Previously esbuild set the Access-Control-Allow-Origin header to * to allow esbuild's development server to be flexible in how it's used for development. However, this allows the websites you visit to make HTTP requests to esbuild's local development server, which gives read-only access to your source code if the website were to fetch your source code's specific URL. You can read more information in the report.

    Starting with this release, CORS will now be disabled, and requests will now be denied if the host does not match the one provided to --serve=. The default host is 0.0.0.0, which refers to all of the IP addresses that represent the local machine (e.g. both 127.0.0.1 and 192.168.0.1). If you want to customize anything about esbuild's development server, you can put a proxy in front of esbuild and modify the incoming and/or outgoing requests.

    In addition, the serve() API call has been changed to return an array of hosts instead of a single host string. This makes it possible to determine all of the hosts that esbuild's development server will accept.

    Thanks to @​sapphi-red for reporting this issue.

  • Delete output files when a build fails in watch mode (#​3643)

    It has been requested for esbuild to delete files when a build fails in watch mode. Previously esbuild left the old files in place, which could cause people to not immediately realize that the most recent build failed. With this release, esbuild will now delete all output files if a rebuild fails. Fixing the build error and triggering another rebuild will restore all output files again.

  • Fix correctness issues with the CSS nesting transform (#​3620, #​3877, #​3933, #​3997, #​4005, #​4037, #​4038)

    This release fixes the following problems:

    • Naive expansion of CSS nesting can result in an exponential blow-up of generated CSS if each nesting level has multiple selectors. Previously esbuild sometimes collapsed individual nesting levels using :is() to limit expansion. However, this collapsing wasn't correct in some cases, so it has been removed to fix correctness issues.

      /* Original code */
      .parent {
        > .a,
        > .b1 > .b2 {
          color: red;
        }
      }
      
      /* Old output (with --supported:nesting=false) */
      .parent > :is(.a, .b1 > .b2) {
        color: red;
      }
      
      /* New output (with --supported:nesting=false) */
      .parent > .a,
      .parent > .b1 > .b2 {
        color: red;
      }
      

      Thanks to @​tim-we for working on a fix.

    • The & CSS nesting selector can be repeated multiple times to increase CSS specificity. Previously esbuild ignored this possibility and incorrectly considered && to have the same specificity as &. With this release, this should now work correctly:

      /* Original code (color should be red) */
      div {
        && { color: red }
        & { color: blue }
      }
      
      /* Old output (with --supported:nesting=false) */
      div {
        color: red;
      }
      div {
        color: blue;
      }
      
      /* New output (with --supported:nesting=false) */
      div:is(div) {
        color: red;
      }
      div {
        color: blue;
      }
      

      Thanks to @​CPunisher for working on a fix.

    • Previously transforming nested CSS incorrectly removed leading combinators from within pseudoclass selectors such as :where(). This edge case has been fixed and how has test coverage.

      /* Original code */
      a b:has(> span) {
        a & {
          color: green;
        }
      }
      
      /* Old output (with --supported:nesting=false) */
      a :is(a b:has(span)) {
        color: green;
      }
      
      /* New output (with --supported:nesting=false) */
      a :is(a b:has(> span)) {
        color: green;
      }
      

      This fix was contributed by @​NoremacNergfol.

    • The CSS minifier contains logic to remove the & selector when it can be implied, which happens when there is only one and it's the leading token. However, this logic was incorrectly also applied to selector lists inside of pseudo-class selectors such as :where(). With this release, the minifier will now avoid applying this logic in this edge case:

      /* Original code */
      .a {
        & .b { color: red }
        :where(& .b) { color: blue }
      }
      
      /* Old output (with --minify) */
      .a{.b{color:red}:where(.b){color:#&#8203;00f}}
      
      /* New output (with --minify) */
      .a{.b{color:red}:where(& .b){color:#&#8203;00f}}
      
  • Fix some correctness issues with source maps (#​1745, #​3183, #​3613, #​3982)

    Previously esbuild incorrectly treated source map path references as file paths instead of as URLs. With this release, esbuild will now treat source map path references as URLs. This fixes the following problems with source maps:

    • File names in sourceMappingURL that contained a space previously did not encode the space as %20, which resulted in JavaScript tools (including esbuild) failing to read that path back in when consuming the generated output file. This should now be fixed.

    • Absolute URLs in sourceMappingURL that use the file:// scheme previously attempted to read from a folder called file:. These URLs should now be recognized and parsed correctly.

    • Entries in the sources array in the source map are now treated as URLs instead of file paths. The correct behavior for this is much more clear now that source maps has a formal specification. Many thanks to those who worked on the specification.

  • Fix incorrect package for @esbuild/netbsd-arm64 (#​4018)

    Due to a copy+paste typo, the binary published to @esbuild/netbsd-arm64 was not actually for arm64, and didn't run in that environment. This release should fix running esbuild in that environment (NetBSD on 64-bit ARM). Sorry about the mistake.

  • Fix a minification bug with bitwise operators and bigints (#​4065)

    This change removes an incorrect assumption in esbuild that all bitwise operators result in a numeric integer. That assumption was correct up until the introduction of bigints in ES2020, but is no longer correct because almost all bitwise operators now operate on both numbers and bigints. Here's an example of the incorrect minification:

    // Original code
    if ((a & b) !== 0) found = true
    
    // Old output (with --minify)
    a&b&&(found=!0);
    
    // New output (with --minify)
    (a&b)!==0&&(found=!0);
    
  • Fix esbuild incorrectly rejecting valid TypeScript edge case (#​4027)

    The following TypeScript code is valid:

    export function open(async?: boolean): void {
      console.log(async as boolean)
    }
    

    Before this version, esbuild would fail to parse this with a syntax error as it expected the token sequence async as ... to be the start of an async arrow function expression async as => .... This edge case should be parsed correctly by esbuild starting with this release.

  • Transform BigInt values into constructor calls when unsupported (#​4049)

    Previously esbuild would refuse to compile the BigInt literals (such as 123n) if they are unsupported in the configured target environment (such as with --target=es6). The rationale was that they cannot be polyfilled effectively because they change the behavior of JavaScript's arithmetic operators and JavaScript doesn't have operator overloading.

    However, this prevents using esbuild with certain libraries that would otherwise work if BigInt literals were ignored, such as with old versions of the buffer library before the library fixed support for running in environments without BigInt support. So with this release, esbuild will now turn BigInt literals into BigInt constructor calls (so 123n becomes BigInt(123)) and generate a warning in this case. You can turn off the warning with --log-override:bigint=silent or restore the warning to an error with --log-override:bigint=error if needed.

  • Change how console API dropping works (#​4020)

    Previously the --drop:console feature replaced all method calls off of the console global with undefined regardless of how long the property access chain was (so it applied to console.log() and console.log.call(console) and console.log.not.a.method()). However, it was pointed out that this breaks uses of console.log.bind(console). That's also incompatible with Terser's implementation of the feature, which is where this feature originally came from (it does support bind). So with this release, using this feature with esbuild will now only replace one level of method call (unless extended by call or apply) and will replace the method being called with an empty function in complex cases:

    // Original code
    const x = console.log('x')
    const y = console.log.call(console, 'y')
    const z = console.log.bind(console)('z')
    
    // Old output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (void 0)("z");
    
    // New output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (() => {
    }).bind(console)("z");
    

    This should more closely match Terser's existing behavior.

  • Allow BigInt literals as define values

    With this release, you can now use BigInt literals as define values, such as with --define:FOO=123n. Previously trying to do this resulted in a syntax error.

  • Fix a bug with resolve extensions in node_modules (#​4053)

    The --resolve-extensions= option lets you specify the order in which to try resolving implicit file extensions. For complicated reasons, esbuild reorders TypeScript file extensions after JavaScript ones inside of node_modules so that JavaScript source code is always preferred to TypeScript source code inside of dependencies. However, this reordering had a bug that could accidentally change the relative order of TypeScript file extensions if one of them was a prefix of the other. That bug has been fixed in this release. You can see the issue for details.

  • Better minification of statically-determined switch cases (#​4028)

    With this release, esbuild will now try to trim unused code within switch statements when the test expression and case expressions are primitive literals. This can arise when the test expression is an identifier that is substituted for a primitive literal at compile time. For example:

    // Original code
    switch (MODE) {
      case 'dev':
        installDevToolsConsole()
        break
      case 'prod':
        return
      default:
        throw new Error
    }
    
    // Old output (with --minify '--define:MODE="prod"')
    switch("prod"){case"dev":installDevToolsConsole();break;case"prod":return;default:throw new Error}
    
    // New output (with --minify '--define:MODE="prod"')
    return;
    
  • Emit /* @&#8203;__KEY__ */ for string literals derived from property names (#​4034)

    Property name mangling is an advanced feature that shortens certain property names for better minification (I say "advanced feature" because it's very easy to break your code with it). Sometimes you need to store a property name in a string, such as obj.get('foo') instead of obj.foo. JavaScript minifiers such as esbuild and Terser have a convention where a /* @&#8203;__KEY__ */ comment before the string makes it behave like a property name. So obj.get(/* @&#8203;__KEY__ */ 'foo') allows the contents of the string 'foo' to be shortened.

    However, esbuild sometimes itself generates string literals containing property names when transforming code, such as when lowering class fields to ES6 or when transforming TypeScript decorators. Previously esbuild didn't generate its own /* @&#8203;__KEY__ */ comments in this case, which means that minifying your code by running esbuild again on its own output wouldn't work correctly (this does not affect people that both minify and transform their code in a single step).

    With this release, esbuild will now generate /* @&#8203;__KEY__ */ comments for property names in generated string literals. To avoid lots of unnecessary output for people that don't use this advanced feature, the generated comments will only be present when the feature is active. If you want to generate the comments but not actually mangle any property names, you can use a flag that has no effect such as --reserve-props=., which tells esbuild to not mangle any property names (but still activates this feature).

  • The text loader now strips the UTF-8 BOM if present (#​3935)

    Some software (such as Notepad on Windows) can create text files that start with the three bytes 0xEF 0xBB 0xBF, which is referred to as the "byte order mark". This prefix is intended to be removed before using the text. Previously esbuild's text loader included this byte sequence in the string, which turns into a prefix of \uFEFF in a JavaScript string when decoded from UTF-8. With this release, esbuild's text loader will now remove these bytes when they occur at the start of the file.

  • Omit legal comment output files when empty (#​3670)

    Previously configuring esbuild with --legal-comment=external or --legal-comment=linked would always generate a .LEGAL.txt output file even if it was empty. Starting with this release, esbuild will now only do this if the file will be non-empty. This should result in a more organized output directory in some cases.

  • Update Go from 1.23.1 to 1.23.5 (#​4056, #​4057)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses.

    This PR was contributed by @​MikeWillCook.

  • Allow passing a port of 0 to the development server (#​3692)

    Unix sockets interpret a port of 0 to mean "pick a random unused port in the ephemeral port range". However, esbuild's default behavior when the port is not specified is to pick the first unused port starting from 8000 and upward. This is more convenient because port 8000 is typically free, so you can for example restart the development server and reload your app in the browser without needing to change the port in the URL. Since esbuild is written in Go (which does not have optional fields like JavaScript), not specifying the port in Go means it defaults to 0, so previously passing a port of 0 to esbuild caused port 8000 to be picked.

    Starting with this release, passing a port of 0 to esbuild when using the CLI or the JS API will now pass port 0 to the OS, which will pick a random ephemeral port. To make this possible, the Port option in the Go API has been changed from uint16 to int (to allow for additional sentinel values) and passing a port of -1 in Go now picks a random port. Both the CLI and JS APIs now remap an explicitly-provided port of 0 into -1 for the internal Go API.

    Another option would have been to change Port in Go from uint16 to *uint16 (Go's closest equivalent of number | undefined). However, that would make the common case of providing an explicit port in Go very awkward as Go doesn't support taking the address of integer constants. This tradeoff isn't worth it as picking a random ephemeral port is a rare use case. So the CLI and JS APIs should now match standard Unix behavior when the port is 0, but you need to use -1 instead with Go API.

  • Minification now avoids inlining constants with direct eval (#​4055)

    Direct eval can be used to introduce a new variable like this:

    const variable = false
    ;(function () {
      eval("var variable = true")
      console.log(variable)
    })()
    

    Previously esbuild inlined variable here (which became false), which changed the behavior of the code. This inlining is now avoided, but please keep in mind that direct eval breaks many assumptions that JavaScript tools hold about normal code (especially when bundling) and I do not recommend using it. There are usually better alternatives that have a more localized impact on your code. You can read more about this here: https://esbuild.github.io/link/direct-eval/

v0.24.2

Compare Source

  • Fix regression with --define and import.meta (#​4010, #​4012, #​4013)

    The previous change in version 0.24.1 to use a more expression-like parser for define values to allow quoted property names introduced a regression that removed the ability to use --define:import.meta=.... Even though import is normally a keyword that can't be used as an identifier, ES modules special-case the import.meta expression to behave like an identifier anyway. This change fixes the regression.

    This fix was contributed by @​sapphi-red.

v0.24.1

Compare Source

  • Allow es2024 as a target in tsconfig.json (#​4004)

    TypeScript recently added es2024 as a compilation target, so esbuild now supports this in the target field of tsconfig.json files, such as in the following configuration file:

    {
      "compilerOptions": {
        "target": "ES2024"
      }
    }
    

    As a reminder, the only thing that esbuild uses this field for is determining whether or not to use legacy TypeScript behavior for class fields. You can read more in the documentation.

    This fix was contributed by @​billyjanitsch.

  • Allow automatic semicolon insertion after get/set

    This change fixes a grammar bug in the parser that incorrectly treated the following code as a syntax error:

    class Foo {
      get
      *x() {}
      set
      *y() {}
    }
    

    The above code will be considered valid starting with this release. This change to esbuild follows a similar change to TypeScript which will allow this syntax starting with TypeScript 5.7.

  • Allow quoted property names in --define and --pure (#​4008)

    The define and pure API options now accept identifier expressions containing quoted property names. Previously all identifiers in the identifier expression had to be bare identifiers. This change now makes --define and --pure consistent with --global-name, which already supported quoted property names. For example, the following is now possible:

    // The following code now transforms to "return true;\n"
    console.log(esbuild.transformSync(
      `return process.env['SOME-TEST-VAR']`,
      { define: { 'process.env["SOME-TEST-VAR"]': 'true' } },
    ))
    

    Note that if you're passing values like this on the command line using esbuild's --define flag, then you'll need to know how to escape quote characters for your shell. You may find esbuild's JavaScript API more ergonomic and portable than writing shell code.

  • Minify empty try/catch/finally blocks (#​4003)

    With this release, esbuild will now attempt to minify empty try blocks:

    // Original code
    try {} catch { foo() } finally { bar() }
    
    // Old output (with --minify)
    try{}catch{foo()}finally{bar()}
    
    // New output (with --minify)
    bar();
    

    This can sometimes expose additional minification opportunities.

  • Include entryPoint metadata for the copy loader (#​3985)

    Almost all entry points already include a entryPoint field in the outputs map in esbuild's build metadata. However, this wasn't the case for the copy loader as that loader is a special-case that doesn't behave like other loaders. This release adds the entryPoint field in this case.

  • Source mappings may now contain null entries (#​3310, #​3878)

    With this change, sources that result in an empty source map may now emit a null source mapping (i.e. one with a generated position but without a source index or original position). This change improves source map accuracy by fixing a problem where minified code from a source without any source mappings could potentially still be associated with a mapping from another source file earlier in the generated output on the same minified line. It manifests as nonsensical files in source mapped stack traces. Now the null mapping "resets" the source map so that any lookups into the minified code without any mappings resolves to null (which appears as the output file in stack traces) instead of the incorrect source file.

    This change shouldn't affect anything in most situations. I'm only mentioning it in the release notes in case it introduces a bug with source mapping. It's part of a work-in-progress future feature that will let you omit certain unimportant files from the generated source map to reduce source map size.

  • Avoid using the parent directory name for determinism (#​3998)

    To make generated code more readable, esbuild includes the name of the source file when generating certain variable names within the file. Specifically bundling a CommonJS file generates a variable to store the lazily-evaluated module initializer. However, if a file is named index.js (or with a different extension), esbuild will use the name of the parent directory instead for a better name (since many packages have files all named index.js but have unique directory names).

    This is problematic when the bundle entry point is named index.js and the parent directory name is non-deterministic (e.g. a temporary directory created by a build script). To avoid non-determinism in esbuild's output, esbuild will now use index instead of the parent directory in this case. Specifically this will happen if the parent directory is equal to esbuild's outbase API option, which defaults to the lowest common ancestor of all user-specified entry point paths.

  • Experimental support for esbuild on NetBSD (#​3974)

    With this release, esbuild now has a published binary executable for NetBSD in the @esbuild/netbsd-arm64 npm package, and esbuild's installer has been modified to attempt to use it when on NetBSD. Hopefully this makes installing esbuild via npm work on NetBSD. This change was contributed by @​bsiegert.

    ⚠️ Note: NetBSD is not one of Node's supported platforms, so installing esbuild may or may not work on NetBSD depending on how Node has been patched. This is not a problem with esbuild. ⚠️

v0.24.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.23.0 or ~0.23.0. See npm's documentation about semver for more information.

  • Drop support for older platforms (#​3902)

    This release drops support for the following operating system:

    • macOS 10.15 Catalina

    This is because the Go programming language dropped support for this operating system version in Go 1.23, and this release updates esbuild from Go 1.22 to Go 1.23. Go 1.23 now requires macOS 11 Big Sur or later.

    Note that this only affects the binary esbuild executables that are published to the esbuild npm package. It's still possible to compile esbuild's source code for these older operating systems. If you need to, you can compile esbuild for yourself using an older version of the Go compiler (before Go version 1.23). That might look something like this:

    git clone https://github.com/evanw/esbuild.git
    cd esbuild
    go build ./cmd/esbuild
    ./esbuild --version
    
  • Fix class field decorators in TypeScript if useDefineForClassFields is false (#​3913)

    Setting the useDefineForClassFields flag to false in tsconfig.json means class fields use the legacy TypeScript behavior instead of the standard JavaScript behavior. Specifically they use assign semantics instead of define semantics (e.g. setters are triggered) and fields without an initializer are not initialized at all. However, when this legacy behavior is combined with standard JavaScript decorators, TypeScript switches to always initializing all fields, even those without initializers. Previously esbuild incorrectly continued to omit field initializers for this edge case. These field initializers in this case should now be emitted starting with this release.

  • Avoid incorrect cycle warning with tsconfig.json multiple inheritance (#​3898)

    TypeScript 5.0 introduced multiple inheritance for tsconfig.json files where extends can be an array of file paths. Previously esbuild would incorrectly treat files encountered more than once when processing separate subtrees of the multiple inheritance hierarchy as an inheritance cycle. With this release, tsconfig.json files containing this edge case should work correctly without generating a warning.

  • Handle Yarn Plug'n'Play stack overflow with tsconfig.json (#​3915)

    Previously a tsconfig.json file that extends another file in a package with an exports map could cause a stack overflow when Yarn's Plug'n'Play resolution was active. This edge case should work now starting with this release.

  • Work around more issues with Deno 1.31+ (#​3917)

    This version of Deno broke the stdin and stdout properties on command objects for inherited streams, which matters when you run esbuild's Deno module as the entry point (i.e. when import.meta.main is true). Previously esbuild would crash in Deno 1.31+ if you ran esbuild like that. This should be fixed starting with this release.

    This fix was contributed by @​Joshix-1.

v0.23.1

Compare Source

  • Allow using the node: import prefix with es* targets (#​3821)

    The node: prefix on imports is an alternate way to import built-in node modules. For example, import fs from "fs" can also be written import fs from "node:fs". This only works with certain newer versions of node, so esbuild removes it when you target older versions of node such as with --target=node14 so that your code still works. With the way esbuild's platform-specific feature compatibility table works, this was added by saying that only newer versions of node support this feature. However, that means that a target such as --target=node18,es2022 removes the node: prefix because none of the es* targets are known to support this feature. This release adds the support for the node: flag to esbuild's internal compatibility table for es* to allow you to use compound targets like this:

    // Original code
    import fs from 'node:fs'
    fs.open
    
    // Old output (with --bundle --format=esm --platform=node --target=node18,es2022)
    import fs from "fs";
    fs.open;
    
    // New output (with --bundle --format=esm --platform=node --target=node18,es2022)
    import fs from "node:fs";
    fs.open;
    
  • Fix a panic when using the CLI with invalid build flags if --analyze is present (#​3834)

    Previously esbuild's CLI could crash if it was invoked with flags that aren't valid for a "build" API call and the --analyze flag is present. This was caused by esbuild's internals attempting to add a Go plugin (which is how --analyze is implemented) to a null build object. The panic has been fixed in this release.

  • Fix incorrect location of certain error messages (#​3845)

    This release fixes a regression that caused certain errors relating to variable declarations to be reported at an incorrect location. The regression was introduced in version 0.18.7 of esbuild.

  • Print comments before case clauses in switch statements (#​3838)

    With this release, esbuild will attempt to print comments that come before case clauses in switch statements. This is similar to what esbuild already does for comments inside of certain types of expressions. Note that these types of comments are not printed if minification is enabled (specifically whitespace minification).

  • Fix a memory leak with pluginData (#​3825)

    With this release, the build context's internal pluginData cache will now be cleared when starting a new build. This should fix a leak of memory from plugins that return pluginData objects from onResolve and/or onLoad callbacks.

v0.23.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.22.0 or ~0.22.0. See npm's documentation about semver for more information.

  • Revert the recent change to avoid bundling dependencies for node (#​3819)

    This release reverts the recent change in version 0.22.0 that made --packages=external the default behavior with --platform=node. The default is now back to --packages=bundle.

    I've just been made aware that Amazon doesn't pin their dependencies in their "AWS CDK" product, which means that whenever esbuild publishes a new release, many people (potentially everyone?) using their SDK around the world instantly starts using it without Amazon checking that it works first. This change in version 0.22.0 happened to break their SDK. I'm amazed that things haven't broken before this point. This revert attempts to avoid these problems for Amazon's customers. Hopefully Amazon will pin their dependencies in the future.

    In addition, this is probably a sign that esbuild is used widely enough that it now needs to switch to a more complicated release model. I may have esbuild use a beta channel model for further development.

  • Fix preserving collapsed JSX whitespace (#​3818)

    When transformed, certain whitespace inside JSX elements is ignored completely if it collapses to an empty string. However, the whitespace should only be ignored if the JSX is being transformed, not if it's being preserved. This release fixes a bug where esbuild was previously incorrectly ignoring collapsed whitespace with --jsx=preserve. Here is an example:

    // Original code
    <Foo>
      <Bar />
    </Foo>
    
    // Old output (with --jsx=preserve)
    <Foo><Bar /></Foo>;
    
    // New output (with --jsx=preserve)
    <Foo>
      <Bar />
    </Foo>;
    
eslint/eslint (eslint)

v9.39.1

Compare Source

Bug Fixes

  • 650753e fix: Only pass node to JS lang visitor methods (#​20283) (Nicholas C. Zakas)

Documentation

  • 51b51f4 docs: add a section on when to use extends vs cascading (#​20268) (Tanuj Kanti)
  • b44d426 docs: Update README (GitHub Actions Bot)

Chores

v9.39.0

Compare Source

Features

  • cc57d87 feat: update error loc to key in no-dupe-class-members (#​20259) (Tanuj Kanti)
  • 126552f feat: update error location in for-direction and no-dupe-args (#​20258) (Tanuj Kanti)
  • 167d097 feat: update complexity rule to highlight only static block header (#​20245) (jaymarvelz)

Bug Fixes

Documentation

  • d3e81e3 docs: Always recommend to include a files property (#​20158) (Percy Ma)
  • 0f0385f docs: use consistent naming recommendation (#​20250) (Alex M. Spieslechner)
  • a3b1456 docs: Update README (GitHub Actions Bot)
  • cf5f2dd docs: fix correct tag of no-useless-constructor (#​20255) (Tanuj Kanti)
  • 10b995c docs: add TS options and examples for nofunc in no-use-before-define (#​20249) (Tanuj Kanti)
  • 2584187 docs: remove repetitive word in comment (#​20242) (reddaisyy)
  • 637216b docs: update CLI flags migration instructions (#​20238) (jaymarvelz)
  • e7cda3b docs: Update README (GitHub Actions Bot)
  • 7b9446f docs: handle empty flags sections on the feature flags page (#​20222) (sethamus)

Chores

v9.38.0

Compare Source

Features

  • ce40f74 feat: update complexity rule to only highlight function header (#​20048) (Atul Nair)
  • e37e590 feat: correct no-loss-of-precision false positives with e notation (#​20187) (Francesco Trotta)

Bug Fixes

  • 50c3dfd fix: improve type support for isolated dependencies in pnpm (#​20201) (Francesco Trotta)
  • a1f06a3 fix: correct SourceCode typings (#​20114) (Pixel998)

Documentation

  • 462675a docs: improve web accessibility by hiding non-semantic character (#​20205) (루밀LuMir)
  • c070e65 docs: correct formatting in no-irregular-whitespace rule documentation (#​20203) (루밀LuMir)
  • b39e71a docs: Update README (GitHub Actions Bot)
  • cd39983 docs: move custom-formatters type descriptions to nodejs-api (#​20190) (Percy Ma)

Chores

v9.37.0

Compare Source

Features

  • 39f7fb4 feat: preserve-caught-error should recognize all static "cause" keys (#​20163) (Pixel998)
  • f81eabc feat: support TS syntax in no-restricted-imports (#​19562) (Nitin Kumar)

Bug Fixes

Documentation

  • b950359 docs: fix typos across the docs (#​20182) (루밀LuMir)
  • 42498a2 docs: improve ToC accessibility by hiding non-semantic character (#​20181) (Percy Ma)
  • 29ea092 docs: Update README (GitHub Actions Bot)
  • 5c97a04 docs: show availableUntil in deprecated rule banner (#​20170) (Pixel998)
  • 90a71bf docs: update README files to add badge and instructions (#​20115) (루밀LuMir)
  • 1603ae1 docs: update references from master to main (#​20153) (루밀LuMir)

Chores

  • afe8a13 chore: update @eslint/js dependency to version 9.37.0 (#​20183) (Francesco Trotta)
  • abee4ca chore: package.json update for @​eslint/js release (Jenkins)
  • fc9381f chore: fix typos in comments (#​20175) (overlookmotel)
  • e1574a2 chore: unpin jiti (#​20173) (renovate[bot])
  • e1ac05e refactor: mark ESLint.findConfigFile() as async, add missing docs (#​20157) (Pixel998)
  • 347906d chore: update eslint (#​20149) (renovate[bot])
  • 0cb5897 test: remove tmp dir created for circular fixes in multithread mode test (#​20146) (Milos Djermanovic)
  • bb99566 ci: pin jiti to version 2.5.1 (#​20151) (Pixel998)
  • 177f669 perf: improve worker count calculation for "auto" concurrency (#​20067) (Francesco Trotta)
  • 448b57b chore: Mark deprecated formatting rules as available until v11.0.0 (#​20144) (Milos Djermanovic)

v9.36.0

Compare Source

Features

  • 47afcf6 feat: correct preserve-caught-error edge cases (#​20109) (Francesco Trotta)

Bug Fixes

Documentation

  • b73ab12 docs: update examples to use defineConfig (#​20131) (sethamus)
  • 31d9392 docs: fix typos (#​20118) (Pixel998)
  • c7f861b docs: Update README (GitHub Actions Bot)
  • 6b0c08b docs: Update README (GitHub Actions Bot)
  • 91f97c5 docs: Update README (GitHub Actions Bot)

Chores

  • 12411e8 chore: upgrade @​eslint/js@​9.36.0 (#​20139) (Milos Djermanovic)
  • 488cba6 chore: package.json update for @​eslint/js release (Jenkins)
  • bac82a2 ci: simplify renovate configuration (#​19907) (唯然)
  • c00bb37 ci: bump actions/labeler from 5 to 6 (#​20090) (dependabot[bot])
  • fee751d refactor: use defaultOptions in rules (#​20121) (Pixel998)
  • 1ace67d chore: update example to use defineConfig (#​20111) (루밀LuMir)
  • 4821963 test: add missing loc information to error objects in rule tests (#​20112) (루밀LuMir)
  • b42c42e chore: disallow use of deprecated type property in core rule tests (#​20094) (Milos Djermanovic)
  • 7bb498d test: remove deprecated type property from core rule tests (#​20093) (Pixel998)
  • e10cf2a ci: bump actions/setup-node from 4 to 5 (#​20089) (dependabot[bot])
  • 5cb0ce4 refactor: use meta.defaultOptions in preserve-caught-error (#​20080) (Pixel998)
  • f9f7cb5 chore: package.json update for eslint-config-eslint release (Jenkins)
  • 81764b2 chore: update eslint peer dependency in eslint-config-eslint (#​20079) (Milos Djermanovic)

v9.35.0

Compare Source

Features

  • 42761fa feat: implement suggestions for no-empty-function (#​20057) (jaymarvelz)
  • 102f444 feat: implement suggestions for no-empty-static-block (#​20056) (jaymarvelz)
  • e51ffff feat: add preserve-caught-error rule (#​19913) (Amnish Singh Arora)

Bug Fixes

  • 10e7ae2 fix: update uncloneable options error message (#​20059) (soda-sorcery)
  • bfa4601 fix: ignore empty switch statements with comments in no-empty rule (#​20045) (jaymarvelz)
  • dfd11de fix: add before and after to test case types (#​20049) (Francesco Trotta)
  • dabbe95 fix: correct types for no-restricted-imports rule (#​20034) (Milos Djermanovic)
  • ea789c7 fix: no-loss-of-precision false positive with uppercase exponent (#​20032) (sethamus)

Documentation

  • d265515 docs: improve phrasing - "if" → "even if" from getting-started section (#​20074) (jjangga0214)
  • a355a0e docs: invert comparison logic for example in no-var doc page (#​20064) (OTonGitHub)
  • 5082fc2 docs: Update README (GitHub Actions Bot)
  • 99cfd7e docs: add missing "the" in rule deprecation docs (#​20050) (Josh Goldberg )
  • 6ad8973 docs: update --no-ignore and --ignore-pattern documentation (#​20036) (Francesco Trotta)
  • 8033b19 docs: add documentation for --no-config-lookup (#​20033) (Francesco Trotta)

Chores

v9.34.0

Compare Source

Features

  • 0bb777a feat: multithread linting (#​19794) (Francesco Trotta)
  • 43a5f9e feat: add eslint-plugin-regexp to eslint-config-eslint base config (#​19951) (Pixel998)

Bug Fixes

  • 9b89903 fix: default value of accessor-pairs option in rule.d.ts file (#​20024) (Tanuj Kanti)
  • 6c07420 fix: fix spurious failure in neostandard integration test (#​20023) (Kirk Waiblinger)
  • 676f4ac fix: allow scientific notation with trailing zeros matching exponent (#​20002) (Sweta Tanwar)

Documentation

  • 0b4a590 docs: make rulesdir deprecation clearer (#​20018) (Domenico Gemoli)
  • 327c672 docs: Update README (GitHub Actions Bot)
  • bf26229 docs: Fix typo in core-concepts/index.md (#​20009) (Tobias Hernstig)
  • 2309327 docs: fix typo in the "Configuring Rules" section (#​20001) (ghazi-git)
  • 2b87e21 docs: [no-else-return] clarify sample code. (#​19991) (Yuki Takada (Yukinosuke Takada))
  • c36570c docs: Update README (GitHub Actions Bot)

Chores

v9.33.0

Compare Source

Features

  • e07820e feat: add global object access detection to no-restricted-globals (#​19939) (sethamus)
  • 90b050e feat: support explicit resource management in one-var (#​19941) (Sweta Tanwar)

Bug Fixes

  • 732433c fix: allow any type for meta.docs.recommended in custom rules (#​19995) (Francesco Trotta)
  • e8a6914 fix: Fixed potential bug in check-emfile-handling.js (#​19975) (諏訪原慶斗)

Documentation

  • 34f0723 docs: playground button for TypeScript code example (#​19671) (Tanuj Kanti)
  • dc942a4 docs: Update README (GitHub Actions Bot)
  • 5a4b6f7 docs: Update no-multi-assign.md (#​19979) (Yuki Takada (Yukinosuke Takada))
  • 247e156 docs: add missing let declarations in no-plusplus (#​19980) (Yuki Takada (Yukinosuke Takada))
  • 0d17242 docs: Update README (GitHub Actions Bot)
  • fa20b9d docs: Clarify when to open an issue for a PR (#​19974) (Nicholas C. Zakas)
  • 27fa865 build: use ESLint class to generate formatter examples (#​19972) (Milos Djermanovic)

Chores

v9.32.0

Compare Source

Features

Bug Fixes

Documentation

  • 86e7426 docs: Update README (GitHub Actions Bot)

Chores

  • 50de1ce chore: package.json update for @​eslint/js release (Jenkins)
  • 74f01a3 ci: unpin jiti to version ^2.5.1 (#​19970) (루밀LuMir)
  • 2ab1381 ci: pin jiti to version 2.4.2 (#​19964) (Francesco Trotta)
  • b7f7545 test: switch to flat config mode in SourceCode tests (#​19953) (Milos Djermanovic)
  • f5a35e3 test: switch to flat config mode in eslint-fuzzer (#​19960) (Milos Djermanovic)
  • e22af8c refactor: use CustomRuleDefinitionType in JSRuleDefinition (#​19949) (Francesco Trotta)
  • e855717 chore: switch performance tests to hyperfine (#​19919) (Francesco Trotta)
  • 2f73a23 test: switch to flat config mode in ast-utils tests (#​19948) (Milos Djermanovic)
  • c565a53 chore: exclude further_reading_links.json from Prettier formatting (#​19943) (Milos Djermanovic)

v9.31.0

Compare Source

Features

  • 35cf44c feat: output full actual location in rule tester if different (#​19904) (ST-DDT)
  • a6a6325 feat: support explicit resource management in no-loop-func (#​19895) (Milos Djermanovic)
  • 4682cdc feat: support explicit resource management in no-undef-init (#​19894) (Milos Djermanovic)
  • 5848216 feat: support explicit resource management in init-declarations (#​19893) (Milos Djermanovic)
  • bb370b8 feat: support explicit resource management in no-const-assign (#​19892) (Milos Djermanovic)

Bug Fixes

  • 07fac6c fix: retry on EMFILE when writing autofix results (#​19926) (TKDev7)
  • 28cc7ab fix: Remove incorrect RuleContext types (#​19910) (Nicholas C. Zakas)

Documentation

  • 664cb44 docs: Update README (GitHub Actions Bot)
  • 40dbe2a docs: fix mismatch between globalIgnores() code and text (#​19914) (MaoShizhong)
  • 5a0069d docs: Update README (GitHub Actions Bot)
  • fef04b5 docs: Update working on issues info (#​19902) (Nicholas C. Zakas)

Chores

v9.30.1

Compare Source

Bug Fixes

  • e91bb87 fix: allow separate default and named type imports (#​19899) (xbinaryx)

Documentation

Chores

v9.30.0

Compare Source

Features

  • 52a5fca feat: Support basePath property in config objects (#​19879) (Milos Djermanovic)
  • 4ab4482 feat: add allowSeparateTypeImports option to no-duplicate-imports (#​19872) (sethamus)
  • b8a7e7a feat: throw error when column is negative in getIndexFromLoc (#​19831) (루밀LuMir)

Bug Fixes

  • 6a0f164 fix: handle null type loc in getIndexFromLoc method (#​19862) (루밀LuMir)
  • 3fbcd70 fix: update error message for no-restricted-properties (#​19855) (Tanuj Kanti)
  • 7ef4cf7 fix: remove unnecessary semicolon from fixes (#​19857) (Francesco Trotta)
  • 7dabc38 fix: use process.version in --env-info (#​19865) (TKDev7)

Documentation

  • 8662ed1 docs: adopt eslint-stylistic sub packages related changes (#​19887) (ntnyq)
  • 20158b0 docs: typo in comment for unused variables handling (#​19870) (leopardracer)
  • ebfb5b4 docs: Fixed Typo in configuration-files.md (#​19873) (0-20)
  • 4112fd0 docs: clarify that boolean is still allowed for rule meta.deprecated (#​19866) (Bryan Mishkin)

Chores

v9.29.0

Compare Source

Features

  • f686fcb feat: add ecmaVersion: 2026, parsing using and await using (#​19832) (Milos Djermanovic)
  • 19cdd22 feat: prune suppressions for non-existent files (#​19825) (TKDev7)
  • b3d720f feat: add ES2025 globals (#​19835) (fisker Cheung)
  • 677a283 feat: add auto-accessor fields support to class-methods-use-this (#​19789) (sethamus)
  • dbba058 feat: allow global type declaration in no-var (#​19714) (Remco Haszing)
  • 342bd29 feat: ignore type annotations in no-restricted-globals (#​19781) (sethamus)
  • 786bcd1 feat: add allowProperties option to no-restricted-properties (#​19772) (sethamus)
  • 05b66d0 feat: add sourceCode.isGlobalReference(node) method (#​19695) (Nitin Kumar)

Bug Fixes

  • 85c082c fix: explicit matching behavior with negated patterns and arrays (#​19845) (Milos Djermanovic)
  • 9bda4a9 fix: fix LintOptions.filterCodeBlock types (#​19837) (ntnyq)
  • 7ab77a2 fix: correct breaking deprecation of FlatConfig type (#​19826) (Logicer)
  • 1ba3318 fix: add language and dialects to no-use-before-define (#​19808) (Francesco Trotta)

Documentation

  • 00e3e6a docs: add support for custom name parameter to includeIgnoreFile (#​19795) (루밀LuMir)
  • 3aed075 docs: Update README (GitHub Actions Bot)
  • a2f888d docs: enhance documentation with links and fix typos (#​19761) (루밀LuMir)
  • 53c3235 docs: update to clarify prompt usage (#​19748) (Jennifer Davis)

Chores

v9.28.0

Compare Source

Features

  • b0674be feat: Customization of serialization for languageOptions (#​19760) (Nicholas C. Zakas)
  • a95721f feat: Add --pass-on-unpruned-suppressions CLI option (#​19773) (Milos Djermanovic)
  • bfd0e7a feat: support TypeScript syntax in no-use-before-define (#​19566) (Tanuj Kanti)
  • 68c61c0 feat: support TS syntax in no-shadow (#​19565) (Nitin Kumar)
  • 0f773ef feat: support TS syntax in no-magic-numbers (#​19561) (Nitin Kumar)
  • c4a6b60 feat: add allowTypeAnnotation to func-style (#​19754) (sethamus)
  • b03ad17 feat: add TypeScript support to prefer-arrow-callback (#​19678) (Tanuj Kanti)
  • bc3c331 feat: ignore overloaded function declarations in func-style rule (#​19755) (sethamus)

Bug Fixes

Documentation

  • 3ec2082 docs: Nested arrays in files config entry (#​19799) (Nicholas C. Zakas)
  • 89a65b0 docs: clarify how config arrays can apply to subsets of files (#​19788) (Shais Ch)
  • 2ba8a0d docs: Add description of meta.namespace to plugin docs (#​19798) (Nicholas C. Zakas)
  • 59dd7e6 docs: update func-style with examples (#​19793) (Tanuj Kanti)
  • e9129e0 docs: add global scope's implicit field to Scope Manager docs (#​19770) (Milos Djermanovic)
  • 52f5b7a docs: fix minor typos and add links (#​19743) (루밀LuMir)
  • 00716a3 docs: upfront recommend against using the no-return-await rule (#​19727) (Mike DiDomizio)

Chores

v9.27.0

Compare Source

Features

  • d71e37f feat: Allow flags to be set in ESLINT_FLAGS env variable (#​19717) (Nicholas C. Zakas)
  • ba456e0 feat: Externalize MCP server (#​19699) (Nicholas C. Zakas)
  • 07c1a7e feat: add allowRegexCharacters to no-useless-escape (#​19705) (sethamus)
  • 7bc6c71 feat: add no-unassigned-vars rule (#​19618) (Jacob Bandes-Storch)
  • ee40364 feat: convert no-array-constructor suggestions to autofixes (#​19621) (sethamus)
  • 32957cd feat: support TS syntax in max-params (#​19557) (Nitin Kumar)

Bug Fixes

  • 5687ce7 fix: correct mismatched removed rules (#​19734) (루밀LuMir)
  • dc5ed33 fix: correct types and tighten type definitions in SourceCode class (#​19731) (루밀LuMir)
  • de1b5de fix: correct service property name in Linter.ESLintParseResult type (#​19713) (Francesco Trotta)
  • 60c3e2c fix: sort keys in eslint-suppressions.json to avoid git churn (#​19711) (Ron Waldon-Howe)
  • 9da90ca fix: add allowReserved to Linter.ParserOptions type (#​19710) (Francesco Trotta)
  • fbb8be9 fix: add info to ESLint.DeprecatedRuleUse type (#​19701) (Francesco Trotta)

Documentation

  • 25de550 docs: Update description of frozen rules to mention TypeScript (#​19736) (Nicholas C. Zakas)
  • bd5def6 docs: Clean up configuration files docs (#​19735) (Nicholas C. Zakas)
  • 4d0c60d docs: Add Neovim to editor integrations (#​19729) (Maria José Solano)
  • 71317eb docs: Update README (GitHub Actions Bot)
  • 4c289e6 docs: Update README (GitHub Actions Bot)
  • f0f0d46 docs: clarify that unused suppressions cause non-zero exit code (#​19698) (Milos Djermanovic)
  • 8ed3273 docs: fix internal usages of ConfigData type (#​19688) (Francesco Trotta)
  • eb316a8 docs: add fmt and check sections to Package.json Conventions (#​19686) (루밀LuMir)
  • a3a2559 docs: fix wording in Combine Configs (#​19685) (Milos Djermanovic)
  • c8d17e1 docs: Update README (GitHub Actions Bot)

Chores

prettier/eslint-config-prettier (eslint-config-prettier)

v9.1.2

Compare Source

pillarjs/iconv-lite (iconv-lite)

v0.7.0

Compare Source

🐞 Bug fixes
  • Handle split surrogate pairs when encoding utf8 - by @​yosion-p and @​ashtuchkin in #​282:

    Handle a case where streaming utf8 encoder (converting js strings -> buffers) encounters
    surrogate pairs split between chunks (last character of one chunk is high surrogate and first
    character of the next chunk is a low surrogate).

  • Avoid false positives in encodingExists by using objects without a prototype - by @​bjohansebas in #​328

    The encodingExists method could return incorrect results if the lookup matched properties inherited
    from the prototype of the object that stores the encodings, such as constructor and others. This change
    replaces that object with one that has no prototype, ensuring that only explicitly defined valid encodings
    in the library are considered. In addition, the fix is applied to the internal cache system to avoid the same
    kind of false positives

🚀 Improvements
lucide-icons/lucide (lucide-svelte)

v0.556.0: Version 0.556.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.555.0...0.556.0

v0.555.0: Version 0.555.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.554.0...0.555.0

v0.554.0: Version 0.554.0

Compare Source

What's Changed

Breaking change

For lucide-react and lucide-solid, imports for Fingerprint icon are changed to FingerprintPattern.

Lucide React
- import { Fingerprint } from "lucide-react";
+ import { FingerprintPattern } from "lucide-react";
Lucide Solid
- import { Fingerprint } from "lucide/solid";
+ import { FingerprintPattern } from "lucide/solid";

// Or

- import Fingerprint from "lucide/solid/icons/fingerprint";
+ import FingerprintPattern from "lucide/solid/icons/fingerprint-pattern";

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.553.0...0.554.0

v0.553.0: Version 0.553.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.552.0...0.553.0

v0.552.0: Version 0.552.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.551.0...0.552.0

v0.551.0: Version 0.551.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.550.0...0.551.0

v0.550.0: Version 0.550.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.549.0...0.550.0

v0.549.0: Version 0.549.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.548.0...0.549.0

v0.548.0: Version 0.548.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.547.0...0.548.0

v0.547.0: Version 0.547.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.546.0...0.547.0

v0.546.0: Version 0.546.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.545.0...0.546.0

v0.545.0: Version 0.545.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.544.0...0.545.0

v0.544.0: Version 0.544.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.543.0...0.544.0

v0.543.0: Version 0.543.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.542.0...0.543.0

v0.542.0: Version 0.542.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.541.0...0.542.0

v0.541.0: Version 0.541.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.540.0...0.541.0

v0.540.0: Version 0.540.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.539.0...0.540.0

v0.539.0: Version 0.539.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.538.0...0.539.0

v0.538.0: Version 0.538.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.537.0...0.538.0

v0.537.0: Version 0.537.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.536.0...0.537.0

v0.536.0: Version 0.536.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.535.0...0.536.0

v0.535.0: Version 0.535.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.534.0...0.535.0

v0.534.0: Version 0.534.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.533.0...0.534.0

v0.533.0: Version 0.533.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.532.0...0.533.0

v0.532.0: Version 0.532.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.531.0...0.532.0

v0.531.0: Version 0.531.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.530.0...0.531.0

v0.530.0: Version 0.530.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.529.0...0.530.0

v0.529.0: Version 0.529.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.528.0...0.529.0

v0.528.0: Version 0.528.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.527.0...0.528.0

v0.527.0: Version 0.527.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.526.0...0.527.0

v0.526.0: Version 0.526.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.525.0...0.526.0

v0.525.0: Version 0.525.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.524.0...0.525.0

v0.524.0: Version 0.524.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.523.0...0.524.0

v0.523.0: Version 0.523.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.522.0...0.523.0

v0.522.0: Version 0.522.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.521.0...0.522.0

v0.521.0: Version 0.521.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.520.0...0.521.0

v0.520.0: Version 0.520.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.519.0...0.520.0

v0.519.0: Version 0.519.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.518.0...0.519.0

v0.518.0: Version 0.518.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.517.0...0.518.0

v0.517.0: Version 0.517.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.516.0...0.517.0

v0.516.0: Version 0.516.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.515.0...0.516.0

v0.515.0: Version 0.515.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.514.0...0.515.0

v0.514.0: Version 0.514.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.513.0...0.514.0

v0.513.0: Version 0.513.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.512.0...0.513.0

v0.512.0: Version 0.512.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.511.0...0.512.0

v0.511.0: Version 0.511.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.510.0...0.511.0

v0.510.0: Version 0.510.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.509.0...0.510.0

v0.509.0: Version 0.509.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.508.0...0.509.0

v0.508.0: Version 0.508.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.507.0...0.508.0

v0.507.0: Version 0.507.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.506.0...0.507.0

v0.506.0: Version 0.506.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.505.0...0.506.0

v0.505.0: Version 0.505.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.504.0...0.505.0

v0.504.0: Version 0.504.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.503.0...0.504.0

v0.503.0: Version 0.503.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.502.0...0.503.0

v0.502.0: Version 0.502.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.501.0...0.502.0

KingSora/OverlayScrollbars (overlayscrollbars)

v2.13.0

Compare Source

Features
  • Add fine grained debounce options via options.debounce. The option is now an object which results in more freedom / fine grained debounce options. A debounce can now be specified for mutations, resizes, events and environmental changes independently. The old options.debounce option syntax is still supported and works but its deprecated in favor of the new syntax. #​744 #​729

v2.12.0

Compare Source

Improvements
  • Improve accessibility when the native scrollbars can't be hidden. This can happen when the browser isn't supporting scrollbar styling & the ScrollbarsHidingPlugin is not being used. In this case the custom scrollbars aren't rendered over the native scrollbars anymore. SimpleBar #​726

v2.11.5

Compare Source

Bug Fixes
  • Sometimes when resizing the window, scrollbars applied to the body element werent updated accordingly.

v2.11.4

Compare Source

Bug Fixes
  • Remove scrollbars click event when its no longer required. #​720

v2.11.3

Compare Source

Improvements
  • Introduce and document the new CSS Custom Properties: --os-viewport-overflow-x and --os-viewport-overflow-y which can be used to better control the overflow style of the viewport element.
  • Support for the auto value for overwrites of the overflow style of the viewport.
prettier/prettier (prettier)

v3.7.4

Compare Source

diff

LWC: Avoid quote around interpolations (#​18383 by @​kovsu)
<!-- Input -->
<div foo={bar}>   </div>

<!-- Prettier 3.7.3 (--embedded-language-formatting off) -->
<div foo="{bar}"></div>

<!-- Prettier 3.7.4 (--embedded-language-formatting off) -->
<div foo={bar}></div>
TypeScript: Fix comment inside union type gets duplicated (#​18393 by @​fisker)
// Input
type Foo = (/** comment */ a | b) | c;

// Prettier 3.7.3
type Foo = /** comment */ (/** comment */ a | b) | c;

// Prettier 3.7.4
type Foo = /** comment */ (a | b) | c;
TypeScript: Fix unstable comment print in union type comments (#​18395 by @​fisker)
// Input
type X = (A | B) & (
  // comment
  A | B
);

// Prettier 3.7.3 (first format)
type X = (A | B) &
  (// comment
  A | B);

// Prettier 3.7.3 (second format)
type X = (
  | A
  | B // comment
) &
  (A | B);

// Prettier 3.7.4
type X = (A | B) &
  // comment
  (A | B);

v3.7.3

Compare Source

diff

API: Fix prettier.getFileInfo() change that breaks VSCode extension (#​18375 by @​fisker)

An internal refactor accidentally broke the VSCode extension plugin loading.

v3.7.2

Compare Source

diff

JavaScript: Fix string print when switching quotes (#​18351 by @​fisker)
// Input
console.log("A descriptor\\'s .kind must be \"method\" or \"field\".")

// Prettier 3.7.1
console.log('A descriptor\\'s .kind must be "method" or "field".');

// Prettier 3.7.2
console.log('A descriptor\\\'s .kind must be "method" or "field".');
JavaScript: Preserve quote for embedded HTML attribute values (#​18352 by @​kovsu)
// Input
const html = /* HTML */ ` <div class="${styles.banner}"></div> `;

// Prettier 3.7.1
const html = /* HTML */ ` <div class=${styles.banner}></div> `;

// Prettier 3.7.2
const html = /* HTML */ ` <div class="${styles.banner}"></div> `;
TypeScript: Fix comment in empty type literal (#​18364 by @​fisker)
// Input
export type XXX = {
  // tbd
};

// Prettier 3.7.1
export type XXX = { // tbd };

// Prettier 3.7.2
export type XXX = {
  // tbd
};

v3.7.1

Compare Source

diff

API: Fix performance regression in doc printer (#​18342 by @​fisker)

Prettier 3.7.0 can be very slow when formatting big files, the regression has been fixed.

v3.7.0

Compare Source

diff

🔗 Release Notes

v3.6.2

Compare Source

diff

Markdown: Add missing blank line around code block (#​17675 by @​fisker)
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

v3.6.1

Compare Source

diff

TypeScript: Allow const without initializer (#​17650, #​17654 by @​fisker)
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
Miscellaneous: Avoid closing files multiple times (#​17665 by @​43081j)

When reading a file to infer the interpreter from a shebang, we use the
n-readlines library to read the first line in order to get the shebang.

This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if n-readlines did not already close
them.

v3.6.0

Compare Source

diff

🔗 Release Notes

sveltejs/prettier-plugin-svelte (prettier-plugin-svelte)

v3.4.0

Compare Source

tailwindlabs/prettier-plugin-tailwindcss (prettier-plugin-tailwindcss)

v0.7.2

Compare Source

Fixed
  • Load compatible plugins sequentially to work around race conditions in Node.js (#​412)
  • Fix compatibility with prettier-plugin-svelte when using Prettier v3.7+ (#​418)

v0.7.1

Compare Source

Fixed
  • Match against correct name of dynamic attributes when using regexes (#​410)

v0.7.0

Compare Source

Added
  • Format quotes in @source, @plugin, and @config (#​387)
  • Sort in function calls in Twig (#​358)
  • Sort in callable template literals (#​367)
  • Sort in function calls mixed with property accesses (#​367)
  • Support regular expression patterns for attributes (#​405)
  • Support regular expression patterns for function names (#​405)
Changed
  • Improved monorepo support by loading Tailwind CSS relative to the input file instead of prettier config file (#​386)
  • Improved monorepo support by loading v3 configs relative to the input file instead of prettier config file (#​386)
  • Fallback to Tailwind CSS v4 instead of v3 by default (#​390)
  • Don't augment global Prettier ParserOptions and RequiredOptions types (#​354)
  • Drop support for prettier-plugin-import-sort (#​385)
Fixed
  • Handle quote escapes in LESS when sorting @apply (#​392)
  • Fix whitespace removal inside nested concat and template expressions (#​396)

v0.6.14

Compare Source

  • Add support for OXC + Hermes Prettier plugins (#​376, #​380)
  • Sort template literals in Angular expressions (#​377)
  • Don't repeatedly add backslashes to escape sequences when formatting (#​381)

v0.6.13

Compare Source

  • Prevent Svelte files from breaking when there are duplicate classes (#​359)
  • Ensure prettier-plugin-multiline-arrays and prettier-plugin-jsdoc work when used together with this plugin (#​372)

v0.6.12

Compare Source

  • Add internal (unsupported) option to load Tailwind CSS using a different package name (#​366)
sveltejs/svelte (svelte)

v5.45.6

Compare Source

Patch Changes
  • fix: don't issue a11y warning for <video> without captions if it has no src (#​17311)

  • fix: add srcObject to permitted <audio>/<video> attributes (#​17310)

v5.45.5

Compare Source

Patch Changes
  • fix: correctly reconcile each blocks after outroing branches are resumed (#​17258)

  • fix: destroy each items after siblings are resumed (#​17258)

v5.45.4

Compare Source

Patch Changes
  • chore: move DOM-related effect properties to effect.nodes (#​17293)

  • fix: allow $props.id() to occur after an await (#​17285)

  • fix: keep reactions up to date even when read outside of effect (#​17295)

v5.45.3

Compare Source

Patch Changes
  • add props to state_referenced_locally (#​17266)

  • fix: preserve node locations for better sourcemaps (#​17269)

  • fix: handle cross-realm Promises in hydratable (#​17284)

v5.45.2

Compare Source

Patch Changes
  • fix: array destructuring after await (#​17254)

  • fix: throw on invalid {@&#8203;tag}s (#​17256)

v5.45.1

Compare Source

Patch Changes
  • fix: link offscreen items and last effect in each block correctly (#​17240)

v5.45.0

Compare Source

Minor Changes

v5.44.1

Compare Source

Patch Changes
  • fix: await blockers before initialising const (#​17226)

  • fix: link offscreen items and last effect in each block correctly (#​17244)

  • fix: generate correct code for simple destructurings (#​17237)

  • fix: ensure each block animations don't mess with transitions (#​17238)

v5.44.0

Compare Source

Minor Changes

v5.43.15

Compare Source

Patch Changes
  • fix: don't execute attachments and attribute effects eagerly (#​17208)

  • chore: lift "flushSync cannot be called in effects" restriction (#​17139)

  • fix: store forked derived values (#​17212)

v5.43.14

Compare Source

Patch Changes
  • fix: correctly migrate named self closing slots (#​17199)

  • fix: error at compile time instead of at runtime on await expressions inside bindings/transitions/animations/attachments (#​17198)

  • fix: take async blockers into account for bindings/transitions/animations/attachments (#​17198)

v5.43.13

Compare Source

Patch Changes
  • fix: don't set derived values during time traveling (#​17200)

v5.43.12

Compare Source

Patch Changes
  • fix: maintain correct linked list of effects when updating each blocks (#​17191)

v5.43.11

Compare Source

Patch Changes
  • perf: don't use tracing overeager during dev (#​17183)

  • fix: don't cancel transition of already outroing elements (#​17186)

v5.43.10

Compare Source

Patch Changes
  • fix: avoid other batches running with queued root effects of main batch (#​17145)

v5.43.9

Compare Source

Patch Changes
  • fix: correctly handle functions when determining async blockers (#​17137)

  • fix: keep deriveds reactive after their original parent effect was destroyed (#​17171)

  • fix: ensure eager effects don't break reactions chain (#​17138)

  • fix: ensure async @const in boundary hydrates correctly (#​17165)

  • fix: take blockers into account when creating #await blocks (#​17137)

  • fix: parallelize async @consts in the template (#​17165)

v5.43.8

Compare Source

Patch Changes
  • fix: each block losing reactivity when items removed while promise pending (#​17150)

v5.43.7

Compare Source

Patch Changes
  • fix: properly defer document title until async work is complete (#​17158)

  • fix: ensure deferred effects can be rescheduled later on (#​17147)

  • fix: take blockers of components into account (#​17153)

v5.43.6

Compare Source

Patch Changes
  • fix: don't deactivate other batches (#​17132)

v5.43.5

Compare Source

Patch Changes
  • fix: ensure async static props/attributes are awaited (#​17120)

  • fix: wait on dependencies of async bindings (#​17120)

  • fix: await dependencies of style directives (#​17120)

v5.43.4

Compare Source

Patch Changes
  • chore: simplify connection/disconnection logic (#​17105)

  • fix: reconnect deriveds to effect tree when time-travelling (#​17105)

v5.43.3

Compare Source

Patch Changes
  • fix: ensure fork always accesses correct values (#​17098)

  • fix: change title only after any pending work has completed (#​17061)

  • fix: preserve symbols when creating derived rest properties (#​17096)

v5.43.2

Compare Source

Patch Changes
  • fix: treat each blocks with async dependencies as uncontrolled (#​17077)

v5.43.1

Compare Source

Patch Changes
  • fix: don't execute attachments and attribute effects eagerly (#​17208)

  • chore: lift "flushSync cannot be called in effects" restriction (#​17139)

  • fix: store forked derived values (#​17212)

v5.43.0

Compare Source

Minor Changes
Patch Changes
  • fix: settle batch after DOM updates (#​17054)

v5.42.3

Compare Source

Patch Changes
  • fix: handle <svelte:head> rendered asynchronously (#​17052)

  • fix: don't restore batch in #await (#​17051)

v5.42.2

Compare Source

Patch Changes
  • fix: better error message for global variable assignments (#​17036)

  • chore: tweak memoizer logic (#​17042)

v5.42.1

Compare Source

Patch Changes
  • fix: ignore fork discard() after commit() (#​17034)

v5.42.0

Compare Source

Minor Changes
Patch Changes
  • fix: always allow setContext before first await in component (#​17031)

  • fix: less confusing names for inspect errors (#​17026)

v5.41.4

Compare Source

Patch Changes
  • fix: take into account static blocks when determining transition locality (#​17018)

  • fix: coordinate mount of snippets with await expressions (#​17021)

  • fix: better optimization of await expressions (#​17025)

  • fix: flush pending changes after rendering failed snippet (#​16995)

v5.41.3

Compare Source

Patch Changes
  • chore: exclude vite optimized deps from stack traces (#​17008)

  • perf: skip repeatedly traversing the same derived (#​17016)

v5.41.2

Compare Source

Patch Changes
  • fix: keep batches alive until all async work is complete (#​16971)

  • fix: don't preserve reactivity context across function boundaries (#​17002)

  • fix: make $inspect logs come from the callsite (#​17001)

  • fix: ensure guards (eg. if, each, key) run before their contents (#​16930)

v5.41.1

Compare Source

Patch Changes
  • fix: place let: declarations before {@&#8203;const} declarations (#​16985)

  • fix: improve each_key_without_as error (#​16983)

  • chore: centralise branch management (#​16977)

v5.41.0

Compare Source

Minor Changes
  • feat: add $state.eager(value) rune (#​16849)
Patch Changes
  • fix: preserve <select> state while focused (#​16958)

  • chore: run boundary async effects in the context of the current batch (#​16968)

  • fix: error if each block has key but no as clause (#​16966)

v5.40.2

Compare Source

Patch Changes
  • fix: add hydration markers in pending branch of SSR boundary (#​16965)

v5.40.1

Compare Source

Patch Changes
  • chore: Remove sync-in-async warning for server rendering (#​16949)

v5.40.0

Compare Source

Minor Changes
  • feat: add createContext utility for type-safe context (#​16948)
Patch Changes
  • chore: simplify batch.apply() (#​16945)

  • fix: don't rerun async effects unnecessarily (#​16944)

v5.39.13

Compare Source

Patch Changes
  • fix: add missing type for fr attribute for radialGradient tags in svg (#​16943)

  • fix: unset context on stale promises (#​16935)

v5.39.12

Compare Source

Patch Changes
  • fix: better input cursor restoration for bind:value (#​16925)

  • fix: track the user's getter of bind:this (#​16916)

  • fix: generate correct SSR code for the case where pending is an attribute (#​16919)

  • fix: generate correct code for each blocks with async body (#​16923)

v5.39.11

Compare Source

Patch Changes
  • fix: flush batches whenever an async value resolves (#​16912)

v5.39.10

Compare Source

Patch Changes
  • fix: hydrate each blocks inside element correctly (#​16908)

  • fix: allow await in if block consequent and alternate (#​16890)

  • fix: don't replace rest props with $$props for excluded props (#​16898)

  • fix: correctly transform $derived private fields on server (#​16894)

  • fix: add UNKNOWN evaluation value before breaking for binding.initial===SnippetBlock (#​16910)

v5.39.9

Compare Source

Patch Changes
  • fix: flush when pending boundaries resolve (#​16897)

v5.39.8

Compare Source

Patch Changes
  • fix: check boundary pending attribute at runtime on server (#​16855)

  • fix: preserve tuple type in $state.snapshot (#​16864)

  • fix: allow await in svelte:boundary without pending (#​16857)

  • fix: update bind:checked error message to clarify usage with radio inputs (#​16874)

v5.39.7

Compare Source

Patch Changes
  • chore: simplify batch logic (#​16847)

  • fix: rebase pending batches when other batches are committed (#​16866)

  • fix: wrap async children in $$renderer.async (#​16862)

  • fix: silence label warning for buttons and anchor tags with title attributes (#​16872)

  • fix: coerce nullish <title> to empty string (#​16863)

v5.39.6

Compare Source

Patch Changes
  • fix: depend on reads of deriveds created within reaction (async mode) (#​16823)

  • fix: SSR regression of processing attributes of <select> and <option> (#​16821)

  • fix: async class: + spread attributes were compiled into sync server-side code (#​16834)

  • fix: ensure tick resolves within a macrotask (#​16825)

v5.39.5

Compare Source

Patch Changes
  • fix: allow {@&#8203;html await ...} and snippets with async content on the server (#​16817)

  • fix: use nginx SSI-compatible comments for $props.id() (#​16820)

v5.39.4

Compare Source

Patch Changes
  • fix: restore hydration state after await in <script> (#​16806)

v5.39.3

Compare Source

Patch Changes

v5.39.2

Compare Source

Patch Changes
  • fix: preserve SSR context when block expressions contain await (#​16791)

  • chore: bump some devDependencies (#​16787)

v5.39.1

Compare Source

Patch Changes
  • fix: add missing type for fr attribute for radialGradient tags in svg (#​16943)

  • fix: unset context on stale promises (#​16935)

v5.39.0

Compare Source

Minor Changes
Patch Changes
  • fix: correctly SSR hidden="until-found" (#​16773)

v5.38.10

Compare Source

Patch Changes
  • fix: flush effects scheduled during boundary's pending phase (#​16738)

v5.38.9

Compare Source

Patch Changes
  • chore: generate CSS hash using the filename (#​16740)

  • fix: correctly analyze <object.property> components (#​16711)

  • fix: clean up scheduling system (#​16741)

  • fix: transform input defaults from spread (#​16481)

  • fix: don't destroy contents of svelte:boundary unless the boundary is an error boundary (#​16746)

v5.38.8

Compare Source

Patch Changes
  • fix: send $effect.pending count to the correct boundary (#​16732)

v5.38.7

Compare Source

Patch Changes
  • fix: replace undefined with void(0) in CallExpressions (#​16693)

  • fix: ensure batch exists when resetting a failed boundary (#​16698)

  • fix: place store setup inside async body (#​16687)

v5.38.6

Compare Source

Patch Changes
  • fix: don't fail on flushSync while flushing effects (#​16674)

v5.38.5

Compare Source

Patch Changes
  • fix: ensure async deriveds always get dependencies from thennable (#​16672)

v5.38.3

Compare Source

Patch Changes
  • fix: ensure correct order of template effect values (#​16655)

  • fix: allow async {@&#8203;const} in more places (#​16643)

  • fix: properly catch top level await errors (#​16619)

  • perf: prune effects without dependencies (#​16625)

  • fix: only emit for_await_track_reactivity_loss in async mode (#​16644)

v5.38.2

Compare Source

Patch Changes
  • perf: run blocks eagerly during flush instead of aborting (#​16631)

  • fix: don't clone non-proxies in $inspect (#​16617)

  • fix: avoid recursion error when tagging circular references (#​16622)

v5.38.1

Compare Source

Patch Changes
  • fix: flush effects scheduled during boundary's pending phase (#​16738)

v5.38.0

Compare Source

Minor Changes
  • feat: allow await inside @const declarations (#​16542)
Patch Changes
  • fix: remount at any hydration error (#​16248)

  • chore: emit await_reactivity_loss in for await loops (#​16521)

  • fix: emit snippet_invalid_export instead of undefined_export for exported snippets (#​16539)

v5.37.3

Compare Source

Patch Changes
  • fix: reset attribute cache after setting corresponding property (#​16543)

v5.37.2

Compare Source

Patch Changes
  • fix: double event processing in firefox due to event object being garbage collected (#​16527)

  • fix: add bindable dimension attributes types to SVG and MathML elements (#​16525)

  • fix: correctly differentiate static fields before emitting duplicate_class_field (#​16526)

  • fix: prevent last_propagated_event from being DCE'd (#​16538)

v5.37.1

Compare Source

Patch Changes
  • chore: remove some todos (#​16515)

  • fix: allow await expressions inside {#await ...} argument (#​16514)

  • fix: append_styles in an effect to make them available on mount (#​16509)

  • chore: remove parser.template_untrimmed (#​16511)

  • fix: always inject styles when compiling as a custom element (#​16509)

v5.37.0

Compare Source

Minor Changes
  • feat: ignore component options in compileModule (#​16362)
Patch Changes
  • fix: always mark props as stateful (#​16504)

v5.36.17

Compare Source

Patch Changes
  • fix: throw on duplicate class field declarations (#​16502)

  • fix: add types for part attribute to svg attributes (#​16499)

v5.36.16

Compare Source

Patch Changes
  • fix: don't update a focused input with values from its own past (#​16491)

  • fix: don't destroy effect roots created inside of deriveds (#​16492)

v5.36.15

Compare Source

Patch Changes
  • fix: preserve dirty status of deferred effects (#​16487)

v5.36.14

Compare Source

Patch Changes
  • fix: keep input in sync when binding updated via effect (#​16482)

  • fix: rename form accept-charset attribute (#​16478)

  • fix: prevent infinite async loop (#​16482)

  • fix: exclude derived writes from effect abort and rescheduling (#​16482)

v5.36.13

Compare Source

Patch Changes
  • fix: ensure subscriptions are picked up correctly by deriveds (#​16466)

v5.36.12

Compare Source

Patch Changes
  • chore: move capture_signals to legacy module (#​16456)

v5.36.10

Compare Source

Patch Changes
  • fix: prevent batches from getting intertwined (#​16446)

v5.36.9

Compare Source

Patch Changes
  • fix: don't reexecute derived with no dependencies on teardown (#​16438)

  • fix: disallow export { foo as default } in <script module> (#​16447)

  • fix: move ownership validation into async component body (#​16449)

  • fix: allow async destructured deriveds (#​16444)

  • fix: move store setup/cleanup outside of async component body (#​16443)

v5.36.8

Compare Source

Patch Changes
  • fix: keep effect in the graph if it has an abort controller (#​16430)

  • chore: Switch payload.out to an array (#​16428)

v5.36.7

Compare Source

Patch Changes
  • fix: allow instrinsic <svelte:...> elements to inherit from SvelteHTMLElements (#​16424)

v5.36.6

Compare Source

Patch Changes
  • fix: delegate functions with shadowed variables if declared locally (#​16417)

  • fix: handle error in correct boundary after reset (#​16171)

  • fix: make <svelte:boundary> reset function a noop after the first call (#​16171)

v5.36.5

Compare Source

Patch Changes
  • fix: silence $inspect errors when the effect is about to be destroyed (#​16391)

  • fix: more informative error when effects run in an infinite loop (#​16405)

v5.36.4

Compare Source

Patch Changes
  • fix: avoid microtask in flushSync (#​16394)

  • fix: ensure compiler state is reset before compilation (#​16396)

v5.36.3

Compare Source

Patch Changes
  • fix: don't log await_reactivity_loss warning when signal is read in untrack (#​16385)

  • fix: better handle $inspect on array mutations (#​16389)

  • fix: leave proxied array length untouched when deleting properties (#​16389)

  • fix: update $effect.pending() immediately after a batch is removed (#​16382)

v5.36.2

Compare Source

Patch Changes
  • fix: add $effect.pending() to types (#​16376)

  • fix: add pending snippet to <svelte:boundary> types (#​16379)

v5.36.1

Compare Source

Patch Changes
  • fix: throw on duplicate class field declarations (#​16502)

  • fix: add types for part attribute to svg attributes (#​16499)

v5.36.0

Compare Source

Minor Changes
  • feat: support await in components when using the experimental.async compiler option (#​15844)
Patch Changes
  • fix: silence a11y warning for inert elements (#​16339)

  • chore: clean up a11y analysis code (#​16345)

v5.35.7

Compare Source

Patch Changes
  • fix: silence autofocus a11y warning inside <dialog> (#​16341)

  • fix: don't show adjusted error messages in boundaries (#​16360)

  • chore: replace inline regex with variable (#​16340)

v5.35.6

Compare Source

Patch Changes
  • chore: simplify reaction/source ownership tracking (#​16333)

  • chore: simplify internal component pop() (#​16331)

v5.35.5

Compare Source

Patch Changes
  • fix: associate sources in Spring/Tween/SvelteMap/SvelteSet with correct reaction (#​16325)

  • fix: re-evaluate derived props during teardown (#​16278)

v5.35.4

Compare Source

Patch Changes
  • fix: abort and reschedule effect processing after state change in user effect (#​16280)

v5.35.3

Compare Source

Patch Changes
  • fix: account for mounting when select_option in attribute_effect (#​16309)

  • fix: do not proxify the value assigned to a derived (#​16302)

v5.35.2

Compare Source

Patch Changes

v5.35.1

Compare Source

Patch Changes
  • feat: add parent hierarchy to __svelte_meta objects (#​16255)

v5.35.0

Compare Source

Minor Changes
Patch Changes

v5.34.9

Compare Source

Patch Changes
  • fix: ensure unowned deriveds can add themselves as reactions while connected (#​16249)

v5.34.8

Compare Source

Patch Changes
  • fix: untrack $inspect.with and add check for unsafe mutation (#​16209)

  • fix: use fine grained for template if the component is not explicitly in legacy mode (#​16232)

  • lift unsafe_state_mutation constraints for SvelteSet, SvelteMap, SvelteDate, SvelteURL and SvelteURLSearchParams created inside the derived (#​16221)

v5.34.7

Compare Source

Patch Changes
  • fix: address css class matching regression (#​16204)

v5.34.6

Compare Source

Patch Changes
  • fix: match class and style directives against attribute selector (#​16179)

v5.34.5

Compare Source

Patch Changes
  • fix: keep spread non-delegated event handlers up to date (#​16180)

  • fix: remove undefined attributes on hydration (#​16178)

  • fix: ensure sources within nested effects still register correctly (#​16193)

  • fix: avoid shadowing a variable in dynamic components (#​16185)

v5.34.4

Compare Source

Patch Changes
  • fix: don't set state withing with_parent in proxy (#​16176)

  • fix: use compiler-driven reactivity in legacy mode template expressions (#​16100)

v5.34.3

Compare Source

Patch Changes
  • fix: don't eagerly execute deriveds on resume (#​16150)

  • fix: prevent memory leaking signals in legacy mode (#​16145)

  • fix: don't define error.message if it's not configurable (#​16149)

v5.34.2

Compare Source

Patch Changes
  • fix: add missing typings for some dimension bindings (#​16142)

  • fix: prune typescript class field declarations (#​16154)

v5.34.1

Compare Source

Patch Changes
  • fix: correctly tag private class state fields (#​16132)

v5.34.0

Compare Source

Minor Changes
  • feat: add source name logging to $inspect.trace (#​16060)
Patch Changes
  • fix: add command and commandfor to HTMLButtonAttributes (#​16117)

  • fix: better $inspect.trace() output (#​16131)

  • fix: properly hydrate dynamic css props components and remove element removal (#​16118)

v5.33.19

Compare Source

Patch Changes
  • fix: reset is_flushing if flushSync is called and there's no scheduled effect (#​16119)

v5.33.18

Compare Source

Patch Changes

v5.33.17

Compare Source

Patch Changes
  • chore: update acorn parser ecmaVersion to parse import attributes (#​16098)

v5.33.16

Compare Source

Patch Changes
  • fix: visit expression when destructuring state declarations (#​16081)

  • fix: move xmlns attribute from SVGAttributes to to DOMAttributes (#​16080)

v5.33.15

Compare Source

Patch Changes
  • fix: invoke parent boundary of deriveds that throw (#​16091)

v5.33.14

Compare Source

Patch Changes
  • Revert "feat: enable TS autocomplete for Svelte HTML element definitions" (#​16063)

  • fix: destructuring snippet arguments (#​16068)

v5.33.13

Compare Source

Patch Changes
  • fix: avoid recursion error in EachBlock visitor (#​16058)

v5.33.12

Compare Source

Patch Changes
  • fix: correctly transform reassignments to class fields in SSR mode (#​16051)

v5.33.11

Compare Source

Patch Changes
  • fix: treat transitive dependencies of each blocks as mutable in legacy mode if item is mutated (#​16038)

v5.33.10

Compare Source

Patch Changes
  • fix: use fill: 'forwards' on transition animations to prevent flicker (#​16035)

v5.33.9

Compare Source

Patch Changes
  • fix: put expressions in effects unless known to be static (#​15792)

v5.33.8

Compare Source

Patch Changes
  • fix: only select_option if 'value' is in next (#​16032)

v5.33.7

Compare Source

Patch Changes
  • fix: bind:value to select with stores (#​16028)

v5.33.6

Compare Source

Patch Changes
  • fix: falsy attachments on components (#​16021)

  • fix: correctly mark elements as selected during SSR (#​16017)

v5.33.5

Compare Source

Patch Changes
  • fix: handle derived destructured iterators (#​16015)

  • fix: avoid rerunning attachments when unrelated spread attributes change (#​15961)

v5.33.4

Compare Source

Patch Changes
  • fix: narrow defaultChecked to boolean (#​16009)

  • fix: warn when using rest or identifier in custom elements without props option (#​16003)

v5.33.3

Compare Source

Patch Changes
  • fix: allow using typescript in customElement.extend option (#​16001)

  • fix: cleanup event handlers on media elements (#​16005)

v5.33.2

Compare Source

Patch Changes
  • fix: correctly parse escaped unicode characters in css selector (#​15976)

  • fix: don't mark deriveds as clean if updating during teardown (#​15997)

v5.33.1

Compare Source

Patch Changes
  • fix: reset is_flushing if flushSync is called and there's no scheduled effect (#​16119)

v5.33.0

Compare Source

Minor Changes
  • feat: XHTML compliance (#​15538)

  • feat: add fragments: 'html' | 'tree' option for wider CSP compliance (#​15538)

v5.32.2

Compare Source

Patch Changes
  • chore: simplify <pre> cleaning (#​15980)

  • fix: attach __svelte_meta correctly to elements following a CSS wrapper (#​15982)

  • fix: import untrack directly from client in svelte/attachments (#​15974)

v5.32.1

Compare Source

Patch Changes
  • Warn when an invalid <select multiple> value is given (#​14816)

v5.32.0

Compare Source

Minor Changes
  • feat: warn on implicitly closed tags (#​15932)

  • feat: attachments fromAction utility (#​15933)

Patch Changes
  • fix: only re-run directly applied attachment if it changed (#​15962)

v5.31.1

Compare Source

Patch Changes
  • fix: avoid auto-parenthesis for special-keywords-only MediaQuery (#​15937)

v5.31.0

Compare Source

Minor Changes
  • feat: allow state fields to be declared inside class constructors (#​15820)
Patch Changes
  • fix: Add missing AttachTag in Tag union type inside the AST namespace from "svelte/compiler" (#​15946)

v5.30.2

Compare Source

Patch Changes
  • fix: falsy attachments types (#​15939)

  • fix: handle more hydration mismatches (#​15851)

v5.30.1

Compare Source

Patch Changes
  • fix: add typeParams to SnippetBlock for legacy parser (#​15921)

v5.30.0

Compare Source

Minor Changes
  • feat: allow generics on snippets (#​15915)

v5.29.0

Compare Source

Minor Changes

v5.28.7

Compare Source

Patch Changes
  • fix: remove unncessary guards that require CSP privilege when removing event attributes (#​15846)

  • fix: rewrite destructuring logic to handle iterators (#​15813)

v5.28.6

Compare Source

Patch Changes
  • fix: use transform.read for ownership_validator.mutation array (#​15848)

  • fix: don't redeclare $slots (#​15849)

v5.28.5

Compare Source

Patch Changes
  • fix: proxify the value in assignment shorthands to the private field (#​15862)

  • fix: more frequently update bind:buffered to actual value (#​15874)

v5.28.4

Compare Source

Patch Changes
  • fix: treat nullish expression as empty string (#​15901)

  • fix: prevent invalid BigInt calls from blowing up at compile time (#​15900)

  • fix: warn on bidirectional control characters (#​15893)

  • fix: emit right error for a shadowed invalid rune (#​15892)

v5.28.3

Compare Source

Patch Changes
  • chore: avoid microtasks when flushing sync (#​15895)

  • fix: improve error message for migration errors when slot would be renamed (#​15841)

  • fix: allow characters in the supplementary special-purpose plane (#​15823)

sveltejs/language-tools (svelte-check)

v4.3.4

Compare Source

Patch Changes
  • chore: use machine format when run by Claude Code (#​2870)

v4.3.3

Compare Source

Patch Changes
  • fix: prevent file watcher issue (#​2859)

  • fix: allow undefined and null values for #each in Svelte 5 (#​2863)

  • perf: check if file content changed in tsconfig file watch (#​2859)

v4.3.2

Compare Source

Patch Changes
  • perf: tweak some snapshot hot paths (#​2852)

  • perf: more precise module cache invalidation (#​2853)

  • fix: properly handle runes={false} in <svelte:options> (#​2847)

See https://github.com/sveltejs/language-tools/releases

v4.3.1

Compare Source

fix: handle object literal in MustacheTag (#​2805)

v4.3.0

Compare Source

  • feat: zero types for params (#​2795)
  • feat: add await support (#​2799)
  • fix: strip doctype using AST instead of regex (#​2798)
  • chore: make human output more concise and readable (#​2748)

v4.2.2

Compare Source

  • fix: invalidate project file cache and handle watcher race condition (#​2779)
  • fix: prevent error with bind:this={get, set} (#​2781)
  • fix: don't treat derived imported from svelte/store as a potential store (#​2780)
  • fix: key block can have its own block scope (#​2768)

v4.2.1

Compare Source

  • feat: support generics on snippets (#​2761)

v4.2.0

Compare Source

  • feat: support attachments (#​2760)
  • fix: deduplicate definition for rune-mode components (#​2759)
privatenumber/tsx (tsx)

v4.21.0

Compare Source

Features

This release is also available on:

v4.20.6

Compare Source

Bug Fixes
  • properly hide relaySignal from process.listeners() (#​741) (710a424)

This release is also available on:

v4.20.5

Compare Source

Bug Fixes
  • handle ambiguous packages (796053a)

This release is also available on:

v4.20.4

Compare Source

Bug Fixes

This release is also available on:

v4.20.3

Compare Source

Bug Fixes

This release is also available on:

v4.20.2

Compare Source

Bug Fixes

This release is also available on:

v4.20.1

Compare Source

Bug Fixes
  • json: handle keys with special characters (9bd2546)

This release is also available on:

v4.20.0

Compare Source

Bug Fixes
  • esm: only set json attribute if missing (714e00b)
Features
  • support latest Node versions (ec316d3)

This release is also available on:

microsoft/TypeScript (typescript)

v5.9.3: TypeScript 5.9.3

Compare Source

Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.

For release notes, check out the release announcement

Downloads are available on:

v5.9.2: TypeScript 5.9

Compare Source

Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.

For release notes, check out the release announcement

Downloads are available on:

typescript-eslint/typescript-eslint (typescript-eslint)

v8.48.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.48.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.47.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.46.4

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.46.3

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.46.2

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.46.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.46.0

Compare Source

🚀 Features
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.45.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.44.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.44.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.43.0

Compare Source

🩹 Fixes
  • eslint-plugin: [no-deprecated] should report deprecated exports and reexports (#​11359)
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.42.0

Compare Source

🚀 Features
🩹 Fixes
  • typescript-eslint: handle non-normalized windows paths produced by jiti (#​11546)
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.41.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.40.0

Compare Source

🩹 Fixes
  • typescript-eslint: export plugin, parser, and configs that are compatible with both defineConfig() and tseslint.config() (#​11475)
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.39.1

Compare Source

🩹 Fixes
  • typescript-eslint: handle file:// urls in stack trace when inferring tsconfigRootDir (#​11464)
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.39.0

Compare Source

🚀 Features
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.38.0

Compare Source

🩹 Fixes
  • typescript-eslint: error on nested extends in tseslint.config() (#​11361)
  • typescript-eslint: infer tsconfigRootDir with v8 API (#​11412)
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.37.0

Compare Source

🚀 Features
  • typescript-estree: infer tsconfigRootDir from call stack (#​11370)
❤️ Thank You
  • Josh Goldberg

You can read about our versioning strategy and releases on our website.

v8.36.0

Compare Source

🚀 Features
  • typescript-eslint: support basePath in tseslint.config() (#​11357)
❤️ Thank You

You can read about our versioning strategy and releases on our website.

v8.35.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.35.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.34.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.34.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.33.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.33.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

v8.32.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

vitejs/vite (vite)

v5.4.21

Compare Source

Please refer to CHANGELOG.md for details.

v5.4.20

Compare Source

Please refer to CHANGELOG.md for details.

eemeli/yaml (yaml)

v2.8.2

Compare Source

  • Serialize -0 as -0 (#​638)
  • Do not double newlines for empty map values (#​642)

v2.8.1

Compare Source

  • Preserve empty block literals (#​634)

v2.8.0

Compare Source

  • Add node cache for faster alias resolution (#​612)
  • Re-introduce compatibility with Node.js 14.6 (#​614)
  • Add --merge option to CLI tool (#​611)
  • Improve error for tag resolution error on null value (#​616)
  • Allow empty string as plain scalar representation, for failsafe schema (#​616)
  • docs: include cli example (#​617)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@eslint/compat](https://github.com/eslint/rewrite/tree/main/packages/compat#readme) ([source](https://github.com/eslint/rewrite/tree/HEAD/packages/compat)) | [`1.2.9` -> `1.4.1`](https://renovatebot.com/diffs/npm/@eslint%2fcompat/1.2.9/1.4.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fcompat/1.4.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fcompat/1.2.9/1.4.1?slim=true) | | [@fullcalendar/core](https://fullcalendar.io) ([source](https://github.com/fullcalendar/fullcalendar/tree/HEAD/packages/core)) | [`6.1.17` -> `6.1.19`](https://renovatebot.com/diffs/npm/@fullcalendar%2fcore/6.1.17/6.1.19) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@fullcalendar%2fcore/6.1.19?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fullcalendar%2fcore/6.1.17/6.1.19?slim=true) | | [@fullcalendar/daygrid](https://fullcalendar.io/docs/month-view) ([source](https://github.com/fullcalendar/fullcalendar/tree/HEAD/packages/daygrid)) | [`6.1.17` -> `6.1.19`](https://renovatebot.com/diffs/npm/@fullcalendar%2fdaygrid/6.1.17/6.1.19) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@fullcalendar%2fdaygrid/6.1.19?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fullcalendar%2fdaygrid/6.1.17/6.1.19?slim=true) | | [@fullcalendar/list](https://fullcalendar.io/docs/list-view) ([source](https://github.com/fullcalendar/fullcalendar/tree/HEAD/packages/list)) | [`6.1.17` -> `6.1.19`](https://renovatebot.com/diffs/npm/@fullcalendar%2flist/6.1.17/6.1.19) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@fullcalendar%2flist/6.1.19?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fullcalendar%2flist/6.1.17/6.1.19?slim=true) | | [@sveltejs/adapter-node](https://svelte.dev/docs/kit/adapter-node) ([source](https://github.com/sveltejs/kit/tree/HEAD/packages/adapter-node)) | [`5.2.12` -> `5.4.0`](https://renovatebot.com/diffs/npm/@sveltejs%2fadapter-node/5.2.12/5.4.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@sveltejs%2fadapter-node/5.4.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sveltejs%2fadapter-node/5.2.12/5.4.0?slim=true) | | [@sveltejs/kit](https://svelte.dev) ([source](https://github.com/sveltejs/kit/tree/HEAD/packages/kit)) | [`2.20.8` -> `2.49.1`](https://renovatebot.com/diffs/npm/@sveltejs%2fkit/2.20.8/2.49.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@sveltejs%2fkit/2.49.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sveltejs%2fkit/2.20.8/2.49.1?slim=true) | | [@tailwindcss/postcss](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss)) | [`4.1.5` -> `4.1.17`](https://renovatebot.com/diffs/npm/@tailwindcss%2fpostcss/4.1.5/4.1.17) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fpostcss/4.1.17?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fpostcss/4.1.5/4.1.17?slim=true) | | [@tailwindcss/vite](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite)) | [`4.1.5` -> `4.1.17`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.1.5/4.1.17) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fvite/4.1.17?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fvite/4.1.5/4.1.17?slim=true) | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.15.12` -> `22.19.1`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.12/22.19.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.19.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.15.12/22.19.1?slim=true) | | [autoprefixer](https://github.com/postcss/autoprefixer) | [`10.4.21` -> `10.4.22`](https://renovatebot.com/diffs/npm/autoprefixer/10.4.21/10.4.22) | ![age](https://developer.mend.io/api/mc/badges/age/npm/autoprefixer/10.4.22?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/autoprefixer/10.4.21/10.4.22?slim=true) | | [daisyui](https://daisyui.com) ([source](https://github.com/saadeghi/daisyui/tree/HEAD/packages/daisyui)) | [`5.0.35` -> `5.5.8`](https://renovatebot.com/diffs/npm/daisyui/5.0.35/5.5.8) | ![age](https://developer.mend.io/api/mc/badges/age/npm/daisyui/5.5.8?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/daisyui/5.0.35/5.5.8?slim=true) | | [esbuild](https://github.com/evanw/esbuild) | [`^0.22.0` -> `^0.27.0`](https://renovatebot.com/diffs/npm/esbuild/0.22.0/0.27.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.27.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.22.0/0.27.1?slim=true) | | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | [`9.26.0` -> `9.39.1`](https://renovatebot.com/diffs/npm/eslint/9.26.0/9.39.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.39.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.26.0/9.39.1?slim=true) | | [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | [`9.1.0` -> `9.1.2`](https://renovatebot.com/diffs/npm/eslint-config-prettier/9.1.0/9.1.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/9.1.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/9.1.0/9.1.2?slim=true) | | [iconv-lite](https://github.com/pillarjs/iconv-lite) | [`^0.6.3` -> `^0.7.0`](https://renovatebot.com/diffs/npm/iconv-lite/0.6.3/0.7.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/iconv-lite/0.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/iconv-lite/0.6.3/0.7.0?slim=true) | | [lucide-svelte](https://lucide.dev) ([source](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-svelte)) | [`^0.501.0` -> `^0.556.0`](https://renovatebot.com/diffs/npm/lucide-svelte/0.501.0/0.556.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-svelte/0.556.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-svelte/0.501.0/0.556.0?slim=true) | | [overlayscrollbars](https://kingsora.github.io/OverlayScrollbars) ([source](https://github.com/KingSora/OverlayScrollbars/tree/HEAD/packages/overlayscrollbars)) | [`2.11.2` -> `2.13.0`](https://renovatebot.com/diffs/npm/overlayscrollbars/2.11.2/2.13.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/overlayscrollbars/2.13.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/overlayscrollbars/2.11.2/2.13.0?slim=true) | | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | [`3.5.3` -> `3.7.4`](https://renovatebot.com/diffs/npm/prettier/3.5.3/3.7.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.7.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.5.3/3.7.4?slim=true) | | [prettier-plugin-svelte](https://github.com/sveltejs/prettier-plugin-svelte) | [`3.3.3` -> `3.4.0`](https://renovatebot.com/diffs/npm/prettier-plugin-svelte/3.3.3/3.4.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier-plugin-svelte/3.4.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier-plugin-svelte/3.3.3/3.4.0?slim=true) | | [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | [`^0.6.5` -> `^0.7.0`](https://renovatebot.com/diffs/npm/prettier-plugin-tailwindcss/0.6.11/0.7.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier-plugin-tailwindcss/0.7.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier-plugin-tailwindcss/0.6.11/0.7.2?slim=true) | | [svelte](https://svelte.dev) ([source](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte)) | [`5.28.2` -> `5.45.6`](https://renovatebot.com/diffs/npm/svelte/5.28.2/5.45.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/svelte/5.45.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svelte/5.28.2/5.45.6?slim=true) | | [svelte-check](https://github.com/sveltejs/language-tools) | [`4.1.7` -> `4.3.4`](https://renovatebot.com/diffs/npm/svelte-check/4.1.7/4.3.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/svelte-check/4.3.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svelte-check/4.1.7/4.3.4?slim=true) | | [tailwindcss](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.5` -> `4.1.17`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.5/4.1.17) | ![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.17?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.1.5/4.1.17?slim=true) | | [tsx](https://tsx.is) ([source](https://github.com/privatenumber/tsx)) | [`4.19.4` -> `4.21.0`](https://renovatebot.com/diffs/npm/tsx/4.19.4/4.21.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.21.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.19.4/4.21.0?slim=true) | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | [`5.8.3` -> `5.9.3`](https://renovatebot.com/diffs/npm/typescript/5.8.3/5.9.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.9.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.8.3/5.9.3?slim=true) | | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.32.0` -> `8.48.1`](https://renovatebot.com/diffs/npm/typescript-eslint/8.32.0/8.48.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.48.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.32.0/8.48.1?slim=true) | | [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`5.4.19` -> `5.4.21`](https://renovatebot.com/diffs/npm/vite/5.4.19/5.4.21) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.21?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.19/5.4.21?slim=true) | | [yaml](https://eemeli.org/yaml/) ([source](https://github.com/eemeli/yaml)) | [`2.7.1` -> `2.8.2`](https://renovatebot.com/diffs/npm/yaml/2.7.1/2.8.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/yaml/2.8.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/yaml/2.7.1/2.8.2?slim=true) | --- ### Release Notes <details> <summary>eslint/rewrite (@&#8203;eslint/compat)</summary> ### [`v1.4.1`](https://github.com/eslint/rewrite/blob/HEAD/packages/compat/CHANGELOG.md#141-2025-10-27) [Compare Source](https://github.com/eslint/rewrite/compare/7f592e3b60dd0a3b38d891a80aeeb92cf78d8e86...f5ecc7e945634a173af677d2d597d583bd2704e6) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;eslint/core](https://github.com/eslint/core) bumped from ^0.16.0 to ^0.17.0 ### [`v1.4.0`](https://github.com/eslint/rewrite/blob/HEAD/packages/compat/CHANGELOG.md#140-2025-09-16) [Compare Source](https://github.com/eslint/rewrite/compare/9e68ab61df9c4ebc082b603fb5e3dfe2dcf98666...7f592e3b60dd0a3b38d891a80aeeb92cf78d8e86) ##### Features - Add config types in [@&#8203;eslint/core](https://github.com/eslint/core) ([#&#8203;237](https://github.com/eslint/rewrite/issues/237)) ([7b6dd37](https://github.com/eslint/rewrite/commit/7b6dd370a598ea7fc94fba427a2579342b50b90f)) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;eslint/core](https://github.com/eslint/core) bumped from ^0.15.2 to ^0.16.0 ### [`v1.3.2`](https://github.com/eslint/rewrite/blob/HEAD/packages/compat/CHANGELOG.md#132-2025-08-05) [Compare Source](https://github.com/eslint/rewrite/compare/0496201974aad87fdcf3aa2a63ec74e91b54825e...9e68ab61df9c4ebc082b603fb5e3dfe2dcf98666) ##### Dependencies - The following workspace dependencies were updated - devDependencies - [@&#8203;eslint/core](https://github.com/eslint/core) bumped from ^0.15.1 to ^0.15.2 ### [`v1.3.1`](https://github.com/eslint/rewrite/blob/HEAD/packages/compat/CHANGELOG.md#131-2025-06-25) [Compare Source](https://github.com/eslint/rewrite/compare/48b1f849476582257e1b6a110c4af55adbbec2e8...0496201974aad87fdcf3aa2a63ec74e91b54825e) ##### Bug Fixes - relax `@eslint/compat` eslint peerDependencies constraint ([#&#8203;215](https://github.com/eslint/rewrite/issues/215)) ([b96ec0c](https://github.com/eslint/rewrite/commit/b96ec0c2ed6006add49c9c83a599a7d5a284348e)) ##### Dependencies - The following workspace dependencies were updated - devDependencies - [@&#8203;eslint/core](https://github.com/eslint/core) bumped from ^0.15.0 to ^0.15.1 ### [`v1.3.0`](https://github.com/eslint/rewrite/blob/HEAD/packages/compat/CHANGELOG.md#130-2025-06-09) [Compare Source](https://github.com/eslint/rewrite/compare/daa19551d7a52673ccaf7656c726dca6679ebd24...48b1f849476582257e1b6a110c4af55adbbec2e8) ##### Features - add support for custom name parameter to `includeIgnoreFile` ([#&#8203;211](https://github.com/eslint/rewrite/issues/211)) ([3e18175](https://github.com/eslint/rewrite/commit/3e1817535e75f6feca7aee6d9ec2afaa0f6ad859)) ##### Dependencies - The following workspace dependencies were updated - devDependencies - [@&#8203;eslint/core](https://github.com/eslint/core) bumped from ^0.14.0 to ^0.15.0 </details> <details> <summary>fullcalendar/fullcalendar (@&#8203;fullcalendar/core)</summary> ### [`v6.1.19`](https://github.com/fullcalendar/fullcalendar/blob/HEAD/CHANGELOG.md#6119-2025-08-08) [Compare Source](https://github.com/fullcalendar/fullcalendar/compare/v6.1.18...v6.1.19) - feature: Angular 20 support ([#&#8203;7946](https://github.com/fullcalendar/fullcalendar/issues/7946)) - feature: setting to control how nowIndicator displays in all-day slots ([#&#8203;6175](https://github.com/fullcalendar/fullcalendar/issues/6175)) (`nowIndicatorSnap`. use `false` to ensure time-granularity always) - fix: allow business hours that START past midnight ([#&#8203;7934](https://github.com/fullcalendar/fullcalendar/issues/7934)) ### [`v6.1.18`](https://github.com/fullcalendar/fullcalendar/blob/HEAD/CHANGELOG.md#6118-2025-06-29) [Compare Source](https://github.com/fullcalendar/fullcalendar/compare/v6.1.17...v6.1.18) - fix: Optimize custom content-injection rerendering performance ([#&#8203;3003](https://github.com/fullcalendar/fullcalendar/issues/3003), [#&#8203;7650](https://github.com/fullcalendar/fullcalendar/issues/7650)) (Especially important for event rerendering with `eventContent`) </details> <details> <summary>sveltejs/kit (@&#8203;sveltejs/adapter-node)</summary> ### [`v5.4.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#540) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.3.3...@sveltejs/adapter-node@5.4.0) ##### Minor Changes - feat: add [`signal`](https://developer.mozilla.org/en-US/docs/Web/API/Request/signal) property to request ([#&#8203;14715](https://github.com/sveltejs/kit/pull/14715)) ##### Patch Changes - Updated dependencies \[[`9c933a2`](https://github.com/sveltejs/kit/commit/9c933a29e64c04db03e9150fa4e2d74a894d3d12), [`dedda71`](https://github.com/sveltejs/kit/commit/dedda7184dc04543e2ba6ea3e7f50b3836505463)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.47.0 ### [`v5.3.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#533) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.3.2...@sveltejs/adapter-node@5.3.3) ##### Patch Changes - chore: update "homepage" field in package.json ([#&#8203;14579](https://github.com/sveltejs/kit/pull/14579)) ### [`v5.3.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#532) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.3.1...@sveltejs/adapter-node@5.3.2) ##### Patch Changes - fix: bump bundled sirv version to 3.0.2 ([#&#8203;14385](https://github.com/sveltejs/kit/pull/14385)) - Updated dependencies \[[`e6c3171`](https://github.com/sveltejs/kit/commit/e6c317150d330413a7691c1b00dc94ce121fdb89)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.38.0 ### [`v5.3.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#531) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.3.0...@sveltejs/adapter-node@5.3.1) ##### Patch Changes - fix: avoid erroring on builder properties that only exist on the latest version of SvelteKit ([#&#8203;14233](https://github.com/sveltejs/kit/pull/14233)) - Updated dependencies \[[`f2db41c`](https://github.com/sveltejs/kit/commit/f2db41c0d3a0aefbb080ab6a9aa5822b3e41625c)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.31.1 ### [`v5.3.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#530) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.2.16...@sveltejs/adapter-node@5.3.0) ##### Minor Changes - feat: add `instrumentation.server.ts` for tracing and observability setup ([#&#8203;13899](https://github.com/sveltejs/kit/pull/13899)) ##### Patch Changes - Updated dependencies \[[`f635678`](https://github.com/sveltejs/kit/commit/f63567812505597b1edc3e01010eca622b03b126), [`f635678`](https://github.com/sveltejs/kit/commit/f63567812505597b1edc3e01010eca622b03b126)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.31.0 ### [`v5.2.16`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#5216) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.2.15...@sveltejs/adapter-node@5.2.16) ##### Patch Changes - fix: handling of PROTOCOL\_HEADER and HOST\_HEADER env vars ([#&#8203;14221](https://github.com/sveltejs/kit/pull/14221)) - Updated dependencies \[[`ea95533`](https://github.com/sveltejs/kit/commit/ea9553380a9f1b5f3b2fcf3bebd15f900c51d77c)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.30.1 ### [`v5.2.15`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#5215) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.2.14...@sveltejs/adapter-node@5.2.15) ##### Patch Changes - fix: fallback to `host` header if header specified by `HOST_HEADER` is not in request headers ([#&#8203;11154](https://github.com/sveltejs/kit/pull/11154)) - Updated dependencies \[[`6ab60e5`](https://github.com/sveltejs/kit/commit/6ab60e509f28e13dae9e15a4af340e92ec6fcdf3), [`bfdb564`](https://github.com/sveltejs/kit/commit/bfdb5643968f201ead51d890207b9c42e400a227), [`94b30c4`](https://github.com/sveltejs/kit/commit/94b30c468ce6f6d1fa0aa985d86ef9216cff83f2)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.30.0 ### [`v5.2.14`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#5214) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.2.13...@sveltejs/adapter-node@5.2.14) ##### Patch Changes - chore: add `.git` to the end of `package.json` repository url ([#&#8203;14134](https://github.com/sveltejs/kit/pull/14134)) - Updated dependencies \[[`c968aef`](https://github.com/sveltejs/kit/commit/c968aef5727f978244d5160657b4a7ac651384ae)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.27.3 ### [`v5.2.13`](https://github.com/sveltejs/kit/blob/HEAD/packages/adapter-node/CHANGELOG.md#5213) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/adapter-node@5.2.12...@sveltejs/adapter-node@5.2.13) ##### Patch Changes - fix: remove unnecessary static directory serving middleware ([#&#8203;13953](https://github.com/sveltejs/kit/pull/13953)) - Updated dependencies \[[`bcdaf21`](https://github.com/sveltejs/kit/commit/bcdaf215c2182524e7678a1049a5f1ccbbe71e21)]: - [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit)@&#8203;2.22.3 </details> <details> <summary>sveltejs/kit (@&#8203;sveltejs/kit)</summary> ### [`v2.49.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2491) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.49.0...@sveltejs/kit@2.49.1) ##### Patch Changes - fix: suppress `state_referenced_locally` warnings in `.svelte-kit/generated/root.svelte` ([#&#8203;15013](https://github.com/sveltejs/kit/pull/15013)) - fix: TypeError when doing response.clone() in page load ([#&#8203;15005](https://github.com/sveltejs/kit/pull/15005)) ### [`v2.49.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2490) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.8...@sveltejs/kit@2.49.0) ##### Minor Changes - feat: stream file uploads inside `form` remote functions allowing form data to be accessed before large files finish uploading ([#&#8203;14775](https://github.com/sveltejs/kit/pull/14775)) ### [`v2.48.8`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2488) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.7...@sveltejs/kit@2.48.8) ##### Patch Changes - breaking: `invalid` now must be imported from `@sveltejs/kit` ([#&#8203;14768](https://github.com/sveltejs/kit/pull/14768)) - breaking: remove `submitter` option from experimental form `validate()` method, always provide default submitter ([#&#8203;14762](https://github.com/sveltejs/kit/pull/14762)) ### [`v2.48.7`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2487) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.6...@sveltejs/kit@2.48.7) ##### Patch Changes - fix: allow multiple `server-timing` headers ([#&#8203;14700](https://github.com/sveltejs/kit/pull/14700)) - fix: allow access to root-level issues in schema-less forms ([#&#8203;14893](https://github.com/sveltejs/kit/pull/14893)) - fix: allow hosting hash-based apps from non-index.html files ([#&#8203;14825](https://github.com/sveltejs/kit/pull/14825)) ### [`v2.48.6`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2486) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.5...@sveltejs/kit@2.48.6) ##### Patch Changes - fix: clear issues upon passing validation ([#&#8203;14683](https://github.com/sveltejs/kit/pull/14683)) - fix: don't use fork of unrelated route ([#&#8203;14947](https://github.com/sveltejs/kit/pull/14947)) - fix: prevent type errors when optional `@opentelemetry/api` dependency isn't installed ([#&#8203;14949](https://github.com/sveltejs/kit/pull/14949)) - fix: preserve `this` when invoking standard validator ([#&#8203;14943](https://github.com/sveltejs/kit/pull/14943)) - fix: treat client/universal hooks as entrypoints for illegal server import detection ([#&#8203;14876](https://github.com/sveltejs/kit/pull/14876)) - fix: correct query `.set` and `.refresh` behavior in commands ([#&#8203;14877](https://github.com/sveltejs/kit/pull/14877)) - fix: improved the accuracy of the types of the output of `field.as('...')` ([#&#8203;14908](https://github.com/sveltejs/kit/pull/14908)) ### [`v2.48.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2485) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.4...@sveltejs/kit@2.48.5) ##### Patch Changes - fix: wait an extra microtask in dev before calling `$_init_$` ([#&#8203;14799](https://github.com/sveltejs/kit/pull/14799)) - fix: discard preload fork before creating a new one ([#&#8203;14865](https://github.com/sveltejs/kit/pull/14865)) - fix: delete `RemoteFormAllIssue`, add `path` to `RemoteFormIssue` ([#&#8203;14864](https://github.com/sveltejs/kit/pull/14864)) ### [`v2.48.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2484) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.3...@sveltejs/kit@2.48.4) ##### Patch Changes - fix: adjust query's promise implementation to properly allow chaining ([#&#8203;14859](https://github.com/sveltejs/kit/pull/14859)) - fix: make prerender cache work, including in development ([#&#8203;14860](https://github.com/sveltejs/kit/pull/14860)) ### [`v2.48.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2483) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.2...@sveltejs/kit@2.48.3) ##### Patch Changes - fix: include hash when using `resolve` with hash routing enabled ([#&#8203;14786](https://github.com/sveltejs/kit/pull/14786)) - fix: `afterNavigate` callback not running after hydration when experimental async is enabled ([#&#8203;14644](https://github.com/sveltejs/kit/pull/14644)) fix: Snapshot `restore` method not called after reload when experimental async is enabled - fix: expose `issue.path` in `.allIssues()` ([#&#8203;14784](https://github.com/sveltejs/kit/pull/14784)) ### [`v2.48.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2482) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.1...@sveltejs/kit@2.48.2) ##### Patch Changes - fix: update DOM before running navigate callbacks ([#&#8203;14829](https://github.com/sveltejs/kit/pull/14829)) ### [`v2.48.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2481) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.48.0...@sveltejs/kit@2.48.1) ##### Patch Changes - fix: wait for commit promise instead of `settled` ([#&#8203;14818](https://github.com/sveltejs/kit/pull/14818)) ### [`v2.48.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2480) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.3...@sveltejs/kit@2.48.0) ##### Minor Changes - feat: use experimental `fork` API when available ([#&#8203;14793](https://github.com/sveltejs/kit/pull/14793)) ##### Patch Changes - fix: await for `settled` instead of `tick` in navigate ([#&#8203;14800](https://github.com/sveltejs/kit/pull/14800)) ### [`v2.47.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2473) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.2...@sveltejs/kit@2.47.3) ##### Patch Changes - fix: avoid hanging when `error()` is used while streaming promises from a server `load` function ([#&#8203;14722](https://github.com/sveltejs/kit/pull/14722)) - chore: treeshake load function code if we know it's unused ([#&#8203;14764](https://github.com/sveltejs/kit/pull/14764)) - fix: `RecursiveFormFields` type for recursive or unknown schemas ([#&#8203;14734](https://github.com/sveltejs/kit/pull/14734)) - fix: rework internal representation of form value to be `$state` ([#&#8203;14771](https://github.com/sveltejs/kit/pull/14771)) ### [`v2.47.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2472) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.1...@sveltejs/kit@2.47.2) ##### Patch Changes - fix: streamed promise not resolving when another load function returns a fast resolving promise ([#&#8203;14753](https://github.com/sveltejs/kit/pull/14753)) - chore: allow to run preflight validation only ([#&#8203;14744](https://github.com/sveltejs/kit/pull/14744)) - fix: update overload to set `invalid` type to schema input ([#&#8203;14748](https://github.com/sveltejs/kit/pull/14748)) ### [`v2.47.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2471) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.47.0...@sveltejs/kit@2.47.1) ##### Patch Changes - fix: allow `read` to be used at the top-level of remote function files ([#&#8203;14672](https://github.com/sveltejs/kit/pull/14672)) - fix: more robust remote files generation ([#&#8203;14682](https://github.com/sveltejs/kit/pull/14682)) ### [`v2.47.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2470) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.5...@sveltejs/kit@2.47.0) ##### Minor Changes - feat: add [`signal`](https://developer.mozilla.org/en-US/docs/Web/API/Request/signal) property to request ([#&#8203;14715](https://github.com/sveltejs/kit/pull/14715)) ##### Patch Changes - fix: resolve remote module syntax errors with trailing expressions ([#&#8203;14728](https://github.com/sveltejs/kit/pull/14728)) ### [`v2.46.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2465) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.4...@sveltejs/kit@2.46.5) ##### Patch Changes - fix: ensure `form` remote functions' `fields.set` triggers reactivity ([#&#8203;14661](https://github.com/sveltejs/kit/pull/14661)) ### [`v2.46.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2464) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.3...@sveltejs/kit@2.46.4) ##### Patch Changes - fix: prevent access of Svelte 5-only `untrack` function ([#&#8203;14658](https://github.com/sveltejs/kit/pull/14658)) ### [`v2.46.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2463) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.2...@sveltejs/kit@2.46.3) ##### Patch Changes - fix: merge `field.set(...)` calls ([#&#8203;14651](https://github.com/sveltejs/kit/pull/14651)) - fix: don't automatically reset form after an enhanced submission ([#&#8203;14626](https://github.com/sveltejs/kit/pull/14626)) - fix: normalize path strings when updating field values ([#&#8203;14649](https://github.com/sveltejs/kit/pull/14649)) ### [`v2.46.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2462) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.1...@sveltejs/kit@2.46.2) ##### Patch Changes - fix: prevent code execution order issues around SvelteKit's `env` modules ([#&#8203;14637](https://github.com/sveltejs/kit/pull/14637)) ### [`v2.46.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2461) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.46.0...@sveltejs/kit@2.46.1) ##### Patch Changes - fix: use `$derived` for form fields ([#&#8203;14621](https://github.com/sveltejs/kit/pull/14621)) - docs: remove `@example` blocks to allow docs to deploy ([#&#8203;14636](https://github.com/sveltejs/kit/pull/14636)) - fix: require a value with `submit` and `hidden` fields ([#&#8203;14635](https://github.com/sveltejs/kit/pull/14635)) - fix: delete hydration cache on effect teardown ([#&#8203;14611](https://github.com/sveltejs/kit/pull/14611)) ### [`v2.46.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2460) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.45.0...@sveltejs/kit@2.46.0) ##### Minor Changes - feat: imperative form validation ([#&#8203;14624](https://github.com/sveltejs/kit/pull/14624)) ##### Patch Changes - fix: wait a tick before collecting form data for validation ([#&#8203;14631](https://github.com/sveltejs/kit/pull/14631)) - fix: prevent code execution order issues around SvelteKit's `env` modules ([#&#8203;14632](https://github.com/sveltejs/kit/pull/14632)) ### [`v2.45.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2450) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.44.0...@sveltejs/kit@2.45.0) ##### Minor Changes - feat: `form.for(id)` now implicitly sets id on form object ([#&#8203;14623](https://github.com/sveltejs/kit/pull/14623)) ##### Patch Changes - fix: allow `fetch` in remote function without emitting a warning ([#&#8203;14610](https://github.com/sveltejs/kit/pull/14610)) ### [`v2.44.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2440) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.8...@sveltejs/kit@2.44.0) ##### Minor Changes - feat: expose `event.route` and `event.url` to remote functions ([#&#8203;14606](https://github.com/sveltejs/kit/pull/14606)) - breaking: update experimental `form` API ([#&#8203;14481](https://github.com/sveltejs/kit/pull/14481)) ##### Patch Changes - fix: don't crawl error responses during prerendering ([#&#8203;14596](https://github.com/sveltejs/kit/pull/14596)) ### [`v2.43.8`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2438) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.7...@sveltejs/kit@2.43.8) ##### Patch Changes - fix: HMR for `query` ([#&#8203;14587](https://github.com/sveltejs/kit/pull/14587)) - fix: avoid client modules while traversing dependencies to prevent FOUC during dev ([#&#8203;14577](https://github.com/sveltejs/kit/pull/14577)) - fix: skip prebundling of .remote.js files ([#&#8203;14583](https://github.com/sveltejs/kit/pull/14583)) - fix: more robust remote file pattern matching ([#&#8203;14578](https://github.com/sveltejs/kit/pull/14578)) ### [`v2.43.7`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2437) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.6...@sveltejs/kit@2.43.7) ##### Patch Changes - fix: correctly type the `result` of `form` remote functions that do not accept data ([#&#8203;14573](https://github.com/sveltejs/kit/pull/14573)) - fix: force remote module chunks to isolate themselves ([#&#8203;14571](https://github.com/sveltejs/kit/pull/14571)) ### [`v2.43.6`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2436) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.5...@sveltejs/kit@2.43.6) ##### Patch Changes - fix: ensure cache key is consistent between client/server ([#&#8203;14563](https://github.com/sveltejs/kit/pull/14563)) - fix: keep resolve relative to initial base during prerender ([#&#8203;14533](https://github.com/sveltejs/kit/pull/14533)) - fix: avoid including `HEAD` twice when an unhandled HTTP method is used in a request to a `+server` handler that has both a `GET` handler and a `HEAD` handler ([#&#8203;14564](https://github.com/sveltejs/kit/pull/14564)) - fix: smoothscroll to deep link ([#&#8203;14569](https://github.com/sveltejs/kit/pull/14569)) ### [`v2.43.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2435) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.4...@sveltejs/kit@2.43.5) ##### Patch Changes - fix: fall back to non-relative resolution when calling `resolve(...)` outside an event context ([#&#8203;14532](https://github.com/sveltejs/kit/pull/14532)) ### [`v2.43.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2434) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.3...@sveltejs/kit@2.43.4) ##### Patch Changes - fix: Webcontainer AsyncLocalStorage workaround ([#&#8203;14526](https://github.com/sveltejs/kit/pull/14526)) ### [`v2.43.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2433) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.2...@sveltejs/kit@2.43.3) ##### Patch Changes - fix: Webcontainer AsyncLocalStorage workaround ([#&#8203;14521](https://github.com/sveltejs/kit/pull/14521)) - fix: include the value of form submitters on `form` remote functions ([#&#8203;14475](https://github.com/sveltejs/kit/pull/14475)) ### [`v2.43.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2432) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.1...@sveltejs/kit@2.43.2) ##### Patch Changes - fix: ensure rendering starts off synchronously ([#&#8203;14517](https://github.com/sveltejs/kit/pull/14517)) - fix: keep serialized remote data alive until navigation ([#&#8203;14508](https://github.com/sveltejs/kit/pull/14508)) ### [`v2.43.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2431) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.43.0...@sveltejs/kit@2.43.1) ##### Patch Changes - fix: consistently use bare import for internals ([#&#8203;14506](https://github.com/sveltejs/kit/pull/14506)) ### [`v2.43.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2430) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.42.2...@sveltejs/kit@2.43.0) ##### Minor Changes - feat: experimental async SSR ([#&#8203;14447](https://github.com/sveltejs/kit/pull/14447)) ##### Patch Changes - fix: ensure `__SVELTEKIT_PAYLOAD__.data` is accessed safely ([#&#8203;14491](https://github.com/sveltejs/kit/pull/14491)) - fix: create separate cache entries for non-exported remote function queries ([#&#8203;14499](https://github.com/sveltejs/kit/pull/14499)) ### [`v2.42.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2422) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.42.1...@sveltejs/kit@2.42.2) ##### Patch Changes - fix: prevent loops in postbuild analysis phase ([#&#8203;14450](https://github.com/sveltejs/kit/pull/14450)) - fix: handle nested object fields in form data ([#&#8203;14469](https://github.com/sveltejs/kit/pull/14469)) - fix: robustify form helper types ([#&#8203;14463](https://github.com/sveltejs/kit/pull/14463)) - fix: avoid running the `init` hook during builds if there's nothing to prerender ([#&#8203;14464](https://github.com/sveltejs/kit/pull/14464)) - fix: ensure SSR rendering gets request store context ([#&#8203;14476](https://github.com/sveltejs/kit/pull/14476)) ### [`v2.42.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2421) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.42.0...@sveltejs/kit@2.42.1) ##### Patch Changes - fix: ensure environment setup is in its own chunk ([#&#8203;14441](https://github.com/sveltejs/kit/pull/14441)) ### [`v2.42.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2420) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.41.0...@sveltejs/kit@2.42.0) ##### Minor Changes - feat: enhance remote form functions with schema support, `input` and `issues` properties ([#&#8203;14383](https://github.com/sveltejs/kit/pull/14383)) - breaking: remote form functions get passed a parsed POJO instead of a `FormData` object now ([#&#8203;14383](https://github.com/sveltejs/kit/pull/14383)) ### [`v2.41.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2410) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.40.0...@sveltejs/kit@2.41.0) ##### Minor Changes - feat: add `%sveltekit.version%` to `app.html` ([#&#8203;12132](https://github.com/sveltejs/kit/pull/12132)) ##### Patch Changes - fix: allow remote functions to return custom types serialized with `transport` hooks ([#&#8203;14435](https://github.com/sveltejs/kit/pull/14435)) - fix: fulfil `beforeNavigate` `complete` when redirected ([#&#8203;12896](https://github.com/sveltejs/kit/pull/12896)) ### [`v2.40.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2400) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.39.1...@sveltejs/kit@2.40.0) ##### Minor Changes - feat: include `event` property on popstate/link/form navigation ([#&#8203;14307](https://github.com/sveltejs/kit/pull/14307)) ##### Patch Changes - fix: respect `replaceState`/`keepFocus`/`noScroll` when a navigation results in a redirect ([#&#8203;14424](https://github.com/sveltejs/kit/pull/14424)) - fix: invalidate preload cache when invalidateAll is true ([#&#8203;14420](https://github.com/sveltejs/kit/pull/14420)) ### [`v2.39.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2391) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.39.0...@sveltejs/kit@2.39.1) ##### Patch Changes - fix: more robust remote function code transformation ([#&#8203;14418](https://github.com/sveltejs/kit/pull/14418)) ### [`v2.39.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2390) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.38.1...@sveltejs/kit@2.39.0) ##### Minor Changes - feat: lazy discovery of remote functions ([#&#8203;14293](https://github.com/sveltejs/kit/pull/14293)) ##### Patch Changes - fix: layout load data not serialized on error page ([#&#8203;14395](https://github.com/sveltejs/kit/pull/14395)) - fix: fail prerendering when remote function fails ([#&#8203;14365](https://github.com/sveltejs/kit/pull/14365)) - fix: treat handle hook redirect as part of remote function call as json redirect ([#&#8203;14362](https://github.com/sveltejs/kit/pull/14362)) ### [`v2.38.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2381) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.38.0...@sveltejs/kit@2.38.1) ##### Patch Changes - fix: enable redirects from queries ([#&#8203;14400](https://github.com/sveltejs/kit/pull/14400)) - fix: remove empty nodes from serialized server load data ([#&#8203;14404](https://github.com/sveltejs/kit/pull/14404)) - fix: allow commands from within endpoints ([#&#8203;14343](https://github.com/sveltejs/kit/pull/14343)) ### [`v2.38.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2380) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.37.1...@sveltejs/kit@2.38.0) ##### Minor Changes - feat: add new remote function `query.batch` ([#&#8203;14272](https://github.com/sveltejs/kit/pull/14272)) ### [`v2.37.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2371) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.37.0...@sveltejs/kit@2.37.1) ##### Patch Changes - fix: serialize server `load` data before passing to universal `load`, to handle mutations and promises ([#&#8203;14298](https://github.com/sveltejs/kit/pull/14298)) - fix: resolve\_route prevent dropping a trailing slash of id ([#&#8203;14294](https://github.com/sveltejs/kit/pull/14294)) - fix: assign correct status code to form submission error on the client ([#&#8203;14345](https://github.com/sveltejs/kit/pull/14345)) - fix: un-proxy `form.result` ([#&#8203;14346](https://github.com/sveltejs/kit/pull/14346)) ### [`v2.37.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2370) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.3...@sveltejs/kit@2.37.0) ##### Minor Changes - feat: automatically resolve `query.refresh()` promises on the server ([#&#8203;14332](https://github.com/sveltejs/kit/pull/14332)) - feat: allow query.set() to be called on the server ([#&#8203;14304](https://github.com/sveltejs/kit/pull/14304)) ##### Patch Changes - fix: disable CSRF checks in dev ([#&#8203;14335](https://github.com/sveltejs/kit/pull/14335)) - fix: allow redirects to external URLs from within form functions ([#&#8203;14329](https://github.com/sveltejs/kit/pull/14329)) - fix: add type definitions for `query.set()` method to override the value of a remote query function ([#&#8203;14303](https://github.com/sveltejs/kit/pull/14303)) - fix: ensure uniqueness of `form.for(...)` across form functions ([#&#8203;14327](https://github.com/sveltejs/kit/pull/14327)) ### [`v2.36.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2363) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.2...@sveltejs/kit@2.36.3) ##### Patch Changes - fix: bump devalue ([#&#8203;14323](https://github.com/sveltejs/kit/pull/14323)) - chore: consolidate dev checks to use `esm-env` instead of a `__SVELTEKIT_DEV__` global ([#&#8203;14308](https://github.com/sveltejs/kit/pull/14308)) - fix: reset form inputs by default when using remote form functions ([#&#8203;14322](https://github.com/sveltejs/kit/pull/14322)) ### [`v2.36.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2362) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.1...@sveltejs/kit@2.36.2) ##### Patch Changes - chore: make config deprecation warnings more visible ([#&#8203;14281](https://github.com/sveltejs/kit/pull/14281)) - chore: remove redundant Not Found error message ([#&#8203;14289](https://github.com/sveltejs/kit/pull/14289)) - chore: deprecate `csrf.checkOrigin` in favour of `csrf.trustedOrigins: ['*']` ([#&#8203;14281](https://github.com/sveltejs/kit/pull/14281)) ### [`v2.36.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2361) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.36.0...@sveltejs/kit@2.36.1) ##### Patch Changes - fix: ensure importing from `$app/navigation` works in test files ([#&#8203;14195](https://github.com/sveltejs/kit/pull/14195)) ### [`v2.36.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2360) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.35.0...@sveltejs/kit@2.36.0) ##### Minor Changes - feat: add `csrf.trustedOrigins` configuration ([#&#8203;14021](https://github.com/sveltejs/kit/pull/14021)) ##### Patch Changes - fix: correctly decode custom types streamed from a server load function ([#&#8203;14261](https://github.com/sveltejs/kit/pull/14261)) - fix: add trailing slash pathname when generating typed routes ([#&#8203;14065](https://github.com/sveltejs/kit/pull/14065)) ### [`v2.35.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2350) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.34.1...@sveltejs/kit@2.35.0) ##### Minor Changes - feat: better server-side error logging ([#&#8203;13990](https://github.com/sveltejs/kit/pull/13990)) ##### Patch Changes - fix: ensure static error page is loaded correctly for custom user errors ([#&#8203;13952](https://github.com/sveltejs/kit/pull/13952)) ### [`v2.34.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2341) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.34.0...@sveltejs/kit@2.34.1) ##### Patch Changes - fix: support multiple cookies with the same name across different paths and domains ([`b2c5d02`](https://github.com/sveltejs/kit/commit/b2c5d02994a6d83275d6fb3645e6f9a2518c8d20)) - fix: add link header when preloading font ([#&#8203;14200](https://github.com/sveltejs/kit/pull/14200)) - fix: `cookies.get(...)` returns `undefined` for a just-deleted cookie ([`b2c5d02`](https://github.com/sveltejs/kit/commit/b2c5d02994a6d83275d6fb3645e6f9a2518c8d20)) - fix: load env before prerender ([`c5f7139`](https://github.com/sveltejs/kit/commit/c5f713951e41af2000f21929d42eb9d30c9d3a5c)) ### [`v2.34.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2340) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.33.1...@sveltejs/kit@2.34.0) ##### Minor Changes - feat: allow dynamic `env` access during prerender ([#&#8203;14243](https://github.com/sveltejs/kit/pull/14243)) ##### Patch Changes - fix: clone `fetch` responses so that headers are mutable ([#&#8203;13942](https://github.com/sveltejs/kit/pull/13942)) - fix: serialize server `load` data before passing to universal `load`, to handle mutations ([#&#8203;14268](https://github.com/sveltejs/kit/pull/14268)) - fix: allow `asset(...)` to be used with imported assets ([#&#8203;14270](https://github.com/sveltejs/kit/pull/14270)) ### [`v2.33.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2331) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.33.0...@sveltejs/kit@2.33.1) ##### Patch Changes - fix: make paths in .css assets relative ([#&#8203;14262](https://github.com/sveltejs/kit/pull/14262)) - fix: avoid copying SSR stylesheets to client assets ([#&#8203;13069](https://github.com/sveltejs/kit/pull/13069)) ### [`v2.33.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2330) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.32.0...@sveltejs/kit@2.33.0) ##### Minor Changes - feat: configure error reporting when routes marked as prerendable were not prerendered ([#&#8203;11702](https://github.com/sveltejs/kit/pull/11702)) ##### Patch Changes - fix: use correct flag for server tracing ([#&#8203;14250](https://github.com/sveltejs/kit/pull/14250)) - fix: correct type names for new `handleUnseenRoutes` option ([#&#8203;14254](https://github.com/sveltejs/kit/pull/14254)) - chore: Better docs and error message for missing `@opentelemetry/api` dependency ([#&#8203;14250](https://github.com/sveltejs/kit/pull/14250)) ### [`v2.32.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2320) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.31.1...@sveltejs/kit@2.32.0) ##### Minor Changes - feat: inline load fetch `response.body` stream data as base64 in page ([#&#8203;11473](https://github.com/sveltejs/kit/pull/11473)) ##### Patch Changes - fix: better error when `.remote.ts` files are used without the `experimental.remoteFunctions` flag ([#&#8203;14225](https://github.com/sveltejs/kit/pull/14225)) ### [`v2.31.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2311) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.31.0...@sveltejs/kit@2.31.1) ##### Patch Changes - fix: pass options to resolve in resolveId hook ([#&#8203;14223](https://github.com/sveltejs/kit/pull/14223)) ### [`v2.31.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2310) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.30.1...@sveltejs/kit@2.31.0) ##### Minor Changes - feat: OpenTelemetry tracing for `handle`, `sequence`, form actions, remote functions, and `load` functions running on the server ([#&#8203;13899](https://github.com/sveltejs/kit/pull/13899)) - feat: add `instrumentation.server.ts` for tracing and observability setup ([#&#8203;13899](https://github.com/sveltejs/kit/pull/13899)) ### [`v2.30.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2301) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.30.0...@sveltejs/kit@2.30.1) ##### Patch Changes - chore: generate `$app/types` in a more Typescript-friendly way ([#&#8203;14207](https://github.com/sveltejs/kit/pull/14207)) ### [`v2.30.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2300) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.29.1...@sveltejs/kit@2.30.0) ##### Minor Changes - feat: allow to specify options for the service worker in `svelte.config.js` ([#&#8203;13578](https://github.com/sveltejs/kit/pull/13578)) ##### Patch Changes - fix: ensure buttonProps.enhance works on buttons with nested text ([#&#8203;14199](https://github.com/sveltejs/kit/pull/14199)) - fix: pass validation issues specifically to avoid non-enumerable spreading error ([#&#8203;14197](https://github.com/sveltejs/kit/pull/14197)) ### [`v2.29.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2291) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.29.0...@sveltejs/kit@2.29.1) ##### Patch Changes - chore: allow remote functions in all of the src directory ([#&#8203;14198](https://github.com/sveltejs/kit/pull/14198)) ### [`v2.29.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2290) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.28.0...@sveltejs/kit@2.29.0) ##### Minor Changes - feat: add a `kit.files.src` option ([#&#8203;14152](https://github.com/sveltejs/kit/pull/14152)) ##### Patch Changes - fix: don't treat `$lib/server.ts` or `$lib/server_whatever.ts` as server-only modules, only `$lib/server/**` ([#&#8203;14191](https://github.com/sveltejs/kit/pull/14191)) - fix: make illegal server-only import errors actually useful ([#&#8203;14155](https://github.com/sveltejs/kit/pull/14155)) - chore: deprecate `config.kit.files` options ([#&#8203;14152](https://github.com/sveltejs/kit/pull/14152)) - fix: avoid warning if page options in a Svelte file belongs to a comment ([#&#8203;14180](https://github.com/sveltejs/kit/pull/14180)) ### [`v2.28.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2280) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.3...@sveltejs/kit@2.28.0) ##### Minor Changes - feat: add `RouteId` and `RouteParams` to NavigationTarget interface ([#&#8203;14167](https://github.com/sveltejs/kit/pull/14167)) - feat: add `pending` property to forms and commands ([#&#8203;14137](https://github.com/sveltejs/kit/pull/14137)) ##### Patch Changes - fix: `fetch` imported assets during prerender ([#&#8203;12201](https://github.com/sveltejs/kit/pull/12201)) - chore: refactor redundant base64 encoding/decoding functions ([#&#8203;14160](https://github.com/sveltejs/kit/pull/14160)) - fix: use correct cache result when fetching same url multiple times ([#&#8203;12355](https://github.com/sveltejs/kit/pull/12355)) - fix: don't refresh queries automatically when running commands ([#&#8203;14170](https://github.com/sveltejs/kit/pull/14170)) - fix: avoid writing remote function bundle to disk when treeshaking prerendered queries ([#&#8203;14161](https://github.com/sveltejs/kit/pull/14161)) ### [`v2.27.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2273) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.2...@sveltejs/kit@2.27.3) ##### Patch Changes - chore: add `.git` to the end of `package.json` repository url ([#&#8203;14134](https://github.com/sveltejs/kit/pull/14134)) ### [`v2.27.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2272) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.1...@sveltejs/kit@2.27.2) ##### Patch Changes - fix: ensure `form()` remote functions work when the app is configured to a single output ([#&#8203;14127](https://github.com/sveltejs/kit/pull/14127)) - fix: use the configured base path when calling remote functions from the client ([#&#8203;14106](https://github.com/sveltejs/kit/pull/14106)) ### [`v2.27.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2271) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.27.0...@sveltejs/kit@2.27.1) ##### Patch Changes - fix: correctly type remote function input parameters from a schema ([#&#8203;14098](https://github.com/sveltejs/kit/pull/14098)) - fix: match URL-encoded newlines in rest route params ([#&#8203;14102](https://github.com/sveltejs/kit/pull/14102)) - fix: correctly spell server-side in error messages ([#&#8203;14101](https://github.com/sveltejs/kit/pull/14101)) ### [`v2.27.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2270) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.26.1...@sveltejs/kit@2.27.0) ##### Minor Changes - feat: remote functions ([#&#8203;13986](https://github.com/sveltejs/kit/pull/13986)) ### [`v2.26.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2261) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.26.0...@sveltejs/kit@2.26.1) ##### Patch Changes - fix: posixify internal app server path ([#&#8203;14049](https://github.com/sveltejs/kit/pull/14049)) - fix: ignore route groups when generating typed routes ([#&#8203;14050](https://github.com/sveltejs/kit/pull/14050)) ### [`v2.26.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2260) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.25.2...@sveltejs/kit@2.26.0) ##### Minor Changes - feat: better type-safety for `page.route.id`, `page.params`, `page.url.pathname` and various other places ([#&#8203;13864](https://github.com/sveltejs/kit/pull/13864)) - feat: `resolve(...)` and `asset(...)` helpers for resolving paths ([#&#8203;13864](https://github.com/sveltejs/kit/pull/13864)) - feat: Add `$app/types` module with `Asset`, `RouteId`, `Pathname`, `ResolvedPathname` `RouteParams<T>` and `LayoutParams<T>` ([#&#8203;13864](https://github.com/sveltejs/kit/pull/13864)) ### [`v2.25.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2252) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.25.1...@sveltejs/kit@2.25.2) ##### Patch Changes - fix: correctly set URL when navigating during an ongoing navigation ([#&#8203;14004](https://github.com/sveltejs/kit/pull/14004)) ### [`v2.25.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2251) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.25.0...@sveltejs/kit@2.25.1) ##### Patch Changes - fix: add missing params property ([#&#8203;14012](https://github.com/sveltejs/kit/pull/14012)) ### [`v2.25.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2250) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.24.0...@sveltejs/kit@2.25.0) ##### Minor Changes - feat: support asynchronous `read` implementations from adapters ([#&#8203;13859](https://github.com/sveltejs/kit/pull/13859)) ##### Patch Changes - fix: log when no Svelte config file has been found to avoid confusion ([#&#8203;14001](https://github.com/sveltejs/kit/pull/14001)) ### [`v2.24.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2240) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.23.0...@sveltejs/kit@2.24.0) ##### Minor Changes - feat: typed `params` prop for page/layout components ([#&#8203;13999](https://github.com/sveltejs/kit/pull/13999)) ##### Patch Changes - fix: treeshake internal `storage.get` helper ([#&#8203;13998](https://github.com/sveltejs/kit/pull/13998)) ### [`v2.23.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2230) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.5...@sveltejs/kit@2.23.0) ##### Minor Changes - feat: support svelte.config.ts ([#&#8203;13935](https://github.com/sveltejs/kit/pull/13935)) > **NOTE** > > Your runtime has to support importing TypeScript files for `svelte.config.ts` to work. > In Node.js, the feature is supported with the `--experimental-strip-types` flag starting in Node 22.6.0 and supported without a flag starting in Node 23.6.0. ##### Patch Changes - fix: extend `vite-plugin-svelte`'s `Config` type instead of duplicating it ([#&#8203;13982](https://github.com/sveltejs/kit/pull/13982)) - fix: regression with `rolldown-vite` not bundling a single JS file for single and inline apps ([#&#8203;13941](https://github.com/sveltejs/kit/pull/13941)) ### [`v2.22.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2225) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.4...@sveltejs/kit@2.22.5) ##### Patch Changes - fix: re-add `@sveltejs/kit` to `optimizeDeps.exclude` ([#&#8203;13983](https://github.com/sveltejs/kit/pull/13983)) ### [`v2.22.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2224) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.3...@sveltejs/kit@2.22.4) ##### Patch Changes - fix: force `$app/*` modules to be bundled ([#&#8203;13977](https://github.com/sveltejs/kit/pull/13977)) ### [`v2.22.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2223) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.2...@sveltejs/kit@2.22.3) ##### Patch Changes - fix: don't bundle `@sveltejs/kit` ([#&#8203;13971](https://github.com/sveltejs/kit/pull/13971)) ### [`v2.22.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2222) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.1...@sveltejs/kit@2.22.2) ##### Patch Changes - fix: use fallback if `untrack` doesn't exist in svelte package ([#&#8203;13933](https://github.com/sveltejs/kit/pull/13933)) - fix: warning for chrome devtools requests now suggests sv instead of vite plugin ([#&#8203;13905](https://github.com/sveltejs/kit/pull/13905)) ### [`v2.22.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2221) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.0...@sveltejs/kit@2.22.1) ##### Patch Changes - fix: prevent infinite loop when calling `pushState`/`replaceState` in `$effect` ([#&#8203;13914](https://github.com/sveltejs/kit/pull/13914)) - chore: use `manualChunks` to bundle single and inline apps with Rolldown ([#&#8203;13915](https://github.com/sveltejs/kit/pull/13915)) ### [`v2.22.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2220) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.21.5...@sveltejs/kit@2.22.0) ##### Minor Changes - feat: add support for Vite 7 and Rolldown. See <https://vite.dev/guide/rolldown.html#how-to-try-rolldown> for details about how to try experimental Rolldown support. You will also need `vite-plugin-svelte@^6.0.0-next.0` and `vite@^7.0.0-beta.0`. Compilation should be faster using Rolldown, but with larger bundle sizes until additional tree-shaking is implemented in Rolldown. See [#&#8203;13738](https://github.com/sveltejs/kit/issues/13738) for ongoing work. ([#&#8203;13747](https://github.com/sveltejs/kit/pull/13747)) ### [`v2.21.5`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2215) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.21.4...@sveltejs/kit@2.21.5) ##### Patch Changes - fix: correctly set the sequential focus navigation point when using hash routing ([#&#8203;13884](https://github.com/sveltejs/kit/pull/13884)) - fix: regression when resetting focus and the URL hash contains selector combinators or separators ([#&#8203;13884](https://github.com/sveltejs/kit/pull/13884)) ### [`v2.21.4`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2214) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.21.3...@sveltejs/kit@2.21.4) ##### Patch Changes - fix: correctly access transport decoders on the client when building for a single or inline output app ([#&#8203;13871](https://github.com/sveltejs/kit/pull/13871)) ### [`v2.21.3`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2213) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.21.2...@sveltejs/kit@2.21.3) ##### Patch Changes - fix: correctly invalidate static analysis cache of child nodes when modifying a universal `+layout` file during dev ([#&#8203;13793](https://github.com/sveltejs/kit/pull/13793)) - fix: correctly set sequential focus navigation starting point after navigation ([#&#8203;10856](https://github.com/sveltejs/kit/pull/10856)) - fix: suppress console spam for chrome devtools requests ([#&#8203;13830](https://github.com/sveltejs/kit/pull/13830)) - fix: avoid externalising packages that depend on `@sveltejs/kit` so that libraries can also use `redirect` and `error` helpers ([#&#8203;13843](https://github.com/sveltejs/kit/pull/13843)) - fix: correctly run `deserialize` on the server ([#&#8203;13686](https://github.com/sveltejs/kit/pull/13686)) - fix: correctly inline stylesheets of components dynamically imported in a universal load function if they are below the configured inlineStyleThreshold ([#&#8203;13723](https://github.com/sveltejs/kit/pull/13723)) ### [`v2.21.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2212) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.21.1...@sveltejs/kit@2.21.2) ##### Patch Changes - fix: omit stack when logging 404 errors ([#&#8203;13848](https://github.com/sveltejs/kit/pull/13848)) ### [`v2.21.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2211) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.21.0...@sveltejs/kit@2.21.1) ##### Patch Changes - chore: clarify which functions `handleFetch` affects ([#&#8203;13788](https://github.com/sveltejs/kit/pull/13788)) - fix: ensure `$env` and `$app/environment` are correctly set while analysing server nodes ([#&#8203;13790](https://github.com/sveltejs/kit/pull/13790)) ### [`v2.21.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2210) [Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.20.8...@sveltejs/kit@2.21.0) ##### Minor Changes - feat: allow running client-side code at the top-level of universal pages/layouts when SSR is disabled and page options are only boolean or string literals ([#&#8203;13684](https://github.com/sveltejs/kit/pull/13684)) ##### Patch Changes - chore: remove `import-meta-resolve` dependency ([#&#8203;13629](https://github.com/sveltejs/kit/pull/13629)) - fix: remove component code from server nodes that are never used for SSR ([#&#8203;13684](https://github.com/sveltejs/kit/pull/13684)) </details> <details> <summary>tailwindlabs/tailwindcss (@&#8203;tailwindcss/postcss)</summary> ### [`v4.1.17`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4117---2025-11-06) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.16...v4.1.17) ##### Fixed - Substitute `@variant` inside legacy JS APIs ([#&#8203;19263](https://github.com/tailwindlabs/tailwindcss/pull/19263)) - Prevent occasional crash on Windows when loaded into a worker thread ([#&#8203;19242](https://github.com/tailwindlabs/tailwindcss/pull/19242)) ### [`v4.1.16`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4116---2025-10-23) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.15...v4.1.16) ##### Fixed - Discard candidates with an empty data type ([#&#8203;19172](https://github.com/tailwindlabs/tailwindcss/pull/19172)) - Fix canonicalization of arbitrary variants with attribute selectors ([#&#8203;19176](https://github.com/tailwindlabs/tailwindcss/pull/19176)) - Fix invalid colors due to nested `&` ([#&#8203;19184](https://github.com/tailwindlabs/tailwindcss/pull/19184)) - Improve canonicalization for `& > :pseudo` and `& :pseudo` arbitrary variants ([#&#8203;19178](https://github.com/tailwindlabs/tailwindcss/pull/19178)) ### [`v4.1.15`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4115---2025-10-20) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.14...v4.1.15) ##### Fixed - Fix Safari devtools rendering issue due to `color-mix` fallback ([#&#8203;19069](https://github.com/tailwindlabs/tailwindcss/pull/19069)) - Suppress Lightning CSS warnings about `:deep`, `:slotted`, and `:global` ([#&#8203;19094](https://github.com/tailwindlabs/tailwindcss/pull/19094)) - Fix resolving theme keys when starting with the name of another theme key in JS configs and plugins ([#&#8203;19097](https://github.com/tailwindlabs/tailwindcss/pull/19097)) - Allow named groups in combination with `not-*`, `has-*`, and `in-*` ([#&#8203;19100](https://github.com/tailwindlabs/tailwindcss/pull/19100)) - Prevent important utilities from affecting other utilities ([#&#8203;19110](https://github.com/tailwindlabs/tailwindcss/pull/19110)) - Don’t index into strings with the `theme(…)` function ([#&#8203;19111](https://github.com/tailwindlabs/tailwindcss/pull/19111)) - Fix parsing issue when `\t` is used in at-rules ([#&#8203;19130](https://github.com/tailwindlabs/tailwindcss/pull/19130)) - Upgrade: Canonicalize utilities containing `0` values ([#&#8203;19095](https://github.com/tailwindlabs/tailwindcss/pull/19095)) - Upgrade: Migrate deprecated `break-words` to `wrap-break-word` ([#&#8203;19157](https://github.com/tailwindlabs/tailwindcss/pull/19157)) ##### Changed - Remove the `postinstall` script from oxide (\[[#&#8203;19149](https://github.com/tailwindlabs/tailwindcss/issues/19149)])([#&#8203;19149](https://github.com/tailwindlabs/tailwindcss/pull/19149)) ### [`v4.1.14`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4114---2025-10-01) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.13...v4.1.14) ##### Fixed - Handle `'` syntax in ClojureScript when extracting classes ([#&#8203;18888](https://github.com/tailwindlabs/tailwindcss/pull/18888)) - Handle `@variant` inside `@custom-variant` ([#&#8203;18885](https://github.com/tailwindlabs/tailwindcss/pull/18885)) - Merge suggestions when using `@utility` ([#&#8203;18900](https://github.com/tailwindlabs/tailwindcss/pull/18900)) - Ensure that file system watchers created when using the CLI are always cleaned up ([#&#8203;18905](https://github.com/tailwindlabs/tailwindcss/pull/18905)) - Do not generate `grid-column` utilities when configuring `grid-column-start` or `grid-column-end` ([#&#8203;18907](https://github.com/tailwindlabs/tailwindcss/pull/18907)) - Do not generate `grid-row` utilities when configuring `grid-row-start` or `grid-row-end` ([#&#8203;18907](https://github.com/tailwindlabs/tailwindcss/pull/18907)) - Prevent duplicate CSS when overwriting a static utility with a theme key ([#&#8203;18056](https://github.com/tailwindlabs/tailwindcss/pull/18056)) - Show Lightning CSS warnings (if any) when optimizing/minifying ([#&#8203;18918](https://github.com/tailwindlabs/tailwindcss/pull/18918)) - Use `default` export condition for `@tailwindcss/vite` ([#&#8203;18948](https://github.com/tailwindlabs/tailwindcss/pull/18948)) - Re-throw errors from PostCSS nodes ([#&#8203;18373](https://github.com/tailwindlabs/tailwindcss/pull/18373)) - Detect classes in markdown inline directives ([#&#8203;18967](https://github.com/tailwindlabs/tailwindcss/pull/18967)) - Ensure files with only `@theme` produce no output when built ([#&#8203;18979](https://github.com/tailwindlabs/tailwindcss/pull/18979)) - Support Maud templates when extracting classes ([#&#8203;18988](https://github.com/tailwindlabs/tailwindcss/pull/18988)) - Upgrade: Do not migrate `variant = 'outline'` during upgrades ([#&#8203;18922](https://github.com/tailwindlabs/tailwindcss/pull/18922)) - Upgrade: Show version mismatch (if any) when running upgrade tool ([#&#8203;19028](https://github.com/tailwindlabs/tailwindcss/pull/19028)) - Upgrade: Ensure first class inside `className` is migrated ([#&#8203;19031](https://github.com/tailwindlabs/tailwindcss/pull/19031)) - Upgrade: Migrate classes inside `*ClassName` and `*Class` attributes ([#&#8203;19031](https://github.com/tailwindlabs/tailwindcss/pull/19031)) ### [`v4.1.13`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4113---2025-09-03) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.12...v4.1.13) ##### Changed - Drop warning from browser build ([#&#8203;18731](https://github.com/tailwindlabs/tailwindcss/issues/18731)) - Drop exact duplicate declarations when emitting CSS ([#&#8203;18809](https://github.com/tailwindlabs/tailwindcss/issues/18809)) ##### Fixed - Don't transition `visibility` when using `transition` ([#&#8203;18795](https://github.com/tailwindlabs/tailwindcss/pull/18795)) - Discard matched variants with unknown named values ([#&#8203;18799](https://github.com/tailwindlabs/tailwindcss/pull/18799)) - Discard matched variants with non-string values ([#&#8203;18799](https://github.com/tailwindlabs/tailwindcss/pull/18799)) - Show suggestions for known `matchVariant` values ([#&#8203;18798](https://github.com/tailwindlabs/tailwindcss/pull/18798)) - Replace deprecated `clip` with `clip-path` in `sr-only` ([#&#8203;18769](https://github.com/tailwindlabs/tailwindcss/pull/18769)) - Hide internal fields from completions in `matchUtilities` ([#&#8203;18820](https://github.com/tailwindlabs/tailwindcss/pull/18820)) - Ignore `.vercel` folders by default (can be overridden by `@source …` rules) ([#&#8203;18855](https://github.com/tailwindlabs/tailwindcss/pull/18855)) - Consider variants starting with `@-` to be invalid (e.g. `@-2xl:flex`) ([#&#8203;18869](https://github.com/tailwindlabs/tailwindcss/pull/18869)) - Do not allow custom variants to start or end with a `-` or `_` ([#&#8203;18867](https://github.com/tailwindlabs/tailwindcss/pull/18867), [#&#8203;18872](https://github.com/tailwindlabs/tailwindcss/pull/18872)) - Upgrade: Migrate `aria` theme keys to `@custom-variant` ([#&#8203;18815](https://github.com/tailwindlabs/tailwindcss/pull/18815)) - Upgrade: Migrate `data` theme keys to `@custom-variant` ([#&#8203;18816](https://github.com/tailwindlabs/tailwindcss/pull/18816)) - Upgrade: Migrate `supports` theme keys to `@custom-variant` ([#&#8203;18817](https://github.com/tailwindlabs/tailwindcss/pull/18817)) ### [`v4.1.12`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4112---2025-08-13) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.11...v4.1.12) ##### Fixed - Don't consider the global important state in `@apply` ([#&#8203;18404](https://github.com/tailwindlabs/tailwindcss/pull/18404)) - Add missing suggestions for `flex-<number>` utilities ([#&#8203;18642](https://github.com/tailwindlabs/tailwindcss/pull/18642)) - Fix trailing `)` from interfering with extraction in Clojure keywords ([#&#8203;18345](https://github.com/tailwindlabs/tailwindcss/pull/18345)) - Detect classes inside Elixir charlist, word list, and string sigils ([#&#8203;18432](https://github.com/tailwindlabs/tailwindcss/pull/18432)) - Track source locations through `@plugin` and `@config` ([#&#8203;18345](https://github.com/tailwindlabs/tailwindcss/pull/18345)) - Allow boolean values of `process.env.DEBUG` in `@tailwindcss/node` ([#&#8203;18485](https://github.com/tailwindlabs/tailwindcss/pull/18485)) - Ignore consecutive semicolons in the CSS parser ([#&#8203;18532](https://github.com/tailwindlabs/tailwindcss/pull/18532)) - Center the dropdown icon added to an input with a paired datalist by default ([#&#8203;18511](https://github.com/tailwindlabs/tailwindcss/pull/18511)) - Extract candidates in Slang templates ([#&#8203;18565](https://github.com/tailwindlabs/tailwindcss/pull/18565)) - Improve error messages when encountering invalid functional utility names ([#&#8203;18568](https://github.com/tailwindlabs/tailwindcss/pull/18568)) - Discard CSS AST objects with `false` or `undefined` properties ([#&#8203;18571](https://github.com/tailwindlabs/tailwindcss/pull/18571)) - Allow users to disable URL rebasing in `@tailwindcss/postcss` via `transformAssetUrls: false` ([#&#8203;18321](https://github.com/tailwindlabs/tailwindcss/pull/18321)) - Fix false-positive migrations in `addEventListener` and JavaScript variable names ([#&#8203;18718](https://github.com/tailwindlabs/tailwindcss/pull/18718)) - Fix Standalone CLI showing default Bun help when run via symlink on Windows ([#&#8203;18723](https://github.com/tailwindlabs/tailwindcss/pull/18723)) - Read from `--border-color-*` theme keys in `divide-*` utilities for backwards compatibility ([#&#8203;18704](https://github.com/tailwindlabs/tailwindcss/pull/18704/)) - Don't scan `.hdr` and `.exr` files for classes by default ([#&#8203;18734](https://github.com/tailwindlabs/tailwindcss/pull/18734)) ### [`v4.1.11`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11) ##### Fixed - Add heuristic to skip candidate migrations inside `emit(…)` ([#&#8203;18330](https://github.com/tailwindlabs/tailwindcss/pull/18330)) - Extract candidates with variants in Clojure/ClojureScript keywords ([#&#8203;18338](https://github.com/tailwindlabs/tailwindcss/pull/18338)) - Document `--watch=always` in the CLI's usage ([#&#8203;18337](https://github.com/tailwindlabs/tailwindcss/pull/18337)) - Add support for Vite 7 to `@tailwindcss/vite` ([#&#8203;18384](https://github.com/tailwindlabs/tailwindcss/pull/18384)) ### [`v4.1.10`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10) ##### Fixed - Fix incorrectly generated CSS when using percentages in arbitrary values with calc (e.g. `w-[calc(100%-var(--offset))]`) ([#&#8203;18289](https://github.com/tailwindlabs/tailwindcss/pull/18289)) ### [`v4.1.9`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9) ##### Fixed - Correctly parse custom properties with strings containing semicolons ([#&#8203;18251](https://github.com/tailwindlabs/tailwindcss/pull/18251)) - Upgrade: Migrate arbitrary modifiers without percentage signs to bare values (e.g. `/[0.16]` → `/16`) ([#&#8203;18184](https://github.com/tailwindlabs/tailwindcss/pull/18184)) - Upgrade: Migrate CSS variable shorthands where fallback value contains function call ([#&#8203;18184](https://github.com/tailwindlabs/tailwindcss/pull/18184)) - Upgrade: Migrate negative arbitrary values to negative bare values (e.g. `mb-[-32rem]` → `-mb-128`) ([#&#8203;18212](https://github.com/tailwindlabs/tailwindcss/pull/18212)) - Upgrade: Do not migrate `blur` in `wire:model.blur` ([#&#8203;18216](https://github.com/tailwindlabs/tailwindcss/pull/18216)) - Don't add spaces around CSS dashed idents when formatting math expressions ([#&#8203;18220](https://github.com/tailwindlabs/tailwindcss/pull/18220)) ### [`v4.1.8`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8) ##### Added - Improve error messages when `@apply` fails ([#&#8203;18059](https://github.com/tailwindlabs/tailwindcss/pull/18059)) ##### Fixed - Upgrade: Do not migrate declarations that look like candidates in `<style>` blocks ([#&#8203;18057](https://github.com/tailwindlabs/tailwindcss/pull/18057), [18068](https://github.com/tailwindlabs/tailwindcss/pull/18068)) - Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos ([#&#8203;18065](https://github.com/tailwindlabs/tailwindcss/pull/18065)) - Upgrade: Don't error when updating dependencies in pnpm monorepos ([#&#8203;18065](https://github.com/tailwindlabs/tailwindcss/pull/18065)) - Upgrade: Migrate deprecated `order-none` to `order-0` ([#&#8203;18126](https://github.com/tailwindlabs/tailwindcss/pull/18126)) - Support Leptos `class:` attributes when extracting classes ([#&#8203;18093](https://github.com/tailwindlabs/tailwindcss/pull/18093)) - Fix "Cannot read properties of undefined" crash on malformed arbitrary value ([#&#8203;18133](https://github.com/tailwindlabs/tailwindcss/pull/18133)) - Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around ([#&#8203;18154](https://github.com/tailwindlabs/tailwindcss/pull/18154)) - Fix Haml pre-processing crash when there is no `\n` at the end of the file ([#&#8203;18155](https://github.com/tailwindlabs/tailwindcss/pull/18155)) - Ignore `.pnpm-store` folders by default (can be overridden by `@source …` rules) ([#&#8203;18163](https://github.com/tailwindlabs/tailwindcss/pull/18163)) - Fix PostCSS crash when calling `toJSON()` ([#&#8203;18083](https://github.com/tailwindlabs/tailwindcss/pull/18083)) ### [`v4.1.7`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7) ##### Added - Upgrade: Migrate bare values to named values ([#&#8203;18000](https://github.com/tailwindlabs/tailwindcss/pull/18000)) - Upgrade: Added cache to improve template migration performance ([#&#8203;18025](https://github.com/tailwindlabs/tailwindcss/pull/18025)) ##### Fixed - Allow `_` before numbers during candidate extraction ([#&#8203;17961](https://github.com/tailwindlabs/tailwindcss/pull/17961)) - Prevent duplicate suggestions when using `@theme` and `@utility` together ([#&#8203;17675](https://github.com/tailwindlabs/tailwindcss/pull/17675)) - Ensure that media queries within `::before` and `::after` pseudo selectors create valid CSS rules in production builds ([#&#8203;17979](https://github.com/tailwindlabs/tailwindcss/pull/17979)) - Ensure that the standalone CLI does not leave temporary files behind ([#&#8203;17981](https://github.com/tailwindlabs/tailwindcss/pull/17981)) - Ensure `-rotate-*` utilities properly negate arbitrary values ([#&#8203;18014](https://github.com/tailwindlabs/tailwindcss/pull/18014)) - Ignore custom variants using `:merge(…)` selectors in legacy JS plugins ([#&#8203;18020](https://github.com/tailwindlabs/tailwindcss/pull/18020)) - Ensure classes containing `.` are properly extracted from Clojure files ([#&#8203;18038](https://github.com/tailwindlabs/tailwindcss/pull/18038)) - Upgrade: Fix error when using `@import … source(…)` ([#&#8203;17963](https://github.com/tailwindlabs/tailwindcss/pull/17963)) - Upgrade: Change casing of utilities with named values to kebab-case to match updated theme variables ([#&#8203;18017](https://github.com/tailwindlabs/tailwindcss/pull/18017)) - Upgrade: Don't migrate strings that match utility names in Vue attribute bindings other than `class` ([#&#8203;18025](https://github.com/tailwindlabs/tailwindcss/pull/18025)) ### [`v4.1.6`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6) ##### Added - Upgrade: Automatically convert arbitrary values to named values when possible (e.g. `h-[1lh]` to `h-lh`) ([#&#8203;17831](https://github.com/tailwindlabs/tailwindcss/pull/17831), [#&#8203;17854](https://github.com/tailwindlabs/tailwindcss/pull/17854)) - Upgrade: Update dependencies in parallel for improved performance ([#&#8203;17898](https://github.com/tailwindlabs/tailwindcss/pull/17898)) - Add detailed logging about `@source` directives, discovered files and scanned files when using `DEBUG=*` ([#&#8203;17906](https://github.com/tailwindlabs/tailwindcss/pull/17906), [#&#8203;17952](https://github.com/tailwindlabs/tailwindcss/pull/17952)) - Add support for generating source maps in development ([#&#8203;17775](https://github.com/tailwindlabs/tailwindcss/pull/17775)) ##### Fixed - Ensure negative arbitrary `scale` values generate negative values ([#&#8203;17831](https://github.com/tailwindlabs/tailwindcss/pull/17831)) - Fix HAML extraction with embedded Ruby ([#&#8203;17846](https://github.com/tailwindlabs/tailwindcss/pull/17846)) - Don't scan files for utilities when using `@reference` ([#&#8203;17836](https://github.com/tailwindlabs/tailwindcss/pull/17836)) - Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand `bg-red-500/(--my_opacity)` ([#&#8203;17889](https://github.com/tailwindlabs/tailwindcss/pull/17889)) - Don't scan `.log` files for classes by default ([#&#8203;17906](https://github.com/tailwindlabs/tailwindcss/pull/17906)) - Ensure that custom utilities applying other custom utilities don't swallow nested `@apply` rules ([#&#8203;17925](https://github.com/tailwindlabs/tailwindcss/pull/17925)) - Download platform specific package if `optionalDependencies` are skipped ([#&#8203;17929](https://github.com/tailwindlabs/tailwindcss/pull/17929)) </details> <details> <summary>postcss/autoprefixer (autoprefixer)</summary> ### [`v10.4.22`](https://github.com/postcss/autoprefixer/blob/HEAD/CHANGELOG.md#10422) [Compare Source](https://github.com/postcss/autoprefixer/compare/10.4.21...10.4.22) - Fixed `stretch` prefixes on new Can I Use database. - Updated `fraction.js`. </details> <details> <summary>saadeghi/daisyui (daisyui)</summary> ### [`v5.5.8`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#558-2025-12-03) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.7...v5.5.8) ##### Bug Fixes - badge padding to respect --size-selector, clean up kbd and tab padding properties. closes: [#&#8203;4293](https://github.com/saadeghi/daisyui/issues/4293) ([e713958](https://github.com/saadeghi/daisyui/commit/e7139585b3a35c40578777c0c70d8faae1c8f504)) ### [`v5.5.7`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#557-2025-12-03) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.6...v5.5.7) ##### Bug Fixes - cleanup a few instances of calc in tabs and FAB ([#&#8203;4292](https://github.com/saadeghi/daisyui/issues/4292)) ([589c5ad](https://github.com/saadeghi/daisyui/commit/589c5ad766cdcb61947a003812eb4b4005f92629)) ### [`v5.5.6`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#556-2025-12-03) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.5...v5.5.6) ##### Bug Fixes - chat bubble height overflow on Safari ([e36afac](https://github.com/saadeghi/daisyui/commit/e36afacd5af19955caff8360befbc6ef38b1847c)), closes [github.com/saadeghi/daisyui/issues/3712#issuecomment-3599503502](https://github.com/saadeghi/daisyui/issues/3712/#issuecomment-3599503502) ### [`v5.5.5`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#555-2025-11-15) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.4...v5.5.5) ##### Bug Fixes - button layer ([e3d3f5b](https://github.com/saadeghi/daisyui/commit/e3d3f5bed86706e41be727536109f93760ee6f2f)), closes [#&#8203;4288](https://github.com/saadeghi/daisyui/issues/4288) ### [`v5.5.4`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#554-2025-11-14) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.3...v5.5.4) ##### Bug Fixes - menu animation for 1st level menu in menu-horizontal ([#&#8203;4278](https://github.com/saadeghi/daisyui/issues/4278)) ([3a7919a](https://github.com/saadeghi/daisyui/commit/3a7919a1ce0edff8eca6af9d0fa62c6cbd8bc290)), closes [#&#8203;4273](https://github.com/saadeghi/daisyui/issues/4273) ### [`v5.5.3`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#553-2025-11-13) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.2...v5.5.3) ##### Bug Fixes - table borders. closes: [#&#8203;3723](https://github.com/saadeghi/daisyui/issues/3723) ([5cf7bf7](https://github.com/saadeghi/daisyui/commit/5cf7bf7b833197f3a8f19bfee496956de1258579)) ### [`v5.5.2`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#552-2025-11-13) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.1...v5.5.2) ##### Bug Fixes - prefix for `is-drawer-close` and `is-drawer-open`. closes: [#&#8203;4197](https://github.com/saadeghi/daisyui/issues/4197) ([f3005f4](https://github.com/saadeghi/daisyui/commit/f3005f403b059e02c2d0868807a6de745d513b52)) ### [`v5.5.1`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#551-2025-11-13) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.5.0...v5.5.1) ##### Bug Fixes - layer nesting. closes: [#&#8203;4209](https://github.com/saadeghi/daisyui/issues/4209) ([c20d12c](https://github.com/saadeghi/daisyui/commit/c20d12c92c51cefb5f26c95a9449ae3e9c3c4b11)) ### [`v5.5.0`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#550-2025-11-11) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.8...v5.5.0) ##### Features - new component `hover-3d` to make a 3D card - new component `text-rotate` to rotate between multiple words - new `skeleton` variant: `skeleton-text` for animated gradient text - improve `diff` drag area - improve `<code>` padding in `prose`. closes: [#&#8203;4243](https://github.com/saadeghi/daisyui/issues/4243) - new `dropdown` modifier: `dropdown-close` to force close a dropdown - `btn` selector improvements (7% smaller CSS size) - details in menu now has smooth transition ##### Docs - search now includes all class names and variables - update disable menu example to be more accessible - update llms.txt ### [`v5.4.8`](https://github.com/saadeghi/daisyui/releases/tag/v5.4.8) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.7...v5.4.8) 🌼 Read changelog: <https://daisyui.com/docs/changelog/> 📦 Install this update: ```bash npm i -D daisyui@5.4.8 ``` 💚 Thank you for using daisyUI! ### [`v5.4.7`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#547-2025-11-06) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.6...v5.4.7) ##### Bug Fixes - remove hover effect from disabled calendar dates ([#&#8203;4257](https://github.com/saadeghi/daisyui/issues/4257)) closes: [#&#8203;4253](https://github.com/saadeghi/daisyui/issues/4253) ([0a9cd05](https://github.com/saadeghi/daisyui/commit/0a9cd053c73c7cfba96811192fdd0f4460dbf6f0)) ### [`v5.4.6`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#546-2025-11-06) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.5...v5.4.6) ##### Bug Fixes - prevent empty tooltips from showing on focus ([#&#8203;4258](https://github.com/saadeghi/daisyui/issues/4258)) closes: [#&#8203;4254](https://github.com/saadeghi/daisyui/issues/4254) ([a5766b8](https://github.com/saadeghi/daisyui/commit/a5766b8774852faaddff7ec8a5bc07a1d337a29c)) ### [`v5.4.5`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#545-2025-11-05) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.4...v5.4.5) ##### Bug Fixes - leaking grid style issue in list ([a22e54d](https://github.com/saadeghi/daisyui/commit/a22e54d100e542e020967c72cd297ba3ae4a1833)) ### [`v5.4.4`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#544-2025-11-05) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.3...v5.4.4) ##### Bug Fixes - substract padding from tab-content height for tabs-box ([#&#8203;4235](https://github.com/saadeghi/daisyui/issues/4235)) ([e59a7a0](https://github.com/saadeghi/daisyui/commit/e59a7a07b9c3961e02f4a2679cbf381830d631bf)) ### [`v5.4.3`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#543-2025-11-03) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.2...v5.4.3) ##### Bug Fixes - kbd box-shadow in prose ([1f3e4d1](https://github.com/saadeghi/daisyui/commit/1f3e4d1d60a6bbb3bb065843e9f51a4dbdb27957)) ### [`v5.4.2`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#542-2025-11-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.1...v5.4.2) ##### Bug Fixes - drawer height issue from 5.4.0 ([261b302](https://github.com/saadeghi/daisyui/commit/261b302bec693c0418588782a158bf1df581cdb2)) ### [`v5.4.1`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#541-2025-11-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.4.0...v5.4.1) ##### Bug Fixes - allow outline on all methods of dropdown, not just summary ([624a0a6](https://github.com/saadeghi/daisyui/commit/624a0a6845f8f49f9f525422733687ec60bf4bfa)) ### [`v5.4.0`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#542-2025-11-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.11...v5.4.0) ##### Bug Fixes - drawer height issue from 5.4.0 ([261b302](https://github.com/saadeghi/daisyui/commit/261b302bec693c0418588782a158bf1df581cdb2)) ### [`v5.3.11`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5311-2025-11-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.10...v5.3.11) ##### Bug Fixes - prevent tab style bleeding to children tabs. closes: [#&#8203;4200](https://github.com/saadeghi/daisyui/issues/4200) ([15044b2](https://github.com/saadeghi/daisyui/commit/15044b2f77edc2e04290ce1493638cba42430c29)) ### [`v5.3.10`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5310-2025-10-26) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.9...v5.3.10) ##### Bug Fixes - range thumb color on Safari ([2c4a825](https://github.com/saadeghi/daisyui/commit/2c4a8254be4c13e6c256640026339e6272e63e68)) ### [`v5.3.9`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#539-2025-10-24) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.8...v5.3.9) ##### Bug Fixes - allow browser to find text in collapse `<details>` ([bde0427](https://github.com/saadeghi/daisyui/commit/bde0427f0e841b4599a0e02465792c98c717cec1)), closes [#&#8203;4194](https://github.com/saadeghi/daisyui/issues/4194) ### [`v5.3.8`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#538-2025-10-22) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.7...v5.3.8) ##### Bug Fixes - easier overriding before/after content using utility classes. closes: [#&#8203;4196](https://github.com/saadeghi/daisyui/issues/4196) ([f2b1e9f](https://github.com/saadeghi/daisyui/commit/f2b1e9fda1dbb9a9907bca136f0de75b7a0d3436)) ### [`v5.3.7`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#537-2025-10-16) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.6...v5.3.7) ##### Bug Fixes - `btn` in `prose` shouldn't have underline by default. closes: [#&#8203;4192](https://github.com/saadeghi/daisyui/issues/4192) ([1205a90](https://github.com/saadeghi/daisyui/commit/1205a90bdbbbba832e0e207a7966625b77c2a44d)) ### [`v5.3.6`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#536-2025-10-16) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.5...v5.3.6) ##### Bug Fixes - backdrop color bleeding issue + scrollbar improvements. closes: [#&#8203;3928](https://github.com/saadeghi/daisyui/issues/3928) ([240d1d8](https://github.com/saadeghi/daisyui/commit/240d1d8582f3adb0244d9d08e8b725593f268818)) ### [`v5.3.5`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#535-2025-10-16) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.4...v5.3.5) ##### Bug Fixes - `btn-disabled` color. closes: [#&#8203;4191](https://github.com/saadeghi/daisyui/issues/4191) ([bf956c8](https://github.com/saadeghi/daisyui/commit/bf956c8d6ad0ac8ed5c5e35927aa1aafcef6a4ce)) ### [`v5.3.4`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#534-2025-10-16) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.3...v5.3.4) ##### Bug Fixes - `validator-hint` overrides `hidden` class as expected. close: [#&#8203;4188](https://github.com/saadeghi/daisyui/issues/4188) ([c05604d](https://github.com/saadeghi/daisyui/commit/c05604d6d9c44031b81df32cdac79d78b7d3e962)) ### [`v5.3.3`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#533-2025-10-15) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.2...v5.3.3) ##### Bug Fixes - do not show the line before for first step in horizontal orientation ([#&#8203;4187](https://github.com/saadeghi/daisyui/issues/4187)) ([3cce2c8](https://github.com/saadeghi/daisyui/commit/3cce2c82a318dcab6cbd96eca550d32cb5c44b43)) ### [`v5.3.2`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#532-2025-10-15) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.1...v5.3.2) ##### Bug Fixes - adjust layers - drawer and collapse ([#&#8203;4183](https://github.com/saadeghi/daisyui/issues/4183)) ([6cb4500](https://github.com/saadeghi/daisyui/commit/6cb450034237600bd4e2c1dd4953a3bb1ea72ab3)) ### [`v5.3.1`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5311-2025-11-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.3.0...v5.3.1) ##### Bug Fixes - prevent tab style bleeding to children tabs. closes: [#&#8203;4200](https://github.com/saadeghi/daisyui/issues/4200) ([15044b2](https://github.com/saadeghi/daisyui/commit/15044b2f77edc2e04290ce1493638cba42430c29)) ### [`v5.3.0`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#530-2025-10-13) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.2.5...v5.3.0) ##### Features - Add new layers to improve CSS specificity ([5044a3f](https://github.com/saadeghi/daisyui/commit/5044a3ff84a9b21cf6d9c6d741a9bb272aa53c3e)), closes [#&#8203;3589](https://github.com/saadeghi/daisyui/issues/3589) [#&#8203;3622](https://github.com/saadeghi/daisyui/issues/3622) ##### Bug Fixes - fix: card modifier classes can be used with Tailwind variants now, closes: [#&#8203;3589](https://github.com/saadeghi/daisyui/issues/3589) - fix: btn-disabled can be used with Tailwind variants now, closes: [#&#8203;3622](https://github.com/saadeghi/daisyui/issues/3622) ### [`v5.2.5`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#525-2025-10-13) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.2.4...v5.2.5) ##### Bug Fixes - fix version mismatch ([3198cda](https://github.com/saadeghi/daisyui/commit/3198cda82fa70c56a57e060c3fc5a76721d1c86c)) ### [`v5.2.4`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#524-2025-10-13) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.2.3...v5.2.4) ### [`v5.2.3`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#523-2025-10-11) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.2.2...v5.2.3) ##### Bug Fixes - fix: style for nested validator with aria-invalid attribute. closes: [#&#8203;4176](https://github.com/saadeghi/daisyui/issues/4176) ### [`v5.2.2`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#522-2025-10-11) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.2.1...v5.2.2) ##### Bug Fixes - countdown RTL bug and allow defining number of digits ([426de84](https://github.com/saadeghi/daisyui/commit/426de84e061f511d95d1a44c877fb65395f3afdf)) ### [`v5.2.1`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#521-2025-10-11) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.2.0...v5.2.1) ##### Bug Fixes - countdown alignment problems ([#&#8203;4166](https://github.com/saadeghi/daisyui/issues/4166)) ([83198ca](https://github.com/saadeghi/daisyui/commit/83198ca1ff0b98a2aff12bade01231836f3cd93c)), closes [#&#8203;3872](https://github.com/saadeghi/daisyui/issues/3872) ### [`v5.2.0`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#520-2025-10-10) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.32...v5.2.0) ##### Features - new variants for drawer: `is-drawer-open` and `is-drawer-close` to style elements based on drawer state. Allowing us to create icon-only drawer sidebar. - countdown now supports 0 to 999 with dynamic width ([6b63563](https://github.com/saadeghi/daisyui/commit/6b6356371b3df2735ce947adfdf8c95f9daba37d)) - **countdown:** animate independently the 2 digits of the number ([d3a32e2](https://github.com/saadeghi/daisyui/commit/d3a32e2d55d53cf3aefd4746a7c0a0731e999235)), closes [#&#8203;4143](https://github.com/saadeghi/daisyui/issues/4143) - detect if page has vertical scrollbar visible and set scrollbar-gutter ([abf02cc](https://github.com/saadeghi/daisyui/commit/abf02cc347f78edab891ba3a0d1285440af01538)) - icon-only drawer sidebar, new variants `is-drawer-open` and `is-drawer-close` ([32e919e](https://github.com/saadeghi/daisyui/commit/32e919e1bb73a3320fddf6d5381a1ad6699d65fd)) ##### Bug Fixes - **dropdown:** do not open dropdown on click (but open it on kbd focus) ([39e4cb5](https://github.com/saadeghi/daisyui/commit/39e4cb54abddda75c03c0c1a5948d1d1b28fa967)), closes [#&#8203;3880](https://github.com/saadeghi/daisyui/issues/3880) - enable tailwind conditional classes on menu-active ([4a8d227](https://github.com/saadeghi/daisyui/commit/4a8d227521f928217c7de112d24b102fe71013e8)) - Tailwind CSS `collapse` utility class conflict ([c39d839](https://github.com/saadeghi/daisyui/commit/c39d8393214696bc054882ddb21d14aab6b6bacc)) - fix scrollbar gutter layout shift on Windows when modal or drawer has a different scrollbar visibility than the body ### [`v5.1.32`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5132-2025-10-10) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.31...v5.1.32) ### [`v5.1.31`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5131-2025-10-10) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.30...v5.1.31) ##### Bug Fixes - **modal:** make sure elements inside modal are hidden when not open ([#&#8203;4161](https://github.com/saadeghi/daisyui/issues/4161)) ([5ddae21](https://github.com/saadeghi/daisyui/commit/5ddae21f05fdf670b0d31d16b875566b530f8e2c)), closes [#&#8203;3440](https://github.com/saadeghi/daisyui/issues/3440) [#&#8203;3835](https://github.com/saadeghi/daisyui/issues/3835) [#&#8203;2223](https://github.com/saadeghi/daisyui/issues/2223) ### [`v5.1.30`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5130-2025-10-09) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.29...v5.1.30) ##### Bug Fixes - focus the first focusable element when modal opens. closes: [#&#8203;3440](https://github.com/saadeghi/daisyui/issues/3440) ([c1e2f0c](https://github.com/saadeghi/daisyui/commit/c1e2f0ccfbd5c324f90bbe84168b6261fb56148a)) ### [`v5.1.29`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5129-2025-10-07) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.28...v5.1.29) ##### Bug Fixes - (iOS) increase font size of small text input and textarea on focus so page wont zoom in ([3b35fbb](https://github.com/saadeghi/daisyui/commit/3b35fbbd171c22d623f33218751e3beff3c60dba)), closes [#&#8203;3871](https://github.com/saadeghi/daisyui/issues/3871) [#&#8203;1145](https://github.com/saadeghi/daisyui/issues/1145) ### [`v5.1.28`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5128-2025-10-07) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.27...v5.1.28) ##### Bug Fixes - fab 7th child visibility issue. closes: [#&#8203;4157](https://github.com/saadeghi/daisyui/issues/4157) ([78128dc](https://github.com/saadeghi/daisyui/commit/78128dc4adfebfc17b81692ee186216300a9d5f4)) ### [`v5.1.27`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5127-2025-10-03) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.26...v5.1.27) ##### Bug Fixes - prevent select line break on long text when select is not open and prevent page overflow when select is open. closes: [#&#8203;4105](https://github.com/saadeghi/daisyui/issues/4105) ([6782522](https://github.com/saadeghi/daisyui/commit/67825229b33d6613cc59ff0e4b73d86b2664d81c)) ### [`v5.1.26`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5126-2025-09-30) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.25...v5.1.26) ##### Bug Fixes - navbar default position ([f75a5ed](https://github.com/saadeghi/daisyui/commit/f75a5edfc8018575445f27086d26622cc9af2e35)) ### [`v5.1.25`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5125-2025-09-28) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.24...v5.1.25) ##### Bug Fixes - tabs-box radius. closes: [#&#8203;3904](https://github.com/saadeghi/daisyui/issues/3904) ([d359621](https://github.com/saadeghi/daisyui/commit/d35962122b65f42a2132e83fb3b8785c96db2a88)) ### [`v5.1.24`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5124-2025-09-26) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.23...v5.1.24) ##### Bug Fixes - cally selected day hover color. closes: [#&#8203;4085](https://github.com/saadeghi/daisyui/issues/4085) ([f115ca9](https://github.com/saadeghi/daisyui/commit/f115ca9adaae365616ad5592a8c8e3a55e776a11)) ### [`v5.1.23`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5123-2025-09-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.22...v5.1.23) ##### Bug Fixes - `<details>` collapse animation. closes: [#&#8203;4128](https://github.com/saadeghi/daisyui/issues/4128) ([f2a453a](https://github.com/saadeghi/daisyui/commit/f2a453abd40cddac5cb9c36caebf407840f445c9)) ### [`v5.1.22`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5122-2025-09-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.21...v5.1.22) ##### Bug Fixes - unwanted box shadow of `kbd` inside `prose` ([233c58a](https://github.com/saadeghi/daisyui/commit/233c58ab241f7e51a111de9e30dd50b8884a45e7)) ### [`v5.1.21`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5121-2025-09-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.20...v5.1.21) ##### Bug Fixes - fix: collapse focus-within issue. closes: [#&#8203;4128](https://github.com/saadeghi/daisyui/issues/4128) - fix: text truncate issue. closes: [#&#8203;2965](https://github.com/saadeghi/daisyui/issues/2965) ### [`v5.1.20`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5120-2025-09-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.19...v5.1.20) ##### Bug Fixes - allow height customization for select with multiple attribute ([8292854](https://github.com/saadeghi/daisyui/commit/8292854752c39f243587d3003219c1d5960f8de1)) ### [`v5.1.19`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5119-2025-09-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.18...v5.1.19) ##### Bug Fixes - Update dependencies ### [`v5.1.18`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5118-2025-09-24) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.17...v5.1.18) ##### Bug Fixes - Select multiple dropdown arrow closes: [#&#8203;4109](https://github.com/saadeghi/daisyui/issues/4109) ([946db4c](https://github.com/saadeghi/daisyui/commit/946db4c30309a350b7563a50b7e176dff6a0dad3)) ### [`v5.1.17`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5117-2025-09-24) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.16...v5.1.17) ##### Bug Fixes - fix: .prose class not working with daisyUI prefix. closes: [#&#8203;4119](https://github.com/saadeghi/daisyui/issues/4119) ### [`v5.1.16`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5116-2025-09-24) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.15...v5.1.16) ##### Bug Fixes - Collapse gets closed when interactive input inside is focused. closes: [#&#8203;4128](https://github.com/saadeghi/daisyui/issues/4128) ([f55cf0e](https://github.com/saadeghi/daisyui/commit/f55cf0e96ce7c8426c0bf971b694ee2ee39f1548)) ### [`v5.1.15`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5115-2025-09-24) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.14...v5.1.15) ##### Bug Fixes - Collapse arrow position. closes: [#&#8203;4133](https://github.com/saadeghi/daisyui/issues/4133) ([02eba47](https://github.com/saadeghi/daisyui/commit/02eba471b50957a1b26cdbf75e225aa256312998)) ### [`v5.1.14`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5114-2025-09-22) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.13...v5.1.14) ##### Bug Fixes - chat bubble tail size. closes: [#&#8203;4130](https://github.com/saadeghi/daisyui/issues/4130) ([d3de565](https://github.com/saadeghi/daisyui/commit/d3de5654479b905039d5a7c900e90c97c061b250)) ### [`v5.1.13`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5113-2025-09-17) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.12...v5.1.13) ### [`v5.1.12`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5112-2025-09-14) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.11...v5.1.12) ##### Bug Fixes - nested select margin (closes: [#&#8203;4114](https://github.com/saadeghi/daisyui/issues/4114)) ([af7ffbd](https://github.com/saadeghi/daisyui/commit/af7ffbd74ab91d773dcb7ca67453bba63d4a3fa8)) ### [`v5.1.11`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5111-2025-09-14) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.10...v5.1.11) ##### Bug Fixes - \--fx-noise SVG scale on Firefox. closes: [#&#8203;3583](https://github.com/saadeghi/daisyui/issues/3583) ([84df795](https://github.com/saadeghi/daisyui/commit/84df7958bb3c02acec9a13ea240007a5ee199e5f)) ### [`v5.1.10`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5110-2025-09-10) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.9...v5.1.10) ##### Bug Fixes - diff focus and resizer position on Safari. closes: [#&#8203;4104](https://github.com/saadeghi/daisyui/issues/4104) ([712d0ff](https://github.com/saadeghi/daisyui/commit/712d0ff17975b6ee880cd59d3574f309e8f74c81)) ### [`v5.1.9`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#519-2025-09-09) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.8...v5.1.9) ##### Bug Fixes - select horizontal padding. closes: [#&#8203;3890](https://github.com/saadeghi/daisyui/issues/3890) ([449378e](https://github.com/saadeghi/daisyui/commit/449378e93adba1fb71aba2c26515f4b9643244f9)) ### [`v5.1.8`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#518-2025-09-07) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.7...v5.1.8) ### [`v5.1.7`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#517-2025-09-04) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.6...v5.1.7) ##### Bug Fixes - base-select style in CDN file. closes: [#&#8203;4095](https://github.com/saadeghi/daisyui/issues/4095) ([40f59aa](https://github.com/saadeghi/daisyui/commit/40f59aaf26dc97d1aed6ee1c28cb0b02de6bf704)) ### [`v5.1.6`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#516-2025-09-02) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.5...v5.1.6) ##### Bug Fixes - nested select height. closes: [#&#8203;4087](https://github.com/saadeghi/daisyui/issues/4087) ([4498a5f](https://github.com/saadeghi/daisyui/commit/4498a5f28b486dd70dc8b5b27d5c9e66270f0b13)) ### [`v5.1.5`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#515-2025-09-02) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.4...v5.1.5) ##### Bug Fixes - checkbox background color ([fd938ab](https://github.com/saadeghi/daisyui/commit/fd938abb3da1ef42fb3290d9db64ad61b95a430f)) ### [`v5.1.4`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#514-2025-09-02) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.3...v5.1.4) ##### Bug Fixes - improve base-select optgroup style. closes: [#&#8203;4083](https://github.com/saadeghi/daisyui/issues/4083) ([059f64e](https://github.com/saadeghi/daisyui/commit/059f64ec590108e773de816a635d2b346f92dfa3)) ### [`v5.1.3`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5132-2025-10-10) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.2...v5.1.3) ### [`v5.1.2`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5129-2025-10-07) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.1...v5.1.2) ##### Bug Fixes - (iOS) increase font size of small text input and textarea on focus so page wont zoom in ([3b35fbb](https://github.com/saadeghi/daisyui/commit/3b35fbbd171c22d623f33218751e3beff3c60dba)), closes [#&#8203;3871](https://github.com/saadeghi/daisyui/issues/3871) [#&#8203;1145](https://github.com/saadeghi/daisyui/issues/1145) ### [`v5.1.1`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5119-2025-09-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.1.0...v5.1.1) ##### Bug Fixes - Update dependencies ### [`v5.1.0`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#510-2025-09-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.55...v5.1.0) ##### Features - feat: New component - Hover Gallery - feat: New component - FAB / Speed Dial - feat: Styled native HTML `<select>` element (works in Chromium, other browsers use the old OS style) - feat: Support prefers-reduced-motion for all animations ##### Bug Fixes - fix: theme-controller prefix - fix: support `aria-current` for tab - fix: add scrollbar-gutter auto to prevent modal scrollbar shift - fix: increase drawer z-index to prevent overlap issues ### [`v5.0.55`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5055-2025-09-01) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.54...v5.0.55) ### [`v5.0.54`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5054-2025-08-28) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.53...v5.0.54) ##### Bug Fixes - prefersdark theme overriding the default theme in custom themes. closes: [#&#8203;3921](https://github.com/saadeghi/daisyui/issues/3921) ([bd6b064](https://github.com/saadeghi/daisyui/commit/bd6b06496f0e6a3605477d1911ec70e0c74a4bcb)) ### [`v5.0.53`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5053-2025-08-28) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.52...v5.0.53) ##### Bug Fixes - improve text contrast for selected cally dates on hover ([#&#8203;4056](https://github.com/saadeghi/daisyui/issues/4056)) ([904505f](https://github.com/saadeghi/daisyui/commit/904505ffe50df844c755a98ae31ec3478cbf0409)), closes [#&#8203;4042](https://github.com/saadeghi/daisyui/issues/4042) ### [`v5.0.52`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5052-2025-08-27) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.51...v5.0.52) ##### Bug Fixes - date input alignment in labels on iOS Safari ([#&#8203;3995](https://github.com/saadeghi/daisyui/issues/3995)) ([ee1bd67](https://github.com/saadeghi/daisyui/commit/ee1bd67209b7bd58db315552ee80bb0310a7a405)), closes [#&#8203;3952](https://github.com/saadeghi/daisyui/issues/3952) ### [`v5.0.51`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5051-2025-08-26) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.50...v5.0.51) ##### Bug Fixes - styles for disabled inputs and select in fieldset ([c60350d](https://github.com/saadeghi/daisyui/commit/c60350df71f8f5fdc199a2806ef62b4377827c63)), closes [#&#8203;4021](https://github.com/saadeghi/daisyui/issues/4021) ### [`v5.0.50`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5050-2025-07-29) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.49...v5.0.50) ##### Bug Fixes - use semantic fallbacks for checkbox states, improve indeterminate visibility. closes: [#&#8203;3979](https://github.com/saadeghi/daisyui/issues/3979) ([d19f38a](https://github.com/saadeghi/daisyui/commit/d19f38a98fe6d3ba9e2be5111d46055e1a04f609)) ### [`v5.0.49`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5049-2025-07-28) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.48...v5.0.49) ##### Bug Fixes - react-day-picker disableNavigation not styling properly. closes: [#&#8203;3990](https://github.com/saadeghi/daisyui/issues/3990) ([29123bc](https://github.com/saadeghi/daisyui/commit/29123bc7fbd9279d459bd2ba1258a93f35a34b32)) ### [`v5.0.48`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5048-2025-07-27) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.47...v5.0.48) ##### Bug Fixes - apply theme-aware hover styling to Cally day buttons. closes: [#&#8203;3991](https://github.com/saadeghi/daisyui/issues/3991) ([9960287](https://github.com/saadeghi/daisyui/commit/99602876204533c49cfd18a04133bc07e8a6c2ba)) ### [`v5.0.47`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5047-2025-07-25) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.46...v5.0.47) ##### Bug Fixes - browser search icon color in dark theme. closes: [#&#8203;4006](https://github.com/saadeghi/daisyui/issues/4006) ([922256d](https://github.com/saadeghi/daisyui/commit/922256d6543ba35434f583c327b6f6cc5169e20f)) ### [`v5.0.46`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5046-2025-07-06) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.43...v5.0.46) ### [`v5.0.43`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5043-2025-05-30) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.42...v5.0.43) ##### Bug Fixes - badge-outline, badge-dash, badge-soft can be used with tailwind responsive variants. closes: [#&#8203;3643](https://github.com/saadeghi/daisyui/issues/3643) ([2470fe2](https://github.com/saadeghi/daisyui/commit/2470fe20f9d69976d6ce7c98fa883909c6202e59)) ### [`v5.0.42`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5042-2025-05-29) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.41...v5.0.42) ##### Bug Fixes - checkbox in menu should not be grid. closes: [#&#8203;3922](https://github.com/saadeghi/daisyui/issues/3922) ([7f1ca83](https://github.com/saadeghi/daisyui/commit/7f1ca83e2545967dc1270c1db2ddb6f55830266f)) ### [`v5.0.41`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5041-2025-05-29) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.40...v5.0.41) ### [`v5.0.40`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5040-2025-05-28) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.39...v5.0.40) ##### Bug Fixes - Chat bubble mask not working with tailwind prefixes. closes: [#&#8203;3847](https://github.com/saadeghi/daisyui/issues/3847) ([c7856f2](https://github.com/saadeghi/daisyui/commit/c7856f267bc8653b04abf0250ba77f9523c85872)) ### [`v5.0.39`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5039-2025-05-28) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.38...v5.0.39) ##### Bug Fixes - calendar - react daypicker range bg color. closes: [#&#8203;3918](https://github.com/saadeghi/daisyui/issues/3918) ([d9df966](https://github.com/saadeghi/daisyui/commit/d9df966a93f6164774c5a7043b97eeddc799f09d)) ### [`v5.0.38`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5038-2025-05-26) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.37...v5.0.38) ##### Bug Fixes - correct CSS syntax error in variables.css ([#&#8203;3910](https://github.com/saadeghi/daisyui/issues/3910)) ([cd4820f](https://github.com/saadeghi/daisyui/commit/cd4820f7c73af0aaea4fba662fba642883725f7a)) ### [`v5.0.37`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5037-2025-05-22) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.36...v5.0.37) ##### Bug Fixes - tab-content height. closes: [#&#8203;3843](https://github.com/saadeghi/daisyui/issues/3843) ([0b5d958](https://github.com/saadeghi/daisyui/commit/0b5d958c93b8b57f1622c943b904e3f84c7d0145)) ### [`v5.0.36`](https://github.com/saadeghi/daisyui/blob/HEAD/CHANGELOG.md#5036-2025-05-22) [Compare Source](https://github.com/saadeghi/daisyui/compare/v5.0.35...v5.0.36) ##### Bug Fixes - Safari iOS page zoom when user focuses Text Input. closes: [#&#8203;3871](https://github.com/saadeghi/daisyui/issues/3871) ([1b5b997](https://github.com/saadeghi/daisyui/commit/1b5b9971e3ca5dbaf82f64e23903bad3f419d584)) - bug: The collapse input/title has a fixed min-height applied with high specificity [#&#8203;3885](https://github.com/saadeghi/daisyui/issues/3885) - bug: Button Link and Ghost hover states persisting on mobile devices [#&#8203;3888](https://github.com/saadeghi/daisyui/issues/3888) - bug: URL and email inputs with icons don't maintain LTR in RTL mode [#&#8203;3886](https://github.com/saadeghi/daisyui/issues/3886) - bug: disabled button should not change border size [#&#8203;3877](https://github.com/saadeghi/daisyui/issues/3877) - bug: indicator direction not reflecting on RTL [#&#8203;3851](https://github.com/saadeghi/daisyui/issues/3851) - bug: validator on aria-invalid="false" should not be considered as invalid [#&#8203;3855](https://github.com/saadeghi/daisyui/issues/3855) </details> <details> <summary>evanw/esbuild (esbuild)</summary> ### [`v0.27.1`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0271) [Compare Source](https://github.com/evanw/esbuild/compare/v0.27.0...v0.27.1) - Fix bundler bug with `var` nested inside `if` ([#&#8203;4348](https://github.com/evanw/esbuild/issues/4348)) This release fixes a bug with the bundler that happens when importing an ES module using `require` (which causes it to be wrapped) and there's a top-level `var` inside an `if` statement without being wrapped in a `{ ... }` block (and a few other conditions). The bundling transform needed to hoist these `var` declarations outside of the lazy ES module wrapper for correctness. See the issue for details. - Fix minifier bug with `for` inside `try` inside label ([#&#8203;4351](https://github.com/evanw/esbuild/issues/4351)) This fixes an old regression from [version v0.21.4](https://github.com/evanw/esbuild/releases/v0.21.4). Some code was introduced to move the label inside the `try` statement to address a problem with transforming labeled `for await` loops to avoid the `await` (the transformation involves converting the `for await` loop into a `for` loop and wrapping it in a `try` statement). However, it introduces problems for cross-compiled JVM code that uses all three of these features heavily. This release restricts this transform to only apply to `for` loops that esbuild itself generates internally as part of the `for await` transform. Here is an example of some affected code: ```js // Original code d: { e: { try { while (1) { break d } } catch { break e; } } } // Old output (with --minify) a:try{e:for(;;)break a}catch{break e} // New output (with --minify) a:e:try{for(;;)break a}catch{break e} ``` - Inline IIFEs containing a single expression ([#&#8203;4354](https://github.com/evanw/esbuild/issues/4354)) Previously inlining of IIFEs (immediately-invoked function expressions) only worked if the body contained a single `return` statement. Now it should also work if the body contains a single expression statement instead: ```js // Original code const foo = () => { const cb = () => { console.log(x()) } return cb() } // Old output (with --minify) const foo=()=>(()=>{console.log(x())})(); // New output (with --minify) const foo=()=>{console.log(x())}; ``` - The minifier now strips empty `finally` clauses ([#&#8203;4353](https://github.com/evanw/esbuild/issues/4353)) This improvement means that `finally` clauses containing dead code can potentially cause the associated `try` statement to be removed from the output entirely in minified builds: ```js // Original code function foo(callback) { if (DEBUG) stack.push(callback.name); try { callback(); } finally { if (DEBUG) stack.pop(); } } // Old output (with --minify --define:DEBUG=false) function foo(a){try{a()}finally{}} // New output (with --minify --define:DEBUG=false) function foo(a){a()} ``` - Allow tree-shaking of the `Symbol` constructor With this release, calling `Symbol` is now considered to be side-effect free when the argument is known to be a primitive value. This means esbuild can now tree-shake module-level symbol variables: ```js // Original code const a = Symbol('foo') const b = Symbol(bar) // Old output (with --tree-shaking=true) const a = Symbol("foo"); const b = Symbol(bar); // New output (with --tree-shaking=true) const b = Symbol(bar); ``` ### [`v0.27.0`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0270) [Compare Source](https://github.com/evanw/esbuild/compare/v0.26.0...v0.27.0) **This release deliberately contains backwards-incompatible changes.** To avoid automatically picking up releases like this, you should either be pinning the exact version of `esbuild` in your `package.json` file (recommended) or be using a version range syntax that only accepts patch upgrades such as `^0.26.0` or `~0.26.0`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information. - Use `Uint8Array.fromBase64` if available ([#&#8203;4286](https://github.com/evanw/esbuild/issues/4286)) With this release, esbuild's `binary` loader will now use the new [`Uint8Array.fromBase64`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/fromBase64) function unless it's unavailable in the configured target environment. If it's unavailable, esbuild's previous code for this will be used as a fallback. Note that this means you may now need to specify `target` when using this feature with Node (for example `--target=node22`) unless you're using Node v25+. - Update the Go compiler from v1.23.12 to v1.25.4 ([#&#8203;4208](https://github.com/evanw/esbuild/issues/4208), [#&#8203;4311](https://github.com/evanw/esbuild/pull/4311)) This raises the operating system requirements for running esbuild: - Linux: now requires a kernel version of 3.2 or later - macOS: now requires macOS 12 (Monterey) or later ### [`v0.26.0`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0260) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.12...v0.26.0) - Enable trusted publishing ([#&#8203;4281](https://github.com/evanw/esbuild/issues/4281)) GitHub and npm are recommending that maintainers for packages such as esbuild switch to [trusted publishing](https://docs.npmjs.com/trusted-publishers). With this release, a VM on GitHub will now build and publish all of esbuild's packages to npm instead of me. In theory. Unfortunately there isn't really a way to test that this works other than to do it live. So this release is that live test. Hopefully this release is uneventful and is exactly the same as the previous one (well, except for the green provenance attestation checkmark on npm that happens with trusted publishing). ### [`v0.25.12`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#02512) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.11...v0.25.12) - Fix a minification regression with CSS media queries ([#&#8203;4315](https://github.com/evanw/esbuild/issues/4315)) The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for `@media <media-type> and <media-condition-without-or> { ... }` was missing an equality check for the `<media-condition-without-or>` part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression. - Update the list of known JavaScript globals ([#&#8203;4310](https://github.com/evanw/esbuild/issues/4310)) This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global `Array` property is considered to be side-effect free but accessing the global `scrollY` property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties: From [ES2017](https://tc39.es/ecma262/2017/): - `Atomics` - `SharedArrayBuffer` From [ES2020](https://tc39.es/ecma262/2020/): - `BigInt64Array` - `BigUint64Array` From [ES2021](https://tc39.es/ecma262/2021/): - `FinalizationRegistry` - `WeakRef` From [ES2025](https://tc39.es/ecma262/2025/): - `Float16Array` - `Iterator` Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from `Iterator`: ```js // This can now be tree-shaken by esbuild: class ExampleIterator extends Iterator {} ``` - Add support for the new `@view-transition` CSS rule ([#&#8203;4313](https://github.com/evanw/esbuild/pull/4313)) With this release, esbuild now has improved support for pretty-printing and minifying the new `@view-transition` rule (which esbuild was previously unaware of): ```css /* Original code */ @&#8203;view-transition { navigation: auto; types: check; } /* Old output */ @&#8203;view-transition { navigation: auto; types: check; } /* New output */ @&#8203;view-transition { navigation: auto; types: check; } ``` The new view transition feature provides a mechanism for creating animated transitions between documents in a multi-page app. You can read more about view transition rules [here](https://developer.mozilla.org/en-US/docs/Web/CSS/@&#8203;view-transition). This change was contributed by [@&#8203;yisibl](https://github.com/yisibl). - Trim CSS rules that will never match The CSS minifier will now remove rules whose selectors contain `:is()` and `:where()` as those selectors will never match. These selectors can currently be automatically generated by esbuild when you give esbuild nonsensical input such as the following: ```css /* Original code */ div:before { color: green; &.foo { color: red; } } /* Old output (with --supported:nesting=false --minify) */ div:before{color:green}:is().foo{color:red} /* New output (with --supported:nesting=false --minify) */ div:before{color:green} ``` This input is nonsensical because CSS nesting is (unfortunately) not supported inside of pseudo-elements such as `:before`. Currently esbuild generates a rule containing `:is()` in this case when you tell esbuild to transform nested CSS into non-nested CSS. I think it's reasonable to do that as it sort of helps explain what's going on (or at least indicates that something is wrong in the output). It shouldn't be present in minified code, however, so this release now strips it out. ### [`v0.25.11`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#02511) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.10...v0.25.11) - Add support for `with { type: 'bytes' }` imports ([#&#8203;4292](https://github.com/evanw/esbuild/issues/4292)) The [import bytes](https://github.com/tc39/proposal-import-bytes) proposal has reached stage 2.7 in the TC39 process, which means that although it isn't quite recommended for implementation, it's generally approved and ready for validation. Furthermore it has already been implemented by [Deno](https://docs.deno.com/examples/importing_bytes/) and [Webpack](https://github.com/webpack/webpack/pull/19928). So with this release, esbuild will also add support for this. It behaves exactly the same as esbuild's existing [`binary` loader](https://esbuild.github.io/content-types/#binary). Here's an example: ```js import data from './image.png' with { type: 'bytes' } const view = new DataView(data.buffer, 0, 24) const width = view.getInt32(16) const height = view.getInt32(20) console.log('size:', width + '\xD7' + height) ``` - Lower CSS media query range syntax ([#&#8203;3748](https://github.com/evanw/esbuild/issues/3748), [#&#8203;4293](https://github.com/evanw/esbuild/issues/4293)) With this release, esbuild will now transform CSS media query range syntax into equivalent syntax using `min-`/`max-` prefixes for older browsers. For example, the following CSS: ```css @&#8203;media (640px <= width <= 960px) { main { display: flex; } } ``` will be transformed like this with a target such as `--target=chrome100` (or more specifically with `--supported:media-range=false` if desired): ```css @&#8203;media (min-width: 640px) and (max-width: 960px) { main { display: flex; } } ``` ### [`v0.25.10`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#02510) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.9...v0.25.10) - Fix a panic in a minification edge case ([#&#8203;4287](https://github.com/evanw/esbuild/issues/4287)) This release fixes a panic due to a null pointer that could happen when esbuild inlines a doubly-nested identity function and the final result is empty. It was fixed by emitting the value `undefined` in this case, which avoids the panic. This case must be rare since it hasn't come up until now. Here is an example of code that previously triggered the panic (which only happened when minifying): ```js function identity(x) { return x } identity({ y: identity(123) }) ``` - Fix `@supports` nested inside pseudo-element ([#&#8203;4265](https://github.com/evanw/esbuild/issues/4265)) When transforming nested CSS to non-nested CSS, esbuild is supposed to filter out pseudo-elements such as `::placeholder` for correctness. The [CSS nesting specification](https://www.w3.org/TR/css-nesting-1/) says the following: > The nesting selector cannot represent pseudo-elements (identical to the behavior of the ':is()' pseudo-class). We’d like to relax this restriction, but need to do so simultaneously for both ':is()' and '&', since they’re intentionally built on the same underlying mechanisms. However, it seems like this behavior is different for nested at-rules such as `@supports`, which do work with pseudo-elements. So this release modifies esbuild's behavior to now take that into account: ```css /* Original code */ ::placeholder { color: red; body & { color: green } @&#8203;supports (color: blue) { color: blue } } /* Old output (with --supported:nesting=false) */ ::placeholder { color: red; } body :is() { color: green; } @&#8203;supports (color: blue) { { color: blue; } } /* New output (with --supported:nesting=false) */ ::placeholder { color: red; } body :is() { color: green; } @&#8203;supports (color: blue) { ::placeholder { color: blue; } } ``` ### [`v0.25.9`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0259) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.8...v0.25.9) - Better support building projects that use Yarn on Windows ([#&#8203;3131](https://github.com/evanw/esbuild/issues/3131), [#&#8203;3663](https://github.com/evanw/esbuild/issues/3663)) With this release, you can now use esbuild to bundle projects that use Yarn Plug'n'Play on Windows on drives other than the `C:` drive. The problem was as follows: 1. Yarn in Plug'n'Play mode on Windows stores its global module cache on the `C:` drive 2. Some developers put their projects on the `D:` drive 3. Yarn generates relative paths that use `../..` to get from the project directory to the cache directory 4. Windows-style paths don't support directory traversal between drives via `..` (so `D:\..` is just `D:`) 5. I didn't have access to a Windows machine for testing this edge case Yarn works around this edge case by pretending Windows-style paths beginning with `C:\` are actually Unix-style paths beginning with `/C:/`, so the `../..` path segments are able to navigate across drives inside Yarn's implementation. This was broken for a long time in esbuild but I finally got access to a Windows machine and was able to debug and fix this edge case. So you should now be able to bundle these projects with esbuild. - Preserve parentheses around function expressions ([#&#8203;4252](https://github.com/evanw/esbuild/issues/4252)) The V8 JavaScript VM uses parentheses around function expressions as an optimization hint to immediately compile the function. Otherwise the function would be lazily-compiled, which has additional overhead if that function is always called immediately as lazy compilation involves parsing the function twice. You can read [V8's blog post about this](https://v8.dev/blog/preparser) for more details. Previously esbuild did not represent parentheses around functions in the AST so they were lost during compilation. With this change, esbuild will now preserve parentheses around function expressions when they are present in the original source code. This means these optimization hints will not be lost when bundling with esbuild. In addition, esbuild will now automatically add this optimization hint to immediately-invoked function expressions. Here's an example: ```js // Original code const fn0 = () => 0 const fn1 = (() => 1) console.log(fn0, function() { return fn1() }()) // Old output const fn0 = () => 0; const fn1 = () => 1; console.log(fn0, function() { return fn1(); }()); // New output const fn0 = () => 0; const fn1 = (() => 1); console.log(fn0, (function() { return fn1(); })()); ``` Note that you do not want to wrap all function expressions in parentheses. This optimization hint should only be used for functions that are called on initial load. Using this hint for functions that are not called on initial load will unnecessarily delay the initial load. Again, see V8's blog post linked above for details. - Update Go from 1.23.10 to 1.23.12 ([#&#8203;4257](https://github.com/evanw/esbuild/issues/4257), [#&#8203;4258](https://github.com/evanw/esbuild/pull/4258)) This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain false positive reports (specifically CVE-2025-4674 and CVE-2025-47907) from vulnerability scanners that only detect which version of the Go compiler esbuild uses. ### [`v0.25.8`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0258) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.7...v0.25.8) - Fix another TypeScript parsing edge case ([#&#8203;4248](https://github.com/evanw/esbuild/issues/4248)) This fixes a regression with a change in the previous release that tries to more accurately parse TypeScript arrow functions inside the `?:` operator. The regression specifically involves parsing an arrow function containing a `#private` identifier inside the middle of a `?:` ternary operator inside a class body. This was fixed by propagating private identifier state into the parser clone used to speculatively parse the arrow function body. Here is an example of some affected code: ```ts class CachedDict { #has = (a: string) => dict.has(a); has = window ? (word: string): boolean => this.#has(word) : this.#has; } ``` - Fix a regression with the parsing of source phase imports The change in the previous release to parse [source phase imports](https://github.com/tc39/proposal-source-phase-imports) failed to properly handle the following cases: ```ts import source from 'bar' import source from from 'bar' import source type foo from 'bar' ``` Parsing for these cases should now be fixed. The first case was incorrectly treated as a syntax error because esbuild was expecting the second case. And the last case was previously allowed but is now forbidden. TypeScript hasn't added this feature yet so it remains to be seen whether the last case will be allowed, but it's safer to disallow it for now. At least Babel doesn't allow the last case when parsing TypeScript, and Babel was involved with the source phase import specification. ### [`v0.25.7`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0257) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.6...v0.25.7) - Parse and print JavaScript imports with an explicit phase ([#&#8203;4238](https://github.com/evanw/esbuild/issues/4238)) This release adds basic syntax support for the `defer` and `source` import phases in JavaScript: - `defer` This is a [stage 3 proposal](https://github.com/tc39/proposal-defer-import-eval) for an upcoming JavaScript feature that will provide one way to eagerly load but lazily initialize imported modules. The imported module is automatically initialized on first use. Support for this syntax will also be part of the upcoming release of [TypeScript 5.9](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/#support-for-import-defer). The syntax looks like this: ```js import defer * as foo from "<specifier>"; const bar = await import.defer("<specifier>"); ``` Note that this feature deliberately cannot be used with the syntax `import defer foo from "<specifier>"` or `import defer { foo } from "<specifier>"`. - `source` This is a [stage 3 proposal](https://github.com/tc39/proposal-source-phase-imports) for an upcoming JavaScript feature that will provide another way to eagerly load but lazily initialize imported modules. The imported module is returned in an uninitialized state. Support for this syntax may or may not be a part of TypeScript 5.9 (see [this issue](https://github.com/microsoft/TypeScript/issues/61216) for details). The syntax looks like this: ```js import source foo from "<specifier>"; const bar = await import.source("<specifier>"); ``` Note that this feature deliberately cannot be used with the syntax `import defer * as foo from "<specifier>"` or `import defer { foo } from "<specifier>"`. This change only adds support for this syntax. These imports cannot currently be bundled by esbuild. To use these new features with esbuild's bundler, the imported paths must be external to the bundle and the output format must be set to `esm`. - Support optionally emitting absolute paths instead of relative paths ([#&#8203;338](https://github.com/evanw/esbuild/issues/338), [#&#8203;2082](https://github.com/evanw/esbuild/issues/2082), [#&#8203;3023](https://github.com/evanw/esbuild/issues/3023)) This release introduces the `--abs-paths=` feature which takes a comma-separated list of situations where esbuild should use absolute paths instead of relative paths. There are currently three supported situations: `code` (comments and string literals), `log` (log message text and location info), and `metafile` (the JSON build metadata). Using absolute paths instead of relative paths is not the default behavior because it means that the build results are no longer machine-independent (which means builds are no longer reproducible). Absolute paths can be useful when used with certain terminal emulators that allow you to click on absolute paths in the terminal text and/or when esbuild is being automatically invoked from several different directories within the same script. - Fix a TypeScript parsing edge case ([#&#8203;4241](https://github.com/evanw/esbuild/issues/4241)) This release fixes an edge case with parsing an arrow function in TypeScript with a return type that's in the middle of a `?:` ternary operator. For example: ```ts x = a ? (b) : c => d; y = a ? (b) : c => d : e; ``` The `:` token in the value assigned to `x` pairs with the `?` token, so it's not the start of a return type annotation. However, the first `:` token in the value assigned to `y` is the start of a return type annotation because after parsing the arrow function body, it turns out there's another `:` token that can be used to pair with the `?` token. This case is notable as it's the first TypeScript edge case that esbuild has needed a backtracking parser to parse. It has been addressed by a quick hack (cloning the whole parser) as it's a rare edge case and esbuild doesn't otherwise need a backtracking parser. Hopefully this is sufficient and doesn't cause any issues. - Inline small constant strings when minifying Previously esbuild's minifier didn't inline string constants because strings can be arbitrarily long, and this isn't necessarily a size win if the string is used more than once. Starting with this release, esbuild will now inline string constants when the length of the string is three code units or less. For example: ```js // Original code const foo = 'foo' console.log({ [foo]: true }) // Old output (with --minify --bundle --format=esm) var o="foo";console.log({[o]:!0}); // New output (with --minify --bundle --format=esm) console.log({foo:!0}); ``` Note that esbuild's constant inlining only happens in very restrictive scenarios to avoid issues with TDZ handling. This change doesn't change when esbuild's constant inlining happens. It only expands the scope of it to include certain string literals in addition to numeric and boolean literals. ### [`v0.25.6`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0256) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.5...v0.25.6) - Fix a memory leak when `cancel()` is used on a build context ([#&#8203;4231](https://github.com/evanw/esbuild/issues/4231)) Calling `rebuild()` followed by `cancel()` in rapid succession could previously leak memory. The bundler uses a producer/consumer model internally, and the resource leak was caused by the consumer being termianted while there were still remaining unreceived results from a producer. To avoid the leak, the consumer now waits for all producers to finish before terminating. - Support empty `:is()` and `:where()` syntax in CSS ([#&#8203;4232](https://github.com/evanw/esbuild/issues/4232)) Previously using these selectors with esbuild would generate a warning. That warning has been removed in this release for these cases. - Improve tree-shaking of `try` statements in dead code ([#&#8203;4224](https://github.com/evanw/esbuild/issues/4224)) With this release, esbuild will now remove certain `try` statements if esbuild considers them to be within dead code (i.e. code that is known to not ever be evaluated). For example: ```js // Original code return 'foo' try { return 'bar' } catch {} // Old output (with --minify) return"foo";try{return"bar"}catch{} // New output (with --minify) return"foo"; ``` - Consider negated bigints to have no side effects While esbuild currently considers `1`, `-1`, and `1n` to all have no side effects, it didn't previously consider `-1n` to have no side effects. This is because esbuild does constant folding with numbers but not bigints. However, it meant that unused negative bigint constants were not tree-shaken. With this release, esbuild will now consider these expressions to also be side-effect free: ```js // Original code let a = 1, b = -1, c = 1n, d = -1n // Old output (with --bundle --minify) (()=>{var n=-1n;})(); // New output (with --bundle --minify) (()=>{})(); ``` - Support a configurable delay in watch mode before rebuilding ([#&#8203;3476](https://github.com/evanw/esbuild/issues/3476), [#&#8203;4178](https://github.com/evanw/esbuild/issues/4178)) The `watch()` API now takes a `delay` option that lets you add a delay (in milliseconds) before rebuilding when a change is detected in watch mode. If you use a tool that regenerates multiple source files very slowly, this should make it more likely that esbuild's watch mode won't generate a broken intermediate build before the successful final build. This option is also available via the CLI using the `--watch-delay=` flag. This should also help avoid confusion about the `watch()` API's options argument. It was previously empty to allow for future API expansion, which caused some people to think that the documentation was missing. It's no longer empty now that the `watch()` API has an option. - Allow mixed array for `entryPoints` API option ([#&#8203;4223](https://github.com/evanw/esbuild/issues/4223)) The TypeScript type definitions now allow you to pass a mixed array of both string literals and object literals to the `entryPoints` API option, such as `['foo.js', { out: 'lib', in: 'bar.js' }]`. This was always possible to do in JavaScript but the TypeScript type definitions were previously too restrictive. - Update Go from 1.23.8 to 1.23.10 ([#&#8203;4204](https://github.com/evanw/esbuild/issues/4204), [#&#8203;4207](https://github.com/evanw/esbuild/pull/4207)) This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain false positive reports (specifically CVE-2025-4673 and CVE-2025-22874) from vulnerability scanners that only detect which version of the Go compiler esbuild uses. - Experimental support for esbuild on OpenHarmony ([#&#8203;4212](https://github.com/evanw/esbuild/pull/4212)) With this release, esbuild now publishes the [`@esbuild/openharmony-arm64`](https://www.npmjs.com/package/@&#8203;esbuild/openharmony-arm64) npm package for [OpenHarmony](https://en.wikipedia.org/wiki/OpenHarmony). It contains a WebAssembly binary instead of a native binary because Go doesn't currently support OpenHarmony. Node does support it, however, so in theory esbuild should now work on OpenHarmony through WebAssembly. This change was contributed by [@&#8203;hqzing](https://github.com/hqzing). ### [`v0.25.5`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0255) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.4...v0.25.5) - Fix a regression with `browser` in `package.json` ([#&#8203;4187](https://github.com/evanw/esbuild/issues/4187)) The fix to [#&#8203;4144](https://github.com/evanw/esbuild/issues/4144) in version 0.25.3 introduced a regression that caused `browser` overrides specified in `package.json` to fail to override relative path names that end in a trailing slash. That behavior change affected the `axios@0.30.0` package. This regression has been fixed, and now has test coverage. - Add support for certain keywords as TypeScript tuple labels ([#&#8203;4192](https://github.com/evanw/esbuild/issues/4192)) Previously esbuild could incorrectly fail to parse certain keywords as TypeScript tuple labels that are parsed by the official TypeScript compiler if they were followed by a `?` modifier. These labels included `function`, `import`, `infer`, `new`, `readonly`, and `typeof`. With this release, these keywords will now be parsed correctly. Here's an example of some affected code: ```ts type Foo = [ value: any, readonly?: boolean, // This is now parsed correctly ] ``` - Add CSS prefixes for the `stretch` sizing value ([#&#8203;4184](https://github.com/evanw/esbuild/issues/4184)) This release adds support for prefixing CSS declarations such as `div { width: stretch }`. That CSS is now transformed into this depending on what the `--target=` setting includes: ```css div { width: -webkit-fill-available; width: -moz-available; width: stretch; } ``` ### [`v0.25.4`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0254) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.3...v0.25.4) - Add simple support for CORS to esbuild's development server ([#&#8203;4125](https://github.com/evanw/esbuild/issues/4125)) Starting with version 0.25.0, esbuild's development server is no longer configured to serve cross-origin requests. This was a deliberate change to prevent any website you visit from accessing your running esbuild development server. However, this change prevented (by design) certain use cases such as "debugging in production" by having your production website load code from `localhost` where the esbuild development server is running. To enable this use case, esbuild is adding a feature to allow [Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) (a.k.a. CORS) for [simple requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS#simple_requests). Specifically, passing your origin to the new `cors` option will now set the `Access-Control-Allow-Origin` response header when the request has a matching `Origin` header. Note that this currently only works for requests that don't send a preflight `OPTIONS` request, as esbuild's development server doesn't currently support `OPTIONS` requests. Some examples: - **CLI:** ``` esbuild --servedir=. --cors-origin=https://example.com ``` - **JS:** ```js const ctx = await esbuild.context({}) await ctx.serve({ servedir: '.', cors: { origin: 'https://example.com', }, }) ``` - **Go:** ```go ctx, _ := api.Context(api.BuildOptions{}) ctx.Serve(api.ServeOptions{ Servedir: ".", CORS: api.CORSOptions{ Origin: []string{"https://example.com"}, }, }) ``` The special origin `*` can be used to allow any origin to access esbuild's development server. Note that this means any website you visit will be able to read everything served by esbuild. - Pass through invalid URLs in source maps unmodified ([#&#8203;4169](https://github.com/evanw/esbuild/issues/4169)) This fixes a regression in version 0.25.0 where `sources` in source maps that form invalid URLs were not being passed through to the output. Version 0.25.0 changed the interpretation of `sources` from file paths to URLs, which means that URL parsing can now fail. Previously URLs that couldn't be parsed were replaced with the empty string. With this release, invalid URLs in `sources` should now be passed through unmodified. - Handle exports named `__proto__` in ES modules ([#&#8203;4162](https://github.com/evanw/esbuild/issues/4162), [#&#8203;4163](https://github.com/evanw/esbuild/pull/4163)) In JavaScript, the special property name `__proto__` sets the prototype when used inside an object literal. Previously esbuild's ESM-to-CommonJS conversion didn't special-case the property name of exports named `__proto__` so the exported getter accidentally became the prototype of the object literal. It's unclear what this affects, if anything, but it's better practice to avoid this by using a computed property name in this case. This fix was contributed by [@&#8203;magic-akari](https://github.com/magic-akari). ### [`v0.25.3`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0253) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.2...v0.25.3) - Fix lowered `async` arrow functions before `super()` ([#&#8203;4141](https://github.com/evanw/esbuild/issues/4141), [#&#8203;4142](https://github.com/evanw/esbuild/pull/4142)) This change makes it possible to call an `async` arrow function in a constructor before calling `super()` when targeting environments without `async` support, as long as the function body doesn't reference `this`. Here's an example (notice the change from `this` to `null`): ```js // Original code class Foo extends Object { constructor() { (async () => await foo())() super() } } // Old output (with --target=es2016) class Foo extends Object { constructor() { (() => __async(this, null, function* () { return yield foo(); }))(); super(); } } // New output (with --target=es2016) class Foo extends Object { constructor() { (() => __async(null, null, function* () { return yield foo(); }))(); super(); } } ``` Some background: Arrow functions with the `async` keyword are transformed into generator functions for older language targets such as `--target=es2016`. Since arrow functions capture `this`, the generated code forwards `this` into the body of the generator function. However, JavaScript class syntax forbids using `this` in a constructor before calling `super()`, and this forwarding was problematic since previously happened even when the function body doesn't use `this`. Starting with this release, esbuild will now only forward `this` if it's used within the function body. This fix was contributed by [@&#8203;magic-akari](https://github.com/magic-akari). - Fix memory leak with `--watch=true` ([#&#8203;4131](https://github.com/evanw/esbuild/issues/4131), [#&#8203;4132](https://github.com/evanw/esbuild/pull/4132)) This release fixes a memory leak with esbuild when `--watch=true` is used instead of `--watch`. Previously using `--watch=true` caused esbuild to continue to use more and more memory for every rebuild, but `--watch=true` should now behave like `--watch` and not leak memory. This bug happened because esbuild disables the garbage collector when it's not run as a long-lived process for extra speed, but esbuild's checks for which arguments cause esbuild to be a long-lived process weren't updated for the new `--watch=true` style of boolean command-line flags. This has been an issue since this boolean flag syntax was added in version 0.14.24 in 2022. These checks are unfortunately separate from the regular argument parser because of how esbuild's internals are organized (the command-line interface is exposed as a separate [Go API](https://pkg.go.dev/github.com/evanw/esbuild/pkg/cli) so you can build your own custom esbuild CLI). This fix was contributed by [@&#8203;mxschmitt](https://github.com/mxschmitt). - More concise output for repeated legal comments ([#&#8203;4139](https://github.com/evanw/esbuild/issues/4139)) Some libraries have many files and also use the same legal comment text in all files. Previously esbuild would copy each legal comment to the output file. Starting with this release, legal comments duplicated across separate files will now be grouped in the output file by unique comment content. - Allow a custom host with the development server ([#&#8203;4110](https://github.com/evanw/esbuild/issues/4110)) With this release, you can now use a custom non-IP `host` with esbuild's local development server (either with `--serve=` for the CLI or with the `serve()` call for the API). This was previously possible, but was intentionally broken in [version 0.25.0](https://github.com/evanw/esbuild/releases/v0.25.0) to fix a security issue. This change adds the functionality back except that it's now opt-in and only for a single domain name that you provide. For example, if you add a mapping in your `/etc/hosts` file from `local.example.com` to `127.0.0.1` and then use `esbuild --serve=local.example.com:8000`, you will now be able to visit <http://local.example.com:8000/> in your browser and successfully connect to esbuild's development server (doing that would previously have been blocked by the browser). This should also work with HTTPS if it's enabled (see esbuild's documentation for how to do that). - Add a limit to CSS nesting expansion ([#&#8203;4114](https://github.com/evanw/esbuild/issues/4114)) With this release, esbuild will now fail with an error if there is too much CSS nesting expansion. This can happen when nested CSS is converted to CSS without nesting for older browsers as expanding CSS nesting is inherently exponential due to the resulting combinatorial explosion. The expansion limit is currently hard-coded and cannot be changed, but is extremely unlikely to trigger for real code. It exists to prevent esbuild from using too much time and/or memory. Here's an example: ```css a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}} ``` Previously, transforming this file with `--target=safari1` took 5 seconds and generated 40mb of CSS. Trying to do that will now generate the following error instead: ``` ✘ [ERROR] CSS nesting is causing too much expansion example.css:1:60: 1 │ a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}} ╵ ^ CSS nesting expansion was terminated because a rule was generated with 65536 selectors. This limit exists to prevent esbuild from using too much time and/or memory. Please change your CSS to use fewer levels of nesting. ``` - Fix path resolution edge case ([#&#8203;4144](https://github.com/evanw/esbuild/issues/4144)) This fixes an edge case where esbuild's path resolution algorithm could deviate from node's path resolution algorithm. It involves a confusing situation where a directory shares the same file name as a file (but without the file extension). See the linked issue for specific details. This appears to be a case where esbuild is correctly following [node's published resolution algorithm](https://nodejs.org/api/modules.html#all-together) but where node itself is doing something different. Specifically the step `LOAD_AS_FILE` appears to be skipped when the input ends with `..`. This release changes esbuild's behavior for this edge case to match node's behavior. - Update Go from 1.23.7 to 1.23.8 ([#&#8203;4133](https://github.com/evanw/esbuild/issues/4133), [#&#8203;4134](https://github.com/evanw/esbuild/pull/4134)) This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses, such as for CVE-2025-22871. As a reminder, esbuild's development server is intended for development, not for production, so I do not consider most networking-related vulnerabilities in Go to be vulnerabilities in esbuild. Please do not use esbuild's development server in production. ### [`v0.25.2`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0252) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.1...v0.25.2) - Support flags in regular expressions for the API ([#&#8203;4121](https://github.com/evanw/esbuild/issues/4121)) The JavaScript plugin API for esbuild takes JavaScript regular expression objects for the `filter` option. Internally these are translated into Go regular expressions. However, this translation previously ignored the `flags` property of the regular expression. With this release, esbuild will now translate JavaScript regular expression flags into Go regular expression flags. Specifically the JavaScript regular expression `/\.[jt]sx?$/i` is turned into the Go regular expression `` `(?i)\.[jt]sx?$` `` internally inside of esbuild's API. This should make it possible to use JavaScript regular expressions with the `i` flag. Note that JavaScript and Go don't support all of the same regular expression features, so this mapping is only approximate. - Fix node-specific annotations for string literal export names ([#&#8203;4100](https://github.com/evanw/esbuild/issues/4100)) When node instantiates a CommonJS module, it scans the AST to look for names to expose via ESM named exports. This is a heuristic that looks for certain patterns such as `exports.NAME = ...` or `module.exports = { ... }`. This behavior is used by esbuild to "annotate" CommonJS code that was converted from ESM with the original ESM export names. For example, when converting the file `export let foo, bar` from ESM to CommonJS, esbuild appends this to the end of the file: ```js // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { bar, foo }); ``` However, this feature previously didn't work correctly for export names that are not valid identifiers, which can be constructed using string literal export names. The generated code contained a syntax error. That problem is fixed in this release: ```js // Original code let foo export { foo as "foo!" } // Old output (with --format=cjs --platform=node) ... 0 && (module.exports = { "foo!" }); // New output (with --format=cjs --platform=node) ... 0 && (module.exports = { "foo!": null }); ``` - Basic support for index source maps ([#&#8203;3439](https://github.com/evanw/esbuild/issues/3439), [#&#8203;4109](https://github.com/evanw/esbuild/pull/4109)) The source map specification has an optional mode called [index source maps](https://tc39.es/ecma426/#sec-index-source-map) that makes it easier for tools to create an aggregate JavaScript file by concatenating many smaller JavaScript files with source maps, and then generate an aggregate source map by simply providing the original source maps along with some offset information. My understanding is that this is rarely used in practice. I'm only aware of two uses of it in the wild: [ClojureScript](https://clojurescript.org/) and [Turbopack](https://turbo.build/pack/). This release provides basic support for indexed source maps. However, the implementation has not been tested on a real app (just on very simple test input). If you are using index source maps in a real app, please try this out and report back if anything isn't working for you. Note that this is also not a complete implementation. For example, index source maps technically allows nesting source maps to an arbitrary depth, while esbuild's implementation in this release only supports a single level of nesting. It's unclear whether supporting more than one level of nesting is important or not given the lack of available test cases. This feature was contributed by [@&#8203;clyfish](https://github.com/clyfish). ### [`v0.25.1`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#02512) [Compare Source](https://github.com/evanw/esbuild/compare/v0.25.0...v0.25.1) - Fix a minification regression with CSS media queries ([#&#8203;4315](https://github.com/evanw/esbuild/issues/4315)) The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for `@media <media-type> and <media-condition-without-or> { ... }` was missing an equality check for the `<media-condition-without-or>` part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression. - Update the list of known JavaScript globals ([#&#8203;4310](https://github.com/evanw/esbuild/issues/4310)) This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global `Array` property is considered to be side-effect free but accessing the global `scrollY` property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties: From [ES2017](https://tc39.es/ecma262/2017/): - `Atomics` - `SharedArrayBuffer` From [ES2020](https://tc39.es/ecma262/2020/): - `BigInt64Array` - `BigUint64Array` From [ES2021](https://tc39.es/ecma262/2021/): - `FinalizationRegistry` - `WeakRef` From [ES2025](https://tc39.es/ecma262/2025/): - `Float16Array` - `Iterator` Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from `Iterator`: ```js // This can now be tree-shaken by esbuild: class ExampleIterator extends Iterator {} ``` - Add support for the new `@view-transition` CSS rule ([#&#8203;4313](https://github.com/evanw/esbuild/pull/4313)) With this release, esbuild now has improved support for pretty-printing and minifying the new `@view-transition` rule (which esbuild was previously unaware of): ```css /* Original code */ @&#8203;view-transition { navigation: auto; types: check; } /* Old output */ @&#8203;view-transition { navigation: auto; types: check; } /* New output */ @&#8203;view-transition { navigation: auto; types: check; } ``` The new view transition feature provides a mechanism for creating animated transitions between documents in a multi-page app. You can read more about view transition rules [here](https://developer.mozilla.org/en-US/docs/Web/CSS/@&#8203;view-transition). This change was contributed by [@&#8203;yisibl](https://github.com/yisibl). - Trim CSS rules that will never match The CSS minifier will now remove rules whose selectors contain `:is()` and `:where()` as those selectors will never match. These selectors can currently be automatically generated by esbuild when you give esbuild nonsensical input such as the following: ```css /* Original code */ div:before { color: green; &.foo { color: red; } } /* Old output (with --supported:nesting=false --minify) */ div:before{color:green}:is().foo{color:red} /* New output (with --supported:nesting=false --minify) */ div:before{color:green} ``` This input is nonsensical because CSS nesting is (unfortunately) not supported inside of pseudo-elements such as `:before`. Currently esbuild generates a rule containing `:is()` in this case when you tell esbuild to transform nested CSS into non-nested CSS. I think it's reasonable to do that as it sort of helps explain what's going on (or at least indicates that something is wrong in the output). It shouldn't be present in minified code, however, so this release now strips it out. ### [`v0.25.0`](https://github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0250) [Compare Source](https://github.com/evanw/esbuild/compare/v0.24.2...v0.25.0) **This release deliberately contains backwards-incompatible changes.** To avoid automatically picking up releases like this, you should either be pinning the exact version of `esbuild` in your `package.json` file (recommended) or be using a version range syntax that only accepts patch upgrades such as `^0.24.0` or `~0.24.0`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information. - Restrict access to esbuild's development server ([GHSA-67mh-4wv8-2f99](https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99)) This change addresses esbuild's first security vulnerability report. Previously esbuild set the `Access-Control-Allow-Origin` header to `*` to allow esbuild's development server to be flexible in how it's used for development. However, this allows the websites you visit to make HTTP requests to esbuild's local development server, which gives read-only access to your source code if the website were to fetch your source code's specific URL. You can read more information in [the report](https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99). Starting with this release, [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) will now be disabled, and requests will now be denied if the host does not match the one provided to `--serve=`. The default host is `0.0.0.0`, which refers to all of the IP addresses that represent the local machine (e.g. both `127.0.0.1` and `192.168.0.1`). If you want to customize anything about esbuild's development server, you can [put a proxy in front of esbuild](https://esbuild.github.io/api/#serve-proxy) and modify the incoming and/or outgoing requests. In addition, the `serve()` API call has been changed to return an array of `hosts` instead of a single `host` string. This makes it possible to determine all of the hosts that esbuild's development server will accept. Thanks to [@&#8203;sapphi-red](https://github.com/sapphi-red) for reporting this issue. - Delete output files when a build fails in watch mode ([#&#8203;3643](https://github.com/evanw/esbuild/issues/3643)) It has been requested for esbuild to delete files when a build fails in watch mode. Previously esbuild left the old files in place, which could cause people to not immediately realize that the most recent build failed. With this release, esbuild will now delete all output files if a rebuild fails. Fixing the build error and triggering another rebuild will restore all output files again. - Fix correctness issues with the CSS nesting transform ([#&#8203;3620](https://github.com/evanw/esbuild/issues/3620), [#&#8203;3877](https://github.com/evanw/esbuild/issues/3877), [#&#8203;3933](https://github.com/evanw/esbuild/issues/3933), [#&#8203;3997](https://github.com/evanw/esbuild/issues/3997), [#&#8203;4005](https://github.com/evanw/esbuild/issues/4005), [#&#8203;4037](https://github.com/evanw/esbuild/pull/4037), [#&#8203;4038](https://github.com/evanw/esbuild/pull/4038)) This release fixes the following problems: - Naive expansion of CSS nesting can result in an exponential blow-up of generated CSS if each nesting level has multiple selectors. Previously esbuild sometimes collapsed individual nesting levels using `:is()` to limit expansion. However, this collapsing wasn't correct in some cases, so it has been removed to fix correctness issues. ```css /* Original code */ .parent { > .a, > .b1 > .b2 { color: red; } } /* Old output (with --supported:nesting=false) */ .parent > :is(.a, .b1 > .b2) { color: red; } /* New output (with --supported:nesting=false) */ .parent > .a, .parent > .b1 > .b2 { color: red; } ``` Thanks to [@&#8203;tim-we](https://github.com/tim-we) for working on a fix. - The `&` CSS nesting selector can be repeated multiple times to increase CSS specificity. Previously esbuild ignored this possibility and incorrectly considered `&&` to have the same specificity as `&`. With this release, this should now work correctly: ```css /* Original code (color should be red) */ div { && { color: red } & { color: blue } } /* Old output (with --supported:nesting=false) */ div { color: red; } div { color: blue; } /* New output (with --supported:nesting=false) */ div:is(div) { color: red; } div { color: blue; } ``` Thanks to [@&#8203;CPunisher](https://github.com/CPunisher) for working on a fix. - Previously transforming nested CSS incorrectly removed leading combinators from within pseudoclass selectors such as `:where()`. This edge case has been fixed and how has test coverage. ```css /* Original code */ a b:has(> span) { a & { color: green; } } /* Old output (with --supported:nesting=false) */ a :is(a b:has(span)) { color: green; } /* New output (with --supported:nesting=false) */ a :is(a b:has(> span)) { color: green; } ``` This fix was contributed by [@&#8203;NoremacNergfol](https://github.com/NoremacNergfol). - The CSS minifier contains logic to remove the `&` selector when it can be implied, which happens when there is only one and it's the leading token. However, this logic was incorrectly also applied to selector lists inside of pseudo-class selectors such as `:where()`. With this release, the minifier will now avoid applying this logic in this edge case: ```css /* Original code */ .a { & .b { color: red } :where(& .b) { color: blue } } /* Old output (with --minify) */ .a{.b{color:red}:where(.b){color:#&#8203;00f}} /* New output (with --minify) */ .a{.b{color:red}:where(& .b){color:#&#8203;00f}} ``` - Fix some correctness issues with source maps ([#&#8203;1745](https://github.com/evanw/esbuild/issues/1745), [#&#8203;3183](https://github.com/evanw/esbuild/issues/3183), [#&#8203;3613](https://github.com/evanw/esbuild/issues/3613), [#&#8203;3982](https://github.com/evanw/esbuild/issues/3982)) Previously esbuild incorrectly treated source map path references as file paths instead of as URLs. With this release, esbuild will now treat source map path references as URLs. This fixes the following problems with source maps: - File names in `sourceMappingURL` that contained a space previously did not encode the space as `%20`, which resulted in JavaScript tools (including esbuild) failing to read that path back in when consuming the generated output file. This should now be fixed. - Absolute URLs in `sourceMappingURL` that use the `file://` scheme previously attempted to read from a folder called `file:`. These URLs should now be recognized and parsed correctly. - Entries in the `sources` array in the source map are now treated as URLs instead of file paths. The correct behavior for this is much more clear now that source maps has a [formal specification](https://tc39.es/ecma426/). Many thanks to those who worked on the specification. - Fix incorrect package for `@esbuild/netbsd-arm64` ([#&#8203;4018](https://github.com/evanw/esbuild/issues/4018)) Due to a copy+paste typo, the binary published to `@esbuild/netbsd-arm64` was not actually for `arm64`, and didn't run in that environment. This release should fix running esbuild in that environment (NetBSD on 64-bit ARM). Sorry about the mistake. - Fix a minification bug with bitwise operators and bigints ([#&#8203;4065](https://github.com/evanw/esbuild/issues/4065)) This change removes an incorrect assumption in esbuild that all bitwise operators result in a numeric integer. That assumption was correct up until the introduction of bigints in ES2020, but is no longer correct because almost all bitwise operators now operate on both numbers and bigints. Here's an example of the incorrect minification: ```js // Original code if ((a & b) !== 0) found = true // Old output (with --minify) a&b&&(found=!0); // New output (with --minify) (a&b)!==0&&(found=!0); ``` - Fix esbuild incorrectly rejecting valid TypeScript edge case ([#&#8203;4027](https://github.com/evanw/esbuild/issues/4027)) The following TypeScript code is valid: ```ts export function open(async?: boolean): void { console.log(async as boolean) } ``` Before this version, esbuild would fail to parse this with a syntax error as it expected the token sequence `async as ...` to be the start of an async arrow function expression `async as => ...`. This edge case should be parsed correctly by esbuild starting with this release. - Transform BigInt values into constructor calls when unsupported ([#&#8203;4049](https://github.com/evanw/esbuild/issues/4049)) Previously esbuild would refuse to compile the BigInt literals (such as `123n`) if they are unsupported in the configured target environment (such as with `--target=es6`). The rationale was that they cannot be polyfilled effectively because they change the behavior of JavaScript's arithmetic operators and JavaScript doesn't have operator overloading. However, this prevents using esbuild with certain libraries that would otherwise work if BigInt literals were ignored, such as with old versions of the [`buffer` library](https://github.com/feross/buffer) before the library fixed support for running in environments without BigInt support. So with this release, esbuild will now turn BigInt literals into BigInt constructor calls (so `123n` becomes `BigInt(123)`) and generate a warning in this case. You can turn off the warning with `--log-override:bigint=silent` or restore the warning to an error with `--log-override:bigint=error` if needed. - Change how `console` API dropping works ([#&#8203;4020](https://github.com/evanw/esbuild/issues/4020)) Previously the `--drop:console` feature replaced all method calls off of the `console` global with `undefined` regardless of how long the property access chain was (so it applied to `console.log()` and `console.log.call(console)` and `console.log.not.a.method()`). However, it was pointed out that this breaks uses of `console.log.bind(console)`. That's also incompatible with Terser's implementation of the feature, which is where this feature originally came from (it does support `bind`). So with this release, using this feature with esbuild will now only replace one level of method call (unless extended by `call` or `apply`) and will replace the method being called with an empty function in complex cases: ```js // Original code const x = console.log('x') const y = console.log.call(console, 'y') const z = console.log.bind(console)('z') // Old output (with --drop-console) const x = void 0; const y = void 0; const z = (void 0)("z"); // New output (with --drop-console) const x = void 0; const y = void 0; const z = (() => { }).bind(console)("z"); ``` This should more closely match Terser's existing behavior. - Allow BigInt literals as `define` values With this release, you can now use BigInt literals as define values, such as with `--define:FOO=123n`. Previously trying to do this resulted in a syntax error. - Fix a bug with resolve extensions in `node_modules` ([#&#8203;4053](https://github.com/evanw/esbuild/issues/4053)) The `--resolve-extensions=` option lets you specify the order in which to try resolving implicit file extensions. For complicated reasons, esbuild reorders TypeScript file extensions after JavaScript ones inside of `node_modules` so that JavaScript source code is always preferred to TypeScript source code inside of dependencies. However, this reordering had a bug that could accidentally change the relative order of TypeScript file extensions if one of them was a prefix of the other. That bug has been fixed in this release. You can see the issue for details. - Better minification of statically-determined `switch` cases ([#&#8203;4028](https://github.com/evanw/esbuild/issues/4028)) With this release, esbuild will now try to trim unused code within `switch` statements when the test expression and `case` expressions are primitive literals. This can arise when the test expression is an identifier that is substituted for a primitive literal at compile time. For example: ```js // Original code switch (MODE) { case 'dev': installDevToolsConsole() break case 'prod': return default: throw new Error } // Old output (with --minify '--define:MODE="prod"') switch("prod"){case"dev":installDevToolsConsole();break;case"prod":return;default:throw new Error} // New output (with --minify '--define:MODE="prod"') return; ``` - Emit `/* @&#8203;__KEY__ */` for string literals derived from property names ([#&#8203;4034](https://github.com/evanw/esbuild/issues/4034)) Property name mangling is an advanced feature that shortens certain property names for better minification (I say "advanced feature" because it's very easy to break your code with it). Sometimes you need to store a property name in a string, such as `obj.get('foo')` instead of `obj.foo`. JavaScript minifiers such as esbuild and [Terser](https://terser.org/) have a convention where a `/* @&#8203;__KEY__ */` comment before the string makes it behave like a property name. So `obj.get(/* @&#8203;__KEY__ */ 'foo')` allows the contents of the string `'foo'` to be shortened. However, esbuild sometimes itself generates string literals containing property names when transforming code, such as when lowering class fields to ES6 or when transforming TypeScript decorators. Previously esbuild didn't generate its own `/* @&#8203;__KEY__ */` comments in this case, which means that minifying your code by running esbuild again on its own output wouldn't work correctly (this does not affect people that both minify and transform their code in a single step). With this release, esbuild will now generate `/* @&#8203;__KEY__ */` comments for property names in generated string literals. To avoid lots of unnecessary output for people that don't use this advanced feature, the generated comments will only be present when the feature is active. If you want to generate the comments but not actually mangle any property names, you can use a flag that has no effect such as `--reserve-props=.`, which tells esbuild to not mangle any property names (but still activates this feature). - The `text` loader now strips the UTF-8 BOM if present ([#&#8203;3935](https://github.com/evanw/esbuild/issues/3935)) Some software (such as Notepad on Windows) can create text files that start with the three bytes `0xEF 0xBB 0xBF`, which is referred to as the "byte order mark". This prefix is intended to be removed before using the text. Previously esbuild's `text` loader included this byte sequence in the string, which turns into a prefix of `\uFEFF` in a JavaScript string when decoded from UTF-8. With this release, esbuild's `text` loader will now remove these bytes when they occur at the start of the file. - Omit legal comment output files when empty ([#&#8203;3670](https://github.com/evanw/esbuild/issues/3670)) Previously configuring esbuild with `--legal-comment=external` or `--legal-comment=linked` would always generate a `.LEGAL.txt` output file even if it was empty. Starting with this release, esbuild will now only do this if the file will be non-empty. This should result in a more organized output directory in some cases. - Update Go from 1.23.1 to 1.23.5 ([#&#8203;4056](https://github.com/evanw/esbuild/issues/4056), [#&#8203;4057](https://github.com/evanw/esbuild/pull/4057)) This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses. This PR was contributed by [@&#8203;MikeWillCook](https://github.com/MikeWillCook). - Allow passing a port of 0 to the development server ([#&#8203;3692](https://github.com/evanw/esbuild/issues/3692)) Unix sockets interpret a port of 0 to mean "pick a random unused port in the [ephemeral port](https://en.wikipedia.org/wiki/Ephemeral_port) range". However, esbuild's default behavior when the port is not specified is to pick the first unused port starting from 8000 and upward. This is more convenient because port 8000 is typically free, so you can for example restart the development server and reload your app in the browser without needing to change the port in the URL. Since esbuild is written in Go (which does not have optional fields like JavaScript), not specifying the port in Go means it defaults to 0, so previously passing a port of 0 to esbuild caused port 8000 to be picked. Starting with this release, passing a port of 0 to esbuild when using the CLI or the JS API will now pass port 0 to the OS, which will pick a random ephemeral port. To make this possible, the `Port` option in the Go API has been changed from `uint16` to `int` (to allow for additional sentinel values) and passing a port of -1 in Go now picks a random port. Both the CLI and JS APIs now remap an explicitly-provided port of 0 into -1 for the internal Go API. Another option would have been to change `Port` in Go from `uint16` to `*uint16` (Go's closest equivalent of `number | undefined`). However, that would make the common case of providing an explicit port in Go very awkward as Go doesn't support taking the address of integer constants. This tradeoff isn't worth it as picking a random ephemeral port is a rare use case. So the CLI and JS APIs should now match standard Unix behavior when the port is 0, but you need to use -1 instead with Go API. - Minification now avoids inlining constants with direct `eval` ([#&#8203;4055](https://github.com/evanw/esbuild/issues/4055)) Direct `eval` can be used to introduce a new variable like this: ```js const variable = false ;(function () { eval("var variable = true") console.log(variable) })() ``` Previously esbuild inlined `variable` here (which became `false`), which changed the behavior of the code. This inlining is now avoided, but please keep in mind that direct `eval` breaks many assumptions that JavaScript tools hold about normal code (especially when bundling) and I do not recommend using it. There are usually better alternatives that have a more localized impact on your code. You can read more about this here: <https://esbuild.github.io/link/direct-eval/> ### [`v0.24.2`](https://github.com/evanw/esbuild/releases/tag/v0.24.2) [Compare Source](https://github.com/evanw/esbuild/compare/v0.24.1...v0.24.2) - Fix regression with `--define` and `import.meta` ([#&#8203;4010](https://github.com/evanw/esbuild/issues/4010), [#&#8203;4012](https://github.com/evanw/esbuild/issues/4012), [#&#8203;4013](https://github.com/evanw/esbuild/pull/4013)) The previous change in version 0.24.1 to use a more expression-like parser for `define` values to allow quoted property names introduced a regression that removed the ability to use `--define:import.meta=...`. Even though `import` is normally a keyword that can't be used as an identifier, ES modules special-case the `import.meta` expression to behave like an identifier anyway. This change fixes the regression. This fix was contributed by [@&#8203;sapphi-red](https://github.com/sapphi-red). ### [`v0.24.1`](https://github.com/evanw/esbuild/releases/tag/v0.24.1) [Compare Source](https://github.com/evanw/esbuild/compare/v0.24.0...v0.24.1) - Allow `es2024` as a target in `tsconfig.json` ([#&#8203;4004](https://github.com/evanw/esbuild/issues/4004)) TypeScript recently [added `es2024`](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/#support-for---target-es2024-and---lib-es2024) as a compilation target, so esbuild now supports this in the `target` field of `tsconfig.json` files, such as in the following configuration file: ```json { "compilerOptions": { "target": "ES2024" } } ``` As a reminder, the only thing that esbuild uses this field for is determining whether or not to use legacy TypeScript behavior for class fields. You can read more in [the documentation](https://esbuild.github.io/content-types/#tsconfig-json). This fix was contributed by [@&#8203;billyjanitsch](https://github.com/billyjanitsch). - Allow automatic semicolon insertion after `get`/`set` This change fixes a grammar bug in the parser that incorrectly treated the following code as a syntax error: ```ts class Foo { get *x() {} set *y() {} } ``` The above code will be considered valid starting with this release. This change to esbuild follows a [similar change to TypeScript](https://github.com/microsoft/TypeScript/pull/60225) which will allow this syntax starting with TypeScript 5.7. - Allow quoted property names in `--define` and `--pure` ([#&#8203;4008](https://github.com/evanw/esbuild/issues/4008)) The `define` and `pure` API options now accept identifier expressions containing quoted property names. Previously all identifiers in the identifier expression had to be bare identifiers. This change now makes `--define` and `--pure` consistent with `--global-name`, which already supported quoted property names. For example, the following is now possible: ```js // The following code now transforms to "return true;\n" console.log(esbuild.transformSync( `return process.env['SOME-TEST-VAR']`, { define: { 'process.env["SOME-TEST-VAR"]': 'true' } }, )) ``` Note that if you're passing values like this on the command line using esbuild's `--define` flag, then you'll need to know how to escape quote characters for your shell. You may find esbuild's JavaScript API more ergonomic and portable than writing shell code. - Minify empty `try`/`catch`/`finally` blocks ([#&#8203;4003](https://github.com/evanw/esbuild/issues/4003)) With this release, esbuild will now attempt to minify empty `try` blocks: ```js // Original code try {} catch { foo() } finally { bar() } // Old output (with --minify) try{}catch{foo()}finally{bar()} // New output (with --minify) bar(); ``` This can sometimes expose additional minification opportunities. - Include `entryPoint` metadata for the `copy` loader ([#&#8203;3985](https://github.com/evanw/esbuild/issues/3985)) Almost all entry points already include a `entryPoint` field in the `outputs` map in esbuild's build metadata. However, this wasn't the case for the `copy` loader as that loader is a special-case that doesn't behave like other loaders. This release adds the `entryPoint` field in this case. - Source mappings may now contain `null` entries ([#&#8203;3310](https://github.com/evanw/esbuild/issues/3310), [#&#8203;3878](https://github.com/evanw/esbuild/issues/3878)) With this change, sources that result in an empty source map may now emit a `null` source mapping (i.e. one with a generated position but without a source index or original position). This change improves source map accuracy by fixing a problem where minified code from a source without any source mappings could potentially still be associated with a mapping from another source file earlier in the generated output on the same minified line. It manifests as nonsensical files in source mapped stack traces. Now the `null` mapping "resets" the source map so that any lookups into the minified code without any mappings resolves to `null` (which appears as the output file in stack traces) instead of the incorrect source file. This change shouldn't affect anything in most situations. I'm only mentioning it in the release notes in case it introduces a bug with source mapping. It's part of a work-in-progress future feature that will let you omit certain unimportant files from the generated source map to reduce source map size. - Avoid using the parent directory name for determinism ([#&#8203;3998](https://github.com/evanw/esbuild/issues/3998)) To make generated code more readable, esbuild includes the name of the source file when generating certain variable names within the file. Specifically bundling a CommonJS file generates a variable to store the lazily-evaluated module initializer. However, if a file is named `index.js` (or with a different extension), esbuild will use the name of the parent directory instead for a better name (since many packages have files all named `index.js` but have unique directory names). This is problematic when the bundle entry point is named `index.js` and the parent directory name is non-deterministic (e.g. a temporary directory created by a build script). To avoid non-determinism in esbuild's output, esbuild will now use `index` instead of the parent directory in this case. Specifically this will happen if the parent directory is equal to esbuild's `outbase` API option, which defaults to the [lowest common ancestor](https://en.wikipedia.org/wiki/Lowest_common_ancestor) of all user-specified entry point paths. - Experimental support for esbuild on NetBSD ([#&#8203;3974](https://github.com/evanw/esbuild/pull/3974)) With this release, esbuild now has a published binary executable for [NetBSD](https://www.netbsd.org/) in the [`@esbuild/netbsd-arm64`](https://www.npmjs.com/package/@&#8203;esbuild/netbsd-arm64) npm package, and esbuild's installer has been modified to attempt to use it when on NetBSD. Hopefully this makes installing esbuild via npm work on NetBSD. This change was contributed by [@&#8203;bsiegert](https://github.com/bsiegert). ⚠️ Note: NetBSD is not one of [Node's supported platforms](https://nodejs.org/api/process.html#process_process_platform), so installing esbuild may or may not work on NetBSD depending on how Node has been patched. This is not a problem with esbuild. ⚠️ ### [`v0.24.0`](https://github.com/evanw/esbuild/releases/tag/v0.24.0) [Compare Source](https://github.com/evanw/esbuild/compare/v0.23.1...v0.24.0) ***This release deliberately contains backwards-incompatible changes.*** To avoid automatically picking up releases like this, you should either be pinning the exact version of `esbuild` in your `package.json` file (recommended) or be using a version range syntax that only accepts patch upgrades such as `^0.23.0` or `~0.23.0`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information. - Drop support for older platforms ([#&#8203;3902](https://github.com/evanw/esbuild/pull/3902)) This release drops support for the following operating system: - macOS 10.15 Catalina This is because the Go programming language dropped support for this operating system version in Go 1.23, and this release updates esbuild from Go 1.22 to Go 1.23. Go 1.23 now requires macOS 11 Big Sur or later. Note that this only affects the binary esbuild executables that are published to the esbuild npm package. It's still possible to compile esbuild's source code for these older operating systems. If you need to, you can compile esbuild for yourself using an older version of the Go compiler (before Go version 1.23). That might look something like this: ``` git clone https://github.com/evanw/esbuild.git cd esbuild go build ./cmd/esbuild ./esbuild --version ``` - Fix class field decorators in TypeScript if `useDefineForClassFields` is `false` ([#&#8203;3913](https://github.com/evanw/esbuild/issues/3913)) Setting the `useDefineForClassFields` flag to `false` in `tsconfig.json` means class fields use the legacy TypeScript behavior instead of the standard JavaScript behavior. Specifically they use assign semantics instead of define semantics (e.g. setters are triggered) and fields without an initializer are not initialized at all. However, when this legacy behavior is combined with standard JavaScript decorators, TypeScript switches to always initializing all fields, even those without initializers. Previously esbuild incorrectly continued to omit field initializers for this edge case. These field initializers in this case should now be emitted starting with this release. - Avoid incorrect cycle warning with `tsconfig.json` multiple inheritance ([#&#8203;3898](https://github.com/evanw/esbuild/issues/3898)) TypeScript 5.0 introduced multiple inheritance for `tsconfig.json` files where `extends` can be an array of file paths. Previously esbuild would incorrectly treat files encountered more than once when processing separate subtrees of the multiple inheritance hierarchy as an inheritance cycle. With this release, `tsconfig.json` files containing this edge case should work correctly without generating a warning. - Handle Yarn Plug'n'Play stack overflow with `tsconfig.json` ([#&#8203;3915](https://github.com/evanw/esbuild/issues/3915)) Previously a `tsconfig.json` file that `extends` another file in a package with an `exports` map could cause a stack overflow when Yarn's Plug'n'Play resolution was active. This edge case should work now starting with this release. - Work around more issues with Deno 1.31+ ([#&#8203;3917](https://github.com/evanw/esbuild/pull/3917)) This version of Deno broke the `stdin` and `stdout` properties on command objects for inherited streams, which matters when you run esbuild's Deno module as the entry point (i.e. when `import.meta.main` is `true`). Previously esbuild would crash in Deno 1.31+ if you ran esbuild like that. This should be fixed starting with this release. This fix was contributed by [@&#8203;Joshix-1](https://github.com/Joshix-1). ### [`v0.23.1`](https://github.com/evanw/esbuild/releases/tag/v0.23.1) [Compare Source](https://github.com/evanw/esbuild/compare/v0.23.0...v0.23.1) - Allow using the `node:` import prefix with `es*` targets ([#&#8203;3821](https://github.com/evanw/esbuild/issues/3821)) The [`node:` prefix on imports](https://nodejs.org/api/esm.html#node-imports) is an alternate way to import built-in node modules. For example, `import fs from "fs"` can also be written `import fs from "node:fs"`. This only works with certain newer versions of node, so esbuild removes it when you target older versions of node such as with `--target=node14` so that your code still works. With the way esbuild's platform-specific feature compatibility table works, this was added by saying that only newer versions of node support this feature. However, that means that a target such as `--target=node18,es2022` removes the `node:` prefix because none of the `es*` targets are known to support this feature. This release adds the support for the `node:` flag to esbuild's internal compatibility table for `es*` to allow you to use compound targets like this: ```js // Original code import fs from 'node:fs' fs.open // Old output (with --bundle --format=esm --platform=node --target=node18,es2022) import fs from "fs"; fs.open; // New output (with --bundle --format=esm --platform=node --target=node18,es2022) import fs from "node:fs"; fs.open; ``` - Fix a panic when using the CLI with invalid build flags if `--analyze` is present ([#&#8203;3834](https://github.com/evanw/esbuild/issues/3834)) Previously esbuild's CLI could crash if it was invoked with flags that aren't valid for a "build" API call and the `--analyze` flag is present. This was caused by esbuild's internals attempting to add a Go plugin (which is how `--analyze` is implemented) to a null build object. The panic has been fixed in this release. - Fix incorrect location of certain error messages ([#&#8203;3845](https://github.com/evanw/esbuild/issues/3845)) This release fixes a regression that caused certain errors relating to variable declarations to be reported at an incorrect location. The regression was introduced in version 0.18.7 of esbuild. - Print comments before case clauses in switch statements ([#&#8203;3838](https://github.com/evanw/esbuild/issues/3838)) With this release, esbuild will attempt to print comments that come before case clauses in switch statements. This is similar to what esbuild already does for comments inside of certain types of expressions. Note that these types of comments are not printed if minification is enabled (specifically whitespace minification). - Fix a memory leak with `pluginData` ([#&#8203;3825](https://github.com/evanw/esbuild/issues/3825)) With this release, the build context's internal `pluginData` cache will now be cleared when starting a new build. This should fix a leak of memory from plugins that return `pluginData` objects from `onResolve` and/or `onLoad` callbacks. ### [`v0.23.0`](https://github.com/evanw/esbuild/releases/tag/v0.23.0) [Compare Source](https://github.com/evanw/esbuild/compare/v0.22.0...v0.23.0) ***This release deliberately contains backwards-incompatible changes.*** To avoid automatically picking up releases like this, you should either be pinning the exact version of `esbuild` in your `package.json` file (recommended) or be using a version range syntax that only accepts patch upgrades such as `^0.22.0` or `~0.22.0`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information. - Revert the recent change to avoid bundling dependencies for node ([#&#8203;3819](https://github.com/evanw/esbuild/issues/3819)) This release reverts the recent change in version 0.22.0 that made `--packages=external` the default behavior with `--platform=node`. The default is now back to `--packages=bundle`. I've just been made aware that Amazon doesn't pin their dependencies in their "AWS CDK" product, which means that whenever esbuild publishes a new release, many people (potentially everyone?) using their SDK around the world instantly starts using it without Amazon checking that it works first. This change in version 0.22.0 happened to break their SDK. I'm amazed that things haven't broken before this point. This revert attempts to avoid these problems for Amazon's customers. Hopefully Amazon will pin their dependencies in the future. In addition, this is probably a sign that esbuild is used widely enough that it now needs to switch to a more complicated release model. I may have esbuild use a beta channel model for further development. - Fix preserving collapsed JSX whitespace ([#&#8203;3818](https://github.com/evanw/esbuild/issues/3818)) When transformed, certain whitespace inside JSX elements is ignored completely if it collapses to an empty string. However, the whitespace should only be ignored if the JSX is being transformed, not if it's being preserved. This release fixes a bug where esbuild was previously incorrectly ignoring collapsed whitespace with `--jsx=preserve`. Here is an example: ```jsx // Original code <Foo> <Bar /> </Foo> // Old output (with --jsx=preserve) <Foo><Bar /></Foo>; // New output (with --jsx=preserve) <Foo> <Bar /> </Foo>; ``` </details> <details> <summary>eslint/eslint (eslint)</summary> ### [`v9.39.1`](https://github.com/eslint/eslint/releases/tag/v9.39.1) [Compare Source](https://github.com/eslint/eslint/compare/v9.39.0...v9.39.1) #### Bug Fixes - [`650753e`](https://github.com/eslint/eslint/commit/650753ee3976784343ceb40170619dab1aa9fe0d) fix: Only pass node to JS lang visitor methods ([#&#8203;20283](https://github.com/eslint/eslint/issues/20283)) (Nicholas C. Zakas) #### Documentation - [`51b51f4`](https://github.com/eslint/eslint/commit/51b51f4f1ce82ef63264c4e45d9ef579bcd73f8e) docs: add a section on when to use extends vs cascading ([#&#8203;20268](https://github.com/eslint/eslint/issues/20268)) (Tanuj Kanti) - [`b44d426`](https://github.com/eslint/eslint/commit/b44d42699dcd1729b7ecb50ca70e4c1c17f551f1) docs: Update README (GitHub Actions Bot) #### Chores - [`92db329`](https://github.com/eslint/eslint/commit/92db329211c8da5ce8340a4d4c05ce9c12845381) chore: update `@eslint/js` version to 9.39.1 ([#&#8203;20284](https://github.com/eslint/eslint/issues/20284)) (Francesco Trotta) - [`c7ebefc`](https://github.com/eslint/eslint/commit/c7ebefc9eaf99b76b30b0d3cf9960807a47367c4) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`61778f6`](https://github.com/eslint/eslint/commit/61778f6ca33c0f63962a91d6a75a4fa5db9f47d2) chore: update eslint-config-eslint dependency [@&#8203;eslint/js](https://github.com/eslint/js) to ^9.39.0 ([#&#8203;20275](https://github.com/eslint/eslint/issues/20275)) (renovate\[bot]) - [`d9ca2fc`](https://github.com/eslint/eslint/commit/d9ca2fcd9ad63331bfd329a69534e1ff04f231e8) ci: Add rangeStrategy to eslint group in renovate config ([#&#8203;20266](https://github.com/eslint/eslint/issues/20266)) (唯然) - [`009e507`](https://github.com/eslint/eslint/commit/009e5076ff5a4bd845f55e17676e3bb88f47c280) test: fix version tests for ESLint v10 ([#&#8203;20274](https://github.com/eslint/eslint/issues/20274)) (Milos Djermanovic) ### [`v9.39.0`](https://github.com/eslint/eslint/releases/tag/v9.39.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.38.0...v9.39.0) #### Features - [`cc57d87`](https://github.com/eslint/eslint/commit/cc57d87a3f119e9d39c55e044e526ae067fa31ce) feat: update error loc to key in `no-dupe-class-members` ([#&#8203;20259](https://github.com/eslint/eslint/issues/20259)) (Tanuj Kanti) - [`126552f`](https://github.com/eslint/eslint/commit/126552fcf35da3ddcefa527db06dabc54c04041c) feat: update error location in `for-direction` and `no-dupe-args` ([#&#8203;20258](https://github.com/eslint/eslint/issues/20258)) (Tanuj Kanti) - [`167d097`](https://github.com/eslint/eslint/commit/167d0970d3802a66910e9820f31dcd717fab0b2a) feat: update `complexity` rule to highlight only static block header ([#&#8203;20245](https://github.com/eslint/eslint/issues/20245)) (jaymarvelz) #### Bug Fixes - [`15f5c7c`](https://github.com/eslint/eslint/commit/15f5c7c168d0698683943f51dd617f14a5e6815c) fix: forward traversal `step.args` to visitors ([#&#8203;20253](https://github.com/eslint/eslint/issues/20253)) (jaymarvelz) - [`5a1a534`](https://github.com/eslint/eslint/commit/5a1a534e877f7c4c992885867f923df307c3929d) fix: allow JSDoc comments in object-shorthand rule ([#&#8203;20167](https://github.com/eslint/eslint/issues/20167)) (Nitin Kumar) - [`e86b813`](https://github.com/eslint/eslint/commit/e86b813eb660f1a5adc8e143a70d9b683cd12362) fix: Use more types from [@&#8203;eslint/core](https://github.com/eslint/core) ([#&#8203;20257](https://github.com/eslint/eslint/issues/20257)) (Nicholas C. Zakas) - [`927272d`](https://github.com/eslint/eslint/commit/927272d1f0d5683b029b729d368a96527f283323) fix: correct `Scope` typings ([#&#8203;20198](https://github.com/eslint/eslint/issues/20198)) (jaymarvelz) - [`37f76d9`](https://github.com/eslint/eslint/commit/37f76d9c539bb6fc816fedb7be4486b71a58620a) fix: use `AST.Program` type for Program node ([#&#8203;20244](https://github.com/eslint/eslint/issues/20244)) (Francesco Trotta) - [`ae07f0b`](https://github.com/eslint/eslint/commit/ae07f0b3334ebd22ae2e7b09bca5973b96aa9768) fix: unify timing report for concurrent linting ([#&#8203;20188](https://github.com/eslint/eslint/issues/20188)) (jaymarvelz) - [`b165d47`](https://github.com/eslint/eslint/commit/b165d471be6062f4475b972155b02654a974a0e9) fix: correct `Rule` typings ([#&#8203;20199](https://github.com/eslint/eslint/issues/20199)) (jaymarvelz) - [`fb97cda`](https://github.com/eslint/eslint/commit/fb97cda70d87286a7dbd2457f578ef578d6905e8) fix: improve error message for missing fix function in suggestions ([#&#8203;20218](https://github.com/eslint/eslint/issues/20218)) (jaymarvelz) #### Documentation - [`d3e81e3`](https://github.com/eslint/eslint/commit/d3e81e30ee6be5a21151b7a17ef10a714b6059c0) docs: Always recommend to include a files property ([#&#8203;20158](https://github.com/eslint/eslint/issues/20158)) (Percy Ma) - [`0f0385f`](https://github.com/eslint/eslint/commit/0f0385f1404dcadaba4812120b1ad02334dbd66a) docs: use consistent naming recommendation ([#&#8203;20250](https://github.com/eslint/eslint/issues/20250)) (Alex M. Spieslechner) - [`a3b1456`](https://github.com/eslint/eslint/commit/a3b145609ac649fac837c8c0515cbb2a9321ca40) docs: Update README (GitHub Actions Bot) - [`cf5f2dd`](https://github.com/eslint/eslint/commit/cf5f2dd58dd98084a21da04fe7b9054b9478d552) docs: fix correct tag of `no-useless-constructor` ([#&#8203;20255](https://github.com/eslint/eslint/issues/20255)) (Tanuj Kanti) - [`10b995c`](https://github.com/eslint/eslint/commit/10b995c8e5473de8d66d3cd99d816e046f35e3ec) docs: add TS options and examples for `nofunc` in `no-use-before-define` ([#&#8203;20249](https://github.com/eslint/eslint/issues/20249)) (Tanuj Kanti) - [`2584187`](https://github.com/eslint/eslint/commit/2584187e4a305ea7a98e1a5bd4dca2a60ad132f8) docs: remove repetitive word in comment ([#&#8203;20242](https://github.com/eslint/eslint/issues/20242)) (reddaisyy) - [`637216b`](https://github.com/eslint/eslint/commit/637216bd4f2aae7c928ad04a4e40eecffb50c9e5) docs: update CLI flags migration instructions ([#&#8203;20238](https://github.com/eslint/eslint/issues/20238)) (jaymarvelz) - [`e7cda3b`](https://github.com/eslint/eslint/commit/e7cda3bdf1bdd664e6033503a3315ad81736b200) docs: Update README (GitHub Actions Bot) - [`7b9446f`](https://github.com/eslint/eslint/commit/7b9446f7cc2054aa2cdf8e6225f4ac15a03671a8) docs: handle empty flags sections on the feature flags page ([#&#8203;20222](https://github.com/eslint/eslint/issues/20222)) (sethamus) #### Chores - [`dfe3c1b`](https://github.com/eslint/eslint/commit/dfe3c1b2034228765c48c8a445554223767dd16d) chore: update `@eslint/js` version to 9.39.0 ([#&#8203;20270](https://github.com/eslint/eslint/issues/20270)) (Francesco Trotta) - [`2375a6d`](https://github.com/eslint/eslint/commit/2375a6de8263393c129d41cac1b407b40111a73c) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`a1f4e52`](https://github.com/eslint/eslint/commit/a1f4e52d67c94bef61edd1607dcd130047c1baf0) chore: update `@eslint` dependencies ([#&#8203;20265](https://github.com/eslint/eslint/issues/20265)) (Francesco Trotta) - [`c7d3229`](https://github.com/eslint/eslint/commit/c7d32298482752eeac9fb46378d4f1ea095f3836) chore: update dependency [@&#8203;eslint/core](https://github.com/eslint/core) to ^0.17.0 ([#&#8203;20256](https://github.com/eslint/eslint/issues/20256)) (renovate\[bot]) - [`27549bc`](https://github.com/eslint/eslint/commit/27549bc774c7c2dc5c569070a3e87c62f602bf7d) chore: update fuzz testing to not error if code sample minimizer fails ([#&#8203;20252](https://github.com/eslint/eslint/issues/20252)) (Milos Djermanovic) - [`a1370ee`](https://github.com/eslint/eslint/commit/a1370ee40e9d8e0e41843f3278cd745fc1ad543f) ci: bump actions/setup-node from 5 to 6 ([#&#8203;20230](https://github.com/eslint/eslint/issues/20230)) (dependabot\[bot]) - [`9e7fad4`](https://github.com/eslint/eslint/commit/9e7fad4a1867709060686d03e0ec1d0d69671cfb) chore: add script to auto-generate eslint:recommended configuration ([#&#8203;20208](https://github.com/eslint/eslint/issues/20208)) (唯然) ### [`v9.38.0`](https://github.com/eslint/eslint/releases/tag/v9.38.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.37.0...v9.38.0) #### Features - [`ce40f74`](https://github.com/eslint/eslint/commit/ce40f74efd45f66d9fbfc6f78ce622ee72008485) feat: update `complexity` rule to only highlight function header ([#&#8203;20048](https://github.com/eslint/eslint/issues/20048)) (Atul Nair) - [`e37e590`](https://github.com/eslint/eslint/commit/e37e590aae2a7fcca4d3a9adc1379ad466e5c5d1) feat: correct `no-loss-of-precision` false positives with `e` notation ([#&#8203;20187](https://github.com/eslint/eslint/issues/20187)) (Francesco Trotta) #### Bug Fixes - [`50c3dfd`](https://github.com/eslint/eslint/commit/50c3dfd98065622765a51a8ddb1e70c44fc5a4cb) fix: improve type support for isolated dependencies in pnpm ([#&#8203;20201](https://github.com/eslint/eslint/issues/20201)) (Francesco Trotta) - [`a1f06a3`](https://github.com/eslint/eslint/commit/a1f06a350c4155c4dbf39bf932a38d71d70f1b65) fix: correct SourceCode typings ([#&#8203;20114](https://github.com/eslint/eslint/issues/20114)) (Pixel998) #### Documentation - [`462675a`](https://github.com/eslint/eslint/commit/462675af8a811f9ca984efaedbdc5b46b13ced7a) docs: improve web accessibility by hiding non-semantic character ([#&#8203;20205](https://github.com/eslint/eslint/issues/20205)) (루밀LuMir) - [`c070e65`](https://github.com/eslint/eslint/commit/c070e65f6bb9e38d06a89ba2b3261781bec3d397) docs: correct formatting in `no-irregular-whitespace` rule documentation ([#&#8203;20203](https://github.com/eslint/eslint/issues/20203)) (루밀LuMir) - [`b39e71a`](https://github.com/eslint/eslint/commit/b39e71a2130ae1ea3fbc19b19f5b951eb625722a) docs: Update README (GitHub Actions Bot) - [`cd39983`](https://github.com/eslint/eslint/commit/cd3998314876a4fad6463d9011bc73778ccc1fd9) docs: move `custom-formatters` type descriptions to `nodejs-api` ([#&#8203;20190](https://github.com/eslint/eslint/issues/20190)) (Percy Ma) #### Chores - [`d17c795`](https://github.com/eslint/eslint/commit/d17c795bf1624e0604998482b98e6bb6bff39045) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)@&#8203;9.38.0 ([#&#8203;20221](https://github.com/eslint/eslint/issues/20221)) (Milos Djermanovic) - [`25d0e33`](https://github.com/eslint/eslint/commit/25d0e33270e08baed09dbee2cdd56a8e5cd9da0f) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`c82b5ef`](https://github.com/eslint/eslint/commit/c82b5efa1fc91900e029efa23e688fad67fc17fa) refactor: Use types from [@&#8203;eslint/core](https://github.com/eslint/core) ([#&#8203;20168](https://github.com/eslint/eslint/issues/20168)) (Nicholas C. Zakas) - [`ff31609`](https://github.com/eslint/eslint/commit/ff31609f195654d448954210ba4d31e921d463e8) ci: add Node.js 25 to `ci.yml` ([#&#8203;20220](https://github.com/eslint/eslint/issues/20220)) (루밀LuMir) - [`004577e`](https://github.com/eslint/eslint/commit/004577eda2f2f4b2829e0364f8b41893cebfc859) ci: bump github/codeql-action from 3 to 4 ([#&#8203;20211](https://github.com/eslint/eslint/issues/20211)) (dependabot\[bot]) - [`eac71fb`](https://github.com/eslint/eslint/commit/eac71fb77113de7bf199ff20c6ee44cefcb59848) test: remove use of `nodejsScope` option of eslint-scope from tests ([#&#8203;20206](https://github.com/eslint/eslint/issues/20206)) (Milos Djermanovic) - [`4168a18`](https://github.com/eslint/eslint/commit/4168a18b7efd8facbbd71cd44a62942a9f656a30) chore: fix typo in legacy-eslint.js ([#&#8203;20202](https://github.com/eslint/eslint/issues/20202)) (Sweta Tanwar) - [`205dbd2`](https://github.com/eslint/eslint/commit/205dbd2d9272e761574c478e3b0181f7b89ed0f6) chore: fix typos ([#&#8203;20200](https://github.com/eslint/eslint/issues/20200)) (ntnyq) - [`dbb200e`](https://github.com/eslint/eslint/commit/dbb200e3604e63bba23a18d40089ca44604835ed) chore: use team member's username when name is not available in data ([#&#8203;20194](https://github.com/eslint/eslint/issues/20194)) (Milos Djermanovic) - [`8962089`](https://github.com/eslint/eslint/commit/8962089edbd978b43513576387a134036b8e2d36) chore: mark deprecated rules as available until v11.0.0 ([#&#8203;20184](https://github.com/eslint/eslint/issues/20184)) (Pixel998) ### [`v9.37.0`](https://github.com/eslint/eslint/releases/tag/v9.37.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.36.0...v9.37.0) #### Features - [`39f7fb4`](https://github.com/eslint/eslint/commit/39f7fb493a6924ff7dc638fd4d6e7b3d8eb95383) feat: `preserve-caught-error` should recognize all static "cause" keys ([#&#8203;20163](https://github.com/eslint/eslint/issues/20163)) (Pixel998) - [`f81eabc`](https://github.com/eslint/eslint/commit/f81eabc5849ece98b8ca054f96b29f038a69bcf8) feat: support TS syntax in `no-restricted-imports` ([#&#8203;19562](https://github.com/eslint/eslint/issues/19562)) (Nitin Kumar) #### Bug Fixes - [`a129cce`](https://github.com/eslint/eslint/commit/a129cced7a86ea2518eb9be6990fa18af39694ca) fix: correct `no-loss-of-precision` false positives for leading zeros ([#&#8203;20164](https://github.com/eslint/eslint/issues/20164)) (Francesco Trotta) - [`09e04fc`](https://github.com/eslint/eslint/commit/09e04fcc3f4cc963eea7c9c579391de5e231595b) fix: add missing AST token types ([#&#8203;20172](https://github.com/eslint/eslint/issues/20172)) (Pixel998) - [`861c6da`](https://github.com/eslint/eslint/commit/861c6da2bd2796414e6eed782155ec34e2ed6344) fix: correct `ESLint` typings ([#&#8203;20122](https://github.com/eslint/eslint/issues/20122)) (Pixel998) #### Documentation - [`b950359`](https://github.com/eslint/eslint/commit/b950359c5f39085483c3137a6a160e582ef32007) docs: fix typos across the docs ([#&#8203;20182](https://github.com/eslint/eslint/issues/20182)) (루밀LuMir) - [`42498a2`](https://github.com/eslint/eslint/commit/42498a27981d50750dd15ae8660dbe85c4f4587c) docs: improve ToC accessibility by hiding non-semantic character ([#&#8203;20181](https://github.com/eslint/eslint/issues/20181)) (Percy Ma) - [`29ea092`](https://github.com/eslint/eslint/commit/29ea092b93608756350b1e9c5a4f29c8a49264ab) docs: Update README (GitHub Actions Bot) - [`5c97a04`](https://github.com/eslint/eslint/commit/5c97a04578e6280c2395f642c2d8d6bdf30eec18) docs: show `availableUntil` in deprecated rule banner ([#&#8203;20170](https://github.com/eslint/eslint/issues/20170)) (Pixel998) - [`90a71bf`](https://github.com/eslint/eslint/commit/90a71bf5024a86fc232cd2e05f96811e2a18fd0f) docs: update `README` files to add badge and instructions ([#&#8203;20115](https://github.com/eslint/eslint/issues/20115)) (루밀LuMir) - [`1603ae1`](https://github.com/eslint/eslint/commit/1603ae1526d9b6f557c7d5534a4f40f46842edd6) docs: update references from `master` to `main` ([#&#8203;20153](https://github.com/eslint/eslint/issues/20153)) (루밀LuMir) #### Chores - [`afe8a13`](https://github.com/eslint/eslint/commit/afe8a1346958242031fea66fdfbb239e8bf408b7) chore: update `@eslint/js` dependency to version 9.37.0 ([#&#8203;20183](https://github.com/eslint/eslint/issues/20183)) (Francesco Trotta) - [`abee4ca`](https://github.com/eslint/eslint/commit/abee4ca1fa10da733b1cc4a7d5e765b912a9de82) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`fc9381f`](https://github.com/eslint/eslint/commit/fc9381f6ca57b824e82d118c14631c17bea79d7e) chore: fix typos in comments ([#&#8203;20175](https://github.com/eslint/eslint/issues/20175)) (overlookmotel) - [`e1574a2`](https://github.com/eslint/eslint/commit/e1574a22d38fd7e1891f86f8db0b09053f8963cb) chore: unpin jiti ([#&#8203;20173](https://github.com/eslint/eslint/issues/20173)) (renovate\[bot]) - [`e1ac05e`](https://github.com/eslint/eslint/commit/e1ac05e2fae779e738f85bd47dda1cc2b7099346) refactor: mark `ESLint.findConfigFile()` as `async`, add missing docs ([#&#8203;20157](https://github.com/eslint/eslint/issues/20157)) (Pixel998) - [`347906d`](https://github.com/eslint/eslint/commit/347906d627c53bf45d63ba831d2fd2b83fb0a749) chore: update eslint ([#&#8203;20149](https://github.com/eslint/eslint/issues/20149)) (renovate\[bot]) - [`0cb5897`](https://github.com/eslint/eslint/commit/0cb5897e24059bacadb8d2e6458184904759fda1) test: remove tmp dir created for circular fixes in multithread mode test ([#&#8203;20146](https://github.com/eslint/eslint/issues/20146)) (Milos Djermanovic) - [`bb99566`](https://github.com/eslint/eslint/commit/bb995665e32b3a958e78006c9fd75744c5604f1b) ci: pin `jiti` to version 2.5.1 ([#&#8203;20151](https://github.com/eslint/eslint/issues/20151)) (Pixel998) - [`177f669`](https://github.com/eslint/eslint/commit/177f669adc0f96d14ae1a71cde7786f327515863) perf: improve worker count calculation for `"auto"` concurrency ([#&#8203;20067](https://github.com/eslint/eslint/issues/20067)) (Francesco Trotta) - [`448b57b`](https://github.com/eslint/eslint/commit/448b57bca3406ee12c4e44e9298fc0c99d3ee10c) chore: Mark deprecated formatting rules as available until v11.0.0 ([#&#8203;20144](https://github.com/eslint/eslint/issues/20144)) (Milos Djermanovic) ### [`v9.36.0`](https://github.com/eslint/eslint/releases/tag/v9.36.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.35.0...v9.36.0) #### Features - [`47afcf6`](https://github.com/eslint/eslint/commit/47afcf668df65eac68d7b04145d037037010a076) feat: correct `preserve-caught-error` edge cases ([#&#8203;20109](https://github.com/eslint/eslint/issues/20109)) (Francesco Trotta) #### Bug Fixes - [`75b74d8`](https://github.com/eslint/eslint/commit/75b74d865d3b8e7fa3bcf5ad29f4bf6d18d1310e) fix: add missing rule option types ([#&#8203;20127](https://github.com/eslint/eslint/issues/20127)) (ntnyq) - [`1c0d850`](https://github.com/eslint/eslint/commit/1c0d85049e3f30a8809340c1abc881c63b7812ff) fix: update `eslint-all.js` to use `Object.freeze` for `rules` object ([#&#8203;20116](https://github.com/eslint/eslint/issues/20116)) (루밀LuMir) - [`7d61b7f`](https://github.com/eslint/eslint/commit/7d61b7fadc9c5c6f2b131e37e8a3cffa5aae8ee6) fix: add missing scope types to `Scope.type` ([#&#8203;20110](https://github.com/eslint/eslint/issues/20110)) (Pixel998) - [`7a670c3`](https://github.com/eslint/eslint/commit/7a670c301b58609017ce8cfda99ee81f95de3898) fix: correct rule option typings in `rules.d.ts` ([#&#8203;20084](https://github.com/eslint/eslint/issues/20084)) (Pixel998) #### Documentation - [`b73ab12`](https://github.com/eslint/eslint/commit/b73ab12acd3e87f8d8173cda03499f6cd1f26db6) docs: update examples to use `defineConfig` ([#&#8203;20131](https://github.com/eslint/eslint/issues/20131)) (sethamus) - [`31d9392`](https://github.com/eslint/eslint/commit/31d93926990fba536846ec727d7a2625fc844649) docs: fix typos ([#&#8203;20118](https://github.com/eslint/eslint/issues/20118)) (Pixel998) - [`c7f861b`](https://github.com/eslint/eslint/commit/c7f861b3f8c1ac961b4cd4f22483798f3324c62b) docs: Update README (GitHub Actions Bot) - [`6b0c08b`](https://github.com/eslint/eslint/commit/6b0c08b106aa66f2e9fa484282f0eb63c64a1215) docs: Update README (GitHub Actions Bot) - [`91f97c5`](https://github.com/eslint/eslint/commit/91f97c50468fbdc089c91e99c2ea0fe821911df2) docs: Update README (GitHub Actions Bot) #### Chores - [`12411e8`](https://github.com/eslint/eslint/commit/12411e8d450ed26a5f7cca6a78ec05323c9323e8) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)@&#8203;9.36.0 ([#&#8203;20139](https://github.com/eslint/eslint/issues/20139)) (Milos Djermanovic) - [`488cba6`](https://github.com/eslint/eslint/commit/488cba6b391b97b2cfc74bbb46fdeacb1361949e) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`bac82a2`](https://github.com/eslint/eslint/commit/bac82a2a9c80a3f69087852758d7737aea371f09) ci: simplify renovate configuration ([#&#8203;19907](https://github.com/eslint/eslint/issues/19907)) (唯然) - [`c00bb37`](https://github.com/eslint/eslint/commit/c00bb37d62c1bcc0a37f094371be9c40064009f1) ci: bump actions/labeler from 5 to 6 ([#&#8203;20090](https://github.com/eslint/eslint/issues/20090)) (dependabot\[bot]) - [`fee751d`](https://github.com/eslint/eslint/commit/fee751dc8aeab54547af4538332ea5c069ef28b6) refactor: use `defaultOptions` in rules ([#&#8203;20121](https://github.com/eslint/eslint/issues/20121)) (Pixel998) - [`1ace67d`](https://github.com/eslint/eslint/commit/1ace67d9f7903adc3d3f09868aa05b673e7d3f3b) chore: update example to use `defineConfig` ([#&#8203;20111](https://github.com/eslint/eslint/issues/20111)) (루밀LuMir) - [`4821963`](https://github.com/eslint/eslint/commit/4821963bf765532069c49e9da9ecbe9485b073fc) test: add missing loc information to error objects in rule tests ([#&#8203;20112](https://github.com/eslint/eslint/issues/20112)) (루밀LuMir) - [`b42c42e`](https://github.com/eslint/eslint/commit/b42c42e7cd3ac9ee1b5a15f16ff25b325d0482e4) chore: disallow use of deprecated `type` property in core rule tests ([#&#8203;20094](https://github.com/eslint/eslint/issues/20094)) (Milos Djermanovic) - [`7bb498d`](https://github.com/eslint/eslint/commit/7bb498d720dcd054cc042ca4b60b138d8485f07c) test: remove deprecated `type` property from core rule tests ([#&#8203;20093](https://github.com/eslint/eslint/issues/20093)) (Pixel998) - [`e10cf2a`](https://github.com/eslint/eslint/commit/e10cf2ab42fe5b481d980dc652f7504414747733) ci: bump actions/setup-node from 4 to 5 ([#&#8203;20089](https://github.com/eslint/eslint/issues/20089)) (dependabot\[bot]) - [`5cb0ce4`](https://github.com/eslint/eslint/commit/5cb0ce48ef6cfbbe6d09131c33a53f9d66fe9bd4) refactor: use `meta.defaultOptions` in `preserve-caught-error` ([#&#8203;20080](https://github.com/eslint/eslint/issues/20080)) (Pixel998) - [`f9f7cb5`](https://github.com/eslint/eslint/commit/f9f7cb578dced3c14f635e17c75aa6744d291f4d) chore: package.json update for eslint-config-eslint release (Jenkins) - [`81764b2`](https://github.com/eslint/eslint/commit/81764b298065a328038cd067bc8fedef97e57500) chore: update `eslint` peer dependency in `eslint-config-eslint` ([#&#8203;20079](https://github.com/eslint/eslint/issues/20079)) (Milos Djermanovic) ### [`v9.35.0`](https://github.com/eslint/eslint/releases/tag/v9.35.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.34.0...v9.35.0) #### Features - [`42761fa`](https://github.com/eslint/eslint/commit/42761fa7c872fb9e14c144b692af6967b3662082) feat: implement suggestions for no-empty-function ([#&#8203;20057](https://github.com/eslint/eslint/issues/20057)) (jaymarvelz) - [`102f444`](https://github.com/eslint/eslint/commit/102f44442ac9bf1fcd4ba6ab9fae43ce09199df6) feat: implement suggestions for no-empty-static-block ([#&#8203;20056](https://github.com/eslint/eslint/issues/20056)) (jaymarvelz) - [`e51ffff`](https://github.com/eslint/eslint/commit/e51ffff737ca245b3a1d115cb11e1c99737249a3) feat: add `preserve-caught-error` rule ([#&#8203;19913](https://github.com/eslint/eslint/issues/19913)) (Amnish Singh Arora) #### Bug Fixes - [`10e7ae2`](https://github.com/eslint/eslint/commit/10e7ae23e30ea0834d9fdeb3a2a1db8103c36cd2) fix: update uncloneable options error message ([#&#8203;20059](https://github.com/eslint/eslint/issues/20059)) (soda-sorcery) - [`bfa4601`](https://github.com/eslint/eslint/commit/bfa46013e7ea9a522c02f72250fa07160f96a6b8) fix: ignore empty switch statements with comments in no-empty rule ([#&#8203;20045](https://github.com/eslint/eslint/issues/20045)) (jaymarvelz) - [`dfd11de`](https://github.com/eslint/eslint/commit/dfd11deb24fc733faa5db751a2f615eb04e48b15) fix: add `before` and `after` to test case types ([#&#8203;20049](https://github.com/eslint/eslint/issues/20049)) (Francesco Trotta) - [`dabbe95`](https://github.com/eslint/eslint/commit/dabbe95c39671c5fa272da012ee1432aa088650f) fix: correct types for `no-restricted-imports` rule ([#&#8203;20034](https://github.com/eslint/eslint/issues/20034)) (Milos Djermanovic) - [`ea789c7`](https://github.com/eslint/eslint/commit/ea789c7dd234c1a6be499a4644dd0f5c97615972) fix: no-loss-of-precision false positive with uppercase exponent ([#&#8203;20032](https://github.com/eslint/eslint/issues/20032)) (sethamus) #### Documentation - [`d265515`](https://github.com/eslint/eslint/commit/d265515642f65246bcd45c17979f67c2afb12f95) docs: improve phrasing - "if" → "even if" from getting-started section ([#&#8203;20074](https://github.com/eslint/eslint/issues/20074)) (jjangga0214) - [`a355a0e`](https://github.com/eslint/eslint/commit/a355a0e5b2e6a47cda099b31dc7d112cfb5c4315) docs: invert comparison logic for example in `no-var` doc page ([#&#8203;20064](https://github.com/eslint/eslint/issues/20064)) (OTonGitHub) - [`5082fc2`](https://github.com/eslint/eslint/commit/5082fc206de6946d9d4c20e57301f78839b3b9f2) docs: Update README (GitHub Actions Bot) - [`99cfd7e`](https://github.com/eslint/eslint/commit/99cfd7e056e1703941c9eb8ca1ae7fdb1987ba9d) docs: add missing "the" in rule deprecation docs ([#&#8203;20050](https://github.com/eslint/eslint/issues/20050)) (Josh Goldberg ✨) - [`6ad8973`](https://github.com/eslint/eslint/commit/6ad8973e5d3c94b8e100b7266f55f8eb0757eb00) docs: update `--no-ignore` and `--ignore-pattern` documentation ([#&#8203;20036](https://github.com/eslint/eslint/issues/20036)) (Francesco Trotta) - [`8033b19`](https://github.com/eslint/eslint/commit/8033b195299a1eaa4a0ed6553d9e034a457bb577) docs: add documentation for `--no-config-lookup` ([#&#8203;20033](https://github.com/eslint/eslint/issues/20033)) (Francesco Trotta) #### Chores - [`da87f2f`](https://github.com/eslint/eslint/commit/da87f2fe792cab5b69b62bf5c15e69ab4f433087) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)@&#8203;9.35.0 ([#&#8203;20077](https://github.com/eslint/eslint/issues/20077)) (Milos Djermanovic) - [`af2a087`](https://github.com/eslint/eslint/commit/af2a0870fdc646091d027516601888923e5bc202) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`7055764`](https://github.com/eslint/eslint/commit/70557649e3111c55d8cddf678b6c4079aa6f0ccc) test: remove `tests/lib/eslint/eslint.config.js` ([#&#8203;20065](https://github.com/eslint/eslint/issues/20065)) (Milos Djermanovic) - [`84ffb96`](https://github.com/eslint/eslint/commit/84ffb9680b15e45bfd8c8a5db4731576ddd16fc4) chore: update `@eslint-community/eslint-utils` ([#&#8203;20069](https://github.com/eslint/eslint/issues/20069)) (Francesco Trotta) - [`d5ef939`](https://github.com/eslint/eslint/commit/d5ef9397150cc178e1f9891c3ff49ac4871ec786) refactor: remove deprecated `context.parserOptions` usage across rules ([#&#8203;20060](https://github.com/eslint/eslint/issues/20060)) (sethamus) - [`1b3881d`](https://github.com/eslint/eslint/commit/1b3881d7e859bec9589e39888656c33c914a8302) chore: remove redundant word ([#&#8203;20058](https://github.com/eslint/eslint/issues/20058)) (pxwanglu) ### [`v9.34.0`](https://github.com/eslint/eslint/releases/tag/v9.34.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.33.0...v9.34.0) #### Features - [`0bb777a`](https://github.com/eslint/eslint/commit/0bb777a82b533df595cd520d9c89d291efa14a33) feat: multithread linting ([#&#8203;19794](https://github.com/eslint/eslint/issues/19794)) (Francesco Trotta) - [`43a5f9e`](https://github.com/eslint/eslint/commit/43a5f9e36f1aade16f81fc49ef4b333660faadab) feat: add eslint-plugin-regexp to eslint-config-eslint base config ([#&#8203;19951](https://github.com/eslint/eslint/issues/19951)) (Pixel998) #### Bug Fixes - [`9b89903`](https://github.com/eslint/eslint/commit/9b8990397b2d2ed70771bb0e2070261a0c41782c) fix: default value of accessor-pairs option in rule.d.ts file ([#&#8203;20024](https://github.com/eslint/eslint/issues/20024)) (Tanuj Kanti) - [`6c07420`](https://github.com/eslint/eslint/commit/6c074206ae0eae4816197a57648b415832a20e1d) fix: fix spurious failure in neostandard integration test ([#&#8203;20023](https://github.com/eslint/eslint/issues/20023)) (Kirk Waiblinger) - [`676f4ac`](https://github.com/eslint/eslint/commit/676f4acaaed6e4f6ffe0c2e21272d4702b311a7b) fix: allow scientific notation with trailing zeros matching exponent ([#&#8203;20002](https://github.com/eslint/eslint/issues/20002)) (Sweta Tanwar) #### Documentation - [`0b4a590`](https://github.com/eslint/eslint/commit/0b4a590333b73a21b9e0ddc98462680e09fe3232) docs: make rulesdir deprecation clearer ([#&#8203;20018](https://github.com/eslint/eslint/issues/20018)) (Domenico Gemoli) - [`327c672`](https://github.com/eslint/eslint/commit/327c67256fbeaf9d5e365802c2a11f5d32a16522) docs: Update README (GitHub Actions Bot) - [`bf26229`](https://github.com/eslint/eslint/commit/bf2622991f5b892610a8c3343ff16519e5fd7a79) docs: Fix typo in core-concepts/index.md ([#&#8203;20009](https://github.com/eslint/eslint/issues/20009)) (Tobias Hernstig) - [`2309327`](https://github.com/eslint/eslint/commit/2309327554acbf011f0d17e7b36fdd68e43adf3a) docs: fix typo in the "Configuring Rules" section ([#&#8203;20001](https://github.com/eslint/eslint/issues/20001)) (ghazi-git) - [`2b87e21`](https://github.com/eslint/eslint/commit/2b87e21321422c120c2248dae25cac7f9eec0f29) docs: \[no-else-return] clarify sample code. ([#&#8203;19991](https://github.com/eslint/eslint/issues/19991)) (Yuki Takada (Yukinosuke Takada)) - [`c36570c`](https://github.com/eslint/eslint/commit/c36570c6657c2a92dbb4f09a8166a4d9909a091a) docs: Update README (GitHub Actions Bot) #### Chores - [`f19ad94`](https://github.com/eslint/eslint/commit/f19ad9493e0ca04c2c1455fbb3402eaad993a8be) chore: upgrade to `@eslint/js@9.34.0` ([#&#8203;20030](https://github.com/eslint/eslint/issues/20030)) (Francesco Trotta) - [`b48fa20`](https://github.com/eslint/eslint/commit/b48fa20034e53bc65d1a58f3d834705e3087b00c) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`4bce8a2`](https://github.com/eslint/eslint/commit/4bce8a250262ec47207bc260581f979e40c86bda) chore: package.json update for eslint-config-eslint release (Jenkins) - [`0c9999c`](https://github.com/eslint/eslint/commit/0c9999c2a682151cf13bb3a4f8916930678c2f9b) refactor: prefer default options in `grouped-accessor-pairs` ([#&#8203;20028](https://github.com/eslint/eslint/issues/20028)) (루밀LuMir) - [`d503f19`](https://github.com/eslint/eslint/commit/d503f1981354c7b86e423879846c61e0405af8fe) ci: fix `stale.yml` ([#&#8203;20010](https://github.com/eslint/eslint/issues/20010)) (루밀LuMir) - [`e2dc67d`](https://github.com/eslint/eslint/commit/e2dc67d8b028147de4da35c64efe1d74c9f6a883) ci: centralize `stale.yml` ([#&#8203;19994](https://github.com/eslint/eslint/issues/19994)) (루밀LuMir) - [`7093cb8`](https://github.com/eslint/eslint/commit/7093cb8f590ec2a1b5364d7b5687e9b5f4e06f8a) ci: bump actions/checkout from 4 to 5 ([#&#8203;20005](https://github.com/eslint/eslint/issues/20005)) (dependabot\[bot]) ### [`v9.33.0`](https://github.com/eslint/eslint/releases/tag/v9.33.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.32.0...v9.33.0) #### Features - [`e07820e`](https://github.com/eslint/eslint/commit/e07820e66fd1fceaf2620dc931154955a706cc0f) feat: add global object access detection to no-restricted-globals ([#&#8203;19939](https://github.com/eslint/eslint/issues/19939)) (sethamus) - [`90b050e`](https://github.com/eslint/eslint/commit/90b050ec11557cab08b6be9f05fabf97dba6a63d) feat: support explicit resource management in `one-var` ([#&#8203;19941](https://github.com/eslint/eslint/issues/19941)) (Sweta Tanwar) #### Bug Fixes - [`732433c`](https://github.com/eslint/eslint/commit/732433c4fb023f45154b825cdc8cdaf1979d4336) fix: allow any type for `meta.docs.recommended` in custom rules ([#&#8203;19995](https://github.com/eslint/eslint/issues/19995)) (Francesco Trotta) - [`e8a6914`](https://github.com/eslint/eslint/commit/e8a6914a249d036e12494004e586b2a2b6e104d1) fix: Fixed potential bug in check-emfile-handling.js ([#&#8203;19975](https://github.com/eslint/eslint/issues/19975)) (諏訪原慶斗) #### Documentation - [`34f0723`](https://github.com/eslint/eslint/commit/34f0723e2d0faf8ac8dc95ec56e6d181bd6b67f2) docs: playground button for TypeScript code example ([#&#8203;19671](https://github.com/eslint/eslint/issues/19671)) (Tanuj Kanti) - [`dc942a4`](https://github.com/eslint/eslint/commit/dc942a47daf41228d69072c52f1be20789426862) docs: Update README (GitHub Actions Bot) - [`5a4b6f7`](https://github.com/eslint/eslint/commit/5a4b6f74320b72f9b6ad8b30f5c463b2b71315af) docs: Update no-multi-assign.md ([#&#8203;19979](https://github.com/eslint/eslint/issues/19979)) (Yuki Takada (Yukinosuke Takada)) - [`247e156`](https://github.com/eslint/eslint/commit/247e15698e34919a0cd411842fb3e14ac7a8f1ba) docs: add missing let declarations in `no-plusplus` ([#&#8203;19980](https://github.com/eslint/eslint/issues/19980)) (Yuki Takada (Yukinosuke Takada)) - [`0d17242`](https://github.com/eslint/eslint/commit/0d17242b3c25c2ddf8363f4560641acd1ae82ca9) docs: Update README (GitHub Actions Bot) - [`fa20b9d`](https://github.com/eslint/eslint/commit/fa20b9db8ff90ea9f0527118114dda17c656d095) docs: Clarify when to open an issue for a PR ([#&#8203;19974](https://github.com/eslint/eslint/issues/19974)) (Nicholas C. Zakas) #### Build Related - [`27fa865`](https://github.com/eslint/eslint/commit/27fa86551bd173387e29a139293de78b0e14f0f3) build: use `ESLint` class to generate formatter examples ([#&#8203;19972](https://github.com/eslint/eslint/issues/19972)) (Milos Djermanovic) #### Chores - [`4258046`](https://github.com/eslint/eslint/commit/425804602ecb9ee5f54d1c38a473cf20538420c5) chore: update dependency [@&#8203;eslint/js](https://github.com/eslint/js) to v9.33.0 ([#&#8203;19998](https://github.com/eslint/eslint/issues/19998)) (renovate\[bot]) - [`ad28371`](https://github.com/eslint/eslint/commit/ad283717ed4764a171120ca7c6cba82a78fa024c) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`06a22f1`](https://github.com/eslint/eslint/commit/06a22f154c08ea044b3172b357b226d34dfefc6a) test: resolve flakiness in --mcp flag test ([#&#8203;19993](https://github.com/eslint/eslint/issues/19993)) (Pixel998) - [`54920ed`](https://github.com/eslint/eslint/commit/54920ed229693f23650dace6e567bf44413aaf98) test: switch to `Linter.Config` in `ESLintRules` type tests ([#&#8203;19977](https://github.com/eslint/eslint/issues/19977)) (Francesco Trotta) ### [`v9.32.0`](https://github.com/eslint/eslint/releases/tag/v9.32.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.31.0...v9.32.0) #### Features - [`1245000`](https://github.com/eslint/eslint/commit/1245000c5a81954d42f0c7eb670efe450c3bbad5) feat: support explicit resource management in core rules ([#&#8203;19828](https://github.com/eslint/eslint/issues/19828)) (fnx) - [`0e957a7`](https://github.com/eslint/eslint/commit/0e957a7b5528f375a51e7c1a2fd1b03cdcd2af2d) feat: support typescript types in accessor rules ([#&#8203;19882](https://github.com/eslint/eslint/issues/19882)) (fnx) #### Bug Fixes - [`960fd40`](https://github.com/eslint/eslint/commit/960fd40dfd204af30726b49b6bec714fe49a606e) fix: Upgrade [@&#8203;eslint/js](https://github.com/eslint/js) ([#&#8203;19971](https://github.com/eslint/eslint/issues/19971)) (Nicholas C. Zakas) - [`bbf23fa`](https://github.com/eslint/eslint/commit/bbf23fa2f1c6058f6cb5c9f2f32460a15e75e596) fix: Refactor reporting into FileReport ([#&#8203;19877](https://github.com/eslint/eslint/issues/19877)) (Nicholas C. Zakas) - [`d498887`](https://github.com/eslint/eslint/commit/d4988872f375890bf677ce1a1d92a505085b51fa) fix: bump [@&#8203;eslint/plugin-kit](https://github.com/eslint/plugin-kit) to 0.3.4 to resolve vulnerability ([#&#8203;19965](https://github.com/eslint/eslint/issues/19965)) (Milos Djermanovic) - [`f46fc6c`](https://github.com/eslint/eslint/commit/f46fc6c137c951bc73cf3bd9446053c1b11f769b) fix: report only global references in no-implied-eval ([#&#8203;19932](https://github.com/eslint/eslint/issues/19932)) (Nitin Kumar) - [`7863d26`](https://github.com/eslint/eslint/commit/7863d26b7cfb03a81ec86f93439757ff60bf6afb) fix: remove outdated types in `ParserOptions.ecmaFeatures` ([#&#8203;19944](https://github.com/eslint/eslint/issues/19944)) (ntnyq) - [`3173305`](https://github.com/eslint/eslint/commit/317330552e2d276221c7f2dd9c1516ad8b41cc3c) fix: update execScript message in no-implied-eval rule ([#&#8203;19937](https://github.com/eslint/eslint/issues/19937)) (TKDev7) #### Documentation - [`86e7426`](https://github.com/eslint/eslint/commit/86e7426e4463ca49ffa5c82e825ecb6aa19ca8a0) docs: Update README (GitHub Actions Bot) #### Chores - [`50de1ce`](https://github.com/eslint/eslint/commit/50de1ced9df2b1ee48ee6843c8cfe0f5d8edbc27) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`74f01a3`](https://github.com/eslint/eslint/commit/74f01a3f5905aaa0902837ced2425209c09c048f) ci: unpin `jiti` to version `^2.5.1` ([#&#8203;19970](https://github.com/eslint/eslint/issues/19970)) (루밀LuMir) - [`2ab1381`](https://github.com/eslint/eslint/commit/2ab13813a7e7f3014c35490b351447ec43229951) ci: pin `jiti` to version 2.4.2 ([#&#8203;19964](https://github.com/eslint/eslint/issues/19964)) (Francesco Trotta) - [`b7f7545`](https://github.com/eslint/eslint/commit/b7f75454695079f54b77fcdc9ebe3b9199d5ad30) test: switch to flat config mode in `SourceCode` tests ([#&#8203;19953](https://github.com/eslint/eslint/issues/19953)) (Milos Djermanovic) - [`f5a35e3`](https://github.com/eslint/eslint/commit/f5a35e3b7cee17cd31fc02c24c3e74b42ee202bc) test: switch to flat config mode in eslint-fuzzer ([#&#8203;19960](https://github.com/eslint/eslint/issues/19960)) (Milos Djermanovic) - [`e22af8c`](https://github.com/eslint/eslint/commit/e22af8c42d622d8d912ee7bedf49bf4283247fdc) refactor: use `CustomRuleDefinitionType` in `JSRuleDefinition` ([#&#8203;19949](https://github.com/eslint/eslint/issues/19949)) (Francesco Trotta) - [`e855717`](https://github.com/eslint/eslint/commit/e85571730f1360464b7ee00695c678d551f9c643) chore: switch performance tests to hyperfine ([#&#8203;19919](https://github.com/eslint/eslint/issues/19919)) (Francesco Trotta) - [`2f73a23`](https://github.com/eslint/eslint/commit/2f73a23655092a41780859ffe0a07c44a2f1b5f5) test: switch to flat config mode in `ast-utils` tests ([#&#8203;19948](https://github.com/eslint/eslint/issues/19948)) (Milos Djermanovic) - [`c565a53`](https://github.com/eslint/eslint/commit/c565a530f50c96dacd44e096f7d531b073aa4dc7) chore: exclude `further_reading_links.json` from Prettier formatting ([#&#8203;19943](https://github.com/eslint/eslint/issues/19943)) (Milos Djermanovic) ### [`v9.31.0`](https://github.com/eslint/eslint/releases/tag/v9.31.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.30.1...v9.31.0) #### Features - [`35cf44c`](https://github.com/eslint/eslint/commit/35cf44c22e36b1554486e7a75c870e86c10b83f8) feat: output full actual location in rule tester if different ([#&#8203;19904](https://github.com/eslint/eslint/issues/19904)) (ST-DDT) - [`a6a6325`](https://github.com/eslint/eslint/commit/a6a63259de6cb5642f69c7be429554bbcedca4c0) feat: support explicit resource management in `no-loop-func` ([#&#8203;19895](https://github.com/eslint/eslint/issues/19895)) (Milos Djermanovic) - [`4682cdc`](https://github.com/eslint/eslint/commit/4682cdc6960279ee17f23899fbab6f58d881eadf) feat: support explicit resource management in `no-undef-init` ([#&#8203;19894](https://github.com/eslint/eslint/issues/19894)) (Milos Djermanovic) - [`5848216`](https://github.com/eslint/eslint/commit/58482165eaf597cc5c58216a956c301ae87520b3) feat: support explicit resource management in `init-declarations` ([#&#8203;19893](https://github.com/eslint/eslint/issues/19893)) (Milos Djermanovic) - [`bb370b8`](https://github.com/eslint/eslint/commit/bb370b8e79f65ee32d9d89ecf249fb74a141ad22) feat: support explicit resource management in `no-const-assign` ([#&#8203;19892](https://github.com/eslint/eslint/issues/19892)) (Milos Djermanovic) #### Bug Fixes - [`07fac6c`](https://github.com/eslint/eslint/commit/07fac6cafa0426b4d1ea12d9001f3955f19b286d) fix: retry on EMFILE when writing autofix results ([#&#8203;19926](https://github.com/eslint/eslint/issues/19926)) (TKDev7) - [`28cc7ab`](https://github.com/eslint/eslint/commit/28cc7abbb72b29b1cac6fc4253646a7839586064) fix: Remove incorrect RuleContext types ([#&#8203;19910](https://github.com/eslint/eslint/issues/19910)) (Nicholas C. Zakas) #### Documentation - [`664cb44`](https://github.com/eslint/eslint/commit/664cb44ab03785bd200a792607a7e20faa2d4b28) docs: Update README (GitHub Actions Bot) - [`40dbe2a`](https://github.com/eslint/eslint/commit/40dbe2a43f83d366e9026faec70293512fb61ca2) docs: fix mismatch between `globalIgnores()` code and text ([#&#8203;19914](https://github.com/eslint/eslint/issues/19914)) (MaoShizhong) - [`5a0069d`](https://github.com/eslint/eslint/commit/5a0069d60815246cf24e1c96125540792c2507ef) docs: Update README (GitHub Actions Bot) - [`fef04b5`](https://github.com/eslint/eslint/commit/fef04b5c7fea99362d67b31b8e98cd4914020ed3) docs: Update working on issues info ([#&#8203;19902](https://github.com/eslint/eslint/issues/19902)) (Nicholas C. Zakas) #### Chores - [`3ddd454`](https://github.com/eslint/eslint/commit/3ddd454c1c73294e5af7905d60d03fac162f1b3e) chore: upgrade to `@eslint/js@9.31.0` ([#&#8203;19935](https://github.com/eslint/eslint/issues/19935)) (Francesco Trotta) - [`d5054e5`](https://github.com/eslint/eslint/commit/d5054e5454a537e9ade238c768c262c6c592cbc1) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`0f4a378`](https://github.com/eslint/eslint/commit/0f4a3781fe7c11fad7b206c3c694655486ddd187) chore: update eslint ([#&#8203;19933](https://github.com/eslint/eslint/issues/19933)) (renovate\[bot]) - [`76c2340`](https://github.com/eslint/eslint/commit/76c2340c368f96db77439b5cd1df0196cc39bf3e) chore: bump mocha to v11 ([#&#8203;19917](https://github.com/eslint/eslint/issues/19917)) (루밀LuMir) ### [`v9.30.1`](https://github.com/eslint/eslint/releases/tag/v9.30.1) [Compare Source](https://github.com/eslint/eslint/compare/v9.30.0...v9.30.1) #### Bug Fixes - [`e91bb87`](https://github.com/eslint/eslint/commit/e91bb870f8c6e38baa508f18048cd2a2d04b8b9c) fix: allow separate default and named type imports ([#&#8203;19899](https://github.com/eslint/eslint/issues/19899)) (xbinaryx) #### Documentation - [`ab7c625`](https://github.com/eslint/eslint/commit/ab7c62598a9fca498e495d45029ae92fd5fb9bf3) docs: Update README (GitHub Actions Bot) - [`dae1e5b`](https://github.com/eslint/eslint/commit/dae1e5bb27db0e846efbe3026210013b42817838) docs: update jsdoc's link ([#&#8203;19896](https://github.com/eslint/eslint/issues/19896)) (JamesVanWaza) #### Chores - [`b035f74`](https://github.com/eslint/eslint/commit/b035f747c6e6d1c7a299c90b0ed0b8109cf24a53) chore: upgrade to `@eslint/js@9.30.1` ([#&#8203;19906](https://github.com/eslint/eslint/issues/19906)) (Francesco Trotta) - [`b3dbc16`](https://github.com/eslint/eslint/commit/b3dbc16563cb7036d75edff9814e17053a645321) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) ### [`v9.30.0`](https://github.com/eslint/eslint/releases/tag/v9.30.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.29.0...v9.30.0) #### Features - [`52a5fca`](https://github.com/eslint/eslint/commit/52a5fcaa4e0bb4e55c014c20ed47d6c93b107635) feat: Support `basePath` property in config objects ([#&#8203;19879](https://github.com/eslint/eslint/issues/19879)) (Milos Djermanovic) - [`4ab4482`](https://github.com/eslint/eslint/commit/4ab44823df4d4b47d3650da949077a0551e7579e) feat: add `allowSeparateTypeImports` option to `no-duplicate-imports` ([#&#8203;19872](https://github.com/eslint/eslint/issues/19872)) (sethamus) - [`b8a7e7a`](https://github.com/eslint/eslint/commit/b8a7e7aeb5f0ed2e1670771ab4dda6fd723d96eb) feat: throw error when column is negative in `getIndexFromLoc` ([#&#8203;19831](https://github.com/eslint/eslint/issues/19831)) (루밀LuMir) #### Bug Fixes - [`6a0f164`](https://github.com/eslint/eslint/commit/6a0f164543bf8461d6a27a740c9e08aa77cbe42d) fix: handle `null` type `loc` in `getIndexFromLoc` method ([#&#8203;19862](https://github.com/eslint/eslint/issues/19862)) (루밀LuMir) - [`3fbcd70`](https://github.com/eslint/eslint/commit/3fbcd704a0b2aef2a6c1fc34d2bc4b35f6425067) fix: update error message for `no-restricted-properties` ([#&#8203;19855](https://github.com/eslint/eslint/issues/19855)) (Tanuj Kanti) - [`7ef4cf7`](https://github.com/eslint/eslint/commit/7ef4cf76610d42727a404e495ac6d47868cf5040) fix: remove unnecessary semicolon from fixes ([#&#8203;19857](https://github.com/eslint/eslint/issues/19857)) (Francesco Trotta) - [`7dabc38`](https://github.com/eslint/eslint/commit/7dabc38a8406d470fb2389eec2f0ad1ad214173e) fix: use `process.version` in `--env-info` ([#&#8203;19865](https://github.com/eslint/eslint/issues/19865)) (TKDev7) #### Documentation - [`8662ed1`](https://github.com/eslint/eslint/commit/8662ed1f6debc358e22812b145e117aa4a907d78) docs: adopt eslint-stylistic sub packages related changes ([#&#8203;19887](https://github.com/eslint/eslint/issues/19887)) (ntnyq) - [`20158b0`](https://github.com/eslint/eslint/commit/20158b09db3430cf00b202ba8c25ce874bbaf00a) docs: typo in comment for unused variables handling ([#&#8203;19870](https://github.com/eslint/eslint/issues/19870)) (leopardracer) - [`ebfb5b4`](https://github.com/eslint/eslint/commit/ebfb5b46136c4d737c9783333e3057421d1a0bef) docs: Fixed Typo in configuration-files.md ([#&#8203;19873](https://github.com/eslint/eslint/issues/19873)) (0-20) - [`4112fd0`](https://github.com/eslint/eslint/commit/4112fd09531092e9651e9981205bcd603dc56acf) docs: clarify that boolean is still allowed for rule `meta.deprecated` ([#&#8203;19866](https://github.com/eslint/eslint/issues/19866)) (Bryan Mishkin) #### Chores - [`2b6491c`](https://github.com/eslint/eslint/commit/2b6491cd4b8eec44d4a3f8dea1b71151e8dd0230) chore: upgrade to `@eslint/js@9.30.0` ([#&#8203;19889](https://github.com/eslint/eslint/issues/19889)) (Francesco Trotta) - [`5a5d526`](https://github.com/eslint/eslint/commit/5a5d5261037fdf84a91f2f22d3726d58572453f4) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`eaf8a41`](https://github.com/eslint/eslint/commit/eaf8a418af32b3190494e4a2284533353c28ccfa) chore: Correct typos in linter tests ([#&#8203;19878](https://github.com/eslint/eslint/issues/19878)) (kilavvy) ### [`v9.29.0`](https://github.com/eslint/eslint/releases/tag/v9.29.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.28.0...v9.29.0) #### Features - [`f686fcb`](https://github.com/eslint/eslint/commit/f686fcb51e47cf53b891ae595684afe8a0ef584d) feat: add `ecmaVersion: 2026`, parsing `using` and `await using` ([#&#8203;19832](https://github.com/eslint/eslint/issues/19832)) (Milos Djermanovic) - [`19cdd22`](https://github.com/eslint/eslint/commit/19cdd226bb5957f8f7e8cb4e92d38aafe47f8ff4) feat: prune suppressions for non-existent files ([#&#8203;19825](https://github.com/eslint/eslint/issues/19825)) (TKDev7) - [`b3d720f`](https://github.com/eslint/eslint/commit/b3d720f82f08022a33b10f0437111e7d270b8e3c) feat: add ES2025 globals ([#&#8203;19835](https://github.com/eslint/eslint/issues/19835)) (fisker Cheung) - [`677a283`](https://github.com/eslint/eslint/commit/677a2837a17320f54a8869682af128a2a7d77579) feat: add auto-accessor fields support to class-methods-use-this ([#&#8203;19789](https://github.com/eslint/eslint/issues/19789)) (sethamus) - [`dbba058`](https://github.com/eslint/eslint/commit/dbba0589f5509223658b73de6eb721f659bcec47) feat: allow global type declaration in `no-var` ([#&#8203;19714](https://github.com/eslint/eslint/issues/19714)) (Remco Haszing) - [`342bd29`](https://github.com/eslint/eslint/commit/342bd29e1a10a4b521ed0dbb6d889dcfc137e863) feat: ignore type annotations in no-restricted-globals ([#&#8203;19781](https://github.com/eslint/eslint/issues/19781)) (sethamus) - [`786bcd1`](https://github.com/eslint/eslint/commit/786bcd13652b90c5bd0c7201610b856ad1b87542) feat: add allowProperties option to no-restricted-properties ([#&#8203;19772](https://github.com/eslint/eslint/issues/19772)) (sethamus) - [`05b66d0`](https://github.com/eslint/eslint/commit/05b66d05bd68214f2fa1ab53fb2734c9d9e5348a) feat: add `sourceCode.isGlobalReference(node)` method ([#&#8203;19695](https://github.com/eslint/eslint/issues/19695)) (Nitin Kumar) #### Bug Fixes - [`85c082c`](https://github.com/eslint/eslint/commit/85c082c54bd42ad818f5938b8fb1fb2aa0a1912f) fix: explicit matching behavior with negated patterns and arrays ([#&#8203;19845](https://github.com/eslint/eslint/issues/19845)) (Milos Djermanovic) - [`9bda4a9`](https://github.com/eslint/eslint/commit/9bda4a9bf18c9fef91cdd93921a0935ffcf9a9fc) fix: fix `LintOptions.filterCodeBlock` types ([#&#8203;19837](https://github.com/eslint/eslint/issues/19837)) (ntnyq) - [`7ab77a2`](https://github.com/eslint/eslint/commit/7ab77a2c7605126daaa7e7f7ab75b5c252677d12) fix: correct breaking deprecation of FlatConfig type ([#&#8203;19826](https://github.com/eslint/eslint/issues/19826)) (Logicer) - [`1ba3318`](https://github.com/eslint/eslint/commit/1ba33181ab300588a803434884c054ed003f0bbd) fix: add `language` and `dialects` to `no-use-before-define` ([#&#8203;19808](https://github.com/eslint/eslint/issues/19808)) (Francesco Trotta) #### Documentation - [`00e3e6a`](https://github.com/eslint/eslint/commit/00e3e6ad1357df7d46be51d3f305efecb90244a7) docs: add support for custom name parameter to `includeIgnoreFile` ([#&#8203;19795](https://github.com/eslint/eslint/issues/19795)) (루밀LuMir) - [`3aed075`](https://github.com/eslint/eslint/commit/3aed0756ed3669ac27fc243c81fd82e3d0e6973b) docs: Update README (GitHub Actions Bot) - [`a2f888d`](https://github.com/eslint/eslint/commit/a2f888d679e2a44964da596a4158911819e1d31d) docs: enhance documentation with links and fix typos ([#&#8203;19761](https://github.com/eslint/eslint/issues/19761)) (루밀LuMir) - [`53c3235`](https://github.com/eslint/eslint/commit/53c3235ba1c90a85a44f0abd18998ccc4e0445bf) docs: update to clarify prompt usage ([#&#8203;19748](https://github.com/eslint/eslint/issues/19748)) (Jennifer Davis) #### Chores - [`5c114c9`](https://github.com/eslint/eslint/commit/5c114c962f29d0b33e6439e9ab0985014af06b9f) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)@&#8203;9.29.0 ([#&#8203;19851](https://github.com/eslint/eslint/issues/19851)) (Milos Djermanovic) - [`acf2201`](https://github.com/eslint/eslint/commit/acf2201a067d062e007b1b7b164b8e96fa1af50f) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`a806994`](https://github.com/eslint/eslint/commit/a806994263e54e4bc1481736b1c0626c8b770808) refactor: Remove eslintrc from flat config functionality ([#&#8203;19833](https://github.com/eslint/eslint/issues/19833)) (Nicholas C. Zakas) - [`152ed51`](https://github.com/eslint/eslint/commit/152ed51329d82c6e7375f41a105e01b31750e17f) test: switch to flat config mode in code path analysis tests ([#&#8203;19824](https://github.com/eslint/eslint/issues/19824)) (Milos Djermanovic) - [`b647239`](https://github.com/eslint/eslint/commit/b647239272931e0a947500b2f554fc8ccdf8adfd) chore: Update first-party dependencies faster with Renovate ([#&#8203;19822](https://github.com/eslint/eslint/issues/19822)) (Nicholas C. Zakas) - [`7abe42e`](https://github.com/eslint/eslint/commit/7abe42e2de931289e19e34e390d16936cf6faf64) refactor: SafeEmitter -> SourceCodeVisitor ([#&#8203;19708](https://github.com/eslint/eslint/issues/19708)) (Nicholas C. Zakas) - [`e392895`](https://github.com/eslint/eslint/commit/e39289596757702b6c8d747d5ab9c1a7820c108f) perf: improve time complexity of `getLocFromIndex` ([#&#8203;19782](https://github.com/eslint/eslint/issues/19782)) (루밀LuMir) - [`0ed289c`](https://github.com/eslint/eslint/commit/0ed289c5ceed1c10b599b22c8b9374a5a3a144dd) chore: remove accidentally committed file ([#&#8203;19807](https://github.com/eslint/eslint/issues/19807)) (Francesco Trotta) ### [`v9.28.0`](https://github.com/eslint/eslint/releases/tag/v9.28.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.27.0...v9.28.0) #### Features - [`b0674be`](https://github.com/eslint/eslint/commit/b0674be94e4394401b4f668453a473572c321023) feat: Customization of serialization for languageOptions ([#&#8203;19760](https://github.com/eslint/eslint/issues/19760)) (Nicholas C. Zakas) - [`a95721f`](https://github.com/eslint/eslint/commit/a95721f1064fdbfe0e392b955ce3053a24551f80) feat: Add `--pass-on-unpruned-suppressions` CLI option ([#&#8203;19773](https://github.com/eslint/eslint/issues/19773)) (Milos Djermanovic) - [`bfd0e7a`](https://github.com/eslint/eslint/commit/bfd0e7a39535b3c1ddc742dfffa6bdcdc93079e2) feat: support TypeScript syntax in `no-use-before-define` ([#&#8203;19566](https://github.com/eslint/eslint/issues/19566)) (Tanuj Kanti) - [`68c61c0`](https://github.com/eslint/eslint/commit/68c61c093a885623e48f38026e3f3a05bfa403de) feat: support TS syntax in `no-shadow` ([#&#8203;19565](https://github.com/eslint/eslint/issues/19565)) (Nitin Kumar) - [`0f773ef`](https://github.com/eslint/eslint/commit/0f773ef248af0301a410fee11e1b22174100cf6a) feat: support TS syntax in `no-magic-numbers` ([#&#8203;19561](https://github.com/eslint/eslint/issues/19561)) (Nitin Kumar) - [`c4a6b60`](https://github.com/eslint/eslint/commit/c4a6b6051889b1cb668d4d2ae29e9c27c74993d6) feat: add allowTypeAnnotation to func-style ([#&#8203;19754](https://github.com/eslint/eslint/issues/19754)) (sethamus) - [`b03ad17`](https://github.com/eslint/eslint/commit/b03ad176f158afdd921f0af5126c398012b10559) feat: add TypeScript support to `prefer-arrow-callback` ([#&#8203;19678](https://github.com/eslint/eslint/issues/19678)) (Tanuj Kanti) - [`bc3c331`](https://github.com/eslint/eslint/commit/bc3c3313ce2719062805b6849d29f9a375cf23f2) feat: ignore overloaded function declarations in func-style rule ([#&#8203;19755](https://github.com/eslint/eslint/issues/19755)) (sethamus) #### Bug Fixes - [`eea3e7e`](https://github.com/eslint/eslint/commit/eea3e7eb1ca84f9e8870e1190d65d5235d9d8429) fix: Remove configured global variables from `GlobalScope#implicit` ([#&#8203;19779](https://github.com/eslint/eslint/issues/19779)) (Milos Djermanovic) - [`a467de3`](https://github.com/eslint/eslint/commit/a467de39f6e509af95a7963904326635c1bf7116) fix: update context.report types ([#&#8203;19751](https://github.com/eslint/eslint/issues/19751)) (Nitin Kumar) - [`fd467bb`](https://github.com/eslint/eslint/commit/fd467bb892d735a4a8863beabd181a3f3152689a) fix: remove interopDefault to use jiti's default ([#&#8203;19697](https://github.com/eslint/eslint/issues/19697)) (sethamus) - [`72d16e3`](https://github.com/eslint/eslint/commit/72d16e3066aac2f1c74f4150ba43dfa8cf532584) fix: avoid false positive in `no-unassigned-vars` for declare module ([#&#8203;19746](https://github.com/eslint/eslint/issues/19746)) (Azat S.) - [`81c3c93`](https://github.com/eslint/eslint/commit/81c3c936266474c2081f310098084bd0eb1768d2) fix: curly types ([#&#8203;19750](https://github.com/eslint/eslint/issues/19750)) (Eli) #### Documentation - [`3ec2082`](https://github.com/eslint/eslint/commit/3ec208233f29c161aae8f99f9f091e371fe83a62) docs: Nested arrays in files config entry ([#&#8203;19799](https://github.com/eslint/eslint/issues/19799)) (Nicholas C. Zakas) - [`89a65b0`](https://github.com/eslint/eslint/commit/89a65b07f6171a860284b62d97c8b3edf312b98c) docs: clarify how config arrays can apply to subsets of files ([#&#8203;19788](https://github.com/eslint/eslint/issues/19788)) (Shais Ch) - [`2ba8a0d`](https://github.com/eslint/eslint/commit/2ba8a0d75c7a8e6aa4798275126698be40391d37) docs: Add description of meta.namespace to plugin docs ([#&#8203;19798](https://github.com/eslint/eslint/issues/19798)) (Nicholas C. Zakas) - [`59dd7e6`](https://github.com/eslint/eslint/commit/59dd7e6b28507053bde985ea2311dca8ec0db681) docs: update `func-style` with examples ([#&#8203;19793](https://github.com/eslint/eslint/issues/19793)) (Tanuj Kanti) - [`e9129e0`](https://github.com/eslint/eslint/commit/e9129e0799d068c377d63d59a0a800e7d1fea8dd) docs: add global scope's `implicit` field to Scope Manager docs ([#&#8203;19770](https://github.com/eslint/eslint/issues/19770)) (Milos Djermanovic) - [`52f5b7a`](https://github.com/eslint/eslint/commit/52f5b7a0af48a2f143f0bccfd4e036025b08280d) docs: fix minor typos and add links ([#&#8203;19743](https://github.com/eslint/eslint/issues/19743)) (루밀LuMir) - [`00716a3`](https://github.com/eslint/eslint/commit/00716a339ede24ed5a76aceed833f38a6c4e8d3a) docs: upfront recommend against using the no-return-await rule ([#&#8203;19727](https://github.com/eslint/eslint/issues/19727)) (Mike DiDomizio) #### Chores - [`175b7b8`](https://github.com/eslint/eslint/commit/175b7b83fcdc8f3f84821510dd7e04d120402317) chore: upgrade to `@eslint/js@9.28.0` ([#&#8203;19802](https://github.com/eslint/eslint/issues/19802)) (Francesco Trotta) - [`844f5a6`](https://github.com/eslint/eslint/commit/844f5a69dc78ca38f856c137e061e8facc9d00ba) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`62b1c1b`](https://github.com/eslint/eslint/commit/62b1c1bc7981798c3aec2dd430c200c797a25629) chore: update globals to v16 ([#&#8203;19791](https://github.com/eslint/eslint/issues/19791)) (Nitin Kumar) - [`e8a1cb8`](https://github.com/eslint/eslint/commit/e8a1cb8f7fbc18efa589bfedea5326de636b4868) chore: ignore jiti-v2.0 & jiti-v2.1 for renovate ([#&#8203;19786](https://github.com/eslint/eslint/issues/19786)) (Nitin Kumar) - [`43d3975`](https://github.com/eslint/eslint/commit/43d39754b6d315954f46a70dbd53d1fa0eea1619) chore: Add Copilot Instructions file ([#&#8203;19753](https://github.com/eslint/eslint/issues/19753)) (Nicholas C. Zakas) - [`2dfb5eb`](https://github.com/eslint/eslint/commit/2dfb5ebef4c14d552d10a6c7c2c2ce376e63654a) test: update `SourceCodeTraverser` tests ([#&#8203;19763](https://github.com/eslint/eslint/issues/19763)) (Milos Djermanovic) - [`5bc21f9`](https://github.com/eslint/eslint/commit/5bc21f9e8e00f9e49442d1b6520b307ce94f3518) chore: add `*.code-workspace` to `.gitignore` ([#&#8203;19771](https://github.com/eslint/eslint/issues/19771)) (루밀LuMir) - [`f4fa40e`](https://github.com/eslint/eslint/commit/f4fa40eb4bd6f4dba3b2e7fff259d0780ef6becf) refactor: NodeEventGenerator -> SourceCodeTraverser ([#&#8203;19679](https://github.com/eslint/eslint/issues/19679)) (Nicholas C. Zakas) - [`0f49329`](https://github.com/eslint/eslint/commit/0f49329b4a7f91714f2cd1e9ce532d32202c47f4) refactor: use a service to emit warnings ([#&#8203;19725](https://github.com/eslint/eslint/issues/19725)) (Francesco Trotta) - [`20a9e59`](https://github.com/eslint/eslint/commit/20a9e59438fde3642ab058cc55ee1b9fa02b6391) chore: update dependency shelljs to ^0.10.0 ([#&#8203;19740](https://github.com/eslint/eslint/issues/19740)) (renovate\[bot]) ### [`v9.27.0`](https://github.com/eslint/eslint/releases/tag/v9.27.0) [Compare Source](https://github.com/eslint/eslint/compare/v9.26.0...v9.27.0) #### Features - [`d71e37f`](https://github.com/eslint/eslint/commit/d71e37f450f4ae115ec394615e21523685f0d370) feat: Allow flags to be set in ESLINT\_FLAGS env variable ([#&#8203;19717](https://github.com/eslint/eslint/issues/19717)) (Nicholas C. Zakas) - [`ba456e0`](https://github.com/eslint/eslint/commit/ba456e000e104fd7f2dbd27eebbd4f35e6c18934) feat: Externalize MCP server ([#&#8203;19699](https://github.com/eslint/eslint/issues/19699)) (Nicholas C. Zakas) - [`07c1a7e`](https://github.com/eslint/eslint/commit/07c1a7e839ec61bd706c651428606ea5955b2bb0) feat: add `allowRegexCharacters` to `no-useless-escape` ([#&#8203;19705](https://github.com/eslint/eslint/issues/19705)) (sethamus) - [`7bc6c71`](https://github.com/eslint/eslint/commit/7bc6c71ca350fa37531291e1d704be6ed408c5dc) feat: add no-unassigned-vars rule ([#&#8203;19618](https://github.com/eslint/eslint/issues/19618)) (Jacob Bandes-Storch) - [`ee40364`](https://github.com/eslint/eslint/commit/ee4036429758cdaf7f77c52f1c2b74b5a2bb7b66) feat: convert no-array-constructor suggestions to autofixes ([#&#8203;19621](https://github.com/eslint/eslint/issues/19621)) (sethamus) - [`32957cd`](https://github.com/eslint/eslint/commit/32957cde72196c7e41741db311786d881c1613a1) feat: support TS syntax in `max-params` ([#&#8203;19557](https://github.com/eslint/eslint/issues/19557)) (Nitin Kumar) #### Bug Fixes - [`5687ce7`](https://github.com/eslint/eslint/commit/5687ce7055d30e2d5ef800b3d5c3096c3fc42c0e) fix: correct mismatched removed rules ([#&#8203;19734](https://github.com/eslint/eslint/issues/19734)) (루밀LuMir) - [`dc5ed33`](https://github.com/eslint/eslint/commit/dc5ed337fd18cb59801e4afaf394f6b84057b601) fix: correct types and tighten type definitions in `SourceCode` class ([#&#8203;19731](https://github.com/eslint/eslint/issues/19731)) (루밀LuMir) - [`de1b5de`](https://github.com/eslint/eslint/commit/de1b5deba069f770140f3a7dba2702c1016dcc2a) fix: correct `service` property name in `Linter.ESLintParseResult` type ([#&#8203;19713](https://github.com/eslint/eslint/issues/19713)) (Francesco Trotta) - [`60c3e2c`](https://github.com/eslint/eslint/commit/60c3e2cf9256f3676b7934e26ff178aaf19c9e97) fix: sort keys in eslint-suppressions.json to avoid git churn ([#&#8203;19711](https://github.com/eslint/eslint/issues/19711)) (Ron Waldon-Howe) - [`9da90ca`](https://github.com/eslint/eslint/commit/9da90ca3c163adb23a9cc52421f59dedfce34fc9) fix: add `allowReserved` to `Linter.ParserOptions` type ([#&#8203;19710](https://github.com/eslint/eslint/issues/19710)) (Francesco Trotta) - [`fbb8be9`](https://github.com/eslint/eslint/commit/fbb8be9256dc7613fa0b87e87974714284b78a94) fix: add `info` to `ESLint.DeprecatedRuleUse` type ([#&#8203;19701](https://github.com/eslint/eslint/issues/19701)) (Francesco Trotta) #### Documentation - [`25de550`](https://github.com/eslint/eslint/commit/25de55055d420d7c8b794ae5fdaeb67947c613d9) docs: Update description of frozen rules to mention TypeScript ([#&#8203;19736](https://github.com/eslint/eslint/issues/19736)) (Nicholas C. Zakas) - [`bd5def6`](https://github.com/eslint/eslint/commit/bd5def66d1a3f9bad7da3547b5dff6003e67d9d3) docs: Clean up configuration files docs ([#&#8203;19735](https://github.com/eslint/eslint/issues/19735)) (Nicholas C. Zakas) - [`4d0c60d`](https://github.com/eslint/eslint/commit/4d0c60d0738cb32c12e4ea132caa6fab6d5ed0a7) docs: Add Neovim to editor integrations ([#&#8203;19729](https://github.com/eslint/eslint/issues/19729)) (Maria José Solano) - [`71317eb`](https://github.com/eslint/eslint/commit/71317ebeaf1c542114e4fcda99ee26115d8e4a27) docs: Update README (GitHub Actions Bot) - [`4c289e6`](https://github.com/eslint/eslint/commit/4c289e685e6cf87331f4b1e6afe34a4feb8e6cc8) docs: Update README (GitHub Actions Bot) - [`f0f0d46`](https://github.com/eslint/eslint/commit/f0f0d46ab2f87e439642abd84b6948b447b66349) docs: clarify that unused suppressions cause non-zero exit code ([#&#8203;19698](https://github.com/eslint/eslint/issues/19698)) (Milos Djermanovic) - [`8ed3273`](https://github.com/eslint/eslint/commit/8ed32734cc22988173f99fd0703d50f94c60feb8) docs: fix internal usages of `ConfigData` type ([#&#8203;19688](https://github.com/eslint/eslint/issues/19688)) (Francesco Trotta) - [`eb316a8`](https://github.com/eslint/eslint/commit/eb316a83a49347ab47ae965ff95f81dd620d074c) docs: add `fmt` and `check` sections to `Package.json Conventions` ([#&#8203;19686](https://github.com/eslint/eslint/issues/19686)) (루밀LuMir) - [`a3a2559`](https://github.com/eslint/eslint/commit/a3a255924866b94ef8d604e91636547600edec56) docs: fix wording in Combine Configs ([#&#8203;19685](https://github.com/eslint/eslint/issues/19685)) (Milos Djermanovic) - [`c8d17e1`](https://github.com/eslint/eslint/commit/c8d17e11dc63909e693eaed5b5ccc50e698ac3b3) docs: Update README (GitHub Actions Bot) #### Chores - [`f8f1560`](https://github.com/eslint/eslint/commit/f8f1560de633aaf24a7099f89cbbfed12a762a32) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)@&#8203;9.27.0 ([#&#8203;19739](https://github.com/eslint/eslint/issues/19739)) (Milos Djermanovic) - [`ecaef73`](https://github.com/eslint/eslint/commit/ecaef7351f9f3220aa57409bf98db3e55b07a02a) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (Jenkins) - [`596fdc6`](https://github.com/eslint/eslint/commit/596fdc62047dff863e990c3246b32da97ae9a14e) chore: update dependency [@&#8203;arethetypeswrong/cli](https://github.com/arethetypeswrong/cli) to ^0.18.0 ([#&#8203;19732](https://github.com/eslint/eslint/issues/19732)) (renovate\[bot]) - [`f791da0`](https://github.com/eslint/eslint/commit/f791da040189ada1b1ec15856557b939ffcd978b) chore: remove unbalanced curly brace from `.editorconfig` ([#&#8203;19730](https://github.com/eslint/eslint/issues/19730)) (Maria José Solano) - [`e86edee`](https://github.com/eslint/eslint/commit/e86edee0918107e4e41e908fe59c937b83f00d4e) refactor: Consolidate Config helpers ([#&#8203;19675](https://github.com/eslint/eslint/issues/19675)) (Nicholas C. Zakas) - [`cf36352`](https://github.com/eslint/eslint/commit/cf3635299e09570b7472286f25dacd8ab24e0517) chore: remove shared types ([#&#8203;19718](https://github.com/eslint/eslint/issues/19718)) (Francesco Trotta) - [`f60f276`](https://github.com/eslint/eslint/commit/f60f2764971a33e252be13e560dccf21f554dbf1) refactor: Easier RuleContext creation ([#&#8203;19709](https://github.com/eslint/eslint/issues/19709)) (Nicholas C. Zakas) - [`58a171e`](https://github.com/eslint/eslint/commit/58a171e8f0dcc1e599ac22bf8c386abacdbee424) chore: update dependency [@&#8203;eslint/plugin-kit](https://github.com/eslint/plugin-kit) to ^0.3.1 ([#&#8203;19712](https://github.com/eslint/eslint/issues/19712)) (renovate\[bot]) - [`3a075a2`](https://github.com/eslint/eslint/commit/3a075a29cfb43ef08711c2e433fb6f218855886d) chore: update dependency [@&#8203;eslint/core](https://github.com/eslint/core) to ^0.14.0 ([#&#8203;19715](https://github.com/eslint/eslint/issues/19715)) (renovate\[bot]) - [`44bac9d`](https://github.com/eslint/eslint/commit/44bac9d15c4e0ca099d0b0d85e601f3b55d4e167) ci: run tests in Node.js 24 ([#&#8203;19702](https://github.com/eslint/eslint/issues/19702)) (Francesco Trotta) - [`35304dd`](https://github.com/eslint/eslint/commit/35304dd2b0d8a4b640b9a25ae27ebdcb5e124cde) chore: add missing `funding` field to packages ([#&#8203;19684](https://github.com/eslint/eslint/issues/19684)) (루밀LuMir) - [`f305beb`](https://github.com/eslint/eslint/commit/f305beb82c51215ad48c5c860f02be1b34bcce32) test: mock `process.emitWarning` to prevent output disruption ([#&#8203;19687](https://github.com/eslint/eslint/issues/19687)) (Francesco Trotta) </details> <details> <summary>prettier/eslint-config-prettier (eslint-config-prettier)</summary> ### [`v9.1.2`](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...62a15bbfc953d798da2cc8a46e78897da0beac22) [Compare Source](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...62a15bbfc953d798da2cc8a46e78897da0beac22) </details> <details> <summary>pillarjs/iconv-lite (iconv-lite)</summary> ### [`v0.7.0`](https://github.com/pillarjs/iconv-lite/blob/HEAD/Changelog.md#070) [Compare Source](https://github.com/pillarjs/iconv-lite/compare/v0.6.3...v0.7.0) ##### 🐞 Bug fixes - Handle split surrogate pairs when encoding utf8 - by [@&#8203;yosion-p](https://github.com/yosion-p) and [@&#8203;ashtuchkin](https://github.com/ashtuchkin) in [#&#8203;282](https://github.com/ashtuchkin/iconv-lite/pull/282): Handle a case where streaming utf8 encoder (converting js strings -> buffers) encounters surrogate pairs split between chunks (last character of one chunk is high surrogate and first character of the next chunk is a low surrogate). - Avoid false positives in encodingExists by using objects without a prototype - by [@&#8203;bjohansebas](https://github.com/bjohansebas) in [#&#8203;328](https://github.com/ashtuchkin/iconv-lite/pull/328) The encodingExists method could return incorrect results if the lookup matched properties inherited from the prototype of the object that stores the encodings, such as constructor and others. This change replaces that object with one that has no prototype, ensuring that only explicitly defined valid encodings in the library are considered. In addition, the fix is applied to the internal cache system to avoid the same kind of false positives ##### 🚀 Improvements - Make explicit that decode() method supports Uint8Array input - by [@&#8203;jardicc](https://github.com/jardicc) in [#&#8203;271](https://github.com/ashtuchkin/iconv-lite/pull/271) - Remove compatibility check for StringDecoder.end method - by [@&#8203;bjohansebas](https://github.com/bjohansebas) in [#&#8203;331](https://github.com/ashtuchkin/iconv-lite/pull/331) </details> <details> <summary>lucide-icons/lucide (lucide-svelte)</summary> ### [`v0.556.0`](https://github.com/lucide-icons/lucide/releases/tag/0.556.0): Version 0.556.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.555.0...0.556.0) #### What's Changed - feat(icon): add `book-search` icon ([#&#8203;3573](https://github.com/lucide-icons/lucide/issues/3573)) by [@&#8203;Muhammad-Aqib-Bashir](https://github.com/Muhammad-Aqib-Bashir) in [#&#8203;3580](https://github.com/lucide-icons/lucide/pull/3580) - chore(dependencies): Update dependencies by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3809](https://github.com/lucide-icons/lucide/pull/3809) - ci(workflows): Enable trusted publishing in release by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3808](https://github.com/lucide-icons/lucide/pull/3808) - feat(icons): added `scooter` icon by [@&#8203;Ahmed-Dghaies](https://github.com/Ahmed-Dghaies) in [#&#8203;3818](https://github.com/lucide-icons/lucide/pull/3818) - fix(icons): changed `plug` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3841](https://github.com/lucide-icons/lucide/pull/3841) - fix(icons): changed `thermometer-sun` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3773](https://github.com/lucide-icons/lucide/pull/3773) - fix(icons): Shrink square-scissors icons to match optical volume by [@&#8203;eden881](https://github.com/eden881) in [#&#8203;3603](https://github.com/lucide-icons/lucide/pull/3603) - feat(preview-comment): add symmetry preview by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3823](https://github.com/lucide-icons/lucide/pull/3823) - feat(icons): added `estimated-weight` icon by [@&#8203;nathan-de-pachtere](https://github.com/nathan-de-pachtere) in [#&#8203;3822](https://github.com/lucide-icons/lucide/pull/3822) - fix(icons): changed `flashlight` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3843](https://github.com/lucide-icons/lucide/pull/3843) - fix(icons): changed `bubbles` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3774](https://github.com/lucide-icons/lucide/pull/3774) - feat(site): add brand stop words to icon search by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3824](https://github.com/lucide-icons/lucide/pull/3824) - feat(icons): added `van` icon by [@&#8203;Ahmed-Dghaies](https://github.com/Ahmed-Dghaies) in [#&#8203;3821](https://github.com/lucide-icons/lucide/pull/3821) #### New Contributors - [@&#8203;Muhammad-Aqib-Bashir](https://github.com/Muhammad-Aqib-Bashir) made their first contribution in [#&#8203;3580](https://github.com/lucide-icons/lucide/pull/3580) - [@&#8203;Ahmed-Dghaies](https://github.com/Ahmed-Dghaies) made their first contribution in [#&#8203;3818](https://github.com/lucide-icons/lucide/pull/3818) - [@&#8203;eden881](https://github.com/eden881) made their first contribution in [#&#8203;3603](https://github.com/lucide-icons/lucide/pull/3603) - [@&#8203;nathan-de-pachtere](https://github.com/nathan-de-pachtere) made their first contribution in [#&#8203;3822](https://github.com/lucide-icons/lucide/pull/3822) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.555.0...0.556.0> ### [`v0.555.0`](https://github.com/lucide-icons/lucide/releases/tag/0.555.0): Version 0.555.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.554.0...0.555.0) #### What's Changed - fix(icons): changed `calendars` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3795](https://github.com/lucide-icons/lucide/pull/3795) - fix(docs): correct package name and description for Flutter and Lustre package ([#&#8203;3701](https://github.com/lucide-icons/lucide/issues/3701)) by [@&#8203;epifaniofrancisco](https://github.com/epifaniofrancisco) in [#&#8203;3703](https://github.com/lucide-icons/lucide/pull/3703) - feat(angular): Angular V21 Support by [@&#8203;JeevanMahesha](https://github.com/JeevanMahesha) in [#&#8203;3807](https://github.com/lucide-icons/lucide/pull/3807) - chore(metadata): Adjust navigation category by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3461](https://github.com/lucide-icons/lucide/pull/3461) - feat(icons): Add `waves-arrow-up` and `waves-arrow-down` by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3463](https://github.com/lucide-icons/lucide/pull/3463) - fix(icons): changed `scale` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3800](https://github.com/lucide-icons/lucide/pull/3800) - feat(icons): added `form` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3558](https://github.com/lucide-icons/lucide/pull/3558) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.554.0...0.555.0> ### [`v0.554.0`](https://github.com/lucide-icons/lucide/releases/tag/0.554.0): Version 0.554.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.553.0...0.554.0) #### What's Changed - fix(icons): Rename fingerprint icon to fingerprint-pattern by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3767](https://github.com/lucide-icons/lucide/pull/3767) - feat(docs): added lucide-rails third-party package by [@&#8203;theiereman](https://github.com/theiereman) in [#&#8203;3769](https://github.com/lucide-icons/lucide/pull/3769) - fix(icons): changed `ampersand` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3771](https://github.com/lucide-icons/lucide/pull/3771) - fix(icons): changed `folder-git-2` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3790](https://github.com/lucide-icons/lucide/pull/3790) - fix(icons): update `anchor` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;2523](https://github.com/lucide-icons/lucide/pull/2523) - feat(icons): added `calendars` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3788](https://github.com/lucide-icons/lucide/pull/3788) #### Breaking change For `lucide-react` and `lucide-solid`, imports for `Fingerprint` icon are changed to `FingerprintPattern`. ##### Lucide React ```diff - import { Fingerprint } from "lucide-react"; + import { FingerprintPattern } from "lucide-react"; ``` ##### Lucide Solid ```diff - import { Fingerprint } from "lucide/solid"; + import { FingerprintPattern } from "lucide/solid"; // Or - import Fingerprint from "lucide/solid/icons/fingerprint"; + import FingerprintPattern from "lucide/solid/icons/fingerprint-pattern"; ``` #### New Contributors - [@&#8203;theiereman](https://github.com/theiereman) made their first contribution in [#&#8203;3769](https://github.com/lucide-icons/lucide/pull/3769) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.553.0...0.554.0> ### [`v0.553.0`](https://github.com/lucide-icons/lucide/releases/tag/0.553.0): Version 0.553.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.552.0...0.553.0) #### What's Changed - feat(icons): added `mouse-pointer-2-off` icon by [@&#8203;domingasp](https://github.com/domingasp) in [#&#8203;3570](https://github.com/lucide-icons/lucide/pull/3570) - fix(icons): changed `ruler-dimension-line` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3433](https://github.com/lucide-icons/lucide/pull/3433) - feat(docs): add keyboard shortcut for search by [@&#8203;dzonatan](https://github.com/dzonatan) in [#&#8203;3718](https://github.com/lucide-icons/lucide/pull/3718) - fix(lucide-preact): handle `className` prop by [@&#8203;ocavue](https://github.com/ocavue) in [#&#8203;3751](https://github.com/lucide-icons/lucide/pull/3751) - feat(icons): added chess pieces by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;1945](https://github.com/lucide-icons/lucide/pull/1945) #### New Contributors - [@&#8203;domingasp](https://github.com/domingasp) made their first contribution in [#&#8203;3570](https://github.com/lucide-icons/lucide/pull/3570) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.552.0...0.553.0> ### [`v0.552.0`](https://github.com/lucide-icons/lucide/releases/tag/0.552.0): Version 0.552.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.551.0...0.552.0) #### What's Changed - fix(icons/file): arcified folds by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3587](https://github.com/lucide-icons/lucide/pull/3587) - feat(icons): added `solar-panel` icon by [@&#8203;UsamaKhan](https://github.com/UsamaKhan) in [#&#8203;2780](https://github.com/lucide-icons/lucide/pull/2780) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.551.0...0.552.0> ### [`v0.551.0`](https://github.com/lucide-icons/lucide/releases/tag/0.551.0): Version 0.551.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.550.0...0.551.0) #### What's Changed - feat(icons): added `clock-check` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2402](https://github.com/lucide-icons/lucide/pull/2402) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.550.0...0.551.0> ### [`v0.550.0`](https://github.com/lucide-icons/lucide/releases/tag/0.550.0): Version 0.550.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.549.0...0.550.0) #### What's Changed - feat(icons): added `helicopter` icon by [@&#8203;liloudreams](https://github.com/liloudreams) in [#&#8203;2760](https://github.com/lucide-icons/lucide/pull/2760) #### New Contributors - [@&#8203;liloudreams](https://github.com/liloudreams) made their first contribution in [#&#8203;2760](https://github.com/lucide-icons/lucide/pull/2760) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.549.0...0.550.0> ### [`v0.549.0`](https://github.com/lucide-icons/lucide/releases/tag/0.549.0): Version 0.549.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.548.0...0.549.0) #### What's Changed - fix(docs): Replace `pnpm install` with `pnpm add` across documentation. by [@&#8203;josch87](https://github.com/josch87) in [#&#8203;3735](https://github.com/lucide-icons/lucide/pull/3735) - feat(docs): add new package for Go by [@&#8203;kaugesaar](https://github.com/kaugesaar) in [#&#8203;3736](https://github.com/lucide-icons/lucide/pull/3736) - feat(icons): added `git-branch-minus` icon by [@&#8203;joris-gallot](https://github.com/joris-gallot) in [#&#8203;3586](https://github.com/lucide-icons/lucide/pull/3586) #### New Contributors - [@&#8203;josch87](https://github.com/josch87) made their first contribution in [#&#8203;3735](https://github.com/lucide-icons/lucide/pull/3735) - [@&#8203;kaugesaar](https://github.com/kaugesaar) made their first contribution in [#&#8203;3736](https://github.com/lucide-icons/lucide/pull/3736) - [@&#8203;joris-gallot](https://github.com/joris-gallot) made their first contribution in [#&#8203;3586](https://github.com/lucide-icons/lucide/pull/3586) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.548.0...0.549.0> ### [`v0.548.0`](https://github.com/lucide-icons/lucide/releases/tag/0.548.0): Version 0.548.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.547.0...0.548.0) #### What's Changed - feat(docs): add new package for Slint by [@&#8203;cnlancehu](https://github.com/cnlancehu) in [#&#8203;3698](https://github.com/lucide-icons/lucide/pull/3698) - docs(site): add introductions for packages in documentation by [@&#8203;mattheskaiser](https://github.com/mattheskaiser) in [#&#8203;3643](https://github.com/lucide-icons/lucide/pull/3643) - Fix default prop by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3730](https://github.com/lucide-icons/lucide/pull/3730) - feat(icons): added `gamepad-directional` icon by [@&#8203;felipeajzanetti](https://github.com/felipeajzanetti) in [#&#8203;3693](https://github.com/lucide-icons/lucide/pull/3693) #### New Contributors - [@&#8203;cnlancehu](https://github.com/cnlancehu) made their first contribution in [#&#8203;3698](https://github.com/lucide-icons/lucide/pull/3698) - [@&#8203;mattheskaiser](https://github.com/mattheskaiser) made their first contribution in [#&#8203;3643](https://github.com/lucide-icons/lucide/pull/3643) - [@&#8203;felipeajzanetti](https://github.com/felipeajzanetti) made their first contribution in [#&#8203;3693](https://github.com/lucide-icons/lucide/pull/3693) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.547.0...0.548.0> ### [`v0.547.0`](https://github.com/lucide-icons/lucide/releases/tag/0.547.0): Version 0.547.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.546.0...0.547.0) #### What's Changed - fix(docs): update brand logo statement link in github action by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3630](https://github.com/lucide-icons/lucide/pull/3630) - chore(deps): bump astro from 5.5.2 to 5.14.4 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3683](https://github.com/lucide-icons/lucide/pull/3683) - fix(packages/lucide): replace elements inside `<template>` ([#&#8203;2635](https://github.com/lucide-icons/lucide/issues/2635)) by [@&#8203;KhalidAlansary](https://github.com/KhalidAlansary) in [#&#8203;3576](https://github.com/lucide-icons/lucide/pull/3576) - feat(icons): added `birdhouse` icon by [@&#8203;hieu-onefold](https://github.com/hieu-onefold) in [#&#8203;3378](https://github.com/lucide-icons/lucide/pull/3378) #### New Contributors - [@&#8203;KhalidAlansary](https://github.com/KhalidAlansary) made their first contribution in [#&#8203;3576](https://github.com/lucide-icons/lucide/pull/3576) - [@&#8203;hieu-onefold](https://github.com/hieu-onefold) made their first contribution in [#&#8203;3378](https://github.com/lucide-icons/lucide/pull/3378) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.546.0...0.547.0> ### [`v0.546.0`](https://github.com/lucide-icons/lucide/releases/tag/0.546.0): Version 0.546.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.545.0...0.546.0) #### What's Changed - fix(icons): changed `receipt-text` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3553](https://github.com/lucide-icons/lucide/pull/3553) - fix(docs): removed duplicate text in intro text by [@&#8203;nielsswinkels](https://github.com/nielsswinkels) in [#&#8203;3673](https://github.com/lucide-icons/lucide/pull/3673) - feat(icons): add VS Code `squircle` base shape snippet by [@&#8203;danielbayley](https://github.com/danielbayley) in [#&#8203;3674](https://github.com/lucide-icons/lucide/pull/3674) - fix(icons): changed `sword` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3421](https://github.com/lucide-icons/lucide/pull/3421) - feat(icons): added `monitor-cloud` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3037](https://github.com/lucide-icons/lucide/pull/3037) #### New Contributors - [@&#8203;nielsswinkels](https://github.com/nielsswinkels) made their first contribution in [#&#8203;3673](https://github.com/lucide-icons/lucide/pull/3673) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.545.0...0.546.0> ### [`v0.545.0`](https://github.com/lucide-icons/lucide/releases/tag/0.545.0): Version 0.545.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.544.0...0.545.0) #### What's Changed - fix(icons): changed `flame` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3600](https://github.com/lucide-icons/lucide/pull/3600) - fix(icons): arcified `square-m` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3549](https://github.com/lucide-icons/lucide/pull/3549) - chore(deps-dev): bump vite from 6.3.5 to 6.3.6 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3611](https://github.com/lucide-icons/lucide/pull/3611) - fix(icons): changed `combine` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3200](https://github.com/lucide-icons/lucide/pull/3200) - fix(icons): changed `building-2` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3509](https://github.com/lucide-icons/lucide/pull/3509) - chore(deps): bump devalue from 5.1.1 to 5.3.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3638](https://github.com/lucide-icons/lucide/pull/3638) - feat(icons): Add `motorbike` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3371](https://github.com/lucide-icons/lucide/pull/3371) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.544.0...0.545.0> ### [`v0.544.0`](https://github.com/lucide-icons/lucide/releases/tag/0.544.0): Version 0.544.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.543.0...0.544.0) #### What's Changed - docs: update lucide-static documentation about raw string imports by [@&#8203;pascalduez](https://github.com/pascalduez) in [#&#8203;3524](https://github.com/lucide-icons/lucide/pull/3524) - feat(icons): added `ev-charger` icon by [@&#8203;UsamaKhan](https://github.com/UsamaKhan) in [#&#8203;2781](https://github.com/lucide-icons/lucide/pull/2781) #### New Contributors - [@&#8203;pascalduez](https://github.com/pascalduez) made their first contribution in [#&#8203;3524](https://github.com/lucide-icons/lucide/pull/3524) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.543.0...0.544.0> ### [`v0.543.0`](https://github.com/lucide-icons/lucide/releases/tag/0.543.0): Version 0.543.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.542.0...0.543.0) #### What's Changed - feat(preview-comment): put x-ray at top if there are more than 7 changed icons to prevent them from being cut of by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3589](https://github.com/lucide-icons/lucide/pull/3589) - fix(icons): changed `church` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2971](https://github.com/lucide-icons/lucide/pull/2971) - chore(metadata): Added tags to `messages-square` by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3529](https://github.com/lucide-icons/lucide/pull/3529) - fix(icons): Optimise `bug` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3574](https://github.com/lucide-icons/lucide/pull/3574) - fix(icons): changed list/text & derived icons by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3568](https://github.com/lucide-icons/lucide/pull/3568) - fix(icons): changed `panel-top-bottom-dashed` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3584](https://github.com/lucide-icons/lucide/pull/3584) - fix(icons): changed `message-square-quote` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3550](https://github.com/lucide-icons/lucide/pull/3550) - fix(meta): added tag to `ship` metadata by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3559](https://github.com/lucide-icons/lucide/pull/3559) - fix(meta): add tags to `id-card-lanyard` metadata by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3534](https://github.com/lucide-icons/lucide/pull/3534) - fix(icons): changed `calendar-cog` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3583](https://github.com/lucide-icons/lucide/pull/3583) - chore(deps): bump astro from 5.5.2 to 5.13.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3564](https://github.com/lucide-icons/lucide/pull/3564) - feat(packages): add new package for flutter by [@&#8203;vqh2602](https://github.com/vqh2602) in [#&#8203;3536](https://github.com/lucide-icons/lucide/pull/3536) - feat(icons): added `house-heart` icon by [@&#8203;danielbayley](https://github.com/danielbayley) in [#&#8203;3239](https://github.com/lucide-icons/lucide/pull/3239) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.542.0...0.543.0> ### [`v0.542.0`](https://github.com/lucide-icons/lucide/releases/tag/0.542.0): Version 0.542.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.541.0...0.542.0) #### What's Changed - feat(docs): add MDN Web Docs & Nuxt to showcase by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3590](https://github.com/lucide-icons/lucide/pull/3590) - feat(icons): added `list-chevrons-down-up` icon by [@&#8203;juliankellydesign](https://github.com/juliankellydesign) in [#&#8203;3492](https://github.com/lucide-icons/lucide/pull/3492) #### New Contributors - [@&#8203;juliankellydesign](https://github.com/juliankellydesign) made their first contribution in [#&#8203;3492](https://github.com/lucide-icons/lucide/pull/3492) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.541.0...0.542.0> ### [`v0.541.0`](https://github.com/lucide-icons/lucide/releases/tag/0.541.0): Version 0.541.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.540.0...0.541.0) #### What's Changed - feat(packages/lucide): added support for providing a custom root element by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3543](https://github.com/lucide-icons/lucide/pull/3543) - fix(icons): optimized `chrome` icon & renamed to `chromium` by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3572](https://github.com/lucide-icons/lucide/pull/3572) - fix(icons): changed `wallpaper` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3566](https://github.com/lucide-icons/lucide/pull/3566) - fix(icons): optimized `cog` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3548](https://github.com/lucide-icons/lucide/pull/3548) - fix(icons): changed `building` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3510](https://github.com/lucide-icons/lucide/pull/3510) - feat(dpi-preview): add previous version for easier comparison by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3532](https://github.com/lucide-icons/lucide/pull/3532) - feat(icons): added 'panel-dashed' variants + update tags on existing icons by [@&#8203;irvineacosta](https://github.com/irvineacosta) in [#&#8203;3500](https://github.com/lucide-icons/lucide/pull/3500) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.540.0...0.541.0> ### [`v0.540.0`](https://github.com/lucide-icons/lucide/releases/tag/0.540.0): Version 0.540.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.539.0...0.540.0) #### What's Changed - fix(license): add full text of Feather license by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3530](https://github.com/lucide-icons/lucide/pull/3530) - fix(icons): changed `umbrella` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3490](https://github.com/lucide-icons/lucide/pull/3490) - docs(site): added official statement on brand logos in Lucide by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3541](https://github.com/lucide-icons/lucide/pull/3541) - fix(icons): changed `camera` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3539](https://github.com/lucide-icons/lucide/pull/3539) - feat(icons): added `rose` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;1972](https://github.com/lucide-icons/lucide/pull/1972) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.539.0...0.540.0> ### [`v0.539.0`](https://github.com/lucide-icons/lucide/releases/tag/0.539.0): Version 0.539.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.538.0...0.539.0) #### What's Changed - feat(icons): added `brick-wall-shield` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3476](https://github.com/lucide-icons/lucide/pull/3476) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.538.0...0.539.0> ### [`v0.538.0`](https://github.com/lucide-icons/lucide/releases/tag/0.538.0): Version 0.538.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.537.0...0.538.0) #### What's Changed - fix(icons): changed `apple` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3505](https://github.com/lucide-icons/lucide/pull/3505) - fix(icons): changed `store` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3501](https://github.com/lucide-icons/lucide/pull/3501) - fix(icons): changed `mic-off` icon by [@&#8203;lieonlion](https://github.com/lieonlion) in [#&#8203;2823](https://github.com/lucide-icons/lucide/pull/2823) - chore(deps): bump astro from 5.5.2 to 5.12.8 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;3523](https://github.com/lucide-icons/lucide/pull/3523) - fix(icons): deprecate rail-symbol by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2862](https://github.com/lucide-icons/lucide/pull/2862) - feat(icons): added `kayak` icon by [@&#8203;jpjacobpadilla](https://github.com/jpjacobpadilla) in [#&#8203;3054](https://github.com/lucide-icons/lucide/pull/3054) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.537.0...0.538.0> ### [`v0.537.0`](https://github.com/lucide-icons/lucide/releases/tag/0.537.0): Version 0.537.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.536.0...0.537.0) #### What's Changed - chore(metadata): Add tags to `x` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3341](https://github.com/lucide-icons/lucide/pull/3341) - docs: add rule against war/violence related imagery by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3506](https://github.com/lucide-icons/lucide/pull/3506) - fix(icons): changed `spade` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3502](https://github.com/lucide-icons/lucide/pull/3502) - fix(icons): changed `school` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2968](https://github.com/lucide-icons/lucide/pull/2968) - fix(site): fixes icon style customiser by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3511](https://github.com/lucide-icons/lucide/pull/3511) - fix(docs): fixed array length error in diff endpoint by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3498](https://github.com/lucide-icons/lucide/pull/3498) - feat(icons): added `circle-star` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3507](https://github.com/lucide-icons/lucide/pull/3507) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.536.0...0.537.0> ### [`v0.536.0`](https://github.com/lucide-icons/lucide/releases/tag/0.536.0): Version 0.536.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.535.0...0.536.0) #### What's Changed - fix(icons): arcified message icons & fixed optical volume by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3473](https://github.com/lucide-icons/lucide/pull/3473) - fix(icons): changed `hospital` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2969](https://github.com/lucide-icons/lucide/pull/2969) - fix([@&#8203;lucide/svelte](https://github.com/lucide/svelte)): Add `.js` extensions to imports by [@&#8203;abdel-17](https://github.com/abdel-17) in [#&#8203;2950](https://github.com/lucide-icons/lucide/pull/2950) - fix(lucide-vue-next): Support for kebabCase props by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3477](https://github.com/lucide-icons/lucide/pull/3477) - fix(icons): changed `a-arrow-*` icons by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3474](https://github.com/lucide-icons/lucide/pull/3474) - fix(icons): arcified `cake-slice` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3345](https://github.com/lucide-icons/lucide/pull/3345) - feat(lucide-static): include aliases in icons directory by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3368](https://github.com/lucide-icons/lucide/pull/3368) - feat(icons): added `turntable` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3429](https://github.com/lucide-icons/lucide/pull/3429) #### New Contributors - [@&#8203;abdel-17](https://github.com/abdel-17) made their first contribution in [#&#8203;2950](https://github.com/lucide-icons/lucide/pull/2950) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.535.0...0.536.0> ### [`v0.535.0`](https://github.com/lucide-icons/lucide/releases/tag/0.535.0): Version 0.535.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.534.0...0.535.0) #### What's Changed - ci: add "telegram" to close-issue-with-banned-phrases by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3475](https://github.com/lucide-icons/lucide/pull/3475) - fix(lucide-static): properly select icons dir for tags & error if no metadata found by [@&#8203;AlexProgrammerDE](https://github.com/AlexProgrammerDE) in [#&#8203;3411](https://github.com/lucide-icons/lucide/pull/3411) - fix(docs): update prop name from absolute-stroke-width to absoluteStrokeWidth in vue-next guide by [@&#8203;epifaniofrancisco](https://github.com/epifaniofrancisco) in [#&#8203;3322](https://github.com/lucide-icons/lucide/pull/3322) - feat(SvgPreview): add features from lucide studio by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3365](https://github.com/lucide-icons/lucide/pull/3365) - chore: icon alias improvements by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2861](https://github.com/lucide-icons/lucide/pull/2861) - fix(icons): changed tiny heart icons by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3471](https://github.com/lucide-icons/lucide/pull/3471) - chore(docs): Update vitepress deps by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3470](https://github.com/lucide-icons/lucide/pull/3470) - feat(icons): added hand-fist icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;1843](https://github.com/lucide-icons/lucide/pull/1843) #### New Contributors - [@&#8203;AlexProgrammerDE](https://github.com/AlexProgrammerDE) made their first contribution in [#&#8203;3411](https://github.com/lucide-icons/lucide/pull/3411) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.534.0...0.535.0> ### [`v0.534.0`](https://github.com/lucide-icons/lucide/releases/tag/0.534.0): Version 0.534.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.533.0...0.534.0) #### What's Changed - fix(icons): changed `settings` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3467](https://github.com/lucide-icons/lucide/pull/3467) - fix(icons): changed `mails`, `tags`, `files`, `file-stack`, `book-copy` and `folders` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2935](https://github.com/lucide-icons/lucide/pull/2935) - fix(icons): changed `gavel` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3465](https://github.com/lucide-icons/lucide/pull/3465) - fix(icons): changed `sun-moon` icon & arcified `moon` icons by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3380](https://github.com/lucide-icons/lucide/pull/3380) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.533.0...0.534.0> ### [`v0.533.0`](https://github.com/lucide-icons/lucide/releases/tag/0.533.0): Version 0.533.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.532.0...0.533.0) #### What's Changed - fix(docs): Icon Component Example for Svelte 5 does not compile by [@&#8203;Zlendy](https://github.com/Zlendy) in [#&#8203;3416](https://github.com/lucide-icons/lucide/pull/3416) - fix(icons): changed `sailboat` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3460](https://github.com/lucide-icons/lucide/pull/3460) - fix(icons): Changed `a-large-small` icon by [@&#8203;vichotech](https://github.com/vichotech) in [#&#8203;3396](https://github.com/lucide-icons/lucide/pull/3396) - fix(icons): added rounding to `heart-*` icons by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3061](https://github.com/lucide-icons/lucide/pull/3061) - fix(icons): changed `folder-symlink` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2558](https://github.com/lucide-icons/lucide/pull/2558) - fix(icons): Rounded and optically-centred `flag-triangle-*` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3438](https://github.com/lucide-icons/lucide/pull/3438) - feat(icons): added `closed-caption` icon by [@&#8203;UsamaKhan](https://github.com/UsamaKhan) in [#&#8203;2910](https://github.com/lucide-icons/lucide/pull/2910) #### New Contributors - [@&#8203;Zlendy](https://github.com/Zlendy) made their first contribution in [#&#8203;3416](https://github.com/lucide-icons/lucide/pull/3416) - [@&#8203;vichotech](https://github.com/vichotech) made their first contribution in [#&#8203;3396](https://github.com/lucide-icons/lucide/pull/3396) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.532.0...0.533.0> ### [`v0.532.0`](https://github.com/lucide-icons/lucide/releases/tag/0.532.0): Version 0.532.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.531.0...0.532.0) #### What's Changed - feat(icons): added `handbag` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3298](https://github.com/lucide-icons/lucide/pull/3298) - fix(icons): changed `wrench` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3459](https://github.com/lucide-icons/lucide/pull/3459) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.531.0...0.532.0> ### [`v0.531.0`](https://github.com/lucide-icons/lucide/releases/tag/0.531.0): Version 0.531.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.530.0...0.531.0) #### What's Changed - fix(icons): changed `user-star` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3464](https://github.com/lucide-icons/lucide/pull/3464) - feat(icons): added `clipboard-clock` icon by [@&#8203;beanduong](https://github.com/beanduong) in [#&#8203;3427](https://github.com/lucide-icons/lucide/pull/3427) #### New Contributors - [@&#8203;beanduong](https://github.com/beanduong) made their first contribution in [#&#8203;3427](https://github.com/lucide-icons/lucide/pull/3427) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.530.0...0.531.0> ### [`v0.530.0`](https://github.com/lucide-icons/lucide/releases/tag/0.530.0): Version 0.530.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.529.0...0.530.0) #### What's Changed - feat(icons): added `user-star` icon by [@&#8203;MArtytraM99](https://github.com/MArtytraM99) in [#&#8203;3331](https://github.com/lucide-icons/lucide/pull/3331) #### New Contributors - [@&#8203;MArtytraM99](https://github.com/MArtytraM99) made their first contribution in [#&#8203;3331](https://github.com/lucide-icons/lucide/pull/3331) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.529.0...0.530.0> ### [`v0.529.0`](https://github.com/lucide-icons/lucide/releases/tag/0.529.0): Version 0.529.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.528.0...0.529.0) #### What's Changed - fix(icons): changed `shovel` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3458](https://github.com/lucide-icons/lucide/pull/3458) - fix(icons): changed `castle` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2972](https://github.com/lucide-icons/lucide/pull/2972) - fix(icons): Rename `location-edit` to `map-pin-pencil` by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3462](https://github.com/lucide-icons/lucide/pull/3462) - feat(icons): added `map-minus` icon by [@&#8203;MarianoFranzese](https://github.com/MarianoFranzese) in [#&#8203;3259](https://github.com/lucide-icons/lucide/pull/3259) #### New Contributors - [@&#8203;MarianoFranzese](https://github.com/MarianoFranzese) made their first contribution in [#&#8203;3259](https://github.com/lucide-icons/lucide/pull/3259) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.528.0...0.529.0> ### [`v0.528.0`](https://github.com/lucide-icons/lucide/releases/tag/0.528.0): Version 0.528.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.527.0...0.528.0) #### What's Changed - fix(icons): changed `lasso` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3454](https://github.com/lucide-icons/lucide/pull/3454) - fix(icons): changed `gem` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3442](https://github.com/lucide-icons/lucide/pull/3442) - fix(icons): Refine `refresh-ccw-dot` to match other `refresh-` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3437](https://github.com/lucide-icons/lucide/pull/3437) - fix(icons): changed `croissant` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3428](https://github.com/lucide-icons/lucide/pull/3428) - fix(icons): changed `sprout` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3430](https://github.com/lucide-icons/lucide/pull/3430) - fix(icons): arcified playback icons by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3425](https://github.com/lucide-icons/lucide/pull/3425) - fix(icons): changed `sparkles` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3426](https://github.com/lucide-icons/lucide/pull/3426) - fix(icons): arcify `arrow-big-` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3356](https://github.com/lucide-icons/lucide/pull/3356) - feat(icons): added `hat-glasses` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3431](https://github.com/lucide-icons/lucide/pull/3431) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.527.0...0.528.0> ### [`v0.527.0`](https://github.com/lucide-icons/lucide/releases/tag/0.527.0): Version 0.527.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.526.0...0.527.0) #### What's Changed - fix(icons): changed `monitor-dot` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3452](https://github.com/lucide-icons/lucide/pull/3452) - feat(icons): added `spotlight` icon by [@&#8203;chessurisme](https://github.com/chessurisme) in [#&#8203;3450](https://github.com/lucide-icons/lucide/pull/3450) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.526.0...0.527.0> ### [`v0.526.0`](https://github.com/lucide-icons/lucide/releases/tag/0.526.0): Version 0.526.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.525.0...0.526.0) #### What's Changed - ci(icons): Add ChatGPT tags suggestions on icon PRs by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3372](https://github.com/lucide-icons/lucide/pull/3372) - docs(site): small changes for DynamicIcon by [@&#8203;Itrulia](https://github.com/Itrulia) in [#&#8203;3355](https://github.com/lucide-icons/lucide/pull/3355) - fix(icons): changed `circle-parking-off` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3343](https://github.com/lucide-icons/lucide/pull/3343) - feat(icons): added Turkish lira icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;2873](https://github.com/lucide-icons/lucide/pull/2873) - fix(icons): changed `brain` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3381](https://github.com/lucide-icons/lucide/pull/3381) - fix(icons): changed `cable` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3374](https://github.com/lucide-icons/lucide/pull/3374) - fix(icons): changed `podcast` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3385](https://github.com/lucide-icons/lucide/pull/3385) - fix(icons): changed `trash` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3394](https://github.com/lucide-icons/lucide/pull/3394) - fix(icons): changed `pen-line` and `pencil-line` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2663](https://github.com/lucide-icons/lucide/pull/2663) - fix(icons): fixed `ban` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3434](https://github.com/lucide-icons/lucide/pull/3434) - fix(icons): changed `magnet` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3435](https://github.com/lucide-icons/lucide/pull/3435) - feat(icons): added `wifi-sync` icon by [@&#8203;luisdlopera](https://github.com/luisdlopera) in [#&#8203;3132](https://github.com/lucide-icons/lucide/pull/3132) #### New Contributors - [@&#8203;Itrulia](https://github.com/Itrulia) made their first contribution in [#&#8203;3355](https://github.com/lucide-icons/lucide/pull/3355) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.525.0...0.526.0> ### [`v0.525.0`](https://github.com/lucide-icons/lucide/releases/tag/0.525.0): Version 0.525.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.524.0...0.525.0) #### What's Changed - fix(icons): Changed `megaphone` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;2448](https://github.com/lucide-icons/lucide/pull/2448) - fix(icons): arcified `shrub` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2292](https://github.com/lucide-icons/lucide/pull/2292) - fix(icons): changed `sun-moon` icon by [@&#8203;zishankadri](https://github.com/zishankadri) in [#&#8203;3328](https://github.com/lucide-icons/lucide/pull/3328) - fix(icons): changed `flag` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3370](https://github.com/lucide-icons/lucide/pull/3370) - feat(icons): added `tool-case` icon by [@&#8203;AlexNaskida](https://github.com/AlexNaskida) in [#&#8203;3333](https://github.com/lucide-icons/lucide/pull/3333) #### New Contributors - [@&#8203;zishankadri](https://github.com/zishankadri) made their first contribution in [#&#8203;3328](https://github.com/lucide-icons/lucide/pull/3328) - [@&#8203;AlexNaskida](https://github.com/AlexNaskida) made their first contribution in [#&#8203;3333](https://github.com/lucide-icons/lucide/pull/3333) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.524.0...0.525.0> ### [`v0.524.0`](https://github.com/lucide-icons/lucide/releases/tag/0.524.0): Version 0.524.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.523.0...0.524.0) #### What's Changed - docs(packages/lucide-static): update docs for better clarity by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3225](https://github.com/lucide-icons/lucide/pull/3225) - fix(icons): changed `dessert` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3362](https://github.com/lucide-icons/lucide/pull/3362) - fix(icons): changed `ligature` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3369](https://github.com/lucide-icons/lucide/pull/3369) - fix(icons): Updates to clock-related icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;2538](https://github.com/lucide-icons/lucide/pull/2538) - feat(icons): added `vector-square` icon by [@&#8203;chessurisme](https://github.com/chessurisme) in [#&#8203;2531](https://github.com/lucide-icons/lucide/pull/2531) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.523.0...0.524.0> ### [`v0.523.0`](https://github.com/lucide-icons/lucide/releases/tag/0.523.0): Version 0.523.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.522.0...0.523.0) #### What's Changed - feat(icons): added `bottle-wine` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3265](https://github.com/lucide-icons/lucide/pull/3265) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.522.0...0.523.0> ### [`v0.522.0`](https://github.com/lucide-icons/lucide/releases/tag/0.522.0): Version 0.522.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.521.0...0.522.0) #### What's Changed - fix(icons): changed `shopping-bag` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2483](https://github.com/lucide-icons/lucide/pull/2483) - feat(icons): add `line-squiggle` icon by [@&#8203;chessurisme](https://github.com/chessurisme) in [#&#8203;2393](https://github.com/lucide-icons/lucide/pull/2393) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.521.0...0.522.0> ### [`v0.521.0`](https://github.com/lucide-icons/lucide/releases/tag/0.521.0): Version 0.521.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.520.0...0.521.0) #### What's Changed - fix(icons): ensure shaft overlaps arrowhead in `circle-arrow-left` and `circle-arrow-right` by [@&#8203;cstayyab](https://github.com/cstayyab) in [#&#8203;3269](https://github.com/lucide-icons/lucide/pull/3269) - feat(icons): added `squircle-dashed` icon by [@&#8203;aramsoneson](https://github.com/aramsoneson) in [#&#8203;3262](https://github.com/lucide-icons/lucide/pull/3262) - docs(design-guide): added bad examples for 2px rule by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2879](https://github.com/lucide-icons/lucide/pull/2879) #### New Contributors - [@&#8203;cstayyab](https://github.com/cstayyab) made their first contribution in [#&#8203;3269](https://github.com/lucide-icons/lucide/pull/3269) - [@&#8203;aramsoneson](https://github.com/aramsoneson) made their first contribution in [#&#8203;3262](https://github.com/lucide-icons/lucide/pull/3262) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.520.0...0.521.0> ### [`v0.520.0`](https://github.com/lucide-icons/lucide/releases/tag/0.520.0): Version 0.520.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.519.0...0.520.0) #### What's Changed - feat(icons): added `georgian-lari` icon by [@&#8203;kivicode](https://github.com/kivicode) in [#&#8203;3323](https://github.com/lucide-icons/lucide/pull/3323) #### New Contributors - [@&#8203;kivicode](https://github.com/kivicode) made their first contribution in [#&#8203;3323](https://github.com/lucide-icons/lucide/pull/3323) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.519.0...0.520.0> ### [`v0.519.0`](https://github.com/lucide-icons/lucide/releases/tag/0.519.0): Version 0.519.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.518.0...0.519.0) #### What's Changed - fix(icons): changed `blocks` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3267](https://github.com/lucide-icons/lucide/pull/3267) - feat(icons): added `spool` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2926](https://github.com/lucide-icons/lucide/pull/2926) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.518.0...0.519.0> ### [`v0.518.0`](https://github.com/lucide-icons/lucide/releases/tag/0.518.0): Version 0.518.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.517.0...0.518.0) #### What's Changed - fix(icons): updated `egg` and `egg-off` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3299](https://github.com/lucide-icons/lucide/pull/3299) - fix(icons): renamed `*-help` and `*-question` icons to `*-question-mark` by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2540](https://github.com/lucide-icons/lucide/pull/2540) - chore(scripts): Refactor scripts to typescript by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3316](https://github.com/lucide-icons/lucide/pull/3316) - feat(icons): added `drone` icon by [@&#8203;shopped](https://github.com/shopped) in [#&#8203;3247](https://github.com/lucide-icons/lucide/pull/3247) #### New Contributors - [@&#8203;shopped](https://github.com/shopped) made their first contribution in [#&#8203;3247](https://github.com/lucide-icons/lucide/pull/3247) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.517.0...0.518.0> ### [`v0.517.0`](https://github.com/lucide-icons/lucide/releases/tag/0.517.0): Version 0.517.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.516.0...0.517.0) #### What's Changed - feat(icons): adds `barrel` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;1955](https://github.com/lucide-icons/lucide/pull/1955) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.516.0...0.517.0> ### [`v0.516.0`](https://github.com/lucide-icons/lucide/releases/tag/0.516.0): Version 0.516.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.515.0...0.516.0) #### What's Changed - fix(icons): changed `stamp` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3310](https://github.com/lucide-icons/lucide/pull/3310) - fix(icons): changed `pocket` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3304](https://github.com/lucide-icons/lucide/pull/3304) - fix(icons): changed `mic` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3301](https://github.com/lucide-icons/lucide/pull/3301) - fix(icons): changed `radio` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3293](https://github.com/lucide-icons/lucide/pull/3293) - fix: some typos for categories by [@&#8203;npv12](https://github.com/npv12) in [#&#8203;3319](https://github.com/lucide-icons/lucide/pull/3319) - perf(docs): optimize IconsOverview initial render - 50% faster load times by [@&#8203;epifaniofrancisco](https://github.com/epifaniofrancisco) in [#&#8203;3282](https://github.com/lucide-icons/lucide/pull/3282) - fix(docs): remove flex-direction CSS causing absolute stroke width toggle positioning issue ([#&#8203;3308](https://github.com/lucide-icons/lucide/issues/3308)) by [@&#8203;epifaniofrancisco](https://github.com/epifaniofrancisco) in [#&#8203;3317](https://github.com/lucide-icons/lucide/pull/3317) - feat(icons): added `wifi-cog` icon by [@&#8203;luisdlopera](https://github.com/luisdlopera) in [#&#8203;3133](https://github.com/lucide-icons/lucide/pull/3133) #### New Contributors - [@&#8203;npv12](https://github.com/npv12) made their first contribution in [#&#8203;3319](https://github.com/lucide-icons/lucide/pull/3319) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.515.0...0.516.0> ### [`v0.515.0`](https://github.com/lucide-icons/lucide/releases/tag/0.515.0): Version 0.515.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.514.0...0.515.0) #### What's Changed - fix(icons): changed `house-plus` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3238](https://github.com/lucide-icons/lucide/pull/3238) - fix(icons): changed `radiation` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3303](https://github.com/lucide-icons/lucide/pull/3303) - feat(icons): added `rectangle-circle` icon by [@&#8203;zefir-git](https://github.com/zefir-git) in [#&#8203;3245](https://github.com/lucide-icons/lucide/pull/3245) #### New Contributors - [@&#8203;zefir-git](https://github.com/zefir-git) made their first contribution in [#&#8203;3245](https://github.com/lucide-icons/lucide/pull/3245) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.514.0...0.515.0> ### [`v0.514.0`](https://github.com/lucide-icons/lucide/releases/tag/0.514.0): Version 0.514.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.513.0...0.514.0) #### What's Changed - fix(icons): changed `trophy` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2475](https://github.com/lucide-icons/lucide/pull/2475) - fix(pull-request-icon-preview): pinned and --forced svgson installati… by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3289](https://github.com/lucide-icons/lucide/pull/3289) - chore(metadata): added tag to `bandage` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3300](https://github.com/lucide-icons/lucide/pull/3300) - fix(icons): changed `settings-2` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2974](https://github.com/lucide-icons/lucide/pull/2974) - fix(docs): [#&#8203;2984](https://github.com/lucide-icons/lucide/issues/2984) absoluteStrokeWidth not resetting with Reset button by [@&#8203;epifaniofrancisco](https://github.com/epifaniofrancisco) in [#&#8203;3261](https://github.com/lucide-icons/lucide/pull/3261) - feat(icons): added book-alert icon by [@&#8203;domasmark](https://github.com/domasmark) in [#&#8203;3249](https://github.com/lucide-icons/lucide/pull/3249) #### New Contributors - [@&#8203;domasmark](https://github.com/domasmark) made their first contribution in [#&#8203;3249](https://github.com/lucide-icons/lucide/pull/3249) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.513.0...0.514.0> ### [`v0.513.0`](https://github.com/lucide-icons/lucide/releases/tag/0.513.0): Version 0.513.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.512.0...0.513.0) #### What's Changed - feat(icons): Add sim card icon from lab by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3275](https://github.com/lucide-icons/lucide/pull/3275) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.512.0...0.513.0> ### [`v0.512.0`](https://github.com/lucide-icons/lucide/releases/tag/0.512.0): Version 0.512.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.511.0...0.512.0) #### What's Changed - feat(icons): added `circle-pound-sterling` icon by [@&#8203;lieonlion](https://github.com/lieonlion) in [#&#8203;2822](https://github.com/lucide-icons/lucide/pull/2822) - build(deps-dev): bump vite from 6.3.2 to 6.3.4 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;3181](https://github.com/lucide-icons/lucide/pull/3181) - docs(docs): added testing website locally instructions by [@&#8203;briz123](https://github.com/briz123) in [#&#8203;3124](https://github.com/lucide-icons/lucide/pull/3124) - build(deps-dev): bump vite from 6.0.7 to 6.1.6 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;3236](https://github.com/lucide-icons/lucide/pull/3236) - fix(icons): changed `square-check-big` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3156](https://github.com/lucide-icons/lucide/pull/3156) - fix(icons): changed `list-collapse` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3081](https://github.com/lucide-icons/lucide/pull/3081) - fix(icons): changed `battery-*` icons by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3083](https://github.com/lucide-icons/lucide/pull/3083) - fix(icons): changed `paperclip` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2956](https://github.com/lucide-icons/lucide/pull/2956) - fix(icons): changed `eraser` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3076](https://github.com/lucide-icons/lucide/pull/3076) - feat(icons): Add `cloud-check` icon by [@&#8203;lscheibel](https://github.com/lscheibel) in [#&#8203;2612](https://github.com/lucide-icons/lucide/pull/2612) - feat(icon): add `id-card-lanyard` icon by [@&#8203;python2911](https://github.com/python2911) in [#&#8203;2898](https://github.com/lucide-icons/lucide/pull/2898) - feat(angular): update peer dependencies for Angular to support version 20.x by [@&#8203;JeevanMahesha](https://github.com/JeevanMahesha) in [#&#8203;3273](https://github.com/lucide-icons/lucide/pull/3273) - fix(icons): changed `file-badge` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2934](https://github.com/lucide-icons/lucide/pull/2934) - feat(icons): added `grid-3x2` icon by [@&#8203;qubrat](https://github.com/qubrat) in [#&#8203;3216](https://github.com/lucide-icons/lucide/pull/3216) #### New Contributors - [@&#8203;lieonlion](https://github.com/lieonlion) made their first contribution in [#&#8203;2822](https://github.com/lucide-icons/lucide/pull/2822) - [@&#8203;python2911](https://github.com/python2911) made their first contribution in [#&#8203;2898](https://github.com/lucide-icons/lucide/pull/2898) - [@&#8203;JeevanMahesha](https://github.com/JeevanMahesha) made their first contribution in [#&#8203;3273](https://github.com/lucide-icons/lucide/pull/3273) - [@&#8203;qubrat](https://github.com/qubrat) made their first contribution in [#&#8203;3216](https://github.com/lucide-icons/lucide/pull/3216) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.511.0...0.512.0> ### [`v0.511.0`](https://github.com/lucide-icons/lucide/releases/tag/0.511.0): Version 0.511.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.510.0...0.511.0) #### What's Changed - fix(icons): Optimise a number of icons using `<line>` and `<polyline>` by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3168](https://github.com/lucide-icons/lucide/pull/3168) - fix(icons): changed `clock-6` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3209](https://github.com/lucide-icons/lucide/pull/3209) - fix(icons): changed `axis-3d` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3199](https://github.com/lucide-icons/lucide/pull/3199) - fix(icons): changed `chevrons-left-right-ellipsis` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3189](https://github.com/lucide-icons/lucide/pull/3189) - fix(icons): changed `square-code` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3173](https://github.com/lucide-icons/lucide/pull/3173) - fix(icons): changed `satellite` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3180](https://github.com/lucide-icons/lucide/pull/3180) - fix(lucide-react-native): support react 19 ([#&#8203;2951](https://github.com/lucide-icons/lucide/issues/2951)) by [@&#8203;jvliwanag](https://github.com/jvliwanag) in [#&#8203;3126](https://github.com/lucide-icons/lucide/pull/3126) - fix(icons): changed `factory` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2970](https://github.com/lucide-icons/lucide/pull/2970) - fix(icons): changed `university` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2965](https://github.com/lucide-icons/lucide/pull/2965) - fix(icons): changed `warehouse` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2966](https://github.com/lucide-icons/lucide/pull/2966) - fix(icons): changed `landmark` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2967](https://github.com/lucide-icons/lucide/pull/2967) - chore(cspell): remove duplicate 'pilcrow' from `custom-words.txt` by [@&#8203;Abdalrhman-Almarakeby](https://github.com/Abdalrhman-Almarakeby) in [#&#8203;3193](https://github.com/lucide-icons/lucide/pull/3193) - feat(icons): added `square-dashed-top-solid` icon by [@&#8203;juanpablofernandez](https://github.com/juanpablofernandez) in [#&#8203;3204](https://github.com/lucide-icons/lucide/pull/3204) #### New Contributors - [@&#8203;jvliwanag](https://github.com/jvliwanag) made their first contribution in [#&#8203;3126](https://github.com/lucide-icons/lucide/pull/3126) - [@&#8203;juanpablofernandez](https://github.com/juanpablofernandez) made their first contribution in [#&#8203;3204](https://github.com/lucide-icons/lucide/pull/3204) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.510.0...0.511.0> ### [`v0.510.0`](https://github.com/lucide-icons/lucide/releases/tag/0.510.0): Version 0.510.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.509.0...0.510.0) #### What's Changed - fix(icons): changed `brackets` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3172](https://github.com/lucide-icons/lucide/pull/3172) - feat(icons): added `check-line` icon by [@&#8203;oosawy](https://github.com/oosawy) in [#&#8203;2890](https://github.com/lucide-icons/lucide/pull/2890) #### New Contributors - [@&#8203;oosawy](https://github.com/oosawy) made their first contribution in [#&#8203;2890](https://github.com/lucide-icons/lucide/pull/2890) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.509.0...0.510.0> ### [`v0.509.0`](https://github.com/lucide-icons/lucide/releases/tag/0.509.0): Version 0.509.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.508.0...0.509.0) #### What's Changed - fix(icons): changed `axe` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3201](https://github.com/lucide-icons/lucide/pull/3201) - revert(site): resets Absolute Stroke Width by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3197](https://github.com/lucide-icons/lucide/pull/3197) - feat(icons): added `gpu` icon by [@&#8203;xandykati98](https://github.com/xandykati98) in [#&#8203;2955](https://github.com/lucide-icons/lucide/pull/2955) #### New Contributors - [@&#8203;xandykati98](https://github.com/xandykati98) made their first contribution in [#&#8203;2955](https://github.com/lucide-icons/lucide/pull/2955) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.508.0...0.509.0> ### [`v0.508.0`](https://github.com/lucide-icons/lucide/releases/tag/0.508.0): Version 0.508.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.507.0...0.508.0) #### What's Changed - fix(icons): Optimised `phone-` icons by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3169](https://github.com/lucide-icons/lucide/pull/3169) - docs(packages): Update names in docs by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3184](https://github.com/lucide-icons/lucide/pull/3184) - fix(icons): arcified `laptop` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3190](https://github.com/lucide-icons/lucide/pull/3190) - chore(metadata): add `lens` tag to icons with magnifying glass by [@&#8203;Abdalrhman-Almarakeby](https://github.com/Abdalrhman-Almarakeby) in [#&#8203;3192](https://github.com/lucide-icons/lucide/pull/3192) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.507.0...0.508.0> ### [`v0.507.0`](https://github.com/lucide-icons/lucide/releases/tag/0.507.0): Version 0.507.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.506.0...0.507.0) #### What's Changed - fix(metadata): added tags to `square-pen` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3155](https://github.com/lucide-icons/lucide/pull/3155) - fix(icons): changed `search` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3140](https://github.com/lucide-icons/lucide/pull/3140) - fix(dev): resets Absolute Stroke Width by [@&#8203;briz123](https://github.com/briz123) in [#&#8203;3005](https://github.com/lucide-icons/lucide/pull/3005) - fix(icons): changed `guitar` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3115](https://github.com/lucide-icons/lucide/pull/3115) - fix(Icons): Adding missing categories to 4 Icons by [@&#8203;ajokt123](https://github.com/ajokt123) in [#&#8203;3110](https://github.com/lucide-icons/lucide/pull/3110) - fix(ci): reduces workflow triggers by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3150](https://github.com/lucide-icons/lucide/pull/3150) - fix(icons): changed `air-vent` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3117](https://github.com/lucide-icons/lucide/pull/3117) - fix(icons): rotate `dumbbell` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3107](https://github.com/lucide-icons/lucide/pull/3107) - fix(icons): changed `touchpad-off` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3118](https://github.com/lucide-icons/lucide/pull/3118) - fix(icons): changed `bell-electric` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3139](https://github.com/lucide-icons/lucide/pull/3139) - fix(icons): changed `menu` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3142](https://github.com/lucide-icons/lucide/pull/3142) - fix(icons): changed `mail` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3144](https://github.com/lucide-icons/lucide/pull/3144) - chore(pr-template): Adjust PR template by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3183](https://github.com/lucide-icons/lucide/pull/3183) - feat(icons): added `soap-dispenser-droplet` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3088](https://github.com/lucide-icons/lucide/pull/3088) - feat(icons): added `panda` icon by [@&#8203;chessurisme](https://github.com/chessurisme) in [#&#8203;2094](https://github.com/lucide-icons/lucide/pull/2094) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.506.0...0.507.0> ### [`v0.506.0`](https://github.com/lucide-icons/lucide/releases/tag/0.506.0): Version 0.506.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.505.0...0.506.0) #### What's Changed - perf(react): use implicit return in react package by [@&#8203;VIKTORVAV99](https://github.com/VIKTORVAV99) in [#&#8203;2325](https://github.com/lucide-icons/lucide/pull/2325) - fix(icons): changed `users` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3143](https://github.com/lucide-icons/lucide/pull/3143) - fix(icons): changed `locate-off` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3137](https://github.com/lucide-icons/lucide/pull/3137) - fix(icons): changed `expand` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2831](https://github.com/lucide-icons/lucide/pull/2831) - feat(icons): Added clock plus icon. by [@&#8203;gubser](https://github.com/gubser) in [#&#8203;2996](https://github.com/lucide-icons/lucide/pull/2996) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.505.0...0.506.0> ### [`v0.505.0`](https://github.com/lucide-icons/lucide/releases/tag/0.505.0): Version 0.505.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.504.0...0.505.0) #### What's Changed - fix(icons): changed `package-2` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3174](https://github.com/lucide-icons/lucide/pull/3174) - docs(icon-design-guide): point people to lucide studio instead of svgo by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3152](https://github.com/lucide-icons/lucide/pull/3152) - fix(lucide-svelte): Resolve Svelte 5 deprecation of svelte:component by [@&#8203;shamaamahh](https://github.com/shamaamahh) in [#&#8203;3112](https://github.com/lucide-icons/lucide/pull/3112) - feat(icons): added `brush-cleaning` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;2395](https://github.com/lucide-icons/lucide/pull/2395) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.504.0...0.505.0> ### [`v0.504.0`](https://github.com/lucide-icons/lucide/releases/tag/0.504.0): Version 0.504.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.503.0...0.504.0) #### What's Changed - feat(icons): add door closed locked / unlocked icons by [@&#8203;lukedukeus](https://github.com/lukedukeus) in [#&#8203;3060](https://github.com/lucide-icons/lucide/pull/3060) - build(dev-deps): Bump dependencies by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;3096](https://github.com/lucide-icons/lucide/pull/3096) - fix(icons): redesigned `brush` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3011](https://github.com/lucide-icons/lucide/pull/3011) - fix(site): remove studio link from navbar by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3166](https://github.com/lucide-icons/lucide/pull/3166) - feat(icons): added `hamburger` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3165](https://github.com/lucide-icons/lucide/pull/3165) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.503.0...0.504.0> ### [`v0.503.0`](https://github.com/lucide-icons/lucide/releases/tag/0.503.0): Version 0.503.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.502.0...0.503.0) #### What's Changed - fix(icons): changed `file-badge-2` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2933](https://github.com/lucide-icons/lucide/pull/2933) - feat(icons): added `wifi-pen` icon by [@&#8203;luisdlopera](https://github.com/luisdlopera) in [#&#8203;2576](https://github.com/lucide-icons/lucide/pull/2576) #### New Contributors - [@&#8203;luisdlopera](https://github.com/luisdlopera) made their first contribution in [#&#8203;2576](https://github.com/lucide-icons/lucide/pull/2576) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.502.0...0.503.0> ### [`v0.502.0`](https://github.com/lucide-icons/lucide/releases/tag/0.502.0): Version 0.502.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.501.0...0.502.0) #### What's Changed - fix(docs): Added link for jguddas next to lucide studio by [@&#8203;briz123](https://github.com/briz123) in [#&#8203;3063](https://github.com/lucide-icons/lucide/pull/3063) - build(deps-dev): bump vite from 5.4.15 to 5.4.17 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;2993](https://github.com/lucide-icons/lucide/pull/2993) - fix(build): fix shredder formatting and duplicate contributors error by [@&#8203;jpjacobpadilla](https://github.com/jpjacobpadilla) in [#&#8203;3072](https://github.com/lucide-icons/lucide/pull/3072) - fix(icons): rebase non-binary on square-asterisk by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;3071](https://github.com/lucide-icons/lucide/pull/3071) - docs(CONTRIBUTING): Grammar fix for CONTRIBUTING by [@&#8203;ajokt123](https://github.com/ajokt123) in [#&#8203;3090](https://github.com/lucide-icons/lucide/pull/3090) - fix(icons): changed `calendar-plus` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3085](https://github.com/lucide-icons/lucide/pull/3085) - fix(icons): changed `book-key` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3062](https://github.com/lucide-icons/lucide/pull/3062) - fix(icons): changed `clipboard-paste` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3075](https://github.com/lucide-icons/lucide/pull/3075) - fix(icons): changed `orbit` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3074](https://github.com/lucide-icons/lucide/pull/3074) - fix(icons): changed `baby` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3073](https://github.com/lucide-icons/lucide/pull/3073) - docs(pacakges): Added periods to package summary by [@&#8203;briz123](https://github.com/briz123) in [#&#8203;3065](https://github.com/lucide-icons/lucide/pull/3065) - fix(docs): PR Conventions by [@&#8203;briz123](https://github.com/briz123) in [#&#8203;3066](https://github.com/lucide-icons/lucide/pull/3066) - feat(icons): added `ruler-dimension-line` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;2535](https://github.com/lucide-icons/lucide/pull/2535) #### New Contributors - [@&#8203;jpjacobpadilla](https://github.com/jpjacobpadilla) made their first contribution in [#&#8203;3072](https://github.com/lucide-icons/lucide/pull/3072) - [@&#8203;ajokt123](https://github.com/ajokt123) made their first contribution in [#&#8203;3090](https://github.com/lucide-icons/lucide/pull/3090) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.501.0...0.502.0> </details> <details> <summary>KingSora/OverlayScrollbars (overlayscrollbars)</summary> ### [`v2.13.0`](https://github.com/KingSora/OverlayScrollbars/blob/HEAD/packages/overlayscrollbars/CHANGELOG.md#2130) [Compare Source](https://github.com/KingSora/OverlayScrollbars/compare/v2.12.0...v2.13.0) ##### Features - Add fine grained debounce options via `options.debounce`. The option is now an object which results in more freedom / fine grained debounce options. A debounce can now be specified for `mutations`, `resizes`, `events` and `environmental changes` independently. The old `options.debounce` option syntax is still supported and works but its deprecated in favor of the new syntax. [#&#8203;744](https://github.com/KingSora/OverlayScrollbars/issues/744) [#&#8203;729](https://github.com/KingSora/OverlayScrollbars/issues/729) ### [`v2.12.0`](https://github.com/KingSora/OverlayScrollbars/blob/HEAD/packages/overlayscrollbars/CHANGELOG.md#2120) [Compare Source](https://github.com/KingSora/OverlayScrollbars/compare/v2.11.5...v2.12.0) ##### Improvements - Improve accessibility when the native scrollbars can't be hidden. This can happen when the browser isn't supporting scrollbar styling & the `ScrollbarsHidingPlugin` is not being used. In this case the custom scrollbars aren't rendered over the native scrollbars anymore. [SimpleBar #&#8203;726](https://github.com/Grsmto/simplebar/issues/726) ### [`v2.11.5`](https://github.com/KingSora/OverlayScrollbars/blob/HEAD/packages/overlayscrollbars/CHANGELOG.md#2115) [Compare Source](https://github.com/KingSora/OverlayScrollbars/compare/v2.11.4...v2.11.5) ##### Bug Fixes - Sometimes when resizing the window, scrollbars applied to the body element werent updated accordingly. ### [`v2.11.4`](https://github.com/KingSora/OverlayScrollbars/blob/HEAD/packages/overlayscrollbars/CHANGELOG.md#2114) [Compare Source](https://github.com/KingSora/OverlayScrollbars/compare/v2.11.3...v2.11.4) ##### Bug Fixes - Remove scrollbars `click` event when its no longer required. [#&#8203;720](https://github.com/KingSora/OverlayScrollbars/issues/720) ### [`v2.11.3`](https://github.com/KingSora/OverlayScrollbars/blob/HEAD/packages/overlayscrollbars/CHANGELOG.md#2113) [Compare Source](https://github.com/KingSora/OverlayScrollbars/compare/v2.11.2...v2.11.3) ##### Improvements - Introduce and document the new `CSS Custom Properties`: `--os-viewport-overflow-x` and `--os-viewport-overflow-y` which can be used to better control the `overflow` style of the `viewport` element. - Support for the `auto` value for overwrites of the `overflow` style of the `viewport`. </details> <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.7.4`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#374) [Compare Source](https://github.com/prettier/prettier/compare/3.7.3...3.7.4) [diff](https://github.com/prettier/prettier/compare/3.7.3...3.7.4) ##### LWC: Avoid quote around interpolations ([#&#8203;18383](https://github.com/prettier/prettier/pull/18383) by [@&#8203;kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```html <!-- Input --> <div foo={bar}> </div> <!-- Prettier 3.7.3 (--embedded-language-formatting off) --> <div foo="{bar}"></div> <!-- Prettier 3.7.4 (--embedded-language-formatting off) --> <div foo={bar}></div> ``` ##### TypeScript: Fix comment inside union type gets duplicated ([#&#8203;18393](https://github.com/prettier/prettier/pull/18393) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type Foo = (/** comment */ a | b) | c; // Prettier 3.7.3 type Foo = /** comment */ (/** comment */ a | b) | c; // Prettier 3.7.4 type Foo = /** comment */ (a | b) | c; ``` ##### TypeScript: Fix unstable comment print in union type comments ([#&#8203;18395](https://github.com/prettier/prettier/pull/18395) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type X = (A | B) & ( // comment A | B ); // Prettier 3.7.3 (first format) type X = (A | B) & (// comment A | B); // Prettier 3.7.3 (second format) type X = ( | A | B // comment ) & (A | B); // Prettier 3.7.4 type X = (A | B) & // comment (A | B); ``` ### [`v3.7.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#373) [Compare Source](https://github.com/prettier/prettier/compare/3.7.2...3.7.3) [diff](https://github.com/prettier/prettier/compare/3.7.2...3.7.3) ##### API: Fix `prettier.getFileInfo()` change that breaks VSCode extension ([#&#8203;18375](https://github.com/prettier/prettier/pull/18375) by [@&#8203;fisker](https://github.com/fisker)) An internal refactor accidentally broke the VSCode extension plugin loading. ### [`v3.7.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#372) [Compare Source](https://github.com/prettier/prettier/compare/3.7.1...3.7.2) [diff](https://github.com/prettier/prettier/compare/3.7.1...3.7.2) ##### JavaScript: Fix string print when switching quotes ([#&#8203;18351](https://github.com/prettier/prettier/pull/18351) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input console.log("A descriptor\\'s .kind must be \"method\" or \"field\".") // Prettier 3.7.1 console.log('A descriptor\\'s .kind must be "method" or "field".'); // Prettier 3.7.2 console.log('A descriptor\\\'s .kind must be "method" or "field".'); ``` ##### JavaScript: Preserve quote for embedded HTML attribute values ([#&#8203;18352](https://github.com/prettier/prettier/pull/18352) by [@&#8203;kovsu](https://github.com/kovsu)) <!-- prettier-ignore --> ```tsx // Input const html = /* HTML */ ` <div class="${styles.banner}"></div> `; // Prettier 3.7.1 const html = /* HTML */ ` <div class=${styles.banner}></div> `; // Prettier 3.7.2 const html = /* HTML */ ` <div class="${styles.banner}"></div> `; ``` ##### TypeScript: Fix comment in empty type literal ([#&#8203;18364](https://github.com/prettier/prettier/pull/18364) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input export type XXX = { // tbd }; // Prettier 3.7.1 export type XXX = { // tbd }; // Prettier 3.7.2 export type XXX = { // tbd }; ``` ### [`v3.7.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#371) [Compare Source](https://github.com/prettier/prettier/compare/3.7.0...3.7.1) [diff](https://github.com/prettier/prettier/compare/3.7.0...3.7.1) ##### API: Fix performance regression in doc printer ([#&#8203;18342](https://github.com/prettier/prettier/pull/18342) by [@&#8203;fisker](https://github.com/fisker)) Prettier 3.7.0 can be very slow when formatting big files, the regression has been fixed. ### [`v3.7.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#370) [Compare Source](https://github.com/prettier/prettier/compare/3.6.2...3.7.0) [diff](https://github.com/prettier/prettier/compare/3.6.2...3.7.0) 🔗 [Release Notes](https://prettier.io/blog/2025/11/27/3.7.0) ### [`v3.6.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362) [Compare Source](https://github.com/prettier/prettier/compare/3.6.1...3.6.2) [diff](https://github.com/prettier/prettier/compare/3.6.1...3.6.2) ##### Markdown: Add missing blank line around code block ([#&#8203;17675](https://github.com/prettier/prettier/pull/17675) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ````md <!-- Input --> 1. Some text, and code block below, with newline after code block ```yaml --- foo: bar ``` 1. Another 2. List <!-- Prettier 3.6.1 --> 1. Some text, and code block below, with newline after code block ```yaml --- foo: bar ``` 1. Another 2. List <!-- Prettier 3.6.2 --> 1. Some text, and code block below, with newline after code block ```yaml --- foo: bar ``` 1. Another 2. List ```` ### [`v3.6.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361) [Compare Source](https://github.com/prettier/prettier/compare/3.6.0...3.6.1) [diff](https://github.com/prettier/prettier/compare/3.6.0...3.6.1) ##### TypeScript: Allow const without initializer ([#&#8203;17650](https://github.com/prettier/prettier/pull/17650), [#&#8203;17654](https://github.com/prettier/prettier/pull/17654) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input export const version: string; // Prettier 3.6.0 (--parser=babel-ts) SyntaxError: Unexpected token (1:21) > 1 | export const version: string; | ^ // Prettier 3.6.0 (--parser=oxc-ts) SyntaxError: Missing initializer in const declaration (1:14) > 1 | export const version: string; | ^^^^^^^^^^^^^^^ // Prettier 3.6.1 export const version: string; ``` ##### Miscellaneous: Avoid closing files multiple times ([#&#8203;17665](https://github.com/prettier/prettier/pull/17665) by [@&#8203;43081j](https://github.com/43081j)) When reading a file to infer the interpreter from a shebang, we use the `n-readlines` library to read the first line in order to get the shebang. This library closes files when it reaches EOF, and we later try close the same files again. We now close files only if `n-readlines` did not already close them. ### [`v3.6.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360) [Compare Source](https://github.com/prettier/prettier/compare/3.5.3...3.6.0) [diff](https://github.com/prettier/prettier/compare/3.5.3...3.6.0) 🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0) </details> <details> <summary>sveltejs/prettier-plugin-svelte (prettier-plugin-svelte)</summary> ### [`v3.4.0`](https://github.com/sveltejs/prettier-plugin-svelte/compare/c63b024cec9a94a87f90c07397c85e431bb6afe3...7d68c92243a654ca0a35606dede44694941ad805) [Compare Source](https://github.com/sveltejs/prettier-plugin-svelte/compare/c63b024cec9a94a87f90c07397c85e431bb6afe3...7d68c92243a654ca0a35606dede44694941ad805) </details> <details> <summary>tailwindlabs/prettier-plugin-tailwindcss (prettier-plugin-tailwindcss)</summary> ### [`v0.7.2`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#072---2025-12-01) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.7.1...v0.7.2) ##### Fixed - Load compatible plugins sequentially to work around race conditions in Node.js ([#&#8203;412](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/412)) - Fix compatibility with `prettier-plugin-svelte` when using Prettier v3.7+ ([#&#8203;418](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/418)) ### [`v0.7.1`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#071---2025-10-17) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.7.0...v0.7.1) ##### Fixed - Match against correct name of dynamic attributes when using regexes ([#&#8203;410](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/410)) ### [`v0.7.0`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#070---2025-10-14) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.14...v0.7.0) ##### Added - Format quotes in `@source`, `@plugin`, and `@config` ([#&#8203;387](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/387)) - Sort in function calls in Twig ([#&#8203;358](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/358)) - Sort in callable template literals ([#&#8203;367](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/367)) - Sort in function calls mixed with property accesses ([#&#8203;367](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/367)) - Support regular expression patterns for attributes ([#&#8203;405](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/405)) - Support regular expression patterns for function names ([#&#8203;405](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/405)) ##### Changed - Improved monorepo support by loading Tailwind CSS relative to the input file instead of prettier config file ([#&#8203;386](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/386)) - Improved monorepo support by loading v3 configs relative to the input file instead of prettier config file ([#&#8203;386](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/386)) - Fallback to Tailwind CSS v4 instead of v3 by default ([#&#8203;390](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/390)) - Don't augment global Prettier `ParserOptions` and `RequiredOptions` types ([#&#8203;354](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/354)) - Drop support for `prettier-plugin-import-sort` ([#&#8203;385](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/385)) ##### Fixed - Handle quote escapes in LESS when sorting `@apply` ([#&#8203;392](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/392)) - Fix whitespace removal inside nested concat and template expressions ([#&#8203;396](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/396)) ### [`v0.6.14`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0614---2025-07-09) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.13...v0.6.14) - Add support for OXC + Hermes Prettier plugins ([#&#8203;376](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/376), [#&#8203;380](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/380)) - Sort template literals in Angular expressions ([#&#8203;377](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/377)) - Don't repeatedly add backslashes to escape sequences when formatting ([#&#8203;381](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/381)) ### [`v0.6.13`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0613---2025-06-19) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.12...v0.6.13) - Prevent Svelte files from breaking when there are duplicate classes ([#&#8203;359](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/359)) - Ensure `prettier-plugin-multiline-arrays` and `prettier-plugin-jsdoc` work when used together with this plugin ([#&#8203;372](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/372)) ### [`v0.6.12`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0612---2025-05-30) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.11...v0.6.12) - Add internal (unsupported) option to load Tailwind CSS using a different package name ([#&#8203;366](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/366)) </details> <details> <summary>sveltejs/svelte (svelte)</summary> ### [`v5.45.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5456) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.45.5...svelte@5.45.6) ##### Patch Changes - fix: don't issue a11y warning for `<video>` without captions if it has no `src` ([#&#8203;17311](https://github.com/sveltejs/svelte/pull/17311)) - fix: add `srcObject` to permitted `<audio>`/`<video>` attributes ([#&#8203;17310](https://github.com/sveltejs/svelte/pull/17310)) ### [`v5.45.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5455) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.45.4...svelte@5.45.5) ##### Patch Changes - fix: correctly reconcile each blocks after outroing branches are resumed ([#&#8203;17258](https://github.com/sveltejs/svelte/pull/17258)) - fix: destroy each items after siblings are resumed ([#&#8203;17258](https://github.com/sveltejs/svelte/pull/17258)) ### [`v5.45.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5454) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.45.3...svelte@5.45.4) ##### Patch Changes - chore: move DOM-related effect properties to `effect.nodes` ([#&#8203;17293](https://github.com/sveltejs/svelte/pull/17293)) - fix: allow `$props.id()` to occur after an `await` ([#&#8203;17285](https://github.com/sveltejs/svelte/pull/17285)) - fix: keep reactions up to date even when read outside of effect ([#&#8203;17295](https://github.com/sveltejs/svelte/pull/17295)) ### [`v5.45.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5453) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.45.2...svelte@5.45.3) ##### Patch Changes - add props to state\_referenced\_locally ([#&#8203;17266](https://github.com/sveltejs/svelte/pull/17266)) - fix: preserve node locations for better sourcemaps ([#&#8203;17269](https://github.com/sveltejs/svelte/pull/17269)) - fix: handle cross-realm Promises in `hydratable` ([#&#8203;17284](https://github.com/sveltejs/svelte/pull/17284)) ### [`v5.45.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5452) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.45.1...svelte@5.45.2) ##### Patch Changes - fix: array destructuring after await ([#&#8203;17254](https://github.com/sveltejs/svelte/pull/17254)) - fix: throw on invalid `{@&#8203;tag}`s ([#&#8203;17256](https://github.com/sveltejs/svelte/pull/17256)) ### [`v5.45.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5451) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.45.0...svelte@5.45.1) ##### Patch Changes - fix: link offscreen items and last effect in each block correctly ([#&#8203;17240](https://github.com/sveltejs/svelte/pull/17240)) ### [`v5.45.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5450) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.44.1...svelte@5.45.0) ##### Minor Changes - feat: add `print(...)` function ([#&#8203;16188](https://github.com/sveltejs/svelte/pull/16188)) ### [`v5.44.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5441) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.44.0...svelte@5.44.1) ##### Patch Changes - fix: await blockers before initialising const ([#&#8203;17226](https://github.com/sveltejs/svelte/pull/17226)) - fix: link offscreen items and last effect in each block correctly ([#&#8203;17244](https://github.com/sveltejs/svelte/pull/17244)) - fix: generate correct code for simple destructurings ([#&#8203;17237](https://github.com/sveltejs/svelte/pull/17237)) - fix: ensure each block animations don't mess with transitions ([#&#8203;17238](https://github.com/sveltejs/svelte/pull/17238)) ### [`v5.44.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5440) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.15...svelte@5.44.0) ##### Minor Changes - feat: `hydratable` API ([#&#8203;17154](https://github.com/sveltejs/svelte/pull/17154)) ### [`v5.43.15`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54315) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.14...svelte@5.43.15) ##### Patch Changes - fix: don't execute attachments and attribute effects eagerly ([#&#8203;17208](https://github.com/sveltejs/svelte/pull/17208)) - chore: lift "flushSync cannot be called in effects" restriction ([#&#8203;17139](https://github.com/sveltejs/svelte/pull/17139)) - fix: store forked derived values ([#&#8203;17212](https://github.com/sveltejs/svelte/pull/17212)) ### [`v5.43.14`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54314) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.13...svelte@5.43.14) ##### Patch Changes - fix: correctly migrate named self closing slots ([#&#8203;17199](https://github.com/sveltejs/svelte/pull/17199)) - fix: error at compile time instead of at runtime on await expressions inside bindings/transitions/animations/attachments ([#&#8203;17198](https://github.com/sveltejs/svelte/pull/17198)) - fix: take async blockers into account for bindings/transitions/animations/attachments ([#&#8203;17198](https://github.com/sveltejs/svelte/pull/17198)) ### [`v5.43.13`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54313) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.12...svelte@5.43.13) ##### Patch Changes - fix: don't set derived values during time traveling ([#&#8203;17200](https://github.com/sveltejs/svelte/pull/17200)) ### [`v5.43.12`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54312) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.11...svelte@5.43.12) ##### Patch Changes - fix: maintain correct linked list of effects when updating each blocks ([#&#8203;17191](https://github.com/sveltejs/svelte/pull/17191)) ### [`v5.43.11`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54311) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.10...svelte@5.43.11) ##### Patch Changes - perf: don't use tracing overeager during dev ([#&#8203;17183](https://github.com/sveltejs/svelte/pull/17183)) - fix: don't cancel transition of already outroing elements ([#&#8203;17186](https://github.com/sveltejs/svelte/pull/17186)) ### [`v5.43.10`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54310) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.9...svelte@5.43.10) ##### Patch Changes - fix: avoid other batches running with queued root effects of main batch ([#&#8203;17145](https://github.com/sveltejs/svelte/pull/17145)) ### [`v5.43.9`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5439) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.8...svelte@5.43.9) ##### Patch Changes - fix: correctly handle functions when determining async blockers ([#&#8203;17137](https://github.com/sveltejs/svelte/pull/17137)) - fix: keep deriveds reactive after their original parent effect was destroyed ([#&#8203;17171](https://github.com/sveltejs/svelte/pull/17171)) - fix: ensure eager effects don't break reactions chain ([#&#8203;17138](https://github.com/sveltejs/svelte/pull/17138)) - fix: ensure async `@const` in boundary hydrates correctly ([#&#8203;17165](https://github.com/sveltejs/svelte/pull/17165)) - fix: take blockers into account when creating `#await` blocks ([#&#8203;17137](https://github.com/sveltejs/svelte/pull/17137)) - fix: parallelize async `@const`s in the template ([#&#8203;17165](https://github.com/sveltejs/svelte/pull/17165)) ### [`v5.43.8`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5438) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.7...svelte@5.43.8) ##### Patch Changes - fix: each block losing reactivity when items removed while promise pending ([#&#8203;17150](https://github.com/sveltejs/svelte/pull/17150)) ### [`v5.43.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5437) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.6...svelte@5.43.7) ##### Patch Changes - fix: properly defer document title until async work is complete ([#&#8203;17158](https://github.com/sveltejs/svelte/pull/17158)) - fix: ensure deferred effects can be rescheduled later on ([#&#8203;17147](https://github.com/sveltejs/svelte/pull/17147)) - fix: take blockers of components into account ([#&#8203;17153](https://github.com/sveltejs/svelte/pull/17153)) ### [`v5.43.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5436) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.5...svelte@5.43.6) ##### Patch Changes - fix: don't deactivate other batches ([#&#8203;17132](https://github.com/sveltejs/svelte/pull/17132)) ### [`v5.43.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5435) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.4...svelte@5.43.5) ##### Patch Changes - fix: ensure async static props/attributes are awaited ([#&#8203;17120](https://github.com/sveltejs/svelte/pull/17120)) - fix: wait on dependencies of async bindings ([#&#8203;17120](https://github.com/sveltejs/svelte/pull/17120)) - fix: await dependencies of style directives ([#&#8203;17120](https://github.com/sveltejs/svelte/pull/17120)) ### [`v5.43.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5434) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.3...svelte@5.43.4) ##### Patch Changes - chore: simplify connection/disconnection logic ([#&#8203;17105](https://github.com/sveltejs/svelte/pull/17105)) - fix: reconnect deriveds to effect tree when time-travelling ([#&#8203;17105](https://github.com/sveltejs/svelte/pull/17105)) ### [`v5.43.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5433) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.2...svelte@5.43.3) ##### Patch Changes - fix: ensure fork always accesses correct values ([#&#8203;17098](https://github.com/sveltejs/svelte/pull/17098)) - fix: change title only after any pending work has completed ([#&#8203;17061](https://github.com/sveltejs/svelte/pull/17061)) - fix: preserve symbols when creating derived rest properties ([#&#8203;17096](https://github.com/sveltejs/svelte/pull/17096)) ### [`v5.43.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5432) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.1...svelte@5.43.2) ##### Patch Changes - fix: treat each blocks with async dependencies as uncontrolled ([#&#8203;17077](https://github.com/sveltejs/svelte/pull/17077)) ### [`v5.43.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#54315) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.43.0...svelte@5.43.1) ##### Patch Changes - fix: don't execute attachments and attribute effects eagerly ([#&#8203;17208](https://github.com/sveltejs/svelte/pull/17208)) - chore: lift "flushSync cannot be called in effects" restriction ([#&#8203;17139](https://github.com/sveltejs/svelte/pull/17139)) - fix: store forked derived values ([#&#8203;17212](https://github.com/sveltejs/svelte/pull/17212)) ### [`v5.43.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5430) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.42.3...svelte@5.43.0) ##### Minor Changes - feat: out-of-order rendering ([#&#8203;17038](https://github.com/sveltejs/svelte/pull/17038)) ##### Patch Changes - fix: settle batch after DOM updates ([#&#8203;17054](https://github.com/sveltejs/svelte/pull/17054)) ### [`v5.42.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5423) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.42.2...svelte@5.42.3) ##### Patch Changes - fix: handle `<svelte:head>` rendered asynchronously ([#&#8203;17052](https://github.com/sveltejs/svelte/pull/17052)) - fix: don't restore batch in `#await` ([#&#8203;17051](https://github.com/sveltejs/svelte/pull/17051)) ### [`v5.42.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5422) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.42.1...svelte@5.42.2) ##### Patch Changes - fix: better error message for global variable assignments ([#&#8203;17036](https://github.com/sveltejs/svelte/pull/17036)) - chore: tweak memoizer logic ([#&#8203;17042](https://github.com/sveltejs/svelte/pull/17042)) ### [`v5.42.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5421) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.42.0...svelte@5.42.1) ##### Patch Changes - fix: ignore fork `discard()` after `commit()` ([#&#8203;17034](https://github.com/sveltejs/svelte/pull/17034)) ### [`v5.42.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5420) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.41.4...svelte@5.42.0) ##### Minor Changes - feat: experimental `fork` API ([#&#8203;17004](https://github.com/sveltejs/svelte/pull/17004)) ##### Patch Changes - fix: always allow `setContext` before first await in component ([#&#8203;17031](https://github.com/sveltejs/svelte/pull/17031)) - fix: less confusing names for inspect errors ([#&#8203;17026](https://github.com/sveltejs/svelte/pull/17026)) ### [`v5.41.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5414) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.41.3...svelte@5.41.4) ##### Patch Changes - fix: take into account static blocks when determining transition locality ([#&#8203;17018](https://github.com/sveltejs/svelte/pull/17018)) - fix: coordinate mount of snippets with await expressions ([#&#8203;17021](https://github.com/sveltejs/svelte/pull/17021)) - fix: better optimization of await expressions ([#&#8203;17025](https://github.com/sveltejs/svelte/pull/17025)) - fix: flush pending changes after rendering `failed` snippet ([#&#8203;16995](https://github.com/sveltejs/svelte/pull/16995)) ### [`v5.41.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5413) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.41.2...svelte@5.41.3) ##### Patch Changes - chore: exclude vite optimized deps from stack traces ([#&#8203;17008](https://github.com/sveltejs/svelte/pull/17008)) - perf: skip repeatedly traversing the same derived ([#&#8203;17016](https://github.com/sveltejs/svelte/pull/17016)) ### [`v5.41.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5412) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.41.1...svelte@5.41.2) ##### Patch Changes - fix: keep batches alive until all async work is complete ([#&#8203;16971](https://github.com/sveltejs/svelte/pull/16971)) - fix: don't preserve reactivity context across function boundaries ([#&#8203;17002](https://github.com/sveltejs/svelte/pull/17002)) - fix: make `$inspect` logs come from the callsite ([#&#8203;17001](https://github.com/sveltejs/svelte/pull/17001)) - fix: ensure guards (eg. if, each, key) run before their contents ([#&#8203;16930](https://github.com/sveltejs/svelte/pull/16930)) ### [`v5.41.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5411) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.41.0...svelte@5.41.1) ##### Patch Changes - fix: place `let:` declarations before `{@&#8203;const}` declarations ([#&#8203;16985](https://github.com/sveltejs/svelte/pull/16985)) - fix: improve `each_key_without_as` error ([#&#8203;16983](https://github.com/sveltejs/svelte/pull/16983)) - chore: centralise branch management ([#&#8203;16977](https://github.com/sveltejs/svelte/pull/16977)) ### [`v5.41.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5410) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.40.2...svelte@5.41.0) ##### Minor Changes - feat: add `$state.eager(value)` rune ([#&#8203;16849](https://github.com/sveltejs/svelte/pull/16849)) ##### Patch Changes - fix: preserve `<select>` state while focused ([#&#8203;16958](https://github.com/sveltejs/svelte/pull/16958)) - chore: run boundary async effects in the context of the current batch ([#&#8203;16968](https://github.com/sveltejs/svelte/pull/16968)) - fix: error if `each` block has `key` but no `as` clause ([#&#8203;16966](https://github.com/sveltejs/svelte/pull/16966)) ### [`v5.40.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5402) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.40.1...svelte@5.40.2) ##### Patch Changes - fix: add hydration markers in `pending` branch of SSR boundary ([#&#8203;16965](https://github.com/sveltejs/svelte/pull/16965)) ### [`v5.40.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5401) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.40.0...svelte@5.40.1) ##### Patch Changes - chore: Remove sync-in-async warning for server rendering ([#&#8203;16949](https://github.com/sveltejs/svelte/pull/16949)) ### [`v5.40.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5400) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.13...svelte@5.40.0) ##### Minor Changes - feat: add `createContext` utility for type-safe context ([#&#8203;16948](https://github.com/sveltejs/svelte/pull/16948)) ##### Patch Changes - chore: simplify `batch.apply()` ([#&#8203;16945](https://github.com/sveltejs/svelte/pull/16945)) - fix: don't rerun async effects unnecessarily ([#&#8203;16944](https://github.com/sveltejs/svelte/pull/16944)) ### [`v5.39.13`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53913) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.12...svelte@5.39.13) ##### Patch Changes - fix: add missing type for `fr` attribute for `radialGradient` tags in svg ([#&#8203;16943](https://github.com/sveltejs/svelte/pull/16943)) - fix: unset context on stale promises ([#&#8203;16935](https://github.com/sveltejs/svelte/pull/16935)) ### [`v5.39.12`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53912) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.11...svelte@5.39.12) ##### Patch Changes - fix: better input cursor restoration for `bind:value` ([#&#8203;16925](https://github.com/sveltejs/svelte/pull/16925)) - fix: track the user's getter of `bind:this` ([#&#8203;16916](https://github.com/sveltejs/svelte/pull/16916)) - fix: generate correct SSR code for the case where `pending` is an attribute ([#&#8203;16919](https://github.com/sveltejs/svelte/pull/16919)) - fix: generate correct code for `each` blocks with async body ([#&#8203;16923](https://github.com/sveltejs/svelte/pull/16923)) ### [`v5.39.11`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53911) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.10...svelte@5.39.11) ##### Patch Changes - fix: flush batches whenever an async value resolves ([#&#8203;16912](https://github.com/sveltejs/svelte/pull/16912)) ### [`v5.39.10`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53910) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.9...svelte@5.39.10) ##### Patch Changes - fix: hydrate each blocks inside element correctly ([#&#8203;16908](https://github.com/sveltejs/svelte/pull/16908)) - fix: allow await in if block consequent and alternate ([#&#8203;16890](https://github.com/sveltejs/svelte/pull/16890)) - fix: don't replace rest props with `$$props` for excluded props ([#&#8203;16898](https://github.com/sveltejs/svelte/pull/16898)) - fix: correctly transform `$derived` private fields on server ([#&#8203;16894](https://github.com/sveltejs/svelte/pull/16894)) - fix: add `UNKNOWN` evaluation value before breaking for `binding.initial===SnippetBlock` ([#&#8203;16910](https://github.com/sveltejs/svelte/pull/16910)) ### [`v5.39.9`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5399) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.8...svelte@5.39.9) ##### Patch Changes - fix: flush when pending boundaries resolve ([#&#8203;16897](https://github.com/sveltejs/svelte/pull/16897)) ### [`v5.39.8`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5398) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.7...svelte@5.39.8) ##### Patch Changes - fix: check boundary `pending` attribute at runtime on server ([#&#8203;16855](https://github.com/sveltejs/svelte/pull/16855)) - fix: preserve tuple type in `$state.snapshot` ([#&#8203;16864](https://github.com/sveltejs/svelte/pull/16864)) - fix: allow await in svelte:boundary without pending ([#&#8203;16857](https://github.com/sveltejs/svelte/pull/16857)) - fix: update `bind:checked` error message to clarify usage with radio inputs ([#&#8203;16874](https://github.com/sveltejs/svelte/pull/16874)) ### [`v5.39.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5397) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.6...svelte@5.39.7) ##### Patch Changes - chore: simplify batch logic ([#&#8203;16847](https://github.com/sveltejs/svelte/pull/16847)) - fix: rebase pending batches when other batches are committed ([#&#8203;16866](https://github.com/sveltejs/svelte/pull/16866)) - fix: wrap async `children` in `$$renderer.async` ([#&#8203;16862](https://github.com/sveltejs/svelte/pull/16862)) - fix: silence label warning for buttons and anchor tags with title attributes ([#&#8203;16872](https://github.com/sveltejs/svelte/pull/16872)) - fix: coerce nullish `<title>` to empty string ([#&#8203;16863](https://github.com/sveltejs/svelte/pull/16863)) ### [`v5.39.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5396) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.5...svelte@5.39.6) ##### Patch Changes - fix: depend on reads of deriveds created within reaction (async mode) ([#&#8203;16823](https://github.com/sveltejs/svelte/pull/16823)) - fix: SSR regression of processing attributes of `<select>` and `<option>` ([#&#8203;16821](https://github.com/sveltejs/svelte/pull/16821)) - fix: async `class:` + spread attributes were compiled into sync server-side code ([#&#8203;16834](https://github.com/sveltejs/svelte/pull/16834)) - fix: ensure tick resolves within a macrotask ([#&#8203;16825](https://github.com/sveltejs/svelte/pull/16825)) ### [`v5.39.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5395) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.4...svelte@5.39.5) ##### Patch Changes - fix: allow `{@&#8203;html await ...}` and snippets with async content on the server ([#&#8203;16817](https://github.com/sveltejs/svelte/pull/16817)) - fix: use nginx SSI-compatible comments for `$props.id()` ([#&#8203;16820](https://github.com/sveltejs/svelte/pull/16820)) ### [`v5.39.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5394) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.3...svelte@5.39.4) ##### Patch Changes - fix: restore hydration state after `await` in `<script>` ([#&#8203;16806](https://github.com/sveltejs/svelte/pull/16806)) ### [`v5.39.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5393) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.2...svelte@5.39.3) ##### Patch Changes - fix: remove outer hydration markers ([#&#8203;16800](https://github.com/sveltejs/svelte/pull/16800)) - fix: async hydration ([#&#8203;16797](https://github.com/sveltejs/svelte/pull/16797)) ### [`v5.39.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5392) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.1...svelte@5.39.2) ##### Patch Changes - fix: preserve SSR context when block expressions contain `await` ([#&#8203;16791](https://github.com/sveltejs/svelte/pull/16791)) - chore: bump some devDependencies ([#&#8203;16787](https://github.com/sveltejs/svelte/pull/16787)) ### [`v5.39.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53913) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.39.0...svelte@5.39.1) ##### Patch Changes - fix: add missing type for `fr` attribute for `radialGradient` tags in svg ([#&#8203;16943](https://github.com/sveltejs/svelte/pull/16943)) - fix: unset context on stale promises ([#&#8203;16935](https://github.com/sveltejs/svelte/pull/16935)) ### [`v5.39.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5390) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.10...svelte@5.39.0) ##### Minor Changes - feat: experimental async SSR ([#&#8203;16748](https://github.com/sveltejs/svelte/pull/16748)) ##### Patch Changes - fix: correctly SSR hidden="until-found" ([#&#8203;16773](https://github.com/sveltejs/svelte/pull/16773)) ### [`v5.38.10`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53810) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.9...svelte@5.38.10) ##### Patch Changes - fix: flush effects scheduled during boundary's pending phase ([#&#8203;16738](https://github.com/sveltejs/svelte/pull/16738)) ### [`v5.38.9`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5389) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.8...svelte@5.38.9) ##### Patch Changes - chore: generate CSS hash using the filename ([#&#8203;16740](https://github.com/sveltejs/svelte/pull/16740)) - fix: correctly analyze `<object.property>` components ([#&#8203;16711](https://github.com/sveltejs/svelte/pull/16711)) - fix: clean up scheduling system ([#&#8203;16741](https://github.com/sveltejs/svelte/pull/16741)) - fix: transform input defaults from spread ([#&#8203;16481](https://github.com/sveltejs/svelte/pull/16481)) - fix: don't destroy contents of `svelte:boundary` unless the boundary is an error boundary ([#&#8203;16746](https://github.com/sveltejs/svelte/pull/16746)) ### [`v5.38.8`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5388) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.7...svelte@5.38.8) ##### Patch Changes - fix: send `$effect.pending` count to the correct boundary ([#&#8203;16732](https://github.com/sveltejs/svelte/pull/16732)) ### [`v5.38.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5387) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.6...svelte@5.38.7) ##### Patch Changes - fix: replace `undefined` with `void(0)` in CallExpressions ([#&#8203;16693](https://github.com/sveltejs/svelte/pull/16693)) - fix: ensure batch exists when resetting a failed boundary ([#&#8203;16698](https://github.com/sveltejs/svelte/pull/16698)) - fix: place store setup inside async body ([#&#8203;16687](https://github.com/sveltejs/svelte/pull/16687)) ### [`v5.38.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5386) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.5...svelte@5.38.6) ##### Patch Changes - fix: don't fail on `flushSync` while flushing effects ([#&#8203;16674](https://github.com/sveltejs/svelte/pull/16674)) ### [`v5.38.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5385) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.3...svelte@5.38.5) ##### Patch Changes - fix: ensure async deriveds always get dependencies from thennable ([#&#8203;16672](https://github.com/sveltejs/svelte/pull/16672)) ### [`v5.38.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5383) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.2...svelte@5.38.3) ##### Patch Changes - fix: ensure correct order of template effect values ([#&#8203;16655](https://github.com/sveltejs/svelte/pull/16655)) - fix: allow async `{@&#8203;const}` in more places ([#&#8203;16643](https://github.com/sveltejs/svelte/pull/16643)) - fix: properly catch top level await errors ([#&#8203;16619](https://github.com/sveltejs/svelte/pull/16619)) - perf: prune effects without dependencies ([#&#8203;16625](https://github.com/sveltejs/svelte/pull/16625)) - fix: only emit `for_await_track_reactivity_loss` in async mode ([#&#8203;16644](https://github.com/sveltejs/svelte/pull/16644)) ### [`v5.38.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5382) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.1...svelte@5.38.2) ##### Patch Changes - perf: run blocks eagerly during flush instead of aborting ([#&#8203;16631](https://github.com/sveltejs/svelte/pull/16631)) - fix: don't clone non-proxies in `$inspect` ([#&#8203;16617](https://github.com/sveltejs/svelte/pull/16617)) - fix: avoid recursion error when tagging circular references ([#&#8203;16622](https://github.com/sveltejs/svelte/pull/16622)) ### [`v5.38.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53810) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.38.0...svelte@5.38.1) ##### Patch Changes - fix: flush effects scheduled during boundary's pending phase ([#&#8203;16738](https://github.com/sveltejs/svelte/pull/16738)) ### [`v5.38.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5380) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.37.3...svelte@5.38.0) ##### Minor Changes - feat: allow `await` inside `@const` declarations ([#&#8203;16542](https://github.com/sveltejs/svelte/pull/16542)) ##### Patch Changes - fix: remount at any hydration error ([#&#8203;16248](https://github.com/sveltejs/svelte/pull/16248)) - chore: emit `await_reactivity_loss` in `for await` loops ([#&#8203;16521](https://github.com/sveltejs/svelte/pull/16521)) - fix: emit `snippet_invalid_export` instead of `undefined_export` for exported snippets ([#&#8203;16539](https://github.com/sveltejs/svelte/pull/16539)) ### [`v5.37.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5373) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.37.2...svelte@5.37.3) ##### Patch Changes - fix: reset attribute cache after setting corresponding property ([#&#8203;16543](https://github.com/sveltejs/svelte/pull/16543)) ### [`v5.37.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5372) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.37.1...svelte@5.37.2) ##### Patch Changes - fix: double event processing in firefox due to event object being garbage collected ([#&#8203;16527](https://github.com/sveltejs/svelte/pull/16527)) - fix: add bindable dimension attributes types to SVG and MathML elements ([#&#8203;16525](https://github.com/sveltejs/svelte/pull/16525)) - fix: correctly differentiate static fields before emitting `duplicate_class_field` ([#&#8203;16526](https://github.com/sveltejs/svelte/pull/16526)) - fix: prevent last\_propagated\_event from being DCE'd ([#&#8203;16538](https://github.com/sveltejs/svelte/pull/16538)) ### [`v5.37.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5371) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.37.0...svelte@5.37.1) ##### Patch Changes - chore: remove some todos ([#&#8203;16515](https://github.com/sveltejs/svelte/pull/16515)) - fix: allow await expressions inside `{#await ...}` argument ([#&#8203;16514](https://github.com/sveltejs/svelte/pull/16514)) - fix: `append_styles` in an effect to make them available on mount ([#&#8203;16509](https://github.com/sveltejs/svelte/pull/16509)) - chore: remove `parser.template_untrimmed` ([#&#8203;16511](https://github.com/sveltejs/svelte/pull/16511)) - fix: always inject styles when compiling as a custom element ([#&#8203;16509](https://github.com/sveltejs/svelte/pull/16509)) ### [`v5.37.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5370) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.17...svelte@5.37.0) ##### Minor Changes - feat: ignore component options in `compileModule` ([#&#8203;16362](https://github.com/sveltejs/svelte/pull/16362)) ##### Patch Changes - fix: always mark props as stateful ([#&#8203;16504](https://github.com/sveltejs/svelte/pull/16504)) ### [`v5.36.17`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53617) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.16...svelte@5.36.17) ##### Patch Changes - fix: throw on duplicate class field declarations ([#&#8203;16502](https://github.com/sveltejs/svelte/pull/16502)) - fix: add types for `part` attribute to svg attributes ([#&#8203;16499](https://github.com/sveltejs/svelte/pull/16499)) ### [`v5.36.16`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53616) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.15...svelte@5.36.16) ##### Patch Changes - fix: don't update a focused input with values from its own past ([#&#8203;16491](https://github.com/sveltejs/svelte/pull/16491)) - fix: don't destroy effect roots created inside of deriveds ([#&#8203;16492](https://github.com/sveltejs/svelte/pull/16492)) ### [`v5.36.15`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53615) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.14...svelte@5.36.15) ##### Patch Changes - fix: preserve dirty status of deferred effects ([#&#8203;16487](https://github.com/sveltejs/svelte/pull/16487)) ### [`v5.36.14`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53614) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.13...svelte@5.36.14) ##### Patch Changes - fix: keep input in sync when binding updated via effect ([#&#8203;16482](https://github.com/sveltejs/svelte/pull/16482)) - fix: rename form accept-charset attribute ([#&#8203;16478](https://github.com/sveltejs/svelte/pull/16478)) - fix: prevent infinite async loop ([#&#8203;16482](https://github.com/sveltejs/svelte/pull/16482)) - fix: exclude derived writes from effect abort and rescheduling ([#&#8203;16482](https://github.com/sveltejs/svelte/pull/16482)) ### [`v5.36.13`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53613) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.12...svelte@5.36.13) ##### Patch Changes - fix: ensure subscriptions are picked up correctly by deriveds ([#&#8203;16466](https://github.com/sveltejs/svelte/pull/16466)) ### [`v5.36.12`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53612) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.10...svelte@5.36.12) ##### Patch Changes - chore: move `capture_signals` to legacy module ([#&#8203;16456](https://github.com/sveltejs/svelte/pull/16456)) ### [`v5.36.10`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53610) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.9...svelte@5.36.10) ##### Patch Changes - fix: prevent batches from getting intertwined ([#&#8203;16446](https://github.com/sveltejs/svelte/pull/16446)) ### [`v5.36.9`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5369) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.8...svelte@5.36.9) ##### Patch Changes - fix: don't reexecute derived with no dependencies on teardown ([#&#8203;16438](https://github.com/sveltejs/svelte/pull/16438)) - fix: disallow `export { foo as default }` in `<script module>` ([#&#8203;16447](https://github.com/sveltejs/svelte/pull/16447)) - fix: move ownership validation into async component body ([#&#8203;16449](https://github.com/sveltejs/svelte/pull/16449)) - fix: allow async destructured deriveds ([#&#8203;16444](https://github.com/sveltejs/svelte/pull/16444)) - fix: move store setup/cleanup outside of async component body ([#&#8203;16443](https://github.com/sveltejs/svelte/pull/16443)) ### [`v5.36.8`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5368) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.7...svelte@5.36.8) ##### Patch Changes - fix: keep effect in the graph if it has an abort controller ([#&#8203;16430](https://github.com/sveltejs/svelte/pull/16430)) - chore: Switch `payload.out` to an array ([#&#8203;16428](https://github.com/sveltejs/svelte/pull/16428)) ### [`v5.36.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5367) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.6...svelte@5.36.7) ##### Patch Changes - fix: allow instrinsic `<svelte:...>` elements to inherit from `SvelteHTMLElements` ([#&#8203;16424](https://github.com/sveltejs/svelte/pull/16424)) ### [`v5.36.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5366) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.5...svelte@5.36.6) ##### Patch Changes - fix: delegate functions with shadowed variables if declared locally ([#&#8203;16417](https://github.com/sveltejs/svelte/pull/16417)) - fix: handle error in correct boundary after reset ([#&#8203;16171](https://github.com/sveltejs/svelte/pull/16171)) - fix: make `<svelte:boundary>` reset function a noop after the first call ([#&#8203;16171](https://github.com/sveltejs/svelte/pull/16171)) ### [`v5.36.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5365) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.4...svelte@5.36.5) ##### Patch Changes - fix: silence `$inspect` errors when the effect is about to be destroyed ([#&#8203;16391](https://github.com/sveltejs/svelte/pull/16391)) - fix: more informative error when effects run in an infinite loop ([#&#8203;16405](https://github.com/sveltejs/svelte/pull/16405)) ### [`v5.36.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5364) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.3...svelte@5.36.4) ##### Patch Changes - fix: avoid microtask in flushSync ([#&#8203;16394](https://github.com/sveltejs/svelte/pull/16394)) - fix: ensure compiler state is reset before compilation ([#&#8203;16396](https://github.com/sveltejs/svelte/pull/16396)) ### [`v5.36.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5363) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.2...svelte@5.36.3) ##### Patch Changes - fix: don't log `await_reactivity_loss` warning when signal is read in `untrack` ([#&#8203;16385](https://github.com/sveltejs/svelte/pull/16385)) - fix: better handle $inspect on array mutations ([#&#8203;16389](https://github.com/sveltejs/svelte/pull/16389)) - fix: leave proxied array `length` untouched when deleting properties ([#&#8203;16389](https://github.com/sveltejs/svelte/pull/16389)) - fix: update `$effect.pending()` immediately after a batch is removed ([#&#8203;16382](https://github.com/sveltejs/svelte/pull/16382)) ### [`v5.36.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5362) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.1...svelte@5.36.2) ##### Patch Changes - fix: add `$effect.pending()` to types ([#&#8203;16376](https://github.com/sveltejs/svelte/pull/16376)) - fix: add `pending` snippet to `<svelte:boundary>` types ([#&#8203;16379](https://github.com/sveltejs/svelte/pull/16379)) ### [`v5.36.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53617) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.36.0...svelte@5.36.1) ##### Patch Changes - fix: throw on duplicate class field declarations ([#&#8203;16502](https://github.com/sveltejs/svelte/pull/16502)) - fix: add types for `part` attribute to svg attributes ([#&#8203;16499](https://github.com/sveltejs/svelte/pull/16499)) ### [`v5.36.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5360) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.7...svelte@5.36.0) ##### Minor Changes - feat: support `await` in components when using the `experimental.async` compiler option ([#&#8203;15844](https://github.com/sveltejs/svelte/pull/15844)) ##### Patch Changes - fix: silence a11y warning for inert elements ([#&#8203;16339](https://github.com/sveltejs/svelte/pull/16339)) - chore: clean up a11y analysis code ([#&#8203;16345](https://github.com/sveltejs/svelte/pull/16345)) ### [`v5.35.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5357) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.6...svelte@5.35.7) ##### Patch Changes - fix: silence autofocus a11y warning inside `<dialog>` ([#&#8203;16341](https://github.com/sveltejs/svelte/pull/16341)) - fix: don't show adjusted error messages in boundaries ([#&#8203;16360](https://github.com/sveltejs/svelte/pull/16360)) - chore: replace inline regex with variable ([#&#8203;16340](https://github.com/sveltejs/svelte/pull/16340)) ### [`v5.35.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5356) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.5...svelte@5.35.6) ##### Patch Changes - chore: simplify reaction/source ownership tracking ([#&#8203;16333](https://github.com/sveltejs/svelte/pull/16333)) - chore: simplify internal component `pop()` ([#&#8203;16331](https://github.com/sveltejs/svelte/pull/16331)) ### [`v5.35.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5355) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.4...svelte@5.35.5) ##### Patch Changes - fix: associate sources in Spring/Tween/SvelteMap/SvelteSet with correct reaction ([#&#8203;16325](https://github.com/sveltejs/svelte/pull/16325)) - fix: re-evaluate derived props during teardown ([#&#8203;16278](https://github.com/sveltejs/svelte/pull/16278)) ### [`v5.35.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5354) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.3...svelte@5.35.4) ##### Patch Changes - fix: abort and reschedule effect processing after state change in user effect ([#&#8203;16280](https://github.com/sveltejs/svelte/pull/16280)) ### [`v5.35.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5353) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.2...svelte@5.35.3) ##### Patch Changes - fix: account for mounting when `select_option` in `attribute_effect` ([#&#8203;16309](https://github.com/sveltejs/svelte/pull/16309)) - fix: do not proxify the value assigned to a derived ([#&#8203;16302](https://github.com/sveltejs/svelte/pull/16302)) ### [`v5.35.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5352) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.1...svelte@5.35.2) ##### Patch Changes - fix: bump esrap ([#&#8203;16295](https://github.com/sveltejs/svelte/pull/16295)) ### [`v5.35.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5351) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.35.0...svelte@5.35.1) ##### Patch Changes - feat: add parent hierarchy to `__svelte_meta` objects ([#&#8203;16255](https://github.com/sveltejs/svelte/pull/16255)) ### [`v5.35.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5350) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.9...svelte@5.35.0) ##### Minor Changes - feat: add `getAbortSignal()` ([#&#8203;16266](https://github.com/sveltejs/svelte/pull/16266)) ##### Patch Changes - chore: simplify props ([#&#8203;16270](https://github.com/sveltejs/svelte/pull/16270)) ### [`v5.34.9`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5349) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.8...svelte@5.34.9) ##### Patch Changes - fix: ensure unowned deriveds can add themselves as reactions while connected ([#&#8203;16249](https://github.com/sveltejs/svelte/pull/16249)) ### [`v5.34.8`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5348) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.7...svelte@5.34.8) ##### Patch Changes - fix: untrack `$inspect.with` and add check for unsafe mutation ([#&#8203;16209](https://github.com/sveltejs/svelte/pull/16209)) - fix: use fine grained for template if the component is not explicitly in legacy mode ([#&#8203;16232](https://github.com/sveltejs/svelte/pull/16232)) - lift unsafe\_state\_mutation constraints for SvelteSet, SvelteMap, SvelteDate, SvelteURL and SvelteURLSearchParams created inside the derived ([#&#8203;16221](https://github.com/sveltejs/svelte/pull/16221)) ### [`v5.34.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5347) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.6...svelte@5.34.7) ##### Patch Changes - fix: address css class matching regression ([#&#8203;16204](https://github.com/sveltejs/svelte/pull/16204)) ### [`v5.34.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5346) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.5...svelte@5.34.6) ##### Patch Changes - fix: match class and style directives against attribute selector ([#&#8203;16179](https://github.com/sveltejs/svelte/pull/16179)) ### [`v5.34.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5345) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.4...svelte@5.34.5) ##### Patch Changes - fix: keep spread non-delegated event handlers up to date ([#&#8203;16180](https://github.com/sveltejs/svelte/pull/16180)) - fix: remove undefined attributes on hydration ([#&#8203;16178](https://github.com/sveltejs/svelte/pull/16178)) - fix: ensure sources within nested effects still register correctly ([#&#8203;16193](https://github.com/sveltejs/svelte/pull/16193)) - fix: avoid shadowing a variable in dynamic components ([#&#8203;16185](https://github.com/sveltejs/svelte/pull/16185)) ### [`v5.34.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5344) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.3...svelte@5.34.4) ##### Patch Changes - fix: don't set state withing `with_parent` in proxy ([#&#8203;16176](https://github.com/sveltejs/svelte/pull/16176)) - fix: use compiler-driven reactivity in legacy mode template expressions ([#&#8203;16100](https://github.com/sveltejs/svelte/pull/16100)) ### [`v5.34.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5343) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.2...svelte@5.34.3) ##### Patch Changes - fix: don't eagerly execute deriveds on resume ([#&#8203;16150](https://github.com/sveltejs/svelte/pull/16150)) - fix: prevent memory leaking signals in legacy mode ([#&#8203;16145](https://github.com/sveltejs/svelte/pull/16145)) - fix: don't define `error.message` if it's not configurable ([#&#8203;16149](https://github.com/sveltejs/svelte/pull/16149)) ### [`v5.34.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5342) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.1...svelte@5.34.2) ##### Patch Changes - fix: add missing typings for some dimension bindings ([#&#8203;16142](https://github.com/sveltejs/svelte/pull/16142)) - fix: prune typescript class field declarations ([#&#8203;16154](https://github.com/sveltejs/svelte/pull/16154)) ### [`v5.34.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5341) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.34.0...svelte@5.34.1) ##### Patch Changes - fix: correctly tag private class state fields ([#&#8203;16132](https://github.com/sveltejs/svelte/pull/16132)) ### [`v5.34.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5340) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.19...svelte@5.34.0) ##### Minor Changes - feat: add source name logging to `$inspect.trace` ([#&#8203;16060](https://github.com/sveltejs/svelte/pull/16060)) ##### Patch Changes - fix: add `command` and `commandfor` to `HTMLButtonAttributes` ([#&#8203;16117](https://github.com/sveltejs/svelte/pull/16117)) - fix: better `$inspect.trace()` output ([#&#8203;16131](https://github.com/sveltejs/svelte/pull/16131)) - fix: properly hydrate dynamic css props components and remove element removal ([#&#8203;16118](https://github.com/sveltejs/svelte/pull/16118)) ### [`v5.33.19`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53319) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.18...svelte@5.33.19) ##### Patch Changes - fix: reset `is_flushing` if `flushSync` is called and there's no scheduled effect ([#&#8203;16119](https://github.com/sveltejs/svelte/pull/16119)) ### [`v5.33.18`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53318) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.17...svelte@5.33.18) ##### Patch Changes - chore: bump `esrap` dependency ([#&#8203;16106](https://github.com/sveltejs/svelte/pull/16106)) - fix: destructuring state in ssr ([#&#8203;16102](https://github.com/sveltejs/svelte/pull/16102)) ### [`v5.33.17`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53317) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.16...svelte@5.33.17) ##### Patch Changes - chore: update acorn parser `ecmaVersion` to parse import attributes ([#&#8203;16098](https://github.com/sveltejs/svelte/pull/16098)) ### [`v5.33.16`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53316) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.15...svelte@5.33.16) ##### Patch Changes - fix: visit expression when destructuring state declarations ([#&#8203;16081](https://github.com/sveltejs/svelte/pull/16081)) - fix: move xmlns attribute from SVGAttributes to to DOMAttributes ([#&#8203;16080](https://github.com/sveltejs/svelte/pull/16080)) ### [`v5.33.15`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53315) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.14...svelte@5.33.15) ##### Patch Changes - fix: invoke parent boundary of deriveds that throw ([#&#8203;16091](https://github.com/sveltejs/svelte/pull/16091)) ### [`v5.33.14`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53314) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.13...svelte@5.33.14) ##### Patch Changes - Revert "feat: enable TS autocomplete for Svelte HTML element definitions" ([#&#8203;16063](https://github.com/sveltejs/svelte/pull/16063)) - fix: destructuring snippet arguments ([#&#8203;16068](https://github.com/sveltejs/svelte/pull/16068)) ### [`v5.33.13`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53313) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.12...svelte@5.33.13) ##### Patch Changes - fix: avoid recursion error in `EachBlock` visitor ([#&#8203;16058](https://github.com/sveltejs/svelte/pull/16058)) ### [`v5.33.12`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53312) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.11...svelte@5.33.12) ##### Patch Changes - fix: correctly transform reassignments to class fields in SSR mode ([#&#8203;16051](https://github.com/sveltejs/svelte/pull/16051)) ### [`v5.33.11`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53311) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.10...svelte@5.33.11) ##### Patch Changes - fix: treat transitive dependencies of each blocks as mutable in legacy mode if item is mutated ([#&#8203;16038](https://github.com/sveltejs/svelte/pull/16038)) ### [`v5.33.10`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53310) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.9...svelte@5.33.10) ##### Patch Changes - fix: use `fill: 'forwards'` on transition animations to prevent flicker ([#&#8203;16035](https://github.com/sveltejs/svelte/pull/16035)) ### [`v5.33.9`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5339) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.8...svelte@5.33.9) ##### Patch Changes - fix: put expressions in effects unless known to be static ([#&#8203;15792](https://github.com/sveltejs/svelte/pull/15792)) ### [`v5.33.8`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5338) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.7...svelte@5.33.8) ##### Patch Changes - fix: only `select_option` if `'value'` is in `next` ([#&#8203;16032](https://github.com/sveltejs/svelte/pull/16032)) ### [`v5.33.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5337) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.6...svelte@5.33.7) ##### Patch Changes - fix: `bind:value` to select with stores ([#&#8203;16028](https://github.com/sveltejs/svelte/pull/16028)) ### [`v5.33.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5336) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.5...svelte@5.33.6) ##### Patch Changes - fix: falsy attachments on components ([#&#8203;16021](https://github.com/sveltejs/svelte/pull/16021)) - fix: correctly mark <option> elements as selected during SSR ([#&#8203;16017](https://github.com/sveltejs/svelte/pull/16017)) ### [`v5.33.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5335) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.4...svelte@5.33.5) ##### Patch Changes - fix: handle derived destructured iterators ([#&#8203;16015](https://github.com/sveltejs/svelte/pull/16015)) - fix: avoid rerunning attachments when unrelated spread attributes change ([#&#8203;15961](https://github.com/sveltejs/svelte/pull/15961)) ### [`v5.33.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5334) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.3...svelte@5.33.4) ##### Patch Changes - fix: narrow `defaultChecked` to boolean ([#&#8203;16009](https://github.com/sveltejs/svelte/pull/16009)) - fix: warn when using rest or identifier in custom elements without props option ([#&#8203;16003](https://github.com/sveltejs/svelte/pull/16003)) ### [`v5.33.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5333) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.2...svelte@5.33.3) ##### Patch Changes - fix: allow using typescript in `customElement.extend` option ([#&#8203;16001](https://github.com/sveltejs/svelte/pull/16001)) - fix: cleanup event handlers on media elements ([#&#8203;16005](https://github.com/sveltejs/svelte/pull/16005)) ### [`v5.33.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5332) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.1...svelte@5.33.2) ##### Patch Changes - fix: correctly parse escaped unicode characters in css selector ([#&#8203;15976](https://github.com/sveltejs/svelte/pull/15976)) - fix: don't mark deriveds as clean if updating during teardown ([#&#8203;15997](https://github.com/sveltejs/svelte/pull/15997)) ### [`v5.33.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#53319) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.33.0...svelte@5.33.1) ##### Patch Changes - fix: reset `is_flushing` if `flushSync` is called and there's no scheduled effect ([#&#8203;16119](https://github.com/sveltejs/svelte/pull/16119)) ### [`v5.33.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5330) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.32.2...svelte@5.33.0) ##### Minor Changes - feat: XHTML compliance ([#&#8203;15538](https://github.com/sveltejs/svelte/pull/15538)) - feat: add `fragments: 'html' | 'tree'` option for wider CSP compliance ([#&#8203;15538](https://github.com/sveltejs/svelte/pull/15538)) ### [`v5.32.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5322) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.32.1...svelte@5.32.2) ##### Patch Changes - chore: simplify `<pre>` cleaning ([#&#8203;15980](https://github.com/sveltejs/svelte/pull/15980)) - fix: attach `__svelte_meta` correctly to elements following a CSS wrapper ([#&#8203;15982](https://github.com/sveltejs/svelte/pull/15982)) - fix: import untrack directly from client in `svelte/attachments` ([#&#8203;15974](https://github.com/sveltejs/svelte/pull/15974)) ### [`v5.32.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5321) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.32.0...svelte@5.32.1) ##### Patch Changes - Warn when an invalid `<select multiple>` value is given ([#&#8203;14816](https://github.com/sveltejs/svelte/pull/14816)) ### [`v5.32.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5320) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.31.1...svelte@5.32.0) ##### Minor Changes - feat: warn on implicitly closed tags ([#&#8203;15932](https://github.com/sveltejs/svelte/pull/15932)) - feat: attachments `fromAction` utility ([#&#8203;15933](https://github.com/sveltejs/svelte/pull/15933)) ##### Patch Changes - fix: only re-run directly applied attachment if it changed ([#&#8203;15962](https://github.com/sveltejs/svelte/pull/15962)) ### [`v5.31.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5311) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.31.0...svelte@5.31.1) ##### Patch Changes - fix: avoid auto-parenthesis for special-keywords-only `MediaQuery` ([#&#8203;15937](https://github.com/sveltejs/svelte/pull/15937)) ### [`v5.31.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5310) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.30.2...svelte@5.31.0) ##### Minor Changes - feat: allow state fields to be declared inside class constructors ([#&#8203;15820](https://github.com/sveltejs/svelte/pull/15820)) ##### Patch Changes - fix: Add missing `AttachTag` in `Tag` union type inside the `AST` namespace from `"svelte/compiler"` ([#&#8203;15946](https://github.com/sveltejs/svelte/pull/15946)) ### [`v5.30.2`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5302) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.30.1...svelte@5.30.2) ##### Patch Changes - fix: falsy attachments types ([#&#8203;15939](https://github.com/sveltejs/svelte/pull/15939)) - fix: handle more hydration mismatches ([#&#8203;15851](https://github.com/sveltejs/svelte/pull/15851)) ### [`v5.30.1`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5301) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.30.0...svelte@5.30.1) ##### Patch Changes - fix: add `typeParams` to `SnippetBlock` for legacy parser ([#&#8203;15921](https://github.com/sveltejs/svelte/pull/15921)) ### [`v5.30.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5300) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.29.0...svelte@5.30.0) ##### Minor Changes - feat: allow generics on snippets ([#&#8203;15915](https://github.com/sveltejs/svelte/pull/15915)) ### [`v5.29.0`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5290) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.28.7...svelte@5.29.0) ##### Minor Changes - feat: attachments ([#&#8203;15000](https://github.com/sveltejs/svelte/pull/15000)) ### [`v5.28.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5287) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.28.6...svelte@5.28.7) ##### Patch Changes - fix: remove unncessary guards that require CSP privilege when removing event attributes ([#&#8203;15846](https://github.com/sveltejs/svelte/pull/15846)) - fix: rewrite destructuring logic to handle iterators ([#&#8203;15813](https://github.com/sveltejs/svelte/pull/15813)) ### [`v5.28.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5286) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.28.5...svelte@5.28.6) ##### Patch Changes - fix: use `transform.read` for `ownership_validator.mutation` array ([#&#8203;15848](https://github.com/sveltejs/svelte/pull/15848)) - fix: don't redeclare `$slots` ([#&#8203;15849](https://github.com/sveltejs/svelte/pull/15849)) ### [`v5.28.5`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5285) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.28.4...svelte@5.28.5) ##### Patch Changes - fix: proxify the value in assignment shorthands to the private field ([#&#8203;15862](https://github.com/sveltejs/svelte/pull/15862)) - fix: more frequently update `bind:buffered` to actual value ([#&#8203;15874](https://github.com/sveltejs/svelte/pull/15874)) ### [`v5.28.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5284) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.28.3...svelte@5.28.4) ##### Patch Changes - fix: treat nullish expression as empty string ([#&#8203;15901](https://github.com/sveltejs/svelte/pull/15901)) - fix: prevent invalid BigInt calls from blowing up at compile time ([#&#8203;15900](https://github.com/sveltejs/svelte/pull/15900)) - fix: warn on bidirectional control characters ([#&#8203;15893](https://github.com/sveltejs/svelte/pull/15893)) - fix: emit right error for a shadowed invalid rune ([#&#8203;15892](https://github.com/sveltejs/svelte/pull/15892)) ### [`v5.28.3`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5283) [Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.28.2...svelte@5.28.3) ##### Patch Changes - chore: avoid microtasks when flushing sync ([#&#8203;15895](https://github.com/sveltejs/svelte/pull/15895)) - fix: improve error message for migration errors when slot would be renamed ([#&#8203;15841](https://github.com/sveltejs/svelte/pull/15841)) - fix: allow characters in the supplementary special-purpose plane ([#&#8203;15823](https://github.com/sveltejs/svelte/pull/15823)) </details> <details> <summary>sveltejs/language-tools (svelte-check)</summary> ### [`v4.3.4`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.3.4) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check@4.3.3...svelte-check@4.3.4) ##### Patch Changes - chore: use machine format when run by Claude Code ([#&#8203;2870](https://github.com/sveltejs/language-tools/pull/2870)) ### [`v4.3.3`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.3.3) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check@4.3.2...svelte-check@4.3.3) ##### Patch Changes - fix: prevent file watcher issue ([#&#8203;2859](https://github.com/sveltejs/language-tools/pull/2859)) - fix: allow `undefined` and `null` values for `#each` in Svelte 5 ([#&#8203;2863](https://github.com/sveltejs/language-tools/pull/2863)) - perf: check if file content changed in tsconfig file watch ([#&#8203;2859](https://github.com/sveltejs/language-tools/pull/2859)) ### [`v4.3.2`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.3.2) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check-4.3.1...svelte-check@4.3.2) ##### Patch Changes - perf: tweak some snapshot hot paths ([#&#8203;2852](https://github.com/sveltejs/language-tools/pull/2852)) - perf: more precise module cache invalidation ([#&#8203;2853](https://github.com/sveltejs/language-tools/pull/2853)) - fix: properly handle `runes={false}` in `<svelte:options>` ([#&#8203;2847](https://github.com/sveltejs/language-tools/pull/2847)) See <https://github.com/sveltejs/language-tools/releases> ### [`v4.3.1`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check-4.3.1) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check-4.3.0...svelte-check-4.3.1) fix: handle object literal in MustacheTag ([#&#8203;2805](https://github.com/sveltejs/language-tools/pull/2805)) ### [`v4.3.0`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check-4.3.0) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check-4.2.2...svelte-check-4.3.0) - feat: zero types for params ([#&#8203;2795](https://github.com/sveltejs/language-tools/issues/2795)) - feat: add `await` support ([#&#8203;2799](https://github.com/sveltejs/language-tools/issues/2799)) - fix: strip doctype using AST instead of regex ([#&#8203;2798](https://github.com/sveltejs/language-tools/issues/2798)) - chore: make human output more concise and readable ([#&#8203;2748](https://github.com/sveltejs/language-tools/issues/2748)) ### [`v4.2.2`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check-4.2.2) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check-4.2.1...svelte-check-4.2.2) - fix: invalidate project file cache and handle watcher race condition ([#&#8203;2779](https://github.com/sveltejs/language-tools/issues/2779)) - fix: prevent error with bind:this={get, set} ([#&#8203;2781](https://github.com/sveltejs/language-tools/issues/2781)) - fix: don't treat derived imported from svelte/store as a potential store ([#&#8203;2780](https://github.com/sveltejs/language-tools/issues/2780)) - fix: key block can have its own block scope ([#&#8203;2768](https://github.com/sveltejs/language-tools/issues/2768)) ### [`v4.2.1`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check-4.2.1) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check-4.2.0...svelte-check-4.2.1) - feat: support generics on snippets ([#&#8203;2761](https://github.com/sveltejs/language-tools/issues/2761)) ### [`v4.2.0`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check-4.2.0) [Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check-4.1.7...svelte-check-4.2.0) - feat: support attachments ([#&#8203;2760](https://github.com/sveltejs/language-tools/issues/2760)) - fix: deduplicate definition for rune-mode components ([#&#8203;2759](https://github.com/sveltejs/language-tools/issues/2759)) </details> <details> <summary>privatenumber/tsx (tsx)</summary> ### [`v4.21.0`](https://github.com/privatenumber/tsx/releases/tag/v4.21.0) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.6...v4.21.0) ##### Features - upgrade esbuild ([#&#8203;748](https://github.com/privatenumber/tsx/issues/748)) ([048fb62](https://github.com/privatenumber/tsx/commit/048fb623870f22c5026ad84187b545d418d2dfe8)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.21.0) ### [`v4.20.6`](https://github.com/privatenumber/tsx/releases/tag/v4.20.6) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.5...v4.20.6) ##### Bug Fixes - properly hide relaySignal from process.listeners() ([#&#8203;741](https://github.com/privatenumber/tsx/issues/741)) ([710a424](https://github.com/privatenumber/tsx/commit/710a42473ebfdff362818bed4fd1f5c7a27837e2)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.6) ### [`v4.20.5`](https://github.com/privatenumber/tsx/releases/tag/v4.20.5) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.4...v4.20.5) ##### Bug Fixes - handle ambiguous packages ([796053a](https://github.com/privatenumber/tsx/commit/796053a6473898bf02283e90dea35a8ff537fa10)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.5) ### [`v4.20.4`](https://github.com/privatenumber/tsx/releases/tag/v4.20.4) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.3...v4.20.4) ##### Bug Fixes - override Node's native TS formats ([#&#8203;733](https://github.com/privatenumber/tsx/issues/733)) ([a639836](https://github.com/privatenumber/tsx/commit/a639836fad4e60dbda6498b7851b6890e0c60a08)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.4) ### [`v4.20.3`](https://github.com/privatenumber/tsx/releases/tag/v4.20.3) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.2...v4.20.3) ##### Bug Fixes - revert v4.20 changes ([dadcf27](https://github.com/privatenumber/tsx/commit/dadcf27b2e1721bd98e4e02d926180f060a5f48a)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.3) ### [`v4.20.2`](https://github.com/privatenumber/tsx/releases/tag/v4.20.2) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.1...v4.20.2) ##### Bug Fixes - support ambiguous package ([#&#8203;79](https://github.com/privatenumber/tsx/issues/79)) ([c188268](https://github.com/privatenumber/tsx/commit/c1882680bce9df3052bef23dbed1b95728e802bb)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.2) ### [`v4.20.1`](https://github.com/privatenumber/tsx/releases/tag/v4.20.1) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.20.0...v4.20.1) ##### Bug Fixes - **json:** handle keys with special characters ([9bd2546](https://github.com/privatenumber/tsx/commit/9bd25469c26db2b93e1e8500fb28d04352e1ef70)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.1) ### [`v4.20.0`](https://github.com/privatenumber/tsx/releases/tag/v4.20.0) [Compare Source](https://github.com/privatenumber/tsx/compare/v4.19.4...v4.20.0) ##### Bug Fixes - **esm:** only set json attribute if missing ([714e00b](https://github.com/privatenumber/tsx/commit/714e00b31ec2b22d092ab682edd7572e3632c8a3)) ##### Features - support latest Node versions ([ec316d3](https://github.com/privatenumber/tsx/commit/ec316d3efa2ae4ffbc367c9cdd84df869bf5f96f)) *** This release is also available on: - [npm package (@&#8203;latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.20.0) </details> <details> <summary>microsoft/TypeScript (typescript)</summary> ### [`v5.9.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.9.3): TypeScript 5.9.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3) Note: this tag was recreated to point at the correct commit. The npm package contained the correct content. For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/) - [fixed issues query for Typescript 5.9.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.9.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+). - *No specific changes for TypeScript 5.9.2 (Stable)* - [fixed issues query for Typescript 5.9.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.3%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) ### [`v5.9.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.9.2): TypeScript 5.9 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2) Note: this tag was recreated to point at the correct commit. The npm package contained the correct content. For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/) - [fixed issues query for Typescript 5.9.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.9.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+). - *No specific changes for TypeScript 5.9.2 (Stable)* Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) </details> <details> <summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary> ### [`v8.48.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8481-2025-12-02) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.48.0...v8.48.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.48.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8480-2025-11-24) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.47.0...v8.48.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.47.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8470-2025-11-17) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.46.4...v8.47.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.46.4`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8464-2025-11-10) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.46.3...v8.46.4) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.46.3`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8463-2025-11-03) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.46.2...v8.46.3) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.46.2`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8462-2025-10-20) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.46.1...v8.46.2) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.46.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8461-2025-10-13) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.46.0...v8.46.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.46.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8460-2025-10-06) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.45.0...v8.46.0) ##### 🚀 Features - **typescript-eslint:** export util types ([#&#8203;10848](https://github.com/typescript-eslint/typescript-eslint/pull/10848), [#&#8203;10849](https://github.com/typescript-eslint/typescript-eslint/pull/10849)) ##### ❤️ Thank You - Mister-Hope [@&#8203;Mister-Hope](https://github.com/Mister-Hope) You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.45.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8450-2025-09-29) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.44.1...v8.45.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.44.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8441-2025-09-22) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.44.0...v8.44.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.44.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8440-2025-09-15) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.43.0...v8.44.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.43.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8430-2025-09-08) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.42.0...v8.43.0) ##### 🩹 Fixes - **eslint-plugin:** \[no-deprecated] should report deprecated exports and reexports ([#&#8203;11359](https://github.com/typescript-eslint/typescript-eslint/pull/11359)) ##### ❤️ Thank You - Victor Genaev [@&#8203;mainframev](https://github.com/mainframev) You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.42.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8420-2025-09-02) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.41.0...v8.42.0) ##### 🚀 Features - deprecate tseslint.config() ([#&#8203;11531](https://github.com/typescript-eslint/typescript-eslint/pull/11531)) ##### 🩹 Fixes - **typescript-eslint:** handle non-normalized windows paths produced by jiti ([#&#8203;11546](https://github.com/typescript-eslint/typescript-eslint/pull/11546)) ##### ❤️ Thank You - Kirk Waiblinger [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.41.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8410-2025-08-25) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.40.0...v8.41.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.40.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8400-2025-08-18) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.39.1...v8.40.0) ##### 🩹 Fixes - **typescript-eslint:** export `plugin`, `parser`, and `configs` that are compatible with both `defineConfig()` and `tseslint.config()` ([#&#8203;11475](https://github.com/typescript-eslint/typescript-eslint/pull/11475)) ##### ❤️ Thank You - Kirk Waiblinger [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.39.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8391-2025-08-11) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.39.0...v8.39.1) ##### 🩹 Fixes - **typescript-eslint:** handle `file://` urls in stack trace when inferring `tsconfigRootDir` ([#&#8203;11464](https://github.com/typescript-eslint/typescript-eslint/pull/11464)) ##### ❤️ Thank You - Kirk Waiblinger [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.39.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8390-2025-08-04) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.38.0...v8.39.0) ##### 🚀 Features - update to TypeScript 5.9.2 ([#&#8203;11445](https://github.com/typescript-eslint/typescript-eslint/pull/11445)) ##### ❤️ Thank You - Brad Zacher [@&#8203;bradzacher](https://github.com/bradzacher) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.38.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8380-2025-07-21) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.37.0...v8.38.0) ##### 🩹 Fixes - **typescript-eslint:** error on nested `extends` in `tseslint.config()` ([#&#8203;11361](https://github.com/typescript-eslint/typescript-eslint/pull/11361)) - **typescript-eslint:** infer tsconfigRootDir with v8 API ([#&#8203;11412](https://github.com/typescript-eslint/typescript-eslint/pull/11412)) ##### ❤️ Thank You - Kirk Waiblinger [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.37.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8370-2025-07-14) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.36.0...v8.37.0) ##### 🚀 Features - **typescript-estree:** infer tsconfigRootDir from call stack ([#&#8203;11370](https://github.com/typescript-eslint/typescript-eslint/pull/11370)) ##### ❤️ Thank You - Josh Goldberg ✨ You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.36.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8360-2025-07-07) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.35.1...v8.36.0) ##### 🚀 Features - **typescript-eslint:** support `basePath` in `tseslint.config()` ([#&#8203;11357](https://github.com/typescript-eslint/typescript-eslint/pull/11357)) ##### ❤️ Thank You - Kirk Waiblinger [@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger) You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.35.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8351-2025-06-30) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.35.0...v8.35.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.35.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8350-2025-06-23) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.34.1...v8.35.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.34.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8341-2025-06-16) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.34.0...v8.34.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.34.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8340-2025-06-09) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.33.1...v8.34.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.33.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8331-2025-06-02) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.33.0...v8.33.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.33.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8330-2025-05-26) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.32.1...v8.33.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v8.32.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8321-2025-05-12) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.32.0...v8.32.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>vitejs/vite (vite)</summary> ### [`v5.4.21`](https://github.com/vitejs/vite/releases/tag/v5.4.21) [Compare Source](https://github.com/vitejs/vite/compare/v5.4.20...v5.4.21) Please refer to [CHANGELOG.md](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md) for details. ### [`v5.4.20`](https://github.com/vitejs/vite/releases/tag/v5.4.20) [Compare Source](https://github.com/vitejs/vite/compare/v5.4.19...v5.4.20) Please refer to [CHANGELOG.md](https://github.com/vitejs/vite/blob/ca88ed7398288ce0c60176ac9a6392f10654c67c/packages/vite/CHANGELOG.md) for details. </details> <details> <summary>eemeli/yaml (yaml)</summary> ### [`v2.8.2`](https://github.com/eemeli/yaml/releases/tag/v2.8.2) [Compare Source](https://github.com/eemeli/yaml/compare/v2.8.1...v2.8.2) - Serialize -0 as -0 ([#&#8203;638](https://github.com/eemeli/yaml/issues/638)) - Do not double newlines for empty map values ([#&#8203;642](https://github.com/eemeli/yaml/issues/642)) ### [`v2.8.1`](https://github.com/eemeli/yaml/releases/tag/v2.8.1) [Compare Source](https://github.com/eemeli/yaml/compare/v2.8.0...v2.8.1) - Preserve empty block literals ([#&#8203;634](https://github.com/eemeli/yaml/issues/634)) ### [`v2.8.0`](https://github.com/eemeli/yaml/releases/tag/v2.8.0) [Compare Source](https://github.com/eemeli/yaml/compare/v2.7.1...v2.8.0) - Add node cache for faster alias resolution ([#&#8203;612](https://github.com/eemeli/yaml/issues/612)) - Re-introduce compatibility with Node.js 14.6 ([#&#8203;614](https://github.com/eemeli/yaml/issues/614)) - Add `--merge` option to CLI tool ([#&#8203;611](https://github.com/eemeli/yaml/issues/611)) - Improve error for tag resolution error on null value ([#&#8203;616](https://github.com/eemeli/yaml/issues/616)) - Allow empty string as plain scalar representation, for failsafe schema ([#&#8203;616](https://github.com/eemeli/yaml/issues/616)) - docs: include cli example ([#&#8203;617](https://github.com/eemeli/yaml/issues/617)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
chore(deps): update npm dependencies
Some checks failed
Lint & Test / Lint & Typecheck (pull_request) Failing after 9s
Lint & Test / Build (pull_request) Successful in 29s
2e75ffc179
renovatebot scheduled this pull request to auto merge when all checks succeed 2025-12-07 05:02:57 +01:00
renovatebot deleted branch renovate/npm-dependencies 2025-12-07 05:03:30 +01:00
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
vault/linkus!44
No description provided.