[PR #49] [CLOSED] Bump esbuild from 0.17.5 to 0.17.10 #421

Closed
opened 2026-03-15 14:18:00 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/axllent/mailpit/pull/49
Author: @dependabot[bot]
Created: 2/24/2023
Status: Closed

Base: developHead: dependabot/npm_and_yarn/esbuild-0.17.10


📝 Commits (1)

  • cfb4316 Bump esbuild from 0.17.5 to 0.17.10

📊 Changes

2 files changed (+184 additions, -184 deletions)

View changed files

📝 package-lock.json (+183 -183)
📝 package.json (+1 -1)

📄 Description

Bumps esbuild from 0.17.5 to 0.17.10.

Release notes

Sourced from esbuild's releases.

v0.17.10

  • Update esbuild's handling of CSS nesting to match the latest specification changes (#1945)

    The syntax for the upcoming CSS nesting feature has recently changed. The @nest prefix that was previously required in some cases is now gone, and nested rules no longer have to start with & (as long as they don't start with an identifier or function token).

    This release updates esbuild's pass-through handling of CSS nesting syntax to match the latest specification changes. So you can now use esbuild to bundle CSS containing nested rules and try them out in a browser that supports CSS nesting (which includes nightly builds of both Chrome and Safari).

    However, I'm not implementing lowering of nested CSS to non-nested CSS for older browsers yet. While the syntax has been decided, the semantics are still in flux. In particular, there is still some debate about changing the fundamental way that CSS nesting works. For example, you might think that the following CSS is equivalent to a .outer .inner button { ... } rule:

    .inner button {
      .outer & {
        color: red;
      }
    }
    

    But instead it's actually equivalent to a .outer :is(.inner button) { ... } rule which unintuitively also matches the following DOM structure:

    <div class="inner">
      <div class="outer">
        <button></button>
      </div>
    </div>
    

    The :is() behavior is preferred by browser implementers because it's more memory-efficient, but the straightforward translation into a .outer .inner button { ... } rule is preferred by developers used to the existing CSS preprocessing ecosystem (e.g. SASS). It seems premature to commit esbuild to specific semantics for this syntax at this time given the ongoing debate.

  • Fix cross-file CSS rule deduplication involving url() tokens (#2936)

    Previously cross-file CSS rule deduplication didn't handle url() tokens correctly. These tokens contain references to import paths which may be internal (i.e. in the bundle) or external (i.e. not in the bundle). When comparing two url() tokens for equality, the underlying import paths should be compared instead of their references. This release of esbuild fixes url() token comparisons. One side effect is that @font-face rules should now be deduplicated correctly across files:

    /* Original code */
    @import "data:text/css, \
      @import 'http://example.com/style.css'; \
      @font-face { src: url(http://example.com/font.ttf) }";
    @import "data:text/css, \
      @font-face { src: url(http://example.com/font.ttf) }";
    

    /* Old output (with --bundle --minify) */ @​import"http://example.com/style.css&quot;;@​font-face{src:url(http://example.com/font.ttf)}@font-face{src:url(http://example.com/font.ttf)}

    /* New output (with --bundle --minify) */ @​import"http://example.com/style.css&quot;;@​font-face{src:url(http://example.com/font.ttf)}

v0.17.9

  • Parse rest bindings in TypeScript types (#2937)

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.17.10

  • Update esbuild's handling of CSS nesting to match the latest specification changes (#1945)

    The syntax for the upcoming CSS nesting feature has recently changed. The @nest prefix that was previously required in some cases is now gone, and nested rules no longer have to start with & (as long as they don't start with an identifier or function token).

    This release updates esbuild's pass-through handling of CSS nesting syntax to match the latest specification changes. So you can now use esbuild to bundle CSS containing nested rules and try them out in a browser that supports CSS nesting (which includes nightly builds of both Chrome and Safari).

    However, I'm not implementing lowering of nested CSS to non-nested CSS for older browsers yet. While the syntax has been decided, the semantics are still in flux. In particular, there is still some debate about changing the fundamental way that CSS nesting works. For example, you might think that the following CSS is equivalent to a .outer .inner button { ... } rule:

    .inner button {
      .outer & {
        color: red;
      }
    }
    

    But instead it's actually equivalent to a .outer :is(.inner button) { ... } rule which unintuitively also matches the following DOM structure:

    <div class="inner">
      <div class="outer">
        <button></button>
      </div>
    </div>
    

    The :is() behavior is preferred by browser implementers because it's more memory-efficient, but the straightforward translation into a .outer .inner button { ... } rule is preferred by developers used to the existing CSS preprocessing ecosystem (e.g. SASS). It seems premature to commit esbuild to specific semantics for this syntax at this time given the ongoing debate.

  • Fix cross-file CSS rule deduplication involving url() tokens (#2936)

    Previously cross-file CSS rule deduplication didn't handle url() tokens correctly. These tokens contain references to import paths which may be internal (i.e. in the bundle) or external (i.e. not in the bundle). When comparing two url() tokens for equality, the underlying import paths should be compared instead of their references. This release of esbuild fixes url() token comparisons. One side effect is that @font-face rules should now be deduplicated correctly across files:

    /* Original code */
    @import "data:text/css, \
      @import 'http://example.com/style.css'; \
      @font-face { src: url(http://example.com/font.ttf) }";
    @import "data:text/css, \
      @font-face { src: url(http://example.com/font.ttf) }";
    

    /* Old output (with --bundle --minify) */ @​import"http://example.com/style.css&quot;;@​font-face{src:url(http://example.com/font.ttf)}@font-face{src:url(http://example.com/font.ttf)}

    /* New output (with --bundle --minify) */ @​import"http://example.com/style.css&quot;;@​font-face{src:url(http://example.com/font.ttf)}

0.17.9

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/axllent/mailpit/pull/49 **Author:** [@dependabot[bot]](https://github.com/apps/dependabot) **Created:** 2/24/2023 **Status:** ❌ Closed **Base:** `develop` ← **Head:** `dependabot/npm_and_yarn/esbuild-0.17.10` --- ### 📝 Commits (1) - [`cfb4316`](https://github.com/axllent/mailpit/commit/cfb43160bf2f0607430552c66976d13fade26d81) Bump esbuild from 0.17.5 to 0.17.10 ### 📊 Changes **2 files changed** (+184 additions, -184 deletions) <details> <summary>View changed files</summary> 📝 `package-lock.json` (+183 -183) 📝 `package.json` (+1 -1) </details> ### 📄 Description Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.5 to 0.17.10. <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.10</h2> <ul> <li> <p>Update esbuild's handling of CSS nesting to match the latest specification changes (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/1945">#1945</a>)</p> <p>The syntax for the upcoming CSS nesting feature has <a href="https://webkit.org/blog/13813/try-css-nesting-today-in-safari-technology-preview/">recently changed</a>. The <code>@nest</code> prefix that was previously required in some cases is now gone, and nested rules no longer have to start with <code>&amp;</code> (as long as they don't start with an identifier or function token).</p> <p>This release updates esbuild's pass-through handling of CSS nesting syntax to match the latest specification changes. So you can now use esbuild to bundle CSS containing nested rules and try them out in a browser that supports CSS nesting (which includes nightly builds of both Chrome and Safari).</p> <p>However, I'm not implementing lowering of nested CSS to non-nested CSS for older browsers yet. While the syntax has been decided, the semantics are still in flux. In particular, there is still some debate about changing the fundamental way that CSS nesting works. For example, you might think that the following CSS is equivalent to a <code>.outer .inner button { ... }</code> rule:</p> <pre lang="css"><code>.inner button { .outer &amp; { color: red; } } </code></pre> <p>But instead it's actually equivalent to a <code>.outer :is(.inner button) { ... }</code> rule which unintuitively also matches the following DOM structure:</p> <pre lang="html"><code>&lt;div class=&quot;inner&quot;&gt; &lt;div class=&quot;outer&quot;&gt; &lt;button&gt;&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p>The <code>:is()</code> behavior is preferred by browser implementers because it's more memory-efficient, but the straightforward translation into a <code>.outer .inner button { ... }</code> rule is preferred by developers used to the existing CSS preprocessing ecosystem (e.g. SASS). It seems premature to commit esbuild to specific semantics for this syntax at this time given the ongoing debate.</p> </li> <li> <p>Fix cross-file CSS rule deduplication involving <code>url()</code> tokens (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2936">#2936</a>)</p> <p>Previously cross-file CSS rule deduplication didn't handle <code>url()</code> tokens correctly. These tokens contain references to import paths which may be internal (i.e. in the bundle) or external (i.e. not in the bundle). When comparing two <code>url()</code> tokens for equality, the underlying import paths should be compared instead of their references. This release of esbuild fixes <code>url()</code> token comparisons. One side effect is that <code>@font-face</code> rules should now be deduplicated correctly across files:</p> <pre lang="css"><code>/* Original code */ @import &quot;data:text/css, \ @import 'http://example.com/style.css'; \ @font-face { src: url(http://example.com/font.ttf) }&quot;; @import &quot;data:text/css, \ @font-face { src: url(http://example.com/font.ttf) }&quot;; <p>/* Old output (with --bundle --minify) */ <a href="https://github.com/import"><code>@​import</code></a>&quot;<a href="http://example.com/style.css&amp;quot;;@font-face%7Bsrc:url(http://example.com/font.ttf)%7D@font-face%7Bsrc:url(http://example.com/font.ttf)%7D"><code>http://example.com/style.css&amp;quot;;@​font-face{src:url(http://example.com/font.ttf)}@font-face{src:url(http://example.com/font.ttf)}</code></a></p> <p>/* New output (with --bundle --minify) */ <a href="https://github.com/import"><code>@​import</code></a>&quot;<a href="http://example.com/style.css&amp;quot;;@font-face%7Bsrc:url(http://example.com/font.ttf)%7D"><code>http://example.com/style.css&amp;quot;;@​font-face{src:url(http://example.com/font.ttf)}</code></a> </code></pre></p> </li> </ul> <h2>v0.17.9</h2> <ul> <li>Parse rest bindings in TypeScript types (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2937">#2937</a>)</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.10</h2> <ul> <li> <p>Update esbuild's handling of CSS nesting to match the latest specification changes (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/1945">#1945</a>)</p> <p>The syntax for the upcoming CSS nesting feature has <a href="https://webkit.org/blog/13813/try-css-nesting-today-in-safari-technology-preview/">recently changed</a>. The <code>@nest</code> prefix that was previously required in some cases is now gone, and nested rules no longer have to start with <code>&amp;</code> (as long as they don't start with an identifier or function token).</p> <p>This release updates esbuild's pass-through handling of CSS nesting syntax to match the latest specification changes. So you can now use esbuild to bundle CSS containing nested rules and try them out in a browser that supports CSS nesting (which includes nightly builds of both Chrome and Safari).</p> <p>However, I'm not implementing lowering of nested CSS to non-nested CSS for older browsers yet. While the syntax has been decided, the semantics are still in flux. In particular, there is still some debate about changing the fundamental way that CSS nesting works. For example, you might think that the following CSS is equivalent to a <code>.outer .inner button { ... }</code> rule:</p> <pre lang="css"><code>.inner button { .outer &amp; { color: red; } } </code></pre> <p>But instead it's actually equivalent to a <code>.outer :is(.inner button) { ... }</code> rule which unintuitively also matches the following DOM structure:</p> <pre lang="html"><code>&lt;div class=&quot;inner&quot;&gt; &lt;div class=&quot;outer&quot;&gt; &lt;button&gt;&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p>The <code>:is()</code> behavior is preferred by browser implementers because it's more memory-efficient, but the straightforward translation into a <code>.outer .inner button { ... }</code> rule is preferred by developers used to the existing CSS preprocessing ecosystem (e.g. SASS). It seems premature to commit esbuild to specific semantics for this syntax at this time given the ongoing debate.</p> </li> <li> <p>Fix cross-file CSS rule deduplication involving <code>url()</code> tokens (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2936">#2936</a>)</p> <p>Previously cross-file CSS rule deduplication didn't handle <code>url()</code> tokens correctly. These tokens contain references to import paths which may be internal (i.e. in the bundle) or external (i.e. not in the bundle). When comparing two <code>url()</code> tokens for equality, the underlying import paths should be compared instead of their references. This release of esbuild fixes <code>url()</code> token comparisons. One side effect is that <code>@font-face</code> rules should now be deduplicated correctly across files:</p> <pre lang="css"><code>/* Original code */ @import &quot;data:text/css, \ @import 'http://example.com/style.css'; \ @font-face { src: url(http://example.com/font.ttf) }&quot;; @import &quot;data:text/css, \ @font-face { src: url(http://example.com/font.ttf) }&quot;; <p>/* Old output (with --bundle --minify) */ <a href="https://github.com/import"><code>@​import</code></a>&quot;<a href="http://example.com/style.css&amp;quot;;@font-face%7Bsrc:url(http://example.com/font.ttf)%7D@font-face%7Bsrc:url(http://example.com/font.ttf)%7D"><code>http://example.com/style.css&amp;quot;;@​font-face{src:url(http://example.com/font.ttf)}@font-face{src:url(http://example.com/font.ttf)}</code></a></p> <p>/* New output (with --bundle --minify) */ <a href="https://github.com/import"><code>@​import</code></a>&quot;<a href="http://example.com/style.css&amp;quot;;@font-face%7Bsrc:url(http://example.com/font.ttf)%7D"><code>http://example.com/style.css&amp;quot;;@​font-face{src:url(http://example.com/font.ttf)}</code></a> </code></pre></p> </li> </ul> <h2>0.17.9</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/evanw/esbuild/commit/996d400a7ab25b67b80122e2d4a8515575918e79"><code>996d400</code></a> publish 0.17.10 to npm</li> <li><a href="https://github.com/evanw/esbuild/commit/16e09883f42f14bdd991f5a6f763ce9f9521c91c"><code>16e0988</code></a> update css nesting stuff to match the latest spec</li> <li><a href="https://github.com/evanw/esbuild/commit/47e54feebaef998b705589f02e29d49ec1a47dcc"><code>47e54fe</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2936">#2936</a>: compare <code>url()</code> tokens by import record</li> <li><a href="https://github.com/evanw/esbuild/commit/3765e880ed0a55b8e62bfa17b7e004e656eaf914"><code>3765e88</code></a> publish 0.17.9 to npm</li> <li><a href="https://github.com/evanw/esbuild/commit/42d3b2fdfa1ea0afbea2932fb853e6aa31944279"><code>42d3b2f</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2937">#2937</a>: parse rest bindings in TypeScript types</li> <li><a href="https://github.com/evanw/esbuild/commit/d8b028fc62bb6a4115a841b9ba9d0c747a0d54d1"><code>d8b028f</code></a> adjust test output for <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2914">#2914</a></li> <li><a href="https://github.com/evanw/esbuild/commit/631a5639f68624d2fefd6c9c1ac128320f0b6f90"><code>631a563</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2909">#2909</a>: preserve comments for omitted AST nodes</li> <li><a href="https://github.com/evanw/esbuild/commit/429d0735d1d10acdb7d3cde8fdc99caaf8080256"><code>429d073</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2914">#2914</a>: do not emit computed <code>declare</code> fields</li> <li><a href="https://github.com/evanw/esbuild/commit/29d5a9b1d7c52ee93071cbe1c29906680ee70f90"><code>29d5a9b</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2913">#2913</a>: crash in ProbeResolvePackageAsRelative</li> <li><a href="https://github.com/evanw/esbuild/commit/5e0b1cd2ce6297cf31b132e413134ffe2576c668"><code>5e0b1cd</code></a> publish 0.17.8 to npm</li> <li>Additional commits viewable in <a href="https://github.com/evanw/esbuild/compare/v0.17.5...v0.17.10">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.5&new-version=0.17.10)](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> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-15 14:18:00 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mailpit#421
No description provided.