Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spread operator is not transpiled down #333

Closed
flunderpero opened this issue Aug 15, 2020 · 3 comments
Closed

Spread operator is not transpiled down #333

flunderpero opened this issue Aug 15, 2020 · 3 comments

Comments

@flunderpero
Copy link

First off, great work you are doing with esbuild!

We still have to support Edge 18 and we are running into a problem with our ServiceWorker - we cannot register it. This is similar to this SO thread. We used webpack before and hat to lower the target to ES2017.

I tried everything, but esbuild does not replace (all) spread operators in our build. I tried ES2015, edge18 and almost everything in between. :-) The generated code still contains lots of spread operators.

This is my build-config:

    esbuild.buildSync({
        entryPoints: ["ervice_worker.ts"],
        format: "iife",
        tsconfig: "tsconfig.json",
        define: {
            window: "self",
            global: "self",
            // some more project-specific stuff ...
        },
        outdir: "dist",
        sourcemap: "external",
        minifyIdentifiers: false,
        minifySyntax: true,
        minifyWhitespace: true,
        bundle: true,
        external: ["http", "https", "crypto", "stream"],  // we use shared code with NodeJS and remove the imports later on
        target: "es2015",
    })

The resulting code contains array spreads ([...a]), function call spreads (function a(...args)) but afaics no object spreads ({...o}).
Please note: Edge 18 does indeed support array and function call spreads, but service workers on Edge 18 do not.

@bathos
Copy link

bathos commented Aug 16, 2020

The resulting code contains array spreads ([...a]), function call spreads (function a(...args)) but afaics no object spreads ({...o}).

Iterable spread/rest was introduced in ES2015 and object spread/rest was introduced in ES2018. If the target is ES2015, that result sounds correct. ES5 was the last version of JS that didn't have any spread/rest.

@flunderpero
Copy link
Author

Thanks for your reply. I didn't want to say that this is a bug per se. I will dig a bit deeper to find out what webpack with ts-loader and target 2017 does differently. The regular webapp-code is working fine, just the SW does not. We fought the same bug with webpack before.
(Edge <= and (especially) Safari are becoming the new IE5.5 :-) )

@flunderpero
Copy link
Author

Ok, I found the problem. This time it had nothing to do with spread operators, but with a missing global reference. We have some code that is shared between Node and the web that uses Buffer. Webpack automagically adds a polyfill for that (https://webpack.js.org/configuration/node/). I was aware of the fact, that esbuild does not do this and added the polyfill myself by importing it. This worked fine for the SPA build and for the SW build in all browsers but Edge 18. I think the import of the polyfill came after the global Buffer had already been referenced which lead to an error that Edge 18 completely eats up. That's why I jumped to the conclusion that we had the same problem with (object literal) spread operators as we previously had with Webpack. I am sorry for that.

I now added an import {Buffer} from "buffer" to every module that uses Buffer and it works.

Have you already thought about an option to add arbitrary JS to the top of a bundle? This would have been where I had put the import of the polyfill:

import {Buffer} from "buffer"
self.Buffer = Buffer  // ... the package "buffer" does not add a global reference to Buffer

I close this issue.

mergify bot added a commit to pepperize/cdk-organizations that referenced this issue Mar 27, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to 0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a> publish 0.17.14 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>: add support for <code>const</code> in object types</li>
<li><a href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>: initial lowering code for css nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a> cannot inline no-op nesting with pseudo-elements</li>
<li><a href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a> minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a> css combinator can be a single byte</li>
<li><a href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a> minify: removes duplicates from CSS selector lists</li>
<li><a href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a> Chrome 112+ can now use CSS nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a> <a href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>: switch to <code>node-compat-table</code> for node data</li>
<li><a href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a> run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a href="https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.12&new-version=0.17.14)](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>
mergify bot added a commit to pepperize/cdk-apigateway-swagger-ui that referenced this issue Mar 27, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to 0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a> publish 0.17.14 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>: add support for <code>const</code> in object types</li>
<li><a href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>: initial lowering code for css nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a> cannot inline no-op nesting with pseudo-elements</li>
<li><a href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a> minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a> css combinator can be a single byte</li>
<li><a href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a> minify: removes duplicates from CSS selector lists</li>
<li><a href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a> Chrome 112+ can now use CSS nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a> <a href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>: switch to <code>node-compat-table</code> for node data</li>
<li><a href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a> run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a href="https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.12&new-version=0.17.14)](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>
mergify bot pushed a commit to brajkowski/branch-commit-msg that referenced this issue Mar 27, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to 0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a> publish 0.17.14 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>: add support for <code>const</code> in object types</li>
<li><a href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>: initial lowering code for css nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a> cannot inline no-op nesting with pseudo-elements</li>
<li><a href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a> minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a> css combinator can be a single byte</li>
<li><a href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a> minify: removes duplicates from CSS selector lists</li>
<li><a href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a> Chrome 112+ can now use CSS nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a> <a href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>: switch to <code>node-compat-table</code> for node data</li>
<li><a href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a> run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a href="https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.12&new-version=0.17.14)](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>
kodiakhq bot pushed a commit to RafaelWerner/hotrails-turbo-quotes that referenced this issue Mar 27, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to 0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a> publish 0.17.14 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>: add support for <code>const</code> in object types</li>
<li><a href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>: initial lowering code for css nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a> cannot inline no-op nesting with pseudo-elements</li>
<li><a href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a> minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a> css combinator can be a single byte</li>
<li><a href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a> minify: removes duplicates from CSS selector lists</li>
<li><a href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a> Chrome 112+ can now use CSS nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a> <a href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>: switch to <code>node-compat-table</code> for node data</li>
<li><a href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a> run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a href="https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.12&new-version=0.17.14)](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>
paularmstrong added a commit to paularmstrong/onerepo that referenced this issue Mar 27, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to
0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a>
publish 0.17.14 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>:
add support for <code>const</code> in object types</li>
<li><a
href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>:
initial lowering code for css nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a>
cannot inline no-op nesting with pseudo-elements</li>
<li><a
href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a>
minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a
href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a>
css combinator can be a single byte</li>
<li><a
href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a>
minify: removes duplicates from CSS selector lists</li>
<li><a
href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a>
Chrome 112+ can now use CSS nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a>
<a
href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>:
switch to <code>node-compat-table</code> for node data</li>
<li><a
href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a>
run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.12&new-version=0.17.14)](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>
mergify bot added a commit to pepperize/cdk-ses-smtp-credentials that referenced this issue Mar 27, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.13 to 0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a> publish 0.17.14 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>: add support for <code>const</code> in object types</li>
<li><a href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>: initial lowering code for css nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a> cannot inline no-op nesting with pseudo-elements</li>
<li><a href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a> minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a> css combinator can be a single byte</li>
<li><a href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a> minify: removes duplicates from CSS selector lists</li>
<li><a href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a> Chrome 112+ can now use CSS nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a> <a href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>: switch to <code>node-compat-table</code> for node data</li>
<li><a href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a> run <code>make compat-table</code> again</li>
<li>See full diff in <a href="https://github.com/evanw/esbuild/compare/v0.17.13...v0.17.14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.13&new-version=0.17.14)](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>
mergify bot added a commit to pepperize/cdk-github that referenced this issue Mar 29, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to 0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type declarations (<a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to esbuild in version 0.17.5, and works with classes, functions, and arrow expressions. However, support for it wasn't added to object type declarations (e.g. interfaces) due to an oversight. This release adds support for these cases, so the following TypeScript 5.0 code can now be built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a href="https://developer.chrome.com/articles/css-nesting/">implemented the new CSS nesting specification</a> in version 112, which is currently in beta but will become stable very soon. So CSS nesting is now a part of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into non-nested CSS syntax for older browsers. The transformation relies on the <code>:is()</code> pseudo-class in many cases, so the transformation is only guaranteed to work when targeting browsers that support <code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a href="https://esbuild.github.io/api/#target"><code>target</code></a> to the browsers you intend to support to tell esbuild to do this transformation. You will get a warning if you use CSS nesting syntax with a <code>target</code> which includes older browsers that don't support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
  &amp;:hover { color: [#444](evanw/esbuild#444) }
  &amp;:active { color: [#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code> pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a> publish 0.17.14 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>: add support for <code>const</code> in object types</li>
<li><a href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a> fix <a href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>: initial lowering code for css nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a> cannot inline no-op nesting with pseudo-elements</li>
<li><a href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a> minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a> css combinator can be a single byte</li>
<li><a href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a> minify: removes duplicates from CSS selector lists</li>
<li><a href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a> Chrome 112+ can now use CSS nesting</li>
<li><a href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a> <a href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>: switch to <code>node-compat-table</code> for node data</li>
<li><a href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a> run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a href="https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.12&new-version=0.17.14)](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>
lars-reimann pushed a commit to Safe-DS/DSL that referenced this issue Apr 1, 2023
…sreimann.safeds.vscode (#442)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.11 to
0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a>
publish 0.17.14 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>:
add support for <code>const</code> in object types</li>
<li><a
href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>:
initial lowering code for css nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a>
cannot inline no-op nesting with pseudo-elements</li>
<li><a
href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a>
minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a
href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a>
css combinator can be a single byte</li>
<li><a
href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a>
minify: removes duplicates from CSS selector lists</li>
<li><a
href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a>
Chrome 112+ can now use CSS nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a>
<a
href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>:
switch to <code>node-compat-table</code> for node data</li>
<li><a
href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a>
run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.17.11...v0.17.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.11&new-version=0.17.14)](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>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
smaye81 pushed a commit to bufbuild/protobuf-conformance that referenced this issue Apr 3, 2023
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.10 to
0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a>
publish 0.17.14 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>:
add support for <code>const</code> in object types</li>
<li><a
href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>:
initial lowering code for css nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a>
cannot inline no-op nesting with pseudo-elements</li>
<li><a
href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a>
minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a
href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a>
css combinator can be a single byte</li>
<li><a
href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a>
minify: removes duplicates from CSS selector lists</li>
<li><a
href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a>
Chrome 112+ can now use CSS nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a>
<a
href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>:
switch to <code>node-compat-table</code> for node data</li>
<li><a
href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a>
run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.17.10...v0.17.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.10&new-version=0.17.14)](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>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
derTobsch added a commit to urlaubsverwaltung/zeiterfassung that referenced this issue Apr 4, 2023
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.11 to
0.17.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/releases">esbuild's
releases</a>.</em></p>
<blockquote>
<h2>v0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
:is(div, p) :is(.warning, .error) {
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/evanw/esbuild/blob/main/CHANGELOG.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h2>0.17.14</h2>
<ul>
<li>
<p>Allow the TypeScript 5.0 <code>const</code> modifier in object type
declarations (<a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>)</p>
<p>The new TypeScript 5.0 <code>const</code> modifier was added to
esbuild in version 0.17.5, and works with classes, functions, and arrow
expressions. However, support for it wasn't added to object type
declarations (e.g. interfaces) due to an oversight. This release adds
support for these cases, so the following TypeScript 5.0 code can now be
built with esbuild:</p>
<pre lang="ts"><code>interface Foo { &lt;const T&gt;(): T }
type Bar = { new &lt;const T&gt;(): T }
</code></pre>
</li>
<li>
<p>Implement preliminary lowering for CSS nesting (<a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>)</p>
<p>Chrome has <a
href="https://developer.chrome.com/articles/css-nesting/">implemented
the new CSS nesting specification</a> in version 112, which is currently
in beta but will become stable very soon. So CSS nesting is now a part
of the web platform!</p>
<p>This release of esbuild can now transform nested CSS syntax into
non-nested CSS syntax for older browsers. The transformation relies on
the <code>:is()</code> pseudo-class in many cases, so the transformation
is only guaranteed to work when targeting browsers that support
<code>:is()</code> (e.g. Chrome 88+). You'll need to set esbuild's <a
href="https://esbuild.github.io/api/#target"><code>target</code></a> to
the browsers you intend to support to tell esbuild to do this
transformation. You will get a warning if you use CSS nesting syntax
with a <code>target</code> which includes older browsers that don't
support <code>:is()</code>.</p>
<p>The lowering transformation looks like this:</p>
<pre lang="css"><code>/* Original input */
a.btn {
  color: [#333](evanw/esbuild#333);
&amp;:hover { color: [#444](evanw/esbuild#444)
}
&amp;:active { color:
[#555](evanw/esbuild#555) }
}
<p>/* New output (with --target=chrome88) */
a.btn {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/333">#333</a>;
}
a.btn:hover {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/444">#444</a>;
}
a.btn:active {
color: <a
href="https://redirect.github.com/evanw/esbuild/issues/555">#555</a>;
}
</code></pre></p>
<p>More complex cases may generate the <code>:is()</code>
pseudo-class:</p>
<pre lang="css"><code>/* Original input */
div, p {
  .warning, .error {
    padding: 20px;
  }
}
<p>/* New output (with --target=chrome88) */
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/b2b897870564a6b8e8bc802a140c55bf602de31b"><code>b2b8978</code></a>
publish 0.17.14 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/079eca4992344201185864c9282221c917c9a3d5"><code>079eca4</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3021">#3021</a>:
add support for <code>const</code> in object types</li>
<li><a
href="https://github.com/evanw/esbuild/commit/72c837935d74ab1f421c0d96e9d1ce1052438737"><code>72c8379</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/1945">#1945</a>:
initial lowering code for css nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/96e09b40f73b29aaf4f419d45f603ee1353be800"><code>96e09b4</code></a>
cannot inline no-op nesting with pseudo-elements</li>
<li><a
href="https://github.com/evanw/esbuild/commit/cd62fa131daecaf8eb4b4bb032331158b2b2d8db"><code>cd62fa1</code></a>
minify: remove unnecessary <code>&amp;</code> selectors</li>
<li><a
href="https://github.com/evanw/esbuild/commit/0546cf7a8cb1d89409e4634bdb3b5d6c65e0a6c5"><code>0546cf7</code></a>
css combinator can be a single byte</li>
<li><a
href="https://github.com/evanw/esbuild/commit/39c39620829dad7f871e32090d4273ed4fdc0ae2"><code>39c3962</code></a>
minify: removes duplicates from CSS selector lists</li>
<li><a
href="https://github.com/evanw/esbuild/commit/8362c373289da762f5636691fc070f630678607c"><code>8362c37</code></a>
Chrome 112+ can now use CSS nesting</li>
<li><a
href="https://github.com/evanw/esbuild/commit/366b632dec741af6f199ef2931b2f0936a9ff822"><code>366b632</code></a>
<a
href="https://redirect.github.com/evanw/esbuild/issues/2940">#2940</a>:
switch to <code>node-compat-table</code> for node data</li>
<li><a
href="https://github.com/evanw/esbuild/commit/daf372df0bea9109b89ddf3bf1703eb5daef4d52"><code>daf372d</code></a>
run <code>make compat-table</code> again</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.17.11...v0.17.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=esbuild&package-manager=npm_and_yarn&previous-version=0.17.11&new-version=0.17.14)](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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants