This release fixes a bug with the CSS nesting transform for older browsers where the generated CSS could be incorrect if a selector list contained a pseudo element followed by another selector. The bug was caused by incorrectly mutating the parent rule's selector list when filtering out pseudo elements for the child rules:
Constant folding for JavaScript inequality operators (#3645)
This release introduces constant folding for the < > <= >= operators. The minifier will now replace these operators with true or false when both sides are compile-time numeric or string constants:
// Original code
console.log(1 < 2, '🍕' > '🧀')
// Old output (with --minify)
console.log(1<2,"🍕">"🧀");
JavaScript object literal syntax contains a special case where a non-computed property with a key of __proto__ sets the prototype of the object. This does not apply to computed properties or to properties that use the shorthand property syntax introduced in ES6. Previously esbuild didn't correctly preserve the "sets the prototype" status of properties inside an object literal, meaning a property that sets the prototype could accidentally be transformed into one that doesn't and vice versa. This has now been fixed:
// Original code
function foo(__proto__) {
return { __proto__: __proto__ } // Note: sets the prototype
This changelog documents all esbuild versions published in the year 2022 (versions 0.14.11 through 0.16.12).
0.16.12
Loader defaults to js for extensionless files (#2776)
Certain packages contain files without an extension. For example, the yargs package contains the file yargs/yargs which has no extension. Node, Webpack, and Parcel can all understand code that imports yargs/yargs because they assume that the file is JavaScript. However, esbuild was previously unable to understand this code because it relies on the file extension to tell it how to interpret the file. With this release, esbuild will now assume files without an extension are JavaScript files. This can be customized by setting the loader for "" (the empty string, representing files without an extension) to another loader. For example, if you want files without an extension to be treated as CSS instead, you can do that like this:
In addition, the "type" field in package.json files now only applies to files with an explicit .js, .jsx, .ts, or .tsx extension. Previously it was incorrectly applied by esbuild to all files that had an extension other than .mjs, .mts, .cjs, or .cts including extensionless files. So for example an extensionless file in a "type": "module" package is now treated as CommonJS instead of ESM.
0.16.11
Avoid a syntax error in the presence of direct eval (#2761)
The behavior of nested function declarations in JavaScript depends on whether the code is run in strict mode or not. It would be problematic if esbuild preserved nested function declarations in its output because then the behavior would depend on whether the output was run in strict mode or not instead of respecting the strict mode behavior of the original source code. To avoid this, esbuild transforms nested function declarations to preserve the intended behavior of the original source code regardless of whether the output is run in strict mode or not:
// Original code
if (true) {
function foo() {}
console.log(!!foo)
foo = null
console.log(!!foo)
}
#45231a32b61e - Add a DEV_MODE error to catch duplicate attribute bindings that otherwise create silent errors.
#448557b00630 - Add "browser" export condition entrypoints to any package.json files with "node"
export conditions. This fixes Node test runners emulating browser environments that were incorrectly loading the
"node" entrypoints instead of the browser code.
#4515dca963f7 - Fix a memory leak when patching directive constructors for SSR.
lit@3.1.2
Patch Changes
#45231a32b61e - Add a DEV_MODE error to catch duplicate attribute bindings that otherwise create silent errors.
#448557b00630 - Add "browser" export condition entrypoints to any package.json files with "node"
export conditions. This fixes Node test runners emulating browser environments that were incorrectly loading the
"node" entrypoints instead of the browser code.
#45231a32b61e - Add a DEV_MODE error to catch duplicate attribute bindings that otherwise create silent errors.
#448557b00630 - Add "browser" export condition entrypoints to any package.json files with "node"
export conditions. This fixes Node test runners emulating browser environments that were incorrectly loading the
"node" entrypoints instead of the browser code.
This is a prerelease version to test our ability to release.
Other than removing or updating dependencies, it contains no intended user-facing changes.
Bumps the dev-deps group with 11 updates:
2.4.3
2.4.4
0.1.10
0.1.11
0.14.54
0.20.1
8.54.0
8.56.0
2.29.0
2.29.1
14.0.0
14.0.1
2.2.5
2.3.0
3.1.0
3.1.2
10.2.0
10.3.0
10.0.4
10.0.6
5.2.2
5.3.3
Updates
@types/chroma-js
from 2.4.3 to 2.4.4Commits
Updates
@types/resize-observer-browser
from 0.1.10 to 0.1.11Commits
Updates
esbuild
from 0.14.54 to 0.20.1Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
9f9e4f8
publish 0.20.1 to npmac36537
fix #3651: handle__proto__
edge cases better555db48
fix #3645: constant folding for\< > \<= >=
5650831
fix #3650: add a wrapper for float64 mathd086889
fix some lintsad3d8c6
fix #3648: copy selectors before checking childrena08f30d
fix #3634: crash if resolving with bad source dir2af5ccf
publish 0.20.0 to npm0bccf08
fix esbuild/deno-esbuild#5931f87d
work around api deprecations in deno 1.40.x (#3609) (#3611)Updates
eslint
from 8.54.0 to 8.56.0Release notes
Sourced from eslint's releases.
Changelog
Sourced from eslint's changelog.
Commits
8e8e9f8
8.56.0085978b
Build: changelog update for 8.56.0ba6af85
chore: upgrade@​eslint/js
@​8
.56.0 (#17864)60a531a
chore: package.json update for@​eslint/js
release0dd9704
feat: Support custom severity when reporting unused disable directives (#17212)31a7e3f
feat: fix no-restricted-properties false negatives with unknown objects (#17818)ba87a06
chore: update dependency markdownlint to ^0.32.0 (#17783)7d5e5f6
fix:TypeError: fs.exists is not a function
on read-only file system (#17846)9271d10
chore: add GitHub issue template for docs issues (#17845)70a686b
chore: Convert rule tests to FlatRuleTester (#17819)Updates
eslint-plugin-import
from 2.29.0 to 2.29.1Release notes
Sourced from eslint-plugin-import's releases.
Changelog
Sourced from eslint-plugin-import's changelog.
Commits
ee5fade
Bump to 2.29.148fec35
[Deps] updatetsconfig-paths
80aee73
[Dev Deps] updatechai
,eslint-doc-generator
,markdownlint-cli
8c83eaf
[Tests] node v21.3 has a brokenfs.writeFile
e67259e
[Fix]no-unused-modules
: support export patterns with array destructuring9fd3c42
[Tests]no-duplicates
: add passing test12f0300
[Fix]no-extraneous-dependencies
: ignoreexport type { ... } from '...'
w...Updates
globby
from 14.0.0 to 14.0.1Release notes
Sourced from globby's releases.
Commits
b0d7330
14.0.1a85078e
Meta tweaksaf5d139
FixexpandDirectories.extension
option (#263)3a28601
Fix read permission error on ignore files search (#259)Updates
karma-esbuild
from 2.2.5 to 2.3.0Release notes
Sourced from karma-esbuild's releases.
Commits
cf1cb8f
2.3.02799b2b
Merge pull request #55 from handerss-tibco/esbuild-17e47863f
Fix tests58106ad
Switch to new esbuild APIs for incremental builds4f75bf3
Bump esbuild to 0.17 and update peerDependenciesMaintainer changes
This version was pushed to npm by jridgewell, a new releaser for karma-esbuild since your current version.
Updates
lit
from 3.1.0 to 3.1.2Release notes
Sourced from lit's releases.
Changelog
Sourced from lit's changelog.
Commits
b4e3c0e
Version Packages (#4532)5c8b142
Version Packages (#4482)Updates
mocha
from 10.2.0 to 10.3.0Release notes
Sourced from mocha's releases.
... (truncated)
Changelog
Sourced from mocha's changelog.
Commits
a886829
chore: fix link in pull request template (#5091)53a4baf
chore: remove unnecessary canvas dependency (#5069)1ebff45
chore: inline nyan reporter's write function (#5056)8812413
fix: add alt text to Built with Netlify badge (#5068)645469e
docs: touchups to labels and a template title post-revamp (#5050)9f99178
docs: overhaul contributing and maintenance docs for end-of-year 2023 (#5038)eca4fec
docs: fix return jsdoc type oftitlePath
(#4886)060f77d
docs: use mocha.js instead of mocha in the example run (#4927)4b60c1a
docs: fix fragment ID for yargs.jsextends
docs (#4918)b41e985
chore: remove stale workflow (#5029)Maintainer changes
This version was pushed to npm by joshuakgoldberg, a new releaser for mocha since your current version.
Updates
@types/mocha
from 10.0.4 to 10.0.6Commits
Updates
typescript
from 5.2.2 to 5.3.3Release notes
Sourced from typescript's releases.
Commits
63717cf
Bump version to 5.3.3 and LKG4c2afa7
🤖 Pick PR #56627 (Transpile jsdoc parsing mode) into release-5.3 (#56629)ba3d2b0
🤖 Pick PR #56434 (Fix support for intersections in te...) into release-5.3 (#...f3808c4
🤖 Pick PR #56504 (Fixed an issue in boolean compariso...) into release-5.3 (#...Looks like these dependencies are updatable in another way, so this is no longer needed.