Chevrotain / chevrotain

Parser Building Toolkit for JavaScript
https://chevrotain.io
Apache License 2.0
2.44k stars 200 forks source link

chore(deps): update all non-major dev dependencies #1741

Closed renovate[bot] closed 2 years ago

renovate[bot] commented 2 years ago

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@commitlint/cli (source) 16.0.2 -> 16.2.1 age adoption passing confidence
@commitlint/config-conventional (source) 16.0.0 -> 16.2.1 age adoption passing confidence
@types/mocha 9.0.0 -> 9.1.0 age adoption passing confidence
@typescript-eslint/eslint-plugin 5.9.1 -> 5.12.0 age adoption passing confidence
@typescript-eslint/parser 5.9.1 -> 5.12.0 age adoption passing confidence
chai (source) 4.3.4 -> 4.3.6 age adoption passing confidence
error-stack-parser (source) 2.0.6 -> 2.0.7 age adoption passing confidence
esbuild 0.14.11 -> 0.14.21 age adoption passing confidence
eslint (source) 8.7.0 -> 8.9.0 age adoption passing confidence
lint-staged 12.1.7 -> 12.3.4 age adoption passing confidence
mocha (source) 9.1.4 -> 9.2.0 age adoption passing confidence
typescript (source) 4.5.4 -> 4.5.5 age adoption passing confidence
vuepress 1.9.5 -> 1.9.7 age adoption passing confidence
webpack 5.66.0 -> 5.68.0 age adoption passing confidence
webpack-cli 4.9.1 -> 4.9.2 age adoption passing confidence

Release Notes

conventional-changelog/commitlint (@​commitlint/cli) ### [`v16.2.1`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@​commitlint/cli/CHANGELOG.md#​1621-httpsgithubcomconventional-changelogcommitlintcomparev1620v1621-2022-02-13) [Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v16.1.0...v16.2.1) **Note:** Version bump only for package [@​commitlint/cli](https://togithub.com/commitlint/cli) ### [`v16.1.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@​commitlint/cli/CHANGELOG.md#​1610-httpsgithubcomconventional-changelogcommitlintcomparev1603v1610-2022-01-20) [Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v16.0.3...v16.1.0) **Note:** Version bump only for package [@​commitlint/cli](https://togithub.com/commitlint/cli) #### [16.0.3](https://togithub.com/conventional-changelog/commitlint/compare/v16.0.2...v16.0.3) (2022-01-19) **Note:** Version bump only for package [@​commitlint/cli](https://togithub.com/commitlint/cli) #### [16.0.2](https://togithub.com/conventional-changelog/commitlint/compare/v16.0.1...v16.0.2) (2022-01-09) **Note:** Version bump only for package [@​commitlint/cli](https://togithub.com/commitlint/cli) #### [16.0.1](https://togithub.com/conventional-changelog/commitlint/compare/v16.0.0...v16.0.1) (2021-12-28) **Note:** Version bump only for package [@​commitlint/cli](https://togithub.com/commitlint/cli) ### [`v16.0.3`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@​commitlint/cli/CHANGELOG.md#​1603-httpsgithubcomconventional-changelogcommitlintcomparev1602v1603-2022-01-19) [Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v16.0.2...v16.0.3) **Note:** Version bump only for package [@​commitlint/cli](https://togithub.com/commitlint/cli)
conventional-changelog/commitlint (@​commitlint/config-conventional) ### [`v16.2.1`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@​commitlint/config-conventional/CHANGELOG.md#​1621-httpsgithubcomconventional-changelogcommitlintcomparev1620v1621-2022-02-13) [Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v16.0.0...v16.2.1) **Note:** Version bump only for package [@​commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)
typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin) ### [`v5.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5120-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5110v5120-2022-02-14) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.11.0...v5.12.0) ##### Bug Fixes - **eslint-plugin:** \[init-declarations] fix nested namespace ([#​4544](https://togithub.com/typescript-eslint/typescript-eslint/issues/4544)) ([fe910e6](https://togithub.com/typescript-eslint/typescript-eslint/commit/fe910e61ca4bb42be3be9acb8ddcec73206754c2)) - **eslint-plugin:** \[no-unnecessary-type-arguments] Use Symbol to check if it's the same type ([#​4543](https://togithub.com/typescript-eslint/typescript-eslint/issues/4543)) ([5b7d8df](https://togithub.com/typescript-eslint/typescript-eslint/commit/5b7d8df149be6554c863cdd5b73c0b0b0a7960db)) - support nested object deconstructuring with type annotation ([#​4548](https://togithub.com/typescript-eslint/typescript-eslint/issues/4548)) ([4da9278](https://togithub.com/typescript-eslint/typescript-eslint/commit/4da9278c80706f420d4c15a71c11c7b11d935643)) ##### Features - add checking property definition for allowNames option ([#​4542](https://togithub.com/typescript-eslint/typescript-eslint/issues/4542)) ([e32bef6](https://togithub.com/typescript-eslint/typescript-eslint/commit/e32bef6f6b74228c95e54a5cba1cde53d5e40623)) ### [`v5.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5110-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5102v5110-2022-02-07) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.2...v5.11.0) ##### Bug Fixes - **eslint-plugin:** \[no-magic-numbers] fix invalid schema merging ([#​4517](https://togithub.com/typescript-eslint/typescript-eslint/issues/4517)) ([b95f796](https://togithub.com/typescript-eslint/typescript-eslint/commit/b95f79697acdd16347dc102bcb8311fe83746779)) - **eslint-plugin:** \[non-nullable-type-assertion-style] fix false positive when asserting to a generic type that might be nullish ([#​4509](https://togithub.com/typescript-eslint/typescript-eslint/issues/4509)) ([4209362](https://togithub.com/typescript-eslint/typescript-eslint/commit/420936274603d8fee0631cdb3b58874cb3cc59d7)) ##### Features - **eslint-plugin:** \[explicit-function-return-type] add allowedNames ([#​4440](https://togithub.com/typescript-eslint/typescript-eslint/issues/4440)) ([936e252](https://togithub.com/typescript-eslint/typescript-eslint/commit/936e252e30cfcebdaf971cf0f66a3031e236a41c)) #### [5.10.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.1...v5.10.2) (2022-01-31) ##### Bug Fixes - **eslint-plugin:** \[no-restricted-imports] allow relative type imports with patterns configured ([#​4494](https://togithub.com/typescript-eslint/typescript-eslint/issues/4494)) ([4a6d217](https://togithub.com/typescript-eslint/typescript-eslint/commit/4a6d217ae8a8f5fa1dd4bd3e3e66ba7519b4a287)) #### [5.10.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.0...v5.10.1) (2022-01-24) **Note:** Version bump only for package [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) ### [`v5.10.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5102-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5101v5102-2022-01-31) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.1...v5.10.2) ##### Bug Fixes - **eslint-plugin:** \[no-restricted-imports] allow relative type imports with patterns configured ([#​4494](https://togithub.com/typescript-eslint/typescript-eslint/issues/4494)) ([4a6d217](https://togithub.com/typescript-eslint/typescript-eslint/commit/4a6d217ae8a8f5fa1dd4bd3e3e66ba7519b4a287)) ### [`v5.10.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5101-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5100v5101-2022-01-24) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.0...v5.10.1) **Note:** Version bump only for package [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) ### [`v5.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5100-httpsgithubcomtypescript-eslinttypescript-eslintcomparev591v5100-2022-01-17) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.9.1...v5.10.0) ##### Bug Fixes - **eslint-plugin:** \[explicit-function-return-type] support AllowTypedFunctionExpression within AllowHigherOrderFunction ([#​4250](https://togithub.com/typescript-eslint/typescript-eslint/issues/4250)) ([d053cde](https://togithub.com/typescript-eslint/typescript-eslint/commit/d053cde3e8b5bf9ba1c22fd64a7456d672ef77ca)) - **eslint-plugin:** \[no-extra-semi] false negatives when used with eslint 8.3.0 ([#​4458](https://togithub.com/typescript-eslint/typescript-eslint/issues/4458)) ([f4016c2](https://togithub.com/typescript-eslint/typescript-eslint/commit/f4016c24f9023e8a42def9501b68c4a908cbfede)) - **eslint-plugin:** \[no-invalid-this] crash when used with eslint 8.7.0 ([#​4448](https://togithub.com/typescript-eslint/typescript-eslint/issues/4448)) ([e56f1e5](https://togithub.com/typescript-eslint/typescript-eslint/commit/e56f1e5d52fcbf3caae43034872e0b3181871689)) - **eslint-plugin:** \[no-magic-numbers] handle bigint in class props ([#​4411](https://togithub.com/typescript-eslint/typescript-eslint/issues/4411)) ([c8e650f](https://togithub.com/typescript-eslint/typescript-eslint/commit/c8e650f0c124d24b24beaeb376eaf61ee8d9e6fb)) ##### Features - rename `experimental-utils` to `utils` and make `experimental-utils` an alias to the new package ([#​4172](https://togithub.com/typescript-eslint/typescript-eslint/issues/4172)) ([1d55a75](https://togithub.com/typescript-eslint/typescript-eslint/commit/1d55a7511b38d8e2b2eabe59f639e0a865e6c93f)) #### [5.9.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.9.0...v5.9.1) (2022-01-10) **Note:** Version bump only for package [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
typescript-eslint/typescript-eslint (@​typescript-eslint/parser) ### [`v5.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5120-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5110v5120-2022-02-14) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.11.0...v5.12.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5110-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5102v5110-2022-02-07) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.2...v5.11.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) #### [5.10.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.1...v5.10.2) (2022-01-31) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) #### [5.10.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.0...v5.10.1) (2022-01-24) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.10.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5102-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5101v5102-2022-01-31) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.1...v5.10.2) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.10.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5101-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5100v5101-2022-01-24) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.10.0...v5.10.1) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5100-httpsgithubcomtypescript-eslinttypescript-eslintcomparev591v5100-2022-01-17) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.9.1...v5.10.0) ##### Features - rename `experimental-utils` to `utils` and make `experimental-utils` an alias to the new package ([#​4172](https://togithub.com/typescript-eslint/typescript-eslint/issues/4172)) ([1d55a75](https://togithub.com/typescript-eslint/typescript-eslint/commit/1d55a7511b38d8e2b2eabe59f639e0a865e6c93f)) #### [5.9.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.9.0...v5.9.1) (2022-01-10) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
chaijs/chai ### [`v4.3.6`](https://togithub.com/chaijs/chai/releases/v4.3.6) [Compare Source](https://togithub.com/chaijs/chai/compare/v4.3.5...v4.3.6) Update loupe to 2.3.1 ### [`v4.3.5`](https://togithub.com/chaijs/chai/releases/v4.3.5) [Compare Source](https://togithub.com/chaijs/chai/compare/v4.3.4...v4.3.5) - build chaijs [`fca5bb1`](https://togithub.com/chaijs/chai/commit/fca5bb1) - build(deps-dev): bump codecov from 3.1.0 to 3.7.1 ([#​1446](https://togithub.com/chaijs/chai/issues/1446)) [`747eb4e`](https://togithub.com/chaijs/chai/commit/747eb4e) - fix package.json exports [`022c2fa`](https://togithub.com/chaijs/chai/commit/022c2fa) - fix: package.json - deprecation warning on exports field ([#​1400](https://togithub.com/chaijs/chai/issues/1400)) [`5276af6`](https://togithub.com/chaijs/chai/commit/5276af6) - feat: use chaijs/loupe for inspection ([#​1401](https://togithub.com/chaijs/chai/issues/1401)) ([#​1407](https://togithub.com/chaijs/chai/issues/1407)) [`c8a4e00`](https://togithub.com/chaijs/chai/commit/c8a4e00)
stacktracejs/error-stack-parser ### [`v2.0.7`](https://togithub.com/stacktracejs/error-stack-parser/releases/v2.0.7) [Compare Source](https://togithub.com/stacktracejs/error-stack-parser/compare/v2.0.6...v2.0.7) - chore: updated dist (unsure why gitignore did not respect) [`5786d10`](https://togithub.com/stacktracejs/error-stack-parser/commit/5786d10) - chore: build dist [`409cdd7`](https://togithub.com/stacktracejs/error-stack-parser/commit/409cdd7) - Merge pull request [#​66](https://togithub.com/stacktracejs/error-stack-parser/issues/66) from Aleksey28/parse-file-name-for-node [`1c9261a`](https://togithub.com/stacktracejs/error-stack-parser/commit/1c9261a) - Merge pull request [#​68](https://togithub.com/stacktracejs/error-stack-parser/issues/68) from stacktracejs/dependabot/npm_and_yarn/follow-redirects-1.14.7 [`802ff4e`](https://togithub.com/stacktracejs/error-stack-parser/commit/802ff4e) - Bump follow-redirects from 1.9.0 to 1.14.7 [`bca7cb5`](https://togithub.com/stacktracejs/error-stack-parser/commit/bca7cb5) - Merge pull request [#​54](https://togithub.com/stacktracejs/error-stack-parser/issues/54) from andersk/typescript-import [`ebda26a`](https://togithub.com/stacktracejs/error-stack-parser/commit/ebda26a) - Merge pull request [#​67](https://togithub.com/stacktracejs/error-stack-parser/issues/67) from stacktracejs/dependabot/npm_and_yarn/jszip-3.7.1 [`414fe57`](https://togithub.com/stacktracejs/error-stack-parser/commit/414fe57) - Merge pull request [#​63](https://togithub.com/stacktracejs/error-stack-parser/issues/63) from mattwynne/patch-1 [`abe34a7`](https://togithub.com/stacktracejs/error-stack-parser/commit/abe34a7) - Merge pull request [#​60](https://togithub.com/stacktracejs/error-stack-parser/issues/60) from stacktracejs/dependabot/npm_and_yarn/hosted-git-info-2.8.9 [`89b59cb`](https://togithub.com/stacktracejs/error-stack-parser/commit/89b59cb) - Bump jszip from 3.2.2 to 3.7.1 [`064baab`](https://togithub.com/stacktracejs/error-stack-parser/commit/064baab) - Merge pull request [#​59](https://togithub.com/stacktracejs/error-stack-parser/issues/59) from stacktracejs/dependabot/npm_and_yarn/lodash-4.17.21 [`08d9262`](https://togithub.com/stacktracejs/error-stack-parser/commit/08d9262) - Merge pull request [#​58](https://togithub.com/stacktracejs/error-stack-parser/issues/58) from stacktracejs/dependabot/npm_and_yarn/handlebars-4.7.7 [`5d63d77`](https://togithub.com/stacktracejs/error-stack-parser/commit/5d63d77) - Merge pull request [#​56](https://togithub.com/stacktracejs/error-stack-parser/issues/56) from stacktracejs/dependabot/npm_and_yarn/http-proxy-1.18.1 [`ec66349`](https://togithub.com/stacktracejs/error-stack-parser/commit/ec66349) - test:added new key for node error when function name isn't there [`2bd8aa1`](https://togithub.com/stacktracejs/error-stack-parser/commit/2bd8aa1) - fix: removed splitting 'sanitizedLine' and reorganized using 'sanitizedLine' and 'location' [`d74fe21`](https://togithub.com/stacktracejs/error-stack-parser/commit/d74fe21) - fix: removed regexp group ':(\d+):(\d+)' because we should get any location in brackets [`280acd5`](https://togithub.com/stacktracejs/error-stack-parser/commit/280acd5) - fix: fixed removing last round bracket [`df5d38f`](https://togithub.com/stacktracejs/error-stack-parser/commit/df5d38f) - refactor: added pre-replace instead of splitting [`523951b`](https://togithub.com/stacktracejs/error-stack-parser/commit/523951b) - We seem to use `npm test`, not `gulp test` [`86089a3`](https://togithub.com/stacktracejs/error-stack-parser/commit/86089a3) - Bump hosted-git-info from 2.8.5 to 2.8.9 [`84e8aab`](https://togithub.com/stacktracejs/error-stack-parser/commit/84e8aab) - Bump lodash from 4.17.15 to 4.17.21 [`3156998`](https://togithub.com/stacktracejs/error-stack-parser/commit/3156998) - Bump handlebars from 4.5.3 to 4.7.7 [`8ca6409`](https://togithub.com/stacktracejs/error-stack-parser/commit/8ca6409) - Bump http-proxy from 1.18.0 to 1.18.1 [`5b8ead7`](https://togithub.com/stacktracejs/error-stack-parser/commit/5b8ead7) - Import the TypeScript definition for StackFrame from stackframe [`ce729ee`](https://togithub.com/stacktracejs/error-stack-parser/commit/ce729ee) - Remove duplicate test [`a3bf972`](https://togithub.com/stacktracejs/error-stack-parser/commit/a3bf972) - Update transitive dev dependencies to fix vuln [`f67192d`](https://togithub.com/stacktracejs/error-stack-parser/commit/f67192d)
evanw/esbuild ### [`v0.14.21`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01421) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.20...v0.14.21) - Handle an additional `browser` map edge case ([#​2001](https://togithub.com/evanw/esbuild/pull/2001), [#​2002](https://togithub.com/evanw/esbuild/issues/2002)) There is a community convention around the `browser` field in `package.json` that allows remapping import paths within a package when the package is bundled for use within a browser. There isn't a rigorous definition of how it's supposed to work and every bundler implements it differently. The approach esbuild uses is to try to be "maximally compatible" in that if at least one bundler exhibits a particular behavior regarding the `browser` map that allows a mapping to work, then esbuild also attempts to make that work. I have a collection of test cases for this going here: https://github.com/evanw/package-json-browser-tests. However, I was missing test coverage for the edge case where a package path import in a subdirectory of the package could potentially match a remapping. The "maximally compatible" approach means replicating bugs in Browserify's implementation of the feature where package paths are mistaken for relative paths and are still remapped. Here's a specific example of an edge case that's now handled: - `entry.js`: ```js require('pkg/sub') ``` - `node_modules/pkg/package.json`: ```json { "browser": { "./sub": "./sub/foo.js", "./sub/sub": "./sub/bar.js" } } ``` - `node_modules/pkg/sub/foo.js`: ```js require('sub') ``` - `node_modules/pkg/sub/bar.js`: ```js console.log('works') ``` The import path `sub` in `require('sub')` is mistaken for a relative path by Browserify due to a bug in Browserify, so Browserify treats it as if it were `./sub` instead. This is a Browserify-specific behavior and currently doesn't happen in any other bundler (except for esbuild, which attempts to replicate Browserify's bug). Previously esbuild was incorrectly resolving `./sub` relative to the top-level package directory instead of to the subdirectory in this case, which meant `./sub` was incorrectly matching `"./sub": "./sub/foo.js"` instead of `"./sub/sub": "./sub/bar.js"`. This has been fixed so esbuild can now emulate Browserify's bug correctly in this edge case. - Support for esbuild with Linux on RISC-V 64bit ([#​2000](https://togithub.com/evanw/esbuild/pull/2000)) With this release, esbuild now has a published binary executable for the RISC-V 64bit architecture in the [`esbuild-linux-riscv64`](https://www.npmjs.com/package/esbuild-linux-riscv64) npm package. This change was contributed by [@​piggynl](https://togithub.com/piggynl). ### [`v0.14.20`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01420) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.19...v0.14.20) - Fix property mangling and keyword properties ([#​1998](https://togithub.com/evanw/esbuild/issues/1998)) Previously enabling property mangling with `--mangle-props=` failed to add a space before property names after a keyword. This bug has been fixed: ```js // Original code class Foo { static foo = { get bar() {} } } // Old output (with --minify --mangle-props=.) class Foo{statics={gett(){}}} // New output (with --minify --mangle-props=.) class Foo{static s={get t(){}}} ``` ### [`v0.14.19`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01419) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.18...v0.14.19) - Special-case `const` inlining at the top of a scope ([#​1317](https://togithub.com/evanw/esbuild/issues/1317), [#​1981](https://togithub.com/evanw/esbuild/issues/1981)) The minifier now inlines `const` variables (even across modules during bundling) if a certain set of specific requirements are met: - All `const` variables to be inlined are at the top of their scope - That scope doesn't contain any `import` or `export` statements with paths - All constants to be inlined are `null`, `undefined`, `true`, `false`, an integer, or a short real number - Any expression outside of a small list of allowed ones stops constant identification Practically speaking this basically means that you can trigger this optimization by just putting the constants you want inlined into a separate file (e.g. `constants.js`) and bundling everything together. These specific conditions are present to avoid esbuild unintentionally causing any behavior changes by inlining constants when the variable reference could potentially be evaluated before being declared. It's possible to identify more cases where constants can be inlined but doing so may require complex call graph analysis so it has not been implemented. Although these specific heuristics may change over time, this general approach to constant inlining should continue to work going forward. Here's an example: ```js // Original code const bold = 1 << 0; const italic = 1 << 1; const underline = 1 << 2; const font = bold | italic | underline; console.log(font); // Old output (with --minify --bundle) (()=>{var o=1<<0,n=1<<1,c=1<<2,t=o|n|c;console.log(t);})(); // New output (with --minify --bundle) (()=>{console.log(7);})(); ``` ### [`v0.14.18`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01418) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.17...v0.14.18) - Add the `--mangle-cache=` feature ([#​1977](https://togithub.com/evanw/esbuild/issues/1977)) This release adds a cache API for the newly-released `--mangle-props=` feature. When enabled, all mangled property renamings are recorded in the cache during the initial build. Subsequent builds reuse the renamings stored in the cache and add additional renamings for any newly-added properties. This has a few consequences: - You can customize what mangled properties are renamed to by editing the cache before passing it to esbuild (the cache is a map of the original name to the mangled name). - The cache serves as a list of all properties that were mangled. You can easily scan it to see if there are any unexpected property renamings. - You can disable mangling for individual properties by setting the renamed value to `false` instead of to a string. This is similar to the `--reserve-props=` setting but on a per-property basis. - You can ensure consistent renaming between builds (e.g. a main-thread file and a web worker, or a library and a plugin). Without this feature, each build would do an independent renaming operation and the mangled property names likely wouldn't be consistent. Here's how to use it: - CLI ```sh $ esbuild example.ts --mangle-props=_$ --mangle-cache=cache.json ``` - JS API ```js let result = await esbuild.build({ entryPoints: ['example.ts'], mangleProps: /_$/, mangleCache: { customRenaming_: '__c', disabledRenaming_: false, }, }) let updatedMangleCache = result.mangleCache ``` - Go API ```go result := api.Build(api.BuildOptions{ EntryPoints: []string{"example.ts"}, MangleProps: "_$", MangleCache: map[string]interface{}{ "customRenaming_": "__c", "disabledRenaming_": false, }, }) updatedMangleCache := result.MangleCache ``` The above code would do something like the following: ```js // Original code x = { customRenaming_: 1, disabledRenaming_: 2, otherProp_: 3, } // Generated code x = { __c: 1, disabledRenaming_: 2, a: 3 }; // Updated mangle cache { "customRenaming_": "__c", "disabledRenaming_": false, "otherProp_": "a" } ``` - Add `opera` and `ie` as possible target environments You can now target [Opera](https://www.opera.com/) and/or [Internet Explorer](https://www.microsoft.com/en-us/download/internet-explorer.aspx) using the `--target=` setting. For example, `--target=opera45,ie9` targets Opera 45 and Internet Explorer 9. This change does not add any additional features to esbuild's code transformation pipeline to transform newer syntax so that it works in Internet Explorer. It just adds information about what features are supported in these browsers to esbuild's internal feature compatibility table. - Minify `typeof x !== 'undefined'` to `typeof x < 'u'` This release introduces a small improvement for code that does a lot of `typeof` checks against `undefined`: ```js // Original code y = typeof x !== 'undefined'; // Old output (with --minify) y=typeof x!="undefined"; // New output (with --minify) y=typeof x<"u"; ``` This transformation is only active when minification is enabled, and is disabled if the language target is set lower than ES2020 or if Internet Explorer is set as a target environment. Before ES2020, implementations were allowed to return non-standard values from the `typeof` operator for a few objects. Internet Explorer took advantage of this to sometimes return the string `'unknown'` instead of `'undefined'`. But this has been removed from the specification and Internet Explorer was the only engine to do this, so this minification is valid for code that does not need to target Internet Explorer. ### [`v0.14.17`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01417) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.16...v0.14.17) - Attempt to fix an install script issue on Ubuntu Linux ([#​1711](https://togithub.com/evanw/esbuild/issues/1711)) There have been some reports of esbuild failing to install on Ubuntu Linux for a while now. I haven't been able to reproduce this myself due to lack of reproduction instructions until today, when I learned that the issue only happens when you install node from the [Snap Store](https://snapcraft.io/) instead of downloading the [official version of node](https://nodejs.org/dist/). The problem appears to be that when node is installed from the Snap Store, install scripts are run with stderr not being writable? This then appears to cause a problem for esbuild's install script when it uses `execFileSync` to validate that the esbuild binary is working correctly. This throws the error `EACCES: permission denied, write` even though this particular command never writes to stderr. Node's documentation says that stderr for `execFileSync` defaults to that of the parent process. Forcing it to `'pipe'` instead appears to fix the issue, although I still don't fully understand what's happening or why. I'm publishing this small change regardless to see if it fixes this install script edge case. - Avoid a syntax error due to `--mangle-props=.` and `super()` ([#​1976](https://togithub.com/evanw/esbuild/issues/1976)) This release fixes an issue where passing `--mangle-props=.` (i.e. telling esbuild to mangle every single property) caused a syntax error with code like this: ```js class Foo {} class Bar extends Foo { constructor() { super(); } } ``` The problem was that `constructor` was being renamed to another method, which then made it no longer a constructor, which meant that `super()` was now a syntax error. I have added a workaround that avoids renaming any property named `constructor` so that esbuild doesn't generate a syntax error here. Despite this fix, I highly recommend not using `--mangle-props=.` because your code will almost certainly be broken. You will have to manually add every single property that you don't want mangled to `--reserve-props=` which is an excessive maintenance burden (e.g. reserve `parse` to use `JSON.parse`). Instead I recommend using a common pattern for all properties you intend to be mangled that is unlikely to appear in the APIs you use such as "ends in an underscore." This is an opt-in approach instead of an opt-out approach. It also makes it obvious when reading the code which properties will be mangled and which ones won't be. ### [`v0.14.16`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01416) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.15...v0.14.16) - Support property name mangling with some TypeScript syntax features The newly-released `--mangle-props=` feature previously only affected JavaScript syntax features. This release adds support for using mangle props with certain TypeScript syntax features: - **TypeScript parameter properties** Parameter properties are a TypeScript-only shorthand way of initializing a class field directly from the constructor argument list. Previously parameter properties were not treated as properties to be mangled. They should now be handled correctly: ```ts // Original code class Foo { constructor(public foo_) {} } new Foo().foo_; // Old output (with --minify --mangle-props=_) class Foo{constructor(c){this.foo_=c}}new Foo().o; // New output (with --minify --mangle-props=_) class Foo{constructor(o){this.c=o}}new Foo().c; ``` - **TypeScript namespaces** Namespaces are a TypeScript-only way to add properties to an object. Previously exported namespace members were not treated as properties to be mangled. They should now be handled correctly: ```ts // Original code namespace ns { export let foo_ = 1; export function bar_(x) {} } ns.bar_(ns.foo_); // Old output (with --minify --mangle-props=_) var ns;(e=>{e.foo_=1;function t(a){}e.bar_=t})(ns||={}),ns.e(ns.o); // New output (with --minify --mangle-props=_) var ns;(e=>{e.e=1;function o(p){}e.t=o})(ns||={}),ns.t(ns.e); ``` - Fix property name mangling for lowered class fields This release fixes a compiler crash with `--mangle-props=` and class fields that need to be transformed to older versions of JavaScript. The problem was that doing this is an unusual case where the mangled property name must be represented as a string instead of as a property name, which previously wasn't implemented. This case should now work correctly: ```js // Original code class Foo { static foo_; } Foo.foo_ = 0; // New output (with --mangle-props=_ --target=es6) class Foo { } __publicField(Foo, "a"); Foo.a = 0; ``` ### [`v0.14.15`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01415) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.14...v0.14.15) - Add property name mangling with `--mangle-props=` ([#​218](https://togithub.com/evanw/esbuild/issues/218)) ⚠️ **Using this feature can break your code in subtle ways.** Do not use this feature unless you know what you are doing, and you know exactly how it will affect both your code and all of your dependencies. ⚠️ This release introduces property name mangling, which is similar to an existing feature from the popular [UglifyJS](github.com/mishoo/uglifyjs) and [Terser](github.com/terser/terser) JavaScript minifiers. This setting lets you pass a regular expression to esbuild to tell esbuild to automatically rename all properties that match this regular expression. It's useful when you want to minify certain property names in your code either to make the generated code smaller or to somewhat obfuscate your code's intent. Here's an example that uses the regular expression `_[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@commitlint/cli](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`16.0.2` -> `16.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/16.0.2/16.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/compatibility-slim/16.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/confidence-slim/16.0.2)](https://docs.renovatebot.com/merge-confidence/) | | [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`16.0.0` -> `16.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/16.0.0/16.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/compatibility-slim/16.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/confidence-slim/16.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`9.0.0` -> `9.1.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/9.0.0/9.1.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/compatibility-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/confidence-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.9.1` -> `5.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.9.1/5.12.0) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.9.1` -> `5.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.9.1/5.12.0) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | | [chai](http://chaijs.com) ([source](https://togithub.com/chaijs/chai)) | [`4.3.4` -> `4.3.6`](https://renovatebot.com/diffs/npm/chai/4.3.4/4.3.6) | [![age](https://badges.renovateapi.com/packages/npm/chai/4.3.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/chai/4.3.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/chai/4.3.6/compatibility-slim/4.3.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/chai/4.3.6/confidence-slim/4.3.4)](https://docs.renovatebot.com/merge-confidence/) | | [error-stack-parser](https://www.stacktracejs.com) ([source](https://togithub.com/stacktracejs/error-stack-parser)) | [`2.0.6` -> `2.0.7`](https://renovatebot.com/diffs/npm/error-stack-parser/2.0.6/2.0.7) | [![age](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/compatibility-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/confidence-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/) | | [esbuild](https://togithub.com/evanw/esbuild) | [`0.14.11` -> `0.14.21`](https://renovatebot.com/diffs/npm/esbuild/0.14.11/0.14.21) | [![age](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/compatibility-slim/0.14.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/confidence-slim/0.14.11)](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.7.0` -> `8.9.0`](https://renovatebot.com/diffs/npm/eslint/8.7.0/8.9.0) | [![age](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/compatibility-slim/8.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/confidence-slim/8.7.0)](https://docs.renovatebot.com/merge-confidence/) | | [lint-staged](https://togithub.com/okonet/lint-staged) | [`12.1.7` -> `12.3.4`](https://renovatebot.com/diffs/npm/lint-staged/12.1.7/12.3.4) | [![age](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/compatibility-slim/12.1.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/confidence-slim/12.1.7)](https://docs.renovatebot.com/merge-confidence/) | | [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | [`9.1.4` -> `9.2.0`](https://renovatebot.com/diffs/npm/mocha/9.1.4/9.2.0) | [![age](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/compatibility-slim/9.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/confidence-slim/9.1.4)](https://docs.renovatebot.com/merge-confidence/) | | [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`4.5.4` -> `4.5.5`](https://renovatebot.com/diffs/npm/typescript/4.5.4/4.5.5) | [![age](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/compatibility-slim/4.5.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/confidence-slim/4.5.4)](https://docs.renovatebot.com/merge-confidence/) | | [vuepress](https://togithub.com/vuejs/vuepress) | [`1.9.5` -> `1.9.7`](https://renovatebot.com/diffs/npm/vuepress/1.9.5/1.9.7) | [![age](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/compatibility-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/confidence-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | | [webpack](https://togithub.com/webpack/webpack) | [`5.66.0` -> `5.68.0`](https://renovatebot.com/diffs/npm/webpack/5.66.0/5.68.0) | [![age](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/compatibility-slim/5.66.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/confidence-slim/5.66.0)](https://docs.renovatebot.com/merge-confidence/) | | [webpack-cli](https://togithub.com/webpack/webpack-cli) | [`4.9.1` -> `4.9.2`](https://renovatebot.com/diffs/npm/webpack-cli/4.9.1/4.9.2) | [![age](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/compatibility-slim/4.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/confidence-slim/4.9.1)](https://docs.renovatebot.com/merge-confidence/) | --- to mangle all properties ending in an underscore, such as `foo_`: $ echo 'console.log({ foo_: 0 }.foo_)' | esbuild --mangle-props=_$ console.log({ a: 0 }.a); Only mangling properties that end in an underscore is a reasonable heuristic because normal JS code doesn't typically contain identifiers like that. Browser APIs also don't use this naming convention so this also avoids conflicts with browser APIs. If you want to avoid mangling names such as [`__defineGetter__`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/\__defineGetter\_\_) you could consider using a more complex regular expression such as `[^_]_[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@commitlint/cli](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`16.0.2` -> `16.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/16.0.2/16.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/compatibility-slim/16.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/confidence-slim/16.0.2)](https://docs.renovatebot.com/merge-confidence/) | | [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`16.0.0` -> `16.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/16.0.0/16.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/compatibility-slim/16.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/confidence-slim/16.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`9.0.0` -> `9.1.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/9.0.0/9.1.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/compatibility-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/confidence-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.9.1` -> `5.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.9.1/5.12.0) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.9.1` -> `5.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.9.1/5.12.0) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | | [chai](http://chaijs.com) ([source](https://togithub.com/chaijs/chai)) | [`4.3.4` -> `4.3.6`](https://renovatebot.com/diffs/npm/chai/4.3.4/4.3.6) | [![age](https://badges.renovateapi.com/packages/npm/chai/4.3.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/chai/4.3.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/chai/4.3.6/compatibility-slim/4.3.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/chai/4.3.6/confidence-slim/4.3.4)](https://docs.renovatebot.com/merge-confidence/) | | [error-stack-parser](https://www.stacktracejs.com) ([source](https://togithub.com/stacktracejs/error-stack-parser)) | [`2.0.6` -> `2.0.7`](https://renovatebot.com/diffs/npm/error-stack-parser/2.0.6/2.0.7) | [![age](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/compatibility-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/confidence-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/) | | [esbuild](https://togithub.com/evanw/esbuild) | [`0.14.11` -> `0.14.21`](https://renovatebot.com/diffs/npm/esbuild/0.14.11/0.14.21) | [![age](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/compatibility-slim/0.14.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/confidence-slim/0.14.11)](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.7.0` -> `8.9.0`](https://renovatebot.com/diffs/npm/eslint/8.7.0/8.9.0) | [![age](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/compatibility-slim/8.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/confidence-slim/8.7.0)](https://docs.renovatebot.com/merge-confidence/) | | [lint-staged](https://togithub.com/okonet/lint-staged) | [`12.1.7` -> `12.3.4`](https://renovatebot.com/diffs/npm/lint-staged/12.1.7/12.3.4) | [![age](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/compatibility-slim/12.1.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/confidence-slim/12.1.7)](https://docs.renovatebot.com/merge-confidence/) | | [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | [`9.1.4` -> `9.2.0`](https://renovatebot.com/diffs/npm/mocha/9.1.4/9.2.0) | [![age](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/compatibility-slim/9.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/confidence-slim/9.1.4)](https://docs.renovatebot.com/merge-confidence/) | | [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`4.5.4` -> `4.5.5`](https://renovatebot.com/diffs/npm/typescript/4.5.4/4.5.5) | [![age](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/compatibility-slim/4.5.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/confidence-slim/4.5.4)](https://docs.renovatebot.com/merge-confidence/) | | [vuepress](https://togithub.com/vuejs/vuepress) | [`1.9.5` -> `1.9.7`](https://renovatebot.com/diffs/npm/vuepress/1.9.5/1.9.7) | [![age](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/compatibility-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/confidence-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | | [webpack](https://togithub.com/webpack/webpack) | [`5.66.0` -> `5.68.0`](https://renovatebot.com/diffs/npm/webpack/5.66.0/5.68.0) | [![age](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/compatibility-slim/5.66.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/confidence-slim/5.66.0)](https://docs.renovatebot.com/merge-confidence/) | | [webpack-cli](https://togithub.com/webpack/webpack-cli) | [`4.9.1` -> `4.9.2`](https://renovatebot.com/diffs/npm/webpack-cli/4.9.1/4.9.2) | [![age](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/compatibility-slim/4.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/confidence-slim/4.9.1)](https://docs.renovatebot.com/merge-confidence/) | --- (i.e. must end in a non-underscore followed by an underscore). This is a separate setting instead of being part of the minify setting because it's an unsafe transformation that does not work on arbitrary JavaScript code. It only works if the provided regular expression matches all of the properties that you want mangled and does not match any of the properties that you don't want mangled. It also only works if you do not under any circumstances reference a property name to be mangled as a string. For example, it means you can't use `Object.defineProperty(obj, 'prop', ...)` or `obj['prop']` with a mangled property. Specifically the following syntax constructs are the only ones eligible for property mangling: | Syntax | Example | |---------------------------------|-------------------------| | Dot property access | `x.foo_` | | Dot optional chain | `x?.foo_` | | Object properties | `x = { foo_: y }` | | Object methods | `x = { foo_() {} }` | | Class fields | `class x { foo_ = y }` | | Class methods | `class x { foo_() {} }` | | Object destructuring binding | `let { foo_: x } = y` | | Object destructuring assignment | `({ foo_: x } = y)` | | JSX element names | `` | | JSX attribute names | `` | You can avoid property mangling for an individual property by quoting it as a string. However, you must consistently use quotes or no quotes for a given property everywhere for this to work. For example, `print({ foo_: 0 }.foo_)` will be mangled into `print({ a: 0 }.a)` while `print({ 'foo_': 0 }['foo_'])` will not be mangled. When using this feature, keep in mind that property names are only consistently mangled within a single esbuild API call but not across esbuild API calls. Each esbuild API call does an independent property mangling operation so output files generated by two different API calls may mangle the same property to two different names, which could cause the resulting code to behave incorrectly. If you would like to exclude certain properties from mangling, you can reserve them with the `--reserve-props=` setting. For example, this uses the regular expression `^__.*__[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@commitlint/cli](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`16.0.2` -> `16.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/16.0.2/16.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/compatibility-slim/16.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/16.2.1/confidence-slim/16.0.2)](https://docs.renovatebot.com/merge-confidence/) | | [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`16.0.0` -> `16.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/16.0.0/16.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/compatibility-slim/16.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/16.2.1/confidence-slim/16.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`9.0.0` -> `9.1.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/9.0.0/9.1.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/compatibility-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fmocha/9.1.0/confidence-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.9.1` -> `5.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.9.1/5.12.0) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.12.0/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.9.1` -> `5.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.9.1/5.12.0) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.12.0/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | | [chai](http://chaijs.com) ([source](https://togithub.com/chaijs/chai)) | [`4.3.4` -> `4.3.6`](https://renovatebot.com/diffs/npm/chai/4.3.4/4.3.6) | [![age](https://badges.renovateapi.com/packages/npm/chai/4.3.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/chai/4.3.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/chai/4.3.6/compatibility-slim/4.3.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/chai/4.3.6/confidence-slim/4.3.4)](https://docs.renovatebot.com/merge-confidence/) | | [error-stack-parser](https://www.stacktracejs.com) ([source](https://togithub.com/stacktracejs/error-stack-parser)) | [`2.0.6` -> `2.0.7`](https://renovatebot.com/diffs/npm/error-stack-parser/2.0.6/2.0.7) | [![age](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/compatibility-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/error-stack-parser/2.0.7/confidence-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/) | | [esbuild](https://togithub.com/evanw/esbuild) | [`0.14.11` -> `0.14.21`](https://renovatebot.com/diffs/npm/esbuild/0.14.11/0.14.21) | [![age](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/compatibility-slim/0.14.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/esbuild/0.14.21/confidence-slim/0.14.11)](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.7.0` -> `8.9.0`](https://renovatebot.com/diffs/npm/eslint/8.7.0/8.9.0) | [![age](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/compatibility-slim/8.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/eslint/8.9.0/confidence-slim/8.7.0)](https://docs.renovatebot.com/merge-confidence/) | | [lint-staged](https://togithub.com/okonet/lint-staged) | [`12.1.7` -> `12.3.4`](https://renovatebot.com/diffs/npm/lint-staged/12.1.7/12.3.4) | [![age](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/compatibility-slim/12.1.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/lint-staged/12.3.4/confidence-slim/12.1.7)](https://docs.renovatebot.com/merge-confidence/) | | [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | [`9.1.4` -> `9.2.0`](https://renovatebot.com/diffs/npm/mocha/9.1.4/9.2.0) | [![age](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/compatibility-slim/9.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/mocha/9.2.0/confidence-slim/9.1.4)](https://docs.renovatebot.com/merge-confidence/) | | [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`4.5.4` -> `4.5.5`](https://renovatebot.com/diffs/npm/typescript/4.5.4/4.5.5) | [![age](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/compatibility-slim/4.5.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.5.5/confidence-slim/4.5.4)](https://docs.renovatebot.com/merge-confidence/) | | [vuepress](https://togithub.com/vuejs/vuepress) | [`1.9.5` -> `1.9.7`](https://renovatebot.com/diffs/npm/vuepress/1.9.5/1.9.7) | [![age](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/compatibility-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vuepress/1.9.7/confidence-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | | [webpack](https://togithub.com/webpack/webpack) | [`5.66.0` -> `5.68.0`](https://renovatebot.com/diffs/npm/webpack/5.66.0/5.68.0) | [![age](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/compatibility-slim/5.66.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/webpack/5.68.0/confidence-slim/5.66.0)](https://docs.renovatebot.com/merge-confidence/) | | [webpack-cli](https://togithub.com/webpack/webpack-cli) | [`4.9.1` -> `4.9.2`](https://renovatebot.com/diffs/npm/webpack-cli/4.9.1/4.9.2) | [![age](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/compatibility-slim/4.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/webpack-cli/4.9.2/confidence-slim/4.9.1)](https://docs.renovatebot.com/merge-confidence/) | --- to reserve all properties that start and end with two underscores, such as `__foo__`: $ echo 'console.log({ __foo__: 0 }.__foo__)' | esbuild --mangle-props=_$ console.log({ a: 0 }.a); $ echo 'console.log({ __foo__: 0 }.__foo__)' | esbuild --mangle-props=_$ "--reserve-props=^__.*__$" console.log({ __foo__: 0 }.__foo__); - Mark esbuild as supporting node v12+ ([#​1970](https://togithub.com/evanw/esbuild/issues/1970)) Someone requested that esbuild populate the `engines.node` field in `package.json`. This release adds the following to each `package.json` file that esbuild publishes: ```json "engines": { "node": ">=12" }, ``` This was chosen because it's the oldest version of node that's currently still receiving support from the node team, and so is the oldest version of node that esbuild supports: https://nodejs.org/en/about/releases/. - Remove error recovery for invalid `//` comments in CSS ([#​1965](https://togithub.com/evanw/esbuild/issues/1965)) Previously esbuild treated `//` as a comment in CSS and generated a warning, even though comments in CSS use `/* ... */` instead. This allowed you to run esbuild on CSS intended for certain CSS preprocessors that support single-line comments. However, some people are changing from another build tool to esbuild and have a code base that relies on `//` being preserved even though it's nonsense CSS and causes the entire surrounding rule to be discarded by the browser. Presumably this nonsense CSS ended up there at some point due to an incorrectly-configured build pipeline and the site now relies on that entire rule being discarded. If esbuild interprets `//` as a comment, it could cause the rule to no longer be discarded or even cause something else to happen. With this release, esbuild no longer treats `//` as a comment in CSS. It still warns about it but now passes it through unmodified. This means it's no longer possible to run esbuild on CSS code containing single-line comments but it means that esbuild's behavior regarding these nonsensical CSS rules more accurately represents what happens in a browser. ### [`v0.14.14`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01414) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.13...v0.14.14) - Fix bug with filename hashes and the `file` loader ([#​1957](https://togithub.com/evanw/esbuild/issues/1957)) This release fixes a bug where if a file name template has the `[hash]` placeholder (either `--entry-names=` or `--chunk-names=`), the hash that esbuild generates didn't include the content of the string generated by the `file` loader. Importing a file with the `file` loader causes the imported file to be copied to the output directory and causes the imported value to be the relative path from the output JS file to that copied file. This bug meant that if the `--asset-names=` setting also contained `[hash]` and the file loaded with the `file` loader was changed, the hash in the copied file name would change but the hash of the JS file would not change, which could potentially result in a stale JS file being loaded. Now the hash of the JS file will be changed too which fixes the reload issue. - Prefer the `import` condition for entry points ([#​1956](https://togithub.com/evanw/esbuild/issues/1956)) The `exports` field in `package.json` maps package subpaths to file paths. The mapping can be conditional, which lets it vary in different situations. For example, you can have an `import` condition that applies when the subpath originated from a JS import statement, and a `require` condition that applies when the subpath originated from a JS require call. These are supposed to be mutually exclusive according to the specification: https://nodejs.org/api/packages.html#conditional-exports. However, there's a situation with esbuild where it's not immediately obvious which one should be applied: when a package name is specified as an entry point. For example, this can happen if you do `esbuild --bundle some-pkg` on the command line. In this situation `some-pkg` does not originate from either a JS import statement or a JS require call. Previously esbuild just didn't apply the `import` or `require` conditions. But that could result in path resolution failure if the package doesn't provide a back-up `default` condition, as is the case with the `is-plain-object` package. Starting with this release, esbuild will now use the `import` condition in this case. This appears to be how Webpack and Rollup handle this situation so this change makes esbuild consistent with other tools in the ecosystem. Parcel (the other major bundler) just doesn't handle this case at all so esbuild's behavior is not at odds with Parcel's behavior here. - Make parsing of invalid `@keyframes` rules more robust ([#​1959](https://togithub.com/evanw/esbuild/issues/1959)) This improves esbuild's parsing of certain malformed `@keyframes` rules to avoid them affecting the following rule. This fix only affects invalid CSS files, and does not change any behavior for files containing valid CSS. Here's an example of the fix: ```css /* Original code */ @​keyframes x { . } @​keyframes y { 1% { a: b; } } /* Old output (with --minify) */ @​keyframes x{y{1% {a: b;}}} /* New output (with --minify) */ @​keyframes x{.}@​keyframes y{1%{a:b}} ``` ### [`v0.14.13`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01413) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.12...v0.14.13) - Be more consistent about external paths ([#​619](https://togithub.com/evanw/esbuild/issues/619)) The rules for marking paths as external using `--external:` grew over time as more special-cases were added. This release reworks the internal representation to be more straightforward and robust. A side effect is that wildcard patterns can now match post-resolve paths in addition to pre-resolve paths. Specifically you can now do `--external:./node_modules/*` to mark all files in the `./node_modules/` directory as external. This is the updated logic: - Before path resolution begins, import paths are checked against everything passed via an `--external:` flag. In addition, if something looks like a package path (i.e. doesn't start with `/` or `./` or `../`), import paths are checked to see if they have that package path as a path prefix (so `--external:@​foo/bar` matches the import path `@foo/bar/baz`). - After path resolution ends, the absolute paths are checked against everything passed via `--external:` that doesn't look like a package path (i.e. that starts with `/` or `./` or `../`). But before checking, the pattern is transformed to be relative to the current working directory. - Attempt to explain why esbuild can't run ([#​1819](https://togithub.com/evanw/esbuild/issues/1819)) People sometimes try to install esbuild on one OS and then copy the `node_modules` directory over to another OS without reinstalling. This works with JavaScript code but doesn't work with esbuild because esbuild is a native binary executable. This release attempts to offer a helpful error message when this happens. It looks like this: $ ./node_modules/.bin/esbuild ./node_modules/esbuild/bin/esbuild:106 throw new Error(` ^ Error: You installed esbuild on another platform than the one you're currently using. This won't work because esbuild is written with native code and needs to install a platform-specific binary executable. Specifically the "esbuild-linux-arm64" package is present but this platform needs the "esbuild-darwin-arm64" package instead. People often get into this situation by installing esbuild on Windows or macOS and copying "node_modules" into a Docker image that runs Linux, or by copying "node_modules" between Windows and WSL environments. If you are installing with npm, you can try not copying the "node_modules" directory when you copy the files over, and running "npm ci" or "npm install" on the destination platform after the copy. Or you could consider using yarn instead which has built-in support for installing a package on multiple platforms simultaneously. If you are installing with yarn, you can try listing both this platform and the other platform in your ".yarnrc.yml" file using the "supportedArchitectures" feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures Keep in mind that this means multiple copies of esbuild will be present. Another alternative is to use the "esbuild-wasm" package instead, which works the same way on all platforms. But it comes with a heavy performance cost and can sometimes be 10x slower than the "esbuild" package, so you may also not want to do that. at generateBinPath (./node_modules/esbuild/bin/esbuild:106:17) at Object. (./node_modules/esbuild/bin/esbuild:161:39) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47 ### [`v0.14.12`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#​01412) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.14.11...v0.14.12) - Ignore invalid `@import` rules in CSS ([#​1946](https://togithub.com/evanw/esbuild/issues/1946)) In CSS, `@import` rules must come first before any other kind of rule (except for `@charset` rules). Previously esbuild would warn about incorrectly ordered `@import` rules and then hoist them to the top of the file. This broke people who wrote invalid `@import` rules in the middle of their file

Configuration

📅 Schedule: 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. Get config help if that's undesired.



This PR has been generated by WhiteSource Renovate. View repository job log here.