Using keys to preserve values between reloads (#8056)

* changes

* add changeset

* changes

* add changeset

* changes

* changes

* changes

* changes

* changes

* changes

* add changeset

* rev pn

* changes

* changes

---------

Co-authored-by: Ali Abid <aliabid94@gmail.com>
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
This commit is contained in:
aliabid94 2024-04-25 11:25:53 -07:00 committed by GitHub
parent 0a42e96537
commit 2e469a5f99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 231 additions and 150 deletions

View File

@ -0,0 +1,7 @@
---
"@gradio/app": minor
"@gradio/client": minor
"gradio": minor
---
feat:Using keys to preserve values between reloads

View File

@ -51,6 +51,7 @@ export class Client {
pending_diff_streams: Record<string, any[][]> = {};
event_callbacks: Record<string, () => Promise<void>> = {};
unclosed_events: Set<string> = new Set();
heartbeat_event: EventSource | null = null;
fetch_implementation(
input: RequestInfo | URL,
@ -129,7 +130,7 @@ export class Client {
const heartbeat_url = new URL(
`${this.config.root}/heartbeat/${this.session_hash}`
);
this.eventSource_factory(heartbeat_url); // Just connect to the endpoint without parsing the response. Ref: https://github.com/gradio-app/gradio/pull/7974#discussion_r1557717540
this.heartbeat_event = this.eventSource_factory(heartbeat_url); // Just connect to the endpoint without parsing the response. Ref: https://github.com/gradio-app/gradio/pull/7974#discussion_r1557717540
if (this.config.space_id && this.options.hf_token) {
this.jwt = await get_jwt(
@ -157,6 +158,10 @@ export class Client {
return client;
}
close(): void {
this.heartbeat_event?.close();
}
static async duplicate(
app_reference: string,
options: DuplicateOptions = {}

View File

@ -120,6 +120,7 @@ class Block:
self.state_session_capacity = 10000
self.temp_files: set[str] = set()
self.GRADIO_CACHE = get_upload_folder()
self.key: int | str | None = None
# Keep tracks of files that should not be deleted when the delete_cache parmaeter is set
# These files are the default value of the component and files that are used in examples
self.keep_in_cache = set()
@ -640,6 +641,7 @@ class BlocksConfig:
"props": utils.delete_none(props),
"skip_api": block.skip_api,
"component_class_id": getattr(block, "component_class_id", None),
"key": block.key,
}
if not block.skip_api:
block_config["api_info"] = block.api_info() # type: ignore
@ -2162,6 +2164,11 @@ Received outputs:
self.validate_queue_settings()
self.max_file_size = utils._parse_file_size(max_file_size)
if self.dev_mode:
for block in self.blocks.values():
if block.key is None:
block.key = f"__{block._id}__"
self.config = self.get_config_file()
self.max_threads = max_threads
self._queue.max_thread_count = max_threads

View File

@ -289,11 +289,11 @@ class App(FastAPI):
if app.change_event and app.change_event.is_set():
app.change_event.clear()
yield """data: CHANGE\n\n"""
yield """event: reload\ndata: {}\n\n"""
await asyncio.sleep(check_rate)
if time.perf_counter() - last_heartbeat > heartbeat_rate:
yield """data: HEARTBEAT\n\n"""
yield """event: heartbeat\ndata: {}\n\n"""
last_heartbeat = time.time()
return StreamingResponse(

View File

@ -103,19 +103,13 @@ class BaseReloader(ABC):
def running_app(self) -> App:
pass
def queue_changed(self, demo: Blocks):
return (
hasattr(self.running_app.blocks, "_queue") and not hasattr(demo, "_queue")
) or (
not hasattr(self.running_app.blocks, "_queue") and hasattr(demo, "_queue")
)
def swap_blocks(self, demo: Blocks):
assert self.running_app.blocks # noqa: S101
# Copy over the blocks to get new components and events but
# not a new queue
self.running_app.blocks._queue.block_fns = demo.fns
demo._queue = self.running_app.blocks._queue
demo.max_file_size = self.running_app.blocks.max_file_size
self.running_app.state_holder.reset(demo)
self.running_app.blocks = demo
demo._queue.reload()
@ -155,7 +149,11 @@ class SourceFileReloader(BaseReloader):
self.change_event.set()
def swap_blocks(self, demo: Blocks):
old_blocks = self.running_app.blocks
super().swap_blocks(demo)
if old_blocks:
reassign_keys(old_blocks, demo)
demo.config = demo.get_config_file()
self.alert_change()
@ -285,17 +283,48 @@ def watchfn(reloader: SourceFileReloader):
mtimes = {}
continue
demo = getattr(module, reloader.demo_name)
if reloader.queue_changed(demo):
print(
"Reloading failed. The new demo has a queue and the old one doesn't (or vice versa). "
"Please launch your demo again"
)
else:
reloader.swap_blocks(demo)
reloader.swap_blocks(demo)
mtimes = {}
time.sleep(0.05)
def reassign_keys(old_blocks: Blocks, new_blocks: Blocks):
from gradio.blocks import BlockContext
assigned_keys = [
block.key for block in new_blocks.children if block.key is not None
]
def reassign_context_keys(
old_context: BlockContext | None, new_context: BlockContext
):
for i, new_block in enumerate(new_context.children):
if old_context and i < len(old_context.children):
old_block = old_context.children[i]
else:
old_block = None
if new_block.key is None:
if (
old_block.__class__ == new_block.__class__
and old_block is not None
and old_block.key not in assigned_keys
):
new_block.key = old_block.key
else:
new_block.key = f"__{new_block._id}__"
if isinstance(new_block, BlockContext):
if (
isinstance(old_block, BlockContext)
and old_block.__class__ == new_block.__class__
):
reassign_context_keys(old_block, new_block)
else:
reassign_context_keys(None, new_block)
reassign_context_keys(old_blocks, new_blocks)
def colab_check() -> bool:
"""
Check if interface is launching from Google Colab

View File

@ -18,12 +18,17 @@
import logo from "./images/logo.svg";
import api_logo from "./api_docs/img/api-logo.svg";
import { create_components, AsyncFunction } from "./init";
import {
create_components,
AsyncFunction,
restore_keyed_values
} from "./init";
setupi18n();
export let root: string;
export let components: ComponentMeta[];
let old_components: ComponentMeta[] = components;
export let layout: LayoutNode;
export let dependencies: Dependency[];
export let title = "Gradio";
@ -60,7 +65,8 @@
app,
options: {
fill_height
}
},
callback: () => restore_keyed_values(old_components, components)
});
$: {

View File

@ -307,21 +307,20 @@
const { host } = new URL(api_url);
let url = new URL(`http://${host}/dev/reload`);
eventSource = new EventSource(url);
eventSource.onmessage = async function (event) {
if (event.data === "CHANGE") {
app = await Client.connect(api_url, {
status_callback: handle_status
});
eventSource.addEventListener("reload", async (event) => {
app.close();
app = await Client.connect(api_url, {
status_callback: handle_status
});
if (!app.config) {
throw new Error("Could not resolve app config");
}
config = app.config;
window.__gradio_space__ = config.space_id;
await mount_custom_css(config.css);
if (!app.config) {
throw new Error("Could not resolve app config");
}
};
config = app.config;
window.__gradio_space__ = config.space_id;
await mount_custom_css(config.css);
});
}, 200);
}
});

View File

@ -38,6 +38,7 @@ export function create_components(): {
options: {
fill_height: boolean;
};
callback?: () => void;
}) => void;
} {
let _component_map: Map<number, ComponentMeta>;
@ -61,7 +62,8 @@ export function create_components(): {
layout,
dependencies,
root,
options
options,
callback
}: {
app: client_return;
components: ComponentMeta[];
@ -71,6 +73,7 @@ export function create_components(): {
options: {
fill_height: boolean;
};
callback?: () => void;
}): void {
app = _app;
_components = components;
@ -89,7 +92,8 @@ export function create_components(): {
has_modes: false,
instance: null as unknown as ComponentMeta["instance"],
component: null as unknown as ComponentMeta["component"],
component_class_id: ""
component_class_id: "",
key: null
};
components.push(_rootNode);
@ -120,6 +124,9 @@ export function create_components(): {
walk_layout(layout, root).then(() => {
layout_store.set(_rootNode);
if (callback) {
callback();
}
});
}
@ -481,3 +488,23 @@ export function preload_all_components(
return constructor_map;
}
export const restore_keyed_values = (
old_components: ComponentMeta[],
new_components: ComponentMeta[]
): void => {
let component_values_by_key: Record<string | number, ComponentMeta> = {};
old_components.forEach((component) => {
if (component.key) {
component_values_by_key[component.key] = component;
}
});
new_components.forEach((component) => {
if (component.key) {
const old_component = component_values_by_key[component.key];
if (old_component) {
component.props.value = old_component.props.value;
}
}
});
};

View File

@ -26,6 +26,7 @@ export interface ComponentMeta {
children?: ComponentMeta[];
value?: any;
component_class_id: string;
key: string | number | null;
}
/** Dictates whether a dependency is continous and/or a generator */

View File

@ -28,13 +28,13 @@ importers:
version: 2.2.0
'@playwright/experimental-ct-svelte':
specifier: ^1.39.0
version: 1.39.0(@types/node@20.3.2)(svelte@4.2.2)(vite@5.2.9)
version: 1.39.0(@types/node@20.3.2)(svelte@4.2.2)(vite@5.2.10)
'@playwright/test':
specifier: ^1.39.0
version: 1.39.0
'@sveltejs/vite-plugin-svelte':
specifier: ^3.1.0
version: 3.1.0(svelte@4.2.2)(vite@5.2.9)
version: 3.1.0(svelte@4.2.2)(vite@5.2.10)
'@tailwindcss/forms':
specifier: ^0.5.0
version: 0.5.0(tailwindcss@3.1.6)
@ -160,7 +160,7 @@ importers:
version: 0.3.34(svelte@4.2.2)(typescript@5.0.2)
vite:
specifier: ^5.2.9
version: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
version: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite-plugin-turbosnap:
specifier: 1.0.3
version: 1.0.3
@ -182,7 +182,7 @@ importers:
version: 8.0.2(react@18.2.0)
'@storybook/addon-svelte-csf':
specifier: ^4.1.2
version: 4.1.2(@storybook/svelte@8.0.2)(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.9)
version: 4.1.2(@storybook/svelte@8.0.2)(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.10)
'@storybook/blocks':
specifier: ^8.0.2
version: 8.0.2(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)
@ -194,7 +194,7 @@ importers:
version: 8.0.2(svelte@4.2.2)
'@storybook/svelte-vite':
specifier: ^8.0.2
version: 8.0.2(@babel/core@7.23.3)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.0.2)(vite@5.2.9)
version: 8.0.2(@babel/core@7.23.3)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.0.2)(vite@5.2.10)
'@storybook/test':
specifier: ^8.0.2
version: 8.0.2(vitest@1.4.0)
@ -283,7 +283,7 @@ importers:
version: 3.0.1(@sveltejs/kit@2.5.7)
'@sveltejs/kit':
specifier: ^2.5.7
version: 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9)
version: 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10)
'@tailwindcss/forms':
specifier: ^0.5.0
version: 0.5.0(tailwindcss@3.1.6)
@ -1399,7 +1399,7 @@ importers:
dependencies:
'@sveltejs/vite-plugin-svelte':
specifier: ^3.1.0
version: 3.1.0(svelte@4.2.12)(vite@5.2.9)
version: 3.1.0(svelte@4.2.12)(vite@5.2.10)
'@types/which':
specifier: ^3.0.0
version: 3.0.0
@ -1429,7 +1429,7 @@ importers:
version: 0.16.0(svelte@4.2.12)
vite:
specifier: ^5.2.9
version: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
version: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
which:
specifier: 4.0.0
version: 4.0.0
@ -5392,13 +5392,13 @@ packages:
- terser
dev: false
/@playwright/experimental-ct-svelte@1.39.0(@types/node@20.3.2)(svelte@4.2.2)(vite@5.2.9):
/@playwright/experimental-ct-svelte@1.39.0(@types/node@20.3.2)(svelte@4.2.2)(vite@5.2.10):
resolution: {integrity: sha512-8L7BJOi19XPPrKl6NqRgC6vBlA7VRtdCe2/UeaPIrKPVtcyYwKTZwCdTIp3BRedSdsOCY4Aq2cV4iRl9qn5LTw==}
engines: {node: '>=16'}
hasBin: true
dependencies:
'@playwright/experimental-ct-core': 1.39.0(@types/node@20.3.2)
'@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.2.2)(vite@5.2.10)
transitivePeerDependencies:
- '@types/node'
- less
@ -5559,113 +5559,113 @@ packages:
picomatch: 2.3.1
rollup: 3.28.0
/@rollup/rollup-android-arm-eabi@4.14.3:
resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==}
/@rollup/rollup-android-arm-eabi@4.16.4:
resolution: {integrity: sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==}
cpu: [arm]
os: [android]
requiresBuild: true
optional: true
/@rollup/rollup-android-arm64@4.14.3:
resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==}
/@rollup/rollup-android-arm64@4.16.4:
resolution: {integrity: sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==}
cpu: [arm64]
os: [android]
requiresBuild: true
optional: true
/@rollup/rollup-darwin-arm64@4.14.3:
resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==}
/@rollup/rollup-darwin-arm64@4.16.4:
resolution: {integrity: sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
optional: true
/@rollup/rollup-darwin-x64@4.14.3:
resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==}
/@rollup/rollup-darwin-x64@4.16.4:
resolution: {integrity: sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==}
cpu: [x64]
os: [darwin]
requiresBuild: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.14.3:
resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==}
/@rollup/rollup-linux-arm-gnueabihf@4.16.4:
resolution: {integrity: sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==}
cpu: [arm]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-arm-musleabihf@4.14.3:
resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==}
/@rollup/rollup-linux-arm-musleabihf@4.16.4:
resolution: {integrity: sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==}
cpu: [arm]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.14.3:
resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==}
/@rollup/rollup-linux-arm64-gnu@4.16.4:
resolution: {integrity: sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.14.3:
resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==}
/@rollup/rollup-linux-arm64-musl@4.16.4:
resolution: {integrity: sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-powerpc64le-gnu@4.14.3:
resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==}
/@rollup/rollup-linux-powerpc64le-gnu@4.16.4:
resolution: {integrity: sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==}
cpu: [ppc64]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.14.3:
resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==}
/@rollup/rollup-linux-riscv64-gnu@4.16.4:
resolution: {integrity: sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-s390x-gnu@4.14.3:
resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==}
/@rollup/rollup-linux-s390x-gnu@4.16.4:
resolution: {integrity: sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==}
cpu: [s390x]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.14.3:
resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==}
/@rollup/rollup-linux-x64-gnu@4.16.4:
resolution: {integrity: sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-linux-x64-musl@4.14.3:
resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==}
/@rollup/rollup-linux-x64-musl@4.16.4:
resolution: {integrity: sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
/@rollup/rollup-win32-arm64-msvc@4.14.3:
resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==}
/@rollup/rollup-win32-arm64-msvc@4.16.4:
resolution: {integrity: sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.14.3:
resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==}
/@rollup/rollup-win32-ia32-msvc@4.16.4:
resolution: {integrity: sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==}
cpu: [ia32]
os: [win32]
requiresBuild: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.14.3:
resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==}
/@rollup/rollup-win32-x64-msvc@4.16.4:
resolution: {integrity: sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==}
cpu: [x64]
os: [win32]
requiresBuild: true
@ -5833,7 +5833,7 @@ packages:
ts-dedent: 2.2.0
dev: true
/@storybook/addon-svelte-csf@4.1.2(@storybook/svelte@8.0.2)(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.9):
/@storybook/addon-svelte-csf@4.1.2(@storybook/svelte@8.0.2)(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.10):
resolution: {integrity: sha512-4aNlI8tdzkNyUK4fxRgAGTtgYLT97KBAqaiJLu5YtXI4YFarDcmUgLnPet0oj4QxQAfbcId+vGWhSIMG6q6lNg==}
peerDependencies:
'@storybook/svelte': ^7.0.0 || ^8.0.0 || ^8.0.0-beta.0
@ -5851,12 +5851,12 @@ packages:
dependencies:
'@babel/runtime': 7.23.2
'@storybook/svelte': 8.0.2(svelte@4.2.2)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.2)(vite@5.2.10)
dedent: 1.5.1
fs-extra: 11.1.1
magic-string: 0.30.7
svelte: 4.2.2
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- babel-plugin-macros
dev: true
@ -5936,7 +5936,7 @@ packages:
- supports-color
dev: true
/@storybook/builder-vite@8.0.2(typescript@5.0.2)(vite@5.2.9):
/@storybook/builder-vite@8.0.2(typescript@5.0.2)(vite@5.2.10):
resolution: {integrity: sha512-E2OBd7gZSmI2WToAkQk3l5ph9R6OMnva1U4rk8uk+g5y5UcczhFFENWFzlbLV+covrqzyzMOA/FvMpZuF8D+Aw==}
peerDependencies:
'@preact/preset-vite': '*'
@ -5969,7 +5969,7 @@ packages:
magic-string: 0.30.7
ts-dedent: 2.2.0
typescript: 5.0.2
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- encoding
- supports-color
@ -6329,7 +6329,7 @@ packages:
qs: 6.11.2
dev: true
/@storybook/svelte-vite@8.0.2(@babel/core@7.23.3)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.0.2)(vite@5.2.9):
/@storybook/svelte-vite@8.0.2(@babel/core@7.23.3)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.0.2)(vite@5.2.10):
resolution: {integrity: sha512-AA6xpShSuYK5VbgNSMwLKofmuP7PTr3yh3kogOrCzYei7z94tsr+zEBhbavYinSrSulHLGvN+QRv8Ib6Y4B+CA==}
engines: {node: '>=18.0.0'}
peerDependencies:
@ -6337,16 +6337,16 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.65
vite: ^4.0.0 || ^5.0.0
dependencies:
'@storybook/builder-vite': 8.0.2(typescript@5.0.2)(vite@5.2.9)
'@storybook/builder-vite': 8.0.2(typescript@5.0.2)(vite@5.2.10)
'@storybook/node-logger': 8.0.2
'@storybook/svelte': 8.0.2(svelte@4.2.2)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.2)(vite@5.2.10)
magic-string: 0.30.7
svelte: 4.2.2
svelte-preprocess: 5.1.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.0.2)
sveltedoc-parser: 4.2.1
ts-dedent: 2.2.0
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- '@babel/core'
- '@preact/preset-vite'
@ -6455,7 +6455,7 @@ packages:
peerDependencies:
'@sveltejs/kit': ^2.0.0
dependencies:
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9)
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10)
import-meta-resolve: 4.0.0
dev: true
@ -6464,7 +6464,7 @@ packages:
peerDependencies:
'@sveltejs/kit': ^2.0.0
dependencies:
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9)
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10)
dev: true
/@sveltejs/adapter-vercel@5.3.0(@sveltejs/kit@2.5.7):
@ -6472,7 +6472,7 @@ packages:
peerDependencies:
'@sveltejs/kit': ^2.4.0
dependencies:
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9)
'@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10)
'@vercel/nft': 0.26.4
esbuild: 0.20.2
transitivePeerDependencies:
@ -6480,7 +6480,7 @@ packages:
- supports-color
dev: false
/@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9):
/@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10):
resolution: {integrity: sha512-6uedTzrb7nQrw6HALxnPrPaXdIN2jJJTzTIl96Z3P5NiG+OAfpdPbrWrvkJ3GN4CfWqrmU4dJqwMMRMTD/C7ow==}
engines: {node: '>=18.13'}
hasBin: true
@ -6490,23 +6490,23 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.3
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.12)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.12)(vite@5.2.10)
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.0.0
esm-env: 1.0.0
import-meta-resolve: 4.0.0
kleur: 4.1.5
magic-string: 0.30.10
magic-string: 0.30.8
mrmime: 2.0.0
sade: 1.8.1
set-cookie-parser: 2.6.0
sirv: 2.0.4
svelte: 4.2.12
tiny-glob: 0.2.9
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
/@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.2.2)(vite@5.2.9):
/@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.2.2)(vite@5.2.10):
resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
@ -6514,15 +6514,15 @@ packages:
svelte: ^3.54.0 || ^4.0.0
vite: ^4.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.2.2)(vite@5.2.10)
debug: 4.3.4
svelte: 4.2.2
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- supports-color
dev: false
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9):
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10):
resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
@ -6530,14 +6530,14 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.12)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.12)(vite@5.2.10)
debug: 4.3.4
svelte: 4.2.12
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- supports-color
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.9):
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.10):
resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
@ -6545,68 +6545,68 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.2)(vite@5.2.10)
debug: 4.3.4
svelte: 4.2.2
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- supports-color
/@sveltejs/vite-plugin-svelte@2.5.2(svelte@4.2.2)(vite@5.2.9):
/@sveltejs/vite-plugin-svelte@2.5.2(svelte@4.2.2)(vite@5.2.10):
resolution: {integrity: sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0
vite: ^4.0.0
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.2.2)(vite@5.2.10)
debug: 4.3.4
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.5
svelte: 4.2.2
svelte-hmr: 0.15.3(svelte@4.2.2)
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vitefu: 0.2.5(vite@5.2.9)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vitefu: 0.2.5(vite@5.2.10)
transitivePeerDependencies:
- supports-color
dev: false
/@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.12)(vite@5.2.9):
/@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.12)(vite@5.2.10):
resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.12)(vite@5.2.10)
debug: 4.3.4
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.10
svelte: 4.2.12
svelte-hmr: 0.16.0(svelte@4.2.12)
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vitefu: 0.2.5(vite@5.2.9)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vitefu: 0.2.5(vite@5.2.10)
transitivePeerDependencies:
- supports-color
/@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.2)(vite@5.2.9):
/@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.2)(vite@5.2.10):
resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.9)
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.2)(vite@5.2.10)
debug: 4.3.4
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.10
svelte: 4.2.2
svelte-hmr: 0.16.0(svelte@4.2.2)
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vitefu: 0.2.5(vite@5.2.9)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vitefu: 0.2.5(vite@5.2.10)
transitivePeerDependencies:
- supports-color
@ -7263,7 +7263,7 @@ packages:
/@vitest/snapshot@1.4.0:
resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==}
dependencies:
magic-string: 0.30.7
magic-string: 0.30.8
pathe: 1.1.1
pretty-format: 29.7.0
@ -11448,6 +11448,12 @@ packages:
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
/magic-string@0.30.8:
resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
/make-dir@2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
@ -13114,29 +13120,29 @@ packages:
fsevents: 2.3.3
dev: false
/rollup@4.14.3:
resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==}
/rollup@4.16.4:
resolution: {integrity: sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.14.3
'@rollup/rollup-android-arm64': 4.14.3
'@rollup/rollup-darwin-arm64': 4.14.3
'@rollup/rollup-darwin-x64': 4.14.3
'@rollup/rollup-linux-arm-gnueabihf': 4.14.3
'@rollup/rollup-linux-arm-musleabihf': 4.14.3
'@rollup/rollup-linux-arm64-gnu': 4.14.3
'@rollup/rollup-linux-arm64-musl': 4.14.3
'@rollup/rollup-linux-powerpc64le-gnu': 4.14.3
'@rollup/rollup-linux-riscv64-gnu': 4.14.3
'@rollup/rollup-linux-s390x-gnu': 4.14.3
'@rollup/rollup-linux-x64-gnu': 4.14.3
'@rollup/rollup-linux-x64-musl': 4.14.3
'@rollup/rollup-win32-arm64-msvc': 4.14.3
'@rollup/rollup-win32-ia32-msvc': 4.14.3
'@rollup/rollup-win32-x64-msvc': 4.14.3
'@rollup/rollup-android-arm-eabi': 4.16.4
'@rollup/rollup-android-arm64': 4.16.4
'@rollup/rollup-darwin-arm64': 4.16.4
'@rollup/rollup-darwin-x64': 4.16.4
'@rollup/rollup-linux-arm-gnueabihf': 4.16.4
'@rollup/rollup-linux-arm-musleabihf': 4.16.4
'@rollup/rollup-linux-arm64-gnu': 4.16.4
'@rollup/rollup-linux-arm64-musl': 4.16.4
'@rollup/rollup-linux-powerpc64le-gnu': 4.16.4
'@rollup/rollup-linux-riscv64-gnu': 4.16.4
'@rollup/rollup-linux-s390x-gnu': 4.16.4
'@rollup/rollup-linux-x64-gnu': 4.16.4
'@rollup/rollup-linux-x64-musl': 4.16.4
'@rollup/rollup-win32-arm64-msvc': 4.16.4
'@rollup/rollup-win32-ia32-msvc': 4.16.4
'@rollup/rollup-win32-x64-msvc': 4.16.4
fsevents: 2.3.3
/rrweb-cssom@0.6.0:
@ -13722,8 +13728,8 @@ packages:
picocolors: 1.0.0
sade: 1.8.1
svelte: 4.2.2
svelte-preprocess: 5.1.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.2.2)
typescript: 5.2.2
svelte-preprocess: 5.1.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.4.3)
typescript: 5.4.3
transitivePeerDependencies:
- '@babel/core'
- coffeescript
@ -13925,7 +13931,7 @@ packages:
typescript: 5.0.2
dev: true
/svelte-preprocess@5.1.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.2.2):
/svelte-preprocess@5.1.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.4.3):
resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==}
engines: {node: '>= 16.0.0', pnpm: ^8.0.0}
requiresBuild: true
@ -13971,7 +13977,7 @@ packages:
sorcery: 0.11.0
strip-indent: 3.0.0
svelte: 4.2.2
typescript: 5.2.2
typescript: 5.4.3
dev: false
/svelte-range-slider-pips@2.0.1:
@ -14025,7 +14031,7 @@ packages:
estree-walker: 3.0.3
is-reference: 3.0.2
locate-character: 3.0.0
magic-string: 0.30.10
magic-string: 0.30.8
periscopic: 3.1.0
/svelte@4.2.2:
@ -14457,12 +14463,6 @@ packages:
engines: {node: '>=12.20'}
hasBin: true
/typescript@5.2.2:
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
engines: {node: '>=14.17'}
hasBin: true
dev: false
/typescript@5.4.3:
resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
engines: {node: '>=14.17'}
@ -15087,7 +15087,7 @@ packages:
debug: 4.3.4
pathe: 1.1.1
picocolors: 1.0.0
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
transitivePeerDependencies:
- '@types/node'
- less
@ -15138,8 +15138,8 @@ packages:
fsevents: 2.3.3
dev: false
/vite@5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1):
resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==}
/vite@5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1):
resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@ -15170,14 +15170,14 @@ packages:
esbuild: 0.20.2
lightningcss: 1.21.7
postcss: 8.4.38
rollup: 4.14.3
rollup: 4.16.4
sass: 1.66.1
stylus: 0.63.0
sugarss: 4.0.1(postcss@8.4.38)
optionalDependencies:
fsevents: 2.3.3
/vitefu@0.2.5(vite@5.2.9):
/vitefu@0.2.5(vite@5.2.10):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
@ -15185,7 +15185,7 @@ packages:
vite:
optional: true
dependencies:
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
/vitest@1.4.0(@types/node@20.3.2)(happy-dom@14.0.0)(jsdom@24.0.0):
resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==}
@ -15232,7 +15232,7 @@ packages:
strip-literal: 2.0.0
tinybench: 2.5.1
tinypool: 0.8.2
vite: 5.2.9(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite: 5.2.10(@types/node@20.3.2)(lightningcss@1.21.7)(sass@1.66.1)(stylus@0.63.0)(sugarss@4.0.1)
vite-node: 1.4.0(@types/node@20.3.2)
why-is-node-running: 2.2.2
transitivePeerDependencies: