diff --git a/frontend/.svelte-kit/ambient.d.ts b/frontend/.svelte-kit/ambient.d.ts
deleted file mode 100644
index 18881f9..0000000
--- a/frontend/.svelte-kit/ambient.d.ts
+++ /dev/null
@@ -1,242 +0,0 @@
-
-// this file is generated — do not edit it
-
-
-///
-
-/**
- * Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured).
- *
- * _Unlike_ [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination.
- *
- * ```ts
- * import { API_KEY } from '$env/static/private';
- * ```
- *
- * Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
- *
- * ```
- * MY_FEATURE_FLAG=""
- * ```
- *
- * You can override `.env` values from the command line like so:
- *
- * ```sh
- * MY_FEATURE_FLAG="enabled" npm run dev
- * ```
- */
-declare module '$env/static/private' {
- export const USER: string;
- export const npm_config_user_agent: string;
- export const XDG_SESSION_TYPE: string;
- export const npm_node_execpath: string;
- export const SHLVL: string;
- export const npm_config_noproxy: string;
- export const LESS: string;
- export const HOME: string;
- export const OLDPWD: string;
- export const DESKTOP_SESSION: string;
- export const npm_package_json: string;
- export const LSCOLORS: string;
- export const ZSH: string;
- export const GNOME_SHELL_SESSION_MODE: string;
- export const GTK_MODULES: string;
- export const PAGER: string;
- export const PS1: string;
- export const npm_config_userconfig: string;
- export const npm_config_local_prefix: string;
- export const SYSTEMD_EXEC_PID: string;
- export const DBUS_SESSION_BUS_ADDRESS: string;
- export const COLORTERM: string;
- export const COLOR: string;
- export const npm_config_metrics_registry: string;
- export const WAYLAND_DISPLAY: string;
- export const LOGNAME: string;
- export const SDKMAN_CANDIDATES_API: string;
- export const _: string;
- export const npm_config_prefix: string;
- export const MEMORY_PRESSURE_WATCH: string;
- export const XDG_SESSION_CLASS: string;
- export const USERNAME: string;
- export const TERM: string;
- export const npm_config_cache: string;
- export const GNOME_DESKTOP_SESSION_ID: string;
- export const npm_config_node_gyp: string;
- export const PATH: string;
- export const SDKMAN_CANDIDATES_DIR: string;
- export const NODE: string;
- export const npm_package_name: string;
- export const XDG_MENU_PREFIX: string;
- export const SDKMAN_BROKER_API: string;
- export const GNOME_TERMINAL_SCREEN: string;
- export const GNOME_SETUP_DISPLAY: string;
- export const XDG_RUNTIME_DIR: string;
- export const DISPLAY: string;
- export const LANG: string;
- export const XDG_CURRENT_DESKTOP: string;
- export const VIRTUAL_ENV_PROMPT: string;
- export const XMODIFIERS: string;
- export const XDG_SESSION_DESKTOP: string;
- export const XAUTHORITY: string;
- export const LS_COLORS: string;
- export const GNOME_TERMINAL_SERVICE: string;
- export const SDKMAN_DIR: string;
- export const SDKMAN_PLATFORM: string;
- export const npm_lifecycle_script: string;
- export const SSH_AUTH_SOCK: string;
- export const SHELL: string;
- export const npm_package_version: string;
- export const npm_lifecycle_event: string;
- export const QT_ACCESSIBILITY: string;
- export const GDMSESSION: string;
- export const GOOGLE_CLOUD_PROJECT: string;
- export const GPG_AGENT_INFO: string;
- export const VIRTUAL_ENV: string;
- export const QT_IM_MODULE: string;
- export const npm_config_globalconfig: string;
- export const npm_config_init_module: string;
- export const JAVA_HOME: string;
- export const PWD: string;
- export const npm_config_globalignorefile: string;
- export const npm_execpath: string;
- export const XDG_DATA_DIRS: string;
- export const npm_config_global_prefix: string;
- export const npm_command: string;
- export const QT_IM_MODULES: string;
- export const MEMORY_PRESSURE_WRITE: string;
- export const VTE_VERSION: string;
- export const INIT_CWD: string;
- export const EDITOR: string;
- export const NODE_ENV: string;
-}
-
-/**
- * Similar to [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
- *
- * Values are replaced statically at build time.
- *
- * ```ts
- * import { PUBLIC_BASE_URL } from '$env/static/public';
- * ```
- */
-declare module '$env/static/public' {
- export const PUBLIC_WS_URL: string;
-}
-
-/**
- * This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured).
- *
- * This module cannot be imported into client-side code.
- *
- * ```ts
- * import { env } from '$env/dynamic/private';
- * console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE);
- * ```
- *
- * > [!NOTE] In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
- */
-declare module '$env/dynamic/private' {
- export const env: {
- USER: string;
- npm_config_user_agent: string;
- XDG_SESSION_TYPE: string;
- npm_node_execpath: string;
- SHLVL: string;
- npm_config_noproxy: string;
- LESS: string;
- HOME: string;
- OLDPWD: string;
- DESKTOP_SESSION: string;
- npm_package_json: string;
- LSCOLORS: string;
- ZSH: string;
- GNOME_SHELL_SESSION_MODE: string;
- GTK_MODULES: string;
- PAGER: string;
- PS1: string;
- npm_config_userconfig: string;
- npm_config_local_prefix: string;
- SYSTEMD_EXEC_PID: string;
- DBUS_SESSION_BUS_ADDRESS: string;
- COLORTERM: string;
- COLOR: string;
- npm_config_metrics_registry: string;
- WAYLAND_DISPLAY: string;
- LOGNAME: string;
- SDKMAN_CANDIDATES_API: string;
- _: string;
- npm_config_prefix: string;
- MEMORY_PRESSURE_WATCH: string;
- XDG_SESSION_CLASS: string;
- USERNAME: string;
- TERM: string;
- npm_config_cache: string;
- GNOME_DESKTOP_SESSION_ID: string;
- npm_config_node_gyp: string;
- PATH: string;
- SDKMAN_CANDIDATES_DIR: string;
- NODE: string;
- npm_package_name: string;
- XDG_MENU_PREFIX: string;
- SDKMAN_BROKER_API: string;
- GNOME_TERMINAL_SCREEN: string;
- GNOME_SETUP_DISPLAY: string;
- XDG_RUNTIME_DIR: string;
- DISPLAY: string;
- LANG: string;
- XDG_CURRENT_DESKTOP: string;
- VIRTUAL_ENV_PROMPT: string;
- XMODIFIERS: string;
- XDG_SESSION_DESKTOP: string;
- XAUTHORITY: string;
- LS_COLORS: string;
- GNOME_TERMINAL_SERVICE: string;
- SDKMAN_DIR: string;
- SDKMAN_PLATFORM: string;
- npm_lifecycle_script: string;
- SSH_AUTH_SOCK: string;
- SHELL: string;
- npm_package_version: string;
- npm_lifecycle_event: string;
- QT_ACCESSIBILITY: string;
- GDMSESSION: string;
- GOOGLE_CLOUD_PROJECT: string;
- GPG_AGENT_INFO: string;
- VIRTUAL_ENV: string;
- QT_IM_MODULE: string;
- npm_config_globalconfig: string;
- npm_config_init_module: string;
- JAVA_HOME: string;
- PWD: string;
- npm_config_globalignorefile: string;
- npm_execpath: string;
- XDG_DATA_DIRS: string;
- npm_config_global_prefix: string;
- npm_command: string;
- QT_IM_MODULES: string;
- MEMORY_PRESSURE_WRITE: string;
- VTE_VERSION: string;
- INIT_CWD: string;
- EDITOR: string;
- NODE_ENV: string;
- [key: `PUBLIC_${string}`]: undefined;
- [key: `${string}`]: string | undefined;
- }
-}
-
-/**
- * Similar to [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
- *
- * Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead.
- *
- * ```ts
- * import { env } from '$env/dynamic/public';
- * console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE);
- * ```
- */
-declare module '$env/dynamic/public' {
- export const env: {
- PUBLIC_WS_URL: string;
- [key: `PUBLIC_${string}`]: string | undefined;
- }
-}
diff --git a/frontend/.svelte-kit/generated/client-optimized/app.js b/frontend/.svelte-kit/generated/client-optimized/app.js
deleted file mode 100644
index a3be32d..0000000
--- a/frontend/.svelte-kit/generated/client-optimized/app.js
+++ /dev/null
@@ -1,31 +0,0 @@
-export { matchers } from './matchers.js';
-
-export const nodes = [
- () => import('./nodes/0'),
- () => import('./nodes/1'),
- () => import('./nodes/2'),
- () => import('./nodes/3')
-];
-
-export const server_loads = [];
-
-export const dictionary = {
- "/": [2],
- "/settings": [3]
- };
-
-export const hooks = {
- handleError: (({ error }) => { console.error(error) }),
-
- reroute: (() => {}),
- transport: {}
-};
-
-export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));
-export const encoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.encode]));
-
-export const hash = false;
-
-export const decode = (type, value) => decoders[type](value);
-
-export { default as root } from '../root.js';
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client-optimized/matchers.js b/frontend/.svelte-kit/generated/client-optimized/matchers.js
deleted file mode 100644
index f6bd30a..0000000
--- a/frontend/.svelte-kit/generated/client-optimized/matchers.js
+++ /dev/null
@@ -1 +0,0 @@
-export const matchers = {};
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/0.js b/frontend/.svelte-kit/generated/client-optimized/nodes/0.js
deleted file mode 100644
index b2e56b2..0000000
--- a/frontend/.svelte-kit/generated/client-optimized/nodes/0.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as universal from "../../../../src/routes/+layout.ts";
-export { universal };
-export { default as component } from "../../../../src/routes/+layout.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/1.js b/frontend/.svelte-kit/generated/client-optimized/nodes/1.js
deleted file mode 100644
index ac3c6a5..0000000
--- a/frontend/.svelte-kit/generated/client-optimized/nodes/1.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default as component } from "../../../../src/routes/+error.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/2.js b/frontend/.svelte-kit/generated/client-optimized/nodes/2.js
deleted file mode 100644
index 740a1cf..0000000
--- a/frontend/.svelte-kit/generated/client-optimized/nodes/2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as universal from "../../../../src/routes/+page.ts";
-export { universal };
-export { default as component } from "../../../../src/routes/+page.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/3.js b/frontend/.svelte-kit/generated/client-optimized/nodes/3.js
deleted file mode 100644
index 6c3cedd..0000000
--- a/frontend/.svelte-kit/generated/client-optimized/nodes/3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as universal from "../../../../src/routes/settings/+page.ts";
-export { universal };
-export { default as component } from "../../../../src/routes/settings/+page.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client/app.js b/frontend/.svelte-kit/generated/client/app.js
deleted file mode 100644
index bd54588..0000000
--- a/frontend/.svelte-kit/generated/client/app.js
+++ /dev/null
@@ -1,35 +0,0 @@
-export { matchers } from './matchers.js';
-
-export const nodes = [
- () => import('./nodes/0'),
- () => import('./nodes/1'),
- () => import('./nodes/2'),
- () => import('./nodes/3'),
- () => import('./nodes/4'),
- () => import('./nodes/5')
-];
-
-export const server_loads = [];
-
-export const dictionary = {
- "/": [2],
- "/migration": [3],
- "/migration/mappings": [4],
- "/settings": [5]
- };
-
-export const hooks = {
- handleError: (({ error }) => { console.error(error) }),
-
- reroute: (() => {}),
- transport: {}
-};
-
-export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));
-export const encoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.encode]));
-
-export const hash = false;
-
-export const decode = (type, value) => decoders[type](value);
-
-export { default as root } from '../root.js';
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client/matchers.js b/frontend/.svelte-kit/generated/client/matchers.js
deleted file mode 100644
index f6bd30a..0000000
--- a/frontend/.svelte-kit/generated/client/matchers.js
+++ /dev/null
@@ -1 +0,0 @@
-export const matchers = {};
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client/nodes/0.js b/frontend/.svelte-kit/generated/client/nodes/0.js
deleted file mode 100644
index b2e56b2..0000000
--- a/frontend/.svelte-kit/generated/client/nodes/0.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as universal from "../../../../src/routes/+layout.ts";
-export { universal };
-export { default as component } from "../../../../src/routes/+layout.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client/nodes/1.js b/frontend/.svelte-kit/generated/client/nodes/1.js
deleted file mode 100644
index ac3c6a5..0000000
--- a/frontend/.svelte-kit/generated/client/nodes/1.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default as component } from "../../../../src/routes/+error.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client/nodes/2.js b/frontend/.svelte-kit/generated/client/nodes/2.js
deleted file mode 100644
index 740a1cf..0000000
--- a/frontend/.svelte-kit/generated/client/nodes/2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as universal from "../../../../src/routes/+page.ts";
-export { universal };
-export { default as component } from "../../../../src/routes/+page.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/client/nodes/3.js b/frontend/.svelte-kit/generated/client/nodes/3.js
deleted file mode 100644
index fb052f1..0000000
--- a/frontend/.svelte-kit/generated/client/nodes/3.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default as component } from "../../../../src/routes/migration/+page.svelte";
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/root.js b/frontend/.svelte-kit/generated/root.js
deleted file mode 100644
index 4d1e892..0000000
--- a/frontend/.svelte-kit/generated/root.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { asClassComponent } from 'svelte/legacy';
-import Root from './root.svelte';
-export default asClassComponent(Root);
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/root.svelte b/frontend/.svelte-kit/generated/root.svelte
deleted file mode 100644
index 0795183..0000000
--- a/frontend/.svelte-kit/generated/root.svelte
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-{#if constructors[1]}
- {@const Pyramid_0 = constructors[0]}
-
-
-
-
-
-
-{:else}
- {@const Pyramid_0 = constructors[0]}
-
-
-
-{/if}
-
-{#if mounted}
-
- {#if navigated}
- {title}
- {/if}
-
-{/if}
\ No newline at end of file
diff --git a/frontend/.svelte-kit/generated/server/internal.js b/frontend/.svelte-kit/generated/server/internal.js
deleted file mode 100644
index e4de4c2..0000000
--- a/frontend/.svelte-kit/generated/server/internal.js
+++ /dev/null
@@ -1,53 +0,0 @@
-
-import root from '../root.js';
-import { set_building, set_prerendering } from '__sveltekit/environment';
-import { set_assets } from '$app/paths/internal/server';
-import { set_manifest, set_read_implementation } from '__sveltekit/server';
-import { set_private_env, set_public_env } from '../../../node_modules/@sveltejs/kit/src/runtime/shared-server.js';
-
-export const options = {
- app_template_contains_nonce: false,
- async: false,
- csp: {"mode":"auto","directives":{"upgrade-insecure-requests":false,"block-all-mixed-content":false},"reportOnly":{"upgrade-insecure-requests":false,"block-all-mixed-content":false}},
- csrf_check_origin: true,
- csrf_trusted_origins: [],
- embedded: false,
- env_public_prefix: 'PUBLIC_',
- env_private_prefix: '',
- hash_routing: false,
- hooks: null, // added lazily, via `get_hooks`
- preload_strategy: "modulepreload",
- root,
- service_worker: false,
- service_worker_options: undefined,
- templates: {
- app: ({ head, body, assets, nonce, env }) => "\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t" + head + "\n\t\n\t\n\t\t" + body + "
\n\t\n\n",
- error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t\n\t\t\t
" + status + "\n\t\t\t
\n\t\t\t\t
" + message + "
\n\t\t\t\n\t\t
\n\t\n\n"
- },
- version_hash: "1v1g3pu"
-};
-
-export async function get_hooks() {
- let handle;
- let handleFetch;
- let handleError;
- let handleValidationError;
- let init;
-
-
- let reroute;
- let transport;
-
-
- return {
- handle,
- handleFetch,
- handleError,
- handleValidationError,
- init,
- reroute,
- transport
- };
-}
-
-export { set_assets, set_building, set_manifest, set_prerendering, set_private_env, set_public_env, set_read_implementation };
diff --git a/frontend/.svelte-kit/non-ambient.d.ts b/frontend/.svelte-kit/non-ambient.d.ts
deleted file mode 100644
index c120eae..0000000
--- a/frontend/.svelte-kit/non-ambient.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-
-// this file is generated — do not edit it
-
-
-declare module "svelte/elements" {
- export interface HTMLAttributes {
- 'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null;
- 'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null;
- 'data-sveltekit-preload-code'?:
- | true
- | ''
- | 'eager'
- | 'viewport'
- | 'hover'
- | 'tap'
- | 'off'
- | undefined
- | null;
- 'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null;
- 'data-sveltekit-reload'?: true | '' | 'off' | undefined | null;
- 'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null;
- }
-}
-
-export {};
-
-
-declare module "$app/types" {
- export interface AppTypes {
- RouteId(): "/" | "/migration" | "/migration/mappings" | "/settings";
- RouteParams(): {
-
- };
- LayoutParams(): {
- "/": Record;
- "/migration": Record;
- "/migration/mappings": Record;
- "/settings": Record
- };
- Pathname(): "/" | "/migration" | "/migration/" | "/migration/mappings" | "/migration/mappings/" | "/settings" | "/settings/";
- ResolvedPathname(): `${"" | `/${string}`}${ReturnType}`;
- Asset(): string & {};
- }
-}
\ No newline at end of file
diff --git a/frontend/.svelte-kit/output/client/.vite/manifest.json b/frontend/.svelte-kit/output/client/.vite/manifest.json
deleted file mode 100644
index 365e460..0000000
--- a/frontend/.svelte-kit/output/client/.vite/manifest.json
+++ /dev/null
@@ -1,162 +0,0 @@
-{
- ".svelte-kit/generated/client-optimized/app.js": {
- "file": "_app/immutable/entry/app.BXnpILpp.js",
- "name": "entry/app",
- "src": ".svelte-kit/generated/client-optimized/app.js",
- "isEntry": true,
- "imports": [
- "_BtL0wB3H.js",
- "_cv2LK44M.js",
- "_BxZpmA7Z.js",
- "_vVxDbqKK.js"
- ],
- "dynamicImports": [
- ".svelte-kit/generated/client-optimized/nodes/0.js",
- ".svelte-kit/generated/client-optimized/nodes/1.js",
- ".svelte-kit/generated/client-optimized/nodes/2.js",
- ".svelte-kit/generated/client-optimized/nodes/3.js"
- ]
- },
- ".svelte-kit/generated/client-optimized/nodes/0.js": {
- "file": "_app/immutable/nodes/0.DZdF_zz-.js",
- "name": "nodes/0",
- "src": ".svelte-kit/generated/client-optimized/nodes/0.js",
- "isEntry": true,
- "isDynamicEntry": true,
- "imports": [
- "_cv2LK44M.js",
- "_CRLlKr96.js",
- "_BtL0wB3H.js",
- "_xdjHc-A2.js",
- "_DXE57cnx.js",
- "_Dbod7Wv8.js"
- ],
- "css": [
- "_app/immutable/assets/0.RZHRvmcL.css"
- ]
- },
- ".svelte-kit/generated/client-optimized/nodes/1.js": {
- "file": "_app/immutable/nodes/1.Bh-fCbID.js",
- "name": "nodes/1",
- "src": ".svelte-kit/generated/client-optimized/nodes/1.js",
- "isEntry": true,
- "isDynamicEntry": true,
- "imports": [
- "_cv2LK44M.js",
- "_CRLlKr96.js",
- "_BtL0wB3H.js",
- "_DXE57cnx.js"
- ]
- },
- ".svelte-kit/generated/client-optimized/nodes/2.js": {
- "file": "_app/immutable/nodes/2.BmiXdPHI.js",
- "name": "nodes/2",
- "src": ".svelte-kit/generated/client-optimized/nodes/2.js",
- "isEntry": true,
- "isDynamicEntry": true,
- "imports": [
- "_DyPeVqDG.js",
- "_cv2LK44M.js",
- "_CRLlKr96.js",
- "_BtL0wB3H.js",
- "_vVxDbqKK.js",
- "_Dbod7Wv8.js",
- "_BxZpmA7Z.js",
- "_xdjHc-A2.js"
- ]
- },
- ".svelte-kit/generated/client-optimized/nodes/3.js": {
- "file": "_app/immutable/nodes/3.guWMyWpk.js",
- "name": "nodes/3",
- "src": ".svelte-kit/generated/client-optimized/nodes/3.js",
- "isEntry": true,
- "isDynamicEntry": true,
- "imports": [
- "_DyPeVqDG.js",
- "_cv2LK44M.js",
- "_CRLlKr96.js",
- "_BtL0wB3H.js",
- "_vVxDbqKK.js",
- "_Dbod7Wv8.js"
- ]
- },
- "_BtL0wB3H.js": {
- "file": "_app/immutable/chunks/BtL0wB3H.js",
- "name": "index"
- },
- "_BxZpmA7Z.js": {
- "file": "_app/immutable/chunks/BxZpmA7Z.js",
- "name": "index-client",
- "imports": [
- "_BtL0wB3H.js"
- ]
- },
- "_CRLlKr96.js": {
- "file": "_app/immutable/chunks/CRLlKr96.js",
- "name": "legacy",
- "imports": [
- "_BtL0wB3H.js"
- ]
- },
- "_D0iaTcAo.js": {
- "file": "_app/immutable/chunks/D0iaTcAo.js",
- "name": "entry",
- "imports": [
- "_BtL0wB3H.js",
- "_BxZpmA7Z.js"
- ]
- },
- "_DXE57cnx.js": {
- "file": "_app/immutable/chunks/DXE57cnx.js",
- "name": "stores",
- "imports": [
- "_D0iaTcAo.js"
- ]
- },
- "_Dbod7Wv8.js": {
- "file": "_app/immutable/chunks/Dbod7Wv8.js",
- "name": "toasts",
- "imports": [
- "_BtL0wB3H.js"
- ]
- },
- "_DyPeVqDG.js": {
- "file": "_app/immutable/chunks/DyPeVqDG.js",
- "name": "api",
- "imports": [
- "_BtL0wB3H.js",
- "_Dbod7Wv8.js"
- ]
- },
- "_cv2LK44M.js": {
- "file": "_app/immutable/chunks/cv2LK44M.js",
- "name": "disclose-version",
- "imports": [
- "_BtL0wB3H.js"
- ]
- },
- "_vVxDbqKK.js": {
- "file": "_app/immutable/chunks/vVxDbqKK.js",
- "name": "props",
- "imports": [
- "_BtL0wB3H.js",
- "_cv2LK44M.js"
- ]
- },
- "_xdjHc-A2.js": {
- "file": "_app/immutable/chunks/xdjHc-A2.js",
- "name": "class",
- "imports": [
- "_BtL0wB3H.js"
- ]
- },
- "node_modules/@sveltejs/kit/src/runtime/client/entry.js": {
- "file": "_app/immutable/entry/start.BHAeOrfR.js",
- "name": "entry/start",
- "src": "node_modules/@sveltejs/kit/src/runtime/client/entry.js",
- "isEntry": true,
- "imports": [
- "_D0iaTcAo.js"
- ]
- }
-}
\ No newline at end of file
diff --git a/frontend/.svelte-kit/output/client/_app/version.json b/frontend/.svelte-kit/output/client/_app/version.json
deleted file mode 100644
index f940266..0000000
--- a/frontend/.svelte-kit/output/client/_app/version.json
+++ /dev/null
@@ -1 +0,0 @@
-{"version":"1766262590857"}
\ No newline at end of file
diff --git a/frontend/.svelte-kit/output/prerendered/dependencies/_app/env.js b/frontend/.svelte-kit/output/prerendered/dependencies/_app/env.js
deleted file mode 100644
index 7432e14..0000000
--- a/frontend/.svelte-kit/output/prerendered/dependencies/_app/env.js
+++ /dev/null
@@ -1 +0,0 @@
-export const env={"PUBLIC_WS_URL":"ws://localhost:8000"}
\ No newline at end of file
diff --git a/frontend/.svelte-kit/output/server/.vite/manifest.json b/frontend/.svelte-kit/output/server/.vite/manifest.json
deleted file mode 100644
index 0a91f23..0000000
--- a/frontend/.svelte-kit/output/server/.vite/manifest.json
+++ /dev/null
@@ -1,180 +0,0 @@
-{
- ".svelte-kit/generated/server/internal.js": {
- "file": "internal.js",
- "name": "internal",
- "src": ".svelte-kit/generated/server/internal.js",
- "isEntry": true,
- "imports": [
- "_internal.js",
- "_environment.js"
- ]
- },
- "_api.js": {
- "file": "chunks/api.js",
- "name": "api",
- "imports": [
- "_toasts.js"
- ]
- },
- "_environment.js": {
- "file": "chunks/environment.js",
- "name": "environment"
- },
- "_equality.js": {
- "file": "chunks/equality.js",
- "name": "equality"
- },
- "_exports.js": {
- "file": "chunks/exports.js",
- "name": "exports"
- },
- "_false.js": {
- "file": "chunks/false.js",
- "name": "false"
- },
- "_index.js": {
- "file": "chunks/index.js",
- "name": "index",
- "imports": [
- "_equality.js"
- ]
- },
- "_index2.js": {
- "file": "chunks/index2.js",
- "name": "index",
- "imports": [
- "_false.js",
- "_equality.js"
- ]
- },
- "_internal.js": {
- "file": "chunks/internal.js",
- "name": "internal",
- "imports": [
- "_index2.js",
- "_equality.js",
- "_environment.js"
- ]
- },
- "_shared.js": {
- "file": "chunks/shared.js",
- "name": "shared",
- "imports": [
- "_utils.js"
- ]
- },
- "_stores.js": {
- "file": "chunks/stores.js",
- "name": "stores",
- "imports": [
- "_index2.js",
- "_exports.js",
- "_utils.js",
- "_equality.js"
- ]
- },
- "_toasts.js": {
- "file": "chunks/toasts.js",
- "name": "toasts",
- "imports": [
- "_index.js"
- ]
- },
- "_utils.js": {
- "file": "chunks/utils.js",
- "name": "utils"
- },
- "node_modules/@sveltejs/kit/src/runtime/app/server/remote/index.js": {
- "file": "remote-entry.js",
- "name": "remote-entry",
- "src": "node_modules/@sveltejs/kit/src/runtime/app/server/remote/index.js",
- "isEntry": true,
- "imports": [
- "_shared.js",
- "_false.js",
- "_environment.js"
- ]
- },
- "node_modules/@sveltejs/kit/src/runtime/server/index.js": {
- "file": "index.js",
- "name": "index",
- "src": "node_modules/@sveltejs/kit/src/runtime/server/index.js",
- "isEntry": true,
- "imports": [
- "_false.js",
- "_environment.js",
- "_shared.js",
- "_exports.js",
- "_utils.js",
- "_index.js",
- "_internal.js"
- ]
- },
- "src/routes/+error.svelte": {
- "file": "entries/pages/_error.svelte.js",
- "name": "entries/pages/_error.svelte",
- "src": "src/routes/+error.svelte",
- "isEntry": true,
- "imports": [
- "_index2.js",
- "_stores.js"
- ]
- },
- "src/routes/+layout.svelte": {
- "file": "entries/pages/_layout.svelte.js",
- "name": "entries/pages/_layout.svelte",
- "src": "src/routes/+layout.svelte",
- "isEntry": true,
- "imports": [
- "_index2.js",
- "_stores.js",
- "_toasts.js"
- ],
- "css": [
- "_app/immutable/assets/_layout.RZHRvmcL.css"
- ]
- },
- "src/routes/+layout.ts": {
- "file": "entries/pages/_layout.ts.js",
- "name": "entries/pages/_layout.ts",
- "src": "src/routes/+layout.ts",
- "isEntry": true
- },
- "src/routes/+page.svelte": {
- "file": "entries/pages/_page.svelte.js",
- "name": "entries/pages/_page.svelte",
- "src": "src/routes/+page.svelte",
- "isEntry": true,
- "imports": [
- "_index2.js",
- "_index.js"
- ]
- },
- "src/routes/+page.ts": {
- "file": "entries/pages/_page.ts.js",
- "name": "entries/pages/_page.ts",
- "src": "src/routes/+page.ts",
- "isEntry": true,
- "imports": [
- "_api.js"
- ]
- },
- "src/routes/settings/+page.svelte": {
- "file": "entries/pages/settings/_page.svelte.js",
- "name": "entries/pages/settings/_page.svelte",
- "src": "src/routes/settings/+page.svelte",
- "isEntry": true,
- "imports": [
- "_index2.js"
- ]
- },
- "src/routes/settings/+page.ts": {
- "file": "entries/pages/settings/_page.ts.js",
- "name": "entries/pages/settings/_page.ts",
- "src": "src/routes/settings/+page.ts",
- "isEntry": true,
- "imports": [
- "_api.js"
- ]
- }
-}
\ No newline at end of file
diff --git a/frontend/.svelte-kit/output/server/chunks/api.js b/frontend/.svelte-kit/output/server/chunks/api.js
deleted file mode 100644
index 08dc5f4..0000000
--- a/frontend/.svelte-kit/output/server/chunks/api.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import { a as addToast } from "./toasts.js";
-const API_BASE_URL = "/api";
-async function fetchApi(endpoint) {
- try {
- console.log(`[api.fetchApi][Action] Fetching from context={{'endpoint': '${endpoint}'}}`);
- const response = await fetch(`${API_BASE_URL}${endpoint}`);
- if (!response.ok) {
- throw new Error(`API request failed with status ${response.status}`);
- }
- return await response.json();
- } catch (error) {
- console.error(`[api.fetchApi][Coherence:Failed] Error fetching from ${endpoint}:`, error);
- addToast(error.message, "error");
- throw error;
- }
-}
-async function postApi(endpoint, body) {
- try {
- console.log(`[api.postApi][Action] Posting to context={{'endpoint': '${endpoint}'}}`);
- const response = await fetch(`${API_BASE_URL}${endpoint}`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json"
- },
- body: JSON.stringify(body)
- });
- if (!response.ok) {
- throw new Error(`API request failed with status ${response.status}`);
- }
- return await response.json();
- } catch (error) {
- console.error(`[api.postApi][Coherence:Failed] Error posting to ${endpoint}:`, error);
- addToast(error.message, "error");
- throw error;
- }
-}
-async function requestApi(endpoint, method = "GET", body = null) {
- try {
- console.log(`[api.requestApi][Action] ${method} to context={{'endpoint': '${endpoint}'}}`);
- const options = {
- method,
- headers: {
- "Content-Type": "application/json"
- }
- };
- if (body) {
- options.body = JSON.stringify(body);
- }
- const response = await fetch(`${API_BASE_URL}${endpoint}`, options);
- if (!response.ok) {
- const errorData = await response.json().catch(() => ({}));
- throw new Error(errorData.detail || `API request failed with status ${response.status}`);
- }
- return await response.json();
- } catch (error) {
- console.error(`[api.requestApi][Coherence:Failed] Error ${method} to ${endpoint}:`, error);
- addToast(error.message, "error");
- throw error;
- }
-}
-const api = {
- getPlugins: () => fetchApi("/plugins/"),
- getTasks: () => fetchApi("/tasks/"),
- getTask: (taskId) => fetchApi(`/tasks/${taskId}`),
- createTask: (pluginId, params) => postApi("/tasks/", { plugin_id: pluginId, params }),
- // Settings
- getSettings: () => fetchApi("/settings/"),
- updateGlobalSettings: (settings) => requestApi("/settings/global", "PATCH", settings),
- getEnvironments: () => fetchApi("/settings/environments"),
- addEnvironment: (env) => postApi("/settings/environments", env),
- updateEnvironment: (id, env) => requestApi(`/settings/environments/${id}`, "PUT", env),
- deleteEnvironment: (id) => requestApi(`/settings/environments/${id}`, "DELETE"),
- testEnvironmentConnection: (id) => postApi(`/settings/environments/${id}/test`, {})
-};
-export {
- api as a
-};
diff --git a/frontend/.svelte-kit/output/server/chunks/environment.js b/frontend/.svelte-kit/output/server/chunks/environment.js
deleted file mode 100644
index ad45c3c..0000000
--- a/frontend/.svelte-kit/output/server/chunks/environment.js
+++ /dev/null
@@ -1,34 +0,0 @@
-let base = "";
-let assets = base;
-const app_dir = "_app";
-const relative = true;
-const initial = { base, assets };
-function override(paths) {
- base = paths.base;
- assets = paths.assets;
-}
-function reset() {
- base = initial.base;
- assets = initial.assets;
-}
-function set_assets(path) {
- assets = initial.assets = path;
-}
-let prerendering = false;
-function set_building() {
-}
-function set_prerendering() {
- prerendering = true;
-}
-export {
- assets as a,
- base as b,
- app_dir as c,
- reset as d,
- set_building as e,
- set_prerendering as f,
- override as o,
- prerendering as p,
- relative as r,
- set_assets as s
-};
diff --git a/frontend/.svelte-kit/output/server/chunks/equality.js b/frontend/.svelte-kit/output/server/chunks/equality.js
deleted file mode 100644
index 3f27de5..0000000
--- a/frontend/.svelte-kit/output/server/chunks/equality.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var is_array = Array.isArray;
-var index_of = Array.prototype.indexOf;
-var array_from = Array.from;
-var define_property = Object.defineProperty;
-var get_descriptor = Object.getOwnPropertyDescriptor;
-var object_prototype = Object.prototype;
-var array_prototype = Array.prototype;
-var get_prototype_of = Object.getPrototypeOf;
-var is_extensible = Object.isExtensible;
-const noop = () => {
-};
-function run_all(arr) {
- for (var i = 0; i < arr.length; i++) {
- arr[i]();
- }
-}
-function deferred() {
- var resolve;
- var reject;
- var promise = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
- return { promise, resolve, reject };
-}
-function equals(value) {
- return value === this.v;
-}
-function safe_not_equal(a, b) {
- return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function";
-}
-function safe_equals(value) {
- return !safe_not_equal(value, this.v);
-}
-export {
- array_from as a,
- deferred as b,
- array_prototype as c,
- define_property as d,
- equals as e,
- get_prototype_of as f,
- get_descriptor as g,
- is_extensible as h,
- is_array as i,
- index_of as j,
- safe_not_equal as k,
- noop as n,
- object_prototype as o,
- run_all as r,
- safe_equals as s
-};
diff --git a/frontend/.svelte-kit/output/server/chunks/exports.js b/frontend/.svelte-kit/output/server/chunks/exports.js
deleted file mode 100644
index 4380620..0000000
--- a/frontend/.svelte-kit/output/server/chunks/exports.js
+++ /dev/null
@@ -1,174 +0,0 @@
-const SCHEME = /^[a-z][a-z\d+\-.]+:/i;
-const internal = new URL("sveltekit-internal://");
-function resolve(base, path) {
- if (path[0] === "/" && path[1] === "/") return path;
- let url = new URL(base, internal);
- url = new URL(path, url);
- return url.protocol === internal.protocol ? url.pathname + url.search + url.hash : url.href;
-}
-function normalize_path(path, trailing_slash) {
- if (path === "/" || trailing_slash === "ignore") return path;
- if (trailing_slash === "never") {
- return path.endsWith("/") ? path.slice(0, -1) : path;
- } else if (trailing_slash === "always" && !path.endsWith("/")) {
- return path + "/";
- }
- return path;
-}
-function decode_pathname(pathname) {
- return pathname.split("%25").map(decodeURI).join("%25");
-}
-function decode_params(params) {
- for (const key in params) {
- params[key] = decodeURIComponent(params[key]);
- }
- return params;
-}
-function make_trackable(url, callback, search_params_callback, allow_hash = false) {
- const tracked = new URL(url);
- Object.defineProperty(tracked, "searchParams", {
- value: new Proxy(tracked.searchParams, {
- get(obj, key) {
- if (key === "get" || key === "getAll" || key === "has") {
- return (param) => {
- search_params_callback(param);
- return obj[key](param);
- };
- }
- callback();
- const value = Reflect.get(obj, key);
- return typeof value === "function" ? value.bind(obj) : value;
- }
- }),
- enumerable: true,
- configurable: true
- });
- const tracked_url_properties = ["href", "pathname", "search", "toString", "toJSON"];
- if (allow_hash) tracked_url_properties.push("hash");
- for (const property of tracked_url_properties) {
- Object.defineProperty(tracked, property, {
- get() {
- callback();
- return url[property];
- },
- enumerable: true,
- configurable: true
- });
- }
- {
- tracked[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
- return inspect(url, opts);
- };
- tracked.searchParams[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
- return inspect(url.searchParams, opts);
- };
- }
- if (!allow_hash) {
- disable_hash(tracked);
- }
- return tracked;
-}
-function disable_hash(url) {
- allow_nodejs_console_log(url);
- Object.defineProperty(url, "hash", {
- get() {
- throw new Error(
- "Cannot access event.url.hash. Consider using `page.url.hash` inside a component instead"
- );
- }
- });
-}
-function disable_search(url) {
- allow_nodejs_console_log(url);
- for (const property of ["search", "searchParams"]) {
- Object.defineProperty(url, property, {
- get() {
- throw new Error(`Cannot access url.${property} on a page with prerendering enabled`);
- }
- });
- }
-}
-function allow_nodejs_console_log(url) {
- {
- url[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
- return inspect(new URL(url), opts);
- };
- }
-}
-function validator(expected) {
- function validate(module, file) {
- if (!module) return;
- for (const key in module) {
- if (key[0] === "_" || expected.has(key)) continue;
- const values = [...expected.values()];
- const hint = hint_for_supported_files(key, file?.slice(file.lastIndexOf("."))) ?? `valid exports are ${values.join(", ")}, or anything with a '_' prefix`;
- throw new Error(`Invalid export '${key}'${file ? ` in ${file}` : ""} (${hint})`);
- }
- }
- return validate;
-}
-function hint_for_supported_files(key, ext = ".js") {
- const supported_files = [];
- if (valid_layout_exports.has(key)) {
- supported_files.push(`+layout${ext}`);
- }
- if (valid_page_exports.has(key)) {
- supported_files.push(`+page${ext}`);
- }
- if (valid_layout_server_exports.has(key)) {
- supported_files.push(`+layout.server${ext}`);
- }
- if (valid_page_server_exports.has(key)) {
- supported_files.push(`+page.server${ext}`);
- }
- if (valid_server_exports.has(key)) {
- supported_files.push(`+server${ext}`);
- }
- if (supported_files.length > 0) {
- return `'${key}' is a valid export in ${supported_files.slice(0, -1).join(", ")}${supported_files.length > 1 ? " or " : ""}${supported_files.at(-1)}`;
- }
-}
-const valid_layout_exports = /* @__PURE__ */ new Set([
- "load",
- "prerender",
- "csr",
- "ssr",
- "trailingSlash",
- "config"
-]);
-const valid_page_exports = /* @__PURE__ */ new Set([...valid_layout_exports, "entries"]);
-const valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]);
-const valid_page_server_exports = /* @__PURE__ */ new Set([...valid_layout_server_exports, "actions", "entries"]);
-const valid_server_exports = /* @__PURE__ */ new Set([
- "GET",
- "POST",
- "PATCH",
- "PUT",
- "DELETE",
- "OPTIONS",
- "HEAD",
- "fallback",
- "prerender",
- "trailingSlash",
- "config",
- "entries"
-]);
-const validate_layout_exports = validator(valid_layout_exports);
-const validate_page_exports = validator(valid_page_exports);
-const validate_layout_server_exports = validator(valid_layout_server_exports);
-const validate_page_server_exports = validator(valid_page_server_exports);
-const validate_server_exports = validator(valid_server_exports);
-export {
- SCHEME as S,
- decode_params as a,
- validate_layout_exports as b,
- validate_page_server_exports as c,
- disable_search as d,
- validate_page_exports as e,
- decode_pathname as f,
- validate_server_exports as g,
- make_trackable as m,
- normalize_path as n,
- resolve as r,
- validate_layout_server_exports as v
-};
diff --git a/frontend/.svelte-kit/output/server/chunks/false.js b/frontend/.svelte-kit/output/server/chunks/false.js
deleted file mode 100644
index 85bc56d..0000000
--- a/frontend/.svelte-kit/output/server/chunks/false.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const BROWSER = false;
-export {
- BROWSER as B
-};
diff --git a/frontend/.svelte-kit/output/server/chunks/index.js b/frontend/.svelte-kit/output/server/chunks/index.js
deleted file mode 100644
index f33cead..0000000
--- a/frontend/.svelte-kit/output/server/chunks/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import { n as noop, k as safe_not_equal } from "./equality.js";
-import "clsx";
-const subscriber_queue = [];
-function readable(value, start) {
- return {
- subscribe: writable(value, start).subscribe
- };
-}
-function writable(value, start = noop) {
- let stop = null;
- const subscribers = /* @__PURE__ */ new Set();
- function set(new_value) {
- if (safe_not_equal(value, new_value)) {
- value = new_value;
- if (stop) {
- const run_queue = !subscriber_queue.length;
- for (const subscriber of subscribers) {
- subscriber[1]();
- subscriber_queue.push(subscriber, value);
- }
- if (run_queue) {
- for (let i = 0; i < subscriber_queue.length; i += 2) {
- subscriber_queue[i][0](subscriber_queue[i + 1]);
- }
- subscriber_queue.length = 0;
- }
- }
- }
- }
- function update(fn) {
- set(fn(
- /** @type {T} */
- value
- ));
- }
- function subscribe(run, invalidate = noop) {
- const subscriber = [run, invalidate];
- subscribers.add(subscriber);
- if (subscribers.size === 1) {
- stop = start(set, update) || noop;
- }
- run(
- /** @type {T} */
- value
- );
- return () => {
- subscribers.delete(subscriber);
- if (subscribers.size === 0 && stop) {
- stop();
- stop = null;
- }
- };
- }
- return { set, update, subscribe };
-}
-export {
- readable as r,
- writable as w
-};
diff --git a/frontend/.svelte-kit/output/server/chunks/index2.js b/frontend/.svelte-kit/output/server/chunks/index2.js
deleted file mode 100644
index 3a8ff46..0000000
--- a/frontend/.svelte-kit/output/server/chunks/index2.js
+++ /dev/null
@@ -1,2783 +0,0 @@
-import { clsx as clsx$1 } from "clsx";
-import { B as BROWSER } from "./false.js";
-import { r as run_all, b as deferred, s as safe_equals, e as equals, o as object_prototype, c as array_prototype, g as get_descriptor, f as get_prototype_of, i as is_array, h as is_extensible, j as index_of, n as noop } from "./equality.js";
-const DERIVED = 1 << 1;
-const EFFECT = 1 << 2;
-const RENDER_EFFECT = 1 << 3;
-const MANAGED_EFFECT = 1 << 24;
-const BLOCK_EFFECT = 1 << 4;
-const BRANCH_EFFECT = 1 << 5;
-const ROOT_EFFECT = 1 << 6;
-const BOUNDARY_EFFECT = 1 << 7;
-const CONNECTED = 1 << 9;
-const CLEAN = 1 << 10;
-const DIRTY = 1 << 11;
-const MAYBE_DIRTY = 1 << 12;
-const INERT = 1 << 13;
-const DESTROYED = 1 << 14;
-const EFFECT_RAN = 1 << 15;
-const EFFECT_TRANSPARENT = 1 << 16;
-const EAGER_EFFECT = 1 << 17;
-const HEAD_EFFECT = 1 << 18;
-const EFFECT_PRESERVED = 1 << 19;
-const USER_EFFECT = 1 << 20;
-const WAS_MARKED = 1 << 15;
-const REACTION_IS_UPDATING = 1 << 21;
-const ASYNC = 1 << 22;
-const ERROR_VALUE = 1 << 23;
-const STATE_SYMBOL = /* @__PURE__ */ Symbol("$state");
-const LEGACY_PROPS = /* @__PURE__ */ Symbol("legacy props");
-const STALE_REACTION = new class StaleReactionError extends Error {
- name = "StaleReactionError";
- message = "The reaction that called `getAbortSignal()` was re-run or destroyed";
-}();
-const COMMENT_NODE = 8;
-function lifecycle_outside_component(name) {
- {
- throw new Error(`https://svelte.dev/e/lifecycle_outside_component`);
- }
-}
-function effect_update_depth_exceeded() {
- {
- throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);
- }
-}
-function hydration_failed() {
- {
- throw new Error(`https://svelte.dev/e/hydration_failed`);
- }
-}
-function state_descriptors_fixed() {
- {
- throw new Error(`https://svelte.dev/e/state_descriptors_fixed`);
- }
-}
-function state_prototype_fixed() {
- {
- throw new Error(`https://svelte.dev/e/state_prototype_fixed`);
- }
-}
-function state_unsafe_mutation() {
- {
- throw new Error(`https://svelte.dev/e/state_unsafe_mutation`);
- }
-}
-function svelte_boundary_reset_onerror() {
- {
- throw new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`);
- }
-}
-const HYDRATION_START = "[";
-const HYDRATION_START_ELSE = "[!";
-const HYDRATION_END = "]";
-const HYDRATION_ERROR = {};
-const ELEMENT_IS_NAMESPACED = 1;
-const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;
-const ELEMENT_IS_INPUT = 1 << 2;
-const UNINITIALIZED = /* @__PURE__ */ Symbol();
-let tracing_mode_flag = false;
-let component_context = null;
-function set_component_context(context) {
- component_context = context;
-}
-function push$1(props, runes = false, fn) {
- component_context = {
- p: component_context,
- i: false,
- c: null,
- e: null,
- s: props,
- x: null,
- l: null
- };
-}
-function pop$1(component) {
- var context = (
- /** @type {ComponentContext} */
- component_context
- );
- var effects = context.e;
- if (effects !== null) {
- context.e = null;
- for (var fn of effects) {
- create_user_effect(fn);
- }
- }
- context.i = true;
- component_context = context.p;
- return (
- /** @type {T} */
- {}
- );
-}
-function is_runes() {
- return true;
-}
-let micro_tasks = [];
-function run_micro_tasks() {
- var tasks = micro_tasks;
- micro_tasks = [];
- run_all(tasks);
-}
-function queue_micro_task(fn) {
- if (micro_tasks.length === 0 && !is_flushing_sync) {
- var tasks = micro_tasks;
- queueMicrotask(() => {
- if (tasks === micro_tasks) run_micro_tasks();
- });
- }
- micro_tasks.push(fn);
-}
-function flush_tasks() {
- while (micro_tasks.length > 0) {
- run_micro_tasks();
- }
-}
-function handle_error(error) {
- var effect = active_effect;
- if (effect === null) {
- active_reaction.f |= ERROR_VALUE;
- return error;
- }
- if ((effect.f & EFFECT_RAN) === 0) {
- if ((effect.f & BOUNDARY_EFFECT) === 0) {
- throw error;
- }
- effect.b.error(error);
- } else {
- invoke_error_boundary(error, effect);
- }
-}
-function invoke_error_boundary(error, effect) {
- while (effect !== null) {
- if ((effect.f & BOUNDARY_EFFECT) !== 0) {
- try {
- effect.b.error(error);
- return;
- } catch (e) {
- error = e;
- }
- }
- effect = effect.parent;
- }
- throw error;
-}
-const batches = /* @__PURE__ */ new Set();
-let current_batch = null;
-let batch_values = null;
-let queued_root_effects = [];
-let last_scheduled_effect = null;
-let is_flushing = false;
-let is_flushing_sync = false;
-class Batch {
- committed = false;
- /**
- * The current values of any sources that are updated in this batch
- * They keys of this map are identical to `this.#previous`
- * @type {Map}
- */
- current = /* @__PURE__ */ new Map();
- /**
- * The values of any sources that are updated in this batch _before_ those updates took place.
- * They keys of this map are identical to `this.#current`
- * @type {Map}
- */
- previous = /* @__PURE__ */ new Map();
- /**
- * When the batch is committed (and the DOM is updated), we need to remove old branches
- * and append new ones by calling the functions added inside (if/each/key/etc) blocks
- * @type {Set<() => void>}
- */
- #commit_callbacks = /* @__PURE__ */ new Set();
- /**
- * If a fork is discarded, we need to destroy any effects that are no longer needed
- * @type {Set<(batch: Batch) => void>}
- */
- #discard_callbacks = /* @__PURE__ */ new Set();
- /**
- * The number of async effects that are currently in flight
- */
- #pending = 0;
- /**
- * The number of async effects that are currently in flight, _not_ inside a pending boundary
- */
- #blocking_pending = 0;
- /**
- * A deferred that resolves when the batch is committed, used with `settled()`
- * TODO replace with Promise.withResolvers once supported widely enough
- * @type {{ promise: Promise, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null}
- */
- #deferred = null;
- /**
- * Deferred effects (which run after async work has completed) that are DIRTY
- * @type {Set}
- */
- #dirty_effects = /* @__PURE__ */ new Set();
- /**
- * Deferred effects that are MAYBE_DIRTY
- * @type {Set}
- */
- #maybe_dirty_effects = /* @__PURE__ */ new Set();
- /**
- * A set of branches that still exist, but will be destroyed when this batch
- * is committed — we skip over these during `process`
- * @type {Set}
- */
- skipped_effects = /* @__PURE__ */ new Set();
- is_fork = false;
- is_deferred() {
- return this.is_fork || this.#blocking_pending > 0;
- }
- /**
- *
- * @param {Effect[]} root_effects
- */
- process(root_effects) {
- queued_root_effects = [];
- this.apply();
- var target = {
- parent: null,
- effect: null,
- effects: [],
- render_effects: []
- };
- for (const root of root_effects) {
- this.#traverse_effect_tree(root, target);
- }
- if (!this.is_fork) {
- this.#resolve();
- }
- if (this.is_deferred()) {
- this.#defer_effects(target.effects);
- this.#defer_effects(target.render_effects);
- } else {
- current_batch = null;
- flush_queued_effects(target.render_effects);
- flush_queued_effects(target.effects);
- this.#deferred?.resolve();
- }
- batch_values = null;
- }
- /**
- * Traverse the effect tree, executing effects or stashing
- * them for later execution as appropriate
- * @param {Effect} root
- * @param {EffectTarget} target
- */
- #traverse_effect_tree(root, target) {
- root.f ^= CLEAN;
- var effect = root.first;
- while (effect !== null) {
- var flags = effect.f;
- var is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
- var is_skippable_branch = is_branch && (flags & CLEAN) !== 0;
- var skip = is_skippable_branch || (flags & INERT) !== 0 || this.skipped_effects.has(effect);
- if ((effect.f & BOUNDARY_EFFECT) !== 0 && effect.b?.is_pending()) {
- target = {
- parent: target,
- effect,
- effects: [],
- render_effects: []
- };
- }
- if (!skip && effect.fn !== null) {
- if (is_branch) {
- effect.f ^= CLEAN;
- } else if ((flags & EFFECT) !== 0) {
- target.effects.push(effect);
- } else if (is_dirty(effect)) {
- if ((effect.f & BLOCK_EFFECT) !== 0) this.#dirty_effects.add(effect);
- update_effect(effect);
- }
- var child = effect.first;
- if (child !== null) {
- effect = child;
- continue;
- }
- }
- var parent = effect.parent;
- effect = effect.next;
- while (effect === null && parent !== null) {
- if (parent === target.effect) {
- this.#defer_effects(target.effects);
- this.#defer_effects(target.render_effects);
- target = /** @type {EffectTarget} */
- target.parent;
- }
- effect = parent.next;
- parent = parent.parent;
- }
- }
- }
- /**
- * @param {Effect[]} effects
- */
- #defer_effects(effects) {
- for (const e of effects) {
- if ((e.f & DIRTY) !== 0) {
- this.#dirty_effects.add(e);
- } else if ((e.f & MAYBE_DIRTY) !== 0) {
- this.#maybe_dirty_effects.add(e);
- }
- this.#clear_marked(e.deps);
- set_signal_status(e, CLEAN);
- }
- }
- /**
- * @param {Value[] | null} deps
- */
- #clear_marked(deps) {
- if (deps === null) return;
- for (const dep of deps) {
- if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {
- continue;
- }
- dep.f ^= WAS_MARKED;
- this.#clear_marked(
- /** @type {Derived} */
- dep.deps
- );
- }
- }
- /**
- * Associate a change to a given source with the current
- * batch, noting its previous and current values
- * @param {Source} source
- * @param {any} value
- */
- capture(source2, value) {
- if (!this.previous.has(source2)) {
- this.previous.set(source2, value);
- }
- if ((source2.f & ERROR_VALUE) === 0) {
- this.current.set(source2, source2.v);
- batch_values?.set(source2, source2.v);
- }
- }
- activate() {
- current_batch = this;
- this.apply();
- }
- deactivate() {
- if (current_batch !== this) return;
- current_batch = null;
- batch_values = null;
- }
- flush() {
- this.activate();
- if (queued_root_effects.length > 0) {
- flush_effects();
- if (current_batch !== null && current_batch !== this) {
- return;
- }
- } else if (this.#pending === 0) {
- this.process([]);
- }
- this.deactivate();
- }
- discard() {
- for (const fn of this.#discard_callbacks) fn(this);
- this.#discard_callbacks.clear();
- }
- #resolve() {
- if (this.#blocking_pending === 0) {
- for (const fn of this.#commit_callbacks) fn();
- this.#commit_callbacks.clear();
- }
- if (this.#pending === 0) {
- this.#commit();
- }
- }
- #commit() {
- if (batches.size > 1) {
- this.previous.clear();
- var previous_batch_values = batch_values;
- var is_earlier = true;
- var dummy_target = {
- parent: null,
- effect: null,
- effects: [],
- render_effects: []
- };
- for (const batch of batches) {
- if (batch === this) {
- is_earlier = false;
- continue;
- }
- const sources = [];
- for (const [source2, value] of this.current) {
- if (batch.current.has(source2)) {
- if (is_earlier && value !== batch.current.get(source2)) {
- batch.current.set(source2, value);
- } else {
- continue;
- }
- }
- sources.push(source2);
- }
- if (sources.length === 0) {
- continue;
- }
- const others = [...batch.current.keys()].filter((s) => !this.current.has(s));
- if (others.length > 0) {
- var prev_queued_root_effects = queued_root_effects;
- queued_root_effects = [];
- const marked = /* @__PURE__ */ new Set();
- const checked = /* @__PURE__ */ new Map();
- for (const source2 of sources) {
- mark_effects(source2, others, marked, checked);
- }
- if (queued_root_effects.length > 0) {
- current_batch = batch;
- batch.apply();
- for (const root of queued_root_effects) {
- batch.#traverse_effect_tree(root, dummy_target);
- }
- batch.deactivate();
- }
- queued_root_effects = prev_queued_root_effects;
- }
- }
- current_batch = null;
- batch_values = previous_batch_values;
- }
- this.committed = true;
- batches.delete(this);
- }
- /**
- *
- * @param {boolean} blocking
- */
- increment(blocking) {
- this.#pending += 1;
- if (blocking) this.#blocking_pending += 1;
- }
- /**
- *
- * @param {boolean} blocking
- */
- decrement(blocking) {
- this.#pending -= 1;
- if (blocking) this.#blocking_pending -= 1;
- this.revive();
- }
- revive() {
- for (const e of this.#dirty_effects) {
- this.#maybe_dirty_effects.delete(e);
- set_signal_status(e, DIRTY);
- schedule_effect(e);
- }
- for (const e of this.#maybe_dirty_effects) {
- set_signal_status(e, MAYBE_DIRTY);
- schedule_effect(e);
- }
- this.flush();
- }
- /** @param {() => void} fn */
- oncommit(fn) {
- this.#commit_callbacks.add(fn);
- }
- /** @param {(batch: Batch) => void} fn */
- ondiscard(fn) {
- this.#discard_callbacks.add(fn);
- }
- settled() {
- return (this.#deferred ??= deferred()).promise;
- }
- static ensure() {
- if (current_batch === null) {
- const batch = current_batch = new Batch();
- batches.add(current_batch);
- if (!is_flushing_sync) {
- Batch.enqueue(() => {
- if (current_batch !== batch) {
- return;
- }
- batch.flush();
- });
- }
- }
- return current_batch;
- }
- /** @param {() => void} task */
- static enqueue(task) {
- queue_micro_task(task);
- }
- apply() {
- return;
- }
-}
-function flushSync(fn) {
- var was_flushing_sync = is_flushing_sync;
- is_flushing_sync = true;
- try {
- var result;
- if (fn) ;
- while (true) {
- flush_tasks();
- if (queued_root_effects.length === 0) {
- current_batch?.flush();
- if (queued_root_effects.length === 0) {
- last_scheduled_effect = null;
- return (
- /** @type {T} */
- result
- );
- }
- }
- flush_effects();
- }
- } finally {
- is_flushing_sync = was_flushing_sync;
- }
-}
-function flush_effects() {
- var was_updating_effect = is_updating_effect;
- is_flushing = true;
- var source_stacks = null;
- try {
- var flush_count = 0;
- set_is_updating_effect(true);
- while (queued_root_effects.length > 0) {
- var batch = Batch.ensure();
- if (flush_count++ > 1e3) {
- var updates, entry;
- if (BROWSER) ;
- infinite_loop_guard();
- }
- batch.process(queued_root_effects);
- old_values.clear();
- if (BROWSER) ;
- }
- } finally {
- is_flushing = false;
- set_is_updating_effect(was_updating_effect);
- last_scheduled_effect = null;
- }
-}
-function infinite_loop_guard() {
- try {
- effect_update_depth_exceeded();
- } catch (error) {
- invoke_error_boundary(error, last_scheduled_effect);
- }
-}
-let eager_block_effects = null;
-function flush_queued_effects(effects) {
- var length = effects.length;
- if (length === 0) return;
- var i = 0;
- while (i < length) {
- var effect = effects[i++];
- if ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) {
- eager_block_effects = /* @__PURE__ */ new Set();
- update_effect(effect);
- if (effect.deps === null && effect.first === null && effect.nodes === null) {
- if (effect.teardown === null && effect.ac === null) {
- unlink_effect(effect);
- } else {
- effect.fn = null;
- }
- }
- if (eager_block_effects?.size > 0) {
- old_values.clear();
- for (const e of eager_block_effects) {
- if ((e.f & (DESTROYED | INERT)) !== 0) continue;
- const ordered_effects = [e];
- let ancestor = e.parent;
- while (ancestor !== null) {
- if (eager_block_effects.has(ancestor)) {
- eager_block_effects.delete(ancestor);
- ordered_effects.push(ancestor);
- }
- ancestor = ancestor.parent;
- }
- for (let j = ordered_effects.length - 1; j >= 0; j--) {
- const e2 = ordered_effects[j];
- if ((e2.f & (DESTROYED | INERT)) !== 0) continue;
- update_effect(e2);
- }
- }
- eager_block_effects.clear();
- }
- }
- }
- eager_block_effects = null;
-}
-function mark_effects(value, sources, marked, checked) {
- if (marked.has(value)) return;
- marked.add(value);
- if (value.reactions !== null) {
- for (const reaction of value.reactions) {
- const flags = reaction.f;
- if ((flags & DERIVED) !== 0) {
- mark_effects(
- /** @type {Derived} */
- reaction,
- sources,
- marked,
- checked
- );
- } else if ((flags & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags & DIRTY) === 0 && depends_on(reaction, sources, checked)) {
- set_signal_status(reaction, DIRTY);
- schedule_effect(
- /** @type {Effect} */
- reaction
- );
- }
- }
- }
-}
-function depends_on(reaction, sources, checked) {
- const depends = checked.get(reaction);
- if (depends !== void 0) return depends;
- if (reaction.deps !== null) {
- for (const dep of reaction.deps) {
- if (sources.includes(dep)) {
- return true;
- }
- if ((dep.f & DERIVED) !== 0 && depends_on(
- /** @type {Derived} */
- dep,
- sources,
- checked
- )) {
- checked.set(
- /** @type {Derived} */
- dep,
- true
- );
- return true;
- }
- }
- }
- checked.set(reaction, false);
- return false;
-}
-function schedule_effect(signal) {
- var effect = last_scheduled_effect = signal;
- while (effect.parent !== null) {
- effect = effect.parent;
- var flags = effect.f;
- if (is_flushing && effect === active_effect && (flags & BLOCK_EFFECT) !== 0 && (flags & HEAD_EFFECT) === 0) {
- return;
- }
- if ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {
- if ((flags & CLEAN) === 0) return;
- effect.f ^= CLEAN;
- }
- }
- queued_root_effects.push(effect);
-}
-function destroy_derived_effects(derived) {
- var effects = derived.effects;
- if (effects !== null) {
- derived.effects = null;
- for (var i = 0; i < effects.length; i += 1) {
- destroy_effect(
- /** @type {Effect} */
- effects[i]
- );
- }
- }
-}
-function get_derived_parent_effect(derived) {
- var parent = derived.parent;
- while (parent !== null) {
- if ((parent.f & DERIVED) === 0) {
- return (parent.f & DESTROYED) === 0 ? (
- /** @type {Effect} */
- parent
- ) : null;
- }
- parent = parent.parent;
- }
- return null;
-}
-function execute_derived(derived) {
- var value;
- var prev_active_effect = active_effect;
- set_active_effect(get_derived_parent_effect(derived));
- {
- try {
- derived.f &= ~WAS_MARKED;
- destroy_derived_effects(derived);
- value = update_reaction(derived);
- } finally {
- set_active_effect(prev_active_effect);
- }
- }
- return value;
-}
-function update_derived(derived) {
- var value = execute_derived(derived);
- if (!derived.equals(value)) {
- if (!current_batch?.is_fork) {
- derived.v = value;
- }
- derived.wv = increment_write_version();
- }
- if (is_destroying_effect) {
- return;
- }
- if (batch_values !== null) {
- if (effect_tracking() || current_batch?.is_fork) {
- batch_values.set(derived, value);
- }
- } else {
- var status = (derived.f & CONNECTED) === 0 ? MAYBE_DIRTY : CLEAN;
- set_signal_status(derived, status);
- }
-}
-let eager_effects = /* @__PURE__ */ new Set();
-const old_values = /* @__PURE__ */ new Map();
-let eager_effects_deferred = false;
-function source(v, stack) {
- var signal = {
- f: 0,
- // TODO ideally we could skip this altogether, but it causes type errors
- v,
- reactions: null,
- equals,
- rv: 0,
- wv: 0
- };
- return signal;
-}
-// @__NO_SIDE_EFFECTS__
-function state(v, stack) {
- const s = source(v);
- push_reaction_value(s);
- return s;
-}
-// @__NO_SIDE_EFFECTS__
-function mutable_source(initial_value, immutable = false, trackable = true) {
- const s = source(initial_value);
- if (!immutable) {
- s.equals = safe_equals;
- }
- return s;
-}
-function set(source2, value, should_proxy = false) {
- if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check
- // to ensure we error if state is set inside an inspect effect
- (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && !current_sources?.includes(source2)) {
- state_unsafe_mutation();
- }
- let new_value = should_proxy ? proxy(value) : value;
- return internal_set(source2, new_value);
-}
-function internal_set(source2, value) {
- if (!source2.equals(value)) {
- var old_value = source2.v;
- if (is_destroying_effect) {
- old_values.set(source2, value);
- } else {
- old_values.set(source2, old_value);
- }
- source2.v = value;
- var batch = Batch.ensure();
- batch.capture(source2, old_value);
- if ((source2.f & DERIVED) !== 0) {
- if ((source2.f & DIRTY) !== 0) {
- execute_derived(
- /** @type {Derived} */
- source2
- );
- }
- set_signal_status(source2, (source2.f & CONNECTED) !== 0 ? CLEAN : MAYBE_DIRTY);
- }
- source2.wv = increment_write_version();
- mark_reactions(source2, DIRTY);
- if (active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) {
- if (untracked_writes === null) {
- set_untracked_writes([source2]);
- } else {
- untracked_writes.push(source2);
- }
- }
- if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) {
- flush_eager_effects();
- }
- }
- return value;
-}
-function flush_eager_effects() {
- eager_effects_deferred = false;
- var prev_is_updating_effect = is_updating_effect;
- set_is_updating_effect(true);
- const inspects = Array.from(eager_effects);
- try {
- for (const effect of inspects) {
- if ((effect.f & CLEAN) !== 0) {
- set_signal_status(effect, MAYBE_DIRTY);
- }
- if (is_dirty(effect)) {
- update_effect(effect);
- }
- }
- } finally {
- set_is_updating_effect(prev_is_updating_effect);
- }
- eager_effects.clear();
-}
-function increment(source2) {
- set(source2, source2.v + 1);
-}
-function mark_reactions(signal, status) {
- var reactions = signal.reactions;
- if (reactions === null) return;
- var length = reactions.length;
- for (var i = 0; i < length; i++) {
- var reaction = reactions[i];
- var flags = reaction.f;
- var not_dirty = (flags & DIRTY) === 0;
- if (not_dirty) {
- set_signal_status(reaction, status);
- }
- if ((flags & DERIVED) !== 0) {
- var derived = (
- /** @type {Derived} */
- reaction
- );
- batch_values?.delete(derived);
- if ((flags & WAS_MARKED) === 0) {
- if (flags & CONNECTED) {
- reaction.f |= WAS_MARKED;
- }
- mark_reactions(derived, MAYBE_DIRTY);
- }
- } else if (not_dirty) {
- if ((flags & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) {
- eager_block_effects.add(
- /** @type {Effect} */
- reaction
- );
- }
- schedule_effect(
- /** @type {Effect} */
- reaction
- );
- }
- }
-}
-function proxy(value) {
- if (typeof value !== "object" || value === null || STATE_SYMBOL in value) {
- return value;
- }
- const prototype = get_prototype_of(value);
- if (prototype !== object_prototype && prototype !== array_prototype) {
- return value;
- }
- var sources = /* @__PURE__ */ new Map();
- var is_proxied_array = is_array(value);
- var version = /* @__PURE__ */ state(0);
- var parent_version = update_version;
- var with_parent = (fn) => {
- if (update_version === parent_version) {
- return fn();
- }
- var reaction = active_reaction;
- var version2 = update_version;
- set_active_reaction(null);
- set_update_version(parent_version);
- var result = fn();
- set_active_reaction(reaction);
- set_update_version(version2);
- return result;
- };
- if (is_proxied_array) {
- sources.set("length", /* @__PURE__ */ state(
- /** @type {any[]} */
- value.length
- ));
- }
- return new Proxy(
- /** @type {any} */
- value,
- {
- defineProperty(_, prop, descriptor) {
- if (!("value" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) {
- state_descriptors_fixed();
- }
- var s = sources.get(prop);
- if (s === void 0) {
- s = with_parent(() => {
- var s2 = /* @__PURE__ */ state(descriptor.value);
- sources.set(prop, s2);
- return s2;
- });
- } else {
- set(s, descriptor.value, true);
- }
- return true;
- },
- deleteProperty(target, prop) {
- var s = sources.get(prop);
- if (s === void 0) {
- if (prop in target) {
- const s2 = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));
- sources.set(prop, s2);
- increment(version);
- }
- } else {
- set(s, UNINITIALIZED);
- increment(version);
- }
- return true;
- },
- get(target, prop, receiver) {
- if (prop === STATE_SYMBOL) {
- return value;
- }
- var s = sources.get(prop);
- var exists = prop in target;
- if (s === void 0 && (!exists || get_descriptor(target, prop)?.writable)) {
- s = with_parent(() => {
- var p = proxy(exists ? target[prop] : UNINITIALIZED);
- var s2 = /* @__PURE__ */ state(p);
- return s2;
- });
- sources.set(prop, s);
- }
- if (s !== void 0) {
- var v = get(s);
- return v === UNINITIALIZED ? void 0 : v;
- }
- return Reflect.get(target, prop, receiver);
- },
- getOwnPropertyDescriptor(target, prop) {
- var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
- if (descriptor && "value" in descriptor) {
- var s = sources.get(prop);
- if (s) descriptor.value = get(s);
- } else if (descriptor === void 0) {
- var source2 = sources.get(prop);
- var value2 = source2?.v;
- if (source2 !== void 0 && value2 !== UNINITIALIZED) {
- return {
- enumerable: true,
- configurable: true,
- value: value2,
- writable: true
- };
- }
- }
- return descriptor;
- },
- has(target, prop) {
- if (prop === STATE_SYMBOL) {
- return true;
- }
- var s = sources.get(prop);
- var has = s !== void 0 && s.v !== UNINITIALIZED || Reflect.has(target, prop);
- if (s !== void 0 || active_effect !== null && (!has || get_descriptor(target, prop)?.writable)) {
- if (s === void 0) {
- s = with_parent(() => {
- var p = has ? proxy(target[prop]) : UNINITIALIZED;
- var s2 = /* @__PURE__ */ state(p);
- return s2;
- });
- sources.set(prop, s);
- }
- var value2 = get(s);
- if (value2 === UNINITIALIZED) {
- return false;
- }
- }
- return has;
- },
- set(target, prop, value2, receiver) {
- var s = sources.get(prop);
- var has = prop in target;
- if (is_proxied_array && prop === "length") {
- for (var i = value2; i < /** @type {Source} */
- s.v; i += 1) {
- var other_s = sources.get(i + "");
- if (other_s !== void 0) {
- set(other_s, UNINITIALIZED);
- } else if (i in target) {
- other_s = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));
- sources.set(i + "", other_s);
- }
- }
- }
- if (s === void 0) {
- if (!has || get_descriptor(target, prop)?.writable) {
- s = with_parent(() => /* @__PURE__ */ state(void 0));
- set(s, proxy(value2));
- sources.set(prop, s);
- }
- } else {
- has = s.v !== UNINITIALIZED;
- var p = with_parent(() => proxy(value2));
- set(s, p);
- }
- var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
- if (descriptor?.set) {
- descriptor.set.call(receiver, value2);
- }
- if (!has) {
- if (is_proxied_array && typeof prop === "string") {
- var ls = (
- /** @type {Source} */
- sources.get("length")
- );
- var n = Number(prop);
- if (Number.isInteger(n) && n >= ls.v) {
- set(ls, n + 1);
- }
- }
- increment(version);
- }
- return true;
- },
- ownKeys(target) {
- get(version);
- var own_keys = Reflect.ownKeys(target).filter((key2) => {
- var source3 = sources.get(key2);
- return source3 === void 0 || source3.v !== UNINITIALIZED;
- });
- for (var [key, source2] of sources) {
- if (source2.v !== UNINITIALIZED && !(key in target)) {
- own_keys.push(key);
- }
- }
- return own_keys;
- },
- setPrototypeOf() {
- state_prototype_fixed();
- }
- }
- );
-}
-var $window;
-var first_child_getter;
-var next_sibling_getter;
-function init_operations() {
- if ($window !== void 0) {
- return;
- }
- $window = window;
- var element_prototype = Element.prototype;
- var node_prototype = Node.prototype;
- var text_prototype = Text.prototype;
- first_child_getter = get_descriptor(node_prototype, "firstChild").get;
- next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get;
- if (is_extensible(element_prototype)) {
- element_prototype.__click = void 0;
- element_prototype.__className = void 0;
- element_prototype.__attributes = null;
- element_prototype.__style = void 0;
- element_prototype.__e = void 0;
- }
- if (is_extensible(text_prototype)) {
- text_prototype.__t = void 0;
- }
-}
-function create_text(value = "") {
- return document.createTextNode(value);
-}
-// @__NO_SIDE_EFFECTS__
-function get_first_child(node) {
- return (
- /** @type {TemplateNode | null} */
- first_child_getter.call(node)
- );
-}
-// @__NO_SIDE_EFFECTS__
-function get_next_sibling(node) {
- return (
- /** @type {TemplateNode | null} */
- next_sibling_getter.call(node)
- );
-}
-function clear_text_content(node) {
- node.textContent = "";
-}
-function without_reactive_context(fn) {
- var previous_reaction = active_reaction;
- var previous_effect = active_effect;
- set_active_reaction(null);
- set_active_effect(null);
- try {
- return fn();
- } finally {
- set_active_reaction(previous_reaction);
- set_active_effect(previous_effect);
- }
-}
-function push_effect(effect, parent_effect) {
- var parent_last = parent_effect.last;
- if (parent_last === null) {
- parent_effect.last = parent_effect.first = effect;
- } else {
- parent_last.next = effect;
- effect.prev = parent_last;
- parent_effect.last = effect;
- }
-}
-function create_effect(type, fn, sync) {
- var parent = active_effect;
- if (parent !== null && (parent.f & INERT) !== 0) {
- type |= INERT;
- }
- var effect = {
- ctx: component_context,
- deps: null,
- nodes: null,
- f: type | DIRTY | CONNECTED,
- first: null,
- fn,
- last: null,
- next: null,
- parent,
- b: parent && parent.b,
- prev: null,
- teardown: null,
- wv: 0,
- ac: null
- };
- if (sync) {
- try {
- update_effect(effect);
- effect.f |= EFFECT_RAN;
- } catch (e2) {
- destroy_effect(effect);
- throw e2;
- }
- } else if (fn !== null) {
- schedule_effect(effect);
- }
- var e = effect;
- if (sync && e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child
- (e.f & EFFECT_PRESERVED) === 0) {
- e = e.first;
- if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) {
- e.f |= EFFECT_TRANSPARENT;
- }
- }
- if (e !== null) {
- e.parent = parent;
- if (parent !== null) {
- push_effect(e, parent);
- }
- if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) {
- var derived = (
- /** @type {Derived} */
- active_reaction
- );
- (derived.effects ??= []).push(e);
- }
- }
- return effect;
-}
-function effect_tracking() {
- return active_reaction !== null && !untracking;
-}
-function create_user_effect(fn) {
- return create_effect(EFFECT | USER_EFFECT, fn, false);
-}
-function component_root(fn) {
- Batch.ensure();
- const effect = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn, true);
- return (options = {}) => {
- return new Promise((fulfil) => {
- if (options.outro) {
- pause_effect(effect, () => {
- destroy_effect(effect);
- fulfil(void 0);
- });
- } else {
- destroy_effect(effect);
- fulfil(void 0);
- }
- });
- };
-}
-function render_effect(fn, flags = 0) {
- return create_effect(RENDER_EFFECT | flags, fn, true);
-}
-function block(fn, flags = 0) {
- var effect = create_effect(BLOCK_EFFECT | flags, fn, true);
- return effect;
-}
-function branch(fn) {
- return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn, true);
-}
-function execute_effect_teardown(effect) {
- var teardown = effect.teardown;
- if (teardown !== null) {
- const previously_destroying_effect = is_destroying_effect;
- const previous_reaction = active_reaction;
- set_is_destroying_effect(true);
- set_active_reaction(null);
- try {
- teardown.call(null);
- } finally {
- set_is_destroying_effect(previously_destroying_effect);
- set_active_reaction(previous_reaction);
- }
- }
-}
-function destroy_effect_children(signal, remove_dom = false) {
- var effect = signal.first;
- signal.first = signal.last = null;
- while (effect !== null) {
- const controller2 = effect.ac;
- if (controller2 !== null) {
- without_reactive_context(() => {
- controller2.abort(STALE_REACTION);
- });
- }
- var next = effect.next;
- if ((effect.f & ROOT_EFFECT) !== 0) {
- effect.parent = null;
- } else {
- destroy_effect(effect, remove_dom);
- }
- effect = next;
- }
-}
-function destroy_block_effect_children(signal) {
- var effect = signal.first;
- while (effect !== null) {
- var next = effect.next;
- if ((effect.f & BRANCH_EFFECT) === 0) {
- destroy_effect(effect);
- }
- effect = next;
- }
-}
-function destroy_effect(effect, remove_dom = true) {
- var removed = false;
- if ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes !== null && effect.nodes.end !== null) {
- remove_effect_dom(
- effect.nodes.start,
- /** @type {TemplateNode} */
- effect.nodes.end
- );
- removed = true;
- }
- destroy_effect_children(effect, remove_dom && !removed);
- remove_reactions(effect, 0);
- set_signal_status(effect, DESTROYED);
- var transitions = effect.nodes && effect.nodes.t;
- if (transitions !== null) {
- for (const transition of transitions) {
- transition.stop();
- }
- }
- execute_effect_teardown(effect);
- var parent = effect.parent;
- if (parent !== null && parent.first !== null) {
- unlink_effect(effect);
- }
- effect.next = effect.prev = effect.teardown = effect.ctx = effect.deps = effect.fn = effect.nodes = effect.ac = null;
-}
-function remove_effect_dom(node, end) {
- while (node !== null) {
- var next = node === end ? null : /* @__PURE__ */ get_next_sibling(node);
- node.remove();
- node = next;
- }
-}
-function unlink_effect(effect) {
- var parent = effect.parent;
- var prev = effect.prev;
- var next = effect.next;
- if (prev !== null) prev.next = next;
- if (next !== null) next.prev = prev;
- if (parent !== null) {
- if (parent.first === effect) parent.first = next;
- if (parent.last === effect) parent.last = prev;
- }
-}
-function pause_effect(effect, callback, destroy = true) {
- var transitions = [];
- pause_children(effect, transitions, true);
- var fn = () => {
- if (destroy) destroy_effect(effect);
- if (callback) callback();
- };
- var remaining = transitions.length;
- if (remaining > 0) {
- var check = () => --remaining || fn();
- for (var transition of transitions) {
- transition.out(check);
- }
- } else {
- fn();
- }
-}
-function pause_children(effect, transitions, local) {
- if ((effect.f & INERT) !== 0) return;
- effect.f ^= INERT;
- var t = effect.nodes && effect.nodes.t;
- if (t !== null) {
- for (const transition of t) {
- if (transition.is_global || local) {
- transitions.push(transition);
- }
- }
- }
- var child = effect.first;
- while (child !== null) {
- var sibling = child.next;
- var transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent,
- // it means the parent block effect was pruned. In that case,
- // transparency information was transferred to the branch effect.
- (child.f & BRANCH_EFFECT) !== 0 && (effect.f & BLOCK_EFFECT) !== 0;
- pause_children(child, transitions, transparent ? local : false);
- child = sibling;
- }
-}
-function move_effect(effect, fragment) {
- if (!effect.nodes) return;
- var node = effect.nodes.start;
- var end = effect.nodes.end;
- while (node !== null) {
- var next = node === end ? null : /* @__PURE__ */ get_next_sibling(node);
- fragment.append(node);
- node = next;
- }
-}
-let is_updating_effect = false;
-function set_is_updating_effect(value) {
- is_updating_effect = value;
-}
-let is_destroying_effect = false;
-function set_is_destroying_effect(value) {
- is_destroying_effect = value;
-}
-let active_reaction = null;
-let untracking = false;
-function set_active_reaction(reaction) {
- active_reaction = reaction;
-}
-let active_effect = null;
-function set_active_effect(effect) {
- active_effect = effect;
-}
-let current_sources = null;
-function push_reaction_value(value) {
- if (active_reaction !== null && true) {
- if (current_sources === null) {
- current_sources = [value];
- } else {
- current_sources.push(value);
- }
- }
-}
-let new_deps = null;
-let skipped_deps = 0;
-let untracked_writes = null;
-function set_untracked_writes(value) {
- untracked_writes = value;
-}
-let write_version = 1;
-let read_version = 0;
-let update_version = read_version;
-function set_update_version(value) {
- update_version = value;
-}
-function increment_write_version() {
- return ++write_version;
-}
-function is_dirty(reaction) {
- var flags = reaction.f;
- if ((flags & DIRTY) !== 0) {
- return true;
- }
- if (flags & DERIVED) {
- reaction.f &= ~WAS_MARKED;
- }
- if ((flags & MAYBE_DIRTY) !== 0) {
- var dependencies = reaction.deps;
- if (dependencies !== null) {
- var length = dependencies.length;
- for (var i = 0; i < length; i++) {
- var dependency = dependencies[i];
- if (is_dirty(
- /** @type {Derived} */
- dependency
- )) {
- update_derived(
- /** @type {Derived} */
- dependency
- );
- }
- if (dependency.wv > reaction.wv) {
- return true;
- }
- }
- }
- if ((flags & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that
- // traversal of the graph in the other batches still happens
- batch_values === null) {
- set_signal_status(reaction, CLEAN);
- }
- }
- return false;
-}
-function schedule_possible_effect_self_invalidation(signal, effect, root = true) {
- var reactions = signal.reactions;
- if (reactions === null) return;
- if (current_sources?.includes(signal)) {
- return;
- }
- for (var i = 0; i < reactions.length; i++) {
- var reaction = reactions[i];
- if ((reaction.f & DERIVED) !== 0) {
- schedule_possible_effect_self_invalidation(
- /** @type {Derived} */
- reaction,
- effect,
- false
- );
- } else if (effect === reaction) {
- if (root) {
- set_signal_status(reaction, DIRTY);
- } else if ((reaction.f & CLEAN) !== 0) {
- set_signal_status(reaction, MAYBE_DIRTY);
- }
- schedule_effect(
- /** @type {Effect} */
- reaction
- );
- }
- }
-}
-function update_reaction(reaction) {
- var previous_deps = new_deps;
- var previous_skipped_deps = skipped_deps;
- var previous_untracked_writes = untracked_writes;
- var previous_reaction = active_reaction;
- var previous_sources = current_sources;
- var previous_component_context = component_context;
- var previous_untracking = untracking;
- var previous_update_version = update_version;
- var flags = reaction.f;
- new_deps = /** @type {null | Value[]} */
- null;
- skipped_deps = 0;
- untracked_writes = null;
- active_reaction = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;
- current_sources = null;
- set_component_context(reaction.ctx);
- untracking = false;
- update_version = ++read_version;
- if (reaction.ac !== null) {
- without_reactive_context(() => {
- reaction.ac.abort(STALE_REACTION);
- });
- reaction.ac = null;
- }
- try {
- reaction.f |= REACTION_IS_UPDATING;
- var fn = (
- /** @type {Function} */
- reaction.fn
- );
- var result = fn();
- var deps = reaction.deps;
- if (new_deps !== null) {
- var i;
- remove_reactions(reaction, skipped_deps);
- if (deps !== null && skipped_deps > 0) {
- deps.length = skipped_deps + new_deps.length;
- for (i = 0; i < new_deps.length; i++) {
- deps[skipped_deps + i] = new_deps[i];
- }
- } else {
- reaction.deps = deps = new_deps;
- }
- if (effect_tracking() && (reaction.f & CONNECTED) !== 0) {
- for (i = skipped_deps; i < deps.length; i++) {
- (deps[i].reactions ??= []).push(reaction);
- }
- }
- } else if (deps !== null && skipped_deps < deps.length) {
- remove_reactions(reaction, skipped_deps);
- deps.length = skipped_deps;
- }
- if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) {
- for (i = 0; i < /** @type {Source[]} */
- untracked_writes.length; i++) {
- schedule_possible_effect_self_invalidation(
- untracked_writes[i],
- /** @type {Effect} */
- reaction
- );
- }
- }
- if (previous_reaction !== null && previous_reaction !== reaction) {
- read_version++;
- if (untracked_writes !== null) {
- if (previous_untracked_writes === null) {
- previous_untracked_writes = untracked_writes;
- } else {
- previous_untracked_writes.push(.../** @type {Source[]} */
- untracked_writes);
- }
- }
- }
- if ((reaction.f & ERROR_VALUE) !== 0) {
- reaction.f ^= ERROR_VALUE;
- }
- return result;
- } catch (error) {
- return handle_error(error);
- } finally {
- reaction.f ^= REACTION_IS_UPDATING;
- new_deps = previous_deps;
- skipped_deps = previous_skipped_deps;
- untracked_writes = previous_untracked_writes;
- active_reaction = previous_reaction;
- current_sources = previous_sources;
- set_component_context(previous_component_context);
- untracking = previous_untracking;
- update_version = previous_update_version;
- }
-}
-function remove_reaction(signal, dependency) {
- let reactions = dependency.reactions;
- if (reactions !== null) {
- var index = index_of.call(reactions, signal);
- if (index !== -1) {
- var new_length = reactions.length - 1;
- if (new_length === 0) {
- reactions = dependency.reactions = null;
- } else {
- reactions[index] = reactions[new_length];
- reactions.pop();
- }
- }
- }
- if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear
- // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`
- // allows us to skip the expensive work of disconnecting and immediately reconnecting it
- (new_deps === null || !new_deps.includes(dependency))) {
- set_signal_status(dependency, MAYBE_DIRTY);
- if ((dependency.f & CONNECTED) !== 0) {
- dependency.f ^= CONNECTED;
- dependency.f &= ~WAS_MARKED;
- }
- destroy_derived_effects(
- /** @type {Derived} **/
- dependency
- );
- remove_reactions(
- /** @type {Derived} **/
- dependency,
- 0
- );
- }
-}
-function remove_reactions(signal, start_index) {
- var dependencies = signal.deps;
- if (dependencies === null) return;
- for (var i = start_index; i < dependencies.length; i++) {
- remove_reaction(signal, dependencies[i]);
- }
-}
-function update_effect(effect) {
- var flags = effect.f;
- if ((flags & DESTROYED) !== 0) {
- return;
- }
- set_signal_status(effect, CLEAN);
- var previous_effect = active_effect;
- var was_updating_effect = is_updating_effect;
- active_effect = effect;
- is_updating_effect = true;
- try {
- if ((flags & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {
- destroy_block_effect_children(effect);
- } else {
- destroy_effect_children(effect);
- }
- execute_effect_teardown(effect);
- var teardown = update_reaction(effect);
- effect.teardown = typeof teardown === "function" ? teardown : null;
- effect.wv = write_version;
- var dep;
- if (BROWSER && tracing_mode_flag && (effect.f & DIRTY) !== 0 && effect.deps !== null) ;
- } finally {
- is_updating_effect = was_updating_effect;
- active_effect = previous_effect;
- }
-}
-function get(signal) {
- var flags = signal.f;
- var is_derived = (flags & DERIVED) !== 0;
- if (active_reaction !== null && !untracking) {
- var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0;
- if (!destroyed && !current_sources?.includes(signal)) {
- var deps = active_reaction.deps;
- if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) {
- if (signal.rv < read_version) {
- signal.rv = read_version;
- if (new_deps === null && deps !== null && deps[skipped_deps] === signal) {
- skipped_deps++;
- } else if (new_deps === null) {
- new_deps = [signal];
- } else if (!new_deps.includes(signal)) {
- new_deps.push(signal);
- }
- }
- } else {
- (active_reaction.deps ??= []).push(signal);
- var reactions = signal.reactions;
- if (reactions === null) {
- signal.reactions = [active_reaction];
- } else if (!reactions.includes(active_reaction)) {
- reactions.push(active_reaction);
- }
- }
- }
- }
- if (is_destroying_effect) {
- if (old_values.has(signal)) {
- return old_values.get(signal);
- }
- if (is_derived) {
- var derived = (
- /** @type {Derived} */
- signal
- );
- var value = derived.v;
- if ((derived.f & CLEAN) === 0 && derived.reactions !== null || depends_on_old_values(derived)) {
- value = execute_derived(derived);
- }
- old_values.set(derived, value);
- return value;
- }
- } else if (is_derived && (!batch_values?.has(signal) || current_batch?.is_fork && !effect_tracking())) {
- derived = /** @type {Derived} */
- signal;
- if (is_dirty(derived)) {
- update_derived(derived);
- }
- if (is_updating_effect && effect_tracking() && (derived.f & CONNECTED) === 0) {
- reconnect(derived);
- }
- }
- if (batch_values?.has(signal)) {
- return batch_values.get(signal);
- }
- if ((signal.f & ERROR_VALUE) !== 0) {
- throw signal.v;
- }
- return signal.v;
-}
-function reconnect(derived) {
- if (derived.deps === null) return;
- derived.f ^= CONNECTED;
- for (const dep of derived.deps) {
- (dep.reactions ??= []).push(derived);
- if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) {
- reconnect(
- /** @type {Derived} */
- dep
- );
- }
- }
-}
-function depends_on_old_values(derived) {
- if (derived.v === UNINITIALIZED) return true;
- if (derived.deps === null) return false;
- for (const dep of derived.deps) {
- if (old_values.has(dep)) {
- return true;
- }
- if ((dep.f & DERIVED) !== 0 && depends_on_old_values(
- /** @type {Derived} */
- dep
- )) {
- return true;
- }
- }
- return false;
-}
-function untrack(fn) {
- var previous_untracking = untracking;
- try {
- untracking = true;
- return fn();
- } finally {
- untracking = previous_untracking;
- }
-}
-const STATUS_MASK = -7169;
-function set_signal_status(signal, status) {
- signal.f = signal.f & STATUS_MASK | status;
-}
-const DOM_BOOLEAN_ATTRIBUTES = [
- "allowfullscreen",
- "async",
- "autofocus",
- "autoplay",
- "checked",
- "controls",
- "default",
- "disabled",
- "formnovalidate",
- "indeterminate",
- "inert",
- "ismap",
- "loop",
- "multiple",
- "muted",
- "nomodule",
- "novalidate",
- "open",
- "playsinline",
- "readonly",
- "required",
- "reversed",
- "seamless",
- "selected",
- "webkitdirectory",
- "defer",
- "disablepictureinpicture",
- "disableremoteplayback"
-];
-function is_boolean_attribute(name) {
- return DOM_BOOLEAN_ATTRIBUTES.includes(name);
-}
-const PASSIVE_EVENTS = ["touchstart", "touchmove"];
-function is_passive_event(name) {
- return PASSIVE_EVENTS.includes(name);
-}
-const ATTR_REGEX = /[&"<]/g;
-const CONTENT_REGEX = /[&<]/g;
-function escape_html(value, is_attr) {
- const str = String(value ?? "");
- const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;
- pattern.lastIndex = 0;
- let escaped = "";
- let last = 0;
- while (pattern.test(str)) {
- const i = pattern.lastIndex - 1;
- const ch = str[i];
- escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<");
- last = i + 1;
- }
- return escaped + str.substring(last);
-}
-const replacements = {
- translate: /* @__PURE__ */ new Map([
- [true, "yes"],
- [false, "no"]
- ])
-};
-function attr(name, value, is_boolean = false) {
- if (name === "hidden" && value !== "until-found") {
- is_boolean = true;
- }
- if (value == null || !value && is_boolean) return "";
- const normalized = name in replacements && replacements[name].get(value) || value;
- const assignment = is_boolean ? "" : `="${escape_html(normalized, true)}"`;
- return ` ${name}${assignment}`;
-}
-function clsx(value) {
- if (typeof value === "object") {
- return clsx$1(value);
- } else {
- return value ?? "";
- }
-}
-const whitespace = [..." \n\r\f \v\uFEFF"];
-function to_class(value, hash, directives) {
- var classname = value == null ? "" : "" + value;
- if (hash) {
- classname = classname ? classname + " " + hash : hash;
- }
- if (directives) {
- for (var key in directives) {
- if (directives[key]) {
- classname = classname ? classname + " " + key : key;
- } else if (classname.length) {
- var len = key.length;
- var a = 0;
- while ((a = classname.indexOf(key, a)) >= 0) {
- var b = a + len;
- if ((a === 0 || whitespace.includes(classname[a - 1])) && (b === classname.length || whitespace.includes(classname[b]))) {
- classname = (a === 0 ? "" : classname.substring(0, a)) + classname.substring(b + 1);
- } else {
- a = b;
- }
- }
- }
- }
- }
- return classname === "" ? null : classname;
-}
-function append_styles(styles, important = false) {
- var separator = important ? " !important;" : ";";
- var css = "";
- for (var key in styles) {
- var value = styles[key];
- if (value != null && value !== "") {
- css += " " + key + ": " + value + separator;
- }
- }
- return css;
-}
-function to_css_name(name) {
- if (name[0] !== "-" || name[1] !== "-") {
- return name.toLowerCase();
- }
- return name;
-}
-function to_style(value, styles) {
- if (styles) {
- var new_style = "";
- var normal_styles;
- var important_styles;
- if (Array.isArray(styles)) {
- normal_styles = styles[0];
- important_styles = styles[1];
- } else {
- normal_styles = styles;
- }
- if (value) {
- value = String(value).replaceAll(/\s*\/\*.*?\*\/\s*/g, "").trim();
- var in_str = false;
- var in_apo = 0;
- var in_comment = false;
- var reserved_names = [];
- if (normal_styles) {
- reserved_names.push(...Object.keys(normal_styles).map(to_css_name));
- }
- if (important_styles) {
- reserved_names.push(...Object.keys(important_styles).map(to_css_name));
- }
- var start_index = 0;
- var name_index = -1;
- const len = value.length;
- for (var i = 0; i < len; i++) {
- var c = value[i];
- if (in_comment) {
- if (c === "/" && value[i - 1] === "*") {
- in_comment = false;
- }
- } else if (in_str) {
- if (in_str === c) {
- in_str = false;
- }
- } else if (c === "/" && value[i + 1] === "*") {
- in_comment = true;
- } else if (c === '"' || c === "'") {
- in_str = c;
- } else if (c === "(") {
- in_apo++;
- } else if (c === ")") {
- in_apo--;
- }
- if (!in_comment && in_str === false && in_apo === 0) {
- if (c === ":" && name_index === -1) {
- name_index = i;
- } else if (c === ";" || i === len - 1) {
- if (name_index !== -1) {
- var name = to_css_name(value.substring(start_index, name_index).trim());
- if (!reserved_names.includes(name)) {
- if (c !== ";") {
- i++;
- }
- var property = value.substring(start_index, i).trim();
- new_style += " " + property + ";";
- }
- }
- start_index = i + 1;
- name_index = -1;
- }
- }
- }
- }
- if (normal_styles) {
- new_style += append_styles(normal_styles);
- }
- if (important_styles) {
- new_style += append_styles(important_styles, true);
- }
- new_style = new_style.trim();
- return new_style === "" ? null : new_style;
- }
- return value == null ? null : String(value);
-}
-function subscribe_to_store(store, run, invalidate) {
- if (store == null) {
- run(void 0);
- return noop;
- }
- const unsub = untrack(
- () => store.subscribe(
- run,
- // @ts-expect-error
- invalidate
- )
- );
- return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;
-}
-const BLOCK_OPEN = ``;
-const BLOCK_CLOSE = ``;
-let controller = null;
-function abort() {
- controller?.abort(STALE_REACTION);
- controller = null;
-}
-function await_invalid() {
- const error = new Error(`await_invalid
-Encountered asynchronous work while rendering synchronously.
-https://svelte.dev/e/await_invalid`);
- error.name = "Svelte error";
- throw error;
-}
-function invalid_csp() {
- const error = new Error(`invalid_csp
-\`csp.nonce\` was set while \`csp.hash\` was \`true\`. These options cannot be used simultaneously.
-https://svelte.dev/e/invalid_csp`);
- error.name = "Svelte error";
- throw error;
-}
-function server_context_required() {
- const error = new Error(`server_context_required
-Could not resolve \`render\` context.
-https://svelte.dev/e/server_context_required`);
- error.name = "Svelte error";
- throw error;
-}
-var ssr_context = null;
-function set_ssr_context(v) {
- ssr_context = v;
-}
-function getContext(key) {
- const context_map = get_or_init_context_map();
- const result = (
- /** @type {T} */
- context_map.get(key)
- );
- return result;
-}
-function setContext(key, context) {
- get_or_init_context_map().set(key, context);
- return context;
-}
-function get_or_init_context_map(name) {
- if (ssr_context === null) {
- lifecycle_outside_component();
- }
- return ssr_context.c ??= new Map(get_parent_context(ssr_context) || void 0);
-}
-function push(fn) {
- ssr_context = { p: ssr_context, c: null, r: null };
-}
-function pop() {
- ssr_context = /** @type {SSRContext} */
- ssr_context.p;
-}
-function get_parent_context(ssr_context2) {
- let parent = ssr_context2.p;
- while (parent !== null) {
- const context_map = parent.c;
- if (context_map !== null) {
- return context_map;
- }
- parent = parent.p;
- }
- return null;
-}
-function unresolved_hydratable(key, stack) {
- {
- console.warn(`https://svelte.dev/e/unresolved_hydratable`);
- }
-}
-function get_render_context() {
- const store = als?.getStore();
- {
- server_context_required();
- }
- return store;
-}
-let als = null;
-let text_encoder;
-let crypto;
-async function sha256(data) {
- text_encoder ??= new TextEncoder();
- crypto ??= globalThis.crypto?.subtle?.digest ? globalThis.crypto : (
- // @ts-ignore - we don't install node types in the prod build
- (await import("node:crypto")).webcrypto
- );
- const hash_buffer = await crypto.subtle.digest("SHA-256", text_encoder.encode(data));
- return base64_encode(hash_buffer);
-}
-function base64_encode(bytes) {
- if (globalThis.Buffer) {
- return globalThis.Buffer.from(bytes).toString("base64");
- }
- let binary = "";
- for (let i = 0; i < bytes.length; i++) {
- binary += String.fromCharCode(bytes[i]);
- }
- return btoa(binary);
-}
-class Renderer {
- /**
- * The contents of the renderer.
- * @type {RendererItem[]}
- */
- #out = [];
- /**
- * Any `onDestroy` callbacks registered during execution of this renderer.
- * @type {(() => void)[] | undefined}
- */
- #on_destroy = void 0;
- /**
- * Whether this renderer is a component body.
- * @type {boolean}
- */
- #is_component_body = false;
- /**
- * The type of string content that this renderer is accumulating.
- * @type {RendererType}
- */
- type;
- /** @type {Renderer | undefined} */
- #parent;
- /**
- * Asynchronous work associated with this renderer
- * @type {Promise | undefined}
- */
- promise = void 0;
- /**
- * State which is associated with the content tree as a whole.
- * It will be re-exposed, uncopied, on all children.
- * @type {SSRState}
- * @readonly
- */
- global;
- /**
- * State that is local to the branch it is declared in.
- * It will be shallow-copied to all children.
- *
- * @type {{ select_value: string | undefined }}
- */
- local;
- /**
- * @param {SSRState} global
- * @param {Renderer | undefined} [parent]
- */
- constructor(global, parent) {
- this.#parent = parent;
- this.global = global;
- this.local = parent ? { ...parent.local } : { select_value: void 0 };
- this.type = parent ? parent.type : "body";
- }
- /**
- * @param {(renderer: Renderer) => void} fn
- */
- head(fn) {
- const head = new Renderer(this.global, this);
- head.type = "head";
- this.#out.push(head);
- head.child(fn);
- }
- /**
- * @param {Array>} blockers
- * @param {(renderer: Renderer) => void} fn
- */
- async_block(blockers, fn) {
- this.#out.push(BLOCK_OPEN);
- this.async(blockers, fn);
- this.#out.push(BLOCK_CLOSE);
- }
- /**
- * @param {Array>} blockers
- * @param {(renderer: Renderer) => void} fn
- */
- async(blockers, fn) {
- let callback = fn;
- if (blockers.length > 0) {
- const context = ssr_context;
- callback = (renderer) => {
- return Promise.all(blockers).then(() => {
- const previous_context = ssr_context;
- try {
- set_ssr_context(context);
- return fn(renderer);
- } finally {
- set_ssr_context(previous_context);
- }
- });
- };
- }
- this.child(callback);
- }
- /**
- * @param {Array<() => void>} thunks
- */
- run(thunks) {
- const context = ssr_context;
- let promise = Promise.resolve(thunks[0]());
- const promises = [promise];
- for (const fn of thunks.slice(1)) {
- promise = promise.then(() => {
- const previous_context = ssr_context;
- set_ssr_context(context);
- try {
- return fn();
- } finally {
- set_ssr_context(previous_context);
- }
- });
- promises.push(promise);
- }
- return promises;
- }
- /**
- * Create a child renderer. The child renderer inherits the state from the parent,
- * but has its own content.
- * @param {(renderer: Renderer) => MaybePromise} fn
- */
- child(fn) {
- const child = new Renderer(this.global, this);
- this.#out.push(child);
- const parent = ssr_context;
- set_ssr_context({
- ...ssr_context,
- p: parent,
- c: null,
- r: child
- });
- const result = fn(child);
- set_ssr_context(parent);
- if (result instanceof Promise) {
- if (child.global.mode === "sync") {
- await_invalid();
- }
- result.catch(() => {
- });
- child.promise = result;
- }
- return child;
- }
- /**
- * Create a component renderer. The component renderer inherits the state from the parent,
- * but has its own content. It is treated as an ordering boundary for ondestroy callbacks.
- * @param {(renderer: Renderer) => MaybePromise} fn
- * @param {Function} [component_fn]
- * @returns {void}
- */
- component(fn, component_fn) {
- push();
- const child = this.child(fn);
- child.#is_component_body = true;
- pop();
- }
- /**
- * @param {Record} attrs
- * @param {(renderer: Renderer) => void} fn
- * @param {string | undefined} [css_hash]
- * @param {Record | undefined} [classes]
- * @param {Record | undefined} [styles]
- * @param {number | undefined} [flags]
- * @returns {void}
- */
- select(attrs, fn, css_hash, classes, styles, flags) {
- const { value, ...select_attrs } = attrs;
- this.push(`");
- }
- /**
- * @param {Record} attrs
- * @param {string | number | boolean | ((renderer: Renderer) => void)} body
- * @param {string | undefined} [css_hash]
- * @param {Record | undefined} [classes]
- * @param {Record | undefined} [styles]
- * @param {number | undefined} [flags]
- */
- option(attrs, body, css_hash, classes, styles, flags) {
- this.#out.push(``);
- if (head) {
- renderer.head((child) => child.push(head));
- }
- };
- if (typeof body === "function") {
- this.child((renderer) => {
- const r = new Renderer(this.global, this);
- body(r);
- if (this.global.mode === "async") {
- return r.#collect_content_async().then((content) => {
- close(renderer, content.body.replaceAll("", ""), content);
- });
- } else {
- const content = r.#collect_content();
- close(renderer, content.body.replaceAll("", ""), content);
- }
- });
- } else {
- close(this, body, { body });
- }
- }
- /**
- * @param {(renderer: Renderer) => void} fn
- */
- title(fn) {
- const path = this.get_path();
- const close = (head) => {
- this.global.set_title(head, path);
- };
- this.child((renderer) => {
- const r = new Renderer(renderer.global, renderer);
- fn(r);
- if (renderer.global.mode === "async") {
- return r.#collect_content_async().then((content) => {
- close(content.head);
- });
- } else {
- const content = r.#collect_content();
- close(content.head);
- }
- });
- }
- /**
- * @param {string | (() => Promise)} content
- */
- push(content) {
- if (typeof content === "function") {
- this.child(async (renderer) => renderer.push(await content()));
- } else {
- this.#out.push(content);
- }
- }
- /**
- * @param {() => void} fn
- */
- on_destroy(fn) {
- (this.#on_destroy ??= []).push(fn);
- }
- /**
- * @returns {number[]}
- */
- get_path() {
- return this.#parent ? [...this.#parent.get_path(), this.#parent.#out.indexOf(this)] : [];
- }
- /**
- * @deprecated this is needed for legacy component bindings
- */
- copy() {
- const copy = new Renderer(this.global, this.#parent);
- copy.#out = this.#out.map((item) => item instanceof Renderer ? item.copy() : item);
- copy.promise = this.promise;
- return copy;
- }
- /**
- * @param {Renderer} other
- * @deprecated this is needed for legacy component bindings
- */
- subsume(other) {
- if (this.global.mode !== other.global.mode) {
- throw new Error(
- "invariant: A renderer cannot switch modes. If you're seeing this, there's a compiler bug. File an issue!"
- );
- }
- this.local = other.local;
- this.#out = other.#out.map((item) => {
- if (item instanceof Renderer) {
- item.subsume(item);
- }
- return item;
- });
- this.promise = other.promise;
- this.type = other.type;
- }
- get length() {
- return this.#out.length;
- }
- /**
- * Only available on the server and when compiling with the `server` option.
- * Takes a component and returns an object with `body` and `head` properties on it, which you can use to populate the HTML when server-rendering your app.
- * @template {Record} Props
- * @param {Component} component
- * @param {{ props?: Omit; context?: Map; idPrefix?: string; csp?: Csp }} [options]
- * @returns {RenderOutput}
- */
- static render(component, options = {}) {
- let sync;
- const result = (
- /** @type {RenderOutput} */
- {}
- );
- Object.defineProperties(result, {
- html: {
- get: () => {
- return (sync ??= Renderer.#render(component, options)).body;
- }
- },
- head: {
- get: () => {
- return (sync ??= Renderer.#render(component, options)).head;
- }
- },
- body: {
- get: () => {
- return (sync ??= Renderer.#render(component, options)).body;
- }
- },
- hashes: {
- value: {
- script: ""
- }
- },
- then: {
- value: (
- /**
- * this is not type-safe, but honestly it's the best I can do right now, and it's a straightforward function.
- *
- * @template TResult1
- * @template [TResult2=never]
- * @param { (value: SyncRenderOutput) => TResult1 } onfulfilled
- * @param { (reason: unknown) => TResult2 } onrejected
- */
- (onfulfilled, onrejected) => {
- {
- const result2 = sync ??= Renderer.#render(component, options);
- const user_result = onfulfilled({
- head: result2.head,
- body: result2.body,
- html: result2.body,
- hashes: { script: [] }
- });
- return Promise.resolve(user_result);
- }
- }
- )
- }
- });
- return result;
- }
- /**
- * Collect all of the `onDestroy` callbacks registered during rendering. In an async context, this is only safe to call
- * after awaiting `collect_async`.
- *
- * Child renderers are "porous" and don't affect execution order, but component body renderers
- * create ordering boundaries. Within a renderer, callbacks run in order until hitting a component boundary.
- * @returns {Iterable<() => void>}
- */
- *#collect_on_destroy() {
- for (const component of this.#traverse_components()) {
- yield* component.#collect_ondestroy();
- }
- }
- /**
- * Performs a depth-first search of renderers, yielding the deepest components first, then additional components as we backtrack up the tree.
- * @returns {Iterable}
- */
- *#traverse_components() {
- for (const child of this.#out) {
- if (typeof child !== "string") {
- yield* child.#traverse_components();
- }
- }
- if (this.#is_component_body) {
- yield this;
- }
- }
- /**
- * @returns {Iterable<() => void>}
- */
- *#collect_ondestroy() {
- if (this.#on_destroy) {
- for (const fn of this.#on_destroy) {
- yield fn;
- }
- }
- for (const child of this.#out) {
- if (child instanceof Renderer && !child.#is_component_body) {
- yield* child.#collect_ondestroy();
- }
- }
- }
- /**
- * Render a component. Throws if any of the children are performing asynchronous work.
- *
- * @template {Record} Props
- * @param {Component} component
- * @param {{ props?: Omit; context?: Map; idPrefix?: string }} options
- * @returns {AccumulatedContent}
- */
- static #render(component, options) {
- var previous_context = ssr_context;
- try {
- const renderer = Renderer.#open_render("sync", component, options);
- const content = renderer.#collect_content();
- return Renderer.#close_render(content, renderer);
- } finally {
- abort();
- set_ssr_context(previous_context);
- }
- }
- /**
- * Render a component.
- *
- * @template {Record} Props
- * @param {Component} component
- * @param {{ props?: Omit; context?: Map; idPrefix?: string; csp?: Csp }} options
- * @returns {Promise}
- */
- static async #render_async(component, options) {
- const previous_context = ssr_context;
- try {
- const renderer = Renderer.#open_render("async", component, options);
- const content = await renderer.#collect_content_async();
- const hydratables = await renderer.#collect_hydratables();
- if (hydratables !== null) {
- content.head = hydratables + content.head;
- }
- return Renderer.#close_render(content, renderer);
- } finally {
- set_ssr_context(previous_context);
- abort();
- }
- }
- /**
- * Collect all of the code from the `out` array and return it as a string, or a promise resolving to a string.
- * @param {AccumulatedContent} content
- * @returns {AccumulatedContent}
- */
- #collect_content(content = { head: "", body: "" }) {
- for (const item of this.#out) {
- if (typeof item === "string") {
- content[this.type] += item;
- } else if (item instanceof Renderer) {
- item.#collect_content(content);
- }
- }
- return content;
- }
- /**
- * Collect all of the code from the `out` array and return it as a string.
- * @param {AccumulatedContent} content
- * @returns {Promise}
- */
- async #collect_content_async(content = { head: "", body: "" }) {
- await this.promise;
- for (const item of this.#out) {
- if (typeof item === "string") {
- content[this.type] += item;
- } else if (item instanceof Renderer) {
- await item.#collect_content_async(content);
- }
- }
- return content;
- }
- async #collect_hydratables() {
- const ctx = get_render_context().hydratable;
- for (const [_, key] of ctx.unresolved_promises) {
- unresolved_hydratable(key, ctx.lookup.get(key)?.stack ?? "");
- }
- for (const comparison of ctx.comparisons) {
- await comparison;
- }
- return await this.#hydratable_block(ctx);
- }
- /**
- * @template {Record} Props
- * @param {'sync' | 'async'} mode
- * @param {import('svelte').Component} component
- * @param {{ props?: Omit; context?: Map; idPrefix?: string; csp?: Csp }} options
- * @returns {Renderer}
- */
- static #open_render(mode, component, options) {
- const renderer = new Renderer(
- new SSRState(mode, options.idPrefix ? options.idPrefix + "-" : "", options.csp)
- );
- renderer.push(BLOCK_OPEN);
- if (options.context) {
- push();
- ssr_context.c = options.context;
- ssr_context.r = renderer;
- }
- component(renderer, options.props ?? {});
- if (options.context) {
- pop();
- }
- renderer.push(BLOCK_CLOSE);
- return renderer;
- }
- /**
- * @param {AccumulatedContent} content
- * @param {Renderer} renderer
- * @returns {AccumulatedContent & { hashes: { script: Sha256Source[] } }}
- */
- static #close_render(content, renderer) {
- for (const cleanup of renderer.#collect_on_destroy()) {
- cleanup();
- }
- let head = content.head + renderer.global.get_title();
- let body = content.body;
- for (const { hash, code } of renderer.global.css) {
- head += ``;
- }
- return {
- head,
- body,
- hashes: {
- script: renderer.global.csp.script_hashes
- }
- };
- }
- /**
- * @param {HydratableContext} ctx
- */
- async #hydratable_block(ctx) {
- if (ctx.lookup.size === 0) {
- return null;
- }
- let entries = [];
- let has_promises = false;
- for (const [k, v] of ctx.lookup) {
- if (v.promises) {
- has_promises = true;
- for (const p of v.promises) await p;
- }
- entries.push(`[${JSON.stringify(k)},${v.serialized}]`);
- }
- let prelude = `const h = (window.__svelte ??= {}).h ??= new Map();`;
- if (has_promises) {
- prelude = `const r = (v) => Promise.resolve(v);
- ${prelude}`;
- }
- const body = `
- {
- ${prelude}
-
- for (const [k, v] of [
- ${entries.join(",\n ")}
- ]) {
- h.set(k, v);
- }
- }
- `;
- let csp_attr = "";
- if (this.global.csp.nonce) {
- csp_attr = ` nonce="${this.global.csp.nonce}"`;
- } else if (this.global.csp.hash) {
- const hash = await sha256(body);
- this.global.csp.script_hashes.push(`sha256-${hash}`);
- }
- return `
-