Skip to content

Commit

Permalink
chore(deps-dev): Bump esbuild from 0.15.14 to 0.15.15 (#67)
Browse files Browse the repository at this point in the history
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.14 to 0.15.15.
<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.15.15</h2>
<ul>
<li>
<p>Remove duplicate CSS rules across files (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2688">#2688</a>)</p>
<p>When two or more CSS rules are exactly the same (even if they are not adjacent), all but the last one can safely be removed:</p>
<pre lang="css"><code>/* Before */
a { color: red; }
span { font-weight: bold; }
a { color: red; }
<p>/* After */
span { font-weight: bold; }
a { color: red; }
</code></pre></p>
<p>Previously esbuild only did this transformation within a single source file. But with this release, esbuild will now do this transformation across source files, which may lead to smaller CSS output if the same rules are repeated across multiple CSS source files in the same bundle. This transformation is only enabled when minifying (specifically when syntax minification is enabled).</p>
</li>
<li>
<p>Add <code>deno</code> as a valid value for <code>target</code> (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2686">#2686</a>)</p>
<p>The <code>target</code> setting in esbuild allows you to enable or disable JavaScript syntax features for a given version of a set of target JavaScript VMs. Previously <a href="https://deno.land/">Deno</a> was not one of the JavaScript VMs that esbuild supported with <code>target</code>, but it will now be supported starting from this release. For example, versions of Deno older than v1.2 don't support the new <code>||=</code> operator, so adding e.g. <code>--target=deno1.0</code> to esbuild now lets you tell esbuild to transpile <code>||=</code> to older JavaScript.</p>
</li>
<li>
<p>Fix the <code>esbuild-wasm</code> package in Node v19 (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2683">#2683</a>)</p>
<p>A recent change to Node v19 added a non-writable <code>crypto</code> property to the global object: <a href="https://github-redirect.dependabot.com/nodejs/node/pull/44897">nodejs/node#44897</a>. This conflicts with Go's WebAssembly shim code, which overwrites the global <code>crypto</code> property. As a result, all Go-based WebAssembly code that uses the built-in shim (including esbuild) is now broken on Node v19. This release of esbuild fixes the issue by reconfiguring the global <code>crypto</code> property to be writable before invoking Go's WebAssembly shim code.</p>
</li>
<li>
<p>Fix CSS dimension printing exponent confusion edge case (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2677">#2677</a>)</p>
<p>In CSS, a dimension token has a numeric &quot;value&quot; part and an identifier &quot;unit&quot; part. For example, the dimension token <code>32px</code> has a value of <code>32</code> and a unit of <code>px</code>. The unit can be any valid CSS identifier. The value can be any number in floating-point format including an optional exponent (e.g. <code>-3.14e-0</code> has an exponent of <code>e-0</code>). The full details of this syntax are here: <a href="https://www.w3.org/TR/css-syntax-3/">https://www.w3.org/TR/css-syntax-3/</a>.</p>
<p>To maintain the integrity of the dimension token through the printing process, esbuild must handle the edge case where the unit looks like an exponent. One such case is the dimension <code>1e\32</code> which has the value <code>1</code> and the unit <code>e2</code>. It would be bad if this dimension token was printed such that a CSS parser would parse it as a number token with the value <code>1e2</code> instead of a dimension token. The way esbuild currently does this is to escape the leading <code>e</code> in the dimension unit, so esbuild would parse <code>1e\32</code> but print <code>1\65 2</code> (both <code>1e\32</code> and <code>1\65 2</code> represent a dimension token with a value of <code>1</code> and a unit of <code>e2</code>).</p>
<p>However, there is an even narrower edge case regarding this edge case. If the value part of the dimension token itself has an <code>e</code>, then it's not necessary to escape the <code>e</code> in the dimension unit because a CSS parser won't confuse the unit with the exponent even though it looks like one (since a number can only have at most one exponent). This came up because the grammar for the CSS <code>unicode-range</code> property uses a hack that lets you specify a hexadecimal range without quotes even though CSS has no token for a hexadecimal range. The hack is to allow the hexadecimal range to be parsed as a dimension token and optionally also a number token. Here is the grammar for <code>unicode-range</code>:</p>
<pre><code>unicode-range =
  &lt;urange&gt;#
<p>&lt;urange&gt; =
u '+' &lt;ident-token&gt; '?'*            |
u &lt;dimension-token&gt; '?'*            |
u &lt;number-token&gt; '?'*               |
u &lt;number-token&gt; &lt;dimension-token&gt;  |
u &lt;number-token&gt; &lt;number-token&gt;     |
u '+' '?'+
</code></pre></p>
<p>and here is an example <code>unicode-range</code> declaration that was problematic for esbuild:</p>
<pre lang="css"><code></code></pre>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/master/CHANGELOG.md">esbuild's changelog</a>.</em></p>
<blockquote>
<h2>0.15.15</h2>
<ul>
<li>
<p>Remove duplicate CSS rules across files (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2688">#2688</a>)</p>
<p>When two or more CSS rules are exactly the same (even if they are not adjacent), all but the last one can safely be removed:</p>
<pre lang="css"><code>/* Before */
a { color: red; }
span { font-weight: bold; }
a { color: red; }
<p>/* After */
span { font-weight: bold; }
a { color: red; }
</code></pre></p>
<p>Previously esbuild only did this transformation within a single source file. But with this release, esbuild will now do this transformation across source files, which may lead to smaller CSS output if the same rules are repeated across multiple CSS source files in the same bundle. This transformation is only enabled when minifying (specifically when syntax minification is enabled).</p>
</li>
<li>
<p>Add <code>deno</code> as a valid value for <code>target</code> (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2686">#2686</a>)</p>
<p>The <code>target</code> setting in esbuild allows you to enable or disable JavaScript syntax features for a given version of a set of target JavaScript VMs. Previously <a href="https://deno.land/">Deno</a> was not one of the JavaScript VMs that esbuild supported with <code>target</code>, but it will now be supported starting from this release. For example, versions of Deno older than v1.2 don't support the new <code>||=</code> operator, so adding e.g. <code>--target=deno1.0</code> to esbuild now lets you tell esbuild to transpile <code>||=</code> to older JavaScript.</p>
</li>
<li>
<p>Fix the <code>esbuild-wasm</code> package in Node v19 (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2683">#2683</a>)</p>
<p>A recent change to Node v19 added a non-writable <code>crypto</code> property to the global object: <a href="https://github-redirect.dependabot.com/nodejs/node/pull/44897">nodejs/node#44897</a>. This conflicts with Go's WebAssembly shim code, which overwrites the global <code>crypto</code> property. As a result, all Go-based WebAssembly code that uses the built-in shim (including esbuild) is now broken on Node v19. This release of esbuild fixes the issue by reconfiguring the global <code>crypto</code> property to be writable before invoking Go's WebAssembly shim code.</p>
</li>
<li>
<p>Fix CSS dimension printing exponent confusion edge case (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2677">#2677</a>)</p>
<p>In CSS, a dimension token has a numeric &quot;value&quot; part and an identifier &quot;unit&quot; part. For example, the dimension token <code>32px</code> has a value of <code>32</code> and a unit of <code>px</code>. The unit can be any valid CSS identifier. The value can be any number in floating-point format including an optional exponent (e.g. <code>-3.14e-0</code> has an exponent of <code>e-0</code>). The full details of this syntax are here: <a href="https://www.w3.org/TR/css-syntax-3/">https://www.w3.org/TR/css-syntax-3/</a>.</p>
<p>To maintain the integrity of the dimension token through the printing process, esbuild must handle the edge case where the unit looks like an exponent. One such case is the dimension <code>1e\32</code> which has the value <code>1</code> and the unit <code>e2</code>. It would be bad if this dimension token was printed such that a CSS parser would parse it as a number token with the value <code>1e2</code> instead of a dimension token. The way esbuild currently does this is to escape the leading <code>e</code> in the dimension unit, so esbuild would parse <code>1e\32</code> but print <code>1\65 2</code> (both <code>1e\32</code> and <code>1\65 2</code> represent a dimension token with a value of <code>1</code> and a unit of <code>e2</code>).</p>
<p>However, there is an even narrower edge case regarding this edge case. If the value part of the dimension token itself has an <code>e</code>, then it's not necessary to escape the <code>e</code> in the dimension unit because a CSS parser won't confuse the unit with the exponent even though it looks like one (since a number can only have at most one exponent). This came up because the grammar for the CSS <code>unicode-range</code> property uses a hack that lets you specify a hexadecimal range without quotes even though CSS has no token for a hexadecimal range. The hack is to allow the hexadecimal range to be parsed as a dimension token and optionally also a number token. Here is the grammar for <code>unicode-range</code>:</p>
<pre><code>unicode-range =
  &lt;urange&gt;#
<p>&lt;urange&gt; =
u '+' &lt;ident-token&gt; '?'*            |
u &lt;dimension-token&gt; '?'*            |
u &lt;number-token&gt; '?'*               |
u &lt;number-token&gt; &lt;dimension-token&gt;  |
u &lt;number-token&gt; &lt;number-token&gt;     |
u '+' '?'+
</code></pre></p>
<p>and here is an example <code>unicode-range</code> declaration that was problematic for esbuild:</p>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/evanw/esbuild/commit/478062d5310b27f1a6a259602a79bf84e233cc1d"><code>478062d</code></a> publish 0.15.15 to npm</li>
<li><a href="https://github.com/evanw/esbuild/commit/e7ad5fbef7737674fe706a44d29876e87dc12654"><code>e7ad5fb</code></a> remove duplicate css rules across files (<a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2688">#2688</a>)</li>
<li><a href="https://github.com/evanw/esbuild/commit/66641726009aa52b357be3d811b958b39057d247"><code>6664172</code></a> test duplicate rule merging after bundling</li>
<li><a href="https://github.com/evanw/esbuild/commit/a73c4e91d99ee3ba00bda46f7ab257e7a8912191"><code>a73c4e9</code></a> css: merge adjacent selectors forward not backward</li>
<li><a href="https://github.com/evanw/esbuild/commit/4b1200f707799fb84c945996884491c5f334c507"><code>4b1200f</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2685">#2685</a>: <code>preferUnplugged: true</code> in all packages</li>
<li><a href="https://github.com/evanw/esbuild/commit/ec9c3cf41d2bf758feb0fdd3cc54f285ea9feb0b"><code>ec9c3cf</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2686">#2686</a>: make <code>deno</code> a valid value for <code>target</code></li>
<li><a href="https://github.com/evanw/esbuild/commit/38c9c1ff916ffd23dc4c5863121aa9bf66f6e46a"><code>38c9c1f</code></a> rewrite browser tests to work without runner</li>
<li><a href="https://github.com/evanw/esbuild/commit/d0fd2686a3d4ba35b53492c0224fbe15551dcfe1"><code>d0fd268</code></a> upgrade puppeteer 5.5.0 =&gt; 19.2.2</li>
<li><a href="https://github.com/evanw/esbuild/commit/daccf02ac13399de6378838801e683e7cce365e6"><code>daccf02</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2683">#2683</a>: <code>esbuild-wasm</code> broken in node v19</li>
<li><a href="https://github.com/evanw/esbuild/commit/ecc9eeb5ec13cf32e0690e92aa2e933d1267beb4"><code>ecc9eeb</code></a> fix <a href="https://github-redirect.dependabot.com/evanw/esbuild/issues/2677">#2677</a>: token unit escaping and <code>unicode-range</code></li>
<li>See full diff in <a href="https://github.com/evanw/esbuild/compare/v0.15.14...v0.15.15">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.15.14&new-version=0.15.15)](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>
  • Loading branch information
mergify[bot] authored Nov 23, 2022
2 parents c1a66c6 + 51330bd commit 68fd37b
Showing 1 changed file with 132 additions and 132 deletions.
264 changes: 132 additions & 132 deletions yarn.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 68fd37b

Please sign in to comment.