Repository: stylelint/vscode-stylelint
Pull request #296 (2021-11-01 15:01:28)

chore(deps-dev): bump eslint from 7.32.0 to 8.1.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.32.0 to 8.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p>
<blockquote>
<h2>v8.1.0</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/446b4b3583f90dba7e0ac347b57db013aecc101d"><code>446b4b3</code></a> Docs: Update commit message format docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15200">#15200</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/d9d84a060362efbaac727f18e3a790098bf0bc4b"><code>d9d84a0</code></a> Fix: keyword-spacing conflict with space-infix-ops on <code>&gt;</code> (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14712">#14712</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15172">#15172</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/a1f7ad77e2da00ac7d6daade547fe6bef4ef6003"><code>a1f7ad7</code></a> Fix: allow <code>baseConfig</code> to extend preloaded plugin config (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15079">#15079</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15187">#15187</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/3d370fb3596ccd3463c29f1a7a1e3f321dd8083a"><code>3d370fb</code></a> New: Add no-unused-private-class-members rule (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14859">#14859</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14895">#14895</a>) (Tim van der Lippe)</li>
<li><a href="https://github.com/eslint/eslint/commit/e926b1735c77bf55abc1150b060a535a6c4e2778"><code>e926b17</code></a> New: Add name to RuleTester (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15179">#15179</a>) (Gareth Jones)</li>
<li><a href="https://github.com/eslint/eslint/commit/90a5b6b4aeff7343783f85418c683f2c9901ab07"><code>90a5b6b</code></a> Chore: improve performance of <code>:function</code> selector (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15181">#15181</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/31af1c8770c7dac9e9686a0549af329abe5a795b"><code>31af1c8</code></a> Chore: fix counting of files in performance test (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15190">#15190</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/1b87fa835892d9da3b945db763196715d8088090"><code>1b87fa8</code></a> Build: add node v17 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15193">#15193</a>) (唯然)</li>
<li><a href="https://github.com/eslint/eslint/commit/0fb3bb2af3301c92ccd46ece739644a17df89bab"><code>0fb3bb2</code></a> Docs: remove <code>instanceof</code> from keyword-spacing docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15180">#15180</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/249a04070f88d2c895af3b78d60d2eff2730730e"><code>249a040</code></a> Upgrade: <code>eslint-plugin-eslint-plugin</code> to v4 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15169">#15169</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/35f3254d5f8027f75a6cb35b58bea10037003be8"><code>35f3254</code></a> Docs: Describe range in rule docs (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14162">#14162</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15174">#15174</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/b5049c89a00f1a0da59ecaee74b9b024ef3c3621"><code>b5049c8</code></a> Chore: Update stale bot settings (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15173">#15173</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/2b32f50460d6858367b25df20b7a717528891e0d"><code>2b32f50</code></a> Docs: Fix typo in README.md (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15168">#15168</a>) (Dmitriy Fishman)</li>
<li><a href="https://github.com/eslint/eslint/commit/dd58cd4afa6ced9016c091fc99a702c97a3e44f0"><code>dd58cd4</code></a> Chore: migrate master to main (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15062">#15062</a>) (Nitesh Seram)</li>
<li><a href="https://github.com/eslint/eslint/commit/ec0f8e0bb7d7ce502ca68fcd13ac323eb6307455"><code>ec0f8e0</code></a> Chore: Add stale issue/PR checker (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15151">#15151</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/2cfbd4bfd90b31cd728d6595bd1e36667715c84d"><code>2cfbd4b</code></a> Docs: Update README team and sponsors (ESLint Jenkins)</li>
</ul>
<h2>v8.0.1</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/f9217e527e1c49c6244400c4a58b6d1c14de51db"><code>f9217e5</code></a> Upgrade: <code>@​eslint/eslintrc</code><a href="https://github.com/1"><code>@​1</code></a>.0.3 for Jest workaround (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15164">#15164</a>) (Brandon Mills)</li>
<li><a href="https://github.com/eslint/eslint/commit/c584a63e2d6d9c0a66e5c5a5d43bc8148c054f5d"><code>c584a63</code></a> Chore: add ecmaVersion 13 to types.js (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15163">#15163</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/ff5fcd4d9bf43354a1b85d1f7ec1c4e1c0e5cbd9"><code>ff5fcd4</code></a> Docs: add 13 as allowed ecma version (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15159">#15159</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15162">#15162</a>) (唯然)</li>
</ul>
<h2>v8.0.0</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/7d3f7f01281671c4761f8da0d3ae9882a38eca8a"><code>7d3f7f0</code></a> Upgrade: unfrozen <code>@​eslint/eslintrc</code> (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15036">#15036</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15146">#15146</a>) (Brandon Mills)</li>
<li><a href="https://github.com/eslint/eslint/commit/2174a6f0e5d18b673604d31e3ca7b790cdc9429b"><code>2174a6f</code></a> Fix: require-atomic-updates property assignment message (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15076">#15076</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15109">#15109</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/f885fe06a0a79d91fc72a132fd31edf9ef0502cd"><code>f885fe0</code></a> Docs: add note and example for extending the range of fix (refs <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/13706">#13706</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/13748">#13748</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/3da1509106f508f0eb8ba48cdfc666225fda7edc"><code>3da1509</code></a> Docs: Add jsdoc <code>type</code> annotation to sample rule (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15085">#15085</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/68a49a9446c3286bb9ff24b90713c794b7e1f6f5"><code>68a49a9</code></a> Docs: Update Rollup Integrations (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15142">#15142</a>) (xiaohai)</li>
<li><a href="https://github.com/eslint/eslint/commit/d867f8100737bb82742debee2b5dc853c5f07c91"><code>d867f81</code></a> Docs: Remove a dot from curly link (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15128">#15128</a>) (Mauro Murru)</li>
<li><a href="https://github.com/eslint/eslint/commit/9f8b91922839b9d438df6cc1d542eea0509ef122"><code>9f8b919</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/4b08f299a172d3eef09e97e85d19a1612e83ac45"><code>4b08f29</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/ebc1ba1416834b7a52d1e16909ba05c731e97ed4"><code>ebc1ba1</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/2d654f115f6e05b59c85434e75cf68204b976f22"><code>2d654f1</code></a> Docs: add example .eslintrc.json (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15087">#15087</a>) (Nicolas Mattia)</li>
<li><a href="https://github.com/eslint/eslint/commit/16034f09ae6c7a78b8268b4c859928f18de7b9d6"><code>16034f0</code></a> Docs: fix fixable example (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15107">#15107</a>) (QiChang Li)</li>
<li><a href="https://github.com/eslint/eslint/commit/07175b8e9532d79e55c499aa27f79f023abda3c3"><code>07175b8</code></a> 8.0.0-rc.0 (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/71faa38adada4bd2f1ec0da7e45e6c7c84d1671d"><code>71faa38</code></a> Build: changelog update for 8.0.0-rc.0 (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/67c0074fa843fab629f464ff875007a8ee33cc7f"><code>67c0074</code></a> Update: Suggest missing rule in flat config (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14027">#14027</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15074">#15074</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/cf34e5cf5ed5d09eb53c16cca06821c4e34b7b70"><code>cf34e5c</code></a> Update: space-before-blocks ignore after switch colons (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15082">#15082</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15093">#15093</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/c9efb5f91937dcb6c8f3d7cb2f59940046d77901"><code>c9efb5f</code></a> Fix: preserve formatting when rules are removed from disable directives (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15081">#15081</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/14a4739ab2233acef995a6dde233de05d067a0f3"><code>14a4739</code></a> Update: <code>no-new-func</code> rule catching eval case of <code>MemberExpression</code> (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14860">#14860</a>) (Mojtaba Samimi)</li>
<li><a href="https://github.com/eslint/eslint/commit/7f2346b40ffd0d470092e52b995d7ab2648089db"><code>7f2346b</code></a> Docs: Update release blog post template (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15094">#15094</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/fabdf8a4e2f82b5fe2f903f015c3e60747a0b143"><code>fabdf8a</code></a> Chore: Remove <code>target.all</code> from <code>Makefile.js</code> (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15088">#15088</a>) (Hirotaka Tagawa / wafuwafu13)</li>
<li><a href="https://github.com/eslint/eslint/commit/e3cd1414489ceda460d593ac7e7b14f8ad45d4fc"><code>e3cd141</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/05d7140d46e2b5300d4dc9a60450eed956c95420"><code>05d7140</code></a> Chore: document target global in Makefile.js (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15084">#15084</a>) (Hirotaka Tagawa / wafuwafu13)</li>
<li><a href="https://github.com/eslint/eslint/commit/0a1a850575ca75db017051abe5e931f0f9c8012b"><code>0a1a850</code></a> Update: include <code>ruleId</code> in error logs (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15037">#15037</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15053">#15053</a>) (Ari Perkkiö)</li>
<li><a href="https://github.com/eslint/eslint/commit/47be8003d700bc0606495ae42610eaba94e639c5"><code>47be800</code></a> Chore: test Property &gt; .key with { a = 1 } pattern (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14799">#14799</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15072">#15072</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/a744dfa1f077afe406014f84135f8d26e9a12a94"><code>a744dfa</code></a> Docs: Update CLA info (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15058">#15058</a>) (Brian Warner)</li>
<li><a href="https://github.com/eslint/eslint/commit/9fb0f7040759ea23538997648f2d2d53e7c9db8a"><code>9fb0f70</code></a> Chore: fix bug report template (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15061">#15061</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/f87e199e988f42fc490890eee0642d86c48c85ff"><code>f87e199</code></a> Chore: Cleanup issue templates (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15039">#15039</a>) (Nicholas C. Zakas)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's changelog</a>.</em></p>
<blockquote>
<p>v8.1.0 - October 22, 2021</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/446b4b3583f90dba7e0ac347b57db013aecc101d"><code>446b4b3</code></a> Docs: Update commit message format docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15200">#15200</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/d9d84a060362efbaac727f18e3a790098bf0bc4b"><code>d9d84a0</code></a> Fix: keyword-spacing conflict with space-infix-ops on <code>&gt;</code> (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14712">#14712</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15172">#15172</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/a1f7ad77e2da00ac7d6daade547fe6bef4ef6003"><code>a1f7ad7</code></a> Fix: allow <code>baseConfig</code> to extend preloaded plugin config (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15079">#15079</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15187">#15187</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/3d370fb3596ccd3463c29f1a7a1e3f321dd8083a"><code>3d370fb</code></a> New: Add no-unused-private-class-members rule (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14859">#14859</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14895">#14895</a>) (Tim van der Lippe)</li>
<li><a href="https://github.com/eslint/eslint/commit/e926b1735c77bf55abc1150b060a535a6c4e2778"><code>e926b17</code></a> New: Add name to RuleTester (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15179">#15179</a>) (Gareth Jones)</li>
<li><a href="https://github.com/eslint/eslint/commit/90a5b6b4aeff7343783f85418c683f2c9901ab07"><code>90a5b6b</code></a> Chore: improve performance of <code>:function</code> selector (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15181">#15181</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/31af1c8770c7dac9e9686a0549af329abe5a795b"><code>31af1c8</code></a> Chore: fix counting of files in performance test (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15190">#15190</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/1b87fa835892d9da3b945db763196715d8088090"><code>1b87fa8</code></a> Build: add node v17 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15193">#15193</a>) (唯然)</li>
<li><a href="https://github.com/eslint/eslint/commit/0fb3bb2af3301c92ccd46ece739644a17df89bab"><code>0fb3bb2</code></a> Docs: remove <code>instanceof</code> from keyword-spacing docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15180">#15180</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/249a04070f88d2c895af3b78d60d2eff2730730e"><code>249a040</code></a> Upgrade: <code>eslint-plugin-eslint-plugin</code> to v4 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15169">#15169</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/35f3254d5f8027f75a6cb35b58bea10037003be8"><code>35f3254</code></a> Docs: Describe range in rule docs (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14162">#14162</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15174">#15174</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/b5049c89a00f1a0da59ecaee74b9b024ef3c3621"><code>b5049c8</code></a> Chore: Update stale bot settings (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15173">#15173</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/2b32f50460d6858367b25df20b7a717528891e0d"><code>2b32f50</code></a> Docs: Fix typo in README.md (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15168">#15168</a>) (Dmitriy Fishman)</li>
<li><a href="https://github.com/eslint/eslint/commit/dd58cd4afa6ced9016c091fc99a702c97a3e44f0"><code>dd58cd4</code></a> Chore: migrate master to main (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15062">#15062</a>) (Nitesh Seram)</li>
<li><a href="https://github.com/eslint/eslint/commit/ec0f8e0bb7d7ce502ca68fcd13ac323eb6307455"><code>ec0f8e0</code></a> Chore: Add stale issue/PR checker (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15151">#15151</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/2cfbd4bfd90b31cd728d6595bd1e36667715c84d"><code>2cfbd4b</code></a> Docs: Update README team and sponsors (ESLint Jenkins)</li>
</ul>
<p>v8.0.1 - October 13, 2021</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/f9217e527e1c49c6244400c4a58b6d1c14de51db"><code>f9217e5</code></a> Upgrade: <code>@​eslint/eslintrc</code><a href="https://github.com/1"><code>@​1</code></a>.0.3 for Jest workaround (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15164">#15164</a>) (Brandon Mills)</li>
<li><a href="https://github.com/eslint/eslint/commit/c584a63e2d6d9c0a66e5c5a5d43bc8148c054f5d"><code>c584a63</code></a> Chore: add ecmaVersion 13 to types.js (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15163">#15163</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/ff5fcd4d9bf43354a1b85d1f7ec1c4e1c0e5cbd9"><code>ff5fcd4</code></a> Docs: add 13 as allowed ecma version (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15159">#15159</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15162">#15162</a>) (唯然)</li>
</ul>
<p>v8.0.0 - October 9, 2021</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/7d3f7f01281671c4761f8da0d3ae9882a38eca8a"><code>7d3f7f0</code></a> Upgrade: unfrozen <code>@​eslint/eslintrc</code> (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15036">#15036</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15146">#15146</a>) (Brandon Mills)</li>
<li><a href="https://github.com/eslint/eslint/commit/2174a6f0e5d18b673604d31e3ca7b790cdc9429b"><code>2174a6f</code></a> Fix: require-atomic-updates property assignment message (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15076">#15076</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15109">#15109</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/f885fe06a0a79d91fc72a132fd31edf9ef0502cd"><code>f885fe0</code></a> Docs: add note and example for extending the range of fix (refs <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/13706">#13706</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/13748">#13748</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/3da1509106f508f0eb8ba48cdfc666225fda7edc"><code>3da1509</code></a> Docs: Add jsdoc <code>type</code> annotation to sample rule (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15085">#15085</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/68a49a9446c3286bb9ff24b90713c794b7e1f6f5"><code>68a49a9</code></a> Docs: Update Rollup Integrations (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15142">#15142</a>) (xiaohai)</li>
<li><a href="https://github.com/eslint/eslint/commit/d867f8100737bb82742debee2b5dc853c5f07c91"><code>d867f81</code></a> Docs: Remove a dot from curly link (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15128">#15128</a>) (Mauro Murru)</li>
<li><a href="https://github.com/eslint/eslint/commit/9f8b91922839b9d438df6cc1d542eea0509ef122"><code>9f8b919</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/4b08f299a172d3eef09e97e85d19a1612e83ac45"><code>4b08f29</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/ebc1ba1416834b7a52d1e16909ba05c731e97ed4"><code>ebc1ba1</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/2d654f115f6e05b59c85434e75cf68204b976f22"><code>2d654f1</code></a> Docs: add example .eslintrc.json (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15087">#15087</a>) (Nicolas Mattia)</li>
<li><a href="https://github.com/eslint/eslint/commit/16034f09ae6c7a78b8268b4c859928f18de7b9d6"><code>16034f0</code></a> Docs: fix fixable example (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15107">#15107</a>) (QiChang Li)</li>
<li><a href="https://github.com/eslint/eslint/commit/07175b8e9532d79e55c499aa27f79f023abda3c3"><code>07175b8</code></a> 8.0.0-rc.0 (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/71faa38adada4bd2f1ec0da7e45e6c7c84d1671d"><code>71faa38</code></a> Build: changelog update for 8.0.0-rc.0 (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/67c0074fa843fab629f464ff875007a8ee33cc7f"><code>67c0074</code></a> Update: Suggest missing rule in flat config (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14027">#14027</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15074">#15074</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/cf34e5cf5ed5d09eb53c16cca06821c4e34b7b70"><code>cf34e5c</code></a> Update: space-before-blocks ignore after switch colons (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15082">#15082</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15093">#15093</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/c9efb5f91937dcb6c8f3d7cb2f59940046d77901"><code>c9efb5f</code></a> Fix: preserve formatting when rules are removed from disable directives (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15081">#15081</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/14a4739ab2233acef995a6dde233de05d067a0f3"><code>14a4739</code></a> Update: <code>no-new-func</code> rule catching eval case of <code>MemberExpression</code> (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14860">#14860</a>) (Mojtaba Samimi)</li>
<li><a href="https://github.com/eslint/eslint/commit/7f2346b40ffd0d470092e52b995d7ab2648089db"><code>7f2346b</code></a> Docs: Update release blog post template (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15094">#15094</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/fabdf8a4e2f82b5fe2f903f015c3e60747a0b143"><code>fabdf8a</code></a> Chore: Remove <code>target.all</code> from <code>Makefile.js</code> (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15088">#15088</a>) (Hirotaka Tagawa / wafuwafu13)</li>
<li><a href="https://github.com/eslint/eslint/commit/e3cd1414489ceda460d593ac7e7b14f8ad45d4fc"><code>e3cd141</code></a> Sponsors: Sync README with website (ESLint Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/05d7140d46e2b5300d4dc9a60450eed956c95420"><code>05d7140</code></a> Chore: document target global in Makefile.js (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15084">#15084</a>) (Hirotaka Tagawa / wafuwafu13)</li>
<li><a href="https://github.com/eslint/eslint/commit/0a1a850575ca75db017051abe5e931f0f9c8012b"><code>0a1a850</code></a> Update: include <code>ruleId</code> in error logs (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15037">#15037</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15053">#15053</a>) (Ari Perkkiö)</li>
<li><a href="https://github.com/eslint/eslint/commit/47be8003d700bc0606495ae42610eaba94e639c5"><code>47be800</code></a> Chore: test Property &gt; .key with { a = 1 } pattern (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14799">#14799</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15072">#15072</a>) (Milos Djermanovic)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/2774043e6bc0b5709df02ac6bb61be6ac950f77d"><code>2774043</code></a> 8.1.0</li>
<li><a href="https://github.com/eslint/eslint/commit/14b5ad854f876a16f16d686056382341999ff8ef"><code>14b5ad8</code></a> Build: changelog update for 8.1.0</li>
<li><a href="https://github.com/eslint/eslint/commit/446b4b3583f90dba7e0ac347b57db013aecc101d"><code>446b4b3</code></a> Docs: Update commit message format docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15200">#15200</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/d9d84a060362efbaac727f18e3a790098bf0bc4b"><code>d9d84a0</code></a> Fix: keyword-spacing conflict with space-infix-ops on <code>&gt;</code> (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14712">#14712</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15">#15</a>...</li>
<li><a href="https://github.com/eslint/eslint/commit/a1f7ad77e2da00ac7d6daade547fe6bef4ef6003"><code>a1f7ad7</code></a> Fix: allow <code>baseConfig</code> to extend preloaded plugin config (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15079">#15079</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15">#15</a>...</li>
<li><a href="https://github.com/eslint/eslint/commit/3d370fb3596ccd3463c29f1a7a1e3f321dd8083a"><code>3d370fb</code></a> New: Add no-unused-private-class-members rule (fixes <a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14859">#14859</a>) (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/14895">#14895</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/e926b1735c77bf55abc1150b060a535a6c4e2778"><code>e926b17</code></a> New: Add name to RuleTester (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15179">#15179</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/90a5b6b4aeff7343783f85418c683f2c9901ab07"><code>90a5b6b</code></a> Chore: improve performance of <code>:function</code> selector (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15181">#15181</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/31af1c8770c7dac9e9686a0549af329abe5a795b"><code>31af1c8</code></a> Chore: fix counting of files in performance test (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15190">#15190</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/1b87fa835892d9da3b945db763196715d8088090"><code>1b87fa8</code></a> Build: add node v17 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/15193">#15193</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v7.32.0...v8.1.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=7.32.0&new-version=8.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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>

adalinesimonian: Blocked by stylelint/stylelint#152

Patch:
diff --git a/package-lock.json b/package-lock.json
index 4289ff1..ab5ab0a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -38,8 +38,8 @@
         "@vscode/test-electron": "^1.6.2",
         "cspell": "^5.12.3",
         "esbuild": "^0.13.12",
-        "eslint": "^7.5.0",
-        "eslint-config-stylelint": "^14.0.0",
+        "eslint": "^8.1.0",
+        "eslint-config-stylelint": "^15.0.0",
         "fast-glob": "^3.2.7",
         "fs-extra": "^10.0.0",
         "jest": "^27.3.1",
@@ -1999,14 +1999,14 @@
       }
     },
     "node_modules/@eslint/eslintrc": {
-      "version": "0.4.3",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
-      "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz",
+      "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==",
       "dev": true,
       "dependencies": {
         "ajv": "^6.12.4",
-        "debug": "^4.1.1",
-        "espree": "^7.3.0",
+        "debug": "^4.3.2",
+        "espree": "^9.0.0",
         "globals": "^13.9.0",
         "ignore": "^4.0.6",
         "import-fresh": "^3.2.1",
@@ -2015,7 +2015,16 @@
         "strip-json-comments": "^3.1.1"
       },
       "engines": {
-        "node": "^10.12.0 || >=12.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
+      "dependencies": {
+        "sprintf-js": "~1.0.2"
       }
     },
     "node_modules/@eslint/eslintrc/node_modules/globals": {
@@ -2033,6 +2042,19 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
     "node_modules/@eslint/eslintrc/node_modules/type-fest": {
       "version": "0.20.2",
       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
@@ -2046,9 +2068,9 @@
       }
     },
     "node_modules/@humanwhocodes/config-array": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
-      "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz",
+      "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==",
       "dev": true,
       "dependencies": {
         "@humanwhocodes/object-schema": "^1.2.0",
@@ -2081,6 +2103,15 @@
         "node": ">=8"
       }
     },
+    "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
+      "dependencies": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
     "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -2094,6 +2125,19 @@
         "node": ">=8"
       }
     },
+    "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
     "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -3049,20 +3093,20 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/experimental-utils": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
-      "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz",
+      "integrity": "sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w==",
       "dev": true,
       "dependencies": {
-        "@types/json-schema": "^7.0.7",
-        "@typescript-eslint/scope-manager": "4.33.0",
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/typescript-estree": "4.33.0",
+        "@types/json-schema": "^7.0.9",
+        "@typescript-eslint/scope-manager": "5.3.0",
+        "@typescript-eslint/types": "5.3.0",
+        "@typescript-eslint/typescript-estree": "5.3.0",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       },
       "engines": {
-        "node": "^10.12.0 || >=12.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -3072,35 +3116,17 @@
         "eslint": "*"
       }
     },
-    "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-      "dev": true,
-      "dependencies": {
-        "eslint-visitor-keys": "^2.0.0"
-      },
-      "engines": {
-        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/mysticatea"
-      },
-      "peerDependencies": {
-        "eslint": ">=5"
-      }
-    },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz",
-      "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz",
+      "integrity": "sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/visitor-keys": "4.33.0"
+        "@typescript-eslint/types": "5.3.0",
+        "@typescript-eslint/visitor-keys": "5.3.0"
       },
       "engines": {
-        "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -3108,12 +3134,12 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz",
-      "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.0.tgz",
+      "integrity": "sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg==",
       "dev": true,
       "engines": {
-        "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -3121,21 +3147,21 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz",
-      "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz",
+      "integrity": "sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/visitor-keys": "4.33.0",
-        "debug": "^4.3.1",
-        "globby": "^11.0.3",
-        "is-glob": "^4.0.1",
+        "@typescript-eslint/types": "5.3.0",
+        "@typescript-eslint/visitor-keys": "5.3.0",
+        "debug": "^4.3.2",
+        "globby": "^11.0.4",
+        "is-glob": "^4.0.3",
         "semver": "^7.3.5",
         "tsutils": "^3.21.0"
       },
       "engines": {
-        "node": "^10.12.0 || >=12.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -3148,22 +3174,31 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz",
-      "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz",
+      "integrity": "sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "4.33.0",
-        "eslint-visitor-keys": "^2.0.0"
+        "@typescript-eslint/types": "5.3.0",
+        "eslint-visitor-keys": "^3.0.0"
       },
       "engines": {
-        "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       }
     },
+    "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz",
+      "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
     "node_modules/@vscode/test-electron": {
       "version": "1.6.2",
       "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-1.6.2.tgz",
@@ -3186,9 +3221,9 @@
       "dev": true
     },
     "node_modules/acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+      "version": "8.5.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
+      "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
       "dev": true,
       "bin": {
         "acorn": "bin/acorn"
@@ -3207,6 +3242,18 @@
         "acorn-walk": "^7.1.1"
       }
     },
+    "node_modules/acorn-globals/node_modules/acorn": {
+      "version": "7.4.1",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
     "node_modules/acorn-jsx": {
       "version": "5.3.2",
       "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -3312,13 +3359,10 @@
       }
     },
     "node_modules/argparse": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-      "dev": true,
-      "dependencies": {
-        "sprintf-js": "~1.0.2"
-      }
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
     },
     "node_modules/array-timsort": {
       "version": "1.0.3",
@@ -4973,37 +5017,36 @@
       }
     },
     "node_modules/eslint": {
-      "version": "7.32.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
-      "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz",
+      "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==",
       "dev": true,
       "dependencies": {
-        "@babel/code-frame": "7.12.11",
-        "@eslint/eslintrc": "^0.4.3",
-        "@humanwhocodes/config-array": "^0.5.0",
+        "@eslint/eslintrc": "^1.0.3",
+        "@humanwhocodes/config-array": "^0.6.0",
         "ajv": "^6.10.0",
         "chalk": "^4.0.0",
         "cross-spawn": "^7.0.2",
-        "debug": "^4.0.1",
+        "debug": "^4.3.2",
         "doctrine": "^3.0.0",
         "enquirer": "^2.3.5",
         "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^5.1.1",
-        "eslint-utils": "^2.1.0",
-        "eslint-visitor-keys": "^2.0.0",
-        "espree": "^7.3.1",
+        "eslint-scope": "^6.0.0",
+        "eslint-utils": "^3.0.0",
+        "eslint-visitor-keys": "^3.0.0",
+        "espree": "^9.0.0",
         "esquery": "^1.4.0",
         "esutils": "^2.0.2",
         "fast-deep-equal": "^3.1.3",
         "file-entry-cache": "^6.0.1",
         "functional-red-black-tree": "^1.0.1",
-        "glob-parent": "^5.1.2",
+        "glob-parent": "^6.0.1",
         "globals": "^13.6.0",
         "ignore": "^4.0.6",
         "import-fresh": "^3.0.0",
         "imurmurhash": "^0.1.4",
         "is-glob": "^4.0.0",
-        "js-yaml": "^3.13.1",
+        "js-yaml": "^4.1.0",
         "json-stable-stringify-without-jsonify": "^1.0.1",
         "levn": "^0.4.1",
         "lodash.merge": "^4.6.2",
@@ -5011,11 +5054,10 @@
         "natural-compare": "^1.4.0",
         "optionator": "^0.9.1",
         "progress": "^2.0.0",
-        "regexpp": "^3.1.0",
+        "regexpp": "^3.2.0",
         "semver": "^7.2.1",
         "strip-ansi": "^6.0.0",
         "strip-json-comments": "^3.1.0",
-        "table": "^6.0.9",
         "text-table": "^0.2.0",
         "v8-compile-cache": "^2.0.3"
       },
@@ -5023,7 +5065,7 @@
         "eslint": "bin/eslint.js"
       },
       "engines": {
-        "node": "^10.12.0 || >=12.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "url": "https://opencollective.com/eslint"
@@ -5042,16 +5084,15 @@
       }
     },
     "node_modules/eslint-config-stylelint": {
-      "version": "14.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-stylelint/-/eslint-config-stylelint-14.0.0.tgz",
-      "integrity": "sha512-/HAEjiNNVOvSAs4J+z9G/Ybk8G8/nLy8hjzISHDZU27Cnx2BwAGFdqXnStucER8rkVnaaFyEM7p+GIC2Zzp6dA==",
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-stylelint/-/eslint-config-stylelint-15.0.0.tgz",
+      "integrity": "sha512-RQSkNgtCyAlf6yLVTbxHgHTCu3OPTx1LaihYKeLa3OPYUKytIb8f0H6I5+1DC6v2T8THUNDEVdQPYuZTGmBRkg==",
       "dev": true,
       "dependencies": {
         "eslint-config-prettier": "^8.3.0",
-        "eslint-plugin-eslint-comments": "^3.2.0",
-        "eslint-plugin-jest": "^24.4.0",
+        "eslint-plugin-jest": "^25.2.2",
         "eslint-plugin-node": "^11.1.0",
-        "eslint-plugin-regexp": "^1.1.0"
+        "eslint-plugin-regexp": "^1.5.0"
       }
     },
     "node_modules/eslint-plugin-es": {
@@ -5073,48 +5114,44 @@
         "eslint": ">=4.19.1"
       }
     },
-    "node_modules/eslint-plugin-eslint-comments": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz",
-      "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==",
+    "node_modules/eslint-plugin-es/node_modules/eslint-utils": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+      "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
       "dev": true,
       "dependencies": {
-        "escape-string-regexp": "^1.0.5",
-        "ignore": "^5.0.5"
+        "eslint-visitor-keys": "^1.1.0"
       },
       "engines": {
-        "node": ">=6.5.0"
+        "node": ">=6"
       },
       "funding": {
         "url": "https://github.com/sponsors/mysticatea"
-      },
-      "peerDependencies": {
-        "eslint": ">=4.19.1"
       }
     },
-    "node_modules/eslint-plugin-eslint-comments/node_modules/ignore": {
-      "version": "5.1.8",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
-      "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+    "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
       "dev": true,
       "engines": {
-        "node": ">= 4"
+        "node": ">=4"
       }
     },
     "node_modules/eslint-plugin-jest": {
-      "version": "24.7.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz",
-      "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==",
+      "version": "25.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.2.2.tgz",
+      "integrity": "sha512-frn5yhOF60U4kcqozO3zKTNZQUk+mfx037XOy2iiYL8FhorEkuCuL3/flzKcY1ECDP2WYT9ydmvlO3fRW9o4mg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/experimental-utils": "^4.0.1"
+        "@typescript-eslint/experimental-utils": "^5.0.0"
       },
       "engines": {
-        "node": ">=10"
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
       },
       "peerDependencies": {
-        "@typescript-eslint/eslint-plugin": ">= 4",
-        "eslint": ">=5"
+        "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0",
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
       },
       "peerDependenciesMeta": {
         "@typescript-eslint/eslint-plugin": {
@@ -5142,6 +5179,30 @@
         "eslint": ">=5.16.0"
       }
     },
+    "node_modules/eslint-plugin-node/node_modules/eslint-utils": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+      "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      }
+    },
+    "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
     "node_modules/eslint-plugin-node/node_modules/ignore": {
       "version": "5.1.8",
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
@@ -5182,24 +5243,6 @@
         "eslint": ">=6.0.0"
       }
     },
-    "node_modules/eslint-plugin-regexp/node_modules/eslint-utils": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-      "dev": true,
-      "dependencies": {
-        "eslint-visitor-keys": "^2.0.0"
-      },
-      "engines": {
-        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/mysticatea"
-      },
-      "peerDependencies": {
-        "eslint": ">=5"
-      }
-    },
     "node_modules/eslint-scope": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -5214,27 +5257,21 @@
       }
     },
     "node_modules/eslint-utils": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
-      "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
       "dev": true,
       "dependencies": {
-        "eslint-visitor-keys": "^1.1.0"
+        "eslint-visitor-keys": "^2.0.0"
       },
       "engines": {
-        "node": ">=6"
+        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
       },
       "funding": {
         "url": "https://github.com/sponsors/mysticatea"
-      }
-    },
-    "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
-      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
+      },
+      "peerDependencies": {
+        "eslint": ">=5"
       }
     },
     "node_modules/eslint-visitor-keys": {
@@ -5246,15 +5283,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/eslint/node_modules/@babel/code-frame": {
-      "version": "7.12.11",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
-      "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/highlight": "^7.10.4"
-      }
-    },
     "node_modules/eslint/node_modules/ansi-styles": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -5316,6 +5344,37 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/eslint/node_modules/eslint-scope": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz",
+      "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==",
+      "dev": true,
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/eslint/node_modules/eslint-visitor-keys": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz",
+      "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/eslint/node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
     "node_modules/eslint/node_modules/globals": {
       "version": "13.12.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
@@ -5365,26 +5424,26 @@
       }
     },
     "node_modules/espree": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
-      "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz",
+      "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==",
       "dev": true,
       "dependencies": {
-        "acorn": "^7.4.0",
+        "acorn": "^8.5.0",
         "acorn-jsx": "^5.3.1",
-        "eslint-visitor-keys": "^1.3.0"
+        "eslint-visitor-keys": "^3.0.0"
       },
       "engines": {
-        "node": "^10.12.0 || >=12.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       }
     },
     "node_modules/espree/node_modules/eslint-visitor-keys": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
-      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz",
+      "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==",
       "dev": true,
       "engines": {
-        "node": ">=4"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       }
     },
     "node_modules/esprima": {
@@ -5560,6 +5619,18 @@
         "node": ">=8"
       }
     },
+    "node_modules/fast-glob/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/fast-json-stable-stringify": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -5872,15 +5943,15 @@
       }
     },
     "node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
       "dev": true,
       "dependencies": {
-        "is-glob": "^4.0.1"
+        "is-glob": "^4.0.3"
       },
       "engines": {
-        "node": ">= 6"
+        "node": ">=10.13.0"
       }
     },
     "node_modules/global-dirs": {
@@ -8374,13 +8445,12 @@
       "dev": true
     },
     "node_modules/js-yaml": {
-      "version": "3.14.1",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
-      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
       "dev": true,
       "dependencies": {
-        "argparse": "^1.0.7",
-        "esprima": "^4.0.0"
+        "argparse": "^2.0.1"
       },
       "bin": {
         "js-yaml": "bin/js-yaml.js"
@@ -8444,18 +8514,6 @@
         }
       }
     },
-    "node_modules/jsdom/node_modules/acorn": {
-      "version": "8.5.0",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
-      "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
-      "dev": true,
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
     "node_modules/jsesc": {
       "version": "2.5.2",
       "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -13111,14 +13169,14 @@
       }
     },
     "@eslint/eslintrc": {
-      "version": "0.4.3",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
-      "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz",
+      "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==",
       "dev": true,
       "requires": {
         "ajv": "^6.12.4",
-        "debug": "^4.1.1",
-        "espree": "^7.3.0",
+        "debug": "^4.3.2",
+        "espree": "^9.0.0",
         "globals": "^13.9.0",
         "ignore": "^4.0.6",
         "import-fresh": "^3.2.1",
@@ -13127,6 +13185,15 @@
         "strip-json-comments": "^3.1.1"
       },
       "dependencies": {
+        "argparse": {
+          "version": "1.0.10",
+          "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+          "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+          "dev": true,
+          "requires": {
+            "sprintf-js": "~1.0.2"
+          }
+        },
         "globals": {
           "version": "13.12.0",
           "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
@@ -13136,6 +13203,16 @@
             "type-fest": "^0.20.2"
           }
         },
+        "js-yaml": {
+          "version": "3.14.1",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+          "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+          "dev": true,
+          "requires": {
+            "argparse": "^1.0.7",
+            "esprima": "^4.0.0"
+          }
+        },
         "type-fest": {
           "version": "0.20.2",
           "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
@@ -13145,9 +13222,9 @@
       }
     },
     "@humanwhocodes/config-array": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
-      "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz",
+      "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==",
       "dev": true,
       "requires": {
         "@humanwhocodes/object-schema": "^1.2.0",
@@ -13174,6 +13251,15 @@
         "resolve-from": "^5.0.0"
       },
       "dependencies": {
+        "argparse": {
+          "version": "1.0.10",
+          "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+          "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+          "dev": true,
+          "requires": {
+            "sprintf-js": "~1.0.2"
+          }
+        },
         "find-up": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -13184,6 +13270,16 @@
             "path-exists": "^4.0.0"
           }
         },
+        "js-yaml": {
+          "version": "3.14.1",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+          "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+          "dev": true,
+          "requires": {
+            "argparse": "^1.0.7",
+            "esprima": "^4.0.0"
+          }
+        },
         "locate-path": {
           "version": "5.0.0",
           "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -13959,69 +14055,66 @@
       "dev": true
     },
     "@typescript-eslint/experimental-utils": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
-      "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz",
+      "integrity": "sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w==",
       "dev": true,
       "requires": {
-        "@types/json-schema": "^7.0.7",
-        "@typescript-eslint/scope-manager": "4.33.0",
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/typescript-estree": "4.33.0",
+        "@types/json-schema": "^7.0.9",
+        "@typescript-eslint/scope-manager": "5.3.0",
+        "@typescript-eslint/types": "5.3.0",
+        "@typescript-eslint/typescript-estree": "5.3.0",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
-      },
-      "dependencies": {
-        "eslint-utils": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-          "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-          "dev": true,
-          "requires": {
-            "eslint-visitor-keys": "^2.0.0"
-          }
-        }
       }
     },
     "@typescript-eslint/scope-manager": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz",
-      "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz",
+      "integrity": "sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/visitor-keys": "4.33.0"
+        "@typescript-eslint/types": "5.3.0",
+        "@typescript-eslint/visitor-keys": "5.3.0"
       }
     },
     "@typescript-eslint/types": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz",
-      "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.0.tgz",
+      "integrity": "sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg==",
       "dev": true
     },
     "@typescript-eslint/typescript-estree": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz",
-      "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz",
+      "integrity": "sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/visitor-keys": "4.33.0",
-        "debug": "^4.3.1",
-        "globby": "^11.0.3",
-        "is-glob": "^4.0.1",
+        "@typescript-eslint/types": "5.3.0",
+        "@typescript-eslint/visitor-keys": "5.3.0",
+        "debug": "^4.3.2",
+        "globby": "^11.0.4",
+        "is-glob": "^4.0.3",
         "semver": "^7.3.5",
         "tsutils": "^3.21.0"
       }
     },
     "@typescript-eslint/visitor-keys": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz",
-      "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz",
+      "integrity": "sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "4.33.0",
-        "eslint-visitor-keys": "^2.0.0"
+        "@typescript-eslint/types": "5.3.0",
+        "eslint-visitor-keys": "^3.0.0"
+      },
+      "dependencies": {
+        "eslint-visitor-keys": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz",
+          "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==",
+          "dev": true
+        }
       }
     },
     "@vscode/test-electron": {
@@ -14043,9 +14136,9 @@
       "dev": true
     },
     "acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+      "version": "8.5.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
+      "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
       "dev": true
     },
     "acorn-globals": {
@@ -14056,6 +14149,14 @@
       "requires": {
         "acorn": "^7.1.1",
         "acorn-walk": "^7.1.1"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "7.4.1",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+          "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+          "dev": true
+        }
       }
     },
     "acorn-jsx": {
@@ -14133,13 +14234,10 @@
       }
     },
     "argparse": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-      "dev": true,
-      "requires": {
-        "sprintf-js": "~1.0.2"
-      }
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
     },
     "array-timsort": {
       "version": "1.0.3",
@@ -15367,37 +15465,36 @@
       }
     },
     "eslint": {
-      "version": "7.32.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
-      "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz",
+      "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==",
       "dev": true,
       "requires": {
-        "@babel/code-frame": "7.12.11",
-        "@eslint/eslintrc": "^0.4.3",
-        "@humanwhocodes/config-array": "^0.5.0",
+        "@eslint/eslintrc": "^1.0.3",
+        "@humanwhocodes/config-array": "^0.6.0",
         "ajv": "^6.10.0",
         "chalk": "^4.0.0",
         "cross-spawn": "^7.0.2",
-        "debug": "^4.0.1",
+        "debug": "^4.3.2",
         "doctrine": "^3.0.0",
         "enquirer": "^2.3.5",
         "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^5.1.1",
-        "eslint-utils": "^2.1.0",
-        "eslint-visitor-keys": "^2.0.0",
-        "espree": "^7.3.1",
+        "eslint-scope": "^6.0.0",
+        "eslint-utils": "^3.0.0",
+        "eslint-visitor-keys": "^3.0.0",
+        "espree": "^9.0.0",
         "esquery": "^1.4.0",
         "esutils": "^2.0.2",
         "fast-deep-equal": "^3.1.3",
         "file-entry-cache": "^6.0.1",
         "functional-red-black-tree": "^1.0.1",
-        "glob-parent": "^5.1.2",
+        "glob-parent": "^6.0.1",
         "globals": "^13.6.0",
         "ignore": "^4.0.6",
         "import-fresh": "^3.0.0",
         "imurmurhash": "^0.1.4",
         "is-glob": "^4.0.0",
-        "js-yaml": "^3.13.1",
+        "js-yaml": "^4.1.0",
         "json-stable-stringify-without-jsonify": "^1.0.1",
         "levn": "^0.4.1",
         "lodash.merge": "^4.6.2",
@@ -15405,24 +15502,14 @@
         "natural-compare": "^1.4.0",
         "optionator": "^0.9.1",
         "progress": "^2.0.0",
-        "regexpp": "^3.1.0",
+        "regexpp": "^3.2.0",
         "semver": "^7.2.1",
         "strip-ansi": "^6.0.0",
         "strip-json-comments": "^3.1.0",
-        "table": "^6.0.9",
         "text-table": "^0.2.0",
         "v8-compile-cache": "^2.0.3"
       },
       "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.12.11",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
-          "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.10.4"
-          }
-        },
         "ansi-styles": {
           "version": "4.3.0",
           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -15463,6 +15550,28 @@
           "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
           "dev": true
         },
+        "eslint-scope": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz",
+          "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==",
+          "dev": true,
+          "requires": {
+            "esrecurse": "^4.3.0",
+            "estraverse": "^5.2.0"
+          }
+        },
+        "eslint-visitor-keys": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz",
+          "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==",
+          "dev": true
+        },
+        "estraverse": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+          "dev": true
+        },
         "globals": {
           "version": "13.12.0",
           "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
@@ -15503,16 +15612,15 @@
       "requires": {}
     },
     "eslint-config-stylelint": {
-      "version": "14.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-stylelint/-/eslint-config-stylelint-14.0.0.tgz",
-      "integrity": "sha512-/HAEjiNNVOvSAs4J+z9G/Ybk8G8/nLy8hjzISHDZU27Cnx2BwAGFdqXnStucER8rkVnaaFyEM7p+GIC2Zzp6dA==",
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-stylelint/-/eslint-config-stylelint-15.0.0.tgz",
+      "integrity": "sha512-RQSkNgtCyAlf6yLVTbxHgHTCu3OPTx1LaihYKeLa3OPYUKytIb8f0H6I5+1DC6v2T8THUNDEVdQPYuZTGmBRkg==",
       "dev": true,
       "requires": {
         "eslint-config-prettier": "^8.3.0",
-        "eslint-plugin-eslint-comments": "^3.2.0",
-        "eslint-plugin-jest": "^24.4.0",
+        "eslint-plugin-jest": "^25.2.2",
         "eslint-plugin-node": "^11.1.0",
-        "eslint-plugin-regexp": "^1.1.0"
+        "eslint-plugin-regexp": "^1.5.0"
       }
     },
     "eslint-plugin-es": {
@@ -15523,33 +15631,32 @@
       "requires": {
         "eslint-utils": "^2.0.0",
         "regexpp": "^3.0.0"
-      }
-    },
-    "eslint-plugin-eslint-comments": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz",
-      "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5",
-        "ignore": "^5.0.5"
       },
       "dependencies": {
-        "ignore": {
-          "version": "5.1.8",
-          "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
-          "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+        "eslint-utils": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+          "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+          "dev": true,
+          "requires": {
+            "eslint-visitor-keys": "^1.1.0"
+          }
+        },
+        "eslint-visitor-keys": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+          "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
           "dev": true
         }
       }
     },
     "eslint-plugin-jest": {
-      "version": "24.7.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz",
-      "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==",
+      "version": "25.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.2.2.tgz",
+      "integrity": "sha512-frn5yhOF60U4kcqozO3zKTNZQUk+mfx037XOy2iiYL8FhorEkuCuL3/flzKcY1ECDP2WYT9ydmvlO3fRW9o4mg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/experimental-utils": "^4.0.1"
+        "@typescript-eslint/experimental-utils": "^5.0.0"
       }
     },
     "eslint-plugin-node": {
@@ -15566,6 +15673,21 @@
         "semver": "^6.1.0"
       },
       "dependencies": {
+        "eslint-utils": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+          "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+          "dev": true,
+          "requires": {
+            "eslint-visitor-keys": "^1.1.0"
+          }
+        },
+        "eslint-visitor-keys": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+          "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+          "dev": true
+        },
         "ignore": {
           "version": "5.1.8",
           "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
@@ -15594,17 +15716,6 @@
         "regexp-ast-analysis": "^0.3.0",
         "regexpp": "^3.2.0",
         "scslre": "^0.1.6"
-      },
-      "dependencies": {
-        "eslint-utils": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-          "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-          "dev": true,
-          "requires": {
-            "eslint-visitor-keys": "^2.0.0"
-          }
-        }
       }
     },
     "eslint-scope": {
@@ -15618,20 +15729,12 @@
       }
     },
     "eslint-utils": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
-      "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
       "dev": true,
       "requires": {
-        "eslint-visitor-keys": "^1.1.0"
-      },
-      "dependencies": {
-        "eslint-visitor-keys": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
-          "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
-          "dev": true
-        }
+        "eslint-visitor-keys": "^2.0.0"
       }
     },
     "eslint-visitor-keys": {
@@ -15641,20 +15744,20 @@
       "dev": true
     },
     "espree": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
-      "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz",
+      "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==",
       "dev": true,
       "requires": {
-        "acorn": "^7.4.0",
+        "acorn": "^8.5.0",
         "acorn-jsx": "^5.3.1",
-        "eslint-visitor-keys": "^1.3.0"
+        "eslint-visitor-keys": "^3.0.0"
       },
       "dependencies": {
         "eslint-visitor-keys": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
-          "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz",
+          "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==",
           "dev": true
         }
       }
@@ -15787,6 +15890,17 @@
         "glob-parent": "^5.1.2",
         "merge2": "^1.3.0",
         "micromatch": "^4.0.4"
+      },
+      "dependencies": {
+        "glob-parent": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+          "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+          "dev": true,
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        }
       }
     },
     "fast-json-stable-stringify": {
@@ -16027,12 +16141,12 @@
       }
     },
     "glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
       "dev": true,
       "requires": {
-        "is-glob": "^4.0.1"
+        "is-glob": "^4.0.3"
       }
     },
     "global-dirs": {
@@ -17882,13 +17996,12 @@
       "dev": true
     },
     "js-yaml": {
-      "version": "3.14.1",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
-      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
       "dev": true,
       "requires": {
-        "argparse": "^1.0.7",
-        "esprima": "^4.0.0"
+        "argparse": "^2.0.1"
       }
     },
     "jsdoctypeparser": {
@@ -17930,14 +18043,6 @@
         "whatwg-url": "^8.5.0",
         "ws": "^7.4.6",
         "xml-name-validator": "^3.0.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "8.5.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
-          "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
-          "dev": true
-        }
       }
     },
     "jsesc": {
diff --git a/package.json b/package.json
index 9f1ad21..22b0ac1 100644
--- a/package.json
+++ b/package.json
@@ -187,8 +187,8 @@
     "@vscode/test-electron": "^1.6.2",
     "cspell": "^5.12.3",
     "esbuild": "^0.13.12",
-    "eslint": "^7.5.0",
-    "eslint-config-stylelint": "^14.0.0",
+    "eslint": "^8.1.0",
+    "eslint-config-stylelint": "^15.0.0",
     "fast-glob": "^3.2.7",
     "fs-extra": "^10.0.0",
     "jest": "^27.3.1",
diff --git a/src/utils/iterables.js b/src/utils/iterables.js
new file mode 100644
index 0000000..3630bf6
--- /dev/null
+++ b/src/utils/iterables.js
@@ -0,0 +1,22 @@
+'use strict';
+
+/**
+ * Checks if the given value is iterable.
+ * @param {any} obj
+ */
+function isIterable(obj) {
+	return obj !== null && obj !== undefined && typeof obj[Symbol.iterator] === 'function';
+}
+
+/**
+ * Checks if the given value is an iterable object.
+ * @param {any} obj
+ */
+function isIterableObject(obj) {
+	return isIterable(obj) && typeof obj === 'object';
+}
+
+module.exports = {
+	isIterable,
+	isIterableObject,
+};
diff --git a/src/utils/lsp/display-error.js b/src/utils/lsp/display-error.js
index 2b8a4a1..1a5e66d 100644
--- a/src/utils/lsp/display-error.js
+++ b/src/utils/lsp/display-error.js
@@ -1,5 +1,7 @@
 'use strict';
 
+const { isIterableObject } = require('../iterables');
+
 /**
  * Takes an error and displays it in the UI using the given connection.
  * @param {lsp.Connection} connection The language server connection.
@@ -13,8 +15,8 @@ function displayError(connection, err) {
 		return;
 	}
 
-	if (/** @type {InvalidOptionError} */ (err)?.reasons) {
-		for (const reason of /** @type {InvalidOptionError} */ (err)?.reasons) {
+	if (isIterableObject(/** @type {InvalidOptionError} */ (err)?.reasons)) {
+		for (const reason of /** @type {InvalidOptionError} */ (err).reasons) {
 			connection.window.showErrorMessage(`Stylelint: ${reason}`);
 		}
 


Test patch:
diff --git a/src/utils/__tests__/iterables.js b/src/utils/__tests__/iterables.js
new file mode 100644
index 0000000..0cc3aba
--- /dev/null
+++ b/src/utils/__tests__/iterables.js
@@ -0,0 +1,105 @@
+'use strict';
+
+const { isIterable, isIterableObject } = require('../iterables');
+
+describe('isIterable', () => {
+	it('should return true for an array', () => {
+		expect(isIterable([])).toBe(true);
+	});
+
+	it('should return true for a Set', () => {
+		expect(isIterable(new Set())).toBe(true);
+	});
+
+	it('should return true for a Map', () => {
+		expect(isIterable(new Map())).toBe(true);
+	});
+
+	it('should return true for a generator', () => {
+		/** @returns {IterableIterator<number>} */
+		function* generator() {
+			yield 1;
+		}
+
+		expect(isIterable(generator())).toBe(true);
+	});
+
+	it('should return true for a string', () => {
+		expect(isIterable('')).toBe(true);
+	});
+
+	it('should return false for a number', () => {
+		expect(isIterable(0)).toBe(false);
+	});
+
+	it('should return false for a boolean', () => {
+		expect(isIterable(true)).toBe(false);
+	});
+
+	it('should return false for an object', () => {
+		expect(isIterable({})).toBe(false);
+	});
+
+	it('should return false for a function', () => {
+		expect(isIterable(() => {})).toBe(false);
+	});
+
+	it('should return false for null', () => {
+		expect(isIterable(null)).toBe(false);
+	});
+
+	it('should return false for undefined', () => {
+		expect(isIterable(undefined)).toBe(false);
+	});
+});
+
+describe('isIterableObject', () => {
+	it('should return true for an array', () => {
+		expect(isIterableObject([])).toBe(true);
+	});
+
+	it('should return true for a Set', () => {
+		expect(isIterableObject(new Set())).toBe(true);
+	});
+
+	it('should return true for a Map', () => {
+		expect(isIterableObject(new Map())).toBe(true);
+	});
+
+	it('should return true for a generator', () => {
+		/** @returns {IterableIterator<number>} */
+		function* generator() {
+			yield 1;
+		}
+
+		expect(isIterableObject(generator())).toBe(true);
+	});
+
+	it('should return false for a string', () => {
+		expect(isIterableObject('')).toBe(false);
+	});
+
+	it('should return false for a number', () => {
+		expect(isIterableObject(0)).toBe(false);
+	});
+
+	it('should return false for a boolean', () => {
+		expect(isIterableObject(true)).toBe(false);
+	});
+
+	it('should return false for an object', () => {
+		expect(isIterableObject({})).toBe(false);
+	});
+
+	it('should return false for a function', () => {
+		expect(isIterableObject(() => {})).toBe(false);
+	});
+
+	it('should return false for null', () => {
+		expect(isIterableObject(null)).toBe(false);
+	});
+
+	it('should return false for undefined', () => {
+		expect(isIterableObject(undefined)).toBe(false);
+	});
+});