This release comes just a few months after the v3 release due to the much faster than expected turnaround on optional chaining by ESTree. Read on for more details!
Summary of Changes
Breaking:
feat: support new ESTree optional chaining representation (#2308) (a4bd2a815447867132ce1f6dda574e608834b794)
feat: consume new scope analysis package (#2039) (abb0617e7cda636064193c65c73f8f8c08d8cb56)
feat(eslint-plugin): [ban-ts-comment] change default for ts-expect-error to allow-with-description (#2351) (ef85b7b92cf7b83e708bc85b58baca295955d5c8)
feat(eslint-plugin): [typedef] remove all default options (#2352) (13bd4dd11fc478a18a70e9e71853f099f0833330)
fix: correct decorator traversal for AssignmentPattern (#2375) (5ab473c07d43da70ddf8827efc8678c376fb15ab)
feat(eslint-plugin): [no-unnecessary-condition][strict-boolean-expressions] add option to make the rules error on files without strictNullChecks turned on (#2345) (ee5b194e6cb813e8aed0f2889b51d12a2b6964e4)
feat(typescript-estree): switch to globby (#2418) (789c439a8a80d1c3dc5d6c7ca4c5ae4d1d889a5b)
feat: add downlevel-dts to all packages with type declarations (a25718358e2c198e387a79d7f175baaa951ad547)
Breaking Changes
AST Changes
Support official ESTree optional chaining syntax (#2204)
When TS 3.7 released with optional chaining in November 2019, the feature was still a Stage-3 TC39 spec. This meant that ESTree[1] did not yet have an official AST representation defined, as they only officially support Stage-4 specs.
This meant that we either had to block on TS 3.7 support, unofficially support optional chaining, or find an interim representation to use. As we had no clear timeframe around which both optional chaining would move to Stage-4, and when the ESTree AST for it would be defined, we decided the first two options were sub-optimal, and instead chose to the existing babel-eslint AST representation. This representation has been in the ecosystem for a while and was supported by a variety of plugins.
Recently, ESTree agreed upon and merged an AST for optional chaining, which is vastly different to babel-eslint's representation. ESLint and their parser espree have already implemented and released support for this new AST as of ESLint v7.5.0.
In order to correct course to match the future of the ecosystem, we've update our AST to match the new, official representation.
This means a few things right now:
The ESLint core rules will have complete support for optional chaining, without need for extension rules 🎉
Users might have to wait for plugins outside this project to update their logic to support this new AST.
typescript-estree: - removes the ability to supply a RegExp to projectFolderIgnoreList, and changes the meaning of the string value from a regex to a glob.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/joelwmale/webhook-action/pull/27
**Author:** [@dependabot[bot]](https://github.com/apps/dependabot)
**Created:** 9/1/2020
**Status:** ❌ Closed
**Base:** `develop` ← **Head:** `dependabot/npm_and_yarn/typescript-eslint/parser-4.0.1`
---
### 📝 Commits (1)
- [`7e6f650`](https://github.com/joelwmale/webhook-action/commit/7e6f6503808a63c33b7a5abd949ac09320c3c41e) Bump @typescript-eslint/parser from 3.10.1 to 4.0.1
### 📊 Changes
**2 files changed** (+179 additions, -17 deletions)
<details>
<summary>View changed files</summary>
📝 `package.json` (+1 -1)
📝 `yarn.lock` (+178 -16)
</details>
### 📄 Description
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 3.10.1 to 4.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/parser's releases</a>.</em></p>
<blockquote>
<h2>v4.0.1</h2>
<h2><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1">4.0.1</a> (2020-08-31)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> update parser dependency range (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/2445">#2445</a>) (<a href="https://github.com/typescript-eslint/typescript-eslint/commit/2cb66205de797479d9b2d362652c42fe032e913b">2cb6620</a>), closes <a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/2444">#2444</a></li>
</ul>
<h2>v4.0.0</h2>
<h1><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0">4.0.0</a> (2020-08-31)</h1>
<p>This release comes just a few months after the v3 release due to the much faster than expected turnaround on optional chaining by ESTree. Read on for more details!</p>
<h1>Summary of Changes</h1>
<h2>Breaking:</h2>
<ul>
<li>feat: support new ESTree optional chaining representation (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2308">#2308</a>) (a4bd2a815447867132ce1f6dda574e608834b794)</li>
<li>feat: consume new scope analysis package (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2039">#2039</a>) (abb0617e7cda636064193c65c73f8f8c08d8cb56)</li>
<li>feat(eslint-plugin): [ban-ts-comment] change default for <code>ts-expect-error</code> to <code>allow-with-description</code> (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2351">#2351</a>) (ef85b7b92cf7b83e708bc85b58baca295955d5c8)</li>
<li>feat(eslint-plugin): [typedef] remove all default options (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2352">#2352</a>) (13bd4dd11fc478a18a70e9e71853f099f0833330)</li>
<li>fix: correct decorator traversal for AssignmentPattern (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2375">#2375</a>) (5ab473c07d43da70ddf8827efc8678c376fb15ab)</li>
<li>feat(eslint-plugin): [no-unnecessary-condition][strict-boolean-expressions] add option to make the rules error on files without <code>strictNullChecks</code> turned on (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2345">#2345</a>) (ee5b194e6cb813e8aed0f2889b51d12a2b6964e4)</li>
<li>feat(typescript-estree): switch to globby (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2418">#2418</a>) (789c439a8a80d1c3dc5d6c7ca4c5ae4d1d889a5b)</li>
</ul>
<h2>Non-Breaking:</h2>
<ul>
<li>feat(eslint-plugin): add <code>consistent-type-imports</code> rule (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2367">#2367</a>) (ba9295b774765c293c94c5e82c26804ded25180d)</li>
<li>feat: add <code>downlevel-dts</code> to all packages with type declarations (a25718358e2c198e387a79d7f175baaa951ad547)</li>
</ul>
<hr />
<h1>Breaking Changes</h1>
<h2>AST Changes</h2>
<h3>Support official ESTree optional chaining syntax (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2204">#2204</a>)</h3>
<p>When TS 3.7 released with optional chaining in November 2019, the feature was still a Stage-3 TC39 spec. This meant that ESTree<!-- raw HTML omitted -->[1]<!-- raw HTML omitted --> did not yet have an official AST representation defined, as they only officially support Stage-4 specs.</p>
<p>This meant that we either had to block on TS 3.7 support, unofficially support optional chaining, or find an interim representation to use. As we had no clear timeframe around which both optional chaining would move to Stage-4, and when the ESTree AST for it would be defined, we decided the first two options were sub-optimal, and instead chose to the existing <code>babel-eslint</code> AST representation. This representation has been in the ecosystem for a while and was supported by a variety of plugins.</p>
<p>Recently, <a href="https://github-redirect.dependabot.com/estree/estree/pull/204">ESTree agreed upon and merged an AST for optional chaining</a>, which is vastly different to <code>babel-eslint</code>'s representation. ESLint and their parser <code>espree</code> have already implemented and released support for this new AST as of ESLint <code>v7.5.0</code>.</p>
<p>In order to correct course to match the future of the ecosystem, we've update our AST to match the new, official representation.</p>
<p>This means a few things right now:</p>
<ol>
<li>The ESLint core rules will have complete support for optional chaining, without need for extension rules :tada:</li>
<li>Users might have to wait for plugins outside this project to update their logic to support this new AST.</li>
</ol>
<!-- raw HTML omitted -->
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md">@typescript-eslint/parser's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1">4.0.1</a> (2020-08-31)</h2>
<p><strong>Note:</strong> Version bump only for package @typescript-eslint/parser</p>
<h1><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0">4.0.0</a> (2020-08-31)</h1>
<h3>Features</h3>
<ul>
<li>consume new scope analysis package (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/2039">#2039</a>) (<a href="https://github.com/typescript-eslint/typescript-eslint/commit/3be125d9bdbee1984ac6037874edf619213bd3d0">3be125d</a>)</li>
<li>support ESTree optional chaining representation (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/2308">#2308</a>) (<a href="https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae">e9d2ab6</a>)</li>
<li><strong>typescript-estree:</strong> switch to globby (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/2418">#2418</a>) (<a href="https://github.com/typescript-eslint/typescript-eslint/commit/3a7ec9bcf1873a99c6da2f19ade8ab4763b4793c">3a7ec9b</a>), closes <a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/2398">#2398</a></li>
</ul>
<h3>BREAKING CHANGES</h3>
<ul>
<li><strong>typescript-estree:</strong> - removes the ability to supply a <code>RegExp</code> to <code>projectFolderIgnoreList</code>, and changes the meaning of the string value from a regex to a glob.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/46ad4d051d8b58e003cb70f7f449218b5d354391"><code>46ad4d0</code></a> chore: publish v4.0.1</li>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/c51e3f0c7450481813348847c6d28b7589b0a92d"><code>c51e3f0</code></a> chore: publish v4.0.0</li>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/c3a6c2aa7c8afaf07bb4d3eb5565943ea613fb61"><code>c3a6c2a</code></a> chore: add downlevel-dts to all packages with type declarations</li>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/ac0defca4101bfa39921db6b9c11ded8d907eeec"><code>ac0defc</code></a> chore: update dependencies</li>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3a7ec9bcf1873a99c6da2f19ade8ab4763b4793c"><code>3a7ec9b</code></a> feat(typescript-estree): switch to globby (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2418">#2418</a>)</li>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/3be125d9bdbee1984ac6037874edf619213bd3d0"><code>3be125d</code></a> feat: consume new scope analysis package (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2039">#2039</a>)</li>
<li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae"><code>e9d2ab6</code></a> feat: support ESTree optional chaining representation (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/2308">#2308</a>)</li>
<li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v4.0.1/packages/parser">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/joelwmale/webhook-action/pull/27
Author: @dependabot[bot]
Created: 9/1/2020
Status: ❌ Closed
Base:
develop← Head:dependabot/npm_and_yarn/typescript-eslint/parser-4.0.1📝 Commits (1)
7e6f650Bump @typescript-eslint/parser from 3.10.1 to 4.0.1📊 Changes
2 files changed (+179 additions, -17 deletions)
View changed files
📝
package.json(+1 -1)📝
yarn.lock(+178 -16)📄 Description
Bumps @typescript-eslint/parser from 3.10.1 to 4.0.1.
Release notes
Sourced from @typescript-eslint/parser's releases.
Changelog
Sourced from @typescript-eslint/parser's changelog.
Commits
46ad4d0chore: publish v4.0.1c51e3f0chore: publish v4.0.0c3a6c2achore: add downlevel-dts to all packages with type declarationsac0defcchore: update dependencies3a7ec9bfeat(typescript-estree): switch to globby (#2418)3be125dfeat: consume new scope analysis package (#2039)e9d2ab6feat: support ESTree optional chaining representation (#2308)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.