value, v => value = v} />
+{!!ref}
+
+ value, v => value = v} />
\ No newline at end of file
diff --git a/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/A.svelte b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/A.svelte
new file mode 100644
index 0000000000..7971deff5f
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/A.svelte
@@ -0,0 +1,15 @@
+
+
+ open = !open}>
+ toggle
+
+ {#if open}
+
+
+ A
+
+ {/if}
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/B.svelte b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/B.svelte
new file mode 100644
index 0000000000..7371f47a6f
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/B.svelte
@@ -0,0 +1 @@
+B
\ No newline at end of file
diff --git a/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/_config.js b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/_config.js
new file mode 100644
index 0000000000..789cdfaa02
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/_config.js
@@ -0,0 +1,63 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [fork, commit, toggle] = target.querySelectorAll('button');
+
+ fork.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ toggle
+ `
+ );
+
+ toggle.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ toggle A
+ `
+ );
+
+ toggle.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ toggle
+ `
+ );
+
+ toggle.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ toggle A
+ `
+ );
+
+ commit.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ B
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/main.svelte
new file mode 100644
index 0000000000..7342a37f05
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-block-effect-queueing/main.svelte
@@ -0,0 +1,24 @@
+
+
+
+ {
+ f = fork(() => {
+ open = !open;
+ })
+}}>fork
+ {
+ f.commit()
+}}>commit
+
+{#if open}
+
+{:else}
+
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-component-exports/Child.svelte b/packages/svelte/tests/runtime-runes/samples/async-component-exports/Child.svelte
new file mode 100644
index 0000000000..d5ad4754fb
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-component-exports/Child.svelte
@@ -0,0 +1,9 @@
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-component-exports/_config.js b/packages/svelte/tests/runtime-runes/samples/async-component-exports/_config.js
new file mode 100644
index 0000000000..a4e4f24360
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-component-exports/_config.js
@@ -0,0 +1,12 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ await tick();
+ const [log] = target.querySelectorAll('button');
+
+ log.click();
+ assert.deepEqual(logs, ['foo', 'bar']);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-component-exports/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-component-exports/main.svelte
new file mode 100644
index 0000000000..9e4d07ddfe
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-component-exports/main.svelte
@@ -0,0 +1,11 @@
+
+
+
+ {
+ child.foo();
+ child.bar();
+}}>log
diff --git a/packages/svelte/tests/runtime-runes/samples/async-const/_config.js b/packages/svelte/tests/runtime-runes/samples/async-const/_config.js
index 8aeca875f3..0dd4b870d5 100644
--- a/packages/svelte/tests/runtime-runes/samples/async-const/_config.js
+++ b/packages/svelte/tests/runtime-runes/samples/async-const/_config.js
@@ -2,11 +2,12 @@ import { tick } from 'svelte';
import { test } from '../../test';
export default test({
- html: `Loading... `,
+ mode: ['async-server', 'client', 'hydrate'],
+ ssrHtml: `Hello, world! 5 01234 5 sync 6 5 0 10`,
async test({ assert, target }) {
await tick();
- assert.htmlEqual(target.innerHTML, `Hello, world! 5 01234`);
+ assert.htmlEqual(target.innerHTML, `Hello, world! 5 01234 5 sync 6 5 0 10`);
}
});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-const/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-const/main.svelte
index 7410ff6a6f..4212c59fdc 100644
--- a/packages/svelte/tests/runtime-runes/samples/async-const/main.svelte
+++ b/packages/svelte/tests/runtime-runes/samples/async-const/main.svelte
@@ -3,17 +3,16 @@
+ {@const sync = 'sync'}
{@const number = await Promise.resolve(5)}
-
- {#snippet pending()}
- Loading...
- {/snippet}
+ {@const after_async = number + 1}
+ {@const { length, 0: first } = await '01234'}
{#snippet greet()}
{@const greeting = await `Hello, ${name}!`}
{greeting}
{number}
- {#if number > 4}
+ {#if number > 4 && after_async && greeting}
{@const length = await number}
{#each { length }, index}
{@const i = await index}
@@ -23,4 +22,10 @@
{/snippet}
{@render greet()}
+ {number} {sync} {after_async} {length} {first}
+
+ {#if sync}
+ {@const double = number * 2}
+ {double}
+ {/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/Child.svelte b/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/Child.svelte
index 39112b12a7..04adc8e97f 100644
--- a/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/Child.svelte
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/Child.svelte
@@ -1,13 +1,22 @@
count++}>increment
{count} ** 2 = {squared}
{count} ** 3 = {cubed}
+{typeof toFixed} {typeof toString}
+{a} {b}
\ No newline at end of file
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/_config.js b/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/_config.js
index d444e8e1d9..26f1dfdeb3 100644
--- a/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/_config.js
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-destructured/_config.js
@@ -13,6 +13,8 @@ export default test({
increment
1 ** 2 = 1
1 ** 3 = 1
+ function function
+ 1 2
`
);
@@ -25,6 +27,8 @@ export default test({
increment
2 ** 2 = 4
2 ** 3 = 8
+ function function
+ 1 2
`
);
}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/Component.svelte b/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/Component.svelte
new file mode 100644
index 0000000000..200778dc5b
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/Component.svelte
@@ -0,0 +1,27 @@
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/_config.js b/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/_config.js
new file mode 100644
index 0000000000..15bb42074f
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/_config.js
@@ -0,0 +1,16 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ const button = target.querySelector('button');
+
+ button?.click();
+ await tick();
+ assert.deepEqual(logs, [5]);
+
+ button?.click();
+ await tick();
+ assert.deepEqual(logs, [5, 7]);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/main.svelte
new file mode 100644
index 0000000000..bd82e35a3b
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-in-multiple-effects/main.svelte
@@ -0,0 +1,19 @@
+
+
+
+ {await new Promise((r) => {
+ // long enough for the test to do all its other stuff while this is pending
+ setTimeout(r, 10);
+ })}
+ {#snippet pending()}{/snippet}
+
+
+ count += 1}>{count}
+
+{#if count > 0}
+
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/Component.svelte b/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/Component.svelte
new file mode 100644
index 0000000000..f7d138a3ed
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/Component.svelte
@@ -0,0 +1,6 @@
+
+
+{double}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/_config.js b/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/_config.js
new file mode 100644
index 0000000000..fc0135623d
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/_config.js
@@ -0,0 +1,30 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const button = target.querySelector('button');
+
+ button?.click();
+ await tick();
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ 1
+ 2
+ `
+ );
+
+ button?.click();
+ await tick();
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ 2
+ 4
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/main.svelte
new file mode 100644
index 0000000000..bd82e35a3b
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-derived-unowned/main.svelte
@@ -0,0 +1,19 @@
+
+
+
+ {await new Promise((r) => {
+ // long enough for the test to do all its other stuff while this is pending
+ setTimeout(r, 10);
+ })}
+ {#snippet pending()}{/snippet}
+
+
+ count += 1}>{count}
+
+{#if count > 0}
+
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/Component.svelte b/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/Component.svelte
new file mode 100644
index 0000000000..40816a2b5a
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/Component.svelte
@@ -0,0 +1 @@
+Hi
\ No newline at end of file
diff --git a/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/_config.js b/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/_config.js
new file mode 100644
index 0000000000..bf13a9b120
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/_config.js
@@ -0,0 +1,11 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ mode: ['async-server', 'client', 'hydrate'],
+ ssrHtml: 'Hi Hi Hi Hi',
+ async test({ assert, target }) {
+ await tick();
+ assert.htmlEqual(target.innerHTML, 'Hi Hi Hi Hi');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/main.svelte
new file mode 100644
index 0000000000..d959f80694
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-dynamic-component/main.svelte
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-each-derived/_config.js b/packages/svelte/tests/runtime-runes/samples/async-each-derived/_config.js
new file mode 100644
index 0000000000..62a09bfc7c
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-each-derived/_config.js
@@ -0,0 +1,20 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ await tick(); // settle initial await
+
+ const checkBox = target.querySelector('input');
+
+ checkBox?.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+
+ true
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-each-derived/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-each-derived/main.svelte
new file mode 100644
index 0000000000..7e3b5c54bc
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-each-derived/main.svelte
@@ -0,0 +1,11 @@
+
+
+
+
+{#each checked === foo && [1]}
+ {checked}
+{/each}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-each-overlap/_config.js b/packages/svelte/tests/runtime-runes/samples/async-each-overlap/_config.js
new file mode 100644
index 0000000000..d03f9ad09d
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-each-overlap/_config.js
@@ -0,0 +1,102 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ skip: true,
+ async test({ assert, target }) {
+ const [add, shift] = target.querySelectorAll('button');
+
+ add.click();
+ await tick();
+ add.click();
+ await tick();
+ add.click();
+ await tick();
+
+ // TODO pending count / number of pushes is off
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ add
+ shift
+ pending=6 values.length=1 values=[1]
+
+
+ `
+ );
+
+ shift.click();
+ await tick();
+ shift.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ add
+ shift
+ pending=4 values.length=2 values=[1,2]
+
+
+ `
+ );
+
+ shift.click();
+ await tick();
+ shift.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ add
+ shift
+ pending=2 values.length=3 values=[1,2,3]
+
+
+ `
+ );
+
+ shift.click();
+ await tick();
+ shift.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ add
+ shift
+ pending=0 values.length=4 values=[1,2,3,4]
+ not keyed:
+
1
+
2
+
3
+
4
+
+
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-each-overlap/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-each-overlap/main.svelte
new file mode 100644
index 0000000000..af9d395457
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-each-overlap/main.svelte
@@ -0,0 +1,48 @@
+
+
+add
+shift
+
+
+ pending={$effect.pending()}
+ values.length={values.length}
+ values=[{values}]
+
+
+
+ not keyed:
+ {#each values as v}
+
+ {await push(v)}
+
+ {/each}
+
+
+ keyed:
+ {#each values as v(v)}
+
+ {await push(v)}
+
+ {/each}
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-attributes/_config.js b/packages/svelte/tests/runtime-runes/samples/async-fork-attributes/_config.js
new file mode 100644
index 0000000000..59bcdeb7f5
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-attributes/_config.js
@@ -0,0 +1,60 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [fork, commit] = target.querySelectorAll('button');
+
+ fork.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ foo
+ foo
+ foo
+ `
+ );
+
+ commit.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ foo
+ foo
+ foo
+ `
+ );
+
+ fork.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ foo
+ foo
+ foo
+ `
+ );
+
+ commit.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork
+ commit
+ foo
+ foo
+ foo
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-attributes/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-fork-attributes/main.svelte
new file mode 100644
index 0000000000..956e5df6f3
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-attributes/main.svelte
@@ -0,0 +1,28 @@
+
+
+{
+ forked = fork(()=>{
+ style = style ? '' : 'color: red';
+ attach = attach ? undefined : (node) => {
+ node.setAttribute('data-attached', 'true');
+ return () => node.removeAttribute('data-attached');
+ };
+ })
+}}>fork
+
+{
+ forked.commit();
+}}>commit
+
+
+foo
+foo
+foo
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-if/Child.svelte b/packages/svelte/tests/runtime-runes/samples/async-fork-if/Child.svelte
new file mode 100644
index 0000000000..6ef7d03eea
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-if/Child.svelte
@@ -0,0 +1,8 @@
+
+
+{x}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-if/_config.js b/packages/svelte/tests/runtime-runes/samples/async-fork-if/_config.js
new file mode 100644
index 0000000000..1bc168d9ae
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-if/_config.js
@@ -0,0 +1,12 @@
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ const btn = target.querySelector('button');
+
+ btn?.click();
+ await new Promise((r) => setTimeout(r, 2));
+ assert.htmlEqual(target.innerHTML, `fork universe`);
+ assert.deepEqual(logs, ['universe', 'universe']);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-if/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-fork-if/main.svelte
new file mode 100644
index 0000000000..625040ec13
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-if/main.svelte
@@ -0,0 +1,17 @@
+
+
+ {
+ const f = fork(() => {
+ x = 'universe'
+ });
+ await new Promise(r => setTimeout(r));
+ f.commit();
+}}>fork
+
+{#if x === 'universe'}
+
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-update-same-state/_config.js b/packages/svelte/tests/runtime-runes/samples/async-fork-update-same-state/_config.js
new file mode 100644
index 0000000000..b3e04204b4
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-update-same-state/_config.js
@@ -0,0 +1,49 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ assert.deepEqual(logs, [0]);
+
+ const [fork1, fork2, commit] = target.querySelectorAll('button');
+
+ fork1.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork 1
+ fork 2
+ commit
+ 0
+ `
+ );
+ assert.deepEqual(logs, [0]);
+
+ fork2.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork 1
+ fork 2
+ commit
+ 0
+ `
+ );
+ assert.deepEqual(logs, [0]);
+
+ commit.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ fork 1
+ fork 2
+ commit
+ 1
+ `
+ );
+ assert.deepEqual(logs, [0, 1]);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-fork-update-same-state/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-fork-update-same-state/main.svelte
new file mode 100644
index 0000000000..45645b4085
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-fork-update-same-state/main.svelte
@@ -0,0 +1,37 @@
+
+
+{
+ forked?.discard?.();
+ forked = fork(()=>{
+ state++;
+ });
+}}>
+ fork 1
+
+
+{
+ forked?.discard?.();
+ forked = fork(()=>{
+ state++;
+ })
+}}>
+ fork 2
+
+
+{
+ forked?.commit();
+}}>commit
+
+{count}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-head-title-3/Inner.svelte b/packages/svelte/tests/runtime-runes/samples/async-head-title-3/Inner.svelte
new file mode 100644
index 0000000000..4d761c92ef
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-head-title-3/Inner.svelte
@@ -0,0 +1,15 @@
+
+
+
+ {title}
+
+
+{await push()}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-head-title-3/_config.js b/packages/svelte/tests/runtime-runes/samples/async-head-title-3/_config.js
new file mode 100644
index 0000000000..39cbf5becb
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-head-title-3/_config.js
@@ -0,0 +1,24 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [toggle, resolve] = target.querySelectorAll('button');
+ toggle.click();
+ await tick();
+ assert.equal(window.document.title, '');
+
+ toggle.click();
+ await tick();
+ assert.equal(window.document.title, '');
+
+ toggle.click();
+ await tick();
+ assert.equal(window.document.title, '');
+
+ resolve.click();
+ await tick();
+ await tick();
+ assert.equal(window.document.title, 'title');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-head-title-3/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-head-title-3/main.svelte
new file mode 100644
index 0000000000..be4f04afe8
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-head-title-3/main.svelte
@@ -0,0 +1,12 @@
+
+
+ show = !show}>toggle
+ deferred.pop()()}>resolve
+{#if show}
+
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component1.svelte b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component1.svelte
new file mode 100644
index 0000000000..a3bb9d92b3
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component1.svelte
@@ -0,0 +1,13 @@
+
+
+
+{getValue()}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component2.svelte b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component2.svelte
new file mode 100644
index 0000000000..8b28cf5708
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component2.svelte
@@ -0,0 +1,11 @@
+
+
+
+{getValue()}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component3.svelte b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component3.svelte
new file mode 100644
index 0000000000..f26daeb4f2
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component3.svelte
@@ -0,0 +1,16 @@
+
+
+
+{getValue()}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component4.svelte b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component4.svelte
new file mode 100644
index 0000000000..564cb2660a
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/Component4.svelte
@@ -0,0 +1,19 @@
+
+
+
+{getValue()}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/_config.js b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/_config.js
new file mode 100644
index 0000000000..7b7ee5b122
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/_config.js
@@ -0,0 +1,27 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ mode: ['async-server', 'client', 'hydrate'],
+ ssrHtml:
+ '
',
+
+ async test({ assert, target }) {
+ await tick();
+
+ const inputs = Array.from(target.querySelectorAll('input'));
+ const paragraphs = Array.from(target.querySelectorAll('p'));
+
+ for (let i = 0; i < 4; i++) {
+ assert.equal(inputs[i].value, '');
+ assert.htmlEqual(paragraphs[i].innerHTML, '');
+
+ inputs[i].value = 'hello';
+ inputs[i].dispatchEvent(new InputEvent('input', { bubbles: true }));
+ await tick();
+
+ assert.equal(inputs[i].value, 'hello');
+ assert.htmlEqual(paragraphs[i].innerHTML, 'hello');
+ }
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/main.svelte
new file mode 100644
index 0000000000..c30111fd2b
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-indirect-blockers/main.svelte
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-props-id/_config.js b/packages/svelte/tests/runtime-runes/samples/async-props-id/_config.js
new file mode 100644
index 0000000000..3c6a6ed247
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-props-id/_config.js
@@ -0,0 +1,11 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ ssrHtml: `s1
`,
+
+ async test({ assert, target, variant }) {
+ await tick();
+ assert.htmlEqual(target.innerHTML, variant === 'hydrate' ? 's1
' : 'c1
');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-props-id/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-props-id/main.svelte
new file mode 100644
index 0000000000..973d6855a6
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-props-id/main.svelte
@@ -0,0 +1,6 @@
+
+
+{id}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/Child.svelte b/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/Child.svelte
new file mode 100644
index 0000000000..e93bbe3dc0
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/Child.svelte
@@ -0,0 +1,5 @@
+
+
+{value}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/_config.js b/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/_config.js
new file mode 100644
index 0000000000..eff988e0d6
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/_config.js
@@ -0,0 +1,11 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ mode: ['async-server', 'client', 'hydrate'],
+ ssrHtml: 'value
',
+ async test({ assert, target }) {
+ await tick();
+ assert.htmlEqual(target.innerHTML, 'value
');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/main.svelte
new file mode 100644
index 0000000000..1083882e1f
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-static-prop-after-await/main.svelte
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-style-after-await/_config.js b/packages/svelte/tests/runtime-runes/samples/async-style-after-await/_config.js
new file mode 100644
index 0000000000..472e7076c3
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-style-after-await/_config.js
@@ -0,0 +1,30 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ mode: ['async-server', 'client', 'hydrate'],
+ ssrHtml: `
+
+
+ width
+
+
+ width
+ `,
+
+ async test({ assert, target }) {
+ await tick();
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+
+
+ width
+
+
+ width
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-style-after-await/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-style-after-await/main.svelte
new file mode 100644
index 0000000000..7c1abeda2c
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-style-after-await/main.svelte
@@ -0,0 +1,25 @@
+
+
+
+
+
+{#if color}
+
+
+ width = '1px'}>width
+{/if}
+
+
+{#if color}
+
+
+ width = '1px'}>width
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/async-transition-blockers/_config.js b/packages/svelte/tests/runtime-runes/samples/async-transition-blockers/_config.js
new file mode 100644
index 0000000000..9d8aea3c17
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-transition-blockers/_config.js
@@ -0,0 +1,11 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ mode: ['client', 'hydrate'],
+ async test({ assert, logs }) {
+ await tick();
+
+ assert.deepEqual(logs, ['ready']);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-transition-blockers/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-transition-blockers/main.svelte
new file mode 100644
index 0000000000..ff5059e129
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-transition-blockers/main.svelte
@@ -0,0 +1,13 @@
+
+
+
diff --git a/packages/svelte/tests/runtime-runes/samples/each-effect-linking/_config.js b/packages/svelte/tests/runtime-runes/samples/each-effect-linking/_config.js
new file mode 100644
index 0000000000..d1c23527a9
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-effect-linking/_config.js
@@ -0,0 +1,32 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [step_back, step_forward, jump_back, jump_forward] = target.querySelectorAll('button');
+ const [div] = target.querySelectorAll('div');
+
+ step_back.click();
+ await tick();
+
+ step_forward.click();
+ await tick();
+
+ step_forward.click();
+ await tick();
+
+ // if the effects get linked in a circle, we will never get here
+ assert.htmlEqual(div.innerHTML, '5
6
7
');
+
+ jump_forward.click();
+ await tick();
+
+ step_forward.click();
+ await tick();
+
+ step_forward.click();
+ await tick();
+
+ assert.htmlEqual(div.innerHTML, '12
13
14
');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/each-effect-linking/main.svelte b/packages/svelte/tests/runtime-runes/samples/each-effect-linking/main.svelte
new file mode 100644
index 0000000000..ea33b11e22
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-effect-linking/main.svelte
@@ -0,0 +1,33 @@
+
+
+ {
+ items = items.map((n) => n - 1);
+}}>
+ step back
+
+
+ {
+ items = items.map((n) => n + 1);
+}}>
+ step forward
+
+
+ {
+ items = items.map((n) => n - 5);
+}}>
+ jump back
+
+
+ {
+ items = items.map((n) => n + 5);
+}}>
+ jump forward
+
+
+
+ {#each items as item (item)}
+
{item}
+ {/each}
+
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-10/_config.js b/packages/svelte/tests/runtime-runes/samples/each-updates-10/_config.js
new file mode 100644
index 0000000000..d5c9e36f1d
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-10/_config.js
@@ -0,0 +1,51 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [add, adjust] = target.querySelectorAll('button');
+
+ add.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ `add adjust
+ Keyed
+ Item: 1. Index: 0
+ Item: 0. Index: 1
+ Unkeyed
+ Item: 1. Index: 0
+ Item: 0. Index: 1
`
+ );
+
+ add.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ `add adjust
+ Keyed
+ Item: 2. Index: 0
+ Item: 1. Index: 1
+ Item: 0. Index: 2
+ Unkeyed
+ Item: 2. Index: 0
+ Item: 1. Index: 1
+ Item: 0. Index: 2
`
+ );
+
+ adjust.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ `add adjust
+ Keyed
+ Item: 2. Index: 0
+ Item: 1. Index: 1
+ Item: 10. Index: 2
+ Unkeyed
+ Item: 2. Index: 0
+ Item: 1. Index: 1
+ Item: 10. Index: 2
`
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-10/main.svelte b/packages/svelte/tests/runtime-runes/samples/each-updates-10/main.svelte
new file mode 100644
index 0000000000..20ce8279de
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-10/main.svelte
@@ -0,0 +1,16 @@
+
+
+ items.unshift({t:items.length})}>add
+ items.at(-1).t = 10}>adjust
+
+Keyed
+{#each items as item, index (item)}
+ Item: {item.t}. Index: {index}
+{/each}
+
+Unkeyed
+{#each items as item, index}
+ Item: {item.t}. Index: {index}
+{/each}
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-11/_config.js b/packages/svelte/tests/runtime-runes/samples/each-updates-11/_config.js
new file mode 100644
index 0000000000..a8782d2da8
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-11/_config.js
@@ -0,0 +1,32 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [add4, add5, modify3] = target.querySelectorAll('button');
+
+ add4.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ `add 4 add 5 modify 3
+ 1423`
+ );
+
+ add5.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ `add 4 add 5 modify 3
+ 14523`
+ );
+
+ modify3.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ `add 4 add 5 modify 3
+ 1452updated`
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-11/main.svelte b/packages/svelte/tests/runtime-runes/samples/each-updates-11/main.svelte
new file mode 100644
index 0000000000..1dcd265093
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-11/main.svelte
@@ -0,0 +1,11 @@
+
+
+ list = [list[0], { id: 4, text: '4' }, ...list.slice(1)]}>add 4
+ list = [list[0], list[1], { id: 5, text: '5' }, ...list.slice(2)]}>add 5
+ list.at(-1).text = 'updated'}>modify 3
+
+{#each list as item (item.id)}
+ {item.text}
+{/each}
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-12/_config.js b/packages/svelte/tests/runtime-runes/samples/each-updates-12/_config.js
new file mode 100644
index 0000000000..1fee8ceb67
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-12/_config.js
@@ -0,0 +1,33 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, raf }) {
+ const [clear, push] = target.querySelectorAll('button');
+
+ flushSync(() => clear.click());
+ flushSync(() => push.click());
+ raf.tick(500);
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ clear
+ push
+ 1
+ 2
+ `
+ );
+
+ raf.tick(1000);
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ clear
+ push
+ 1
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-12/main.svelte b/packages/svelte/tests/runtime-runes/samples/each-updates-12/main.svelte
new file mode 100644
index 0000000000..a65ebd37a8
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-12/main.svelte
@@ -0,0 +1,19 @@
+
+
+ items = []}>clear
+ items.push(items.length + 1)}>push
+
+{#each items as item}
+ {item}
+{/each}
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-13/_config.js b/packages/svelte/tests/runtime-runes/samples/each-updates-13/_config.js
new file mode 100644
index 0000000000..fdf02e486c
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-13/_config.js
@@ -0,0 +1,23 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, raf }) {
+ const [clear, reverse] = target.querySelectorAll('button');
+
+ flushSync(() => clear.click());
+ flushSync(() => reverse.click());
+ raf.tick(1);
+
+ assert.htmlEqual(
+ target.innerHTML,
+ `
+ clear
+ reverse
+ c
+ b
+ a
+ `
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/each-updates-13/main.svelte b/packages/svelte/tests/runtime-runes/samples/each-updates-13/main.svelte
new file mode 100644
index 0000000000..3de3382419
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/each-updates-13/main.svelte
@@ -0,0 +1,19 @@
+
+
+ items = []}>clear
+ items = ['c', 'b', 'a']}>reverse
+
+{#each items as item (item)}
+ {item}
+{/each}
diff --git a/packages/svelte/tests/runtime-runes/samples/flush-sync-inside-attachment/_config.js b/packages/svelte/tests/runtime-runes/samples/flush-sync-inside-attachment/_config.js
index ec8858b2c6..b34a90e901 100644
--- a/packages/svelte/tests/runtime-runes/samples/flush-sync-inside-attachment/_config.js
+++ b/packages/svelte/tests/runtime-runes/samples/flush-sync-inside-attachment/_config.js
@@ -1,12 +1,8 @@
-import { async_mode } from '../../../helpers';
import { test } from '../../test';
export default test({
- // In legacy mode this succeeds and logs 'hello'
- // In async mode this throws an error because flushSync is called inside an effect
async test({ assert, target, logs }) {
assert.htmlEqual(target.innerHTML, `show hello
`);
assert.deepEqual(logs, ['hello']);
- },
- runtime_error: async_mode ? 'flush_sync_in_effect' : undefined
+ }
});
diff --git a/packages/svelte/tests/runtime-runes/samples/fork-derived-value-immediate/_config.js b/packages/svelte/tests/runtime-runes/samples/fork-derived-value-immediate/_config.js
new file mode 100644
index 0000000000..4f7ff673d6
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/fork-derived-value-immediate/_config.js
@@ -0,0 +1,13 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ async test({ assert, target, logs }) {
+ const fork = target.querySelector('button');
+
+ fork?.click();
+ flushSync();
+ assert.deepEqual(logs, [1, 2]);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/fork-derived-value-immediate/main.svelte b/packages/svelte/tests/runtime-runes/samples/fork-derived-value-immediate/main.svelte
new file mode 100644
index 0000000000..2adb83b735
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/fork-derived-value-immediate/main.svelte
@@ -0,0 +1,15 @@
+
+
+ {
+ fork(() => {
+ state++;
+ console.log(count);
+ state++;
+ console.log(count);
+ });
+}}>fork
diff --git a/packages/svelte/tests/runtime-runes/samples/fork-derived-value/_config.js b/packages/svelte/tests/runtime-runes/samples/fork-derived-value/_config.js
new file mode 100644
index 0000000000..0635db7501
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/fork-derived-value/_config.js
@@ -0,0 +1,20 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ async test({ assert, target }) {
+ const [fork, update] = target.querySelectorAll('button');
+
+ flushSync(() => {
+ fork.click();
+ });
+ flushSync(() => {
+ update.click();
+ });
+
+ const p = target.querySelector('p');
+
+ assert.equal(p?.textContent, 'one');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/fork-derived-value/main.svelte b/packages/svelte/tests/runtime-runes/samples/fork-derived-value/main.svelte
new file mode 100644
index 0000000000..06e0f1f264
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/fork-derived-value/main.svelte
@@ -0,0 +1,20 @@
+
+
+ {
+ fork(() => {
+ state++;
+ });
+}}>fork
+
+ {
+ state++;
+}}>update
+
+{#if count === 1}
+ one
+{/if}
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-complex-nesting/_config.js b/packages/svelte/tests/runtime-runes/samples/hydratable-complex-nesting/_config.js
new file mode 100644
index 0000000000..0ac5333c4a
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-complex-nesting/_config.js
@@ -0,0 +1,24 @@
+import { tick } from 'svelte';
+import { ok, test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ skip_mode: ['server'],
+
+ server_props: { environment: 'server' },
+ ssrHtml: 'The current environment is: server
',
+
+ props: { environment: 'browser' },
+
+ async test({ assert, target, variant }) {
+ // make sure hydration has a chance to finish
+ await tick();
+ const p = target.querySelector('p');
+ ok(p);
+ if (variant === 'hydrate') {
+ assert.htmlEqual(p.outerHTML, 'The current environment is: server
');
+ } else {
+ assert.htmlEqual(p.outerHTML, 'The current environment is: browser
');
+ }
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-complex-nesting/main.svelte b/packages/svelte/tests/runtime-runes/samples/hydratable-complex-nesting/main.svelte
new file mode 100644
index 0000000000..cd603a6e6b
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-complex-nesting/main.svelte
@@ -0,0 +1,13 @@
+
+
+The current environment is: {await value.then(res => res.nested).then(res => res.environment)}
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-error-on-missing/_config.js b/packages/svelte/tests/runtime-runes/samples/hydratable-error-on-missing/_config.js
new file mode 100644
index 0000000000..3349cbcb66
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-error-on-missing/_config.js
@@ -0,0 +1,13 @@
+import { ok, test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ mode: ['async-server', 'hydrate'],
+
+ server_props: { environment: 'server' },
+ ssrHtml: 'The current environment is: server
',
+
+ props: { environment: 'browser' },
+
+ runtime_error: 'hydratable_missing_but_required'
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-error-on-missing/main.svelte b/packages/svelte/tests/runtime-runes/samples/hydratable-error-on-missing/main.svelte
new file mode 100644
index 0000000000..b7dfc0e7e2
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-error-on-missing/main.svelte
@@ -0,0 +1,14 @@
+
+
+The current environment is: {value}
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys-nesting-partial/_config.js b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys-nesting-partial/_config.js
new file mode 100644
index 0000000000..b1973a23c2
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys-nesting-partial/_config.js
@@ -0,0 +1,27 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ mode: ['async-server', 'hydrate'],
+
+ server_props: { environment: 'server' },
+ ssrHtml:
+ 'did you ever hear the tragedy of darth plagueis the wise?
Loading...
',
+
+ test_ssr({ assert, warnings }) {
+ assert.strictEqual(warnings.length, 1);
+ // for some strange reason we trim the error code off the beginning of warnings so I can't actually assert it
+ assert.include(warnings[0], 'A `hydratable` value with key `partially_used`');
+ },
+
+ async test({ assert, target }) {
+ // make sure the hydratable promise on the client has a chance to run and reject (it shouldn't, because the server data should be used)
+ await tick();
+
+ assert.htmlEqual(
+ target.innerHTML,
+ 'did you ever hear the tragedy of darth plagueis the wise?
no, sith daddy, please tell me
'
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys-nesting-partial/main.svelte b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys-nesting-partial/main.svelte
new file mode 100644
index 0000000000..75723848b1
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys-nesting-partial/main.svelte
@@ -0,0 +1,27 @@
+
+
+{await partially_used_hydratable.used}
+
+ {await partially_used_hydratable.unused}
+ {#snippet pending()}
+ Loading...
+ {/snippet}
+
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys/_config.js b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys/_config.js
new file mode 100644
index 0000000000..44978c8d58
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys/_config.js
@@ -0,0 +1,26 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ mode: ['async-server', 'hydrate'],
+
+ server_props: { environment: 'server' },
+ ssrHtml: 'Loading...
',
+
+ test_ssr({ assert, warnings }) {
+ assert.strictEqual(warnings.length, 1);
+ // for some strange reason we trim the error code off the beginning of warnings so I can't actually assert it
+ assert.include(warnings[0], 'A `hydratable` value with key `unused_key`');
+ },
+
+ async test({ assert, target }) {
+ // make sure the hydratable promise on the client has a chance to run and reject (it shouldn't, because the server data should be used)
+ await tick();
+
+ assert.htmlEqual(
+ target.innerHTML,
+ 'did you ever hear the tragedy of darth plagueis the wise?
'
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys/main.svelte b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys/main.svelte
new file mode 100644
index 0000000000..67848e7f6f
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable-unused-keys/main.svelte
@@ -0,0 +1,19 @@
+
+
+
+ {await unresolved_hydratable}
+ {#snippet pending()}
+ Loading...
+ {/snippet}
+
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable/_config.js b/packages/svelte/tests/runtime-runes/samples/hydratable/_config.js
new file mode 100644
index 0000000000..57904ef576
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable/_config.js
@@ -0,0 +1,21 @@
+import { ok, test } from '../../test';
+
+export default test({
+ skip_no_async: true,
+ skip_mode: ['server'],
+
+ server_props: { environment: 'server' },
+ ssrHtml: 'The current environment is: server
',
+
+ props: { environment: 'browser' },
+
+ async test({ assert, target, variant }) {
+ const p = target.querySelector('p');
+ ok(p);
+ if (variant === 'hydrate') {
+ assert.htmlEqual(p.outerHTML, 'The current environment is: server
');
+ } else {
+ assert.htmlEqual(p.outerHTML, 'The current environment is: browser
');
+ }
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/hydratable/main.svelte b/packages/svelte/tests/runtime-runes/samples/hydratable/main.svelte
new file mode 100644
index 0000000000..53b9c24f91
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/hydratable/main.svelte
@@ -0,0 +1,9 @@
+
+
+The current environment is: {value}
diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-derived-4/_config.js b/packages/svelte/tests/runtime-runes/samples/inspect-derived-4/_config.js
new file mode 100644
index 0000000000..3a3bca7221
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/inspect-derived-4/_config.js
@@ -0,0 +1,35 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+import { normalise_inspect_logs } from '../../../helpers';
+
+export default test({
+ compileOptions: {
+ dev: true
+ },
+
+ async test({ assert, target, logs }) {
+ const [b] = target.querySelectorAll('button');
+
+ b.click();
+ await tick();
+ assert.htmlEqual(target.innerHTML, `first unseen: 1 `);
+
+ b.click();
+ await tick();
+ assert.htmlEqual(target.innerHTML, `first unseen: 2 `);
+
+ b.click();
+ await tick();
+ assert.htmlEqual(target.innerHTML, `first unseen: `);
+
+ assert.deepEqual(normalise_inspect_logs(logs), [
+ [0, 1, 2],
+ [1, 2],
+ 'at SvelteSet.add',
+ [2],
+ 'at SvelteSet.add',
+ [],
+ 'at SvelteSet.add'
+ ]);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-derived-4/main.svelte b/packages/svelte/tests/runtime-runes/samples/inspect-derived-4/main.svelte
new file mode 100644
index 0000000000..eb4ea891db
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/inspect-derived-4/main.svelte
@@ -0,0 +1,14 @@
+
+
+ seenIds.add(currentId)}>
+ first unseen: {currentId}
+
diff --git a/packages/svelte/tests/runtime-runes/samples/transition-if/_config.js b/packages/svelte/tests/runtime-runes/samples/transition-if/_config.js
new file mode 100644
index 0000000000..7cabc36163
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/transition-if/_config.js
@@ -0,0 +1,28 @@
+import { flushSync } from '../../../../src/index-client.js';
+import { test } from '../../test';
+
+export default test({
+ test({ assert, raf, target }) {
+ const [x, y] = target.querySelectorAll('button');
+
+ // Set second part of condition to false first...
+ y.click();
+ flushSync();
+ raf.tick(50);
+ assert.htmlEqual(
+ target.innerHTML,
+ 'toggle x toggle y hello
'
+ );
+
+ // ...so that when both are toggled the block condition runs again
+ x.click();
+ flushSync();
+ assert.htmlEqual(
+ target.innerHTML,
+ 'toggle x toggle y hello
'
+ );
+
+ raf.tick(100);
+ assert.htmlEqual(target.innerHTML, 'toggle x toggle y ');
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/transition-if/main.svelte b/packages/svelte/tests/runtime-runes/samples/transition-if/main.svelte
new file mode 100644
index 0000000000..b60c6f22eb
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/transition-if/main.svelte
@@ -0,0 +1,24 @@
+
+
+ {
+ x = !x;
+}}>toggle x
+ {
+ y = !y;
+}}>toggle y
+
+{#if x && y}
+ hello
+{/if}
diff --git a/packages/svelte/tests/server-side-rendering/samples/async-context-throws-after-await/_config.js b/packages/svelte/tests/server-side-rendering/samples/async-context-throws-after-await/_config.js
index a1b52a2df9..2d1b6be570 100644
--- a/packages/svelte/tests/server-side-rendering/samples/async-context-throws-after-await/_config.js
+++ b/packages/svelte/tests/server-side-rendering/samples/async-context-throws-after-await/_config.js
@@ -1,6 +1,7 @@
import { test } from '../../test';
export default test({
+ skip: true, // TODO it appears there might be an actual bug here; the promise isn't ever actually awaited in spite of being awaited in the component
mode: ['async'],
error: 'lifecycle_outside_component'
});
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/_config.js b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/_config.js
new file mode 100644
index 0000000000..05de37a8bd
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/_config.js
@@ -0,0 +1,5 @@
+import { test } from '../../test';
+
+export default test({
+ mode: ['async']
+});
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/_expected.html b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/_expected.html
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/main.svelte b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/main.svelte
new file mode 100644
index 0000000000..87a31a8359
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-but-ok/main.svelte
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-complicated/_config.js b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-complicated/_config.js
new file mode 100644
index 0000000000..404260cc66
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-complicated/_config.js
@@ -0,0 +1,6 @@
+import { test } from '../../test';
+
+export default test({
+ mode: ['async'],
+ error: 'hydratable_clobbering'
+});
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-complicated/main.svelte b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-complicated/main.svelte
new file mode 100644
index 0000000000..358488c3ac
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering-complicated/main.svelte
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering/_config.js b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering/_config.js
new file mode 100644
index 0000000000..404260cc66
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering/_config.js
@@ -0,0 +1,6 @@
+import { test } from '../../test';
+
+export default test({
+ mode: ['async'],
+ error: 'hydratable_clobbering'
+});
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering/main.svelte b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering/main.svelte
new file mode 100644
index 0000000000..764c2c2415
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-clobbering/main.svelte
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-unserializable/_config.js b/packages/svelte/tests/server-side-rendering/samples/hydratable-unserializable/_config.js
new file mode 100644
index 0000000000..79b0c90fe6
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-unserializable/_config.js
@@ -0,0 +1,6 @@
+import { test } from '../../test';
+
+export default test({
+ mode: ['async'],
+ error: 'hydratable_serialization_failed'
+});
diff --git a/packages/svelte/tests/server-side-rendering/samples/hydratable-unserializable/main.svelte b/packages/svelte/tests/server-side-rendering/samples/hydratable-unserializable/main.svelte
new file mode 100644
index 0000000000..e104dec12b
--- /dev/null
+++ b/packages/svelte/tests/server-side-rendering/samples/hydratable-unserializable/main.svelte
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/server-side-rendering/samples/invalid-nested-svelte-element/_config.js b/packages/svelte/tests/server-side-rendering/samples/invalid-nested-svelte-element/_config.js
index 6325ea7d0e..12deae1e3e 100644
--- a/packages/svelte/tests/server-side-rendering/samples/invalid-nested-svelte-element/_config.js
+++ b/packages/svelte/tests/server-side-rendering/samples/invalid-nested-svelte-element/_config.js
@@ -1,9 +1,11 @@
import { test } from '../../test';
export default test({
+ skip: true, // TODO: This test actually works, but the error message is printed, not thrown, so we need to have a way to test for that
compileOptions: {
dev: true
},
+
error:
'node_invalid_placement_ssr: `` (packages/svelte/tests/server-side-rendering/samples/invalid-nested-svelte-element/main.svelte:2:1) cannot be a child of `
` (packages/svelte/tests/server-side-rendering/samples/invalid-nested-svelte-element/main.svelte:1:0)\n\nThis can cause content to shift around as the browser repairs the HTML, and will likely result in a `hydration_mismatch` warning.'
});
diff --git a/packages/svelte/tests/server-side-rendering/test.ts b/packages/svelte/tests/server-side-rendering/test.ts
index 7eede332a7..4b33685608 100644
--- a/packages/svelte/tests/server-side-rendering/test.ts
+++ b/packages/svelte/tests/server-side-rendering/test.ts
@@ -73,6 +73,7 @@ const { test, run } = suite_with_variants {
};
});
+ test('derived whose original parent effect has been destroyed keeps updating', () => {
+ return () => {
+ let count: Source;
+ let double: Derived;
+ const destroy = effect_root(() => {
+ render_effect(() => {
+ count = state(0);
+ double = derived(() => $.get(count) * 2);
+ });
+ });
+
+ flushSync();
+ assert.equal($.get(double!), 0);
+
+ destroy();
+ flushSync();
+
+ set(count!, 1);
+ flushSync();
+ assert.equal($.get(double!), 2);
+
+ set(count!, 2);
+ flushSync();
+ assert.equal($.get(double!), 4);
+ };
+ });
+
+ test('derived when connected should add new dependency to its reaction even when read outside effect', () => {
+ let count_a = state(0);
+ let count_b = state(0);
+ let which = state(true);
+ let double = derived(() => ($.get(which) ? $.get(count_a) * 2 : $.get(count_b) * 2));
+
+ render_effect(() => {
+ $.get(double);
+ });
+
+ return () => {
+ flushSync();
+ assert.equal($.get(double!), 0);
+
+ set(which, false);
+ $.get(double); // read before render effect has a chance to rerun
+ flushSync();
+ assert.equal($.get(double!), 0);
+
+ set(count_b, 1);
+ flushSync();
+ assert.equal($.get(double!), 2);
+ };
+ });
+
test('$effect.root inside deriveds stay alive independently', () => {
const log: any[] = [];
const c = state(0);
diff --git a/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/client/index.svelte.js
index e4df43c6c2..7d1fe4ec67 100644
--- a/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/client/index.svelte.js
@@ -25,20 +25,23 @@ export default function Async_in_derived($$anchor, $$props) {
{
var consequent = ($$anchor) => {
- $.async_body($$anchor, async ($$anchor) => {
- const yes1 = (await $.save($.async_derived(async () => (await $.save(1))())))();
- const yes2 = (await $.save($.async_derived(async () => foo((await $.save(1))()))))();
+ let yes1;
+ let yes2;
+ let no1;
+ let no2;
- const no1 = $.derived(() => (async () => {
- return await 1;
- })());
+ var promises = $.run([
+ async () => yes1 = (await $.save($.async_derived(async () => (await $.save(1))())))(),
+ async () => yes2 = (await $.save($.async_derived(async () => foo((await $.save(1))()))))(),
- const no2 = $.derived(() => (async () => {
+ () => no1 = $.derived(() => (async () => {
return await 1;
- })());
+ })()),
- if ($.aborted()) return;
- });
+ () => no2 = $.derived(() => (async () => {
+ return await 1;
+ })())
+ ]);
};
$.if(node, ($$render) => {
diff --git a/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/server/index.svelte.js
index bece6402c6..1fd184fa79 100644
--- a/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/async-in-derived/_expected/server/index.svelte.js
@@ -18,24 +18,38 @@ export default function Async_in_derived($$renderer, $$props) {
}
]);
- $$renderer.async_block([], async ($$renderer) => {
- if (true) {
- $$renderer.push('');
-
- const yes1 = (await $.save(1))();
- const yes2 = foo((await $.save(1))());
-
- const no1 = (async () => {
- return await 1;
- })();
-
- const no2 = (async () => {
- return await 1;
- })();
- } else {
- $$renderer.push('');
- }
- });
+ if (true) {
+ $$renderer.push('');
+
+ let yes1;
+ let yes2;
+ let no1;
+ let no2;
+
+ var promises = $$renderer.run([
+ async () => {
+ yes1 = (await $.save(1))();
+ },
+
+ async () => {
+ yes2 = foo((await $.save(1))());
+ },
+
+ () => {
+ no1 = (async () => {
+ return await 1;
+ })();
+ },
+
+ () => {
+ no2 = (async () => {
+ return await 1;
+ })();
+ }
+ ]);
+ } else {
+ $$renderer.push('');
+ }
$$renderer.push(``);
});
diff --git a/packages/svelte/tests/validator/samples/a11y-media-has-caption/input.svelte b/packages/svelte/tests/validator/samples/a11y-media-has-caption/input.svelte
index 2e479d97da..9d83ca8771 100644
--- a/packages/svelte/tests/validator/samples/a11y-media-has-caption/input.svelte
+++ b/packages/svelte/tests/validator/samples/a11y-media-has-caption/input.svelte
@@ -1,6 +1,7 @@
-
-
-
+
+
+
-
-
+
+
+
diff --git a/packages/svelte/tests/validator/samples/a11y-media-has-caption/warnings.json b/packages/svelte/tests/validator/samples/a11y-media-has-caption/warnings.json
index 2a7de1f730..c596f23806 100644
--- a/packages/svelte/tests/validator/samples/a11y-media-has-caption/warnings.json
+++ b/packages/svelte/tests/validator/samples/a11y-media-has-caption/warnings.json
@@ -2,7 +2,7 @@
{
"code": "a11y_media_has_caption",
"end": {
- "column": 15,
+ "column": 23,
"line": 2
},
"message": "`` elements must have a ``",
@@ -14,7 +14,7 @@
{
"code": "a11y_media_has_caption",
"end": {
- "column": 24,
+ "column": 32,
"line": 3
},
"message": "`` elements must have a ``",
@@ -26,7 +26,7 @@
{
"code": "a11y_media_has_caption",
"end": {
- "column": 35,
+ "column": 43,
"line": 6
},
"message": "`` elements must have a ``",
diff --git a/packages/svelte/tests/validator/samples/static-state-reference/input.svelte b/packages/svelte/tests/validator/samples/static-state-reference/input.svelte
index 577527ee60..fdcf343626 100644
--- a/packages/svelte/tests/validator/samples/static-state-reference/input.svelte
+++ b/packages/svelte/tests/validator/samples/static-state-reference/input.svelte
@@ -8,11 +8,22 @@
console.log(count);
console.log(doubled);
+ let {
+ prop,
+ other_prop = prop
+ } = $props();
+ let prop_state = $state(prop);
+ let prop_derived = $derived(prop);
+ console.log(prop);
+ console.log(prop_derived);
+
// writes are okay
count++;
count = 1;
obj.a++;
obj.a = 1;
+ prop_state = 1;
+ prop_derived = 1;
// `count` here is correctly identified as a non-reference
let typed: { count: number } | null = null;
diff --git a/packages/svelte/tests/validator/samples/static-state-reference/warnings.json b/packages/svelte/tests/validator/samples/static-state-reference/warnings.json
index a118d5e4a0..76e752573e 100644
--- a/packages/svelte/tests/validator/samples/static-state-reference/warnings.json
+++ b/packages/svelte/tests/validator/samples/static-state-reference/warnings.json
@@ -34,5 +34,41 @@
"column": 20,
"line": 9
}
+ },
+ {
+ "code": "state_referenced_locally",
+ "end": {
+ "column": 29,
+ "line": 15
+ },
+ "message": "This reference only captures the initial value of `prop`. Did you mean to reference it inside a closure instead?",
+ "start": {
+ "column": 25,
+ "line": 15
+ }
+ },
+ {
+ "code": "state_referenced_locally",
+ "end": {
+ "column": 17,
+ "line": 17
+ },
+ "message": "This reference only captures the initial value of `prop`. Did you mean to reference it inside a closure instead?",
+ "start": {
+ "column": 13,
+ "line": 17
+ }
+ },
+ {
+ "code": "state_referenced_locally",
+ "end": {
+ "column": 25,
+ "line": 18
+ },
+ "message": "This reference only captures the initial value of `prop_derived`. Did you mean to reference it inside a closure instead?",
+ "start": {
+ "column": 13,
+ "line": 18
+ }
}
]
diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts
index bdbad6008b..5b97fd86a2 100644
--- a/packages/svelte/types/index.d.ts
+++ b/packages/svelte/types/index.d.ts
@@ -1,3 +1,5 @@
+///
+
declare module 'svelte' {
/**
* @deprecated In Svelte 4, components are classes. In Svelte 5, they are functions.
@@ -450,6 +452,7 @@ declare module 'svelte' {
* @deprecated Use [`$effect`](https://svelte.dev/docs/svelte/$effect) instead
* */
export function afterUpdate(fn: () => void): void;
+ export function hydratable(key: string, fn: () => T): T;
/**
* Create a snippet programmatically
* */
@@ -841,8 +844,9 @@ declare module 'svelte/attachments' {
declare module 'svelte/compiler' {
import type { SourceMap } from 'magic-string';
- import type { ArrayExpression, ArrowFunctionExpression, VariableDeclaration, VariableDeclarator, Expression, Identifier, MemberExpression, Node, ObjectExpression, Pattern, Program, ChainExpression, SimpleCallExpression, SequenceExpression } from 'estree';
+ import type { ArrayExpression, ArrowFunctionExpression, VariableDeclaration, VariableDeclarator, Expression, Identifier, MemberExpression, Node, ObjectExpression, Pattern, Program, ChainExpression, SimpleCallExpression, SequenceExpression, SourceLocation } from 'estree';
import type { Location } from 'locate-character';
+ import type { default as ts } from 'esrap/languages/ts';
/**
* `compile` converts your `.svelte` source code into a JavaScript module that exports a component
*
@@ -1300,7 +1304,7 @@ declare module 'svelte/compiler' {
}
/** An `animate:` directive */
- export interface AnimateDirective extends BaseNode {
+ export interface AnimateDirective extends BaseAttribute {
type: 'AnimateDirective';
/** The 'x' in `animate:x` */
name: string;
@@ -1309,7 +1313,7 @@ declare module 'svelte/compiler' {
}
/** A `bind:` directive */
- export interface BindDirective extends BaseNode {
+ export interface BindDirective extends BaseAttribute {
type: 'BindDirective';
/** The 'x' in `bind:x` */
name: string;
@@ -1318,7 +1322,7 @@ declare module 'svelte/compiler' {
}
/** A `class:` directive */
- export interface ClassDirective extends BaseNode {
+ export interface ClassDirective extends BaseAttribute {
type: 'ClassDirective';
/** The 'x' in `class:x` */
name: 'class';
@@ -1327,7 +1331,7 @@ declare module 'svelte/compiler' {
}
/** A `let:` directive */
- export interface LetDirective extends BaseNode {
+ export interface LetDirective extends BaseAttribute {
type: 'LetDirective';
/** The 'x' in `let:x` */
name: string;
@@ -1336,7 +1340,7 @@ declare module 'svelte/compiler' {
}
/** An `on:` directive */
- export interface OnDirective extends BaseNode {
+ export interface OnDirective extends BaseAttribute {
type: 'OnDirective';
/** The 'x' in `on:x` */
name: string;
@@ -1356,7 +1360,7 @@ declare module 'svelte/compiler' {
}
/** A `style:` directive */
- export interface StyleDirective extends BaseNode {
+ export interface StyleDirective extends BaseAttribute {
type: 'StyleDirective';
/** The 'x' in `style:x` */
name: string;
@@ -1367,7 +1371,7 @@ declare module 'svelte/compiler' {
// TODO have separate in/out/transition directives
/** A `transition:`, `in:` or `out:` directive */
- export interface TransitionDirective extends BaseNode {
+ export interface TransitionDirective extends BaseAttribute {
type: 'TransitionDirective';
/** The 'x' in `transition:x` */
name: string;
@@ -1381,7 +1385,7 @@ declare module 'svelte/compiler' {
}
/** A `use:` directive */
- export interface UseDirective extends BaseNode {
+ export interface UseDirective extends BaseAttribute {
type: 'UseDirective';
/** The 'x' in `use:x` */
name: string;
@@ -1389,8 +1393,9 @@ declare module 'svelte/compiler' {
expression: null | Expression;
}
- interface BaseElement extends BaseNode {
+ export interface BaseElement extends BaseNode {
name: string;
+ name_loc: SourceLocation;
attributes: Array;
fragment: Fragment;
}
@@ -1515,9 +1520,13 @@ declare module 'svelte/compiler' {
body: Fragment;
}
- export interface Attribute extends BaseNode {
- type: 'Attribute';
+ export interface BaseAttribute extends BaseNode {
name: string;
+ name_loc: SourceLocation | null;
+ }
+
+ export interface Attribute extends BaseAttribute {
+ type: 'Attribute';
/**
* Quoted/string values are represented by an array, even if they contain a single expression like `"{x}"`
*/
@@ -1615,6 +1624,18 @@ declare module 'svelte/compiler' {
export function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {
filename?: string;
} | undefined): Promise;
+ /**
+ * `print` converts a Svelte AST node back into Svelte source code.
+ * It is primarily intended for tools that parse and transform components using the compiler’s modern AST representation.
+ *
+ * `print(ast)` requires an AST node produced by parse with modern: true, or any sub-node within that modern AST.
+ * The result contains the generated source and a corresponding source map.
+ * The output is valid Svelte, but formatting details such as whitespace or quoting may differ from the original.
+ * */
+ export function print(ast: AST.SvelteNode, options?: Options | undefined): {
+ code: string;
+ map: any;
+ };
/**
* The current version, as set in package.json.
* */
@@ -1798,6 +1819,10 @@ declare module 'svelte/compiler' {
| SimpleSelector
| Declaration;
}
+ type Options = {
+ getLeadingComments?: NonNullable[0]>['getLeadingComments'] | undefined;
+ getTrailingComments?: NonNullable[0]>['getTrailingComments'] | undefined;
+ };
export {};
}
diff --git a/playgrounds/sandbox/run.js b/playgrounds/sandbox/run.js
index 7ff9f7c4cd..35bffb67a2 100644
--- a/playgrounds/sandbox/run.js
+++ b/playgrounds/sandbox/run.js
@@ -3,7 +3,7 @@ import * as path from 'node:path';
import { fileURLToPath } from 'node:url';
import { parseArgs } from 'node:util';
import { globSync } from 'tinyglobby';
-import { compile, compileModule, parse, migrate } from 'svelte/compiler';
+import { compile, compileModule, parse, print, migrate } from 'svelte/compiler';
// toggle these to change what gets written to sandbox/output
const AST = false;
@@ -11,6 +11,7 @@ const MIGRATE = false;
const FROM_HTML = true;
const FROM_TREE = false;
const DEV = false;
+const PRINT = false;
const argv = parseArgs({ options: { runes: { type: 'boolean' } }, args: process.argv.slice(2) });
@@ -71,6 +72,11 @@ for (const generate of /** @type {const} */ (['client', 'server'])) {
'\t'
)
);
+
+ if (PRINT) {
+ const printed = print(ast);
+ write(`${cwd}/output/printed/${file}`, printed.code);
+ }
}
if (MIGRATE) {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0afaef0ceb..05298fe8e3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,11 +9,11 @@ importers:
.:
devDependencies:
'@changesets/cli':
- specifier: ^2.29.7
- version: 2.29.7(@types/node@20.19.17)
+ specifier: ^2.29.8
+ version: 2.29.8(@types/node@20.19.17)
'@sveltejs/eslint-config':
specifier: ^8.3.3
- version: 8.3.3(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.16.1(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-svelte@3.11.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.26.0(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)
+ version: 8.3.3(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.16.1(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-svelte@3.11.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.48.1(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)
'@svitejs/changesets-changelog-github-compact':
specifier: ^1.1.0
version: 1.1.0
@@ -54,8 +54,8 @@ importers:
specifier: ^5.5.4
version: 5.5.4
typescript-eslint:
- specifier: ^8.24.0
- version: 8.26.0(eslint@9.9.1)(typescript@5.5.4)
+ specifier: ^8.48.1
+ version: 8.48.1(eslint@9.9.1)(typescript@5.5.4)
v8-natives:
specifier: ^1.2.5
version: 1.2.5
@@ -89,12 +89,15 @@ importers:
clsx:
specifier: ^2.1.1
version: 2.1.1
+ devalue:
+ specifier: ^5.5.0
+ version: 5.5.0
esm-env:
specifier: ^1.2.1
version: 1.2.1
esrap:
- specifier: ^2.1.0
- version: 2.1.0
+ specifier: ^2.2.1
+ version: 2.2.1
is-reference:
specifier: ^3.0.3
version: 3.0.3
@@ -116,16 +119,16 @@ importers:
version: 1.46.1
'@rollup/plugin-commonjs':
specifier: ^28.0.1
- version: 28.0.1(rollup@4.50.1)
+ version: 28.0.1(rollup@4.52.5)
'@rollup/plugin-node-resolve':
specifier: ^15.3.0
- version: 15.3.0(rollup@4.50.1)
+ version: 15.3.0(rollup@4.52.5)
'@rollup/plugin-terser':
specifier: ^0.4.4
- version: 0.4.4(rollup@4.50.1)
+ version: 0.4.4(rollup@4.52.5)
'@rollup/plugin-virtual':
specifier: ^3.0.2
- version: 3.0.2(rollup@4.50.1)
+ version: 3.0.2(rollup@4.52.5)
'@types/aria-query':
specifier: ^5.0.4
version: 5.0.4
@@ -137,10 +140,10 @@ importers:
version: 0.5.5(typescript@5.5.4)
esbuild:
specifier: ^0.25.10
- version: 0.25.10
+ version: 0.25.11
rollup:
specifier: ^4.22.4
- version: 4.50.1
+ version: 4.52.5
source-map:
specifier: ^0.7.4
version: 0.7.4
@@ -204,8 +207,8 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/runtime@7.23.8':
- resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==}
+ '@babel/runtime@7.28.4':
+ resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
'@babel/types@7.25.4':
@@ -215,8 +218,8 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@changesets/apply-release-plan@7.0.13':
- resolution: {integrity: sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg==}
+ '@changesets/apply-release-plan@7.0.14':
+ resolution: {integrity: sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA==}
'@changesets/assemble-release-plan@6.0.9':
resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==}
@@ -224,12 +227,12 @@ packages:
'@changesets/changelog-git@0.2.1':
resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==}
- '@changesets/cli@2.29.7':
- resolution: {integrity: sha512-R7RqWoaksyyKXbKXBTbT4REdy22yH81mcFK6sWtqSanxUCbUi9Uf+6aqxZtDQouIqPdem2W56CdxXgsxdq7FLQ==}
+ '@changesets/cli@2.29.8':
+ resolution: {integrity: sha512-1weuGZpP63YWUYjay/E84qqwcnt5yJMM0tep10Up7Q5cS/DGe2IZ0Uj3HNMxGhCINZuR7aO9WBMdKnPit5ZDPA==}
hasBin: true
- '@changesets/config@3.1.1':
- resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==}
+ '@changesets/config@3.1.2':
+ resolution: {integrity: sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog==}
'@changesets/errors@0.2.0':
resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
@@ -240,8 +243,8 @@ packages:
'@changesets/get-github-info@0.5.2':
resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==}
- '@changesets/get-release-plan@4.0.13':
- resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==}
+ '@changesets/get-release-plan@4.0.14':
+ resolution: {integrity: sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g==}
'@changesets/get-version-range-type@0.4.0':
resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
@@ -252,14 +255,14 @@ packages:
'@changesets/logger@0.1.1':
resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==}
- '@changesets/parse@0.4.1':
- resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==}
+ '@changesets/parse@0.4.2':
+ resolution: {integrity: sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA==}
'@changesets/pre@2.0.2':
resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==}
- '@changesets/read@0.6.5':
- resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==}
+ '@changesets/read@0.6.6':
+ resolution: {integrity: sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg==}
'@changesets/should-skip-package@0.1.2':
resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==}
@@ -279,12 +282,6 @@ packages:
cpu: [ppc64]
os: [aix]
- '@esbuild/aix-ppc64@0.25.10':
- resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
'@esbuild/aix-ppc64@0.25.11':
resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
engines: {node: '>=18'}
@@ -297,12 +294,6 @@ packages:
cpu: [arm64]
os: [android]
- '@esbuild/android-arm64@0.25.10':
- resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
'@esbuild/android-arm64@0.25.11':
resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
engines: {node: '>=18'}
@@ -315,12 +306,6 @@ packages:
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.25.10':
- resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
'@esbuild/android-arm@0.25.11':
resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
engines: {node: '>=18'}
@@ -333,12 +318,6 @@ packages:
cpu: [x64]
os: [android]
- '@esbuild/android-x64@0.25.10':
- resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
'@esbuild/android-x64@0.25.11':
resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
engines: {node: '>=18'}
@@ -351,12 +330,6 @@ packages:
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.25.10':
- resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
'@esbuild/darwin-arm64@0.25.11':
resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
engines: {node: '>=18'}
@@ -369,12 +342,6 @@ packages:
cpu: [x64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.10':
- resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
'@esbuild/darwin-x64@0.25.11':
resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
engines: {node: '>=18'}
@@ -387,12 +354,6 @@ packages:
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-arm64@0.25.10':
- resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
'@esbuild/freebsd-arm64@0.25.11':
resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
engines: {node: '>=18'}
@@ -405,12 +366,6 @@ packages:
cpu: [x64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.10':
- resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
'@esbuild/freebsd-x64@0.25.11':
resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
engines: {node: '>=18'}
@@ -423,12 +378,6 @@ packages:
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.25.10':
- resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
'@esbuild/linux-arm64@0.25.11':
resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
engines: {node: '>=18'}
@@ -441,12 +390,6 @@ packages:
cpu: [arm]
os: [linux]
- '@esbuild/linux-arm@0.25.10':
- resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
'@esbuild/linux-arm@0.25.11':
resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
engines: {node: '>=18'}
@@ -459,12 +402,6 @@ packages:
cpu: [ia32]
os: [linux]
- '@esbuild/linux-ia32@0.25.10':
- resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
'@esbuild/linux-ia32@0.25.11':
resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
engines: {node: '>=18'}
@@ -477,12 +414,6 @@ packages:
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.25.10':
- resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
'@esbuild/linux-loong64@0.25.11':
resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
engines: {node: '>=18'}
@@ -495,12 +426,6 @@ packages:
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-mips64el@0.25.10':
- resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
'@esbuild/linux-mips64el@0.25.11':
resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
engines: {node: '>=18'}
@@ -513,12 +438,6 @@ packages:
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.25.10':
- resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
'@esbuild/linux-ppc64@0.25.11':
resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
engines: {node: '>=18'}
@@ -531,12 +450,6 @@ packages:
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.10':
- resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
'@esbuild/linux-riscv64@0.25.11':
resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
engines: {node: '>=18'}
@@ -549,12 +462,6 @@ packages:
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.25.10':
- resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
'@esbuild/linux-s390x@0.25.11':
resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
engines: {node: '>=18'}
@@ -567,24 +474,12 @@ packages:
cpu: [x64]
os: [linux]
- '@esbuild/linux-x64@0.25.10':
- resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
'@esbuild/linux-x64@0.25.11':
resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.10':
- resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
'@esbuild/netbsd-arm64@0.25.11':
resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
engines: {node: '>=18'}
@@ -597,24 +492,12 @@ packages:
cpu: [x64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.10':
- resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
'@esbuild/netbsd-x64@0.25.11':
resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.10':
- resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
'@esbuild/openbsd-arm64@0.25.11':
resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
engines: {node: '>=18'}
@@ -627,24 +510,12 @@ packages:
cpu: [x64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.10':
- resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
'@esbuild/openbsd-x64@0.25.11':
resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openharmony-arm64@0.25.10':
- resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openharmony]
-
'@esbuild/openharmony-arm64@0.25.11':
resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
engines: {node: '>=18'}
@@ -657,12 +528,6 @@ packages:
cpu: [x64]
os: [sunos]
- '@esbuild/sunos-x64@0.25.10':
- resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
'@esbuild/sunos-x64@0.25.11':
resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
engines: {node: '>=18'}
@@ -675,12 +540,6 @@ packages:
cpu: [arm64]
os: [win32]
- '@esbuild/win32-arm64@0.25.10':
- resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
'@esbuild/win32-arm64@0.25.11':
resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
engines: {node: '>=18'}
@@ -693,12 +552,6 @@ packages:
cpu: [ia32]
os: [win32]
- '@esbuild/win32-ia32@0.25.10':
- resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
'@esbuild/win32-ia32@0.25.11':
resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
engines: {node: '>=18'}
@@ -711,12 +564,6 @@ packages:
cpu: [x64]
os: [win32]
- '@esbuild/win32-x64@0.25.10':
- resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
'@esbuild/win32-x64@0.25.11':
resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
engines: {node: '>=18'}
@@ -729,10 +576,6 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- '@eslint-community/regexpp@4.12.1':
- resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
'@eslint-community/regexpp@4.12.2':
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
@@ -877,101 +720,51 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.50.1':
- resolution: {integrity: sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==}
- cpu: [arm]
- os: [android]
-
'@rollup/rollup-android-arm-eabi@4.52.5':
resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.50.1':
- resolution: {integrity: sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==}
- cpu: [arm64]
- os: [android]
-
'@rollup/rollup-android-arm64@4.52.5':
resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.50.1':
- resolution: {integrity: sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==}
- cpu: [arm64]
- os: [darwin]
-
'@rollup/rollup-darwin-arm64@4.52.5':
resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.50.1':
- resolution: {integrity: sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==}
- cpu: [x64]
- os: [darwin]
-
'@rollup/rollup-darwin-x64@4.52.5':
resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.50.1':
- resolution: {integrity: sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==}
- cpu: [arm64]
- os: [freebsd]
-
'@rollup/rollup-freebsd-arm64@4.52.5':
resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.50.1':
- resolution: {integrity: sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==}
- cpu: [x64]
- os: [freebsd]
-
'@rollup/rollup-freebsd-x64@4.52.5':
resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.50.1':
- resolution: {integrity: sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==}
- cpu: [arm]
- os: [linux]
-
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.50.1':
- resolution: {integrity: sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==}
- cpu: [arm]
- os: [linux]
-
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.50.1':
- resolution: {integrity: sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==}
- cpu: [arm64]
- os: [linux]
-
'@rollup/rollup-linux-arm64-gnu@4.52.5':
resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.50.1':
- resolution: {integrity: sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==}
- cpu: [arm64]
- os: [linux]
-
'@rollup/rollup-linux-arm64-musl@4.52.5':
resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
cpu: [arm64]
@@ -982,96 +775,46 @@ packages:
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-loongarch64-gnu@4.50.1':
- resolution: {integrity: sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-gnu@4.50.1':
- resolution: {integrity: sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==}
- cpu: [ppc64]
- os: [linux]
-
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.50.1':
- resolution: {integrity: sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==}
- cpu: [riscv64]
- os: [linux]
-
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.50.1':
- resolution: {integrity: sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==}
- cpu: [riscv64]
- os: [linux]
-
'@rollup/rollup-linux-riscv64-musl@4.52.5':
resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.50.1':
- resolution: {integrity: sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==}
- cpu: [s390x]
- os: [linux]
-
'@rollup/rollup-linux-s390x-gnu@4.52.5':
resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.50.1':
- resolution: {integrity: sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==}
- cpu: [x64]
- os: [linux]
-
'@rollup/rollup-linux-x64-gnu@4.52.5':
resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.50.1':
- resolution: {integrity: sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==}
- cpu: [x64]
- os: [linux]
-
'@rollup/rollup-linux-x64-musl@4.52.5':
resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-openharmony-arm64@4.50.1':
- resolution: {integrity: sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==}
- cpu: [arm64]
- os: [openharmony]
-
'@rollup/rollup-openharmony-arm64@4.52.5':
resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.50.1':
- resolution: {integrity: sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==}
- cpu: [arm64]
- os: [win32]
-
'@rollup/rollup-win32-arm64-msvc@4.52.5':
resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.50.1':
- resolution: {integrity: sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==}
- cpu: [ia32]
- os: [win32]
-
'@rollup/rollup-win32-ia32-msvc@4.52.5':
resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
cpu: [ia32]
@@ -1082,11 +825,6 @@ packages:
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.50.1':
- resolution: {integrity: sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==}
- cpu: [x64]
- os: [win32]
-
'@rollup/rollup-win32-x64-msvc@4.52.5':
resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
cpu: [x64]
@@ -1160,88 +898,63 @@ packages:
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
- '@typescript-eslint/eslint-plugin@8.26.0':
- resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==}
+ '@typescript-eslint/eslint-plugin@8.48.1':
+ resolution: {integrity: sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ '@typescript-eslint/parser': ^8.48.1
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.9.0'
+ typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.26.0':
- resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==}
+ '@typescript-eslint/parser@8.48.1':
+ resolution: {integrity: sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.9.0'
+ typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.46.2':
- resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==}
+ '@typescript-eslint/project-service@8.48.1':
+ resolution: {integrity: sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.26.0':
- resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/scope-manager@8.46.2':
- resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==}
+ '@typescript-eslint/scope-manager@8.48.1':
+ resolution: {integrity: sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.46.2':
- resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==}
+ '@typescript-eslint/tsconfig-utils@8.48.1':
+ resolution: {integrity: sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.26.0':
- resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==}
+ '@typescript-eslint/type-utils@8.48.1':
+ resolution: {integrity: sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.9.0'
-
- '@typescript-eslint/types@8.26.0':
- resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/types@8.46.2':
- resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/typescript-estree@8.26.0':
- resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==}
+ '@typescript-eslint/types@8.48.1':
+ resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/typescript-estree@8.46.2':
- resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==}
+ '@typescript-eslint/typescript-estree@8.48.1':
+ resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.26.0':
- resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.9.0'
-
- '@typescript-eslint/utils@8.46.2':
- resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==}
+ '@typescript-eslint/utils@8.48.1':
+ resolution: {integrity: sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@8.26.0':
- resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/visitor-keys@8.46.2':
- resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==}
+ '@typescript-eslint/visitor-keys@8.48.1':
+ resolution: {integrity: sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vitest/coverage-v8@2.1.9':
@@ -1366,11 +1079,11 @@ packages:
birpc@2.5.0:
resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==}
- brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
- brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
@@ -1458,15 +1171,6 @@ packages:
dataloader@1.4.0:
resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==}
- debug@4.4.1:
- resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
@@ -1515,6 +1219,9 @@ packages:
engines: {node: '>=0.10'}
hasBin: true
+ devalue@5.5.0:
+ resolution: {integrity: sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==}
+
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -1561,11 +1268,6 @@ packages:
engines: {node: '>=12'}
hasBin: true
- esbuild@0.25.10:
- resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==}
- engines: {node: '>=18'}
- hasBin: true
-
esbuild@0.25.11:
resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==}
engines: {node: '>=18'}
@@ -1654,8 +1356,8 @@ packages:
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
engines: {node: '>=0.10'}
- esrap@2.1.0:
- resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==}
+ esrap@2.2.1:
+ resolution: {integrity: sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==}
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
@@ -1770,8 +1472,8 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
- glob@10.4.5:
- resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ glob@10.5.0:
+ resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
hasBin: true
globals@14.0.0:
@@ -1835,6 +1537,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
immutable@4.3.7:
resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==}
@@ -1929,12 +1635,12 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- js-yaml@3.14.1:
- resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ js-yaml@3.14.2:
+ resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
hasBin: true
- js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
hasBin: true
jsdom@25.0.1:
@@ -2174,8 +1880,8 @@ packages:
package-json-from-dist@1.0.0:
resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
- package-manager-detector@0.2.0:
- resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==}
+ package-manager-detector@0.2.11:
+ resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==}
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
@@ -2301,6 +2007,9 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ quansync@0.2.11:
+ resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
+
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -2315,9 +2024,6 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
- regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
-
regexparam@3.0.0:
resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==}
engines: {node: '>=8'}
@@ -2341,11 +2047,6 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rollup@4.50.1:
- resolution: {integrity: sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
rollup@4.52.5:
resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -2380,11 +2081,6 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
- semver@7.7.2:
- resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
- engines: {node: '>=10'}
- hasBin: true
-
semver@7.7.3:
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
engines: {node: '>=10'}
@@ -2587,12 +2283,12 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
- typescript-eslint@8.26.0:
- resolution: {integrity: sha512-PtVz9nAnuNJuAVeUFvwztjuUgSnJInODAUx47VDwWPXzd5vismPOtPtt83tzNXyOjVQbPRp786D6WFW/M2koIA==}
+ typescript-eslint@8.48.1:
+ resolution: {integrity: sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.9.0'
+ typescript: '>=4.8.4 <6.0.0'
typescript@5.5.4:
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
@@ -2856,9 +2552,7 @@ snapshots:
dependencies:
'@babel/types': 7.25.4
- '@babel/runtime@7.23.8':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.28.4': {}
'@babel/types@7.25.4':
dependencies:
@@ -2868,9 +2562,9 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@changesets/apply-release-plan@7.0.13':
+ '@changesets/apply-release-plan@7.0.14':
dependencies:
- '@changesets/config': 3.1.1
+ '@changesets/config': 3.1.2
'@changesets/get-version-range-type': 0.4.0
'@changesets/git': 3.0.4
'@changesets/should-skip-package': 0.1.2
@@ -2882,7 +2576,7 @@ snapshots:
outdent: 0.5.0
prettier: 2.8.8
resolve-from: 5.0.0
- semver: 7.7.2
+ semver: 7.7.3
'@changesets/assemble-release-plan@6.0.9':
dependencies:
@@ -2891,25 +2585,25 @@ snapshots:
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
- semver: 7.7.2
+ semver: 7.7.3
'@changesets/changelog-git@0.2.1':
dependencies:
'@changesets/types': 6.1.0
- '@changesets/cli@2.29.7(@types/node@20.19.17)':
+ '@changesets/cli@2.29.8(@types/node@20.19.17)':
dependencies:
- '@changesets/apply-release-plan': 7.0.13
+ '@changesets/apply-release-plan': 7.0.14
'@changesets/assemble-release-plan': 6.0.9
'@changesets/changelog-git': 0.2.1
- '@changesets/config': 3.1.1
+ '@changesets/config': 3.1.2
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.3
- '@changesets/get-release-plan': 4.0.13
+ '@changesets/get-release-plan': 4.0.14
'@changesets/git': 3.0.4
'@changesets/logger': 0.1.1
'@changesets/pre': 2.0.2
- '@changesets/read': 0.6.5
+ '@changesets/read': 0.6.6
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@changesets/write': 0.4.0
@@ -2921,16 +2615,16 @@ snapshots:
fs-extra: 7.0.1
mri: 1.2.0
p-limit: 2.3.0
- package-manager-detector: 0.2.0
+ package-manager-detector: 0.2.11
picocolors: 1.1.1
resolve-from: 5.0.0
- semver: 7.7.2
+ semver: 7.7.3
spawndamnit: 3.0.1
term-size: 2.2.1
transitivePeerDependencies:
- '@types/node'
- '@changesets/config@3.1.1':
+ '@changesets/config@3.1.2':
dependencies:
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.3
@@ -2949,7 +2643,7 @@ snapshots:
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
picocolors: 1.1.1
- semver: 7.7.2
+ semver: 7.7.3
'@changesets/get-github-info@0.5.2':
dependencies:
@@ -2958,12 +2652,12 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@changesets/get-release-plan@4.0.13':
+ '@changesets/get-release-plan@4.0.14':
dependencies:
'@changesets/assemble-release-plan': 6.0.9
- '@changesets/config': 3.1.1
+ '@changesets/config': 3.1.2
'@changesets/pre': 2.0.2
- '@changesets/read': 0.6.5
+ '@changesets/read': 0.6.6
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
@@ -2981,10 +2675,10 @@ snapshots:
dependencies:
picocolors: 1.1.1
- '@changesets/parse@0.4.1':
+ '@changesets/parse@0.4.2':
dependencies:
'@changesets/types': 6.1.0
- js-yaml: 3.14.1
+ js-yaml: 4.1.1
'@changesets/pre@2.0.2':
dependencies:
@@ -2993,11 +2687,11 @@ snapshots:
'@manypkg/get-packages': 1.1.3
fs-extra: 7.0.1
- '@changesets/read@0.6.5':
+ '@changesets/read@0.6.6':
dependencies:
'@changesets/git': 3.0.4
'@changesets/logger': 0.1.1
- '@changesets/parse': 0.4.1
+ '@changesets/parse': 0.4.2
'@changesets/types': 6.1.0
fs-extra: 7.0.1
p-filter: 2.1.0
@@ -3022,225 +2716,147 @@ snapshots:
'@esbuild/aix-ppc64@0.21.5':
optional: true
- '@esbuild/aix-ppc64@0.25.10':
- optional: true
-
'@esbuild/aix-ppc64@0.25.11':
optional: true
'@esbuild/android-arm64@0.21.5':
optional: true
- '@esbuild/android-arm64@0.25.10':
- optional: true
-
'@esbuild/android-arm64@0.25.11':
optional: true
'@esbuild/android-arm@0.21.5':
optional: true
- '@esbuild/android-arm@0.25.10':
- optional: true
-
'@esbuild/android-arm@0.25.11':
optional: true
'@esbuild/android-x64@0.21.5':
optional: true
- '@esbuild/android-x64@0.25.10':
- optional: true
-
'@esbuild/android-x64@0.25.11':
optional: true
'@esbuild/darwin-arm64@0.21.5':
optional: true
- '@esbuild/darwin-arm64@0.25.10':
- optional: true
-
'@esbuild/darwin-arm64@0.25.11':
optional: true
'@esbuild/darwin-x64@0.21.5':
optional: true
- '@esbuild/darwin-x64@0.25.10':
- optional: true
-
'@esbuild/darwin-x64@0.25.11':
optional: true
'@esbuild/freebsd-arm64@0.21.5':
optional: true
- '@esbuild/freebsd-arm64@0.25.10':
- optional: true
-
'@esbuild/freebsd-arm64@0.25.11':
optional: true
'@esbuild/freebsd-x64@0.21.5':
optional: true
- '@esbuild/freebsd-x64@0.25.10':
- optional: true
-
'@esbuild/freebsd-x64@0.25.11':
optional: true
'@esbuild/linux-arm64@0.21.5':
optional: true
- '@esbuild/linux-arm64@0.25.10':
- optional: true
-
'@esbuild/linux-arm64@0.25.11':
optional: true
'@esbuild/linux-arm@0.21.5':
optional: true
- '@esbuild/linux-arm@0.25.10':
- optional: true
-
'@esbuild/linux-arm@0.25.11':
optional: true
'@esbuild/linux-ia32@0.21.5':
optional: true
- '@esbuild/linux-ia32@0.25.10':
- optional: true
-
'@esbuild/linux-ia32@0.25.11':
optional: true
'@esbuild/linux-loong64@0.21.5':
optional: true
- '@esbuild/linux-loong64@0.25.10':
- optional: true
-
'@esbuild/linux-loong64@0.25.11':
optional: true
'@esbuild/linux-mips64el@0.21.5':
optional: true
- '@esbuild/linux-mips64el@0.25.10':
- optional: true
-
'@esbuild/linux-mips64el@0.25.11':
optional: true
'@esbuild/linux-ppc64@0.21.5':
optional: true
- '@esbuild/linux-ppc64@0.25.10':
- optional: true
-
'@esbuild/linux-ppc64@0.25.11':
optional: true
'@esbuild/linux-riscv64@0.21.5':
optional: true
- '@esbuild/linux-riscv64@0.25.10':
- optional: true
-
'@esbuild/linux-riscv64@0.25.11':
optional: true
'@esbuild/linux-s390x@0.21.5':
optional: true
- '@esbuild/linux-s390x@0.25.10':
- optional: true
-
'@esbuild/linux-s390x@0.25.11':
optional: true
'@esbuild/linux-x64@0.21.5':
optional: true
- '@esbuild/linux-x64@0.25.10':
- optional: true
-
'@esbuild/linux-x64@0.25.11':
optional: true
- '@esbuild/netbsd-arm64@0.25.10':
- optional: true
-
'@esbuild/netbsd-arm64@0.25.11':
optional: true
'@esbuild/netbsd-x64@0.21.5':
optional: true
- '@esbuild/netbsd-x64@0.25.10':
- optional: true
-
'@esbuild/netbsd-x64@0.25.11':
optional: true
- '@esbuild/openbsd-arm64@0.25.10':
- optional: true
-
'@esbuild/openbsd-arm64@0.25.11':
optional: true
'@esbuild/openbsd-x64@0.21.5':
optional: true
- '@esbuild/openbsd-x64@0.25.10':
- optional: true
-
'@esbuild/openbsd-x64@0.25.11':
optional: true
- '@esbuild/openharmony-arm64@0.25.10':
- optional: true
-
'@esbuild/openharmony-arm64@0.25.11':
optional: true
'@esbuild/sunos-x64@0.21.5':
optional: true
- '@esbuild/sunos-x64@0.25.10':
- optional: true
-
'@esbuild/sunos-x64@0.25.11':
optional: true
'@esbuild/win32-arm64@0.21.5':
optional: true
- '@esbuild/win32-arm64@0.25.10':
- optional: true
-
'@esbuild/win32-arm64@0.25.11':
optional: true
'@esbuild/win32-ia32@0.21.5':
optional: true
- '@esbuild/win32-ia32@0.25.10':
- optional: true
-
'@esbuild/win32-ia32@0.25.11':
optional: true
'@esbuild/win32-x64@0.21.5':
optional: true
- '@esbuild/win32-x64@0.25.10':
- optional: true
-
'@esbuild/win32-x64@0.25.11':
optional: true
@@ -3249,14 +2865,12 @@ snapshots:
eslint: 9.9.1
eslint-visitor-keys: 3.4.3
- '@eslint-community/regexpp@4.12.1': {}
-
'@eslint-community/regexpp@4.12.2': {}
'@eslint/config-array@0.18.0':
dependencies:
'@eslint/object-schema': 2.1.4
- debug: 4.4.1
+ debug: 4.4.3
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -3264,12 +2878,12 @@ snapshots:
'@eslint/eslintrc@3.1.0':
dependencies:
ajv: 6.12.6
- debug: 4.4.1
+ debug: 4.4.3
espree: 10.1.0
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.0
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
@@ -3330,14 +2944,14 @@ snapshots:
'@manypkg/find-root@1.1.0':
dependencies:
- '@babel/runtime': 7.23.8
+ '@babel/runtime': 7.28.4
'@types/node': 12.20.55
find-up: 4.1.0
fs-extra: 8.1.0
'@manypkg/get-packages@1.1.3':
dependencies:
- '@babel/runtime': 7.23.8
+ '@babel/runtime': 7.28.4
'@changesets/types': 4.1.0
'@manypkg/find-root': 1.1.0
fs-extra: 8.1.0
@@ -3365,9 +2979,9 @@ snapshots:
'@polka/url@1.0.0-next.25': {}
- '@rollup/plugin-commonjs@28.0.1(rollup@4.50.1)':
+ '@rollup/plugin-commonjs@28.0.1(rollup@4.52.5)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.50.1)
+ '@rollup/pluginutils': 5.1.0(rollup@4.52.5)
commondir: 1.0.1
estree-walker: 2.0.2
fdir: 6.5.0(picomatch@4.0.3)
@@ -3375,164 +2989,101 @@ snapshots:
magic-string: 0.30.17
picomatch: 4.0.3
optionalDependencies:
- rollup: 4.50.1
+ rollup: 4.52.5
- '@rollup/plugin-node-resolve@15.3.0(rollup@4.50.1)':
+ '@rollup/plugin-node-resolve@15.3.0(rollup@4.52.5)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.50.1)
+ '@rollup/pluginutils': 5.1.0(rollup@4.52.5)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
resolve: 1.22.8
optionalDependencies:
- rollup: 4.50.1
+ rollup: 4.52.5
- '@rollup/plugin-terser@0.4.4(rollup@4.50.1)':
+ '@rollup/plugin-terser@0.4.4(rollup@4.52.5)':
dependencies:
serialize-javascript: 6.0.2
smob: 1.4.1
terser: 5.27.0
optionalDependencies:
- rollup: 4.50.1
+ rollup: 4.52.5
- '@rollup/plugin-virtual@3.0.2(rollup@4.50.1)':
+ '@rollup/plugin-virtual@3.0.2(rollup@4.52.5)':
optionalDependencies:
- rollup: 4.50.1
+ rollup: 4.52.5
- '@rollup/pluginutils@5.1.0(rollup@4.50.1)':
+ '@rollup/pluginutils@5.1.0(rollup@4.52.5)':
dependencies:
'@types/estree': 1.0.8
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
- rollup: 4.50.1
-
- '@rollup/rollup-android-arm-eabi@4.50.1':
- optional: true
+ rollup: 4.52.5
'@rollup/rollup-android-arm-eabi@4.52.5':
optional: true
- '@rollup/rollup-android-arm64@4.50.1':
- optional: true
-
'@rollup/rollup-android-arm64@4.52.5':
optional: true
- '@rollup/rollup-darwin-arm64@4.50.1':
- optional: true
-
'@rollup/rollup-darwin-arm64@4.52.5':
optional: true
- '@rollup/rollup-darwin-x64@4.50.1':
- optional: true
-
'@rollup/rollup-darwin-x64@4.52.5':
optional: true
- '@rollup/rollup-freebsd-arm64@4.50.1':
- optional: true
-
'@rollup/rollup-freebsd-arm64@4.52.5':
optional: true
- '@rollup/rollup-freebsd-x64@4.50.1':
- optional: true
-
'@rollup/rollup-freebsd-x64@4.52.5':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.50.1':
- optional: true
-
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.50.1':
- optional: true
-
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.50.1':
- optional: true
-
'@rollup/rollup-linux-arm64-gnu@4.52.5':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.50.1':
- optional: true
-
'@rollup/rollup-linux-arm64-musl@4.52.5':
optional: true
'@rollup/rollup-linux-loong64-gnu@4.52.5':
optional: true
- '@rollup/rollup-linux-loongarch64-gnu@4.50.1':
- optional: true
-
- '@rollup/rollup-linux-ppc64-gnu@4.50.1':
- optional: true
-
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.50.1':
- optional: true
-
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.50.1':
- optional: true
-
'@rollup/rollup-linux-riscv64-musl@4.52.5':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.50.1':
- optional: true
-
'@rollup/rollup-linux-s390x-gnu@4.52.5':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.50.1':
- optional: true
-
'@rollup/rollup-linux-x64-gnu@4.52.5':
optional: true
- '@rollup/rollup-linux-x64-musl@4.50.1':
- optional: true
-
'@rollup/rollup-linux-x64-musl@4.52.5':
optional: true
- '@rollup/rollup-openharmony-arm64@4.50.1':
- optional: true
-
'@rollup/rollup-openharmony-arm64@4.52.5':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.50.1':
- optional: true
-
'@rollup/rollup-win32-arm64-msvc@4.52.5':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.50.1':
- optional: true
-
'@rollup/rollup-win32-ia32-msvc@4.52.5':
optional: true
'@rollup/rollup-win32-x64-gnu@4.52.5':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.50.1':
- optional: true
-
'@rollup/rollup-win32-x64-msvc@4.52.5':
optional: true
@@ -3549,7 +3100,7 @@ snapshots:
dependencies:
acorn: 8.15.0
- '@sveltejs/eslint-config@8.3.3(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.16.1(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-svelte@3.11.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.26.0(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)':
+ '@sveltejs/eslint-config@8.3.3(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.16.1(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-svelte@3.11.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.48.1(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4)':
dependencies:
'@stylistic/eslint-plugin-js': 1.8.0(eslint@9.9.1)
eslint: 9.9.1
@@ -3558,12 +3109,12 @@ snapshots:
eslint-plugin-svelte: 3.11.0(eslint@9.9.1)(svelte@packages+svelte)
globals: 15.15.0
typescript: 5.5.4
- typescript-eslint: 8.26.0(eslint@9.9.1)(typescript@5.5.4)
+ typescript-eslint: 8.48.1(eslint@9.9.1)(typescript@5.5.4)
'@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.0(svelte@packages+svelte)(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 6.2.0(svelte@packages+svelte)(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
- debug: 4.4.1
+ debug: 4.4.3
svelte: link:packages/svelte
vite: 7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
@@ -3572,7 +3123,7 @@ snapshots:
'@sveltejs/vite-plugin-svelte@6.2.0(svelte@packages+svelte)(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.0(svelte@packages+svelte)(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))
- debug: 4.4.1
+ debug: 4.4.3
deepmerge: 4.3.1
magic-string: 0.30.17
svelte: link:packages/svelte
@@ -3613,140 +3164,103 @@ snapshots:
'@types/resolve@1.20.2': {}
- '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)':
+ '@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)':
dependencies:
- '@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.26.0(eslint@9.9.1)(typescript@5.5.4)
- '@typescript-eslint/scope-manager': 8.26.0
- '@typescript-eslint/type-utils': 8.26.0(eslint@9.9.1)(typescript@5.5.4)
- '@typescript-eslint/utils': 8.26.0(eslint@9.9.1)(typescript@5.5.4)
- '@typescript-eslint/visitor-keys': 8.26.0
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/scope-manager': 8.48.1
+ '@typescript-eslint/type-utils': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/visitor-keys': 8.48.1
eslint: 9.9.1
graphemer: 1.4.0
- ignore: 5.3.2
+ ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.1.0(typescript@5.5.4)
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.26.0(eslint@9.9.1)(typescript@5.5.4)':
+ '@typescript-eslint/parser@8.48.1(eslint@9.9.1)(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/scope-manager': 8.26.0
- '@typescript-eslint/types': 8.26.0
- '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.5.4)
- '@typescript-eslint/visitor-keys': 8.26.0
- debug: 4.4.1
+ '@typescript-eslint/scope-manager': 8.48.1
+ '@typescript-eslint/types': 8.48.1
+ '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.5.4)
+ '@typescript-eslint/visitor-keys': 8.48.1
+ debug: 4.4.3
eslint: 9.9.1
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.46.2(typescript@5.5.4)':
+ '@typescript-eslint/project-service@8.48.1(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.5.4)
- '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.5.4)
+ '@typescript-eslint/types': 8.48.1
debug: 4.4.3
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.26.0':
- dependencies:
- '@typescript-eslint/types': 8.26.0
- '@typescript-eslint/visitor-keys': 8.26.0
-
- '@typescript-eslint/scope-manager@8.46.2':
+ '@typescript-eslint/scope-manager@8.48.1':
dependencies:
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/visitor-keys': 8.46.2
+ '@typescript-eslint/types': 8.48.1
+ '@typescript-eslint/visitor-keys': 8.48.1
- '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.5.4)':
+ '@typescript-eslint/tsconfig-utils@8.48.1(typescript@5.5.4)':
dependencies:
typescript: 5.5.4
- '@typescript-eslint/type-utils@8.26.0(eslint@9.9.1)(typescript@5.5.4)':
+ '@typescript-eslint/type-utils@8.48.1(eslint@9.9.1)(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.5.4)
- '@typescript-eslint/utils': 8.26.0(eslint@9.9.1)(typescript@5.5.4)
- debug: 4.4.1
+ '@typescript-eslint/types': 8.48.1
+ '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
+ debug: 4.4.3
eslint: 9.9.1
ts-api-utils: 2.1.0(typescript@5.5.4)
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.26.0': {}
-
- '@typescript-eslint/types@8.46.2': {}
+ '@typescript-eslint/types@8.48.1': {}
- '@typescript-eslint/typescript-estree@8.26.0(typescript@5.5.4)':
+ '@typescript-eslint/typescript-estree@8.48.1(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/types': 8.26.0
- '@typescript-eslint/visitor-keys': 8.26.0
- debug: 4.4.1
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.2
- ts-api-utils: 2.1.0(typescript@5.5.4)
- typescript: 5.5.4
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/typescript-estree@8.46.2(typescript@5.5.4)':
- dependencies:
- '@typescript-eslint/project-service': 8.46.2(typescript@5.5.4)
- '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.5.4)
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/visitor-keys': 8.46.2
+ '@typescript-eslint/project-service': 8.48.1(typescript@5.5.4)
+ '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.5.4)
+ '@typescript-eslint/types': 8.48.1
+ '@typescript-eslint/visitor-keys': 8.48.1
debug: 4.4.3
- fast-glob: 3.3.3
- is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.3
+ tinyglobby: 0.2.15
ts-api-utils: 2.1.0(typescript@5.5.4)
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.26.0(eslint@9.9.1)(typescript@5.5.4)':
+ '@typescript-eslint/utils@8.48.1(eslint@9.9.1)(typescript@5.5.4)':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.9.1)
- '@typescript-eslint/scope-manager': 8.26.0
- '@typescript-eslint/types': 8.26.0
- '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.5.4)
+ '@typescript-eslint/scope-manager': 8.48.1
+ '@typescript-eslint/types': 8.48.1
+ '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.5.4)
eslint: 9.9.1
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.46.2(eslint@9.9.1)(typescript@5.5.4)':
+ '@typescript-eslint/visitor-keys@8.48.1':
dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.9.1)
- '@typescript-eslint/scope-manager': 8.46.2
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.5.4)
- eslint: 9.9.1
- typescript: 5.5.4
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/visitor-keys@8.26.0':
- dependencies:
- '@typescript-eslint/types': 8.26.0
- eslint-visitor-keys: 4.2.1
-
- '@typescript-eslint/visitor-keys@8.46.2':
- dependencies:
- '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/types': 8.48.1
eslint-visitor-keys: 4.2.1
'@vitest/coverage-v8@2.1.9(vitest@2.1.9(@types/node@20.19.17)(jsdom@25.0.1)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
- debug: 4.4.1
+ debug: 4.4.3
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
@@ -3808,7 +3322,7 @@ snapshots:
agent-base@7.1.1:
dependencies:
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -3866,12 +3380,12 @@ snapshots:
birpc@2.5.0: {}
- brace-expansion@1.1.11:
+ brace-expansion@1.1.12:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.0.1:
+ brace-expansion@2.0.2:
dependencies:
balanced-match: 1.0.2
@@ -3958,10 +3472,6 @@ snapshots:
dataloader@1.4.0: {}
- debug@4.4.1:
- dependencies:
- ms: 2.1.3
-
debug@4.4.3:
dependencies:
ms: 2.1.3
@@ -3990,6 +3500,8 @@ snapshots:
detect-libc@1.0.3:
optional: true
+ devalue@5.5.0: {}
+
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
@@ -4056,35 +3568,6 @@ snapshots:
'@esbuild/win32-ia32': 0.21.5
'@esbuild/win32-x64': 0.21.5
- esbuild@0.25.10:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.10
- '@esbuild/android-arm': 0.25.10
- '@esbuild/android-arm64': 0.25.10
- '@esbuild/android-x64': 0.25.10
- '@esbuild/darwin-arm64': 0.25.10
- '@esbuild/darwin-x64': 0.25.10
- '@esbuild/freebsd-arm64': 0.25.10
- '@esbuild/freebsd-x64': 0.25.10
- '@esbuild/linux-arm': 0.25.10
- '@esbuild/linux-arm64': 0.25.10
- '@esbuild/linux-ia32': 0.25.10
- '@esbuild/linux-loong64': 0.25.10
- '@esbuild/linux-mips64el': 0.25.10
- '@esbuild/linux-ppc64': 0.25.10
- '@esbuild/linux-riscv64': 0.25.10
- '@esbuild/linux-s390x': 0.25.10
- '@esbuild/linux-x64': 0.25.10
- '@esbuild/netbsd-arm64': 0.25.10
- '@esbuild/netbsd-x64': 0.25.10
- '@esbuild/openbsd-arm64': 0.25.10
- '@esbuild/openbsd-x64': 0.25.10
- '@esbuild/openharmony-arm64': 0.25.10
- '@esbuild/sunos-x64': 0.25.10
- '@esbuild/win32-arm64': 0.25.10
- '@esbuild/win32-ia32': 0.25.10
- '@esbuild/win32-x64': 0.25.10
-
esbuild@0.25.11:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.11
@@ -4137,7 +3620,7 @@ snapshots:
eslint-plugin-n@17.16.1(eslint@9.9.1)(typescript@5.5.4):
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.9.1)
- '@typescript-eslint/utils': 8.46.2(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
enhanced-resolve: 5.18.3
eslint: 9.9.1
eslint-plugin-es-x: 7.8.0(eslint@9.9.1)
@@ -4162,7 +3645,7 @@ snapshots:
postcss: 8.5.6
postcss-load-config: 3.1.4(postcss@8.5.6)
postcss-safe-parser: 7.0.1(postcss@8.5.6)
- semver: 7.7.2
+ semver: 7.7.3
svelte-eslint-parser: 1.3.0(svelte@packages+svelte)
optionalDependencies:
svelte: link:packages/svelte
@@ -4181,7 +3664,7 @@ snapshots:
eslint@9.9.1:
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.9.1)
- '@eslint-community/regexpp': 4.12.1
+ '@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.18.0
'@eslint/eslintrc': 3.1.0
'@eslint/js': 9.9.1
@@ -4191,7 +3674,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.1
+ debug: 4.4.3
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@@ -4237,7 +3720,7 @@ snapshots:
dependencies:
estraverse: 5.3.0
- esrap@2.1.0:
+ esrap@2.2.1:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -4349,7 +3832,7 @@ snapshots:
dependencies:
is-glob: 4.0.3
- glob@10.4.5:
+ glob@10.5.0:
dependencies:
foreground-child: 3.3.0
jackspeak: 3.4.3
@@ -4392,14 +3875,14 @@ snapshots:
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.1
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
https-proxy-agent@7.0.5:
dependencies:
agent-base: 7.1.1
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -4415,6 +3898,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@7.0.5: {}
+
immutable@4.3.7:
optional: true
@@ -4487,7 +3972,7 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
'@jridgewell/trace-mapping': 0.3.31
- debug: 4.4.1
+ debug: 4.4.3
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
@@ -4503,12 +3988,12 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- js-yaml@3.14.1:
+ js-yaml@3.14.2:
dependencies:
argparse: 1.0.10
esprima: 4.0.1
- js-yaml@4.1.0:
+ js-yaml@4.1.1:
dependencies:
argparse: 2.0.1
@@ -4637,7 +4122,7 @@ snapshots:
make-dir@4.0.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
merge2@1.4.1: {}
@@ -4654,11 +4139,11 @@ snapshots:
minimatch@3.1.2:
dependencies:
- brace-expansion: 1.1.11
+ brace-expansion: 1.1.12
minimatch@9.0.5:
dependencies:
- brace-expansion: 2.0.1
+ brace-expansion: 2.0.2
minipass@7.1.2: {}
@@ -4727,7 +4212,9 @@ snapshots:
package-json-from-dist@1.0.0: {}
- package-manager-detector@0.2.0: {}
+ package-manager-detector@0.2.11:
+ dependencies:
+ quansync: 0.2.11
parent-module@1.0.1:
dependencies:
@@ -4818,6 +4305,8 @@ snapshots:
punycode@2.3.1: {}
+ quansync@0.2.11: {}
+
queue-microtask@1.2.3: {}
randombytes@2.1.0:
@@ -4827,7 +4316,7 @@ snapshots:
read-yaml-file@1.1.0:
dependencies:
graceful-fs: 4.2.11
- js-yaml: 3.14.1
+ js-yaml: 3.14.2
pify: 4.0.1
strip-bom: 3.0.0
@@ -4836,8 +4325,6 @@ snapshots:
picomatch: 2.3.1
optional: true
- regenerator-runtime@0.14.1: {}
-
regexparam@3.0.0: {}
resolve-from@4.0.0: {}
@@ -4854,33 +4341,6 @@ snapshots:
reusify@1.0.4: {}
- rollup@4.50.1:
- dependencies:
- '@types/estree': 1.0.8
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.50.1
- '@rollup/rollup-android-arm64': 4.50.1
- '@rollup/rollup-darwin-arm64': 4.50.1
- '@rollup/rollup-darwin-x64': 4.50.1
- '@rollup/rollup-freebsd-arm64': 4.50.1
- '@rollup/rollup-freebsd-x64': 4.50.1
- '@rollup/rollup-linux-arm-gnueabihf': 4.50.1
- '@rollup/rollup-linux-arm-musleabihf': 4.50.1
- '@rollup/rollup-linux-arm64-gnu': 4.50.1
- '@rollup/rollup-linux-arm64-musl': 4.50.1
- '@rollup/rollup-linux-loongarch64-gnu': 4.50.1
- '@rollup/rollup-linux-ppc64-gnu': 4.50.1
- '@rollup/rollup-linux-riscv64-gnu': 4.50.1
- '@rollup/rollup-linux-riscv64-musl': 4.50.1
- '@rollup/rollup-linux-s390x-gnu': 4.50.1
- '@rollup/rollup-linux-x64-gnu': 4.50.1
- '@rollup/rollup-linux-x64-musl': 4.50.1
- '@rollup/rollup-openharmony-arm64': 4.50.1
- '@rollup/rollup-win32-arm64-msvc': 4.50.1
- '@rollup/rollup-win32-ia32-msvc': 4.50.1
- '@rollup/rollup-win32-x64-msvc': 4.50.1
- fsevents: 2.3.3
-
rollup@4.52.5:
dependencies:
'@types/estree': 1.0.8
@@ -4936,8 +4396,6 @@ snapshots:
dependencies:
xmlchars: 2.2.0
- semver@7.7.2: {}
-
semver@7.7.3: {}
serialize-javascript@6.0.2:
@@ -5043,7 +4501,7 @@ snapshots:
test-exclude@7.0.1:
dependencies:
'@istanbuljs/schema': 0.1.3
- glob: 10.4.5
+ glob: 10.5.0
minimatch: 9.0.5
text-table@0.2.0: {}
@@ -5108,11 +4566,12 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
- typescript-eslint@8.26.0(eslint@9.9.1)(typescript@5.5.4):
+ typescript-eslint@8.48.1(eslint@9.9.1)(typescript@5.5.4):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)
- '@typescript-eslint/parser': 8.26.0(eslint@9.9.1)(typescript@5.5.4)
- '@typescript-eslint/utils': 8.26.0(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/eslint-plugin': 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/parser': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
+ '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.48.1(eslint@9.9.1)(typescript@5.5.4)
eslint: 9.9.1
typescript: 5.5.4
transitivePeerDependencies:
@@ -5154,7 +4613,7 @@ snapshots:
vite-node@2.1.9(@types/node@20.19.17)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0):
dependencies:
cac: 6.7.14
- debug: 4.4.1
+ debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 1.1.2
vite: 5.4.20(@types/node@20.19.17)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)
@@ -5177,7 +4636,7 @@ snapshots:
vite-plugin-inspect@11.3.3(vite@7.1.11(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)):
dependencies:
ansis: 4.1.0
- debug: 4.4.1
+ debug: 4.4.3
error-stack-parser-es: 1.0.5
ohash: 2.0.11
open: 10.2.0
@@ -5193,7 +4652,7 @@ snapshots:
dependencies:
esbuild: 0.21.5
postcss: 8.5.6
- rollup: 4.50.1
+ rollup: 4.52.5
optionalDependencies:
'@types/node': 20.19.17
fsevents: 2.3.3
@@ -5230,7 +4689,7 @@ snapshots:
'@vitest/spy': 2.1.9
'@vitest/utils': 2.1.9
chai: 5.3.3
- debug: 4.4.1
+ debug: 4.4.3
expect-type: 1.2.2
magic-string: 0.30.17
pathe: 1.1.2