dependabot[bot] fa13b3b240 Bump esbuild, vite and vitest (#596)
Bumps [esbuild](https://github.com/evanw/esbuild) to 0.25.0 and updates
ancestor dependencies [esbuild](https://github.com/evanw/esbuild),
[vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
These dependencies need to be updated together.

Updates `esbuild` from 0.21.5 to 0.25.0
<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.0</h2>
<p><strong>This release deliberately contains backwards-incompatible
changes.</strong> To avoid automatically picking up releases like this,
you should either be pinning the exact version of <code>esbuild</code>
in your <code>package.json</code> file (recommended) or be using a
version range syntax that only accepts patch upgrades such as
<code>^0.24.0</code> or <code>~0.24.0</code>. See npm's documentation
about <a
href="https://docs.npmjs.com/cli/v6/using-npm/semver/">semver</a> for
more information.</p>
<ul>
<li>
<p>Restrict access to esbuild's development server (<a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99">GHSA-67mh-4wv8-2f99</a>)</p>
<p>This change addresses esbuild's first security vulnerability report.
Previously esbuild set the <code>Access-Control-Allow-Origin</code>
header to <code>*</code> to allow esbuild's development server to be
flexible in how it's used for development. However, this allows the
websites you visit to make HTTP requests to esbuild's local development
server, which gives read-only access to your source code if the website
were to fetch your source code's specific URL. You can read more
information in <a
href="https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99">the
report</a>.</p>
<p>Starting with this release, <a
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">CORS</a>
will now be disabled, and requests will now be denied if the host does
not match the one provided to <code>--serve=</code>. The default host is
<code>0.0.0.0</code>, which refers to all of the IP addresses that
represent the local machine (e.g. both <code>127.0.0.1</code> and
<code>192.168.0.1</code>). If you want to customize anything about
esbuild's development server, you can <a
href="https://esbuild.github.io/api/#serve-proxy">put a proxy in front
of esbuild</a> and modify the incoming and/or outgoing requests.</p>
<p>In addition, the <code>serve()</code> API call has been changed to
return an array of <code>hosts</code> instead of a single
<code>host</code> string. This makes it possible to determine all of the
hosts that esbuild's development server will accept.</p>
<p>Thanks to <a
href="https://github.com/sapphi-red"><code>@​sapphi-red</code></a> for
reporting this issue.</p>
</li>
<li>
<p>Delete output files when a build fails in watch mode (<a
href="https://redirect.github.com/evanw/esbuild/issues/3643">#3643</a>)</p>
<p>It has been requested for esbuild to delete files when a build fails
in watch mode. Previously esbuild left the old files in place, which
could cause people to not immediately realize that the most recent build
failed. With this release, esbuild will now delete all output files if a
rebuild fails. Fixing the build error and triggering another rebuild
will restore all output files again.</p>
</li>
<li>
<p>Fix correctness issues with the CSS nesting transform (<a
href="https://redirect.github.com/evanw/esbuild/issues/3620">#3620</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/3877">#3877</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/3933">#3933</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/3997">#3997</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4005">#4005</a>,
<a href="https://redirect.github.com/evanw/esbuild/pull/4037">#4037</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4038">#4038</a>)</p>
<p>This release fixes the following problems:</p>
<ul>
<li>
<p>Naive expansion of CSS nesting can result in an exponential blow-up
of generated CSS if each nesting level has multiple selectors.
Previously esbuild sometimes collapsed individual nesting levels using
<code>:is()</code> to limit expansion. However, this collapsing wasn't
correct in some cases, so it has been removed to fix correctness
issues.</p>
<pre lang="css"><code>/* Original code */
.parent {
  &gt; .a,
  &gt; .b1 &gt; .b2 {
    color: red;
  }
}
<p>/* Old output (with --supported:nesting=false) */<br />
.parent &gt; :is(.a, .b1 &gt; .b2) {<br />
color: red;<br />
}</p>
<p>/* New output (with --supported:nesting=false) */<br />
.parent &gt; .a,<br />
.parent &gt; .b1 &gt; .b2 {<br />
color: red;<br />
}<br />
</code></pre></p>
<p>Thanks to <a
href="https://github.com/tim-we"><code>@​tim-we</code></a> for working
on a fix.</p>
</li>
<li>
<p>The <code>&amp;</code> CSS nesting selector can be repeated multiple
times to increase CSS specificity. Previously esbuild ignored this
possibility and incorrectly considered <code>&amp;&amp;</code> to have
the same specificity as <code>&amp;</code>. With this release, this
should now work correctly:</p>
<pre lang="css"><code>/* Original code (color should be red) */
</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-2024.md">esbuild's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog: 2024</h1>
<p>This changelog documents all esbuild versions published in the year
2024 (versions 0.19.12 through 0.24.2).</p>
<h2>0.24.2</h2>
<ul>
<li>
<p>Fix regression with <code>--define</code> and
<code>import.meta</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4010">#4010</a>,
<a
href="https://redirect.github.com/evanw/esbuild/issues/4012">#4012</a>,
<a
href="https://redirect.github.com/evanw/esbuild/pull/4013">#4013</a>)</p>
<p>The previous change in version 0.24.1 to use a more expression-like
parser for <code>define</code> values to allow quoted property names
introduced a regression that removed the ability to use
<code>--define:import.meta=...</code>. Even though <code>import</code>
is normally a keyword that can't be used as an identifier, ES modules
special-case the <code>import.meta</code> expression to behave like an
identifier anyway. This change fixes the regression.</p>
<p>This fix was contributed by <a
href="https://github.com/sapphi-red"><code>@​sapphi-red</code></a>.</p>
</li>
</ul>
<h2>0.24.1</h2>
<ul>
<li>
<p>Allow <code>es2024</code> as a target in <code>tsconfig.json</code>
(<a
href="https://redirect.github.com/evanw/esbuild/issues/4004">#4004</a>)</p>
<p>TypeScript recently <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/#support-for---target-es2024-and---lib-es2024">added
<code>es2024</code></a> as a compilation target, so esbuild now supports
this in the <code>target</code> field of <code>tsconfig.json</code>
files, such as in the following configuration file:</p>
<pre lang="json"><code>{
  &quot;compilerOptions&quot;: {
    &quot;target&quot;: &quot;ES2024&quot;
  }
}
</code></pre>
<p>As a reminder, the only thing that esbuild uses this field for is
determining whether or not to use legacy TypeScript behavior for class
fields. You can read more in <a
href="https://esbuild.github.io/content-types/#tsconfig-json">the
documentation</a>.</p>
<p>This fix was contributed by <a
href="https://github.com/billyjanitsch"><code>@​billyjanitsch</code></a>.</p>
</li>
<li>
<p>Allow automatic semicolon insertion after
<code>get</code>/<code>set</code></p>
<p>This change fixes a grammar bug in the parser that incorrectly
treated the following code as a syntax error:</p>
<pre lang="ts"><code>class Foo {
  get
  *x() {}
  set
  *y() {}
}
</code></pre>
<p>The above code will be considered valid starting with this release.
This change to esbuild follows a <a
href="https://redirect.github.com/microsoft/TypeScript/pull/60225">similar
change to TypeScript</a> which will allow this syntax starting with
TypeScript 5.7.</p>
</li>
<li>
<p>Allow quoted property names in <code>--define</code> and
<code>--pure</code> (<a
href="https://redirect.github.com/evanw/esbuild/issues/4008">#4008</a>)</p>
<p>The <code>define</code> and <code>pure</code> API options now accept
identifier expressions containing quoted property names. Previously all
identifiers in the identifier expression had to be bare identifiers.
This change now makes <code>--define</code> and <code>--pure</code>
consistent with <code>--global-name</code>, which already supported
quoted property names. For example, the following is now possible:</p>
<pre lang="js"><code></code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e9174d671b"><code>e9174d6</code></a>
publish 0.25.0 to npm</li>
<li><a
href="c27dbebb9e"><code>c27dbeb</code></a>
fix <code>hosts</code> in <code>plugin-tests.js</code></li>
<li><a
href="6794f602a4"><code>6794f60</code></a>
fix <code>hosts</code> in <code>node-unref-tests.js</code></li>
<li><a
href="de85afd65e"><code>de85afd</code></a>
Merge commit from fork</li>
<li><a
href="da1de1bf77"><code>da1de1b</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4065">#4065</a>:
bitwise operators can return bigints</li>
<li><a
href="f4e9d19fb2"><code>f4e9d19</code></a>
switch case liveness: <code>default</code> is always last</li>
<li><a
href="7aa47c3e77"><code>7aa47c3</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4028">#4028</a>:
minify live/dead <code>switch</code> cases better</li>
<li><a
href="22ecd30619"><code>22ecd30</code></a>
minify: more constant folding for strict equality</li>
<li><a
href="4cdf03c036"><code>4cdf03c</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/4053">#4053</a>:
reordering of <code>.tsx</code> in <code>node_modules</code></li>
<li><a
href="dc719775b7"><code>dc71977</code></a>
fix <a
href="https://redirect.github.com/evanw/esbuild/issues/3692">#3692</a>:
<code>0</code> now picks a random ephemeral port</li>
<li>Additional commits viewable in <a
href="https://github.com/evanw/esbuild/compare/v0.21.5...v0.25.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `vite` from 5.4.14 to 6.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>create-vite@6.2.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/create-vite@6.2.0/packages/create-vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.2.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.2.0/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.2.0-beta.1</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.2.0-beta.1/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.2.0-beta.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.2.0-beta.0/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>create-vite@6.1.1</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/create-vite@6.1.1/packages/create-vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.1.1</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.1.1/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>create-vite@6.1.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/create-vite@6.1.0/packages/create-vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.1.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.1.0/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.1.0-beta.2</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.1.0-beta.2/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.1.0-beta.1</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.1.0-beta.1/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.1.0-beta.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.1.0-beta.0/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.0.11</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.0.11/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.0.10</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.0.10/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.0.9</h2>
<p>This version contains a breaking change due to security fixes. See <a
href="https://github.com/vitejs/vite/security/advisories/GHSA-vg6x-rcgg-rjx6">https://github.com/vitejs/vite/security/advisories/GHSA-vg6x-rcgg-rjx6</a>
for more details.</p>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.0.9/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.0.8</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.0.8/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.0.7</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.0.7/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2>6.2.0 (2025-02-25)</h2>
<ul>
<li>fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19501">#19501</a>)
(<a
href="c94c9e0521">c94c9e0</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19501">#19501</a></li>
<li>fix(worker): string interpolation in dynamic worker options (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19476">#19476</a>)
(<a
href="07091a1e80">07091a1</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19476">#19476</a></li>
<li>chore: use unicode cross icon instead of x (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19497">#19497</a>)
(<a
href="5c70296ffb">5c70296</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19497">#19497</a></li>
</ul>
<h2>6.2.0-beta.1 (2025-02-21)</h2>
<ul>
<li>fix(css): temporary add <code>?.</code> after
<code>this.getModuleInfo</code> in <code>vite:css-post</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19478">#19478</a>)
(<a
href="12b0b8a953">12b0b8a</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19478">#19478</a></li>
</ul>
<h2>6.2.0-beta.0 (2025-02-21)</h2>
<ul>
<li>feat: show <code>mode</code> on server start and add env debugger
(<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18808">#18808</a>)
(<a
href="c575b82559">c575b82</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/18808">#18808</a></li>
<li>feat: use host url to open browser (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19414">#19414</a>)
(<a
href="f6926caa1f">f6926ca</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19414">#19414</a></li>
<li>feat(css): allow scoping css to importers exports (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19418">#19418</a>)
(<a
href="3ebd83833f">3ebd838</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19418">#19418</a></li>
<li>chore: bump esbuild to 0.25.0 (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19389">#19389</a>)
(<a
href="73987f22ec">73987f2</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19389">#19389</a></li>
</ul>
<h2><!-- raw HTML omitted -->6.1.1 (2025-02-19)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: ensure <code>.[cm]?[tj]sx?</code> static assets are JS mime (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19453">#19453</a>)
(<a
href="e7ba55e7d5">e7ba55e</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19453">#19453</a></li>
<li>fix: ignore <code>*.ipv4</code> address in cert (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19416">#19416</a>)
(<a
href="973283bf84">973283b</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19416">#19416</a></li>
<li>fix(css): run rewrite plugin if postcss plugin exists (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19371">#19371</a>)
(<a
href="bcdb51a1ac">bcdb51a</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19371">#19371</a></li>
<li>fix(deps): bump tsconfck (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19375">#19375</a>)
(<a
href="746a583d42">746a583</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19375">#19375</a></li>
<li>fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19392">#19392</a>)
(<a
href="60456a54fe">60456a5</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19392">#19392</a></li>
<li>fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19440">#19440</a>)
(<a
href="ccac73d9d0">ccac73d</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19440">#19440</a></li>
<li>fix(html): ignore malformed src attrs (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19397">#19397</a>)
(<a
href="aff7812f0a">aff7812</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19397">#19397</a></li>
<li>fix(worker): fix web worker type detection (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19462">#19462</a>)
(<a
href="edc65eafa3">edc65ea</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19462">#19462</a></li>
<li>refactor: remove custom .jxl mime (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19457">#19457</a>)
(<a
href="0c854645bd">0c85464</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19457">#19457</a></li>
<li>feat: add support for injecting debug IDs (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18763">#18763</a>)
(<a
href="0ff556a6d9">0ff556a</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/18763">#18763</a></li>
<li>chore: update 6.1.0 changelog (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19363">#19363</a>)
(<a
href="fa7c211bf3">fa7c211</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19363">#19363</a></li>
</ul>
<h2>6.1.0 (2025-02-05)</h2>
<h3>Features</h3>
<ul>
<li>feat: show hosts in cert in CLI (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19317">#19317</a>)
(<a
href="a5e306f2fc">a5e306f</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19317">#19317</a></li>
<li>feat: support for env var for defining allowed hosts (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19325">#19325</a>)
(<a
href="4d88f6c939">4d88f6c</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19325">#19325</a></li>
<li>feat: use native runtime to import the config (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19178">#19178</a>)
(<a
href="7c2a7942cc">7c2a794</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19178">#19178</a></li>
<li>feat: print <code>port</code> in the logged error message after
failed WS connection with <code>EADDRINUSE</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19212">#19212</a>)
(<a
href="14027b0f2a">14027b0</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19212">#19212</a></li>
<li>perf(css): only run postcss when needed (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19061">#19061</a>)
(<a
href="30194fa1e4">30194fa</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19061">#19061</a></li>
<li>feat: add support for <code>.jxl</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18855">#18855</a>)
(<a
href="57b397c4aa">57b397c</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/18855">#18855</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fa7c211bf3"><code>fa7c211</code></a>
chore: update 6.1.0 changelog (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19363">#19363</a>)</li>
<li><a
href="051370a332"><code>051370a</code></a>
release: v6.1.0</li>
<li><a
href="6e0e3c0b99"><code>6e0e3c0</code></a>
refactor: deprecate <code>vite optimize</code> command (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19348">#19348</a>)</li>
<li><a
href="7c2a7942cc"><code>7c2a794</code></a>
feat: use native runtime to import the config (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19178">#19178</a>)</li>
<li><a
href="fcd578587b"><code>fcd5785</code></a>
fix(build): fix stale build manifest on watch rebuild (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19361">#19361</a>)</li>
<li><a
href="a5e306f2fc"><code>a5e306f</code></a>
feat: show hosts in cert in CLI (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19317">#19317</a>)</li>
<li><a
href="4d88f6c939"><code>4d88f6c</code></a>
feat: support for env var for defining allowed hosts (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19325">#19325</a>)</li>
<li><a
href="fdb36e0769"><code>fdb36e0</code></a>
fix: avoid builtStart during vite optimize (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19356">#19356</a>)</li>
<li><a
href="5ce7443462"><code>5ce7443</code></a>
release: v6.1.0-beta.2</li>
<li><a
href="e7b4ba37f9"><code>e7b4ba3</code></a>
fix(html): fix css disorder when building multiple entry html (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19143">#19143</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/create-vite@6.2.0/packages/vite">compare
view</a></li>
</ul>
</details>
<br />

Updates `vitest` from 2.1.9 to 3.0.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.7</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>: Support webdriverio 9  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/7553">vitest-dev/vitest#7553</a>
<a href="https://github.com/vitest-dev/vitest/commit/b1949c97"><!-- raw
HTML omitted -->(b1949)<!-- raw HTML omitted --></a></li>
<li><strong>deps</strong>: Update all non-major dependencies  -  in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7543">vitest-dev/vitest#7543</a>
<a href="https://github.com/vitest-dev/vitest/commit/365ffe6b"><!-- raw
HTML omitted -->(365ff)<!-- raw HTML omitted --></a></li>
<li><strong>expect</strong>: Correct generic MatchersObject this type in
expect.extend  -  by <a
href="https://github.com/Workingstiff-s"><code>@​Workingstiff-s</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7526">vitest-dev/vitest#7526</a>
<a href="https://github.com/vitest-dev/vitest/commit/d5765f71"><!-- raw
HTML omitted -->(d5765)<!-- raw HTML omitted --></a></li>
<li><strong>mocker</strong>: Include more modules to prefix-only module
list  -  by <a href="https://github.com/btea"><code>@​btea</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/7524">vitest-dev/vitest#7524</a>
<a href="https://github.com/vitest-dev/vitest/commit/a12ec008"><!-- raw
HTML omitted -->(a12ec)<!-- raw HTML omitted --></a></li>
<li><strong>spy</strong>: Clear/reset/restore mocks in stack order  - 
by <a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/7499">vitest-dev/vitest#7499</a>
<a href="https://github.com/vitest-dev/vitest/commit/f71004ff"><!-- raw
HTML omitted -->(f7100)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🏎 Performance</h3>
<ul>
<li><strong>browser</strong>: Do wdio context switching only once per
file  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/7549">vitest-dev/vitest#7549</a>
<a href="https://github.com/vitest-dev/vitest/commit/aaa58556"><!-- raw
HTML omitted -->(aaa58)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v3.0.6...v3.0.7">View
changes on GitHub</a></h5>
<h2>v3.0.6</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>Fix <code>getMockedSystemTime</code> for <code>useFakeTimer</code>
 -  by <a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7405">vitest-dev/vitest#7405</a>
<a href="https://github.com/vitest-dev/vitest/commit/03912b43"><!-- raw
HTML omitted -->(03912)<!-- raw HTML omitted --></a></li>
<li>Compat for jest-image-snapshot  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7390">vitest-dev/vitest#7390</a>
<a href="https://github.com/vitest-dev/vitest/commit/9542b699"><!-- raw
HTML omitted -->(9542b)<!-- raw HTML omitted --></a></li>
<li>Ensure project names are readable in dark terminals  -  by <a
href="https://github.com/rgrove"><code>@​rgrove</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7371">vitest-dev/vitest#7371</a>
<a href="https://github.com/vitest-dev/vitest/commit/bb94c19f"><!-- raw
HTML omitted -->(bb94c)<!-- raw HTML omitted --></a></li>
<li>Exclude <code>queueMicrotask</code> from default fake timers to not
break node fetch  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7505">vitest-dev/vitest#7505</a>
<a href="https://github.com/vitest-dev/vitest/commit/167a98d7"><!-- raw
HTML omitted -->(167a9)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>:
<ul>
<li>Fix mocking modules out of root  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7415">vitest-dev/vitest#7415</a>
<a href="https://github.com/vitest-dev/vitest/commit/d3acbd8b"><!-- raw
HTML omitted -->(d3acb)<!-- raw HTML omitted --></a></li>
<li>Fix <code>toHaveClass</code> typing  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7383">vitest-dev/vitest#7383</a>
<a href="https://github.com/vitest-dev/vitest/commit/7ef238c0"><!-- raw
HTML omitted -->(7ef23)<!-- raw HTML omitted --></a></li>
<li>Relax locator selectors methods  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/7422">vitest-dev/vitest#7422</a>
<a href="https://github.com/vitest-dev/vitest/commit/1b8c5c9e"><!-- raw
HTML omitted -->(1b8c5)<!-- raw HTML omitted --></a></li>
<li>Resolve thread count from <code>maxWorkers</code>  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7483">vitest-dev/vitest#7483</a>
<a href="https://github.com/vitest-dev/vitest/commit/adbb25ab"><!-- raw
HTML omitted -->(adbb2)<!-- raw HTML omitted --></a></li>
<li>Cleanup timeout on resolve and give more information in the error
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/7487">vitest-dev/vitest#7487</a>
<a href="https://github.com/vitest-dev/vitest/commit/5a45a7ca"><!-- raw
HTML omitted -->(5a45a)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>coverage</strong>:
<ul>
<li><code>vite-node</code> to pass correct execution wrapper offset  - 
by <a href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7417">vitest-dev/vitest#7417</a>
<a href="https://github.com/vitest-dev/vitest/commit/1f2e5552"><!-- raw
HTML omitted -->(1f2e5)<!-- raw HTML omitted --></a></li>
<li>Preserve moduleExecutionInfo in non-isolated runs  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7486">vitest-dev/vitest#7486</a>
<a href="https://github.com/vitest-dev/vitest/commit/f31a07bb"><!-- raw
HTML omitted -->(f31a0)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>deps</strong>:
<ul>
<li>Update all non-major dependencies  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7363">vitest-dev/vitest#7363</a>
<a href="https://github.com/vitest-dev/vitest/commit/e348bd4c"><!-- raw
HTML omitted -->(e348b)<!-- raw HTML omitted --></a></li>
<li>Update all non-major dependencies  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7507">vitest-dev/vitest#7507</a>
<a href="https://github.com/vitest-dev/vitest/commit/6cc408d6"><!-- raw
HTML omitted -->(6cc40)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>init</strong>:
<ul>
<li>Invalid browser config  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7475">vitest-dev/vitest#7475</a>
<a href="https://github.com/vitest-dev/vitest/commit/8fe641b4"><!-- raw
HTML omitted -->(8fe64)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>reporters</strong>:
<ul>
<li>Render tasks in tree when in TTY  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7503">vitest-dev/vitest#7503</a>
<a href="https://github.com/vitest-dev/vitest/commit/027ce9bb"><!-- raw
HTML omitted -->(027ce)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>vite-node</strong>:
<ul>
<li>Remove fake first line mapping on Vite 6  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7124">vitest-dev/vitest#7124</a>
<a href="https://github.com/vitest-dev/vitest/commit/b997355b"><!-- raw
HTML omitted -->(b9973)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>watch</strong>:
<ul>
<li>Properly remove cache after removing existing test files  -  by <a
href="https://github.com/soc221b"><code>@​soc221b</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7399">vitest-dev/vitest#7399</a>
<a href="https://github.com/vitest-dev/vitest/commit/01a59721"><!-- raw
HTML omitted -->(01a59)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>workspace</strong>:
<ul>
<li>Forward <code>inspect</code> related cli options  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7373">vitest-dev/vitest#7373</a>
<a href="https://github.com/vitest-dev/vitest/commit/ed15b5b3"><!-- raw
HTML omitted -->(ed15b)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6">View
changes on GitHub</a></h5>
<h2>v3.0.5</h2>
<p>This release includes security patches for:</p>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq">Remote
Code Execution when accessing a malicious website while Vitest API
server is listening | CVE-2025-24964</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="358cccfb8f"><code>358cccf</code></a>
chore: release v3.0.7</li>
<li><a
href="365ffe6b4c"><code>365ffe6</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7543">#7543</a>)</li>
<li><a
href="aaa58556e6"><code>aaa5855</code></a>
perf(browser): do wdio context switching only once per file (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7549">#7549</a>)</li>
<li><a
href="f71004ffa3"><code>f71004f</code></a>
fix(spy): clear/reset/restore mocks in stack order (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7499">#7499</a>)</li>
<li><a
href="9584be337f"><code>9584be3</code></a>
chore: release v3.0.6</li>
<li><a
href="027ce9bbf7"><code>027ce9b</code></a>
fix(reporters): render tasks in tree when in TTY (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7503">#7503</a>)</li>
<li><a
href="b62ac2280e"><code>b62ac22</code></a>
chore: use <code>tinyglobby</code> instead of <code>fast-glob</code> in
Vitest (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7504">#7504</a>)</li>
<li><a
href="167a98d77c"><code>167a98d</code></a>
fix: exclude <code>queueMicrotask</code> from default fake timers to not
break node fetc...</li>
<li><a
href="6cc408d664"><code>6cc408d</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7507">#7507</a>)</li>
<li><a
href="8f138257ba"><code>8f13825</code></a>
docs: fix <code>sequence.hooks: 'stack'</code> as default (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7492">#7492</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v3.0.7/packages/vitest">compare
view</a></li>
</ul>
</details>
<br />


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)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/Comfy-Org/litegraph.js/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-25 16:14:06 +00:00
2023-04-11 08:57:53 +02:00
2024-11-03 06:57:25 +04:00
2023-04-11 08:57:53 +02:00
2015-10-23 16:10:44 +02:00
2025-02-12 15:11:59 -05:00

@ComfyOrg/litegraph

This is the litegraph version used in ComfyUI_frontend.

This repo is litegraph with the following modifications:

Install

npm i @comfyorg/litegraph

litegraph.js

A library in Javascript to create graphs in the browser similar to Unreal Blueprints. Nodes can be programmed easily and it includes an editor to construct and tests the graphs.

It can be integrated easily in any existing web applications and graphs can be run without the need of the editor.

Try it in the demo site.

Node Graph

Features

  • Renders on Canvas2D (zoom in/out and panning, easy to render complex interfaces, can be used inside a WebGLTexture)
  • Easy to use editor (searchbox, keyboard shortcuts, multiple selection, context menu, ...)
  • Optimized to support hundreds of nodes per graph (on editor but also on execution)
  • Customizable theme (colors, shapes, background)
  • Callbacks to personalize every action/drawing/event of nodes
  • Graphs can be executed in NodeJS
  • Highly customizable nodes (color, shape, widgets, custom rendering)
  • Easy to integrate in any JS application (one single file, no dependencies)
  • Typescript support

Nodes provided

Although it is easy to create new node types, LiteGraph comes with some default nodes that could be useful for many cases:

  • Interface (Widgets)
  • Math (trigonometry, math operations)
  • Audio (AudioAPI and MIDI)
  • 3D Graphics (Postprocessing in WebGL)
  • Input (read Gamepad)

Installation

You can install it using npm

npm install litegraph.js

Or downloading the build/litegraph.js and css/litegraph.css version from this repository.

First project

<html>
<head>
	<link rel="stylesheet" type="text/css" href="litegraph.css">
	<script type="text/javascript" src="litegraph.js"></script>
</head>
<body style='width:100%; height:100%'>
<canvas id='mycanvas' width='1024' height='720' style='border: 1px solid'></canvas>
<script>
var graph = new LGraph();

var canvas = new LGraphCanvas("#mycanvas", graph);

var node_const = LiteGraph.createNode("basic/const");
node_const.pos = [200,200];
graph.add(node_const);
node_const.setValue(4.5);

var node_watch = LiteGraph.createNode("basic/watch");
node_watch.pos = [700,200];
graph.add(node_watch);

node_const.connect(0, node_watch, 0 );

graph.start()
</script>
</body>
</html>

How to code a new Node type

Here is an example of how to build a node that sums two inputs:

//node constructor class
function MyAddNode()
{
  this.addInput("A","number");
  this.addInput("B","number");
  this.addOutput("A+B","number");
  this.properties = { precision: 1 };
}

//name to show
MyAddNode.title = "Sum";

//function to call when the node is executed
MyAddNode.prototype.onExecute = function()
{
  var A = this.getInputData(0);
  if( A === undefined )
    A = 0;
  var B = this.getInputData(1);
  if( B === undefined )
    B = 0;
  this.setOutputData( 0, A + B );
}

//register in the system
LiteGraph.registerNodeType("basic/sum", MyAddNode );

or you can wrap an existing function:

function sum(a,b)
{
   return a+b;
}

LiteGraph.wrapFunctionAsNode("math/sum",sum, ["Number","Number"],"Number");

Server side

It also works server-side using NodeJS although some nodes do not work in server (audio, graphics, input, etc).

var LiteGraph = require("./litegraph.js").LiteGraph;

var graph = new LiteGraph.LGraph();

var node_time = LiteGraph.createNode("basic/time");
graph.add(node_time);

var node_console = LiteGraph.createNode("basic/console");
node_console.mode = LiteGraph.ALWAYS;
graph.add(node_console);

node_time.connect( 0, node_console, 1 );

graph.start()

Projects using it

comfyUI

screenshot

webglstudio.org

WebGLStudio

MOI Elephant

MOI Elephant

Mynodes

MyNodes

Utils


It includes several commands in the utils folder to generate doc, check errors and build minifyed version.

Demo


The demo includes some examples of graphs. In order to try them you can visit demo site or install it on your local computer, to do so you need git, node and npm. Given those dependencies are installed, run the following commands to try it out:

$ git clone https://github.com/jagenjo/litegraph.js.git
$ cd litegraph.js
$ npm install
$ node utils/server.js
Example app listening on port 80!

Open your browser and point it to http://localhost:8000/. You can select a demo from the dropdown at the top of the page.

Feedback


You can write any feedback to javi.agenjo@gmail.com

Contributors

  • atlasan
  • kriffe
  • rappestad
  • InventivetalentDev
  • NateScarlet
  • coderofsalvation
  • ilyabesk
  • gausszhou
Description
Official front-end implementation of ComfyUI
Readme GPL-3.0 679 MiB
Languages
TypeScript 80.2%
Vue 18.2%
CSS 0.7%
Python 0.3%
Shell 0.3%
Other 0.2%