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

Expose details of module resolution #555

Open
ggoodman opened this issue Nov 22, 2020 · 2 comments
Open

Expose details of module resolution #555

ggoodman opened this issue Nov 22, 2020 · 2 comments

Comments

@ggoodman
Copy link

Now that incremental mode landed, I'm interested in implementing a sort of hybrid of nodemon and esbuild. I've hacked together an MVP that works very well for my use case.

However, it occurs to me that to generalize the solution, it would be important to be able to introspect which files are relevant to a given build. While we already have all the info about source files, two groups of files would be helpful to also see:

  1. package.json files consulted in performing resolutions. Changes to these may invalidate parts of the build so an intelligent watcher would observe these for changes. Of course, a 100% bullet-proof solution would also need to observe certain directories where the absence of files with certain patterns like node_modules/<bare_module_target> or package.json might also invalidate resolutions that traversed up the filesystem.
  2. tsconfig.json files consulted in performing resolutions and in configuring build settings. Similarly to the former, a watching process would want to watch the correct set of these to re-trigger incremental builds.

General solution idea

I've built a (much less ambitious or complete) bundler called Velcro that was designed to run as a service and to run in various js environments. Part of the design of Velcro involved defining a minimal set of operations that can define a module resolution interface across different conceptual stores (memory, fs, cdn like unpkg or even a collection of monaco-editor Models). Since reads to these could be potentially expensive, the idea was to think about caching and invalidation from the beginning.

To address this, the Velcro Resolver tracks a collection of path / access types that would invalidate the outcome of any of the cached operations. For example, if the resolver checks for the existence of file.ts before finding file.js via the default extensions setting, the creation of file.ts would invalidate that resolution.

Consumers of the Resolver, such as the Bundler receive the invalidation records for each operation and can remember these. When an event occurs that may invalidate something, all of the invalidations are pre-calculated. We just need to loop through what we have already tracked and delete records as well as tell the Resolver to delete its own: like this.

Anyway, all this to say that it would be interesting to think of how consumers of esbuild might be able to obtain some visibility into these resolution details so that they can be intelligent about when they trigger rebuilds. In general a naive watch pattern will work well enough but as soon as we get into weird directory structures and inter-linking tsconfig.json files, having this metadata would be almost essential.

@evanw
Copy link
Owner

evanw commented Nov 25, 2020

This seems similar to these other comments of yours: #527 (comment) and #527 (comment).

I'm guessing the simplest way to solve for these and your other use cases would be to provide a way to hook into the file system abstraction itself. Luckily esbuild already has a file system abstraction internally, which is used for esbuild's default on-resolve behavior. That would come with a speed penalty of course, but you're already aware of that.

Hooking into the file system itself is a pretty advanced use case. I want to be thoughtful about how this is added or even if this should be added at all given that it's an advanced use case. For example, it's not clear to me if this use case is more of a "singleton" where it makes sense for there to just be one file system intercept or if there should be multiple ones for different purposes. Let's keep this issue open to track the possibility of replacing the file system.

For the record, the use cases you've brought up so far that are related to file system access are:

  • Emulating a file system in the browser
  • Learning about all of the files touched by esbuild for file watching

It's good that you're already aware of the subtlety that path resolution can be affected even if none of the input files from the previous build have changed. That case is easy to miss. There are other cases in addition to new node_modules directories popping up because of how complex path resolution is. For example, if your resolve extension order is .ts,.js and the previous build had a .js file, a newly-created .ts file could preempt the old .js file from the previous build. You can get even more complicated with arbitrary tsconfig.json path patterns such as "css!*.css" => "./styles/*.css" matching import paths with path components in the wildcard such as "css!../../dir/file.css". Cases like this are why esbuild's incremental build always re-runs all path resolution on every incremental build even if none of the source files have been changed.

@eulores
Copy link

eulores commented Nov 27, 2020

I am also interested in emulating a file system in the browser. Right now, only natural files can be virtualized via the onLoad function defined in plugins.

Suggestion: Offer internal files, such as tsconfig.json and package.json to the onLoad function of installed plugins under an exclusive namespace (internal? esbuild?). If the plugin is interested in handling these, then it can return JSON data, and maybe signal a new dedicated content type for this. If not processed by the plugin, then the normal file resolution of esbuild takes care as before.

Files touched by esbuild should ideally be added to metafile, that way they can be indexed by file watchers.

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

3 participants