This repository was archived by the owner on Mar 18, 2022. It is now read-only.
chore(deps): update all non-major dependencies #21
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^7.17.2->^7.17.7^8.3.0->^8.3.127.4.0->27.4.1^5.11.0->^5.15.0^5.11.0->^5.15.00.14.21->0.14.27^8.9.0->^8.11.0^2.5.1->^2.6.02.67.2->2.70.1^10.5.0->^10.7.04.5.5->4.6.23.1.1->3.2.0Release Notes
babel/babel
v7.17.7Compare Source
👓 Spec Compliance
babel-generator,babel-parser🐛 Bug Fix
babel-helper-compilation-targetsresolveTargetscall ifbrowsersis an empty array (@dev-itsheng)babel-helper-module-transforms,babel-helper-simple-access,babel-plugin-transform-modules-amd,babel-plugin-transform-modules-commonjs,babel-plugin-transform-modules-umdbabel-parserObject.prototype(@nicolo-ribaudo)babel-helpers,babel-plugin-proposal-decoratorsnewClassonly when class is decorated (@JLHwung)babel-generatorimport type/typeofprinting with no specifiers (@The-x-Theorist)babel-helper-module-transforms,babel-plugin-transform-modules-commonjsbabel-helper-member-expression-to-functions,babel-plugin-proposal-class-properties,babel-plugin-proposal-private-methods,babel-plugin-transform-classes,babel-plugin-transform-object-superbabel-register💅 Polish
babel-parser🏠 Internal
babel-generator,babel-parserbabel-plugin-transform-destructuringtransform-destructuringtypings (@JLHwung)v7.17.5Compare Source
🐛 Bug Fix
babel-coret.valueToNode(@thebanjomatic)v7.17.4Compare Source
🐛 Bug Fix
babel-corev7.17.3Compare Source
🐛 Bug Fix
babel-plugin-transform-react-jsx-development,babel-plugin-transform-react-jsxthiswithin ts module block (@JLHwung)babel-plugin-transform-destructuring🏠 Internal
babel-cli,babel-core,babel-generator,babel-helper-transform-fixture-test-runner🔬 Output optimization
babel-plugin-proposal-class-properties,babel-plugin-proposal-class-static-block,babel-plugin-proposal-decorators,babel-plugin-proposal-private-methods,babel-plugin-proposal-private-property-in-object,babel-plugin-transform-new-target,babel-plugin-transform-parameters,babel-traversepath.insertAfter(@nicolo-ribaudo)rollup/plugins
v8.3.12022-02-23
Bugfixes
Updates
typescript-eslint/typescript-eslint (@typescript-eslint/eslint-plugin)
v5.15.0Compare Source
Features
parserOptions.emitDecoratorMetadata(#4646) (e3dd343)v5.14.0Compare Source
Bug Fixes
Features
checksVoidReturns(#4623) (1085177)v5.13.0Compare Source
Bug Fixes
Features
no-redundant-type-constituentsrule (#4378) (63d051e)no-useless-empty-exportrule (#4380) (823b945)space-before-blocks(#1606) (#4184) (208b6d0)5.12.1 (2022-02-21)
Bug Fixes
v5.12.1Compare Source
Bug Fixes
v5.12.0Compare Source
Bug Fixes
Features
typescript-eslint/typescript-eslint (@typescript-eslint/parser)
v5.15.0Compare Source
Features
parserOptions.emitDecoratorMetadata(#4646) (e3dd343)v5.14.0Compare Source
Note: Version bump only for package @typescript-eslint/parser
v5.13.0Compare Source
Note: Version bump only for package @typescript-eslint/parser
5.12.1 (2022-02-21)
Note: Version bump only for package @typescript-eslint/parser
v5.12.1Compare Source
Note: Version bump only for package @typescript-eslint/parser
v5.12.0Compare Source
Note: Version bump only for package @typescript-eslint/parser
evanw/esbuild
v0.14.27Compare Source
Avoid generating an enumerable
defaultimport for CommonJS files in Babel mode (#2097)Importing a CommonJS module into an ES module can be done in two different ways. In node mode the
defaultimport is always set tomodule.exports, while in Babel mode thedefaultimport passes through tomodule.exports.defaultinstead. Node mode is triggered when the importing file ends in.mjs, hastype: "module"in itspackage.jsonfile, or the imported module does not have a__esModulemarker.Previously esbuild always created the forwarding
defaultimport in Babel mode, even ifmodule.exportshad no property calleddefault. This was problematic because the getter nameddefaultstill showed up as a property on the imported namespace object, and could potentially interfere with code that iterated over the properties of the imported namespace object. With this release the getter nameddefaultwill now only be added in Babel mode if thedefaultproperty exists at the time of the import.Fix a circular import edge case regarding ESM-to-CommonJS conversion (#1894, #2059)
This fixes a regression that was introduced in version 0.14.5 of esbuild. Ever since that version, esbuild now creates two separate export objects when you convert an ES module file into a CommonJS module: one for ES modules and one for CommonJS modules. The one for CommonJS modules is written to
module.exportsand exported from the file, and the one for ES modules is internal and can be accessed by bundling code that imports the entry point (for example, the entry point might import itself to be able to inspect its own exports).The reason for these two separate export objects is that CommonJS modules are supposed to see a special export called
__esModulewhich indicates that the module used to be an ES module, while ES modules are not supposed to see any automatically-added export named__esModule. This matters for real-world code both because people sometimes iterate over the properties of ES module export namespace objects and because some people write ES module code containing their own exports named__esModulethat they expect other ES module code to be able to read.However, this change to split exports into two separate objects broke ES module re-exports in the edge case where the imported module is involved in an import cycle. This happened because the CommonJS
module.exportsobject was no longer mutated as exports were added. Instead it was being initialized at the end of the generated file after the import statements to other modules (which are converted intorequire()calls). This release changesmodule.exportsinitialization to happen earlier in the file and then double-writes further exports to both the ES module and CommonJS module export objects.This fix was contributed by @indutny.
v0.14.26Compare Source
Fix a tree shaking regression regarding
vardeclarations (#2080, #2085, #2098, #2099)Version 0.14.8 of esbuild enabled removal of duplicate function declarations when minification is enabled (see #610):
This transformation is safe because function declarations are "hoisted" in JavaScript, which means they are all done first before any other code is evaluted. This means the last function declaration will overwrite all previous function declarations with the same name.
However, this introduced an unintentional regression for
vardeclarations in which all but the last declaration was dropped if tree-shaking was enabled. This only happens for top-levelvardeclarations that re-declare the same variable multiple times. This regression has now been fixed:This case now has test coverage.
Add support for parsing "instantiation expressions" from TypeScript 4.7 (#2038)
The upcoming version of TypeScript now lets you specify
<...>type parameters on a JavaScript identifier without using a call expression:With this release, esbuild can now parse these new type annotations. This feature was contributed by @g-plane.
Avoid
new Functionin esbuild's library code (#2081)Some JavaScript environments such as Cloudflare Workers or Deno Deploy don't allow
new Functionbecause they disallow dynamic JavaScript evaluation. Previously esbuild's WebAssembly-based library used this to construct the WebAssembly worker function. With this release, the code is now inlined without usingnew Functionso it will be able to run even when this restriction is in place.Drop superfluous
__name()calls (#2062)When the
--keep-namesoption is specified, esbuild inserts calls to a__namehelper function to ensure that the.nameproperty on function and class objects remains consistent even if the function or class name is renamed to avoid a name collision or because name minification is enabled. With this release, esbuild will now try to omit these calls to the__namehelper function when the name of the function or class object was not renamed during the linking process after all:Notice how one of the calls to
__nameis now no longer printed. This change was contributed by @indutny.v0.14.25Compare Source
Reduce minification of CSS transforms to avoid Safari bugs (#2057)
In Safari, applying a 3D CSS transform to an element can cause it to render in a different order than applying a 2D CSS transform even if the transformation matrix is identical. I believe this is a bug in Safari because the CSS
transformspecification doesn't seem to distinguish between 2D and 3D transforms as far as rendering order:This bug means that minifying a 3D transform into a 2D transform must be avoided even though it's a valid transformation because it can cause rendering differences in Safari. Previously esbuild sometimes minified 3D CSS transforms into 2D CSS transforms but with this release, esbuild will no longer do that:
Minification now takes advantage of the
?.operatorThis adds new code minification rules that shorten code with the
?.optional chaining operator when the result is equivalent:This only takes effect when minification is enabled and when the configured target environment is known to support the optional chaining operator. As always, make sure to set
--target=to the appropriate language target if you are running the minified code in an environment that doesn't support the latest JavaScript features.Add source mapping information for some non-executable tokens (#1448)
Code coverage tools can generate reports that tell you if any code exists that has not been run (or "covered") during your tests. You can use this information to add additional tests for code that isn't currently covered.
Some popular JavaScript code coverage tools have bugs where they incorrectly consider lines without any executable code as uncovered, even though there's no test you could possibly write that would cause those lines to be executed. For example, they apparently complain about the lines that only contain the trailing
}token of an object literal.With this release, esbuild now generates source mappings for some of these trailing non-executable tokens. This may not successfully work around bugs in code coverage tools because there are many non-executable tokens in JavaScript and esbuild doesn't map them all (the drawback of mapping these extra tokens is that esbuild will use more memory, build more slowly, and output a bigger source map). The true solution is to fix the bugs in the code coverage tools in the first place.
Fall back to WebAssembly on Android x64 (#2068)
Go's compiler supports trivial cross-compiling to almost all platforms without installing any additional software other than the Go compiler itself. This has made it very easy for esbuild to publish native binary executables for many platforms. However, it strangely doesn't support cross-compiling to Android x64 without installing the Android build tools. So instead of publishing a native esbuild binary executable to npm, this release publishes a WebAssembly fallback build. This is essentially the same as the
esbuild-wasmpackage but it's installed automatically when you install theesbuildpackage on Android x64. So packages that depend on theesbuildpackage should now work on Android x64. If you want to use a native binary executable of esbuild on Android x64, you may be able to build it yourself from source after installing the Android build tools.Update to Go 1.17.8
The version of the Go compiler used to compile esbuild has been upgraded from Go 1.17.7 to Go 1.17.8, which fixes the RISC-V 64-bit build. Compiler optimizations for the RISC-V 64-bit build have now been re-enabled.
v0.14.24Compare Source
Allow
es2022as a target environment (#2012)TypeScript recently added support for
es2022as a compilation target so esbuild now supports this too. Support for this is preliminary as there is no published ES2022 specification yet (i.e. https://tc39.es/ecma262/2021/ exists but https://tc39.es/ecma262/2022/ is a 404 error). The meaning of esbuild'ses2022target may change in the future when the specification is finalized. Right now I have made thees2022target enable support for the syntax-related finished proposals that are marked as2022:I have also included the "arbitrary module namespace names" feature since I'm guessing it will end up in the ES2022 specification (this syntax feature was added to the specification without a proposal). TypeScript has not added support for this yet.
Match
defineto strings in index expressions (#2050)With this release, configuring
--define:foo.bar=baznow matches and replaces bothfoo.barandfoo['bar']expressions in the original source code. This is necessary for people who have enabled TypeScript'snoPropertyAccessFromIndexSignaturefeature, which prevents you from using normal property access syntax on a type with an index signature such as in the following code:Previously esbuild would generate the following output with
--define:foo.bar=baz:Now esbuild will generate the following output instead:
Add
--mangle-quotedto mangle quoted properties (#218)The
--mangle-props=flag tells esbuild to automatically rename all properties matching the provided regular expression to shorter names to save space. Previously esbuild never modified the contents of string literals. In particular,--mangle-props=_would manglefoo._barbut notfoo['_bar']. There are some coding patterns where renaming quoted property names is desirable, such as when using TypeScript'snoPropertyAccessFromIndexSignaturefeature or when using TypeScript's discriminated union narrowing behavior:The
'_foo' in valuecheck tells TypeScript to narrow the type ofvaluetoFooin the true branch and toBarin the false branch. Previously esbuild didn't mangle the property name'_foo'because it was inside a string literal. With this release, you can now use--mangle-quotedto also rename property names inside string literals:Parse and discard TypeScript
export as namespacestatements (#2070)TypeScript
.d.tstype declaration files can sometimes contain statements of the formexport as namespace foo;. I believe these serve to declare that the module adds a property of that name to the global object. You aren't supposed to feed.d.tsfiles to esbuild so this normally doesn't matter, but sometimes esbuild can end up having to parse them. One such case is if you import a type-only package who'smainfield inpackage.jsonis a.d.tsfile.Previously esbuild only allowed
export as namespacestatements inside adeclarecontext:Now esbuild will also allow these statements outside of a
declarecontext:These statements are still just ignored and discarded.
Strip import assertions from unrecognized
import()expressions (#2036)The new "import assertions" JavaScript language feature adds an optional second argument to dynamic
import()expressions, which esbuild does support. However, this optional argument must be stripped when targeting older JavaScript environments for which this second argument would be a syntax error. Previously esbuild failed to strip this second argument in cases when the first argument toimport()wasn't a string literal. This problem is now fixed:Remove simplified statement-level literal expressions (#2063)
With this release, esbuild now removes simplified statement-level expressions if the simplified result is a literal expression even when minification is disabled. Previously this was only done when minification is enabled. This change was only made because some people are bothered by seeing top-level literal expressions. This change has no effect on code behavior.
Ignore
.d.tsrules inpathsintsconfig.jsonfiles (#2074, #2075)TypeScript's
tsconfig.jsonconfiguration file has apathsfield that lets you remap import paths to alternative files on the file system. This field is interpreted by esbuild during bundling so that esbuild's behavior matches that of the TypeScript type checker. However, people sometimes override import paths to JavaScript files to instead point to a.d.tsTypeScript type declaration file for that JavaScript file. The intent of this is to just use the remapping for type information and not to actually import the.d.tsfile during the build.With this release, esbuild will now ignore rules in
pathsthat result in a.d.tsfile during path resolution. This means code that does this should now be able to be bundled without modifying itstsconfig.jsonfile to remove the.d.tsrule. This change was contributed by @magic-akari.Disable Go compiler optimizations for the Linux RISC-V 64bit build (#2035)
Go's RISC-V 64bit compiler target has a fatal compiler optimization bug that causes esbuild to crash when it's run: https://github.com/golang/go/issues/51101. As a temporary workaround until a version of the Go compiler with the fix is published, Go compiler optimizations have been disabled for RISC-V. The 7.7mb esbuild binary executable for RISC-V is now 8.7mb instead. This workaround was contributed by @piggynl.
v0.14.23Compare Source
Update feature database to indicate that node 16.14+ supports import assertions (#2030)
Node versions 16.14 and above now support import assertions according to these release notes. This release updates esbuild's internal feature compatibility database with this information, so esbuild no longer strips import assertions with
--target=node16.14:Basic support for CSS
@layerrules (#2027)This adds basic parsing support for a new CSS feature called
@layerthat changes how the CSS cascade works. Adding parsing support for this rule to esbuild means esbuild can now minify the contents of@layerrules:You can read more about
@layerhere:Note that the support added in this release is only for parsing and printing
@layerrules. The bundler does not yet know about these rules and bundling with@layermay result in behavior changes since these new rules have unusual ordering constraints that behave differently than all other CSS rules. Specifically the order is derived from the first instance while with every other CSS rule, the order is derived from the last instance.v0.14.22Compare Source
Preserve whitespace for token lists that look like CSS variable declarations (#2020)
Previously esbuild removed the whitespace after the CSS variable declaration in the following CSS:
However, that broke rendering in Chrome as it caused Chrome to ignore the entire rule. This did not break rendering in Firefox and Safari, so there's a browser bug either with Chrome or with both Firefox and Safari. In any case, esbuild now preserves whitespace after the CSS variable declaration in this case.
Ignore legal comments when merging adjacent duplicate CSS rules (#2016)
This release now generates more compact minified CSS when there are legal comments in between two adjacent rules with identical content:
Block
onResolveandonLoaduntilonStartends (#1967)This release changes the semantics of the
onStartcallback. AllonStartcallbacks from all plugins are run concurrently so that a slow plugin doesn't hold up the entire build. That's still the case. However, previously the only thing waiting for theonStartcallbacks to finish was the end of the build. This meant thatonResolveand/oronLoadcallbacks could sometimes run beforeonStarthad finished. This was by design but violated user expectations. With this release, allonStartcallbacks must finish before anyonResolveand/oronLoadcallbacks are run.Add a self-referential
defaultexport to the JS API (#1897)Some people try to use esbuild's API using
import esbuild from 'esbuild'instead ofimport * as esbuild from 'esbuild'(i.e. using a default import instead of a namespace import). There is nodefaultexport so that wasn't ever intended to work. But it would work sometimes depending on which tools you used and how they were configured so some people still wrote code this way. This release tries to make that work by adding a self-referentialdefaultexport that is equal to esbuild's module namespace object.More detail: The published package for esbuild's JS API is in CommonJS format, although the source code for esbuild's JS API is in ESM format. The original ESM code for esbuild's JS API has no export named
defaultso using a default import like this doesn't work with Babel-compatible toolchains (since they respect the semantics of the original ESM code). However, it happens to work with node-compatible toolchains because node's implementation of importing CommonJS from ESM broke compatibility with existing conventions and automatically creates adefaultexport which is set tomodule.exports. This is an unfortunate compatibility headache because it means thedefaultimport only works sometimes. This release tries to fix this by explicitly creating a self-referentialdefaultexport. It now doesn't matter if you doesbuild.build(),esbuild.default.build(), oresbuild.default.default.build()because they should all do the same thing. Hopefully this means people don't have to deal with this problem anymore.Handle
writeerrors when esbuild's child process is killed (#2007)If you type Ctrl+C in a terminal when a script that uses esbuild's JS library is running, esbuild's child process may be killed before the parent process. In that case calls to the
write()syscall may fail with anEPIPEerror. Previously this resulted in an uncaught exception because esbuild didn't handle this case. Starting with this release, esbuild should now catch these errors and redirect them into a generalThe service was stoppederror which should be returned from whatever top-level API calls were in progress.Better error message when browser WASM bugs are present (#1863)
Safari's WebAssembly implementation appears to be broken somehow, at least when running esbuild. Sometimes this manifests as a stack overflow and sometimes as a Go panic. Previously a Go panic resulted in the error message
Can't find variable: fsbut this should now result in the Go panic being printed to the console. Using esbuild's WebAssembly library in Safari is still broken but now there's a more helpful error message.More detail: When Go panics, it prints a stack trace to stderr (i.e. file descriptor 2). Go's WebAssembly shim calls out to node's
fs.writeSync()function to do this, and it converts calls tofs.writeSync()into calls toconsole.log()in the browser by providing a shim forfs. However, Go's shim code stores the shim onwindow.fsin the browser. This is undesirable because it pollutes the global scope and leads to brittle code that can break if other code also useswindow.fs. To avoid this, esbuild shadows the global object by wrapping Go's shim. But that broke bare references tofssince the shim is no longer stored onwindow.fs. This release now stores the shim in a local variable namedfsso that bare references tofswork correctly.Undo incorrect dead-code elimination with destructuring (#1183)
Previously esbuild eliminated these statements as dead code if tree-shaking was enabled:
This is incorrect because both of these lines will throw an error when evaluated. With this release, esbuild now preserves these statements even when tree shaking is enabled.
Update to Go 1.17.7
The version of the Go compiler used to compile esbuild has been upgraded from Go 1.17.6 to Go 1.17.7, which contains a few compiler and security bug fixes.
eslint/eslint
v8.11.0Compare Source
Features
800bd25feat: adddestructuredArrayIgnorePatternoption inno-unused-vars(#15649) (Nitin Kumar)8933fe7feat: CatchundefinedandBoolean()in no-constant-condition (#15613) (Jordan Eldredge)f90fd9dfeat: Add ESLint favicon to the HTML report document (#15671) (Mahdi Hosseinzadeh)57b8a57feat:valid-typeofalways banundefined(#15635) (Zzzen)Bug Fixes
6814922fix: escaping for square brackets in ignore patterns (#15666) (Milos Djermanovic)c178ce7fix: extend the autofix range in comma-dangle to ensure the last element (#15669) (Milos Djermanovic)Documentation
c481cecdocs: add fast-eslint-8 to atom integrations (userguide) (#15695) (db developer)d2255dbdocs: Add clarification abouteslint-enable(#15680) (dosisod)8b9433cdocs: add object pattern to first section of computed-property-spacing (#15679) (Milos Djermanovic)de800c3docs: link to minimatch docs added. (#15688) (Gaurav Tewari)8f675b1docs: sort-imports add single named import example (#15675) (Arye Eidelman)Chores
385c9adchore: rm trailing space in docs (#15689) (唯然)v8.10.0Compare Source
Features
6e2c325feat: AddignoreOnInitializationoption to no-shadow rule (#14963) (Soufiane Boutahlil)115cae5](https://togithConfiguration
📅 Schedule: "before 12pm on Sunday" (UTC).
🚦 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. Get config help if that's undesired.
This PR has been generated by WhiteSource Renovate. View repository job log here.