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)
}
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the dev-deps group with 5 updates:
7.1.0
7.2.0
7.1.0
7.2.0
0.14.54
0.20.1
2.2.5
2.3.0
5.3.3
5.4.2
Updates
@typescript-eslint/eslint-plugin
from 7.1.0 to 7.2.0Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.Commits
95cf139
chore(release): publish 7.2.0c0e3267
fix(eslint-plugin): [prefer-find] support ternary branches in prefer-find (#8...25e6518
fix(eslint-plugin): [no-unnecessary-condition] handle union array and tuple t...ef0e5cc
fix(eslint-plugin): [no-useless-template-literals] detect TemplateLiteral (#8...5292399
fix(eslint-plugin): [no-var-requires, no-require-imports] support template li...c06ce1a
fix(eslint-plugin): [member-ordering] report alphabetical sorting for all gro...32d8a8f
feat(eslint-plugin): [prefer-string-starts-ends-with] add allowSingleElementE...4c8b06d
fix(eslint-plugin): expose *-type-checked-only configs for extension (#8600)49d79a6
docs: alphabetize consistent-type-imports options for consistent type imports...21375f6
chore: enable no-non-null-assertion internally, excluding tests (#8019)Updates
@typescript-eslint/parser
from 7.1.0 to 7.2.0Release notes
Sourced from
@typescript-eslint/parser
's releases.Changelog
Sourced from
@typescript-eslint/parser
's changelog.Commits
95cf139
chore(release): publish 7.2.088b7463
chore(release): publish 7.1.1Updates
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
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
typescript
from 5.3.3 to 5.4.2Release notes
Sourced from typescript's releases.
Commits
42bb138
Bump version to 5.4.2 and LKG992c705
Add release pipeline to release-5.4 (#57513)db6b2a9
Bump version to 5.4.1-rc and LKGbd4f51c
Update LKG8a1f79d
Merge remote-tracking branch 'origin/main' into release-5.4d04e348
Improve apparent type of mapped types (#57122)86a1663
Update package-lock.jsonfeb57c2
Instantiate earlier inferred constraints in conditional types (#57362)91e67ff
fix(57392): using is not suggested as a keyword (#57394)29c0024
Avoid creating rest elements witherrorType
whenany
is spread (#57116)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show