-
Notifications
You must be signed in to change notification settings - Fork 5
Commit c0be1cd
authored
build(deps): bump esbuild from 0.25.6 to 0.25.8 (#367)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.25.6 to 0.25.8.
<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.25.8</h2>
<ul>
<li>
<p>Fix another TypeScript parsing edge case (<a
href="https://redirect.github.com/evanw/esbuild/issues/4248">#4248</a>)</p>
<p>This fixes a regression with a change in the previous release that
tries to more accurately parse TypeScript arrow functions inside the
<code>?:</code> operator. The regression specifically involves parsing
an arrow function containing a <code>#private</code> identifier inside
the middle of a <code>?:</code> ternary operator inside a class body.
This was fixed by propagating private identifier state into the parser
clone used to speculatively parse the arrow function body. Here is an
example of some affected code:</p>
<pre lang="ts"><code>class CachedDict {
#has = (a: string) => dict.has(a);
has = window
? (word: string): boolean => this.#has(word)
: this.#has;
}
</code></pre>
</li>
<li>
<p>Fix a regression with the parsing of source phase imports</p>
<p>The change in the previous release to parse <a
href="https://github.com/tc39/proposal-source-phase-imports">source
phase imports</a> failed to properly handle the following cases:</p>
<pre lang="ts"><code>import source from 'bar'
import source from from 'bar'
import source type foo from 'bar'
</code></pre>
<p>Parsing for these cases should now be fixed. The first case was
incorrectly treated as a syntax error because esbuild was expecting the
second case. And the last case was previously allowed but is now
forbidden. TypeScript hasn't added this feature yet so it remains to be
seen whether the last case will be allowed, but it's safer to disallow
it for now. At least Babel doesn't allow the last case when parsing
TypeScript, and Babel was involved with the source phase import
specification.</p>
</li>
</ul>
<h2>v0.25.7</h2>
<ul>
<li>
<p>Parse and print JavaScript imports with an explicit phase (<a
href="https://redirect.github.com/evanw/esbuild/issues/4238">#4238</a>)</p>
<p>This release adds basic syntax support for the <code>defer</code> and
<code>source</code> import phases in JavaScript:</p>
<ul>
<li>
<p><code>defer</code></p>
<p>This is a <a
href="https://github.com/tc39/proposal-defer-import-eval">stage 3
proposal</a> for an upcoming JavaScript feature that will provide one
way to eagerly load but lazily initialize imported modules. The imported
module is automatically initialized on first use. Support for this
syntax will also be part of the upcoming release of <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/#support-for-import-defer">TypeScript
5.9</a>. The syntax looks like this:</p>
<pre lang="js"><code>import defer * as foo from
"<specifier>";
const bar = await import.defer("<specifier>");
</code></pre>
<p>Note that this feature deliberately cannot be used with the syntax
<code>import defer foo from "<specifier>"</code> or
<code>import defer { foo } from
"<specifier>"</code>.</p>
</li>
<li>
<p><code>source</code></p>
<p>This is a <a
href="https://github.com/tc39/proposal-source-phase-imports">stage 3
proposal</a> for an upcoming JavaScript feature that will provide
another way to eagerly load but lazily initialize imported modules. The
imported module is returned in an uninitialized state. Support for this
syntax may or may not be a part of TypeScript 5.9 (see <a
href="https://redirect.github.com/microsoft/TypeScript/issues/61216">this
issue</a> for details). The syntax looks like this:</p>
<pre lang="js"><code>import source foo from
"<specifier>";
const bar = await import.source("<specifier>");
</code></pre>
</li>
</ul>
</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.25.8</h2>
<ul>
<li>
<p>Fix another TypeScript parsing edge case (<a
href="https://redirect.github.com/evanw/esbuild/issues/4248">#4248</a>)</p>
<p>This fixes a regression with a change in the previous release that
tries to more accurately parse TypeScript arrow functions inside the
<code>?:</code> operator. The regression specifically involves parsing
an arrow function containing a <code>#private</code> identifier inside
the middle of a <code>?:</code> ternary operator inside a class body.
This was fixed by propagating private identifier state into the parser
clone used to speculatively parse the arrow function body. Here is an
example of some affected code:</p>
<pre lang="ts"><code>class CachedDict {
#has = (a: string) => dict.has(a);
has = window
? (word: string): boolean => this.#has(word)
: this.#has;
}
</code></pre>
</li>
<li>
<p>Fix a regression with the parsing of source phase imports</p>
<p>The change in the previous release to parse <a
href="https://github.com/tc39/proposal-source-phase-imports">source
phase imports</a> failed to properly handle the following cases:</p>
<pre lang="ts"><code>import source from 'bar'
import source from from 'bar'
import source type foo from 'bar'
</code></pre>
<p>Parsing for these cases should now be fixed. The first case was
incorrectly treated as a syntax error because esbuild was expecting the
second case. And the last case was previously allowed but is now
forbidden. TypeScript hasn't added this feature yet so it remains to be
seen whether the last case will be allowed, but it's safer to disallow
it for now. At least Babel doesn't allow the last case when parsing
TypeScript, and Babel was involved with the source phase import
specification.</p>
</li>
</ul>
<h2>0.25.7</h2>
<ul>
<li>
<p>Parse and print JavaScript imports with an explicit phase (<a
href="https://redirect.github.com/evanw/esbuild/issues/4238">#4238</a>)</p>
<p>This release adds basic syntax support for the <code>defer</code> and
<code>source</code> import phases in JavaScript:</p>
<ul>
<li>
<p><code>defer</code></p>
<p>This is a <a
href="https://github.com/tc39/proposal-defer-import-eval">stage 3
proposal</a> for an upcoming JavaScript feature that will provide one
way to eagerly load but lazily initialize imported modules. The imported
module is automatically initialized on first use. Support for this
syntax will also be part of the upcoming release of <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/#support-for-import-defer">TypeScript
5.9</a>. The syntax looks like this:</p>
<pre lang="js"><code>import defer * as foo from
"<specifier>";
const bar = await import.defer("<specifier>");
</code></pre>
<p>Note that this feature deliberately cannot be used with the syntax
<code>import defer foo from "<specifier>"</code> or
<code>import defer { foo } from
"<specifier>"</code>.</p>
</li>
<li>
<p><code>source</code></p>
<p>This is a <a
href="https://github.com/tc39/proposal-source-phase-imports">stage 3
proposal</a> for an upcoming JavaScript feature that will provide
another way to eagerly load but lazily initialize imported modules. The
imported module is returned in an uninitialized state. Support for this
syntax may or may not be a part of TypeScript 5.9 (see <a
href="https://redirect.github.com/microsoft/TypeScript/issues/61216">this
issue</a> for details). The syntax looks like this:</p>
<pre lang="js"><code>import source foo from
"<specifier>";
</code></pre>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/evanw/esbuild/commit/8c71947edbe5a158fec3a6d1cbfea1e8d5cdee70"><code>8c71947</code></a>
publish 0.25.8 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/0508f2444569ba105fa38e6e9fa9e1f2ed6d95b2"><code>0508f24</code></a>
some parsing fixes for source phase imports</li>
<li><a
href="https://github.com/evanw/esbuild/commit/6e4be2fad3c898ea2f4d9c2fd0be7bbcd79f5206"><code>6e4be2f</code></a>
js parser: recover from bad <code>#private</code> identifiers</li>
<li><a
href="https://github.com/evanw/esbuild/commit/c9c6357a8dbf43b9ec2896bd92e25df2f0677b45"><code>c9c6357</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4248">#4248</a>:
<code>#private</code> ids in arrow fn body in <code>?:</code></li>
<li><a
href="https://github.com/evanw/esbuild/commit/9b42f68f9b1fecf16e72dbcfc5c46504239d6fe6"><code>9b42f68</code></a>
publish 0.25.7 to npm</li>
<li><a
href="https://github.com/evanw/esbuild/commit/9ba01d1c1faf6f157d614c64144193dbfe88db97"><code>9ba01d1</code></a>
abs-paths: js api and tests</li>
<li><a
href="https://github.com/evanw/esbuild/commit/ca196c9c4a270ff61181bc8d61886b947bbc2612"><code>ca196c9</code></a>
fix for parser backtracking crash</li>
<li><a
href="https://github.com/evanw/esbuild/commit/2979b846fd7e5899a57f412bb3ce8ee0c8c150f3"><code>2979b84</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4241">#4241</a>:
ts arrow function type backtrack (hack)</li>
<li><a
href="https://github.com/evanw/esbuild/commit/1180410e335f49eb8a4b33be4357bf15b185475e"><code>1180410</code></a>
fix an unused variable warning</li>
<li><a
href="https://github.com/evanw/esbuild/commit/fc3da579557d775c022dbfc4e68843d34cab9fb5"><code>fc3da57</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4238">#4238</a>:
add <code>defer</code> and <code>source</code> import phases</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.25.6...v0.25.8">compare
view</a></li>
</ul>
</details>
<br />
[](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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>1 parent 5a94842 commit c0be1cdCopy full SHA for c0be1cd
File tree
Expand file treeCollapse file tree
2 files changed
+109
-109
lines changedOpen diff view settings
Filter options
Expand file treeCollapse file tree
2 files changed
+109
-109
lines changedOpen diff view settings
0 commit comments