diff --git a/.changeset/svelte-runes-migration.md b/.changeset/svelte-runes-migration.md new file mode 100644 index 00000000..da7eb3af --- /dev/null +++ b/.changeset/svelte-runes-migration.md @@ -0,0 +1,5 @@ +--- +"@lottiefiles/dotlottie-svelte": major +--- + +Migrate to Svelte 5 runes API and drop Svelte 4 support. The component now uses `$props()`, `$effect()`, and `$state` instead of `export let`, `$:`, and `on:event`. The `svelte` peer dependency is narrowed from `^4.0.0 || ^5.0.0` to `^5.0.0`. diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 9ae84716..15d157df 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -41,26 +41,34 @@ "lint": "biome check .", "format": "biome check --write .", "stats:ts": "tsc -p tsconfig.build.json --extendedDiagnostics", + "test": "vitest run --browser.headless", + "test:coverage": "vitest run --browser.headless --coverage", + "test:watch": "vitest", "type-check": "tsc --noEmit" }, "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0" + "svelte": "^5.0.0" }, "dependencies": { "@lottiefiles/dotlottie-web": "workspace:*" }, "devDependencies": { - "@sveltejs/adapter-auto": "^3.0.0", - "@sveltejs/kit": "^2.0.0", - "@sveltejs/package": "^2.0.0", - "@sveltejs/vite-plugin-svelte": "^4.0.0", - "publint": "^0.1.9", - "svelte": "^5.0.0", - "svelte-check": "^3.6.0", + "@sveltejs/adapter-auto": "^7.0.1", + "@sveltejs/kit": "^2.53.4", + "@sveltejs/package": "^2.5.7", + "@sveltejs/vite-plugin-svelte": "^6.2.4", + "@testing-library/user-event": "^14.5.2", + "@vitest/browser": "^4.0.18", + "@vitest/browser-playwright": "^4.0.18", + "@vitest/coverage-istanbul": "^4.0.18", + "publint": "^0.3.17", + "svelte": "^5.53.6", + "svelte-check": "^4.4.4", "tslib": "^2.4.1", "typescript": "5.9.3", - "vite": "^5.0.13", - "vitest": "^4.0.18" + "vite": "^7.3.1", + "vitest": "^4.0.18", + "vitest-browser-svelte": "^2.0.2" }, "sideEffects": false, "publishConfig": { diff --git a/packages/svelte/setup-file.ts b/packages/svelte/setup-file.ts new file mode 100644 index 00000000..327dba44 --- /dev/null +++ b/packages/svelte/setup-file.ts @@ -0,0 +1,7 @@ +import 'vitest-browser-svelte'; +import { setWasmUrl } from './src/lib/index.js'; + +// eslint-disable-next-line node/no-unsupported-features/node-builtins +const wasmUrl = new URL('../web/src/core/dotlottie-player.wasm?url', import.meta.url).href; + +setWasmUrl(wasmUrl); diff --git a/packages/svelte/src/index.test.ts b/packages/svelte/src/index.test.ts deleted file mode 100644 index aa934263..00000000 --- a/packages/svelte/src/index.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -describe('sum test', () => { - it('adds 1 + 2 to equal 3', () => { - expect(1 + 2).toBe(3); - }); -}); diff --git a/packages/svelte/src/lib/Dotlottie.svelte b/packages/svelte/src/lib/Dotlottie.svelte index c45e2674..d7024f62 100644 --- a/packages/svelte/src/lib/Dotlottie.svelte +++ b/packages/svelte/src/lib/Dotlottie.svelte @@ -1,213 +1,278 @@
diff --git a/packages/svelte/src/routes/+page.svelte b/packages/svelte/src/routes/+page.svelte index 50917ac7..6b3af4c7 100644 --- a/packages/svelte/src/routes/+page.svelte +++ b/packages/svelte/src/routes/+page.svelte @@ -5,37 +5,37 @@ import { DotLottieSvelte, setWasmUrl } from '../lib/index.js'; setWasmUrl(wasmUrl); -let dotLottie: DotLottie | undefined; -let isLoaded = false; -let isPlaying = false; -let isPaused = false; -let isStopped = false; -let isFrozen = false; -let loop = true; -let backgroundColor = '#00000000'; -let speed = 1; -let hasMultipleAnimations = false; -let src = 'https://lottie.host/b06d1336-2c08-4156-aa6f-96f08ff511e0/4itF1pXb1i.lottie'; -let activeAnimationIdx = 0; -let animations: string[] = []; -let themes: string[] = []; -let activeAnimationId = ''; -let activeThemeId = ''; +let dotLottie: DotLottie | undefined = $state(undefined); +let isLoaded = $state(false); +let isPlaying = $state(false); +let isPaused = $state(false); +let isStopped = $state(false); +let isFrozen = $state(false); +let loop = $state(true); +let backgroundColor = $state('#00000000'); +let speed = $state(1); +let hasMultipleAnimations = $state(false); +let src = $state('https://lottie.host/b06d1336-2c08-4156-aa6f-96f08ff511e0/4itF1pXb1i.lottie'); +let activeAnimationIdx = $state(0); +let animations: string[] = $state([]); +let themes: string[] = $state([]); +let activeAnimationId = $state(''); +let activeThemeId = $state(''); function dotLottieRefCallback(ref: DotLottie) { dotLottie = ref; } const next = () => { - const animations = dotLottie?.manifest?.animations; - if (animations?.length) { - activeAnimationIdx = (activeAnimationIdx + 1) % animations.length; - const animationId = animations[activeAnimationIdx]?.id || ''; + const anims = dotLottie?.manifest?.animations; + if (anims?.length) { + activeAnimationIdx = (activeAnimationIdx + 1) % anims.length; + const animationId = anims[activeAnimationIdx]?.id || ''; if (animationId) dotLottie?.loadAnimation(animationId); } }; -$: { +$effect(() => { if (dotLottie) { dotLottie.addEventListener('load', () => { isLoaded = true; @@ -71,30 +71,30 @@ $: { isFrozen = false; }); } -} +}); - - - - - - - - - - { activeAnimationId = event.currentTarget.value || ''; }}> @@ -102,7 +102,7 @@ $: { {/each} - { activeThemeId = event.currentTarget.value || ''; }}> diff --git a/packages/svelte/tests/__snapshots__/dotlottie-svelte.spec.ts.snap b/packages/svelte/tests/__snapshots__/dotlottie-svelte.spec.ts.snap new file mode 100644 index 00000000..d39ce228 --- /dev/null +++ b/packages/svelte/tests/__snapshots__/dotlottie-svelte.spec.ts.snap @@ -0,0 +1,14 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`DotLottieSvelte > basic 1`] = ` +
+
+ +
+ +
+`; diff --git a/packages/svelte/tests/dotlottie-svelte.spec.ts b/packages/svelte/tests/dotlottie-svelte.spec.ts new file mode 100644 index 00000000..60a2041c --- /dev/null +++ b/packages/svelte/tests/dotlottie-svelte.spec.ts @@ -0,0 +1,705 @@ +import { DotLottie } from '@lottiefiles/dotlottie-web'; +import { userEvent } from '@testing-library/user-event'; +import { afterEach, describe, expect, test, vi } from 'vitest'; +import { cleanup, render } from 'vitest-browser-svelte'; + +import DotLottieSvelte from '../src/lib/Dotlottie.svelte'; + +// eslint-disable-next-line node/no-unsupported-features/node-builtins +const dotLottieSrc = new URL('../../../fixtures/test.lottie', import.meta.url).href; +// eslint-disable-next-line node/no-unsupported-features/node-builtins +const lottieSrc = new URL('../../../fixtures/test.json', import.meta.url).href; +// eslint-disable-next-line node/no-unsupported-features/node-builtins +const smSrc = new URL('../../../fixtures/sm.lottie', import.meta.url).href; + +describe('DotLottieSvelte', () => { + afterEach(() => { + cleanup(); + }); + + test('basic', async () => { + const onLoad = vi.fn(); + const onDestroy = vi.fn(); + const onComplete = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { container, unmount } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + expect(container).toMatchSnapshot(); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + expect(dotLottie).toBeInstanceOf(DotLottie); + + dotLottie?.addEventListener('load', onLoad); + dotLottie?.addEventListener('destroy', onDestroy); + dotLottie?.addEventListener('complete', onComplete); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + await vi.waitFor( + () => { + expect(onComplete).toHaveBeenCalledTimes(1); + }, + { timeout: dotLottie?.duration * 1000 + 100 }, + ); + + unmount(); + + await vi.waitFor(() => { + expect(onDestroy).toHaveBeenCalledTimes(1); + }); + }); + + test('calls dotLottie.setLoop when loop prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const setLoop = vi.spyOn(dotLottie, 'setLoop'); + + expect(dotLottie?.loop).toBe(false); + + rerender({ src: dotLottieSrc, autoplay: true, loop: true, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setLoop).toHaveBeenCalledWith(true); + }); + + await vi.waitFor(() => { + expect(dotLottie?.loop).toBe(true); + }); + + rerender({ src: dotLottieSrc, autoplay: true, loop: false, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setLoop).toHaveBeenCalledWith(false); + }); + + await vi.waitFor(() => { + expect(dotLottie?.loop).toBe(false); + }); + }); + + test('calls dotLottie.setSpeed when speed prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const setSpeed = vi.spyOn(dotLottie, 'setSpeed'); + + expect(dotLottie?.speed).toBe(1); + + rerender({ src: dotLottieSrc, autoplay: true, speed: 2, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setSpeed).toHaveBeenCalledWith(2); + }); + + await vi.waitFor(() => { + expect(dotLottie?.speed).toBe(2); + }); + + rerender({ src: dotLottieSrc, autoplay: true, speed: 1, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setSpeed).toHaveBeenCalledWith(1); + }); + + await vi.waitFor(() => { + expect(dotLottie?.speed).toBe(1); + }); + }); + + test('calls dotLottie.setMode when mode prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const setMode = vi.spyOn(dotLottie, 'setMode'); + + expect(dotLottie?.mode).toBe('forward'); + + rerender({ src: dotLottieSrc, autoplay: true, mode: 'reverse', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setMode).toHaveBeenCalledWith('reverse'); + }); + + await vi.waitFor(() => { + expect(dotLottie?.mode).toBe('reverse'); + }); + + rerender({ src: dotLottieSrc, autoplay: true, mode: 'forward', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setMode).toHaveBeenCalledWith('forward'); + }); + + await vi.waitFor(() => { + expect(dotLottie?.mode).toBe('forward'); + }); + }); + + test('calls dotLottie.setUseFrameInterpolation when useFrameInterpolation prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + const setUseFrameInterpolation = vi.spyOn(dotLottie, 'setUseFrameInterpolation'); + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + expect(dotLottie?.useFrameInterpolation).toBe(true); + + rerender({ src: dotLottieSrc, autoplay: true, useFrameInterpolation: false, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setUseFrameInterpolation).toHaveBeenCalledWith(false); + }); + + await vi.waitFor(() => { + expect(dotLottie?.useFrameInterpolation).toBe(false); + }); + + rerender({ src: dotLottieSrc, autoplay: true, useFrameInterpolation: true, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setUseFrameInterpolation).toHaveBeenCalledWith(true); + }); + + await vi.waitFor(() => { + expect(dotLottie?.useFrameInterpolation).toBe(true); + }); + }); + + test('calls dotLottie.setBackgroundColor when backgroundColor prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + const setBackgroundColor = vi.spyOn(dotLottie, 'setBackgroundColor'); + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + expect(dotLottie?.backgroundColor).toBe(''); + + rerender({ src: dotLottieSrc, autoplay: true, backgroundColor: '#00ff00ff', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setBackgroundColor).toHaveBeenCalledWith('#00ff00ff'); + }); + + rerender({ src: dotLottieSrc, autoplay: true, backgroundColor: undefined, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setBackgroundColor).toHaveBeenCalledWith(''); + }); + + expect(dotLottie?.backgroundColor).toBe(''); + }); + + test('calls dotLottie.setMarker when marker prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + const setMarker = vi.spyOn(dotLottie, 'setMarker'); + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + expect(dotLottie?.marker).toBe(''); + + rerender({ src: dotLottieSrc, autoplay: true, marker: 'Marker_1', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setMarker).toHaveBeenCalledWith('Marker_1'); + }); + + rerender({ src: dotLottieSrc, autoplay: true, marker: '', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setMarker).toHaveBeenCalledWith(''); + }); + + expect(dotLottie?.marker).toBe(''); + }); + + test('playOnHover', async () => { + const user = userEvent.setup(); + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { container, rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + playOnHover: true, + dotLottieRefCallback, + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const play = vi.spyOn(dotLottie, 'play'); + const pause = vi.spyOn(dotLottie, 'pause'); + + const canvasElement = container.querySelector('canvas') as HTMLElement; + + await user.hover(canvasElement); + + await vi.waitFor(() => { + expect(play).toHaveBeenCalledTimes(1); + }); + + await user.unhover(canvasElement); + + await vi.waitFor(() => { + expect(pause).toHaveBeenCalledTimes(1); + }); + + play.mockClear(); + pause.mockClear(); + + rerender({ src: dotLottieSrc, autoplay: true, playOnHover: false, dotLottieRefCallback }); + + let mouseEnterCount = 0; + let mouseLeaveCount = 0; + + canvasElement.addEventListener('mouseenter', () => { + mouseEnterCount += 1; + }); + canvasElement.addEventListener('mouseleave', () => { + mouseLeaveCount += 1; + }); + + await user.hover(canvasElement); + + await vi.waitFor(() => { + expect(mouseEnterCount).toBe(1); + expect(mouseLeaveCount).toBe(0); + }); + + expect(play).not.toHaveBeenCalled(); + + await user.unhover(canvasElement); + + await vi.waitFor(() => { + expect(mouseEnterCount).toBe(1); + expect(mouseLeaveCount).toBe(1); + }); + + expect(pause).not.toHaveBeenCalled(); + }); + + test('calls dotLottie.loadAnimation when animationId prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const loadAnimation = vi.spyOn(dotLottie, 'loadAnimation'); + + rerender({ src: dotLottieSrc, autoplay: true, animationId: 'Animation_1', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(loadAnimation).toHaveBeenCalledWith('Animation_1'); + }); + }); + + test('calls dotLottie.setRenderConfig when renderConfig prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const defaultRenderConfig = dotLottie?.renderConfig; + const setRenderConfig = vi.spyOn(dotLottie, 'setRenderConfig'); + + rerender({ + src: dotLottieSrc, + autoplay: true, + renderConfig: { devicePixelRatio: 0.5, freezeOnOffscreen: false }, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(setRenderConfig).toHaveBeenCalledWith({ devicePixelRatio: 0.5, freezeOnOffscreen: false }); + }); + + rerender({ src: dotLottieSrc, autoplay: true, renderConfig: undefined, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setRenderConfig).toHaveBeenCalledWith({}); + }); + + expect(dotLottie?.renderConfig).toEqual(defaultRenderConfig); + }); + + test('calls dotLottie.load when data prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + let response = await fetch(lottieSrc); + const animationData = await response.json(); + + const { rerender } = render(DotLottieSvelte, { + data: animationData, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const load = vi.spyOn(dotLottie, 'load'); + + response = await fetch(dotLottieSrc); + const dotLottieAnimationData = await response.arrayBuffer(); + + rerender({ data: dotLottieAnimationData, autoplay: true, loop: true, speed: 2, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(load).toHaveBeenCalledTimes(1); + }); + + expect(load).toHaveBeenCalledWith( + expect.objectContaining({ + data: dotLottieAnimationData, + loop: true, + autoplay: true, + speed: 2, + }), + ); + }); + + test('calls dotLottie.load when src prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const load = vi.spyOn(dotLottie, 'load'); + + rerender({ src: lottieSrc, autoplay: true, loop: true, speed: 2, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(load).toHaveBeenCalledTimes(1); + }); + + expect(load).toHaveBeenCalledWith( + expect.objectContaining({ + src: lottieSrc, + loop: true, + autoplay: true, + speed: 2, + }), + ); + }); + + test('calls dotLottie.setLayout when layout prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const setLayout = vi.spyOn(dotLottie, 'setLayout'); + + rerender({ + src: dotLottieSrc, + autoplay: true, + layout: { align: [0.5, 0.5], fit: 'contain' }, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(setLayout).toHaveBeenCalledWith({ align: [0.5, 0.5], fit: 'contain' }); + }); + + rerender({ src: dotLottieSrc, autoplay: true, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setLayout).toHaveBeenCalledTimes(2); + }); + }); + + test('calls dotLottie.setLayout properly when layout prop changes with fit only', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: dotLottieSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const setLayout = vi.spyOn(dotLottie, 'setLayout'); + + rerender({ src: dotLottieSrc, autoplay: true, layout: { fit: 'cover' }, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(setLayout).toHaveBeenCalledWith({ fit: 'cover' }); + }); + }); + + test('calls stateMachineLoad and stateMachineStart when stateMachineId prop changes', async () => { + const onLoad = vi.fn(); + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: smSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + dotLottie?.addEventListener('load', onLoad); + + await vi.waitFor(() => { + expect(onLoad).toHaveBeenCalledTimes(1); + }); + + const stateMachineLoad = vi.spyOn(dotLottie, 'stateMachineLoad').mockReturnValue(true); + const stateMachineStart = vi.spyOn(dotLottie, 'stateMachineStart'); + const stateMachineStop = vi.spyOn(dotLottie, 'stateMachineStop'); + + rerender({ src: smSrc, autoplay: true, stateMachineId: 'testSM', dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(stateMachineLoad).toHaveBeenCalledWith('testSM'); + expect(stateMachineStart).toHaveBeenCalledTimes(1); + }); + + rerender({ src: smSrc, autoplay: true, stateMachineId: undefined, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(stateMachineStop).toHaveBeenCalledTimes(1); + }); + }); + + test('calls stateMachineSetConfig when stateMachineConfig prop changes', async () => { + const dotLottieRefCallback = vi.fn(); + + const { rerender } = render(DotLottieSvelte, { + src: smSrc, + autoplay: true, + dotLottieRefCallback, + }); + + await vi.waitFor(() => { + expect(dotLottieRefCallback).toHaveBeenCalledTimes(1); + }); + + const dotLottie = dotLottieRefCallback.mock.calls[0]?.[0]; + + const stateMachineSetConfig = vi.spyOn(dotLottie, 'stateMachineSetConfig'); + + const config = { openUrlPolicy: { whitelist: ['*'] } }; + + rerender({ src: smSrc, autoplay: true, stateMachineConfig: config, dotLottieRefCallback }); + + await vi.waitFor(() => { + expect(stateMachineSetConfig).toHaveBeenCalledWith(config); + }); + }); +}); diff --git a/packages/svelte/vitest.config.ts b/packages/svelte/vitest.config.ts new file mode 100644 index 00000000..537ceef1 --- /dev/null +++ b/packages/svelte/vitest.config.ts @@ -0,0 +1,33 @@ +import { svelte } from '@sveltejs/vite-plugin-svelte'; +import { playwright } from '@vitest/browser-playwright'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [svelte()], + resolve: { + conditions: ['browser'], + }, + test: { + name: 'svelte', + browser: { + enabled: true, + provider: playwright(), + instances: [{ browser: 'chromium' }], + screenshotFailures: false, + }, + include: ['tests/**/*.{test,spec}.{js,ts}'], + coverage: { + provider: 'istanbul', + include: ['src/lib/**/*.{ts,svelte}'], + reporter: ['json', 'json-summary', 'text-summary', 'lcov'], + thresholds: { + statements: 95, + branches: 89, + functions: 95, + lines: 95, + }, + }, + testTimeout: 10000, + setupFiles: ['./setup-file.ts'], + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68af4388..8eb79200 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,7 +49,7 @@ importers: version: 11.2.0 svelte-loader: specifier: ^3.2.3 - version: 3.2.4(svelte@5.33.6) + version: 3.2.4(svelte@5.53.6) syncpack: specifier: 13.0.4 version: 13.0.4(typescript@5.9.3) @@ -430,7 +430,7 @@ importers: version: 19.1.1(react@19.1.1) tsdown: specifier: ^0.20.3 - version: 0.20.3(typescript@5.9.3) + version: 0.20.3(publint@0.3.17)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -455,7 +455,7 @@ importers: version: 1.9.11 tsdown: specifier: ^0.20.3 - version: 0.20.3(typescript@5.9.3) + version: 0.20.3(publint@0.3.17)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -470,26 +470,38 @@ importers: version: link:../web devDependencies: '@sveltejs/adapter-auto': - specifier: ^3.0.0 - version: 3.3.1(@sveltejs/kit@2.21.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0))) + specifier: ^7.0.1 + version: 7.0.1(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0))) '@sveltejs/kit': - specifier: ^2.0.0 - version: 2.21.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) + specifier: ^2.53.4 + version: 2.53.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) '@sveltejs/package': - specifier: ^2.0.0 - version: 2.3.11(svelte@5.33.6)(typescript@5.9.3) + specifier: ^2.5.7 + version: 2.5.7(svelte@5.53.6)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': - specifier: ^4.0.0 - version: 4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) + specifier: ^6.2.4 + version: 6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) + '@testing-library/user-event': + specifier: ^14.5.2 + version: 14.6.1(@testing-library/dom@10.4.0) + '@vitest/browser': + specifier: ^4.0.18 + version: 4.0.18(msw@2.8.6(@types/node@22.15.24)(typescript@5.9.3))(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@4.0.18) + '@vitest/browser-playwright': + specifier: ^4.0.18 + version: 4.0.18(msw@2.8.6(@types/node@22.15.24)(typescript@5.9.3))(playwright@1.52.0)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0))(vitest@4.0.18) + '@vitest/coverage-istanbul': + specifier: ^4.0.18 + version: 4.0.18(vitest@4.0.18) publint: - specifier: ^0.1.9 - version: 0.1.16 + specifier: ^0.3.17 + version: 0.3.17 svelte: - specifier: ^5.0.0 - version: 5.33.6 + specifier: ^5.53.6 + version: 5.53.6 svelte-check: - specifier: ^3.6.0 - version: 3.8.6(@babel/core@7.29.0)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.24)(typescript@5.9.3)))(postcss@8.5.6)(svelte@5.33.6) + specifier: ^4.4.4 + version: 4.4.4(picomatch@4.0.3)(svelte@5.53.6)(typescript@5.9.3) tslib: specifier: ^2.4.1 version: 2.8.1 @@ -497,11 +509,14 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^5.0.13 - version: 5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0) + specifier: ^7.3.1 + version: 7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0) vitest: specifier: ^4.0.18 version: 4.0.18(@types/node@22.15.24)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(lightningcss@1.30.1)(msw@2.8.6(@types/node@22.15.24)(typescript@5.9.3))(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0) + vitest-browser-svelte: + specifier: ^2.0.2 + version: 2.0.2(svelte@5.53.6)(vitest@4.0.18) packages/vue: dependencies: @@ -520,7 +535,7 @@ importers: version: 0.5.1 tsdown: specifier: ^0.20.3 - version: 0.20.3(typescript@5.9.3) + version: 0.20.3(publint@0.3.17)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -545,7 +560,7 @@ importers: version: 4.0.18(vitest@4.0.18) tsdown: specifier: ^0.20.3 - version: 0.20.3(typescript@5.9.3) + version: 0.20.3(publint@0.3.17)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -572,7 +587,7 @@ importers: version: 0.23.1 tsdown: specifier: ^0.20.3 - version: 0.20.3(typescript@5.9.3) + version: 0.20.3(publint@0.3.17)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -741,6 +756,10 @@ packages: resolution: {integrity: sha512-7EYtGezsdiDMyY80+65EzwiGmcJqpmcZCojSXaRgdrBaGtWTgDZKq69cPIVped6MkIM78cTQ2GOiEYjwOlG4xw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} @@ -1759,8 +1778,12 @@ packages: cpu: [x64] os: [win32] - '@inquirer/confirm@5.1.12': - resolution: {integrity: sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==} + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1768,8 +1791,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.13': - resolution: {integrity: sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==} + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1786,12 +1809,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.12': - resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} engines: {node: '>=18'} - '@inquirer/type@3.0.7': - resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==} + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1810,10 +1833,6 @@ packages: '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - '@jridgewell/remapping@2.3.5': resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} @@ -1821,10 +1840,6 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} @@ -1834,9 +1849,6 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} @@ -2087,6 +2099,10 @@ packages: '@preact/signals-core@1.8.0': resolution: {integrity: sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==} + '@publint/pack@0.1.4': + resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} + engines: {node: '>=18'} + '@puppeteer/browsers@2.10.5': resolution: {integrity: sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w==} engines: {node: '>=18'} @@ -2591,6 +2607,9 @@ packages: '@standard-schema/spec@1.0.0': resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} @@ -2599,41 +2618,48 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-auto@3.3.1': - resolution: {integrity: sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==} + '@sveltejs/adapter-auto@7.0.1': + resolution: {integrity: sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ==} peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.21.1': - resolution: {integrity: sha512-vLbtVwtDcK8LhJKnFkFYwM0uCdFmzioQnif0bjEYH1I24Arz22JPr/hLUiXGVYAwhu8INKx5qrdvr4tHgPwX6w==} + '@sveltejs/kit@2.53.4': + resolution: {integrity: sha512-iAIPEahFgDJJyvz8g0jP08KvqnM6JvdW8YfsygZ+pMeMvyM2zssWMltcsotETvjSZ82G3VlitgDtBIvpQSZrTA==} engines: {node: '>=18.13'} hasBin: true peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 + '@opentelemetry/api': ^1.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 || ^6.0.0 + typescript: ^5.3.3 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + typescript: + optional: true - '@sveltejs/package@2.3.11': - resolution: {integrity: sha512-DSMt2U0XNAdoQBYksrmgQi5dKy7jUTVDJLiagS/iXF7AShjAmTbGJQKruBuT/FfYAWvNxfQTSjkXU8eAIjVeNg==} + '@sveltejs/package@2.5.7': + resolution: {integrity: sha512-qqD9xa9H7TDiGFrF6rz7AirOR8k15qDK/9i4MIE8te4vWsv5GEogPks61rrZcLy+yWph+aI6pIj2MdoK3YI8AQ==} engines: {node: ^16.14 || >=18} hasBin: true peerDependencies: svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 - '@sveltejs/vite-plugin-svelte-inspector@3.0.1': - resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} + '@sveltejs/vite-plugin-svelte-inspector@5.0.2': + resolution: {integrity: sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==} + engines: {node: ^20.19 || ^22.12 || >=24} peerDependencies: - '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 - svelte: ^5.0.0-next.96 || ^5.0.0 - vite: ^5.0.0 + '@sveltejs/vite-plugin-svelte': ^6.0.0-next.0 + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 - '@sveltejs/vite-plugin-svelte@4.0.4': - resolution: {integrity: sha512-0ba1RQ/PHen5FGpdSrW7Y3fAMQjrXantECALeOiOdBdzR5+5vPP6HVZRLmZaQL+W8m++o+haIAKq5qT+MiZ7VA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} + '@sveltejs/vite-plugin-svelte@6.2.4': + resolution: {integrity: sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==} + engines: {node: ^20.19 || ^22.12 || >=24} peerDependencies: - svelte: ^5.0.0-next.96 || ^5.0.0 - vite: ^5.0.0 + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 '@swc/core-darwin-arm64@1.11.29': resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} @@ -2733,6 +2759,12 @@ packages: resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} + '@testing-library/svelte-core@1.0.0': + resolution: {integrity: sha512-VkUePoLV6oOYwSUvX6ShA8KLnJqZiYMIbP2JW2t0GLWLkJxKGvuH5qrrZBV/X7cXFnLGuFQEC7RheYiZOW68KQ==} + engines: {node: '>=16'} + peerDependencies: + svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 + '@testing-library/user-event@14.6.1': resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} engines: {node: '>=12', npm: '>=6'} @@ -2746,8 +2778,8 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -2870,9 +2902,6 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/pug@2.0.10': - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - '@types/react-dom@18.3.7': resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} peerDependencies: @@ -2900,8 +2929,8 @@ packages: '@types/semver@7.7.0': resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} - '@types/statuses@2.0.5': - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} '@types/supports-color@8.1.3': resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} @@ -3255,8 +3284,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} acorn@8.14.1: @@ -3269,6 +3298,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -3299,10 +3333,6 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3349,8 +3379,8 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} engines: {node: '>= 0.4'} array-flatten@1.1.1: @@ -3508,10 +3538,6 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3605,6 +3631,10 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -4069,12 +4099,24 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} decode-named-character-reference@1.1.0: resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} @@ -4115,8 +4157,12 @@ packages: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} - devalue@5.1.1: - resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + devalue@5.6.3: + resolution: {integrity: sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -4130,8 +4176,8 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} diff@5.2.0: @@ -4265,9 +4311,6 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -4379,8 +4422,8 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@1.4.6: - resolution: {integrity: sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==} + esrap@2.2.3: + resolution: {integrity: sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -4687,8 +4730,8 @@ packages: graphlib@2.1.8: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} - graphql@16.11.0: - resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} + graphql@16.13.0: + resolution: {integrity: sha512-uSisMYERbaB9bkA9M4/4dnqyktaEkf1kMHNKq/7DHyxVeWqHQ2mBmVqm5u6/FVHwF3iCNalKcg82Zfl+tffWoA==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} has-flag@4.0.0: @@ -4770,10 +4813,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@5.0.1: - resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -5331,8 +5370,8 @@ packages: mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} mdast-util-frontmatter@1.0.1: resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} @@ -5665,10 +5704,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - moment-mini@2.29.4: resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} @@ -5782,19 +5817,11 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - npm-bundled@2.0.1: - resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - npm-check-updates@19.3.2: resolution: {integrity: sha512-9rr3z7znFjCSuaFxHGTFR2ZBOvLWaJcpLKmIquoTbDBNrwAGiHhv4MZyty6EJ9Xo/aMn35+2ISPSMgWIXx5Xkg==} engines: {node: '>=20.0.0', npm: '>=8.12.1'} hasBin: true - npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5803,11 +5830,6 @@ packages: resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} engines: {node: ^18.17.0 || >=20.5.0} - npm-packlist@5.1.3: - resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -5901,6 +5923,9 @@ packages: package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -6142,9 +6167,9 @@ packages: psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - publint@0.1.16: - resolution: {integrity: sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==} - engines: {node: '>=16'} + publint@0.3.17: + resolution: {integrity: sha512-Q3NLegA9XM6usW+dYQRG1g9uEHiYUzcCVBJDJ7yMcWRqVU9LYZUWdqbwMZfmTCFC5PZLQpLAmhvRcQRl3exqkw==} + engines: {node: '>=18'} hasBin: true pump@3.0.2: @@ -6327,6 +6352,10 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + redux-thunk@3.1.0: resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} peerDependencies: @@ -6525,11 +6554,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -6588,9 +6612,6 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -6644,8 +6665,8 @@ packages: resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} engines: {node: '>= 0.8.0'} - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + set-cookie-parser@3.0.1: + resolution: {integrity: sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==} setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -6755,10 +6776,6 @@ packages: peerDependencies: solid-js: ^1.3 - sorcery@0.11.1: - resolution: {integrity: sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==} - hasBin: true - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -6871,10 +6888,6 @@ packages: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - strip-indent@4.0.0: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} @@ -6923,11 +6936,13 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@3.8.6: - resolution: {integrity: sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q==} + svelte-check@4.4.4: + resolution: {integrity: sha512-F1pGqXc710Oi/wTI4d/x7d6lgPwwfx1U6w3Q35n4xsC2e8C/yN2sM1+mWxjlMcpAfWucjlq4vPi+P4FZ8a14sQ==} + engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' svelte-dev-helper@1.1.9: resolution: {integrity: sha512-oU+Xv7Dl4kRU2kdFjsoPLfJfnt5hUhsFUZtuzI3Ku/f2iAFZqBoEuXOqK3N9ngD4dxQOmN4OKWPHVi3NeAeAfQ==} @@ -6943,51 +6958,14 @@ packages: peerDependencies: svelte: ^3.0.0 || ^4.0.0-next.0 || ^5.0.0-next.1 - svelte-preprocess@5.1.4: - resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} - engines: {node: '>= 16.0.0'} - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - svelte2tsx@0.7.39: resolution: {integrity: sha512-NX8a7eSqF1hr6WKArvXr7TV7DeE+y0kDFD7L5JP7TWqlwFidzGKaG415p992MHREiiEWOv2xIWXJ+mlONofs0A==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.33.6: - resolution: {integrity: sha512-bxg2QY03JlrilCZmDlshY95Argj0rnX43UQFWZN4fct8PZTNBBmvfow2A6yOW1+YweDjhC2qdZF66ASI0Y21Tw==} + svelte@5.53.6: + resolution: {integrity: sha512-lP5DGF3oDDI9fhHcSpaBiJEkFLuS16h92DhM1L5K1lFm0WjOmUh1i2sNkBBk8rkxJRpob0dBE75jRfUzGZUOGA==} engines: {node: '>=18'} svgo@2.8.0: @@ -7222,10 +7200,6 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -7234,8 +7208,8 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typed-query-selector@2.12.0: - resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} + typed-query-selector@2.12.1: + resolution: {integrity: sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==} typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -7307,8 +7281,8 @@ packages: unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} unist-util-position-from-estree@1.1.2: resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} @@ -7337,8 +7311,8 @@ packages: unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} @@ -7349,8 +7323,8 @@ packages: unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -7449,8 +7423,8 @@ packages: vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile-reporter@7.0.5: resolution: {integrity: sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==} @@ -7551,14 +7525,6 @@ packages: yaml: optional: true - vitefu@1.0.6: - resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - vite: - optional: true - vitefu@1.1.1: resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} peerDependencies: @@ -7581,6 +7547,12 @@ packages: '@types/react-dom': optional: true + vitest-browser-svelte@2.0.2: + resolution: {integrity: sha512-OLJVYoIYflwToFIy3s41pZ9mVp6dwXfYd8IIsWoc57g8DyN3SxsNJ5GB1xWFPxLFlKM+1MPExjPxLaqdELrfRQ==} + peerDependencies: + svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 + vitest: ^4.0.0 + vitest@4.0.18: resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -7769,8 +7741,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} zimmerframe@1.1.2: @@ -7782,8 +7754,8 @@ packages: zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - zod@3.25.36: - resolution: {integrity: sha512-eRFS3i8T0IrpGdL8HQyqFAugGOn7jOjyGgGdtv5NY4Wkhi7lJDk732bNZ609YMIGFbLoaj6J69O1Mura23gfIw==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -7799,8 +7771,8 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@babel/code-frame@7.27.1': dependencies: @@ -7862,8 +7834,8 @@ snapshots: dependencies: '@babel/parser': 7.27.3 '@babel/types': 7.27.3 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/generator@7.29.1': @@ -7995,6 +7967,8 @@ snapshots: '@babel/runtime@7.27.3': {} + '@babel/runtime@7.28.6': {} + '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 @@ -8864,24 +8838,27 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@inquirer/confirm@5.1.12(@types/node@22.15.24)': + '@inquirer/ansi@1.0.2': + optional: true + + '@inquirer/confirm@5.1.21(@types/node@22.15.24)': dependencies: - '@inquirer/core': 10.1.13(@types/node@22.15.24) - '@inquirer/type': 3.0.7(@types/node@22.15.24) + '@inquirer/core': 10.3.2(@types/node@22.15.24) + '@inquirer/type': 3.0.10(@types/node@22.15.24) optionalDependencies: '@types/node': 22.15.24 optional: true - '@inquirer/core@10.1.13(@types/node@22.15.24)': + '@inquirer/core@10.3.2(@types/node@22.15.24)': dependencies: - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.15.24) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.15.24) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 22.15.24 optional: true @@ -8893,10 +8870,10 @@ snapshots: optionalDependencies: '@types/node': 22.15.24 - '@inquirer/figures@1.0.12': + '@inquirer/figures@1.0.15': optional: true - '@inquirer/type@3.0.7(@types/node@22.15.24)': + '@inquirer/type@3.0.10(@types/node@22.15.24)': optionalDependencies: '@types/node': 22.15.24 optional: true @@ -8917,12 +8894,6 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -8930,8 +8901,6 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -8941,11 +8910,6 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -9191,6 +9155,8 @@ snapshots: '@preact/signals-core@1.8.0': {} + '@publint/pack@0.1.4': {} + '@puppeteer/browsers@2.10.5': dependencies: debug: 4.4.1 @@ -9604,6 +9570,8 @@ snapshots: '@standard-schema/spec@1.0.0': {} + '@standard-schema/spec@1.1.0': {} + '@standard-schema/utils@0.3.0': {} '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': @@ -9614,61 +9582,57 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.21.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))': + '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))': dependencies: - '@sveltejs/kit': 2.21.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) - import-meta-resolve: 4.1.0 + '@sveltejs/kit': 2.53.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) - '@sveltejs/kit@2.21.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0))': + '@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0))': dependencies: + '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.1) - '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) '@types/cookie': 0.6.0 acorn: 8.14.1 cookie: 0.6.0 - devalue: 5.1.1 + devalue: 5.6.3 esm-env: 1.2.2 kleur: 4.1.5 magic-string: 0.30.17 mrmime: 2.0.1 - sade: 1.8.1 - set-cookie-parser: 2.7.1 + set-cookie-parser: 3.0.1 sirv: 3.0.2 - svelte: 5.33.6 - vite: 5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0) + svelte: 5.53.6 + vite: 7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0) + optionalDependencies: + typescript: 5.9.3 - '@sveltejs/package@2.3.11(svelte@5.33.6)(typescript@5.9.3)': + '@sveltejs/package@2.5.7(svelte@5.53.6)(typescript@5.9.3)': dependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.7.2 - svelte: 5.33.6 - svelte2tsx: 0.7.39(svelte@5.33.6)(typescript@5.9.3) + svelte: 5.53.6 + svelte2tsx: 0.7.39(svelte@5.53.6)(typescript@5.9.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) - debug: 4.4.1 - svelte: 5.33.6 - vite: 5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0) - transitivePeerDependencies: - - supports-color + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) + obug: 2.1.1 + svelte: 5.53.6 + vite: 7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0) - '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0))': + '@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)))(svelte@5.33.6)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) - debug: 4.4.1 + '@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)))(svelte@5.53.6)(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.17 - svelte: 5.33.6 - vite: 5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0) - vitefu: 1.0.6(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)) - transitivePeerDependencies: - - supports-color + magic-string: 0.30.21 + obug: 2.1.1 + svelte: 5.53.6 + vite: 7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0) + vitefu: 1.1.1(vite@7.3.1(@types/node@22.15.24)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0)) '@swc/core-darwin-arm64@1.11.29': optional: true @@ -9744,7 +9708,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.28.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -9752,6 +9716,10 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 + '@testing-library/svelte-core@1.0.0(svelte@5.53.6)': + dependencies: + svelte: 5.53.6 + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': dependencies: '@testing-library/dom': 10.4.0 @@ -9760,7 +9728,7 @@ snapshots: '@trysound/sax@0.2.0': {} - '@tsconfig/node10@1.0.11': + '@tsconfig/node10@1.0.12': optional: true '@tsconfig/node12@1.0.11': @@ -9779,7 +9747,7 @@ snapshots: '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/aria-query@5.0.4': {} @@ -9824,16 +9792,16 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.56.0 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/eslint@8.56.0': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/estree@1.0.7': {} @@ -9895,8 +9863,6 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/pug@2.0.10': {} - '@types/react-dom@18.3.7(@types/react@18.3.23)': dependencies: '@types/react': 18.3.23 @@ -9924,7 +9890,7 @@ snapshots: '@types/semver@7.7.0': {} - '@types/statuses@2.0.5': + '@types/statuses@2.0.6': optional: true '@types/supports-color@8.1.3': {} @@ -10292,7 +10258,7 @@ snapshots: '@vue/compiler-ssr': 3.5.16 '@vue/shared': 3.5.16 estree-walker: 2.0.2 - magic-string: 0.30.17 + magic-string: 0.30.21 postcss: 8.5.6 source-map-js: 1.2.1 @@ -10454,15 +10420,18 @@ snapshots: dependencies: acorn: 8.15.0 - acorn-walk@8.3.4: + acorn-walk@8.3.5: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 optional: true acorn@8.14.1: {} acorn@8.15.0: {} + acorn@8.16.0: + optional: true + agent-base@7.1.3: {} ajv-formats@2.1.1(ajv@8.17.1): @@ -10492,11 +10461,6 @@ snapshots: ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - optional: true - ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -10533,7 +10497,7 @@ snapshots: dependencies: dequal: 2.0.3 - aria-query@5.3.2: {} + aria-query@5.3.1: {} array-flatten@1.1.1: {} @@ -10696,8 +10660,6 @@ snapshots: buffer-crc32@0.2.13: {} - buffer-crc32@1.0.0: {} - buffer-from@1.1.2: {} buffer@5.7.1: @@ -10782,6 +10744,10 @@ snapshots: dependencies: readdirp: 4.1.2 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chrome-trace-event@1.0.4: {} chromium-bidi@0.5.17(devtools-protocol@0.0.1262051): @@ -10795,7 +10761,7 @@ snapshots: dependencies: devtools-protocol: 0.0.1439962 mitt: 3.0.1 - zod: 3.25.36 + zod: 3.25.76 ci-info@3.9.0: {} @@ -11306,12 +11272,20 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decimal.js@10.5.0: {} decode-named-character-reference@1.1.0: dependencies: character-entities: 2.0.2 + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + dedent-js@1.0.1: {} deep-is@0.1.4: {} @@ -11340,7 +11314,10 @@ snapshots: detect-libc@2.0.4: {} - devalue@5.1.1: {} + detect-libc@2.1.2: + optional: true + + devalue@5.6.3: {} devlop@1.1.0: dependencies: @@ -11352,7 +11329,7 @@ snapshots: didyoumean@1.2.2: {} - diff@4.0.2: + diff@4.0.4: optional: true diff@5.2.0: {} @@ -11464,8 +11441,6 @@ snapshots: dependencies: es-errors: 1.3.0 - es6-promise@3.3.1: {} - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -11697,7 +11672,7 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@1.4.6: + esrap@2.2.3: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -12057,7 +12032,7 @@ snapshots: dependencies: lodash: 4.17.21 - graphql@16.11.0: + graphql@16.13.0: optional: true has-flag@4.0.0: {} @@ -12146,10 +12121,6 @@ snapshots: ieee754@1.2.1: {} - ignore-walk@5.0.1: - dependencies: - minimatch: 5.1.6 - ignore@5.3.2: {} ignore@7.0.5: {} @@ -12454,7 +12425,7 @@ snapshots: lightningcss@1.30.1: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.2 optionalDependencies: lightningcss-darwin-arm64: 1.30.1 lightningcss-darwin-x64: 1.30.1 @@ -12631,11 +12602,11 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-from-markdown@2.0.2: + mdast-util-from-markdown@2.0.3: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -12769,7 +12740,7 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 mdast-util-to-markdown@1.5.0: dependencies: @@ -12791,7 +12762,7 @@ snapshots: mdast-util-to-string: 4.0.0 micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 zwitch: 2.0.4 mdast-util-to-string@3.2.0: @@ -12871,7 +12842,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -13042,7 +13013,7 @@ snapshots: micromark-factory-mdx-expression@1.0.9: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 micromark-util-symbol: 1.1.0 @@ -13146,7 +13117,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.3.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -13158,7 +13129,7 @@ snapshots: micromark-util-events-to-acorn@1.2.3: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/unist': 2.0.6 estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 @@ -13245,8 +13216,8 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 - decode-named-character-reference: 1.1.0 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -13303,10 +13274,6 @@ snapshots: mitt@3.0.1: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - moment-mini@2.29.4: {} mri@1.2.0: {} @@ -13324,13 +13291,13 @@ snapshots: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.12(@types/node@22.15.24) + '@inquirer/confirm': 5.1.21(@types/node@22.15.24) '@mswjs/interceptors': 0.38.7 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - graphql: 16.11.0 + '@types/statuses': 2.0.6 + graphql: 16.13.0 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 @@ -13416,14 +13383,8 @@ snapshots: normalize-range@0.1.2: {} - npm-bundled@2.0.1: - dependencies: - npm-normalize-package-bin: 2.0.0 - npm-check-updates@19.3.2: {} - npm-normalize-package-bin@2.0.0: {} - npm-normalize-package-bin@3.0.1: {} npm-package-arg@12.0.2: @@ -13433,13 +13394,6 @@ snapshots: semver: 7.7.4 validate-npm-package-name: 6.0.2 - npm-packlist@5.1.3: - dependencies: - glob: 8.1.0 - ignore-walk: 5.0.1 - npm-bundled: 2.0.1 - npm-normalize-package-bin: 2.0.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -13544,6 +13498,8 @@ snapshots: dependencies: quansync: 0.2.11 + package-manager-detector@1.6.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -13778,9 +13734,10 @@ snapshots: punycode: 2.3.1 optional: true - publint@0.1.16: + publint@0.3.17: dependencies: - npm-packlist: 5.1.3 + '@publint/pack': 0.1.4 + package-manager-detector: 1.6.0 picocolors: 1.1.1 sade: 1.8.1 @@ -13808,9 +13765,9 @@ snapshots: dependencies: '@puppeteer/browsers': 2.10.5 chromium-bidi: 5.1.0(devtools-protocol@0.0.1439962) - debug: 4.4.1 + debug: 4.4.3 devtools-protocol: 0.0.1439962 - typed-query-selector: 2.12.0 + typed-query-selector: 2.12.1 ws: 8.19.0 transitivePeerDependencies: - bare-buffer @@ -13825,7 +13782,7 @@ snapshots: cosmiconfig: 9.0.0(typescript@5.9.3) devtools-protocol: 0.0.1439962 puppeteer-core: 24.9.0 - typed-query-selector: 2.12.0 + typed-query-selector: 2.12.1 transitivePeerDependencies: - bare-buffer - bufferutil @@ -13982,6 +13939,8 @@ snapshots: readdirp@4.1.2: {} + readdirp@5.0.0: {} + redux-thunk@3.1.0(redux@5.0.1): dependencies: redux: 5.0.1 @@ -14326,7 +14285,7 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -14471,10 +14430,6 @@ snapshots: reusify@1.1.0: {} - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -14588,13 +14543,6 @@ snapshots: safer-buffer@2.1.2: {} - sander@0.5.1: - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -14657,7 +14605,7 @@ snapshots: transitivePeerDependencies: - supports-color - set-cookie-parser@2.7.1: {} + set-cookie-parser@3.0.1: {} setprototypeof@1.2.0: {} @@ -14810,13 +14758,6 @@ snapshots: '@babel/types': 7.27.3 solid-js: 1.9.11 - sorcery@0.11.1: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - buffer-crc32: 1.0.0 - minimist: 1.2.8 - sander: 0.5.1 - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -14923,10 +14864,6 @@ snapshots: strip-bom@4.0.0: {} - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - strip-indent@4.0.0: dependencies: min-indent: 1.0.1 @@ -14964,72 +14901,52 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@3.8.6(@babel/core@7.29.0)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.24)(typescript@5.9.3)))(postcss@8.5.6)(svelte@5.33.6): + svelte-check@4.4.4(picomatch@4.0.3)(svelte@5.53.6)(typescript@5.9.3): dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.33.6 - svelte-preprocess: 5.1.4(@babel/core@7.29.0)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.24)(typescript@5.9.3)))(postcss@8.5.6)(svelte@5.33.6)(typescript@5.9.3) + svelte: 5.53.6 typescript: 5.9.3 transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss + - picomatch svelte-dev-helper@1.1.9: {} - svelte-hmr@0.14.12(svelte@5.33.6): + svelte-hmr@0.14.12(svelte@5.53.6): dependencies: - svelte: 5.33.6 + svelte: 5.53.6 - svelte-loader@3.2.4(svelte@5.33.6): + svelte-loader@3.2.4(svelte@5.53.6): dependencies: loader-utils: 2.0.4 - svelte: 5.33.6 + svelte: 5.53.6 svelte-dev-helper: 1.1.9 - svelte-hmr: 0.14.12(svelte@5.33.6) - - svelte-preprocess@5.1.4(@babel/core@7.29.0)(postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.24)(typescript@5.9.3)))(postcss@8.5.6)(svelte@5.33.6)(typescript@5.9.3): - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.17 - sorcery: 0.11.1 - strip-indent: 3.0.0 - svelte: 5.33.6 - optionalDependencies: - '@babel/core': 7.29.0 - postcss: 8.5.6 - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.24)(typescript@5.9.3)) - typescript: 5.9.3 + svelte-hmr: 0.14.12(svelte@5.53.6) - svelte2tsx@0.7.39(svelte@5.33.6)(typescript@5.9.3): + svelte2tsx@0.7.39(svelte@5.53.6)(typescript@5.9.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.33.6 + svelte: 5.53.6 typescript: 5.9.3 - svelte@5.33.6: + svelte@5.53.6: dependencies: - '@ampproject/remapping': 2.3.0 + '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) '@types/estree': 1.0.7 + '@types/trusted-types': 2.0.7 acorn: 8.15.0 - aria-query: 5.3.2 + aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 + devalue: 5.6.3 esm-env: 1.2.2 - esrap: 1.4.6 + esrap: 2.2.3 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.17 @@ -15130,7 +15047,7 @@ snapshots: terser-webpack-plugin@5.3.14(webpack@5.99.9): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 @@ -15223,16 +15140,16 @@ snapshots: ts-node@10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@22.15.24)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.15.24 - acorn: 8.15.0 - acorn-walk: 8.3.4 + acorn: 8.16.0 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 4.0.4 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 @@ -15243,7 +15160,7 @@ snapshots: ts-toolbelt@9.6.0: {} - tsdown@0.20.3(typescript@5.9.3): + tsdown@0.20.3(publint@0.3.17)(typescript@5.9.3): dependencies: ansis: 4.2.0 cac: 6.7.14 @@ -15262,6 +15179,7 @@ snapshots: unconfig-core: 7.4.2 unrun: 0.2.27 optionalDependencies: + publint: 0.3.17 typescript: 5.9.3 transitivePeerDependencies: - '@ts-macro/tsc' @@ -15312,9 +15230,6 @@ snapshots: type-fest@0.20.2: {} - type-fest@0.21.3: - optional: true - type-fest@4.41.0: optional: true @@ -15323,7 +15238,7 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typed-query-selector@2.12.0: {} + typed-query-selector@2.12.1: {} typedarray@0.0.6: {} @@ -15480,7 +15395,7 @@ snapshots: dependencies: '@types/unist': 2.0.6 - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -15524,10 +15439,10 @@ snapshots: '@types/unist': 2.0.6 unist-util-is: 5.2.1 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 unist-util-visit@2.0.3: dependencies: @@ -15547,11 +15462,11 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universalify@0.1.2: {} @@ -15652,7 +15567,7 @@ snapshots: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.3 - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -15695,7 +15610,7 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 vite-plugin-solid@2.11.6(solid-js@1.9.11)(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)): dependencies: @@ -15738,10 +15653,6 @@ snapshots: tsx: 4.19.4 yaml: 2.8.0 - vitefu@1.0.6(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)): - optionalDependencies: - vite: 5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0) - vitefu@1.1.1(vite@5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0)): optionalDependencies: vite: 5.4.19(@types/node@22.15.24)(lightningcss@1.30.1)(terser@5.40.0) @@ -15759,6 +15670,12 @@ snapshots: '@types/react': 19.1.12 '@types/react-dom': 19.1.9(@types/react@19.1.12) + vitest-browser-svelte@2.0.2(svelte@5.53.6)(vitest@4.0.18): + dependencies: + '@testing-library/svelte-core': 1.0.0(svelte@5.53.6) + svelte: 5.53.6 + vitest: 4.0.18(@types/node@22.15.24)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(lightningcss@1.30.1)(msw@2.8.6(@types/node@22.15.24)(typescript@5.9.3))(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0) + vitest@4.0.18(@types/node@22.15.24)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(lightningcss@1.30.1)(msw@2.8.6(@types/node@22.15.24)(typescript@5.9.3))(terser@5.40.0)(tsx@4.19.4)(yaml@2.8.0): dependencies: '@vitest/expect': 4.0.18 @@ -15951,7 +15868,7 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.2: + yoctocolors-cjs@2.1.3: optional: true zimmerframe@1.1.2: {} @@ -15960,7 +15877,7 @@ snapshots: zod@3.22.4: {} - zod@3.25.36: {} + zod@3.25.76: {} zwitch@2.0.4: {}