Note: This PR body was truncated due to platform limits.
This PR contains the following updates:
Release Notes
farm-fe/farm (@farmfe/cli)
Compare Source
web-infra-dev/rspack (@rspack/cli)
Compare Source
What's Changed
Bug Fixes 🐞
- fix: reexports in arrow-only environments without const by@chenjiahan in#12484
- fix: re-validate HttpUriPlugin redirects against allowedUris and enforce http(s) and max redirects by@JSerFeng in#12463
Full Changelog:web-infra-dev/rspack@v1.6.7...v1.6.8
Compare Source
Highlights 💡
🎉 Support forimport.meta.filename,import.meta.dirname, andimport.meta.resolve
Rspack now supports theimport.meta.filename,import.meta.dirname, andimport.meta.resolve meta properties in ESM modules.
These properties provide a standardized way to access file and directory paths in ES modules, similar to the CommonJS__filename and__dirname variables:
// Get the absolute path of the current module fileconsole.log(import.meta.filename);// e.g., "/path/to/project/src/index.js"// Get the directory path of the current moduleconsole.log(import.meta.dirname);// e.g., "/path/to/project/src"// Resolve a module specifier to an absolute URLconstresolvedPath=import.meta.resolve('./utils.js');Thanks to@magic-akari for this contribution!
What's Changed
New Features 🎉
Bug Fixes 🐞
Refactor 🔨
Other Changes
Full Changelog:web-infra-dev/rspack@v1.6.6...v1.6.7
swc-project/swc (@swc/core)
Compare Source
Bug Fixes
(es/minifier) Prevent unsafe sequence merging insuper() calls (#11381) (eb02780)
(es/transformer) Fix variable declaration for nullish coalescing in else-if branches (#11384) (6746002)
(es/transforms) Update_ts_rewrite_relative_import_extension helper code (#11382) (1ec444e)
Features
- (es/transformer) Merge
private_properties_in_object (#11378) (769c9d2)
Performance
- (es/minifier) Optimize data structures of
ProgramData (#11374) (3639523)
Refactor
Compare Source
Compare Source
Bug Fixes
Compare Source
Bug Fixes
(es/compat) Preserve return value for single-property object destructuring (#11334) (847ad22)
(es/compat) Fix generator transform for compound assignments, for-in, and labeled break (#11339) (9b6bedd)
(es/compat) Destructuring evaluation order (#11337) (49d04c7)
(es/compat) Fix parameter default value evaluation order with object rest (#11352) (2ebb261)
(es/fixer) Preserve parens around IFFE in binary expressions within sequences (#11324) (a4c84ea)
(es/helpers) Avoid extra trap calls on excluded keys in object rest spread (#11338) (4662caf)
(es/minifier) Fixdebug cargo feature (#11325) (be86fad)
(es/minifier) Fix optimization pass formerge_imports (#11331) (ca2f7ed)
(es/parser) Don't callbump_bytes in thecontinue_if ofbyte_search! (#11328) (583619d)
(es/parser) Support type-only string literal in import specifiers (#11333) (07762f1)
(es/parser) Handle TypeScript expressions in destructuring patterns (#11353) (160ec34)
(es/transformer) Completereplace_this_in_expr implementation (#11361) (58c4067)
(es/transformer) Fix pass order (#11370) (373048a)
Features
Performance
sxzz/eslint-config (@sxzz/eslint-config)
Compare Source
No significant changes
Compare Source
No significant changes
sxzz/test-utils (@sxzz/test-utils)
Compare Source
🐞 Bug Fixes
Compare Source
🐞 Bug Fixes
microsoft/typescript-go (@typescript/native-preview)
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
Compare Source
vitejs/vite-plugin-vue (@vitejs/plugin-vue)
Features
Bug Fixes
- deps: update all non-major dependencies (#707) (799f419)
- hmr: reload when components switch between vapor and vdom (#714) (6c45fe5)
Performance Improvements
Miscellaneous Chores
vitest-dev/vitest (@vitest/ui)
Compare Source
🐞 Bug Fixes
vuejs/core (@vue/reactivity)
Compare Source
Bug Fixes
Performance Improvements
- compiler-core: use binary-search to get line and column (#14222) (1904053)
evanw/esbuild (esbuild)
Compare Source
Allow import path specifiers starting with#/ (#4361)
Previously the specification forpackage.json disallowed import path specifiers starting with#/, but this restrictionhas recently been relaxed and support for it is being added across the JavaScript ecosystem. One use case is using it for a wildcard pattern such as mapping#/* to./src/* (previously you had to use another character such as#_* instead, which was more confusing). There is some more context innodejs/node#49182.
This change was contributed by@hybrist.
Automatically add the-webkit-mask prefix (#4357,#4358)
This release automatically adds the-webkit- vendor prefix for themask CSS shorthand property:
/* Original code */main {mask:url(x.png) center/5rem no-repeat}/* Old output (with --target=chrome110) */main {mask:url(x.png) center/5rem no-repeat;}/* New output (with --target=chrome110) */main {-webkit-mask:url(x.png) center/5rem no-repeat;mask:url(x.png) center/5rem no-repeat;}This change was contributed by@BPJEnnova.
Additional minification ofswitch statements (#4176,#4359)
This release contains additional minification patterns for reducingswitch statements. Here is an example:
// Original codeswitch(x){case0:foo()breakcase1:default:bar()}// Old output (with --minify)switch(x){case0:foo();break;case1:default:bar()}// New output (with --minify)x===0?foo():bar();Forbidusing declarations insideswitch clauses (#4323)
This is a rare change to remove something that was previously possible. TheExplicit Resource Management proposal introducedusing declarations. These were previously allowed insidecase anddefault clauses inswitch statements. This had well-defined semantics and was already widely implemented (by V8, SpiderMonkey, TypeScript, esbuild, and others). However, it was considered to be too confusing because of how scope works in switch statements, so it has been removed from the specification. This edge case will now be a syntax error. Seetc39/proposal-explicit-resource-management#215 andrbuckton/ecma262#14 for details.
Here is an example of code that is no longer allowed:
switch(mode){case'read':usingreadLock=db.read()returnreadAll(readLock)case'write':usingwriteLock=db.write()returnwriteAll(writeLock)}That code will now have to be modified to look like this instead (note the additional{ and} block statements around each case body):
switch(mode){case'read':{usingreadLock=db.read()returnreadAll(readLock)}case'write':{usingwriteLock=db.write()returnwriteAll(writeLock)}}This is not being released in one of esbuild's breaking change releases since this feature hasn't been finalized yet, and esbuild always tracks the current state of the specification (so esbuild's previous behavior was arguably incorrect).
Compare Source
Fix bundler bug withvar nested insideif (#4348)
This release fixes a bug with the bundler that happens when importing an ES module usingrequire (which causes it to be wrapped) and there's a top-levelvar inside anif statement without being wrapped in a{ ... } block (and a few other conditions). The bundling transform needed to hoist thesevar declarations outside of the lazy ES module wrapper for correctness. See the issue for details.
Fix minifier bug withfor insidetry inside label (#4351)
This fixes an old regression fromversion v0.21.4. Some code was introduced to move the label inside thetry statement to address a problem with transforming labeledfor await loops to avoid theawait (the transformation involves converting thefor await loop into afor loop and wrapping it in atry statement). However, it introduces problems for cross-compiled JVM code that uses all three of these features heavily. This release restricts this transform to only apply tofor loops that esbuild itself generates internally as part of thefor await transform. Here is an example of some affected code:
// Original coded:{ e:{try{while(1){break d}}catch{break e;}}}// Old output (with --minify)a:try{e:for(;;)break a}catch{break e}// New output (with --minify)a:e:try{for(;;)break a}catch{break e}Inline IIFEs containing a single expression (#4354)
Previously inlining of IIFEs (immediately-invoked function expressions) only worked if the body contained a singlereturn statement. Now it should also work if the body contains a single expression statement instead:
// Original codeconstfoo=()=>{constcb=()=>{console.log(x())}returncb()}// Old output (with --minify)constfoo=()=>(()=>{console.log(x())})();// New output (with --minify)constfoo=()=>{console.log(x())};The minifier now strips emptyfinally clauses (#4353)
This improvement means thatfinally clauses containing dead code can potentially cause the associatedtry statement to be removed from the output entirely in minified builds:
// Original codefunctionfoo(callback){if(DEBUG)stack.push(callback.name);try{callback();}finally{if(DEBUG)stack.pop();}}// Old output (with --minify --define:DEBUG=false)functionfoo(a){try{a()}finally{}}// New output (with --minify --define:DEBUG=false)functionfoo(a){a()}Allow tree-shaking of theSymbol constructor
With this release, callingSymbol is now considered to be side-effect free when the argument is known to be a primitive value. This means esbuild can now tree-shake module-level symbol variables:
// Original codeconsta=Symbol('foo')constb=Symbol(bar)// Old output (with --tree-shaking=true)consta=Symbol("foo");constb=Symbol(bar);// New output (with --tree-shaking=true)constb=Symbol(bar);
eslint/eslint (eslint)
Compare Source
pnpm/pnpm (pnpm)
Compare Source
Compare Source
Compare Source
rolldown/rolldown (rolldown)
Compare Source
🚀 Features
- add validation errors for incompatible
inlineDynamicImports options (#7539) by@Copilot - r
Configuration
📅Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).
🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻Immortal: This PR will be recreated if closed unmerged. Getconfig help if that's undesired.
This PR was generated byMend Renovate. View therepository job log.
Uh oh!
There was an error while loading.Please reload this page.
This PR contains the following updates:
2.0.0-nightly-20250411100807->2.0.0-nightly-202508271627462.0.0-nightly-20250411141103->2.0.0-nightly-20250827162746^1.6.6->^1.6.8^1.6.6->^1.6.8^1.15.3->^1.15.7^7.4.1->^7.4.3^0.5.13->^0.5.15^24.10.1->^24.10.47.0.0-dev.20251203.1->7.0.0-dev.20251220.1^6.0.2->^6.0.3^4.0.15->^4.0.16^3.5.25->^3.5.26^0.27.0->^0.27.2^9.39.1->^9.39.210.24.0->10.26.11.0.0-beta.53->1.0.0-beta.55^4.53.3->^4.54.0^1.94.2->^1.97.1^0.17.0-beta.6->^0.18.1^0.5.5->^0.5.6^8.0.0-beta.0->^8.0.0-beta.3^7.2.6->^7.3.0^4.0.15->^4.0.16^3.6.0-alpha.2->^3.6.0-alpha.7^3.5.25->^3.5.26^5.103.0->^5.104.1Release Notes
farm-fe/farm (@farmfe/cli)
v2.0.0-nightly-20250827162746Compare Source
web-infra-dev/rspack (@rspack/cli)
v1.6.8Compare Source
What's Changed
Bug Fixes 🐞
Full Changelog:web-infra-dev/rspack@v1.6.7...v1.6.8
v1.6.7Compare Source
Highlights 💡
🎉 Support for
import.meta.filename,import.meta.dirname, andimport.meta.resolveRspack now supports the
import.meta.filename,import.meta.dirname, andimport.meta.resolvemeta properties in ESM modules.These properties provide a standardized way to access file and directory paths in ES modules, similar to the CommonJS
__filenameand__dirnamevariables:Thanks to@magic-akari for this contribution!
What's Changed
New Features 🎉
import.meta.filename/dirname/resolveby@magic-akari in#12317[relative-resource-path]in moduleFilenameTemplate by@SyMind in#12370Bug Fixes 🐞
Refactor 🔨
.rspack[...]syntax and rebrand CSS extract plugin internals by@LingyuCoder in#12385Other Changes
Full Changelog:web-infra-dev/rspack@v1.6.6...v1.6.7
swc-project/swc (@swc/core)
v1.15.7Compare Source
Bug Fixes
(es/minifier) Prevent unsafe sequence merging in
super()calls (#11381) (eb02780)(es/transformer) Fix variable declaration for nullish coalescing in else-if branches (#11384) (6746002)
(es/transforms) Update
_ts_rewrite_relative_import_extensionhelper code (#11382) (1ec444e)Features
private_properties_in_object(#11378) (769c9d2)Performance
ProgramData(#11374) (3639523)Refactor
v1.15.6Compare Source
v1.15.5Compare Source
Bug Fixes
(es/parser) Fix
bumplength (#11372) (ec5c1bc)(es/transforms) Adjust import rewriter pass before inject helpers pass (#11371) (8516991)
v1.15.4Compare Source
Bug Fixes
(es/compat) Preserve return value for single-property object destructuring (#11334) (847ad22)
(es/compat) Fix generator transform for compound assignments, for-in, and labeled break (#11339) (9b6bedd)
(es/compat) Destructuring evaluation order (#11337) (49d04c7)
(es/compat) Fix parameter default value evaluation order with object rest (#11352) (2ebb261)
(es/fixer) Preserve parens around IFFE in binary expressions within sequences (#11324) (a4c84ea)
(es/helpers) Avoid extra trap calls on excluded keys in object rest spread (#11338) (4662caf)
(es/minifier) Fix
debugcargo feature (#11325) (be86fad)(es/minifier) Fix optimization pass for
merge_imports(#11331) (ca2f7ed)(es/parser) Don't call
bump_bytesin thecontinue_ifofbyte_search!(#11328) (583619d)(es/parser) Support type-only string literal in import specifiers (#11333) (07762f1)
(es/parser) Handle TypeScript expressions in destructuring patterns (#11353) (160ec34)
(es/transformer) Complete
replace_this_in_exprimplementation (#11361) (58c4067)(es/transformer) Fix pass order (#11370) (373048a)
Features
(es/minifier) Optimize
typeof x == "undefined"totypeof x > "u"(#11367) (a5e144b)(es/parser) Support
no_parenparser option (#11359) (5b9d77c)(es/parser) Revert
no_parenparser option (#11362) (57a8731)(es/transfomer) Add modules to prepare porting (#11347) (68d740c)
(es/transform) Add common fields (#11346) (1a8759f)
(es/transformer) Merge
async-to-generator(#11355) (c388e87)(es/transformer) Merge
async_to_generator(#11358) (25f3a47)(es/transformer) Merge
object_rest_spread(#11357) (752188e)(es/transformer) Merge
nullish_coalescing(#11365) (5fb686a)(es/transformer) Merge
logical_assignment_operators(#11369) (94946fa)Performance
(es/compat) Merge
exponentation_operator(#11310) (0ef3637)(es/compat) Merge
optional_catch_binding(#11313) (468d20c)(es/compat) Use merged transformer (#11366) (c4a5e79)
(es/parser) Optimize
byte_search!(#11323) (67f67c1)(es/parser) Small optimization after byte-based lexer (#11340) (c92ea4e)
(es/parser) Use
slicerather than matching keywords (#11341) (b6ad2cb)(parser) Make all parsers work by byte instead of char (#11318) (725efd1)
sxzz/eslint-config (@sxzz/eslint-config)
v7.4.3Compare Source
No significant changes
View changes on GitHub
v7.4.2Compare Source
No significant changes
View changes on GitHub
sxzz/test-utils (@sxzz/test-utils)
v0.5.15Compare Source
🐞 Bug Fixes
checks.pluginTimingsto false - by@sxzz(77a49)View changes on GitHub
v0.5.14Compare Source
🐞 Bug Fixes
View changes on GitHub
microsoft/typescript-go (@typescript/native-preview)
v7.0.0-dev.20251220.1Compare Source
v7.0.0-dev.20251219.1Compare Source
v7.0.0-dev.20251218.3Compare Source
v7.0.0-dev.20251218.1Compare Source
v7.0.0-dev.20251217.1Compare Source
v7.0.0-dev.20251216.1Compare Source
v7.0.0-dev.20251215.1Compare Source
v7.0.0-dev.20251214.1Compare Source
v7.0.0-dev.20251213.1Compare Source
v7.0.0-dev.20251212.1Compare Source
v7.0.0-dev.20251211.1Compare Source
v7.0.0-dev.20251210.1Compare Source
v7.0.0-dev.20251209.1Compare Source
v7.0.0-dev.20251208.1Compare Source
v7.0.0-dev.20251207.1Compare Source
v7.0.0-dev.20251206.1Compare Source
v7.0.0-dev.20251205.1Compare Source
v7.0.0-dev.20251204.1Compare Source
vitejs/vite-plugin-vue (@vitejs/plugin-vue)
v6.0.3Features
Bug Fixes
Performance Improvements
Miscellaneous Chores
vitest-dev/vitest (@vitest/ui)
v4.0.16Compare Source
🐞 Bug Fixes
process.versionsstub - by@AriPerkkio in#9174(78cfb)test.poolOptionsif it's set - by@sheremet-va in#9226(f7f6a)recordArtifactfrom the vitest package - by@macarie in#9186(01c56)import.meta.envdefine - by@hi-ogawa in#9205(01a9a)setupEnvironmentfor custom pools - by@AriPerkkio in#9187(5d26b)View changes on GitHub
vuejs/core (@vue/reactivity)
v3.5.26Compare Source
Bug Fixes
Performance Improvements
evanw/esbuild (esbuild)
v0.27.2Compare Source
Allow import path specifiers starting with
#/(#4361)Previously the specification for
package.jsondisallowed import path specifiers starting with#/, but this restrictionhas recently been relaxed and support for it is being added across the JavaScript ecosystem. One use case is using it for a wildcard pattern such as mapping#/*to./src/*(previously you had to use another character such as#_*instead, which was more confusing). There is some more context innodejs/node#49182.This change was contributed by@hybrist.
Automatically add the
-webkit-maskprefix (#4357,#4358)This release automatically adds the
-webkit-vendor prefix for themaskCSS shorthand property:This change was contributed by@BPJEnnova.
Additional minification of
switchstatements (#4176,#4359)This release contains additional minification patterns for reducing
switchstatements. Here is an example:Forbid
usingdeclarations insideswitchclauses (#4323)This is a rare change to remove something that was previously possible. TheExplicit Resource Management proposal introduced
usingdeclarations. These were previously allowed insidecaseanddefaultclauses inswitchstatements. This had well-defined semantics and was already widely implemented (by V8, SpiderMonkey, TypeScript, esbuild, and others). However, it was considered to be too confusing because of how scope works in switch statements, so it has been removed from the specification. This edge case will now be a syntax error. Seetc39/proposal-explicit-resource-management#215 andrbuckton/ecma262#14 for details.Here is an example of code that is no longer allowed:
That code will now have to be modified to look like this instead (note the additional
{and}block statements around each case body):This is not being released in one of esbuild's breaking change releases since this feature hasn't been finalized yet, and esbuild always tracks the current state of the specification (so esbuild's previous behavior was arguably incorrect).
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 fromversion 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:eslint/eslint (eslint)
v9.39.2Compare Source
pnpm/pnpm (pnpm)
v10.26.1Compare Source
v10.26.0Compare Source
v10.25.0Compare Source
rolldown/rolldown (rolldown)
v1.0.0-beta.55Compare Source
🚀 Features
inlineDynamicImportsoptions (#7539) by@CopilotConfiguration
📅Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).
🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻Immortal: This PR will be recreated if closed unmerged. Getconfig help if that's undesired.
This PR was generated byMend Renovate. View therepository job log.