chore(deps): update npm dependencies #44
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/npm-dependencies"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.2.9->1.4.16.1.17->6.1.196.1.17->6.1.196.1.17->6.1.195.2.12->5.4.02.20.8->2.49.14.1.5->4.1.174.1.5->4.1.1722.15.12->22.19.110.4.21->10.4.225.0.35->5.5.8^0.22.0->^0.27.09.26.0->9.39.19.1.0->9.1.2^0.6.3->^0.7.0^0.501.0->^0.556.02.11.2->2.13.03.5.3->3.7.43.3.3->3.4.0^0.6.5->^0.7.05.28.2->5.45.64.1.7->4.3.44.1.5->4.1.174.19.4->4.21.05.8.3->5.9.38.32.0->8.48.15.4.19->5.4.212.7.1->2.8.2Release Notes
eslint/rewrite (@eslint/compat)
v1.4.1Compare Source
Dependencies
v1.4.0Compare Source
Features
Dependencies
v1.3.2Compare Source
Dependencies
v1.3.1Compare Source
Bug Fixes
@eslint/compateslint peerDependencies constraint (#215) (b96ec0c)Dependencies
v1.3.0Compare Source
Features
includeIgnoreFile(#211) (3e18175)Dependencies
fullcalendar/fullcalendar (@fullcalendar/core)
v6.1.19Compare Source
(
nowIndicatorSnap. usefalseto ensure time-granularity always)v6.1.18Compare Source
(Especially important for event rerendering with
eventContent)sveltejs/kit (@sveltejs/adapter-node)
v5.4.0Compare Source
Minor Changes
signalproperty to request (#14715)Patch Changes
9c933a2,dedda71]:v5.3.3Compare Source
Patch Changes
v5.3.2Compare Source
Patch Changes
fix: bump bundled sirv version to 3.0.2 (#14385)
Updated dependencies [
e6c3171]:v5.3.1Compare Source
Patch Changes
fix: avoid erroring on builder properties that only exist on the latest version of SvelteKit (#14233)
Updated dependencies [
f2db41c]:v5.3.0Compare Source
Minor Changes
instrumentation.server.tsfor tracing and observability setup (#13899)Patch Changes
f635678,f635678]:v5.2.16Compare Source
Patch Changes
fix: handling of PROTOCOL_HEADER and HOST_HEADER env vars (#14221)
Updated dependencies [
ea95533]:v5.2.15Compare Source
Patch Changes
fix: fallback to
hostheader if header specified byHOST_HEADERis not in request headers (#11154)Updated dependencies [
6ab60e5,bfdb564,94b30c4]:v5.2.14Compare Source
Patch Changes
chore: add
.gitto the end ofpackage.jsonrepository url (#14134)Updated dependencies [
c968aef]:v5.2.13Compare Source
Patch Changes
fix: remove unnecessary static directory serving middleware (#13953)
Updated dependencies [
bcdaf21]:sveltejs/kit (@sveltejs/kit)
v2.49.1Compare Source
Patch Changes
fix: suppress
state_referenced_locallywarnings in.svelte-kit/generated/root.svelte(#15013)fix: TypeError when doing response.clone() in page load (#15005)
v2.49.0Compare Source
Minor Changes
formremote functions allowing form data to be accessed before large files finish uploading (#14775)v2.48.8Compare Source
Patch Changes
breaking:
invalidnow must be imported from@sveltejs/kit(#14768)breaking: remove
submitteroption from experimental formvalidate()method, always provide default submitter (#14762)v2.48.7Compare Source
Patch Changes
fix: allow multiple
server-timingheaders (#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.6Compare 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/apidependency isn't installed (#14949)fix: preserve
thiswhen invoking standard validator (#14943)fix: treat client/universal hooks as entrypoints for illegal server import detection (#14876)
fix: correct query
.setand.refreshbehavior in commands (#14877)fix: improved the accuracy of the types of the output of
field.as('...')(#14908)v2.48.5Compare 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, addpathtoRemoteFormIssue(#14864)v2.48.4Compare 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.3Compare Source
Patch Changes
fix: include hash when using
resolvewith hash routing enabled (#14786)fix:
afterNavigatecallback not running after hydration when experimental async is enabled (#14644)fix: Snapshot
restoremethod not called after reload when experimental async is enabledfix: expose
issue.pathin.allIssues()(#14784)v2.48.2Compare Source
Patch Changes
v2.48.1Compare Source
Patch Changes
settled(#14818)v2.48.0Compare Source
Minor Changes
forkAPI when available (#14793)Patch Changes
settledinstead oftickin navigate (#14800)v2.47.3Compare Source
Patch Changes
fix: avoid hanging when
error()is used while streaming promises from a serverloadfunction (#14722)chore: treeshake load function code if we know it's unused (#14764)
fix:
RecursiveFormFieldstype for recursive or unknown schemas (#14734)fix: rework internal representation of form value to be
$state(#14771)v2.47.2Compare 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
invalidtype to schema input (#14748)v2.47.1Compare Source
Patch Changes
fix: allow
readto be used at the top-level of remote function files (#14672)fix: more robust remote files generation (#14682)
v2.47.0Compare Source
Minor Changes
signalproperty to request (#14715)Patch Changes
v2.46.5Compare Source
Patch Changes
formremote functions'fields.settriggers reactivity (#14661)v2.46.4Compare Source
Patch Changes
untrackfunction (#14658)v2.46.3Compare 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.2Compare Source
Patch Changes
envmodules (#14637)v2.46.1Compare Source
Patch Changes
fix: use
$derivedfor form fields (#14621)docs: remove
@exampleblocks to allow docs to deploy (#14636)fix: require a value with
submitandhiddenfields (#14635)fix: delete hydration cache on effect teardown (#14611)
v2.46.0Compare Source
Minor Changes
Patch Changes
fix: wait a tick before collecting form data for validation (#14631)
fix: prevent code execution order issues around SvelteKit's
envmodules (#14632)v2.45.0Compare Source
Minor Changes
form.for(id)now implicitly sets id on form object (#14623)Patch Changes
fetchin remote function without emitting a warning (#14610)v2.44.0Compare Source
Minor Changes
feat: expose
event.routeandevent.urlto remote functions (#14606)breaking: update experimental
formAPI (#14481)Patch Changes
v2.43.8Compare 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.7Compare Source
Patch Changes
fix: correctly type the
resultofformremote functions that do not accept data (#14573)fix: force remote module chunks to isolate themselves (#14571)
v2.43.6Compare 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
HEADtwice when an unhandled HTTP method is used in a request to a+serverhandler that has both aGEThandler and aHEADhandler (#14564)fix: smoothscroll to deep link (#14569)
v2.43.5Compare Source
Patch Changes
resolve(...)outside an event context (#14532)v2.43.4Compare Source
Patch Changes
v2.43.3Compare Source
Patch Changes
fix: Webcontainer AsyncLocalStorage workaround (#14521)
fix: include the value of form submitters on
formremote functions (#14475)v2.43.2Compare Source
Patch Changes
fix: ensure rendering starts off synchronously (#14517)
fix: keep serialized remote data alive until navigation (#14508)
v2.43.1Compare Source
Patch Changes
v2.43.0Compare Source
Minor Changes
Patch Changes
fix: ensure
__SVELTEKIT_PAYLOAD__.datais accessed safely (#14491)fix: create separate cache entries for non-exported remote function queries (#14499)
v2.42.2Compare 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
inithook during builds if there's nothing to prerender (#14464)fix: ensure SSR rendering gets request store context (#14476)
v2.42.1Compare Source
Patch Changes
v2.42.0Compare Source
Minor Changes
feat: enhance remote form functions with schema support,
inputandissuesproperties (#14383)breaking: remote form functions get passed a parsed POJO instead of a
FormDataobject now (#14383)v2.41.0Compare Source
Minor Changes
%sveltekit.version%toapp.html(#12132)Patch Changes
fix: allow remote functions to return custom types serialized with
transporthooks (#14435)fix: fulfil
beforeNavigatecompletewhen redirected (#12896)v2.40.0Compare Source
Minor Changes
eventproperty on popstate/link/form navigation (#14307)Patch Changes
fix: respect
replaceState/keepFocus/noScrollwhen a navigation results in a redirect (#14424)fix: invalidate preload cache when invalidateAll is true (#14420)
v2.39.1Compare Source
Patch Changes
v2.39.0Compare Source
Minor Changes
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.1Compare 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.0Compare Source
Minor Changes
query.batch(#14272)v2.37.1Compare Source
Patch Changes
fix: serialize server
loaddata before passing to universalload, 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.0Compare 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.3Compare Source
Patch Changes
fix: bump devalue (#14323)
chore: consolidate dev checks to use
esm-envinstead of a__SVELTEKIT_DEV__global (#14308)fix: reset form inputs by default when using remote form functions (#14322)
v2.36.2Compare Source
Patch Changes
chore: make config deprecation warnings more visible (#14281)
chore: remove redundant Not Found error message (#14289)
chore: deprecate
csrf.checkOriginin favour ofcsrf.trustedOrigins: ['*'](#14281)v2.36.1Compare Source
Patch Changes
$app/navigationworks in test files (#14195)v2.36.0Compare Source
Minor Changes
csrf.trustedOriginsconfiguration (#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.0Compare Source
Minor Changes
Patch Changes
v2.34.1Compare 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(...)returnsundefinedfor a just-deleted cookie (b2c5d02)fix: load env before prerender (
c5f7139)v2.34.0Compare Source
Minor Changes
envaccess during prerender (#14243)Patch Changes
fix: clone
fetchresponses so that headers are mutable (#13942)fix: serialize server
loaddata before passing to universalload, to handle mutations (#14268)fix: allow
asset(...)to be used with imported assets (#14270)v2.33.1Compare Source
Patch Changes
fix: make paths in .css assets relative (#14262)
fix: avoid copying SSR stylesheets to client assets (#13069)
v2.33.0Compare Source
Minor Changes
Patch Changes
fix: use correct flag for server tracing (#14250)
fix: correct type names for new
handleUnseenRoutesoption (#14254)chore: Better docs and error message for missing
@opentelemetry/apidependency (#14250)v2.32.0Compare Source
Minor Changes
response.bodystream data as base64 in page (#11473)Patch Changes
.remote.tsfiles are used without theexperimental.remoteFunctionsflag (#14225)v2.31.1Compare Source
Patch Changes
v2.31.0Compare Source
Minor Changes
feat: OpenTelemetry tracing for
handle,sequence, form actions, remote functions, andloadfunctions running on the server (#13899)feat: add
instrumentation.server.tsfor tracing and observability setup (#13899)v2.30.1Compare Source
Patch Changes
$app/typesin a more Typescript-friendly way (#14207)v2.30.0Compare Source
Minor Changes
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.1Compare Source
Patch Changes
v2.29.0Compare Source
Minor Changes
kit.files.srcoption (#14152)Patch Changes
fix: don't treat
$lib/server.tsor$lib/server_whatever.tsas server-only modules, only$lib/server/**(#14191)fix: make illegal server-only import errors actually useful (#14155)
chore: deprecate
config.kit.filesoptions (#14152)fix: avoid warning if page options in a Svelte file belongs to a comment (#14180)
v2.28.0Compare Source
Minor Changes
feat: add
RouteIdandRouteParamsto NavigationTarget interface (#14167)feat: add
pendingproperty to forms and commands (#14137)Patch Changes
fix:
fetchimported 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.3Compare Source
Patch Changes
.gitto the end ofpackage.jsonrepository url (#14134)v2.27.2Compare 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.1Compare 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.0Compare Source
Minor Changes
v2.26.1Compare Source
Patch Changes
fix: posixify internal app server path (#14049)
fix: ignore route groups when generating typed routes (#14050)
v2.26.0Compare Source
Minor Changes
feat: better type-safety for
page.route.id,page.params,page.url.pathnameand various other places (#13864)feat:
resolve(...)andasset(...)helpers for resolving paths (#13864)feat: Add
$app/typesmodule withAsset,RouteId,Pathname,ResolvedPathnameRouteParams<T>andLayoutParams<T>(#13864)v2.25.2Compare Source
Patch Changes
v2.25.1Compare Source
Patch Changes
v2.25.0Compare Source
Minor Changes
readimplementations from adapters (#13859)Patch Changes
v2.24.0Compare Source
Minor Changes
paramsprop for page/layout components (#13999)Patch Changes
storage.gethelper (#13998)v2.23.0Compare Source
Minor Changes
feat: support svelte.config.ts (#13935)
Patch Changes
fix: extend
vite-plugin-svelte'sConfigtype instead of duplicating it (#13982)fix: regression with
rolldown-vitenot bundling a single JS file for single and inline apps (#13941)v2.22.5Compare Source
Patch Changes
@sveltejs/kittooptimizeDeps.exclude(#13983)v2.22.4Compare Source
Patch Changes
$app/*modules to be bundled (#13977)v2.22.3Compare Source
Patch Changes
@sveltejs/kit(#13971)v2.22.2Compare Source
Patch Changes
fix: use fallback if
untrackdoesn't exist in svelte package (#13933)fix: warning for chrome devtools requests now suggests sv instead of vite plugin (#13905)
v2.22.1Compare Source
Patch Changes
fix: prevent infinite loop when calling
pushState/replaceStatein$effect(#13914)chore: use
manualChunksto bundle single and inline apps with Rolldown (#13915)v2.22.0Compare Source
Minor Changes
vite-plugin-svelte@^6.0.0-next.0andvite@^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.5Compare 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.4Compare Source
Patch Changes
v2.21.3Compare Source
Patch Changes
fix: correctly invalidate static analysis cache of child nodes when modifying a universal
+layoutfile 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/kitso that libraries can also useredirectanderrorhelpers (#13843)fix: correctly run
deserializeon 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.2Compare Source
Patch Changes
v2.21.1Compare Source
Patch Changes
chore: clarify which functions
handleFetchaffects (#13788)fix: ensure
$envand$app/environmentare correctly set while analysing server nodes (#13790)v2.21.0Compare Source
Minor Changes
Patch Changes
chore: remove
import-meta-resolvedependency (#13629)fix: remove component code from server nodes that are never used for SSR (#13684)
tailwindlabs/tailwindcss (@tailwindcss/postcss)
v4.1.17Compare Source
Fixed
@variantinside legacy JS APIs (#19263)v4.1.16Compare Source
Fixed
&(#19184)& > :pseudoand& :pseudoarbitrary variants (#19178)v4.1.15Compare Source
Fixed
color-mixfallback (#19069):deep,:slotted, and:global(#19094)not-*,has-*, andin-*(#19100)theme(…)function (#19111)\tis used in at-rules (#19130)0values (#19095)break-wordstowrap-break-word(#19157)Changed
postinstallscript from oxide ([#19149])(#19149)v4.1.14Compare Source
Fixed
'syntax in ClojureScript when extracting classes (#18888)@variantinside@custom-variant(#18885)@utility(#18900)grid-columnutilities when configuringgrid-column-startorgrid-column-end(#18907)grid-rowutilities when configuringgrid-row-startorgrid-row-end(#18907)defaultexport condition for@tailwindcss/vite(#18948)@themeproduce no output when built (#18979)variant = 'outline'during upgrades (#18922)classNameis migrated (#19031)*ClassNameand*Classattributes (#19031)v4.1.13Compare Source
Changed
Fixed
visibilitywhen usingtransition(#18795)matchVariantvalues (#18798)clipwithclip-pathinsr-only(#18769)matchUtilities(#18820).vercelfolders by default (can be overridden by@source …rules) (#18855)@-to be invalid (e.g.@-2xl:flex) (#18869)-or_(#18867, #18872)ariatheme keys to@custom-variant(#18815)datatheme keys to@custom-variant(#18816)supportstheme keys to@custom-variant(#18817)v4.1.12Compare Source
Fixed
@apply(#18404)flex-<number>utilities (#18642))from interfering with extraction in Clojure keywords (#18345)@pluginand@config(#18345)process.env.DEBUGin@tailwindcss/node(#18485)falseorundefinedproperties (#18571)@tailwindcss/postcssviatransformAssetUrls: false(#18321)addEventListenerand JavaScript variable names (#18718)--border-color-*theme keys individe-*utilities for backwards compatibility (#18704).hdrand.exrfiles for classes by default (#18734)v4.1.11Compare Source
Fixed
emit(…)(#18330)--watch=alwaysin the CLI's usage (#18337)@tailwindcss/vite(#18384)v4.1.10Compare Source
Fixed
w-[calc(100%-var(--offset))]) (#18289)v4.1.9Compare Source
Fixed
/[0.16]→/16) (#18184)mb-[-32rem]→-mb-128) (#18212)blurinwire:model.blur(#18216)v4.1.8Compare Source
Added
@applyfails (#18059)Fixed
<style>blocks (#18057, 18068)tailwindcssin pnpm monorepos (#18065)order-nonetoorder-0(#18126)class:attributes when extracting classes (#18093)-mt-[0px]tomt-[0px]instead of the other way around (#18154)\nat the end of the file (#18155).pnpm-storefolders by default (can be overridden by@source …rules) (#18163)toJSON()(#18083)v4.1.7Compare Source
Added
Fixed
_before numbers during candidate extraction (#17961)@themeand@utilitytogether (#17675)::beforeand::afterpseudo selectors create valid CSS rules in production builds (#17979)-rotate-*utilities properly negate arbitrary values (#18014):merge(…)selectors in legacy JS plugins (#18020).are properly extracted from Clojure files (#18038)@import … source(…)(#17963)class(#18025)v4.1.6Compare Source
Added
h-[1lh]toh-lh) (#17831, #17854)@sourcedirectives, discovered files and scanned files when usingDEBUG=*(#17906, #17952)Fixed
scalevalues generate negative values (#17831)@reference(#17836)_within arbitrary modifier shorthandbg-red-500/(--my_opacity)(#17889).logfiles for classes by default (#17906)@applyrules (#17925)optionalDependenciesare skipped (#17929)postcss/autoprefixer (autoprefixer)
v10.4.22Compare Source
stretchprefixes on new Can I Use database.fraction.js.saadeghi/daisyui (daisyui)
v5.5.8Compare Source
Bug Fixes
v5.5.7Compare Source
Bug Fixes
v5.5.6Compare Source
Bug Fixes
v5.5.5Compare Source
Bug Fixes
v5.5.4Compare Source
Bug Fixes
v5.5.3Compare Source
Bug Fixes
v5.5.2Compare Source
Bug Fixes
is-drawer-closeandis-drawer-open. closes: #4197 (f3005f4)v5.5.1Compare Source
Bug Fixes
v5.5.0Compare Source
Features
hover-3dto make a 3D cardtext-rotateto rotate between multiple wordsskeletonvariant:skeleton-textfor animated gradient textdiffdrag area<code>padding inprose. closes: #4243dropdownmodifier:dropdown-closeto force close a dropdownbtnselector improvements (7% smaller CSS size)Docs
v5.4.8Compare Source
🌼 Read changelog: https://daisyui.com/docs/changelog/
📦 Install this update:
💚 Thank you for using daisyUI!
v5.4.7Compare Source
Bug Fixes
v5.4.6Compare Source
Bug Fixes
v5.4.5Compare Source
Bug Fixes
v5.4.4Compare Source
Bug Fixes
v5.4.3Compare Source
Bug Fixes
v5.4.2Compare Source
Bug Fixes
v5.4.1Compare Source
Bug Fixes
v5.4.0Compare Source
Bug Fixes
v5.3.11Compare Source
Bug Fixes
v5.3.10Compare Source
Bug Fixes
v5.3.9Compare Source
Bug Fixes
<details>(bde0427), closes #4194v5.3.8Compare Source
Bug Fixes
v5.3.7Compare Source
Bug Fixes
btninproseshouldn't have underline by default. closes: #4192 (1205a90)v5.3.6Compare Source
Bug Fixes
v5.3.5Compare Source
Bug Fixes
btn-disabledcolor. closes: #4191 (bf956c8)v5.3.4Compare Source
Bug Fixes
validator-hintoverrideshiddenclass as expected. close: #4188 (c05604d)v5.3.3Compare Source
Bug Fixes
v5.3.2Compare Source
Bug Fixes
v5.3.1Compare Source
Bug Fixes
v5.3.0Compare 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.5Compare Source
Bug Fixes
v5.2.4Compare Source
v5.2.3Compare Source
Bug Fixes
v5.2.2Compare Source
Bug Fixes
v5.2.1Compare Source
Bug Fixes
v5.2.0Compare Source
Features
is-drawer-openandis-drawer-closeto style elements based on drawer state. Allowing us to create icon-only drawer sidebar.is-drawer-openandis-drawer-close(32e919e)Bug Fixes
collapseutility class conflict (c39d839)v5.1.32Compare Source
v5.1.31Compare Source
Bug Fixes
v5.1.30Compare Source
Bug Fixes
v5.1.29Compare Source
Bug Fixes
v5.1.28Compare Source
Bug Fixes
v5.1.27Compare Source
Bug Fixes
v5.1.26Compare Source
Bug Fixes
v5.1.25Compare Source
Bug Fixes
v5.1.24Compare Source
Bug Fixes
v5.1.23Compare Source
Bug Fixes
<details>collapse animation. closes: #4128 (f2a453a)v5.1.22Compare Source
Bug Fixes
kbdinsideprose(233c58a)v5.1.21Compare Source
Bug Fixes
v5.1.20Compare Source
Bug Fixes
v5.1.19Compare Source
Bug Fixes
v5.1.18Compare Source
Bug Fixes
v5.1.17Compare Source
Bug Fixes
v5.1.16Compare Source
Bug Fixes
v5.1.15Compare Source
Bug Fixes
v5.1.14Compare Source
Bug Fixes
v5.1.13Compare Source
v5.1.12Compare Source
Bug Fixes
v5.1.11Compare Source
Bug Fixes
v5.1.10Compare Source
Bug Fixes
v5.1.9Compare Source
Bug Fixes
v5.1.8Compare Source
v5.1.7Compare Source
Bug Fixes
v5.1.6Compare Source
Bug Fixes
v5.1.5Compare Source
Bug Fixes
v5.1.4Compare Source
Bug Fixes
v5.1.3Compare Source
v5.1.2Compare Source
Bug Fixes
v5.1.1Compare Source
Bug Fixes
v5.1.0Compare Source
Features
<select>element (works in Chromium, other browsers use the old OS style)Bug Fixes
aria-currentfor tabv5.0.55Compare Source
v5.0.54Compare Source
Bug Fixes
v5.0.53Compare Source
Bug Fixes
v5.0.52Compare Source
Bug Fixes
v5.0.51Compare Source
Bug Fixes
v5.0.50Compare Source
Bug Fixes
v5.0.49Compare Source
Bug Fixes
v5.0.48Compare Source
Bug Fixes
v5.0.47Compare Source
Bug Fixes
v5.0.46Compare Source
v5.0.43Compare Source
Bug Fixes
v5.0.42Compare Source
Bug Fixes
v5.0.41Compare Source
v5.0.40Compare Source
Bug Fixes
v5.0.39Compare Source
Bug Fixes
v5.0.38Compare Source
Bug Fixes
v5.0.37Compare Source
Bug Fixes
v5.0.36Compare Source
Bug Fixes
evanw/esbuild (esbuild)
v0.27.1Compare Source
Fix bundler bug with
varnested insideif(#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-levelvarinside anifstatement without being wrapped in a{ ... }block (and a few other conditions). The bundling transform needed to hoist thesevardeclarations outside of the lazy ES module wrapper for correctness. See the issue for details.Fix minifier bug with
forinsidetryinside label (#4351)This fixes an old regression from version v0.21.4. Some code was introduced to move the label inside the
trystatement to address a problem with transforming labeledfor awaitloops to avoid theawait(the transformation involves converting thefor awaitloop into aforloop and wrapping it in atrystatement). 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 toforloops that esbuild itself generates internally as part of thefor awaittransform. Here is an example of some affected code:Inline IIFEs containing a single expression (#4354)
Previously inlining of IIFEs (immediately-invoked function expressions) only worked if the body contained a single
returnstatement. Now it should also work if the body contains a single expression statement instead:The minifier now strips empty
finallyclauses (#4353)This improvement means that
finallyclauses containing dead code can potentially cause the associatedtrystatement to be removed from the output entirely in minified builds:Allow tree-shaking of the
SymbolconstructorWith this release, calling
Symbolis 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:v0.27.0Compare 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
esbuildin yourpackage.jsonfile (recommended) or be using a version range syntax that only accepts patch upgrades such as^0.26.0or~0.26.0. See npm's documentation about semver for more information.Use
Uint8Array.fromBase64if available (#4286)With this release, esbuild's
binaryloader will now use the newUint8Array.fromBase64function 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 specifytargetwhen 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:
v0.26.0Compare 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.12Compare 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
Arrayproperty is considered to be side-effect free but accessing the globalscrollYproperty 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:
AtomicsSharedArrayBufferFrom ES2020:
BigInt64ArrayBigUint64ArrayFrom ES2021:
FinalizationRegistryWeakRefFrom ES2025:
Float16ArrayIteratorNote 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:Add support for the new
@view-transitionCSS rule (#4313)With this release, esbuild now has improved support for pretty-printing and minifying the new
@view-transitionrule (which esbuild was previously unaware of):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: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.11Compare 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
binaryloader. Here's an example: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:will be transformed like this with a target such as
--target=chrome100(or more specifically with--supported:media-range=falseif desired):v0.25.10Compare 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
undefinedin 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):Fix
@supportsnested inside pseudo-element (#4265)When transforming nested CSS to non-nested CSS, esbuild is supposed to filter out pseudo-elements such as
::placeholderfor correctness. The CSS nesting specification says the following: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:v0.25.9Compare 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:C:driveD:drive../..to get from the project directory to the cache directory..(soD:\..is justD:)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:
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.8Compare 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#privateidentifier 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: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:
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.7Compare Source
Parse and print JavaScript imports with an explicit phase (#4238)
This release adds basic syntax support for the
deferandsourceimport phases in JavaScript:deferThis 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:
Note that this feature deliberately cannot be used with the syntax
import defer foo from "<specifier>"orimport defer { foo } from "<specifier>".sourceThis 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:
Note that this feature deliberately cannot be used with the syntax
import defer * as foo from "<specifier>"orimport 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), andmetafile(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:The
:token in the value assigned toxpairs with the?token, so it's not the start of a return type annotation. However, the first:token in the value assigned toyis 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:
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.6Compare Source
Fix a memory leak when
cancel()is used on a build context (#4231)Calling
rebuild()followed bycancel()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
trystatements in dead code (#4224)With this release, esbuild will now remove certain
trystatements if esbuild considers them to be within dead code (i.e. code that is known to not ever be evaluated). For example:Consider negated bigints to have no side effects
While esbuild currently considers
1,-1, and1nto all have no side effects, it didn't previously consider-1nto 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:Support a configurable delay in watch mode before rebuilding (#3476, #4178)
The
watch()API now takes adelayoption 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 thewatch()API has an option.Allow mixed array for
entryPointsAPI option (#4223)The TypeScript type definitions now allow you to pass a mixed array of both string literals and object literals to the
entryPointsAPI 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-arm64npm 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.5Compare Source
Fix a regression with
browserinpackage.json(#4187)The fix to #4144 in version 0.25.3 introduced a regression that caused
browseroverrides specified inpackage.jsonto fail to override relative path names that end in a trailing slash. That behavior change affected theaxios@0.30.0package. 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 includedfunction,import,infer,new,readonly, andtypeof. With this release, these keywords will now be parsed correctly. Here's an example of some affected code:Add CSS prefixes for the
stretchsizing 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:v0.25.4Compare 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
localhostwhere 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
corsoption will now set theAccess-Control-Allow-Originresponse header when the request has a matchingOriginheader. Note that this currently only works for requests that don't send a preflightOPTIONSrequest, as esbuild's development server doesn't currently supportOPTIONSrequests.Some examples:
CLI:
JS:
Go:
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
sourcesin source maps that form invalid URLs were not being passed through to the output. Version 0.25.0 changed the interpretation ofsourcesfrom 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 insourcesshould 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.3Compare Source
Fix lowered
asyncarrow functions beforesuper()(#4141, #4142)This change makes it possible to call an
asyncarrow function in a constructor before callingsuper()when targeting environments withoutasyncsupport, as long as the function body doesn't referencethis. Here's an example (notice the change fromthistonull):Some background: Arrow functions with the
asynckeyword are transformed into generator functions for older language targets such as--target=es2016. Since arrow functions capturethis, the generated code forwardsthisinto the body of the generator function. However, JavaScript class syntax forbids usingthisin a constructor before callingsuper(), and this forwarding was problematic since previously happened even when the function body doesn't usethis. Starting with this release, esbuild will now only forwardthisif 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=trueis used instead of--watch. Previously using--watch=truecaused esbuild to continue to use more and more memory for every rebuild, but--watch=trueshould now behave like--watchand 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=truestyle 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
hostwith esbuild's local development server (either with--serve=for the CLI or with theserve()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/hostsfile fromlocal.example.comto127.0.0.1and then useesbuild --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:
Previously, transforming this file with
--target=safari1took 5 seconds and generated 40mb of CSS. Trying to do that will now generate the following error instead: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_FILEappears 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.2Compare Source
Support flags in regular expressions for the API (#4121)
The JavaScript plugin API for esbuild takes JavaScript regular expression objects for the
filteroption. Internally these are translated into Go regular expressions. However, this translation previously ignored theflagsproperty 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?$/iis 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 theiflag. 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 = ...ormodule.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 fileexport let foo, barfrom ESM to CommonJS, esbuild appends this to the end of the file: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:
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.1Compare 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
Arrayproperty is considered to be side-effect free but accessing the globalscrollYproperty 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:
AtomicsSharedArrayBufferFrom ES2020:
BigInt64ArrayBigUint64ArrayFrom ES2021:
FinalizationRegistryWeakRefFrom ES2025:
Float16ArrayIteratorNote 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:Add support for the new
@view-transitionCSS rule (#4313)With this release, esbuild now has improved support for pretty-printing and minifying the new
@view-transitionrule (which esbuild was previously unaware of):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: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.0Compare 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
esbuildin yourpackage.jsonfile (recommended) or be using a version range syntax that only accepts patch upgrades such as^0.24.0or~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-Originheader 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 is0.0.0.0, which refers to all of the IP addresses that represent the local machine (e.g. both127.0.0.1and192.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 ofhostsinstead of a singlehoststring. 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.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: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.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: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
sourceMappingURLthat 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
sourceMappingURLthat use thefile://scheme previously attempted to read from a folder calledfile:. These URLs should now be recognized and parsed correctly.Entries in the
sourcesarray 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-arm64was not actually forarm64, 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:
Fix esbuild incorrectly rejecting valid TypeScript edge case (#4027)
The following TypeScript code is valid:
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 expressionasync 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
bufferlibrary 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 (so123nbecomesBigInt(123)) and generate a warning in this case. You can turn off the warning with--log-override:bigint=silentor restore the warning to an error with--log-override:bigint=errorif needed.Change how
consoleAPI dropping works (#4020)Previously the
--drop:consolefeature replaced all method calls off of theconsoleglobal withundefinedregardless of how long the property access chain was (so it applied toconsole.log()andconsole.log.call(console)andconsole.log.not.a.method()). However, it was pointed out that this breaks uses ofconsole.log.bind(console). That's also incompatible with Terser's implementation of the feature, which is where this feature originally came from (it does supportbind). So with this release, using this feature with esbuild will now only replace one level of method call (unless extended bycallorapply) and will replace the method being called with an empty function in complex cases:This should more closely match Terser's existing behavior.
Allow BigInt literals as
definevaluesWith 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 ofnode_modulesso 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
switchcases (#4028)With this release, esbuild will now try to trim unused code within
switchstatements when the test expression andcaseexpressions 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:Emit
/* @​__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 ofobj.foo. JavaScript minifiers such as esbuild and Terser have a convention where a/* @​__KEY__ */comment before the string makes it behave like a property name. Soobj.get(/* @​__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
/* @​__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
/* @​__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
textloader 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'stextloader included this byte sequence in the string, which turns into a prefix of\uFEFFin a JavaScript string when decoded from UTF-8. With this release, esbuild'stextloader 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=externalor--legal-comment=linkedwould always generate a.LEGAL.txtoutput 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
Portoption in the Go API has been changed fromuint16toint(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
Portin Go fromuint16to*uint16(Go's closest equivalent ofnumber | 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
evalcan be used to introduce a new variable like this:Previously esbuild inlined
variablehere (which becamefalse), which changed the behavior of the code. This inlining is now avoided, but please keep in mind that directevalbreaks 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.2Compare Source
Fix regression with
--defineandimport.meta(#4010, #4012, #4013)The previous change in version 0.24.1 to use a more expression-like parser for
definevalues to allow quoted property names introduced a regression that removed the ability to use--define:import.meta=.... Even thoughimportis normally a keyword that can't be used as an identifier, ES modules special-case theimport.metaexpression to behave like an identifier anyway. This change fixes the regression.This fix was contributed by @sapphi-red.
v0.24.1Compare Source
Allow
es2024as a target intsconfig.json(#4004)TypeScript recently added
es2024as a compilation target, so esbuild now supports this in thetargetfield oftsconfig.jsonfiles, such as in the following configuration file: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/setThis change fixes a grammar bug in the parser that incorrectly treated the following code as a syntax error:
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
--defineand--pure(#4008)The
defineandpureAPI 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--defineand--pureconsistent with--global-name, which already supported quoted property names. For example, the following is now possible:Note that if you're passing values like this on the command line using esbuild's
--defineflag, 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/finallyblocks (#4003)With this release, esbuild will now attempt to minify empty
tryblocks:This can sometimes expose additional minification opportunities.
Include
entryPointmetadata for thecopyloader (#3985)Almost all entry points already include a
entryPointfield in theoutputsmap in esbuild's build metadata. However, this wasn't the case for thecopyloader as that loader is a special-case that doesn't behave like other loaders. This release adds theentryPointfield in this case.Source mappings may now contain
nullentries (#3310, #3878)With this change, sources that result in an empty source map may now emit a
nullsource 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 thenullmapping "resets" the source map so that any lookups into the minified code without any mappings resolves tonull(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 namedindex.jsbut have unique directory names).This is problematic when the bundle entry point is named
index.jsand 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 useindexinstead of the parent directory in this case. Specifically this will happen if the parent directory is equal to esbuild'soutbaseAPI 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-arm64npm 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.0Compare 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
esbuildin yourpackage.jsonfile (recommended) or be using a version range syntax that only accepts patch upgrades such as^0.23.0or~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:
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:
Fix class field decorators in TypeScript if
useDefineForClassFieldsisfalse(#3913)Setting the
useDefineForClassFieldsflag tofalseintsconfig.jsonmeans 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.jsonmultiple inheritance (#3898)TypeScript 5.0 introduced multiple inheritance for
tsconfig.jsonfiles whereextendscan 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.jsonfiles 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.jsonfile thatextendsanother file in a package with anexportsmap 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
stdinandstdoutproperties on command objects for inherited streams, which matters when you run esbuild's Deno module as the entry point (i.e. whenimport.meta.mainistrue). 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.1Compare Source
Allow using the
node:import prefix withes*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 writtenimport 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=node14so 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,es2022removes thenode:prefix because none of thees*targets are known to support this feature. This release adds the support for thenode:flag to esbuild's internal compatibility table fores*to allow you to use compound targets like this:Fix a panic when using the CLI with invalid build flags if
--analyzeis 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
--analyzeflag is present. This was caused by esbuild's internals attempting to add a Go plugin (which is how--analyzeis 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
pluginDatacache will now be cleared when starting a new build. This should fix a leak of memory from plugins that returnpluginDataobjects fromonResolveand/oronLoadcallbacks.v0.23.0Compare 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
esbuildin yourpackage.jsonfile (recommended) or be using a version range syntax that only accepts patch upgrades such as^0.22.0or~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=externalthe 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:eslint/eslint (eslint)
v9.39.1Compare Source
Bug Fixes
650753efix: Only pass node to JS lang visitor methods (#20283) (Nicholas C. Zakas)Documentation
51b51f4docs: add a section on when to use extends vs cascading (#20268) (Tanuj Kanti)b44d426docs: Update README (GitHub Actions Bot)Chores
92db329chore: update@eslint/jsversion to 9.39.1 (#20284) (Francesco Trotta)c7ebefcchore: package.json update for @eslint/js release (Jenkins)61778f6chore: update eslint-config-eslint dependency @eslint/js to ^9.39.0 (#20275) (renovate[bot])d9ca2fcci: Add rangeStrategy to eslint group in renovate config (#20266) (唯然)009e507test: fix version tests for ESLint v10 (#20274) (Milos Djermanovic)v9.39.0Compare Source
Features
cc57d87feat: update error loc to key inno-dupe-class-members(#20259) (Tanuj Kanti)126552ffeat: update error location infor-directionandno-dupe-args(#20258) (Tanuj Kanti)167d097feat: updatecomplexityrule to highlight only static block header (#20245) (jaymarvelz)Bug Fixes
15f5c7cfix: forward traversalstep.argsto visitors (#20253) (jaymarvelz)5a1a534fix: allow JSDoc comments in object-shorthand rule (#20167) (Nitin Kumar)e86b813fix: Use more types from @eslint/core (#20257) (Nicholas C. Zakas)927272dfix: correctScopetypings (#20198) (jaymarvelz)37f76d9fix: useAST.Programtype for Program node (#20244) (Francesco Trotta)ae07f0bfix: unify timing report for concurrent linting (#20188) (jaymarvelz)b165d47fix: correctRuletypings (#20199) (jaymarvelz)fb97cdafix: improve error message for missing fix function in suggestions (#20218) (jaymarvelz)Documentation
d3e81e3docs: Always recommend to include a files property (#20158) (Percy Ma)0f0385fdocs: use consistent naming recommendation (#20250) (Alex M. Spieslechner)a3b1456docs: Update README (GitHub Actions Bot)cf5f2dddocs: fix correct tag ofno-useless-constructor(#20255) (Tanuj Kanti)10b995cdocs: add TS options and examples fornofuncinno-use-before-define(#20249) (Tanuj Kanti)2584187docs: remove repetitive word in comment (#20242) (reddaisyy)637216bdocs: update CLI flags migration instructions (#20238) (jaymarvelz)e7cda3bdocs: Update README (GitHub Actions Bot)7b9446fdocs: handle empty flags sections on the feature flags page (#20222) (sethamus)Chores
dfe3c1bchore: update@eslint/jsversion to 9.39.0 (#20270) (Francesco Trotta)2375a6dchore: package.json update for @eslint/js release (Jenkins)a1f4e52chore: update@eslintdependencies (#20265) (Francesco Trotta)c7d3229chore: update dependency @eslint/core to ^0.17.0 (#20256) (renovate[bot])27549bcchore: update fuzz testing to not error if code sample minimizer fails (#20252) (Milos Djermanovic)a1370eeci: bump actions/setup-node from 5 to 6 (#20230) (dependabot[bot])9e7fad4chore: add script to auto-generate eslint:recommended configuration (#20208) (唯然)v9.38.0Compare Source
Features
ce40f74feat: updatecomplexityrule to only highlight function header (#20048) (Atul Nair)e37e590feat: correctno-loss-of-precisionfalse positives withenotation (#20187) (Francesco Trotta)Bug Fixes
50c3dfdfix: improve type support for isolated dependencies in pnpm (#20201) (Francesco Trotta)a1f06a3fix: correct SourceCode typings (#20114) (Pixel998)Documentation
462675adocs: improve web accessibility by hiding non-semantic character (#20205) (루밀LuMir)c070e65docs: correct formatting inno-irregular-whitespacerule documentation (#20203) (루밀LuMir)b39e71adocs: Update README (GitHub Actions Bot)cd39983docs: movecustom-formatterstype descriptions tonodejs-api(#20190) (Percy Ma)Chores
d17c795chore: upgrade @eslint/js@9.38.0 (#20221) (Milos Djermanovic)25d0e33chore: package.json update for @eslint/js release (Jenkins)c82b5efrefactor: Use types from @eslint/core (#20168) (Nicholas C. Zakas)ff31609ci: add Node.js 25 toci.yml(#20220) (루밀LuMir)004577eci: bump github/codeql-action from 3 to 4 (#20211) (dependabot[bot])eac71fbtest: remove use ofnodejsScopeoption of eslint-scope from tests (#20206) (Milos Djermanovic)4168a18chore: fix typo in legacy-eslint.js (#20202) (Sweta Tanwar)205dbd2chore: fix typos (#20200) (ntnyq)dbb200echore: use team member's username when name is not available in data (#20194) (Milos Djermanovic)8962089chore: mark deprecated rules as available until v11.0.0 (#20184) (Pixel998)v9.37.0Compare Source
Features
39f7fb4feat:preserve-caught-errorshould recognize all static "cause" keys (#20163) (Pixel998)f81eabcfeat: support TS syntax inno-restricted-imports(#19562) (Nitin Kumar)Bug Fixes
a129ccefix: correctno-loss-of-precisionfalse positives for leading zeros (#20164) (Francesco Trotta)09e04fcfix: add missing AST token types (#20172) (Pixel998)861c6dafix: correctESLinttypings (#20122) (Pixel998)Documentation
b950359docs: fix typos across the docs (#20182) (루밀LuMir)42498a2docs: improve ToC accessibility by hiding non-semantic character (#20181) (Percy Ma)29ea092docs: Update README (GitHub Actions Bot)5c97a04docs: showavailableUntilin deprecated rule banner (#20170) (Pixel998)90a71bfdocs: updateREADMEfiles to add badge and instructions (#20115) (루밀LuMir)1603ae1docs: update references frommastertomain(#20153) (루밀LuMir)Chores
afe8a13chore: update@eslint/jsdependency to version 9.37.0 (#20183) (Francesco Trotta)abee4cachore: package.json update for @eslint/js release (Jenkins)fc9381fchore: fix typos in comments (#20175) (overlookmotel)e1574a2chore: unpin jiti (#20173) (renovate[bot])e1ac05erefactor: markESLint.findConfigFile()asasync, add missing docs (#20157) (Pixel998)347906dchore: update eslint (#20149) (renovate[bot])0cb5897test: remove tmp dir created for circular fixes in multithread mode test (#20146) (Milos Djermanovic)bb99566ci: pinjitito version 2.5.1 (#20151) (Pixel998)177f669perf: improve worker count calculation for"auto"concurrency (#20067) (Francesco Trotta)448b57bchore: Mark deprecated formatting rules as available until v11.0.0 (#20144) (Milos Djermanovic)v9.36.0Compare Source
Features
47afcf6feat: correctpreserve-caught-erroredge cases (#20109) (Francesco Trotta)Bug Fixes
75b74d8fix: add missing rule option types (#20127) (ntnyq)1c0d850fix: updateeslint-all.jsto useObject.freezeforrulesobject (#20116) (루밀LuMir)7d61b7ffix: add missing scope types toScope.type(#20110) (Pixel998)7a670c3fix: correct rule option typings inrules.d.ts(#20084) (Pixel998)Documentation
b73ab12docs: update examples to usedefineConfig(#20131) (sethamus)31d9392docs: fix typos (#20118) (Pixel998)c7f861bdocs: Update README (GitHub Actions Bot)6b0c08bdocs: Update README (GitHub Actions Bot)91f97c5docs: Update README (GitHub Actions Bot)Chores
12411e8chore: upgrade @eslint/js@9.36.0 (#20139) (Milos Djermanovic)488cba6chore: package.json update for @eslint/js release (Jenkins)bac82a2ci: simplify renovate configuration (#19907) (唯然)c00bb37ci: bump actions/labeler from 5 to 6 (#20090) (dependabot[bot])fee751drefactor: usedefaultOptionsin rules (#20121) (Pixel998)1ace67dchore: update example to usedefineConfig(#20111) (루밀LuMir)4821963test: add missing loc information to error objects in rule tests (#20112) (루밀LuMir)b42c42echore: disallow use of deprecatedtypeproperty in core rule tests (#20094) (Milos Djermanovic)7bb498dtest: remove deprecatedtypeproperty from core rule tests (#20093) (Pixel998)e10cf2aci: bump actions/setup-node from 4 to 5 (#20089) (dependabot[bot])5cb0ce4refactor: usemeta.defaultOptionsinpreserve-caught-error(#20080) (Pixel998)f9f7cb5chore: package.json update for eslint-config-eslint release (Jenkins)81764b2chore: updateeslintpeer dependency ineslint-config-eslint(#20079) (Milos Djermanovic)v9.35.0Compare Source
Features
42761fafeat: implement suggestions for no-empty-function (#20057) (jaymarvelz)102f444feat: implement suggestions for no-empty-static-block (#20056) (jaymarvelz)e51fffffeat: addpreserve-caught-errorrule (#19913) (Amnish Singh Arora)Bug Fixes
10e7ae2fix: update uncloneable options error message (#20059) (soda-sorcery)bfa4601fix: ignore empty switch statements with comments in no-empty rule (#20045) (jaymarvelz)dfd11defix: addbeforeandafterto test case types (#20049) (Francesco Trotta)dabbe95fix: correct types forno-restricted-importsrule (#20034) (Milos Djermanovic)ea789c7fix: no-loss-of-precision false positive with uppercase exponent (#20032) (sethamus)Documentation
d265515docs: improve phrasing - "if" → "even if" from getting-started section (#20074) (jjangga0214)a355a0edocs: invert comparison logic for example inno-vardoc page (#20064) (OTonGitHub)5082fc2docs: Update README (GitHub Actions Bot)99cfd7edocs: add missing "the" in rule deprecation docs (#20050) (Josh Goldberg ✨)6ad8973docs: update--no-ignoreand--ignore-patterndocumentation (#20036) (Francesco Trotta)8033b19docs: add documentation for--no-config-lookup(#20033) (Francesco Trotta)Chores
da87f2fchore: upgrade @eslint/js@9.35.0 (#20077) (Milos Djermanovic)af2a087chore: package.json update for @eslint/js release (Jenkins)7055764test: removetests/lib/eslint/eslint.config.js(#20065) (Milos Djermanovic)84ffb96chore: update@eslint-community/eslint-utils(#20069) (Francesco Trotta)d5ef939refactor: remove deprecatedcontext.parserOptionsusage across rules (#20060) (sethamus)1b3881dchore: remove redundant word (#20058) (pxwanglu)v9.34.0Compare Source
Features
0bb777afeat: multithread linting (#19794) (Francesco Trotta)43a5f9efeat: add eslint-plugin-regexp to eslint-config-eslint base config (#19951) (Pixel998)Bug Fixes
9b89903fix: default value of accessor-pairs option in rule.d.ts file (#20024) (Tanuj Kanti)6c07420fix: fix spurious failure in neostandard integration test (#20023) (Kirk Waiblinger)676f4acfix: allow scientific notation with trailing zeros matching exponent (#20002) (Sweta Tanwar)Documentation
0b4a590docs: make rulesdir deprecation clearer (#20018) (Domenico Gemoli)327c672docs: Update README (GitHub Actions Bot)bf26229docs: Fix typo in core-concepts/index.md (#20009) (Tobias Hernstig)2309327docs: fix typo in the "Configuring Rules" section (#20001) (ghazi-git)2b87e21docs: [no-else-return] clarify sample code. (#19991) (Yuki Takada (Yukinosuke Takada))c36570cdocs: Update README (GitHub Actions Bot)Chores
f19ad94chore: upgrade to@eslint/js@9.34.0(#20030) (Francesco Trotta)b48fa20chore: package.json update for @eslint/js release (Jenkins)4bce8a2chore: package.json update for eslint-config-eslint release (Jenkins)0c9999crefactor: prefer default options ingrouped-accessor-pairs(#20028) (루밀LuMir)d503f19ci: fixstale.yml(#20010) (루밀LuMir)e2dc67dci: centralizestale.yml(#19994) (루밀LuMir)7093cb8ci: bump actions/checkout from 4 to 5 (#20005) (dependabot[bot])v9.33.0Compare Source
Features
e07820efeat: add global object access detection to no-restricted-globals (#19939) (sethamus)90b050efeat: support explicit resource management inone-var(#19941) (Sweta Tanwar)Bug Fixes
732433cfix: allow any type formeta.docs.recommendedin custom rules (#19995) (Francesco Trotta)e8a6914fix: Fixed potential bug in check-emfile-handling.js (#19975) (諏訪原慶斗)Documentation
34f0723docs: playground button for TypeScript code example (#19671) (Tanuj Kanti)dc942a4docs: Update README (GitHub Actions Bot)5a4b6f7docs: Update no-multi-assign.md (#19979) (Yuki Takada (Yukinosuke Takada))247e156docs: add missing let declarations inno-plusplus(#19980) (Yuki Takada (Yukinosuke Takada))0d17242docs: Update README (GitHub Actions Bot)fa20b9ddocs: Clarify when to open an issue for a PR (#19974) (Nicholas C. Zakas)Build Related
27fa865build: useESLintclass to generate formatter examples (#19972) (Milos Djermanovic)Chores
4258046chore: update dependency @eslint/js to v9.33.0 (#19998) (renovate[bot])ad28371chore: package.json update for @eslint/js release (Jenkins)06a22f1test: resolve flakiness in --mcp flag test (#19993) (Pixel998)54920edtest: switch toLinter.ConfiginESLintRulestype tests (#19977) (Francesco Trotta)v9.32.0Compare Source
Features
1245000feat: support explicit resource management in core rules (#19828) (fnx)0e957a7feat: support typescript types in accessor rules (#19882) (fnx)Bug Fixes
960fd40fix: Upgrade @eslint/js (#19971) (Nicholas C. Zakas)bbf23fafix: Refactor reporting into FileReport (#19877) (Nicholas C. Zakas)d498887fix: bump @eslint/plugin-kit to 0.3.4 to resolve vulnerability (#19965) (Milos Djermanovic)f46fc6cfix: report only global references in no-implied-eval (#19932) (Nitin Kumar)7863d26fix: remove outdated types inParserOptions.ecmaFeatures(#19944) (ntnyq)3173305fix: update execScript message in no-implied-eval rule (#19937) (TKDev7)Documentation
86e7426docs: Update README (GitHub Actions Bot)Chores
50de1cechore: package.json update for @eslint/js release (Jenkins)74f01a3ci: unpinjitito version^2.5.1(#19970) (루밀LuMir)2ab1381ci: pinjitito version 2.4.2 (#19964) (Francesco Trotta)b7f7545test: switch to flat config mode inSourceCodetests (#19953) (Milos Djermanovic)f5a35e3test: switch to flat config mode in eslint-fuzzer (#19960) (Milos Djermanovic)e22af8crefactor: useCustomRuleDefinitionTypeinJSRuleDefinition(#19949) (Francesco Trotta)e855717chore: switch performance tests to hyperfine (#19919) (Francesco Trotta)2f73a23test: switch to flat config mode inast-utilstests (#19948) (Milos Djermanovic)c565a53chore: excludefurther_reading_links.jsonfrom Prettier formatting (#19943) (Milos Djermanovic)v9.31.0Compare Source
Features
35cf44cfeat: output full actual location in rule tester if different (#19904) (ST-DDT)a6a6325feat: support explicit resource management inno-loop-func(#19895) (Milos Djermanovic)4682cdcfeat: support explicit resource management inno-undef-init(#19894) (Milos Djermanovic)5848216feat: support explicit resource management ininit-declarations(#19893) (Milos Djermanovic)bb370b8feat: support explicit resource management inno-const-assign(#19892) (Milos Djermanovic)Bug Fixes
07fac6cfix: retry on EMFILE when writing autofix results (#19926) (TKDev7)28cc7abfix: Remove incorrect RuleContext types (#19910) (Nicholas C. Zakas)Documentation
664cb44docs: Update README (GitHub Actions Bot)40dbe2adocs: fix mismatch betweenglobalIgnores()code and text (#19914) (MaoShizhong)5a0069ddocs: Update README (GitHub Actions Bot)fef04b5docs: Update working on issues info (#19902) (Nicholas C. Zakas)Chores
3ddd454chore: upgrade to@eslint/js@9.31.0(#19935) (Francesco Trotta)d5054e5chore: package.json update for @eslint/js release (Jenkins)0f4a378chore: update eslint (#19933) (renovate[bot])76c2340chore: bump mocha to v11 (#19917) (루밀LuMir)v9.30.1Compare Source
Bug Fixes
e91bb87fix: allow separate default and named type imports (#19899) (xbinaryx)Documentation
ab7c625docs: Update README (GitHub Actions Bot)dae1e5bdocs: update jsdoc's link (#19896) (JamesVanWaza)Chores
b035f74chore: upgrade to@eslint/js@9.30.1(#19906) (Francesco Trotta)b3dbc16chore: package.json update for @eslint/js release (Jenkins)v9.30.0Compare Source
Features
52a5fcafeat: SupportbasePathproperty in config objects (#19879) (Milos Djermanovic)4ab4482feat: addallowSeparateTypeImportsoption tono-duplicate-imports(#19872) (sethamus)b8a7e7afeat: throw error when column is negative ingetIndexFromLoc(#19831) (루밀LuMir)Bug Fixes
6a0f164fix: handlenulltypelocingetIndexFromLocmethod (#19862) (루밀LuMir)3fbcd70fix: update error message forno-restricted-properties(#19855) (Tanuj Kanti)7ef4cf7fix: remove unnecessary semicolon from fixes (#19857) (Francesco Trotta)7dabc38fix: useprocess.versionin--env-info(#19865) (TKDev7)Documentation
8662ed1docs: adopt eslint-stylistic sub packages related changes (#19887) (ntnyq)20158b0docs: typo in comment for unused variables handling (#19870) (leopardracer)ebfb5b4docs: Fixed Typo in configuration-files.md (#19873) (0-20)4112fd0docs: clarify that boolean is still allowed for rulemeta.deprecated(#19866) (Bryan Mishkin)Chores
2b6491cchore: upgrade to@eslint/js@9.30.0(#19889) (Francesco Trotta)5a5d526chore: package.json update for @eslint/js release (Jenkins)eaf8a41chore: Correct typos in linter tests (#19878) (kilavvy)v9.29.0Compare Source
Features
f686fcbfeat: addecmaVersion: 2026, parsingusingandawait using(#19832) (Milos Djermanovic)19cdd22feat: prune suppressions for non-existent files (#19825) (TKDev7)b3d720ffeat: add ES2025 globals (#19835) (fisker Cheung)677a283feat: add auto-accessor fields support to class-methods-use-this (#19789) (sethamus)dbba058feat: allow global type declaration inno-var(#19714) (Remco Haszing)342bd29feat: ignore type annotations in no-restricted-globals (#19781) (sethamus)786bcd1feat: add allowProperties option to no-restricted-properties (#19772) (sethamus)05b66d0feat: addsourceCode.isGlobalReference(node)method (#19695) (Nitin Kumar)Bug Fixes
85c082cfix: explicit matching behavior with negated patterns and arrays (#19845) (Milos Djermanovic)9bda4a9fix: fixLintOptions.filterCodeBlocktypes (#19837) (ntnyq)7ab77a2fix: correct breaking deprecation of FlatConfig type (#19826) (Logicer)1ba3318fix: addlanguageanddialectstono-use-before-define(#19808) (Francesco Trotta)Documentation
00e3e6adocs: add support for custom name parameter toincludeIgnoreFile(#19795) (루밀LuMir)3aed075docs: Update README (GitHub Actions Bot)a2f888ddocs: enhance documentation with links and fix typos (#19761) (루밀LuMir)53c3235docs: update to clarify prompt usage (#19748) (Jennifer Davis)Chores
5c114c9chore: upgrade @eslint/js@9.29.0 (#19851) (Milos Djermanovic)acf2201chore: package.json update for @eslint/js release (Jenkins)a806994refactor: Remove eslintrc from flat config functionality (#19833) (Nicholas C. Zakas)152ed51test: switch to flat config mode in code path analysis tests (#19824) (Milos Djermanovic)b647239chore: Update first-party dependencies faster with Renovate (#19822) (Nicholas C. Zakas)7abe42erefactor: SafeEmitter -> SourceCodeVisitor (#19708) (Nicholas C. Zakas)e392895perf: improve time complexity ofgetLocFromIndex(#19782) (루밀LuMir)0ed289cchore: remove accidentally committed file (#19807) (Francesco Trotta)v9.28.0Compare Source
Features
b0674befeat: Customization of serialization for languageOptions (#19760) (Nicholas C. Zakas)a95721ffeat: Add--pass-on-unpruned-suppressionsCLI option (#19773) (Milos Djermanovic)bfd0e7afeat: support TypeScript syntax inno-use-before-define(#19566) (Tanuj Kanti)68c61c0feat: support TS syntax inno-shadow(#19565) (Nitin Kumar)0f773effeat: support TS syntax inno-magic-numbers(#19561) (Nitin Kumar)c4a6b60feat: add allowTypeAnnotation to func-style (#19754) (sethamus)b03ad17feat: add TypeScript support toprefer-arrow-callback(#19678) (Tanuj Kanti)bc3c331feat: ignore overloaded function declarations in func-style rule (#19755) (sethamus)Bug Fixes
eea3e7efix: Remove configured global variables fromGlobalScope#implicit(#19779) (Milos Djermanovic)a467de3fix: update context.report types (#19751) (Nitin Kumar)fd467bbfix: remove interopDefault to use jiti's default (#19697) (sethamus)72d16e3fix: avoid false positive inno-unassigned-varsfor declare module (#19746) (Azat S.)81c3c93fix: curly types (#19750) (Eli)Documentation
3ec2082docs: Nested arrays in files config entry (#19799) (Nicholas C. Zakas)89a65b0docs: clarify how config arrays can apply to subsets of files (#19788) (Shais Ch)2ba8a0ddocs: Add description of meta.namespace to plugin docs (#19798) (Nicholas C. Zakas)59dd7e6docs: updatefunc-stylewith examples (#19793) (Tanuj Kanti)e9129e0docs: add global scope'simplicitfield to Scope Manager docs (#19770) (Milos Djermanovic)52f5b7adocs: fix minor typos and add links (#19743) (루밀LuMir)00716a3docs: upfront recommend against using the no-return-await rule (#19727) (Mike DiDomizio)Chores
175b7b8chore: upgrade to@eslint/js@9.28.0(#19802) (Francesco Trotta)844f5a6chore: package.json update for @eslint/js release (Jenkins)62b1c1bchore: update globals to v16 (#19791) (Nitin Kumar)e8a1cb8chore: ignore jiti-v2.0 & jiti-v2.1 for renovate (#19786) (Nitin Kumar)43d3975chore: Add Copilot Instructions file (#19753) (Nicholas C. Zakas)2dfb5ebtest: updateSourceCodeTraversertests (#19763) (Milos Djermanovic)5bc21f9chore: add*.code-workspaceto.gitignore(#19771) (루밀LuMir)f4fa40erefactor: NodeEventGenerator -> SourceCodeTraverser (#19679) (Nicholas C. Zakas)0f49329refactor: use a service to emit warnings (#19725) (Francesco Trotta)20a9e59chore: update dependency shelljs to ^0.10.0 (#19740) (renovate[bot])v9.27.0Compare Source
Features
d71e37ffeat: Allow flags to be set in ESLINT_FLAGS env variable (#19717) (Nicholas C. Zakas)ba456e0feat: Externalize MCP server (#19699) (Nicholas C. Zakas)07c1a7efeat: addallowRegexCharacterstono-useless-escape(#19705) (sethamus)7bc6c71feat: add no-unassigned-vars rule (#19618) (Jacob Bandes-Storch)ee40364feat: convert no-array-constructor suggestions to autofixes (#19621) (sethamus)32957cdfeat: support TS syntax inmax-params(#19557) (Nitin Kumar)Bug Fixes
5687ce7fix: correct mismatched removed rules (#19734) (루밀LuMir)dc5ed33fix: correct types and tighten type definitions inSourceCodeclass (#19731) (루밀LuMir)de1b5defix: correctserviceproperty name inLinter.ESLintParseResulttype (#19713) (Francesco Trotta)60c3e2cfix: sort keys in eslint-suppressions.json to avoid git churn (#19711) (Ron Waldon-Howe)9da90cafix: addallowReservedtoLinter.ParserOptionstype (#19710) (Francesco Trotta)fbb8be9fix: addinfotoESLint.DeprecatedRuleUsetype (#19701) (Francesco Trotta)Documentation
25de550docs: Update description of frozen rules to mention TypeScript (#19736) (Nicholas C. Zakas)bd5def6docs: Clean up configuration files docs (#19735) (Nicholas C. Zakas)4d0c60ddocs: Add Neovim to editor integrations (#19729) (Maria José Solano)71317ebdocs: Update README (GitHub Actions Bot)4c289e6docs: Update README (GitHub Actions Bot)f0f0d46docs: clarify that unused suppressions cause non-zero exit code (#19698) (Milos Djermanovic)8ed3273docs: fix internal usages ofConfigDatatype (#19688) (Francesco Trotta)eb316a8docs: addfmtandchecksections toPackage.json Conventions(#19686) (루밀LuMir)a3a2559docs: fix wording in Combine Configs (#19685) (Milos Djermanovic)c8d17e1docs: Update README (GitHub Actions Bot)Chores
f8f1560chore: upgrade @eslint/js@9.27.0 (#19739) (Milos Djermanovic)ecaef73chore: package.json update for @eslint/js release (Jenkins)596fdc6chore: update dependency @arethetypeswrong/cli to ^0.18.0 (#19732) (renovate[bot])f791da0chore: remove unbalanced curly brace from.editorconfig(#19730) (Maria José Solano)e86edeerefactor: Consolidate Config helpers (#19675) (Nicholas C. Zakas)cf36352chore: remove shared types (#19718) (Francesco Trotta)f60f276refactor: Easier RuleContext creation (#19709) (Nicholas C. Zakas)58a171echore: update dependency @eslint/plugin-kit to ^0.3.1 (#19712) (renovate[bot])3a075a2chore: update dependency @eslint/core to ^0.14.0 (#19715) (renovate[bot])44bac9dci: run tests in Node.js 24 (#19702) (Francesco Trotta)35304ddchore: add missingfundingfield to packages (#19684) (루밀LuMir)f305bebtest: mockprocess.emitWarningto prevent output disruption (#19687) (Francesco Trotta)prettier/eslint-config-prettier (eslint-config-prettier)
v9.1.2Compare Source
pillarjs/iconv-lite (iconv-lite)
v0.7.0Compare 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.0Compare Source
What's Changed
book-searchicon (#3573) by @Muhammad-Aqib-Bashir in #3580scootericon by @Ahmed-Dghaies in #3818plugicon by @jamiemlaw in #3841thermometer-sunicon by @jguddas in #3773estimated-weighticon by @nathan-de-pachtere in #3822flashlighticons by @jamiemlaw in #3843bubblesicon by @jguddas in #3774vanicon by @Ahmed-Dghaies in #3821New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.555.0...0.556.0
v0.555.0: Version 0.555.0Compare Source
What's Changed
calendarsicon by @jguddas in #3795waves-arrow-upandwaves-arrow-downby @ericfennis in #3463scaleicon by @jamiemlaw in #3800formicon by @jguddas in #3558Full Changelog: https://github.com/lucide-icons/lucide/compare/0.554.0...0.555.0
v0.554.0: Version 0.554.0Compare Source
What's Changed
ampersandicon by @jguddas in #3771folder-git-2icon by @jguddas in #3790anchoricon by @jamiemlaw in #2523calendarsicon by @jguddas in #3788Breaking change
For
lucide-reactandlucide-solid, imports forFingerprinticon are changed toFingerprintPattern.Lucide React
Lucide Solid
New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.553.0...0.554.0
v0.553.0: Version 0.553.0Compare Source
What's Changed
mouse-pointer-2-officon by @domingasp in #3570ruler-dimension-lineicon by @karsa-mistmere in #3433classNameprop by @ocavue in #3751New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.552.0...0.553.0
v0.552.0: Version 0.552.0Compare Source
What's Changed
solar-panelicon by @UsamaKhan in #2780Full Changelog: https://github.com/lucide-icons/lucide/compare/0.551.0...0.552.0
v0.551.0: Version 0.551.0Compare Source
What's Changed
clock-checkicon by @jguddas in #2402Full Changelog: https://github.com/lucide-icons/lucide/compare/0.550.0...0.551.0
v0.550.0: Version 0.550.0Compare Source
What's Changed
helicoptericon by @liloudreams in #2760New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.549.0...0.550.0
v0.549.0: Version 0.549.0Compare Source
What's Changed
pnpm installwithpnpm addacross documentation. by @josch87 in #3735git-branch-minusicon by @joris-gallot in #3586New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.548.0...0.549.0
v0.548.0: Version 0.548.0Compare Source
What's Changed
gamepad-directionalicon by @felipeajzanetti in #3693New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.547.0...0.548.0
v0.547.0: Version 0.547.0Compare Source
What's Changed
<template>(#2635) by @KhalidAlansary in #3576birdhouseicon by @hieu-onefold in #3378New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.546.0...0.547.0
v0.546.0: Version 0.546.0Compare Source
What's Changed
receipt-texticon by @jguddas in #3553squirclebase shape snippet by @danielbayley in #3674swordicon by @jguddas in #3421monitor-cloudicon by @karsa-mistmere in #3037New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.545.0...0.546.0
v0.545.0: Version 0.545.0Compare Source
What's Changed
flameicon by @jamiemlaw in #3600square-micon by @jguddas in #3549combineicon by @jguddas in #3200building-2icon by @karsa-mistmere in #3509motorbikeicon by @jamiemlaw in #3371Full Changelog: https://github.com/lucide-icons/lucide/compare/0.544.0...0.545.0
v0.544.0: Version 0.544.0Compare Source
What's Changed
ev-chargericon by @UsamaKhan in #2781New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.543.0...0.544.0
v0.543.0: Version 0.543.0Compare Source
What's Changed
churchicon by @karsa-mistmere in #2971messages-squareby @jamiemlaw in #3529bugicons by @jamiemlaw in #3574panel-top-bottom-dashedicon by @jguddas in #3584message-square-quoteicon by @jguddas in #3550shipmetadata by @jguddas in #3559id-card-lanyardmetadata by @jguddas in #3534calendar-cogicon by @jguddas in #3583house-hearticon by @danielbayley in #3239Full Changelog: https://github.com/lucide-icons/lucide/compare/0.542.0...0.543.0
v0.542.0: Version 0.542.0Compare Source
What's Changed
list-chevrons-down-upicon by @juliankellydesign in #3492New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.541.0...0.542.0
v0.541.0: Version 0.541.0Compare Source
What's Changed
chromeicon & renamed tochromiumby @jguddas in #3572wallpapericon by @jguddas in #3566cogicon by @jguddas in #3548buildingicon by @karsa-mistmere in #3510Full Changelog: https://github.com/lucide-icons/lucide/compare/0.540.0...0.541.0
v0.540.0: Version 0.540.0Compare Source
What's Changed
umbrellaicon by @karsa-mistmere in #3490cameraicon by @karsa-mistmere in #3539roseicon by @jguddas in #1972Full Changelog: https://github.com/lucide-icons/lucide/compare/0.539.0...0.540.0
v0.539.0: Version 0.539.0Compare Source
What's Changed
brick-wall-shieldicon by @karsa-mistmere in #3476Full Changelog: https://github.com/lucide-icons/lucide/compare/0.538.0...0.539.0
v0.538.0: Version 0.538.0Compare Source
What's Changed
appleicon by @karsa-mistmere in #3505storeicon by @karsa-mistmere in #3501mic-officon by @lieonlion in #2823kayakicon by @jpjacobpadilla in #3054Full Changelog: https://github.com/lucide-icons/lucide/compare/0.537.0...0.538.0
v0.537.0: Version 0.537.0Compare Source
What's Changed
xicon by @jamiemlaw in #3341spadeicon by @karsa-mistmere in #3502schoolicon by @karsa-mistmere in #2968circle-staricon by @karsa-mistmere in #3507Full Changelog: https://github.com/lucide-icons/lucide/compare/0.536.0...0.537.0
v0.536.0: Version 0.536.0Compare Source
What's Changed
hospitalicon by @karsa-mistmere in #2969.jsextensions to imports by @abdel-17 in #2950a-arrow-*icons by @jguddas in #3474cake-sliceicon by @jguddas in #3345turntableicon by @karsa-mistmere in #3429New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.535.0...0.536.0
v0.535.0: Version 0.535.0Compare 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.0Compare Source
What's Changed
settingsicon by @karsa-mistmere in #3467mails,tags,files,file-stack,book-copyandfoldersicon by @jguddas in #2935gavelicon by @karsa-mistmere in #3465sun-moonicon & arcifiedmoonicons by @karsa-mistmere in #3380Full Changelog: https://github.com/lucide-icons/lucide/compare/0.533.0...0.534.0
v0.533.0: Version 0.533.0Compare Source
What's Changed
sailboaticon by @karsa-mistmere in #3460a-large-smallicon by @vichotech in #3396heart-*icons by @jguddas in #3061folder-symlinkicon by @jguddas in #2558flag-triangle-*icons by @jamiemlaw in #3438closed-captionicon by @UsamaKhan in #2910New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.532.0...0.533.0
v0.532.0: Version 0.532.0Compare Source
What's Changed
handbagicon by @jamiemlaw in #3298wrenchicon by @karsa-mistmere in #3459Full Changelog: https://github.com/lucide-icons/lucide/compare/0.531.0...0.532.0
v0.531.0: Version 0.531.0Compare Source
What's Changed
user-staricon by @karsa-mistmere in #3464clipboard-clockicon by @beanduong in #3427New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.530.0...0.531.0
v0.530.0: Version 0.530.0Compare Source
What's Changed
user-staricon by @MArtytraM99 in #3331New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.529.0...0.530.0
v0.529.0: Version 0.529.0Compare Source
What's Changed
shovelicon by @karsa-mistmere in #3458castleicon by @karsa-mistmere in #2972location-edittomap-pin-pencilby @ericfennis in #3462map-minusicon by @MarianoFranzese in #3259New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.528.0...0.529.0
v0.528.0: Version 0.528.0Compare Source
What's Changed
lassoicon by @jguddas in #3454gemicon by @karsa-mistmere in #3442refresh-ccw-dotto match otherrefresh-icons by @jamiemlaw in #3437croissanticon by @karsa-mistmere in #3428sprouticon by @jamiemlaw in #3430sparklesicon by @karsa-mistmere in #3426arrow-big-icons by @jamiemlaw in #3356hat-glassesicon by @karsa-mistmere in #3431Full Changelog: https://github.com/lucide-icons/lucide/compare/0.527.0...0.528.0
v0.527.0: Version 0.527.0Compare Source
What's Changed
monitor-doticon by @jguddas in #3452spotlighticon by @chessurisme in #3450Full Changelog: https://github.com/lucide-icons/lucide/compare/0.526.0...0.527.0
v0.526.0: Version 0.526.0Compare Source
What's Changed
circle-parking-officon by @jguddas in #3343brainicon by @jamiemlaw in #3381cableicon by @jguddas in #3374podcasticon by @jguddas in #3385trashicon by @karsa-mistmere in #3394pen-lineandpencil-lineicon by @jguddas in #2663banicon by @karsa-mistmere in #3434magneticon by @karsa-mistmere in #3435wifi-syncicon by @luisdlopera in #3132New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.525.0...0.526.0
v0.525.0: Version 0.525.0Compare Source
What's Changed
megaphoneicon by @jamiemlaw in #2448shrubicon by @jguddas in #2292sun-moonicon by @zishankadri in #3328flagicon by @jamiemlaw in #3370tool-caseicon by @AlexNaskida in #3333New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.524.0...0.525.0
v0.524.0: Version 0.524.0Compare Source
What's Changed
desserticon by @jguddas in #3362ligatureicon by @jamiemlaw in #3369vector-squareicon by @chessurisme in #2531Full Changelog: https://github.com/lucide-icons/lucide/compare/0.523.0...0.524.0
v0.523.0: Version 0.523.0Compare Source
What's Changed
bottle-wineicon by @jguddas in #3265Full Changelog: https://github.com/lucide-icons/lucide/compare/0.522.0...0.523.0
v0.522.0: Version 0.522.0Compare Source
What's Changed
shopping-bagicon by @jguddas in #2483line-squiggleicon by @chessurisme in #2393Full Changelog: https://github.com/lucide-icons/lucide/compare/0.521.0...0.522.0
v0.521.0: Version 0.521.0Compare Source
What's Changed
circle-arrow-leftandcircle-arrow-rightby @cstayyab in #3269squircle-dashedicon by @aramsoneson in #3262New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.520.0...0.521.0
v0.520.0: Version 0.520.0Compare Source
What's Changed
georgian-lariicon by @kivicode in #3323New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.519.0...0.520.0
v0.519.0: Version 0.519.0Compare Source
What's Changed
blocksicon by @jguddas in #3267spoolicon by @karsa-mistmere in #2926Full Changelog: https://github.com/lucide-icons/lucide/compare/0.518.0...0.519.0
v0.518.0: Version 0.518.0Compare Source
What's Changed
eggandegg-officons by @jamiemlaw in #3299*-helpand*-questionicons to*-question-markby @jguddas in #2540droneicon by @shopped in #3247New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.517.0...0.518.0
v0.517.0: Version 0.517.0Compare Source
What's Changed
barrelicon by @karsa-mistmere in #1955Full Changelog: https://github.com/lucide-icons/lucide/compare/0.516.0...0.517.0
v0.516.0: Version 0.516.0Compare Source
What's Changed
stampicon by @jamiemlaw in #3310pocketicon by @jamiemlaw in #3304micicon by @jamiemlaw in #3301radioicon by @jguddas in #3293wifi-cogicon by @luisdlopera in #3133New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.515.0...0.516.0
v0.515.0: Version 0.515.0Compare Source
What's Changed
house-plusicon by @jguddas in #3238radiationicon by @jamiemlaw in #3303rectangle-circleicon by @zefir-git in #3245New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.514.0...0.515.0
v0.514.0: Version 0.514.0Compare Source
What's Changed
trophyicon by @jguddas in #2475bandageicon by @jamiemlaw in #3300settings-2icon by @jguddas in #2974New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.513.0...0.514.0
v0.513.0: Version 0.513.0Compare 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.0Compare Source
What's Changed
circle-pound-sterlingicon by @lieonlion in #2822square-check-bigicon by @jguddas in #3156list-collapseicon by @jguddas in #3081battery-*icons by @jguddas in #3083paperclipicon by @jguddas in #2956erasericon by @jguddas in #3076cloud-checkicon by @lscheibel in #2612id-card-lanyardicon by @python2911 in #2898file-badgeicon by @jguddas in #2934grid-3x2icon by @qubrat in #3216New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.511.0...0.512.0
v0.511.0: Version 0.511.0Compare Source
What's Changed
<line>and<polyline>by @jamiemlaw in #3168clock-6icon by @jguddas in #3209axis-3dicon by @jguddas in #3199chevrons-left-right-ellipsisicon by @jguddas in #3189square-codeicon by @jguddas in #3173satelliteicon by @karsa-mistmere in #3180factoryicon by @karsa-mistmere in #2970universityicon by @karsa-mistmere in #2965warehouseicon by @karsa-mistmere in #2966landmarkicon by @karsa-mistmere in #2967custom-words.txtby @Abdalrhman-Almarakeby in #3193square-dashed-top-solidicon by @juanpablofernandez in #3204New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.510.0...0.511.0
v0.510.0: Version 0.510.0Compare Source
What's Changed
bracketsicon by @jguddas in #3172check-lineicon by @oosawy in #2890New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.509.0...0.510.0
v0.509.0: Version 0.509.0Compare Source
What's Changed
axeicon by @karsa-mistmere in #3201gpuicon by @xandykati98 in #2955New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.508.0...0.509.0
v0.508.0: Version 0.508.0Compare Source
What's Changed
phone-icons by @jamiemlaw in #3169laptopicon by @jguddas in #3190lenstag to icons with magnifying glass by @Abdalrhman-Almarakeby in #3192Full Changelog: https://github.com/lucide-icons/lucide/compare/0.507.0...0.508.0
v0.507.0: Version 0.507.0Compare Source
What's Changed
square-penicon by @jguddas in #3155searchicon by @jguddas in #3140guitaricon by @jamiemlaw in #3115air-venticon by @jguddas in #3117dumbbellicon by @jguddas in #3107touchpad-officon by @jguddas in #3118bell-electricicon by @jguddas in #3139menuicon by @jguddas in #3142mailicon by @jguddas in #3144soap-dispenser-dropleticon by @jguddas in #3088pandaicon by @chessurisme in #2094Full Changelog: https://github.com/lucide-icons/lucide/compare/0.506.0...0.507.0
v0.506.0: Version 0.506.0Compare Source
What's Changed
usersicon by @jguddas in #3143locate-officon by @jamiemlaw in #3137expandicon by @jguddas in #2831Full Changelog: https://github.com/lucide-icons/lucide/compare/0.505.0...0.506.0
v0.505.0: Version 0.505.0Compare Source
What's Changed
package-2icon by @jguddas in #3174brush-cleaningicon by @karsa-mistmere in #2395Full Changelog: https://github.com/lucide-icons/lucide/compare/0.504.0...0.505.0
v0.504.0: Version 0.504.0Compare Source
What's Changed
brushicon by @jguddas in #3011hamburgericon by @karsa-mistmere in #3165Full Changelog: https://github.com/lucide-icons/lucide/compare/0.503.0...0.504.0
v0.503.0: Version 0.503.0Compare Source
What's Changed
file-badge-2icon by @jguddas in #2933wifi-penicon by @luisdlopera in #2576New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.502.0...0.503.0
v0.502.0: Version 0.502.0Compare Source
What's Changed
calendar-plusicon by @jguddas in #3085book-keyicon by @jguddas in #3062clipboard-pasteicon by @jguddas in #3075orbiticon by @jguddas in #3074babyicon by @jguddas in #3073ruler-dimension-lineicon by @jguddas in #2535New Contributors
Full Changelog: https://github.com/lucide-icons/lucide/compare/0.501.0...0.502.0
KingSora/OverlayScrollbars (overlayscrollbars)
v2.13.0Compare Source
Features
options.debounce. The option is now an object which results in more freedom / fine grained debounce options. A debounce can now be specified formutations,resizes,eventsandenvironmental changesindependently. The oldoptions.debounceoption syntax is still supported and works but its deprecated in favor of the new syntax. #744 #729v2.12.0Compare Source
Improvements
ScrollbarsHidingPluginis not being used. In this case the custom scrollbars aren't rendered over the native scrollbars anymore. SimpleBar #726v2.11.5Compare Source
Bug Fixes
v2.11.4Compare Source
Bug Fixes
clickevent when its no longer required. #720v2.11.3Compare Source
Improvements
CSS Custom Properties:--os-viewport-overflow-xand--os-viewport-overflow-ywhich can be used to better control theoverflowstyle of theviewportelement.autovalue for overwrites of theoverflowstyle of theviewport.prettier/prettier (prettier)
v3.7.4Compare Source
diff
LWC: Avoid quote around interpolations (#18383 by @kovsu)
TypeScript: Fix comment inside union type gets duplicated (#18393 by @fisker)
TypeScript: Fix unstable comment print in union type comments (#18395 by @fisker)
v3.7.3Compare 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.2Compare Source
diff
JavaScript: Fix string print when switching quotes (#18351 by @fisker)
JavaScript: Preserve quote for embedded HTML attribute values (#18352 by @kovsu)
TypeScript: Fix comment in empty type literal (#18364 by @fisker)
v3.7.1Compare 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.0Compare Source
diff
🔗 Release Notes
v3.6.2Compare Source
diff
Markdown: Add missing blank line around code block (#17675 by @fisker)
v3.6.1Compare Source
diff
TypeScript: Allow const without initializer (#17650, #17654 by @fisker)
Miscellaneous: Avoid closing files multiple times (#17665 by @43081j)
When reading a file to infer the interpreter from a shebang, we use the
n-readlineslibrary 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-readlinesdid not already closethem.
v3.6.0Compare Source
diff
🔗 Release Notes
sveltejs/prettier-plugin-svelte (prettier-plugin-svelte)
v3.4.0Compare Source
tailwindlabs/prettier-plugin-tailwindcss (prettier-plugin-tailwindcss)
v0.7.2Compare Source
Fixed
prettier-plugin-sveltewhen using Prettier v3.7+ (#418)v0.7.1Compare Source
Fixed
v0.7.0Compare Source
Added
@source,@plugin, and@config(#387)Changed
ParserOptionsandRequiredOptionstypes (#354)prettier-plugin-import-sort(#385)Fixed
@apply(#392)v0.6.14Compare Source
v0.6.13Compare Source
prettier-plugin-multiline-arraysandprettier-plugin-jsdocwork when used together with this plugin (#372)v0.6.12Compare Source
sveltejs/svelte (svelte)
v5.45.6Compare Source
Patch Changes
fix: don't issue a11y warning for
<video>without captions if it has nosrc(#17311)fix: add
srcObjectto permitted<audio>/<video>attributes (#17310)v5.45.5Compare 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.4Compare Source
Patch Changes
chore: move DOM-related effect properties to
effect.nodes(#17293)fix: allow
$props.id()to occur after anawait(#17285)fix: keep reactions up to date even when read outside of effect (#17295)
v5.45.3Compare 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.2Compare Source
Patch Changes
fix: array destructuring after await (#17254)
fix: throw on invalid
{@​tag}s (#17256)v5.45.1Compare Source
Patch Changes
v5.45.0Compare Source
Minor Changes
print(...)function (#16188)v5.44.1Compare 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.0Compare Source
Minor Changes
hydratableAPI (#17154)v5.43.15Compare 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.14Compare 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.13Compare Source
Patch Changes
v5.43.12Compare Source
Patch Changes
v5.43.11Compare Source
Patch Changes
perf: don't use tracing overeager during dev (#17183)
fix: don't cancel transition of already outroing elements (#17186)
v5.43.10Compare Source
Patch Changes
v5.43.9Compare 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
@constin boundary hydrates correctly (#17165)fix: take blockers into account when creating
#awaitblocks (#17137)fix: parallelize async
@consts in the template (#17165)v5.43.8Compare Source
Patch Changes
v5.43.7Compare 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.6Compare Source
Patch Changes
v5.43.5Compare 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.4Compare Source
Patch Changes
chore: simplify connection/disconnection logic (#17105)
fix: reconnect deriveds to effect tree when time-travelling (#17105)
v5.43.3Compare 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.2Compare Source
Patch Changes
v5.43.1Compare 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.0Compare Source
Minor Changes
Patch Changes
v5.42.3Compare Source
Patch Changes
fix: handle
<svelte:head>rendered asynchronously (#17052)fix: don't restore batch in
#await(#17051)v5.42.2Compare Source
Patch Changes
fix: better error message for global variable assignments (#17036)
chore: tweak memoizer logic (#17042)
v5.42.1Compare Source
Patch Changes
discard()aftercommit()(#17034)v5.42.0Compare Source
Minor Changes
forkAPI (#17004)Patch Changes
fix: always allow
setContextbefore first await in component (#17031)fix: less confusing names for inspect errors (#17026)
v5.41.4Compare 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
failedsnippet (#16995)v5.41.3Compare Source
Patch Changes
chore: exclude vite optimized deps from stack traces (#17008)
perf: skip repeatedly traversing the same derived (#17016)
v5.41.2Compare 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
$inspectlogs come from the callsite (#17001)fix: ensure guards (eg. if, each, key) run before their contents (#16930)
v5.41.1Compare Source
Patch Changes
fix: place
let:declarations before{@​const}declarations (#16985)fix: improve
each_key_without_aserror (#16983)chore: centralise branch management (#16977)
v5.41.0Compare Source
Minor Changes
$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
eachblock haskeybut noasclause (#16966)v5.40.2Compare Source
Patch Changes
pendingbranch of SSR boundary (#16965)v5.40.1Compare Source
Patch Changes
v5.40.0Compare Source
Minor Changes
createContextutility for type-safe context (#16948)Patch Changes
chore: simplify
batch.apply()(#16945)fix: don't rerun async effects unnecessarily (#16944)
v5.39.13Compare Source
Patch Changes
fix: add missing type for
frattribute forradialGradienttags in svg (#16943)fix: unset context on stale promises (#16935)
v5.39.12Compare 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
pendingis an attribute (#16919)fix: generate correct code for
eachblocks with async body (#16923)v5.39.11Compare Source
Patch Changes
v5.39.10Compare 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
$$propsfor excluded props (#16898)fix: correctly transform
$derivedprivate fields on server (#16894)fix: add
UNKNOWNevaluation value before breaking forbinding.initial===SnippetBlock(#16910)v5.39.9Compare Source
Patch Changes
v5.39.8Compare Source
Patch Changes
fix: check boundary
pendingattribute 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:checkederror message to clarify usage with radio inputs (#16874)v5.39.7Compare Source
Patch Changes
chore: simplify batch logic (#16847)
fix: rebase pending batches when other batches are committed (#16866)
fix: wrap async
childrenin$$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.6Compare 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.5Compare Source
Patch Changes
fix: allow
{@​html await ...}and snippets with async content on the server (#16817)fix: use nginx SSI-compatible comments for
$props.id()(#16820)v5.39.4Compare Source
Patch Changes
awaitin<script>(#16806)v5.39.3Compare Source
Patch Changes
fix: remove outer hydration markers (#16800)
fix: async hydration (#16797)
v5.39.2Compare Source
Patch Changes
fix: preserve SSR context when block expressions contain
await(#16791)chore: bump some devDependencies (#16787)
v5.39.1Compare Source
Patch Changes
fix: add missing type for
frattribute forradialGradienttags in svg (#16943)fix: unset context on stale promises (#16935)
v5.39.0Compare Source
Minor Changes
Patch Changes
v5.38.10Compare Source
Patch Changes
v5.38.9Compare 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:boundaryunless the boundary is an error boundary (#16746)v5.38.8Compare Source
Patch Changes
$effect.pendingcount to the correct boundary (#16732)v5.38.7Compare Source
Patch Changes
fix: replace
undefinedwithvoid(0)in CallExpressions (#16693)fix: ensure batch exists when resetting a failed boundary (#16698)
fix: place store setup inside async body (#16687)
v5.38.6Compare Source
Patch Changes
flushSyncwhile flushing effects (#16674)v5.38.5Compare Source
Patch Changes
v5.38.3Compare Source
Patch Changes
fix: ensure correct order of template effect values (#16655)
fix: allow async
{@​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_lossin async mode (#16644)v5.38.2Compare 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.1Compare Source
Patch Changes
v5.38.0Compare Source
Minor Changes
awaitinside@constdeclarations (#16542)Patch Changes
fix: remount at any hydration error (#16248)
chore: emit
await_reactivity_lossinfor awaitloops (#16521)fix: emit
snippet_invalid_exportinstead ofundefined_exportfor exported snippets (#16539)v5.37.3Compare Source
Patch Changes
v5.37.2Compare 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.1Compare Source
Patch Changes
chore: remove some todos (#16515)
fix: allow await expressions inside
{#await ...}argument (#16514)fix:
append_stylesin 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.0Compare Source
Minor Changes
compileModule(#16362)Patch Changes
v5.36.17Compare Source
Patch Changes
fix: throw on duplicate class field declarations (#16502)
fix: add types for
partattribute to svg attributes (#16499)v5.36.16Compare 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.15Compare Source
Patch Changes
v5.36.14Compare 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.13Compare Source
Patch Changes
v5.36.12Compare Source
Patch Changes
capture_signalsto legacy module (#16456)v5.36.10Compare Source
Patch Changes
v5.36.9Compare 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.8Compare Source
Patch Changes
fix: keep effect in the graph if it has an abort controller (#16430)
chore: Switch
payload.outto an array (#16428)v5.36.7Compare Source
Patch Changes
<svelte:...>elements to inherit fromSvelteHTMLElements(#16424)v5.36.6Compare 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.5Compare Source
Patch Changes
fix: silence
$inspecterrors when the effect is about to be destroyed (#16391)fix: more informative error when effects run in an infinite loop (#16405)
v5.36.4Compare Source
Patch Changes
fix: avoid microtask in flushSync (#16394)
fix: ensure compiler state is reset before compilation (#16396)
v5.36.3Compare Source
Patch Changes
fix: don't log
await_reactivity_losswarning when signal is read inuntrack(#16385)fix: better handle $inspect on array mutations (#16389)
fix: leave proxied array
lengthuntouched when deleting properties (#16389)fix: update
$effect.pending()immediately after a batch is removed (#16382)v5.36.2Compare Source
Patch Changes
fix: add
$effect.pending()to types (#16376)fix: add
pendingsnippet to<svelte:boundary>types (#16379)v5.36.1Compare Source
Patch Changes
fix: throw on duplicate class field declarations (#16502)
fix: add types for
partattribute to svg attributes (#16499)v5.36.0Compare Source
Minor Changes
awaitin components when using theexperimental.asynccompiler option (#15844)Patch Changes
fix: silence a11y warning for inert elements (#16339)
chore: clean up a11y analysis code (#16345)
v5.35.7Compare 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.6Compare Source
Patch Changes
chore: simplify reaction/source ownership tracking (#16333)
chore: simplify internal component
pop()(#16331)v5.35.5Compare 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.4Compare Source
Patch Changes
v5.35.3Compare Source
Patch Changes
fix: account for mounting when
select_optioninattribute_effect(#16309)fix: do not proxify the value assigned to a derived (#16302)
v5.35.2Compare Source
Patch Changes
v5.35.1Compare Source
Patch Changes
__svelte_metaobjects (#16255)v5.35.0Compare Source
Minor Changes
getAbortSignal()(#16266)Patch Changes
v5.34.9Compare Source
Patch Changes
v5.34.8Compare Source
Patch Changes
fix: untrack
$inspect.withand 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.7Compare Source
Patch Changes
v5.34.6Compare Source
Patch Changes
v5.34.5Compare 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.4Compare Source
Patch Changes
fix: don't set state withing
with_parentin proxy (#16176)fix: use compiler-driven reactivity in legacy mode template expressions (#16100)
v5.34.3Compare 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.messageif it's not configurable (#16149)v5.34.2Compare Source
Patch Changes
fix: add missing typings for some dimension bindings (#16142)
fix: prune typescript class field declarations (#16154)
v5.34.1Compare Source
Patch Changes
v5.34.0Compare Source
Minor Changes
$inspect.trace(#16060)Patch Changes
fix: add
commandandcommandfortoHTMLButtonAttributes(#16117)fix: better
$inspect.trace()output (#16131)fix: properly hydrate dynamic css props components and remove element removal (#16118)
v5.33.19Compare Source
Patch Changes
is_flushingifflushSyncis called and there's no scheduled effect (#16119)v5.33.18Compare Source
Patch Changes
chore: bump
esrapdependency (#16106)fix: destructuring state in ssr (#16102)
v5.33.17Compare Source
Patch Changes
ecmaVersionto parse import attributes (#16098)v5.33.16Compare Source
Patch Changes
fix: visit expression when destructuring state declarations (#16081)
fix: move xmlns attribute from SVGAttributes to to DOMAttributes (#16080)
v5.33.15Compare Source
Patch Changes
v5.33.14Compare Source
Patch Changes
Revert "feat: enable TS autocomplete for Svelte HTML element definitions" (#16063)
fix: destructuring snippet arguments (#16068)
v5.33.13Compare Source
Patch Changes
EachBlockvisitor (#16058)v5.33.12Compare Source
Patch Changes
v5.33.11Compare Source
Patch Changes
v5.33.10Compare Source
Patch Changes
fill: 'forwards'on transition animations to prevent flicker (#16035)v5.33.9Compare Source
Patch Changes
v5.33.8Compare Source
Patch Changes
select_optionif'value'is innext(#16032)v5.33.7Compare Source
Patch Changes
bind:valueto select with stores (#16028)v5.33.6Compare Source
Patch Changes
fix: falsy attachments on components (#16021)
fix: correctly mark elements as selected during SSR (#16017)
v5.33.5Compare Source
Patch Changes
fix: handle derived destructured iterators (#16015)
fix: avoid rerunning attachments when unrelated spread attributes change (#15961)
v5.33.4Compare Source
Patch Changes
fix: narrow
defaultCheckedto boolean (#16009)fix: warn when using rest or identifier in custom elements without props option (#16003)
v5.33.3Compare Source
Patch Changes
fix: allow using typescript in
customElement.extendoption (#16001)fix: cleanup event handlers on media elements (#16005)
v5.33.2Compare 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.1Compare Source
Patch Changes
is_flushingifflushSyncis called and there's no scheduled effect (#16119)v5.33.0Compare Source
Minor Changes
feat: XHTML compliance (#15538)
feat: add
fragments: 'html' | 'tree'option for wider CSP compliance (#15538)v5.32.2Compare Source
Patch Changes
chore: simplify
<pre>cleaning (#15980)fix: attach
__svelte_metacorrectly to elements following a CSS wrapper (#15982)fix: import untrack directly from client in
svelte/attachments(#15974)v5.32.1Compare Source
Patch Changes
<select multiple>value is given (#14816)v5.32.0Compare Source
Minor Changes
feat: warn on implicitly closed tags (#15932)
feat: attachments
fromActionutility (#15933)Patch Changes
v5.31.1Compare Source
Patch Changes
MediaQuery(#15937)v5.31.0Compare Source
Minor Changes
Patch Changes
AttachTaginTagunion type inside theASTnamespace from"svelte/compiler"(#15946)v5.30.2Compare Source
Patch Changes
fix: falsy attachments types (#15939)
fix: handle more hydration mismatches (#15851)
v5.30.1Compare Source
Patch Changes
typeParamstoSnippetBlockfor legacy parser (#15921)v5.30.0Compare Source
Minor Changes
v5.29.0Compare Source
Minor Changes
v5.28.7Compare 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.6Compare Source
Patch Changes
fix: use
transform.readforownership_validator.mutationarray (#15848)fix: don't redeclare
$slots(#15849)v5.28.5Compare Source
Patch Changes
fix: proxify the value in assignment shorthands to the private field (#15862)
fix: more frequently update
bind:bufferedto actual value (#15874)v5.28.4Compare 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.3Compare 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.4Compare Source
Patch Changes
v4.3.3Compare Source
Patch Changes
fix: prevent file watcher issue (#2859)
fix: allow
undefinedandnullvalues for#eachin Svelte 5 (#2863)perf: check if file content changed in tsconfig file watch (#2859)
v4.3.2Compare 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.1Compare Source
fix: handle object literal in MustacheTag (#2805)
v4.3.0Compare Source
awaitsupport (#2799)v4.2.2Compare Source
v4.2.1Compare Source
v4.2.0Compare Source
privatenumber/tsx (tsx)
v4.21.0Compare Source
Features
This release is also available on:
v4.20.6Compare Source
Bug Fixes
This release is also available on:
v4.20.5Compare Source
Bug Fixes
This release is also available on:
v4.20.4Compare Source
Bug Fixes
This release is also available on:
v4.20.3Compare Source
Bug Fixes
This release is also available on:
v4.20.2Compare Source
Bug Fixes
This release is also available on:
v4.20.1Compare Source
Bug Fixes
This release is also available on:
v4.20.0Compare Source
Bug Fixes
Features
This release is also available on:
microsoft/TypeScript (typescript)
v5.9.3: TypeScript 5.9.3Compare 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.9Compare 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.1Compare 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.0Compare 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.0Compare 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.4Compare 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.3Compare 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.2Compare 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.1Compare 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.0Compare Source
🚀 Features
❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.45.0Compare 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.1Compare 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.0Compare 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.0Compare Source
🩹 Fixes
❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.42.0Compare Source
🚀 Features
🩹 Fixes
❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.41.0Compare 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.0Compare Source
🩹 Fixes
plugin,parser, andconfigsthat are compatible with bothdefineConfig()andtseslint.config()(#11475)❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.39.1Compare Source
🩹 Fixes
file://urls in stack trace when inferringtsconfigRootDir(#11464)❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.39.0Compare Source
🚀 Features
❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.38.0Compare Source
🩹 Fixes
extendsintseslint.config()(#11361)❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.37.0Compare Source
🚀 Features
❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.36.0Compare Source
🚀 Features
basePathintseslint.config()(#11357)❤️ Thank You
You can read about our versioning strategy and releases on our website.
v8.35.1Compare 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.0Compare 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.1Compare 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.0Compare 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.1Compare 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.0Compare 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.1Compare 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.21Compare Source
Please refer to CHANGELOG.md for details.
v5.4.20Compare Source
Please refer to CHANGELOG.md for details.
eemeli/yaml (yaml)
v2.8.2Compare Source
v2.8.1Compare Source
v2.8.0Compare Source
--mergeoption to CLI tool (#611)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.
This PR has been generated by Renovate Bot.