INIT
This commit is contained in:
Vendored
+179
@@ -0,0 +1,179 @@
|
|||||||
|
|
||||||
|
// this file is generated — do not edit it
|
||||||
|
|
||||||
|
|
||||||
|
/// <reference types="@sveltejs/kit" />
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 _ZO_DOCTOR: string;
|
||||||
|
export const VSCODE_CRASH_REPORTER_PROCESS_TYPE: string;
|
||||||
|
export const NODE: string;
|
||||||
|
export const TERM: string;
|
||||||
|
export const SHELL: string;
|
||||||
|
export const VSCODE_PROCESS_TITLE: string;
|
||||||
|
export const TMPDIR: string;
|
||||||
|
export const HOMEBREW_REPOSITORY: string;
|
||||||
|
export const MallocNanoZone: string;
|
||||||
|
export const CURSOR_TRACE_ID: string;
|
||||||
|
export const NO_COLOR: string;
|
||||||
|
export const npm_config_local_prefix: string;
|
||||||
|
export const USER: string;
|
||||||
|
export const COMMAND_MODE: string;
|
||||||
|
export const SSH_AUTH_SOCK: string;
|
||||||
|
export const __CF_USER_TEXT_ENCODING: string;
|
||||||
|
export const npm_execpath: string;
|
||||||
|
export const PATH: string;
|
||||||
|
export const npm_package_json: string;
|
||||||
|
export const _: string;
|
||||||
|
export const __CFBundleIdentifier: string;
|
||||||
|
export const npm_command: string;
|
||||||
|
export const PWD: string;
|
||||||
|
export const VSCODE_HANDLES_UNCAUGHT_ERRORS: string;
|
||||||
|
export const npm_lifecycle_event: string;
|
||||||
|
export const VSCODE_ESM_ENTRYPOINT: string;
|
||||||
|
export const npm_package_name: string;
|
||||||
|
export const CURSOR_AGENT: string;
|
||||||
|
export const LANG: string;
|
||||||
|
export const XPC_FLAGS: string;
|
||||||
|
export const FORCE_COLOR: string;
|
||||||
|
export const npm_package_version: string;
|
||||||
|
export const XPC_SERVICE_NAME: string;
|
||||||
|
export const SHLVL: string;
|
||||||
|
export const HOME: string;
|
||||||
|
export const VSCODE_NLS_CONFIG: string;
|
||||||
|
export const CI: string;
|
||||||
|
export const HOMEBREW_PREFIX: string;
|
||||||
|
export const LOGNAME: string;
|
||||||
|
export const npm_lifecycle_script: string;
|
||||||
|
export const VSCODE_IPC_HOOK: string;
|
||||||
|
export const VSCODE_CODE_CACHE_PATH: string;
|
||||||
|
export const npm_config_user_agent: string;
|
||||||
|
export const VSCODE_PID: string;
|
||||||
|
export const INFOPATH: string;
|
||||||
|
export const HOMEBREW_CELLAR: string;
|
||||||
|
export const OSLogRateLimit: string;
|
||||||
|
export const VSCODE_L10N_BUNDLE_LOCATION: string;
|
||||||
|
export const VSCODE_CWD: string;
|
||||||
|
export const npm_node_execpath: 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' {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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: {
|
||||||
|
_ZO_DOCTOR: string;
|
||||||
|
VSCODE_CRASH_REPORTER_PROCESS_TYPE: string;
|
||||||
|
NODE: string;
|
||||||
|
TERM: string;
|
||||||
|
SHELL: string;
|
||||||
|
VSCODE_PROCESS_TITLE: string;
|
||||||
|
TMPDIR: string;
|
||||||
|
HOMEBREW_REPOSITORY: string;
|
||||||
|
MallocNanoZone: string;
|
||||||
|
CURSOR_TRACE_ID: string;
|
||||||
|
NO_COLOR: string;
|
||||||
|
npm_config_local_prefix: string;
|
||||||
|
USER: string;
|
||||||
|
COMMAND_MODE: string;
|
||||||
|
SSH_AUTH_SOCK: string;
|
||||||
|
__CF_USER_TEXT_ENCODING: string;
|
||||||
|
npm_execpath: string;
|
||||||
|
PATH: string;
|
||||||
|
npm_package_json: string;
|
||||||
|
_: string;
|
||||||
|
__CFBundleIdentifier: string;
|
||||||
|
npm_command: string;
|
||||||
|
PWD: string;
|
||||||
|
VSCODE_HANDLES_UNCAUGHT_ERRORS: string;
|
||||||
|
npm_lifecycle_event: string;
|
||||||
|
VSCODE_ESM_ENTRYPOINT: string;
|
||||||
|
npm_package_name: string;
|
||||||
|
CURSOR_AGENT: string;
|
||||||
|
LANG: string;
|
||||||
|
XPC_FLAGS: string;
|
||||||
|
FORCE_COLOR: string;
|
||||||
|
npm_package_version: string;
|
||||||
|
XPC_SERVICE_NAME: string;
|
||||||
|
SHLVL: string;
|
||||||
|
HOME: string;
|
||||||
|
VSCODE_NLS_CONFIG: string;
|
||||||
|
CI: string;
|
||||||
|
HOMEBREW_PREFIX: string;
|
||||||
|
LOGNAME: string;
|
||||||
|
npm_lifecycle_script: string;
|
||||||
|
VSCODE_IPC_HOOK: string;
|
||||||
|
VSCODE_CODE_CACHE_PATH: string;
|
||||||
|
npm_config_user_agent: string;
|
||||||
|
VSCODE_PID: string;
|
||||||
|
INFOPATH: string;
|
||||||
|
HOMEBREW_CELLAR: string;
|
||||||
|
OSLogRateLimit: string;
|
||||||
|
VSCODE_L10N_BUNDLE_LOCATION: string;
|
||||||
|
VSCODE_CWD: string;
|
||||||
|
npm_node_execpath: 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: {
|
||||||
|
[key: `PUBLIC_${string}`]: string | undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
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],
|
||||||
|
"/items": [~4],
|
||||||
|
"/login": [~5],
|
||||||
|
"/logout": [~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';
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export const matchers = {};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import * as universal from "../../../../src/routes/+layout.ts";
|
||||||
|
export { universal };
|
||||||
|
export { default as component } from "../../../../src/routes/+layout.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../src/routes/+page.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../src/routes/items/+page.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../src/routes/login/+page.svelte";
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
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],
|
||||||
|
"/items": [~4],
|
||||||
|
"/login": [~5],
|
||||||
|
"/logout": [~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';
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export const matchers = {};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import * as universal from "../../../../src/routes/+layout.ts";
|
||||||
|
export { universal };
|
||||||
|
export { default as component } from "../../../../src/routes/+layout.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../src/routes/+page.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../src/routes/items/+page.svelte";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { default as component } from "../../../../src/routes/login/+page.svelte";
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import { asClassComponent } from 'svelte/legacy';
|
||||||
|
import Root from './root.svelte';
|
||||||
|
export default asClassComponent(Root);
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<!-- This file is generated by @sveltejs/kit — do not edit it! -->
|
||||||
|
<svelte:options runes={true} />
|
||||||
|
<script>
|
||||||
|
import { setContext, onMount, tick } from 'svelte';
|
||||||
|
import { browser } from '$app/environment';
|
||||||
|
|
||||||
|
// stores
|
||||||
|
let { stores, page, constructors, components = [], form, data_0 = null, data_1 = null } = $props();
|
||||||
|
|
||||||
|
if (!browser) {
|
||||||
|
// svelte-ignore state_referenced_locally
|
||||||
|
setContext('__svelte__', stores);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (browser) {
|
||||||
|
$effect.pre(() => stores.page.set(page));
|
||||||
|
} else {
|
||||||
|
// svelte-ignore state_referenced_locally
|
||||||
|
stores.page.set(page);
|
||||||
|
}
|
||||||
|
$effect(() => {
|
||||||
|
stores;page;constructors;components;form;data_0;data_1;
|
||||||
|
stores.page.notify();
|
||||||
|
});
|
||||||
|
|
||||||
|
let mounted = $state(false);
|
||||||
|
let navigated = $state(false);
|
||||||
|
let title = $state(null);
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
const unsubscribe = stores.page.subscribe(() => {
|
||||||
|
if (mounted) {
|
||||||
|
navigated = true;
|
||||||
|
tick().then(() => {
|
||||||
|
title = document.title || 'untitled page';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mounted = true;
|
||||||
|
return unsubscribe;
|
||||||
|
});
|
||||||
|
|
||||||
|
const Pyramid_1=$derived(constructors[1])
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if constructors[1]}
|
||||||
|
{@const Pyramid_0 = constructors[0]}
|
||||||
|
<!-- svelte-ignore binding_property_non_reactive -->
|
||||||
|
<Pyramid_0 bind:this={components[0]} data={data_0} {form} params={page.params}>
|
||||||
|
<!-- svelte-ignore binding_property_non_reactive -->
|
||||||
|
<Pyramid_1 bind:this={components[1]} data={data_1} {form} params={page.params} />
|
||||||
|
</Pyramid_0>
|
||||||
|
|
||||||
|
{:else}
|
||||||
|
{@const Pyramid_0 = constructors[0]}
|
||||||
|
<!-- svelte-ignore binding_property_non_reactive -->
|
||||||
|
<Pyramid_0 bind:this={components[0]} data={data_0} {form} params={page.params} />
|
||||||
|
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if mounted}
|
||||||
|
<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px">
|
||||||
|
{#if navigated}
|
||||||
|
{title}
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
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 }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n " + head + "\n </head>\n <body data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
|
||||||
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
||||||
|
},
|
||||||
|
version_hash: "1e50mid"
|
||||||
|
};
|
||||||
|
|
||||||
|
export async function get_hooks() {
|
||||||
|
let handle;
|
||||||
|
let handleFetch;
|
||||||
|
let handleError;
|
||||||
|
let handleValidationError;
|
||||||
|
let init;
|
||||||
|
({ handle, handleFetch, handleError, handleValidationError, init } = await import("../../../src/hooks.server.ts"));
|
||||||
|
|
||||||
|
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 };
|
||||||
Vendored
+45
@@ -0,0 +1,45 @@
|
|||||||
|
|
||||||
|
// this file is generated — do not edit it
|
||||||
|
|
||||||
|
|
||||||
|
declare module "svelte/elements" {
|
||||||
|
export interface HTMLAttributes<T> {
|
||||||
|
'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(): "/" | "/access-denied" | "/items" | "/login" | "/logout";
|
||||||
|
RouteParams(): {
|
||||||
|
|
||||||
|
};
|
||||||
|
LayoutParams(): {
|
||||||
|
"/": Record<string, never>;
|
||||||
|
"/access-denied": Record<string, never>;
|
||||||
|
"/items": Record<string, never>;
|
||||||
|
"/login": Record<string, never>;
|
||||||
|
"/logout": Record<string, never>
|
||||||
|
};
|
||||||
|
Pathname(): "/" | "/items" | "/login" | "/logout";
|
||||||
|
ResolvedPathname(): `${"" | `/${string}`}${ReturnType<AppTypes['Pathname']>}`;
|
||||||
|
Asset(): string & {};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,257 @@
|
|||||||
|
{
|
||||||
|
".svelte-kit/generated/client-optimized/app.js": {
|
||||||
|
"file": "_app/immutable/entry/app.BaRtR_VV.js",
|
||||||
|
"name": "entry/app",
|
||||||
|
"src": ".svelte-kit/generated/client-optimized/app.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_CS4xyx6M.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_Db3dOJqt.js",
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_CvosxF64.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",
|
||||||
|
"_CS4xyx6M.js",
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/4.js",
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/5.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/0.js": {
|
||||||
|
"file": "_app/immutable/nodes/0.BWGINVoR.js",
|
||||||
|
"name": "nodes/0",
|
||||||
|
"src": ".svelte-kit/generated/client-optimized/nodes/0.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_BrBXfa46.js",
|
||||||
|
"_m2dceAnU.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"_app/immutable/assets/0.C7J2EIJ7.css"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/1.js": {
|
||||||
|
"file": "_app/immutable/nodes/1.CEGpjm-A.js",
|
||||||
|
"name": "nodes/1",
|
||||||
|
"src": ".svelte-kit/generated/client-optimized/nodes/1.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_BrBXfa46.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_Db3dOJqt.js",
|
||||||
|
"_DH791y0n.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/2.js": {
|
||||||
|
"file": "_app/immutable/nodes/2.W3CLiCpj.js",
|
||||||
|
"name": "nodes/2",
|
||||||
|
"src": ".svelte-kit/generated/client-optimized/nodes/2.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_BrBXfa46.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_D4Z6sX8n.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/4.js": {
|
||||||
|
"file": "_app/immutable/nodes/4.B8D3vRQS.js",
|
||||||
|
"name": "nodes/4",
|
||||||
|
"src": ".svelte-kit/generated/client-optimized/nodes/4.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_CM9au6ec.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
".svelte-kit/generated/client-optimized/nodes/5.js": {
|
||||||
|
"file": "_app/immutable/nodes/5.NGnDqIo2.js",
|
||||||
|
"name": "nodes/5",
|
||||||
|
"src": ".svelte-kit/generated/client-optimized/nodes/5.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_CS4xyx6M.js",
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_BMcrRaS1.js",
|
||||||
|
"_DcegSV8N.js"
|
||||||
|
],
|
||||||
|
"dynamicImports": [
|
||||||
|
"src/routes/login/LoginForm.svelte"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_BMcrRaS1.js": {
|
||||||
|
"file": "_app/immutable/chunks/BMcrRaS1.js",
|
||||||
|
"name": "await",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_DcegSV8N.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_BrBXfa46.js": {
|
||||||
|
"file": "_app/immutable/chunks/BrBXfa46.js",
|
||||||
|
"name": "legacy",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_BtiMKAzw.js": {
|
||||||
|
"file": "_app/immutable/chunks/BtiMKAzw.js",
|
||||||
|
"name": "index",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_DKU_2deH.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_Bzak7iHL.js": {
|
||||||
|
"file": "_app/immutable/chunks/Bzak7iHL.js",
|
||||||
|
"name": "disclose-version"
|
||||||
|
},
|
||||||
|
"_CM9au6ec.js": {
|
||||||
|
"file": "_app/immutable/chunks/CM9au6ec.js",
|
||||||
|
"name": "4",
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_CS4xyx6M.js",
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_BMcrRaS1.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_BtiMKAzw.js",
|
||||||
|
"_DKU_2deH.js",
|
||||||
|
"_CvosxF64.js"
|
||||||
|
],
|
||||||
|
"dynamicImports": [
|
||||||
|
"src/routes/items/ItemsCrud.svelte"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_CS4xyx6M.js": {
|
||||||
|
"file": "_app/immutable/chunks/CS4xyx6M.js",
|
||||||
|
"name": "3",
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_DcegSV8N.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_CvosxF64.js": {
|
||||||
|
"file": "_app/immutable/chunks/CvosxF64.js",
|
||||||
|
"name": "props",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_D4Z6sX8n.js": {
|
||||||
|
"file": "_app/immutable/chunks/D4Z6sX8n.js",
|
||||||
|
"name": "button",
|
||||||
|
"imports": [
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_BtiMKAzw.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_CvosxF64.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_DH791y0n.js": {
|
||||||
|
"file": "_app/immutable/chunks/DH791y0n.js",
|
||||||
|
"name": "entry",
|
||||||
|
"imports": [
|
||||||
|
"_Db3dOJqt.js",
|
||||||
|
"_m2dceAnU.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_DKU_2deH.js": {
|
||||||
|
"file": "_app/immutable/chunks/DKU_2deH.js",
|
||||||
|
"name": "events",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_Db3dOJqt.js": {
|
||||||
|
"file": "_app/immutable/chunks/Db3dOJqt.js",
|
||||||
|
"name": "index-client",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_DKU_2deH.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_DcegSV8N.js": {
|
||||||
|
"file": "_app/immutable/chunks/DcegSV8N.js",
|
||||||
|
"name": "if",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_OSRdxUzr.js": {
|
||||||
|
"file": "_app/immutable/chunks/OSRdxUzr.js",
|
||||||
|
"name": "label",
|
||||||
|
"imports": [
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_BtiMKAzw.js",
|
||||||
|
"_CvosxF64.js",
|
||||||
|
"_DH791y0n.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_CS4xyx6M.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_m2dceAnU.js": {
|
||||||
|
"file": "_app/immutable/chunks/m2dceAnU.js",
|
||||||
|
"name": "template"
|
||||||
|
},
|
||||||
|
"node_modules/@sveltejs/kit/src/runtime/client/entry.js": {
|
||||||
|
"file": "_app/immutable/entry/start.CdONOS6-.js",
|
||||||
|
"name": "entry/start",
|
||||||
|
"src": "node_modules/@sveltejs/kit/src/runtime/client/entry.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_DH791y0n.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"src/routes/items/ItemsCrud.svelte": {
|
||||||
|
"file": "_app/immutable/chunks/B-nxqYk-.js",
|
||||||
|
"name": "ItemsCrud",
|
||||||
|
"src": "src/routes/items/ItemsCrud.svelte",
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_Db3dOJqt.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_CS4xyx6M.js",
|
||||||
|
"_CM9au6ec.js",
|
||||||
|
"_OSRdxUzr.js",
|
||||||
|
"_BtiMKAzw.js",
|
||||||
|
"_CvosxF64.js",
|
||||||
|
"_D4Z6sX8n.js",
|
||||||
|
"_DKU_2deH.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"src/routes/login/LoginForm.svelte": {
|
||||||
|
"file": "_app/immutable/chunks/CnbhzkKJ.js",
|
||||||
|
"name": "LoginForm",
|
||||||
|
"src": "src/routes/login/LoginForm.svelte",
|
||||||
|
"isDynamicEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_Bzak7iHL.js",
|
||||||
|
"_m2dceAnU.js",
|
||||||
|
"_Db3dOJqt.js",
|
||||||
|
"_DcegSV8N.js",
|
||||||
|
"_CS4xyx6M.js",
|
||||||
|
"_OSRdxUzr.js",
|
||||||
|
"_BtiMKAzw.js",
|
||||||
|
"_CvosxF64.js",
|
||||||
|
"_D4Z6sX8n.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
import{h as l,i as x,j as A,k as B,l as N,H as g,m as D,o as H,p as c,q as S,v,B as q,w as L,x as R,y as U,z as k,U as j,A as E,C as z}from"./m2dceAnU.js";import{B as C}from"./DcegSV8N.js";const T=0,_=1;function O(m,b,y,r,n){l&&x();var h=A(),t=j,i=h?k(t):E(t,!1,!1),o=h?k(t):E(t,!1,!1),s=new C(m);B(()=>{var u=b(),p=!1;let d=l&&N(u)===(m.data===g);if(d&&(D(H()),c(!1)),N(u)){var w=z(),I=!1;const a=e=>{if(!p){I=!0,w(!1),q.ensure(),l&&c(!1);try{e()}finally{L(),R||U()}}};u.then(e=>{a(()=>{v(i,e),s.ensure(_,r&&(f=>r(f,i)))})},e=>{a(()=>{if(v(o,e),s.ensure(_,n&&(f=>n(f,o))),!n)throw o.v})}),l?s.ensure(T,y):S(()=>{I||a(()=>{s.ensure(T,y)})})}else v(i,u),s.ensure(_,r&&(a=>r(a,i)));return d&&c(!0),()=>{p=!0}})}export{O as a};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import{e}from"./m2dceAnU.js";e();
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
var e;typeof window<"u"&&((e=window.__svelte??(window.__svelte={})).v??(e.v=new Set)).add("5");
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./B-nxqYk-.js","./Bzak7iHL.js","./m2dceAnU.js","./Db3dOJqt.js","./DKU_2deH.js","./DcegSV8N.js","./CS4xyx6M.js","./OSRdxUzr.js","./BtiMKAzw.js","./CvosxF64.js","./DH791y0n.js","./D4Z6sX8n.js"])))=>i.map(i=>d[i]);
|
||||||
|
import{c as P,_ as B}from"./CS4xyx6M.js";import"./Bzak7iHL.js";import{h as t,i as w,N as y,ap as L,k as N,Q as O,aq as S,ar as V,as as R,at as A,L as D,p as h,m as _,Z as q,au as j,av as z,aw as G,ax as k,D as F,b as p,d as b,F as H,a as c,E as I,$ as Q,ay as Z,g as E,u as C,f as J}from"./m2dceAnU.js";import{a as K}from"./BMcrRaS1.js";import{B as U,i as W}from"./DcegSV8N.js";import{t as X,a as Y,c as $,s as ee}from"./BtiMKAzw.js";import{i as ae}from"./DKU_2deH.js";import{p as T,b as re,r as te}from"./CvosxF64.js";function ne(f,r,n,o,u,e){let d=t;t&&w();var a=null;t&&y.nodeType===L&&(a=y,w());var l=t?y:f,i=new U(l,!1);N(()=>{const s=r()||null;var v=n||s==="svg"?V:void 0;if(s===null){i.ensure(null,null);return}return i.ensure(s,m=>{if(s){if(a=t?a:S(s,v),R(a,a),o){t&&ae(s)&&a.append(document.createComment(""));var g=t?A(a):a.appendChild(D());t&&(g===null?h(!1):_(g)),o(a,g)}q.nodes.end=a,m.before(a)}t&&_(m)}),()=>{}},O),j(()=>{}),d&&(h(!0),_(l))}function se(f,r){let n=null,o=t;var u;if(t){n=y;for(var e=A(document.head);e!==null&&(e.nodeType!==G||e.data!==f);)e=k(e);if(e===null)h(!1);else{var d=k(e);e.remove(),_(d)}}t||(u=document.head.appendChild(D()));try{N(()=>r(u),z)}finally{o&&(h(!0),_(n))}}const ie=X({base:"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",destructive:"bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70 border-transparent text-white",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function _e(f,r){F(r,!0);let n=T(r,"ref",15,null),o=T(r,"variant",3,"default"),u=te(r,["$$slots","$$events","$$legacy","ref","href","class","variant","children"]);var e=p(),d=b(e);ne(d,()=>r.href?"a":"span",!1,(a,l)=>{re(a,v=>n(v),()=>n()),Y(a,v=>({"data-slot":"badge",href:r.href,class:v,...u}),[()=>$(ie({variant:o()}),r.class)]);var i=p(),s=b(i);ee(s,()=>r.children??H),c(l,i)}),c(f,e),I()}var oe=J('<main class="container mx-auto flex flex-col gap-6 py-8"><p class="text-muted-foreground">Loading…</p></main>');function pe(f,r){F(r,!0);var n=p();se("rk8na7",e=>{Q(()=>{Z.title="Items – Stackq"})});var o=b(n);{var u=e=>{var d=p(),a=b(d);K(a,()=>B(()=>import("./B-nxqYk-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),l=>{var i=oe();c(l,i)},(l,i)=>{var s=C(()=>{var{default:x}=E(i);return{ItemsCrud:x}}),v=C(()=>E(s).ItemsCrud),m=p(),g=b(m);P(g,()=>E(v),(x,M)=>{M(x,{get data(){return r.data}})}),c(l,m)}),c(e,d)};W(o,e=>{e(u)})}c(f,n),I()}export{_e as B,pe as _,ne as e,se as h};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import{h as E,i as g,k as p,Q as _}from"./m2dceAnU.js";import{B as b}from"./DcegSV8N.js";function R(f,i,a){E&&g();var d=new b(f);p(()=>{var o=i()??null;d.ensure(o,o&&(m=>a(m,o)))},_)}const P="modulepreload",S=function(f,i){return new URL(f,i).href},y={},T=function(i,a,d){let o=Promise.resolve();if(a&&a.length>0){let s=function(e){return Promise.all(e.map(r=>Promise.resolve(r).then(c=>({status:"fulfilled",value:c}),c=>({status:"rejected",reason:c}))))};const t=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),v=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));o=s(a.map(e=>{if(e=S(e,d),e in y)return;y[e]=!0;const r=e.endsWith(".css"),c=r?'[rel="stylesheet"]':"";if(d)for(let u=t.length-1;u>=0;u--){const h=t[u];if(h.href===e&&(!r||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${e}"]${c}`))return;const n=document.createElement("link");if(n.rel=r?"stylesheet":P,r||(n.as="script"),n.crossOrigin="",n.href=e,v&&n.setAttribute("nonce",v),document.head.appendChild(n),r)return new Promise((u,h)=>{n.addEventListener("load",u),n.addEventListener("error",()=>h(Error(`Unable to preload CSS for ${e}`)))})}))}function m(s){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=s,window.dispatchEvent(t),!t.defaultPrevented)throw s}return o.then(s=>{for(const t of s||[])t.status==="rejected"&&m(t.reason);return i().catch(m)})},j=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));export{T as _,j as a,R as c};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import"./Bzak7iHL.js";import{D,c as u,F as H,r as f,a as t,E as O,f as g,b as J,d as q,n as m,t as h,s as n,g as K,u as M,T as N}from"./m2dceAnU.js";import{s as Q}from"./Db3dOJqt.js";import{i as R}from"./DcegSV8N.js";import{c as x}from"./CS4xyx6M.js";import{C as U,a as V,b as W,L as j,I as k,c as X,d as Y,e as Z}from"./OSRdxUzr.js";import{a as ee,c as re,s as te}from"./BtiMKAzw.js";import{p as ae,b as se,r as oe}from"./CvosxF64.js";import{B as de}from"./D4Z6sX8n.js";var le=g("<p><!></p>");function ie(y,a){D(a,!0);let p=ae(a,"ref",15,null),P=oe(a,["$$slots","$$events","$$legacy","ref","class","children"]);var o=le();ee(o,v=>({"data-slot":"card-description",class:v,...P}),[()=>re("text-muted-foreground text-sm",a.class)]);var b=u(o);te(b,()=>a.children??H),f(o),se(o,v=>p(v),()=>p()),t(y,o),O()}var ne=g("<!> <!>",1),ce=g('<p class="text-destructive text-sm"> </p>'),me=g('<form method="POST" action="?/login" class="space-y-4"><div class="space-y-2"><!> <!></div> <div class="space-y-2"><div class="flex items-center justify-between"><!> <a href="/forgot-password" class="text-muted-foreground text-sm underline hover:text-foreground">Forgot your password?</a></div> <!></div> <!> <!></form>'),ue=g("<!> <!>",1);function Pe(y,a){D(a,!0);var p=J(),P=q(p);x(P,()=>Y,(o,b)=>{b(o,{class:"w-full max-w-sm",children:(v,fe)=>{var B=ue(),I=q(B);x(I,()=>U,(C,L)=>{L(C,{children:(E,z)=>{var d=ne(),c=q(d);x(c,()=>V,(_,l)=>{l(_,{children:(i,F)=>{m();var $=h("Login");t(i,$)},$$slots:{default:!0}})});var w=n(c,2);x(w,()=>ie,(_,l)=>{l(_,{children:(i,F)=>{m();var $=h("Enter your email and password to sign in.");t(i,$)},$$slots:{default:!0}})}),t(E,d)},$$slots:{default:!0}})});var S=n(I,2);x(S,()=>W,(C,L)=>{L(C,{children:(E,z)=>{var d=me(),c=u(d),w=u(c);j(w,{for:"email",children:(e,r)=>{m();var s=h("Email");t(e,s)},$$slots:{default:!0}});var _=n(w,2);{let e=M(()=>{var r;return((r=a.data)==null?void 0:r.email)??""});k(_,{id:"email",name:"email",type:"email",placeholder:"you@example.com",autocomplete:"email",get value(){return K(e)},required:!0})}f(c);var l=n(c,2),i=u(l),F=u(i);j(F,{for:"password",children:(e,r)=>{m();var s=h("Password");t(e,s)},$$slots:{default:!0}}),m(2),f(i);var $=n(i,2);k($,{id:"password",name:"password",type:"password",autocomplete:"current-password",required:!0}),f(l);var T=n(l,2);{var A=e=>{var r=ce(),s=u(r,!0);f(r),N(()=>Q(s,a.data.error)),t(e,r)};R(T,e=>{var r;(r=a.data)!=null&&r.error&&e(A)})}var G=n(T,2);de(G,{type:"submit",class:"w-full",children:(e,r)=>{m();var s=h("Login");t(e,s)},$$slots:{default:!0}}),f(d),X(d,(e,r)=>{var s;return(s=Z)==null?void 0:s(e,r)},()=>()=>async({update:e})=>{await e()}),t(E,d)},$$slots:{default:!0}})}),t(v,B)},$$slots:{default:!0}})}),t(y,p),O()}export{Pe as default};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import{$ as T,a0 as B,a1 as R,q as Y,a2 as S,a3 as g,a4 as j,a5 as q,g as h,a6 as K,a7 as M,Z as N,a8 as U,a9 as $,aa as Z,ab as z,ac as C,ad as G,ae as F,af as H,ag as J,ah as x,ai as d}from"./m2dceAnU.js";function y(r,e){return r===e||(r==null?void 0:r[S])===e}function m(r={},e,n,i){return T(()=>{var s,t;return B(()=>{s=t,t=[],R(()=>{r!==n(...t)&&(e(r,...t),s&&y(n(...s),r)&&e(null,...s))})}),()=>{Y(()=>{t&&y(n(...t),r)&&e(null,...t)})}}),r}let _=!1;function Q(r){var e=_;try{return _=!1,[r(),_]}finally{_=e}}const V={get(r,e){if(!r.exclude.includes(e))return r.props[e]},set(r,e){return!1},getOwnPropertyDescriptor(r,e){if(!r.exclude.includes(e)&&e in r.props)return{enumerable:!0,configurable:!0,value:r.props[e]}},has(r,e){return r.exclude.includes(e)?!1:e in r.props},ownKeys(r){return Reflect.ownKeys(r.props).filter(e=>!r.exclude.includes(e))}};function k(r,e,n){return new Proxy({props:r,exclude:e},V)}const W={get(r,e){let n=r.props.length;for(;n--;){let i=r.props[n];if(d(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i)return i[e]}},set(r,e,n){let i=r.props.length;for(;i--;){let s=r.props[i];d(s)&&(s=s());const t=g(s,e);if(t&&t.set)return t.set(n),!0}return!1},getOwnPropertyDescriptor(r,e){let n=r.props.length;for(;n--;){let i=r.props[n];if(d(i)&&(i=i()),typeof i=="object"&&i!==null&&e in i){const s=g(i,e);return s&&!s.configurable&&(s.configurable=!0),s}}},has(r,e){if(e===S||e===x)return!1;for(let n of r.props)if(d(n)&&(n=n()),n!=null&&e in n)return!0;return!1},ownKeys(r){const e=[];for(let n of r.props)if(d(n)&&(n=n()),!!n){for(const i in n)e.includes(i)||e.push(i);for(const i of Object.getOwnPropertySymbols(n))e.includes(i)||e.push(i)}return e}};function rr(...r){return new Proxy({props:r},W)}function er(r,e,n,i){var O;var s=!Z||(n&z)!==0,t=(n&$)!==0,E=(n&H)!==0,f=i,v=!0,b=()=>(v&&(v=!1,f=E?R(i):i),f),l;if(t){var A=S in r||x in r;l=((O=g(r,e))==null?void 0:O.set)??(A&&e in r?a=>r[e]=a:void 0)}var o,w=!1;t?[o,w]=Q(()=>r[e]):o=r[e],o===void 0&&i!==void 0&&(o=b(),l&&(s&&j(),l(o)));var u;if(s?u=()=>{var a=r[e];return a===void 0?b():(v=!0,a)}:u=()=>{var a=r[e];return a!==void 0&&(f=void 0),a===void 0?f:a},s&&(n&q)===0)return u;if(l){var D=r.$$legacy;return(function(a,p){return arguments.length>0?((!s||!p||D||w)&&l(p?u():a),a):u()})}var P=!1,c=((n&C)!==0?G:F)(()=>(P=!1,u()));t&&h(c);var L=N;return(function(a,p){if(arguments.length>0){const I=p?h(c):s&&t?K(a):a;return M(c,I),P=!0,f!==void 0&&(f=I),a}return J&&P||(L.f&U)!==0?c.v:h(c)})}export{m as b,er as p,k as r,rr as s};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import"./Bzak7iHL.js";import{t as j,a as b,s as f,c as g}from"./BtiMKAzw.js";import{D,b as E,d as F,a as d,E as P,c as h,r as m,f as k,F as x}from"./m2dceAnU.js";import{i as q}from"./DcegSV8N.js";import{p as r,b as p,r as A}from"./CvosxF64.js";const y=j({base:"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs",destructive:"bg-destructive hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 text-white shadow-xs",outline:"bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border shadow-xs",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-xs",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});var C=k("<a><!></a>"),G=k("<button><!></button>");function M(_,e){D(e,!0);let o=r(e,"variant",3,"default"),l=r(e,"size",3,"default"),s=r(e,"ref",15,null),c=r(e,"href",3,void 0),z=r(e,"type",3,"button"),v=A(e,["$$slots","$$events","$$legacy","class","variant","size","ref","href","type","disabled","children"]);var u=E(),w=F(u);{var B=i=>{var a=C();b(a,t=>({"data-slot":"button",class:t,href:e.disabled?void 0:c(),"aria-disabled":e.disabled,role:e.disabled?"link":void 0,tabindex:e.disabled?-1:void 0,...v}),[()=>g(y({variant:o(),size:l()}),e.class)]);var n=h(a);f(n,()=>e.children??x),m(a),p(a,t=>s(t),()=>s()),d(i,a)},V=i=>{var a=G();b(a,t=>({"data-slot":"button",class:t,type:z(),disabled:e.disabled,...v}),[()=>g(y({variant:o(),size:l()}),e.class)]);var n=h(a);f(n,()=>e.children??x),m(a),p(a,t=>s(t),()=>s()),d(i,a)};q(w,i=>{c()?i(B):i(V,!1)})}d(_,u),P()}export{M as B};
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
import{V as S,W as b,X as E,Y as T,Z as m,q as L,_ as V}from"./m2dceAnU.js";function B(t){return t.endsWith("capture")&&t!=="gotpointercapture"&&t!=="lostpointercapture"}const A=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function D(t){return A.includes(t)}const x={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function R(t){return t=t.toLowerCase(),x[t]??t}const I=["touchstart","touchmove"];function j(t){return I.includes(t)}const N=["textarea","script","style","title"];function C(t){return N.includes(t)}const i=Symbol("events"),P=new Set,W=new Set;function M(t,e,r,u={}){function o(a){if(u.capture||O.call(e,a),!a.cancelBubble)return V(()=>r==null?void 0:r.call(this,a))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?L(()=>{e.addEventListener(t,o,u)}):e.addEventListener(t,o,u),o}function X(t,e,r,u={}){var o=M(e,t,r,u);return()=>{t.removeEventListener(e,o,u)}}function z(t,e,r){(e[i]??(e[i]={}))[t]=r}function F(t){for(var e=0;e<t.length;e++)P.add(t[e]);for(var r of W)r(t)}let w=null;function O(t){var v,g;var e=this,r=e.ownerDocument,u=t.type,o=((v=t.composedPath)==null?void 0:v.call(t))||[],a=o[0]||t.target;w=t;var f=0,d=w===t&&t[i];if(d){var s=o.indexOf(d);if(s!==-1&&(e===document||e===window)){t[i]=e;return}var p=o.indexOf(e);if(p===-1)return;s<=p&&(f=s)}if(a=o[f]||t.target,a!==e){S(t,"currentTarget",{configurable:!0,get(){return a||r}});var y=T,k=m;b(null),E(null);try{for(var c,_=[];a!==null;){var l=a.assignedSlot||a.parentNode||a.host||null;try{var h=(g=a[i])==null?void 0:g[u];h!=null&&(!a.disabled||t.target===a)&&h.call(a,t)}catch(n){c?_.push(n):c=n}if(t.cancelBubble||l===e||l===null)break;a=l}if(c){for(let n of _)queueMicrotask(()=>{throw n});throw c}}finally{t[i]=e,delete t.currentTarget,b(y),E(k)}}}export{P as a,j as b,B as c,z as d,F as e,M as f,D as g,O as h,C as i,R as n,X as o,W as r};
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
var F=Object.defineProperty;var k=a=>{throw TypeError(a)};var I=(a,e,t)=>e in a?F(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var R=(a,e,t)=>I(a,typeof e!="symbol"?e+"":e,t),S=(a,e,t)=>e.has(a)||k("Cannot "+t);var s=(a,e,t)=>(S(a,e,"read from private field"),t?t.call(a):e.get(a)),u=(a,e,t)=>e.has(a)?k("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,t),w=(a,e,t,i)=>(S(a,e,"write to private field"),i?i.call(a,t):e.set(a,t),t);import{G as E,I as x,J as T,K as H,L as M,M as N,h as A,N as O,O as B,P as C,k as L,i as P,Q as Y,R as G,S as J,H as K,o as Q,m as j,p as D}from"./m2dceAnU.js";var l,d,h,_,v,m,b;class q{constructor(e,t=!0){R(this,"anchor");u(this,l,new Map);u(this,d,new Map);u(this,h,new Map);u(this,_,new Set);u(this,v,!0);u(this,m,()=>{var e=E;if(s(this,l).has(e)){var t=s(this,l).get(e),i=s(this,d).get(t);if(i)x(i),s(this,_).delete(t);else{var o=s(this,h).get(t);o&&(s(this,d).set(t,o.effect),s(this,h).delete(t),o.fragment.lastChild.remove(),this.anchor.before(o.fragment),i=o.effect)}for(const[f,r]of s(this,l)){if(s(this,l).delete(f),f===e)break;const n=s(this,h).get(r);n&&(T(n.effect),s(this,h).delete(r))}for(const[f,r]of s(this,d)){if(f===t||s(this,_).has(f))continue;const n=()=>{if(Array.from(s(this,l).values()).includes(f)){var p=document.createDocumentFragment();B(r,p),p.append(M()),s(this,h).set(f,{effect:r,fragment:p})}else T(r);s(this,_).delete(f),s(this,d).delete(f)};s(this,v)||!i?(s(this,_).add(f),H(r,n,!1)):n()}}});u(this,b,e=>{s(this,l).delete(e);const t=Array.from(s(this,l).values());for(const[i,o]of s(this,h))t.includes(i)||(T(o.effect),s(this,h).delete(i))});this.anchor=e,w(this,v,t)}ensure(e,t){var i=E,o=C();if(t&&!s(this,d).has(e)&&!s(this,h).has(e))if(o){var f=document.createDocumentFragment(),r=M();f.append(r),s(this,h).set(e,{effect:N(()=>t(r)),fragment:f})}else s(this,d).set(e,N(()=>t(this.anchor)));if(s(this,l).set(i,e),o){for(const[n,c]of s(this,d))n===e?i.unskip_effect(c):i.skip_effect(c);for(const[n,c]of s(this,h))n===e?i.unskip_effect(c.effect):i.skip_effect(c.effect);i.oncommit(s(this,m)),i.ondiscard(s(this,b))}else A&&(this.anchor=O),s(this,m).call(this)}}l=new WeakMap,d=new WeakMap,h=new WeakMap,_=new WeakMap,v=new WeakMap,m=new WeakMap,b=new WeakMap;function U(a,e,t=!1){A&&P();var i=new q(a),o=t?Y:0;function f(r,n){if(A){const g=G(a);var c;if(g===J?c=0:g===K?c=!1:c=parseInt(g.substring(1)),r!==c){var p=Q();j(p),i.anchor=p,D(!1),i.ensure(r,n),D(!0);return}}i.ensure(r,n)}L(()=>{var r=!1;e((n,c=0)=>{r=!0,f(c,n)}),r||f(!1,null)},o)}export{q as B,U as i};
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
|||||||
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BWGINVoR.js","../chunks/Bzak7iHL.js","../chunks/BrBXfa46.js","../chunks/m2dceAnU.js","../assets/0.C7J2EIJ7.css","../nodes/1.CEGpjm-A.js","../chunks/Db3dOJqt.js","../chunks/DKU_2deH.js","../chunks/DH791y0n.js","../nodes/2.W3CLiCpj.js","../chunks/D4Z6sX8n.js","../chunks/BtiMKAzw.js","../chunks/DcegSV8N.js","../chunks/CvosxF64.js","../chunks/CS4xyx6M.js","../nodes/4.B8D3vRQS.js","../chunks/CM9au6ec.js","../chunks/BMcrRaS1.js","../nodes/5.NGnDqIo2.js"])))=>i.map(i=>d[i]);
|
||||||
|
var M=e=>{throw TypeError(e)};var G=(e,t,r)=>t.has(e)||M("Cannot "+r);var o=(e,t,r)=>(G(e,t,"read from private field"),r?r.call(e):t.get(e)),A=(e,t,r)=>t.has(e)?M("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),D=(e,t,r,n)=>(G(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);import{c as L,_ as y}from"../chunks/CS4xyx6M.js";import{a7 as x,ah as N,g as l,y as Q,V as U,A as X,D as Z,ak as $,al as tt,aW as et,d as R,s as rt,a as E,E as at,b0 as T,b as V,c as st,r as ot,f as W,t as nt,T as it,u as j}from"../chunks/m2dceAnU.js";import{h as ct,m as ut,u as mt,o as lt,s as dt}from"../chunks/Db3dOJqt.js";import"../chunks/Bzak7iHL.js";import{i as k}from"../chunks/DcegSV8N.js";import{p as w,b as I}from"../chunks/CvosxF64.js";function _t(e){return class extends ft{constructor(t){super({component:e,...t})}}}var d,c;class ft{constructor(t){A(this,d);A(this,c);var v;var r=new Map,n=(a,s)=>{var _=X(s,!1,!1);return r.set(a,_),_};const m=new Proxy({...t.props||{},$$events:{}},{get(a,s){return l(r.get(s)??n(s,Reflect.get(a,s)))},has(a,s){return s===N?!0:(l(r.get(s)??n(s,Reflect.get(a,s))),Reflect.has(a,s))},set(a,s,_){return x(r.get(s)??n(s,_),_),Reflect.set(a,s,_)}});D(this,c,(t.hydrate?ct:ut)(t.component,{target:t.target,anchor:t.anchor,props:m,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((v=t==null?void 0:t.props)!=null&&v.$$host)||t.sync===!1)&&Q(),D(this,d,m.$$events);for(const a of Object.keys(o(this,c)))a==="$set"||a==="$destroy"||a==="$on"||U(this,a,{get(){return o(this,c)[a]},set(s){o(this,c)[a]=s},enumerable:!0});o(this,c).$set=a=>{Object.assign(m,a)},o(this,c).$destroy=()=>{mt(o(this,c))}}$set(t){o(this,c).$set(t)}$on(t,r){o(this,d)[t]=o(this,d)[t]||[];const n=(...m)=>r.call(this,...m);return o(this,d)[t].push(n),()=>{o(this,d)[t]=o(this,d)[t].filter(m=>m!==n)}}$destroy(){o(this,c).$destroy()}}d=new WeakMap,c=new WeakMap;const Lt={};var ht=W('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),gt=W("<!> <!>",1);function vt(e,t){Z(t,!0);let r=w(t,"components",23,()=>[]),n=w(t,"data_0",3,null),m=w(t,"data_1",3,null);$(()=>t.stores.page.set(t.page)),tt(()=>{t.stores,t.page,t.constructors,r(),t.form,n(),m(),t.stores.page.notify()});let v=T(!1),a=T(!1),s=T(null);lt(()=>{const i=t.stores.page.subscribe(()=>{l(v)&&(x(a,!0),et().then(()=>{x(s,document.title||"untitled page",!0)}))});return x(v,!0),i});const _=j(()=>t.constructors[1]);var p=gt(),C=R(p);{var q=i=>{const f=j(()=>t.constructors[0]);var h=V(),P=R(h);L(P,()=>l(f),(g,b)=>{I(b(g,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(u,yt)=>{var S=V(),H=R(S);L(H,()=>l(_),(J,K)=>{I(K(J,{get data(){return m()},get form(){return t.form},get params(){return t.page.params}}),O=>r()[1]=O,()=>{var O;return(O=r())==null?void 0:O[1]})}),E(u,S)},$$slots:{default:!0}}),u=>r()[0]=u,()=>{var u;return(u=r())==null?void 0:u[0]})}),E(i,h)},z=i=>{const f=j(()=>t.constructors[0]);var h=V(),P=R(h);L(P,()=>l(f),(g,b)=>{I(b(g,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),u=>r()[0]=u,()=>{var u;return(u=r())==null?void 0:u[0]})}),E(i,h)};k(C,i=>{t.constructors[1]?i(q):i(z,!1)})}var B=rt(C,2);{var F=i=>{var f=ht(),h=st(f);{var P=g=>{var b=nt();it(()=>dt(b,l(s))),E(g,b)};k(h,g=>{l(a)&&g(P)})}ot(f),E(i,f)};k(B,i=>{l(v)&&i(F)})}E(e,p),at()}const Tt=_t(vt),Vt=[()=>y(()=>import("../nodes/0.BWGINVoR.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>y(()=>import("../nodes/1.CEGpjm-A.js"),__vite__mapDeps([5,1,2,3,6,7,8]),import.meta.url),()=>y(()=>import("../nodes/2.W3CLiCpj.js"),__vite__mapDeps([9,1,2,3,10,11,12,7,13]),import.meta.url),()=>y(()=>import("../chunks/CS4xyx6M.js").then(e=>e.a),__vite__mapDeps([14,3,12]),import.meta.url),()=>y(()=>import("../nodes/4.B8D3vRQS.js"),__vite__mapDeps([15,16,14,3,12,1,17,11,7,13]),import.meta.url),()=>y(()=>import("../nodes/5.NGnDqIo2.js"),__vite__mapDeps([18,14,3,12,1,17]),import.meta.url)],jt=[],kt={"/":[2],"/items":[-5],"/login":[-6],"/logout":[-4]},Y={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},bt=Object.fromEntries(Object.entries(Y.transport).map(([e,t])=>[e,t.decode])),wt=Object.fromEntries(Object.entries(Y.transport).map(([e,t])=>[e,t.encode])),It=!1,pt=(e,t)=>bt[e](t);export{pt as decode,bt as decoders,kt as dictionary,wt as encoders,It as hash,Y as hooks,Lt as matchers,Vt as nodes,Tt as root,jt as server_loads};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import{l as o,d as r}from"../chunks/DH791y0n.js";export{o as load_css,r as start};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import"../chunks/Bzak7iHL.js";import"../chunks/BrBXfa46.js";import{h as l,i as f,b as s,d,a as u}from"../chunks/m2dceAnU.js";function c(o,e,t,a,_){var i;l&&f();var n=(i=e.$$slots)==null?void 0:i[t],r=!1;n===!0&&(n=e.children,r=!0),n===void 0||n(o,r?()=>a:a)}const y=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));function b(o,e){var t=s(),a=d(t);c(a,e,"default",{}),u(o,t)}export{b as component,y as universal};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import"../chunks/Bzak7iHL.js";import"../chunks/BrBXfa46.js";import{aj as k,ak as b,al as i,a1 as x,am as l,an as $,g as v,ao as y,ad as E,D as j,d as D,T,a as q,E as w,f as z,c as u,r as m,s as A}from"../chunks/m2dceAnU.js";import{s as g}from"../chunks/Db3dOJqt.js";import{s as B,p as d}from"../chunks/DH791y0n.js";function C(r=!1){const e=k,t=e.l.u;if(!t)return;let a=()=>y(e.s);if(r){let o=0,s={};const c=E(()=>{let n=!1;const p=e.s;for(const f in p)p[f]!==s[f]&&(s[f]=p[f],n=!0);return n&&o++,o});a=()=>v(c)}t.b.length&&b(()=>{_(e,a),l(t.b)}),i(()=>{const o=x(()=>t.m.map($));return()=>{for(const s of o)typeof s=="function"&&s()}}),t.a.length&&i(()=>{_(e,a),l(t.a)})}function _(r,e){if(r.l.s)for(const t of r.l.s)v(t);e()}const F={get error(){return d.error},get status(){return d.status}};B.updated.check;const h=F;var G=z("<h1> </h1> <p> </p>",1);function M(r,e){j(e,!1),C();var t=G(),a=D(t),o=u(a,!0);m(a);var s=A(a,2),c=u(s,!0);m(s),T(()=>{var n;g(o,h.status),g(c,(n=h.error)==null?void 0:n.message)}),q(r,t),w()}export{M as component};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import"../chunks/Bzak7iHL.js";import"../chunks/BrBXfa46.js";import{a as l,f as h,s as m,c as t,n as c,t as p,r as e}from"../chunks/m2dceAnU.js";import{B as d}from"../chunks/D4Z6sX8n.js";var $=h('<main class="flex min-h-screen flex-col items-center justify-center gap-4 p-8"><h1 class="text-2xl font-semibold">Stackq</h1> <p class="text-muted-foreground">Svelte 5 + shadcn-svelte + PocketBase</p> <div class="flex gap-2"><a href="/items"><!></a> <a href="/logout"><!></a></div></main>');function P(f){var a=$(),n=m(t(a),4),s=t(n),v=t(s);d(v,{children:(r,x)=>{c();var o=p("Items table");l(r,o)},$$slots:{default:!0}}),e(s);var i=m(s,2),u=t(i);d(u,{variant:"outline",children:(r,x)=>{c();var o=p("Log out");l(r,o)},$$slots:{default:!0}}),e(i),e(n),e(a),l(f,a)}export{P as component};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import{_ as m}from"../chunks/CM9au6ec.js";export{m as component};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CnbhzkKJ.js","../chunks/Bzak7iHL.js","../chunks/m2dceAnU.js","../chunks/Db3dOJqt.js","../chunks/DKU_2deH.js","../chunks/DcegSV8N.js","../chunks/CS4xyx6M.js","../chunks/OSRdxUzr.js","../chunks/BtiMKAzw.js","../chunks/CvosxF64.js","../chunks/DH791y0n.js","../chunks/D4Z6sX8n.js"])))=>i.map(i=>d[i]);
|
||||||
|
import{c as F,_ as k}from"../chunks/CS4xyx6M.js";import"../chunks/Bzak7iHL.js";import{a as r,f as v,c as E,r as P,b as _,d,g as i,u as p}from"../chunks/m2dceAnU.js";import{a as $}from"../chunks/BMcrRaS1.js";import{i as j}from"../chunks/DcegSV8N.js";var w=v('<p class="text-muted-foreground">Loading…</p>'),y=v('<main class="flex min-h-screen flex-col items-center justify-center p-4"><!></main>');function T(c,f){var a=y(),l=E(a);{var u=o=>{var n=_(),g=d(n);$(g,()=>k(()=>import("../chunks/CnbhzkKJ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),e=>{var t=w();r(e,t)},(e,t)=>{var L=p(()=>{var{default:m}=i(t);return{LoginForm:m}}),h=p(()=>i(L).LoginForm),s=_(),x=d(s);F(x,()=>i(h),(m,b)=>{b(m,{get data(){return f.data}})}),r(e,s)}),r(o,n)};j(l,o=>{o(u)})}P(a),r(c,a)}export{T as component};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"version":"1771358834427"}
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
{
|
||||||
|
".svelte-kit/generated/server/internal.js": {
|
||||||
|
"file": "internal.js",
|
||||||
|
"name": "internal",
|
||||||
|
"src": ".svelte-kit/generated/server/internal.js",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_root.js",
|
||||||
|
"_environment.js",
|
||||||
|
"_internal.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_environment.js": {
|
||||||
|
"file": "chunks/environment.js",
|
||||||
|
"name": "environment"
|
||||||
|
},
|
||||||
|
"_exports.js": {
|
||||||
|
"file": "chunks/exports.js",
|
||||||
|
"name": "exports",
|
||||||
|
"imports": [
|
||||||
|
"_index.js",
|
||||||
|
"_root.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_false.js": {
|
||||||
|
"file": "chunks/false.js",
|
||||||
|
"name": "false"
|
||||||
|
},
|
||||||
|
"_index.js": {
|
||||||
|
"file": "chunks/index.js",
|
||||||
|
"name": "index"
|
||||||
|
},
|
||||||
|
"_internal.js": {
|
||||||
|
"file": "chunks/internal.js",
|
||||||
|
"name": "internal",
|
||||||
|
"imports": [
|
||||||
|
"_root.js",
|
||||||
|
"_environment.js"
|
||||||
|
],
|
||||||
|
"dynamicImports": [
|
||||||
|
"src/hooks.server.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_root.js": {
|
||||||
|
"file": "chunks/root.js",
|
||||||
|
"name": "root",
|
||||||
|
"imports": [
|
||||||
|
"_index.js",
|
||||||
|
"_false.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_shared.js": {
|
||||||
|
"file": "chunks/shared.js",
|
||||||
|
"name": "shared",
|
||||||
|
"imports": [
|
||||||
|
"_utils.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_utils.js": {
|
||||||
|
"file": "chunks/utils.js",
|
||||||
|
"name": "utils"
|
||||||
|
},
|
||||||
|
"_utils2.js": {
|
||||||
|
"file": "chunks/utils2.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/components/svelte-5/error.svelte": {
|
||||||
|
"file": "entries/fallbacks/error.svelte.js",
|
||||||
|
"name": "entries/fallbacks/error.svelte",
|
||||||
|
"src": "node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_index.js",
|
||||||
|
"_exports.js",
|
||||||
|
"_root.js",
|
||||||
|
"_utils.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",
|
||||||
|
"_internal.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"src/hooks.server.ts": {
|
||||||
|
"file": "entries/hooks.server.js",
|
||||||
|
"name": "entries/hooks.server",
|
||||||
|
"src": "src/hooks.server.ts",
|
||||||
|
"isEntry": true,
|
||||||
|
"isDynamicEntry": true
|
||||||
|
},
|
||||||
|
"src/routes/+layout.svelte": {
|
||||||
|
"file": "entries/pages/_layout.svelte.js",
|
||||||
|
"name": "entries/pages/_layout.svelte",
|
||||||
|
"src": "src/routes/+layout.svelte",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_index.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"_app/immutable/assets/_layout.B9GiBwVB.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": [
|
||||||
|
"_index.js",
|
||||||
|
"_utils2.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"src/routes/items/+page.server.ts": {
|
||||||
|
"file": "entries/pages/items/_page.server.ts.js",
|
||||||
|
"name": "entries/pages/items/_page.server.ts",
|
||||||
|
"src": "src/routes/items/+page.server.ts",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"src/routes/items/+page.svelte": {
|
||||||
|
"file": "entries/pages/items/_page.svelte.js",
|
||||||
|
"name": "entries/pages/items/_page.svelte",
|
||||||
|
"src": "src/routes/items/+page.svelte",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"_index.js",
|
||||||
|
"_utils2.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"src/routes/login/+page.server.ts": {
|
||||||
|
"file": "entries/pages/login/_page.server.ts.js",
|
||||||
|
"name": "entries/pages/login/_page.server.ts",
|
||||||
|
"src": "src/routes/login/+page.server.ts",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"src/routes/login/+page.svelte": {
|
||||||
|
"file": "entries/pages/login/_page.svelte.js",
|
||||||
|
"name": "entries/pages/login/_page.svelte",
|
||||||
|
"src": "src/routes/login/+page.svelte",
|
||||||
|
"isEntry": true
|
||||||
|
},
|
||||||
|
"src/routes/logout/+page.server.ts": {
|
||||||
|
"file": "entries/pages/logout/_page.server.ts.js",
|
||||||
|
"name": "entries/pages/logout/_page.server.ts",
|
||||||
|
"src": "src/routes/logout/+page.server.ts",
|
||||||
|
"isEntry": true
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,34 @@
|
|||||||
|
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 {
|
||||||
|
set_building as a,
|
||||||
|
set_prerendering as b,
|
||||||
|
base as c,
|
||||||
|
app_dir as d,
|
||||||
|
assets as e,
|
||||||
|
reset as f,
|
||||||
|
override as o,
|
||||||
|
prerendering as p,
|
||||||
|
relative as r,
|
||||||
|
set_assets as s
|
||||||
|
};
|
||||||
@@ -0,0 +1,232 @@
|
|||||||
|
import { n as noop } from "./index.js";
|
||||||
|
import { s as safe_not_equal } from "./root.js";
|
||||||
|
import "clsx";
|
||||||
|
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, ...rest) => {
|
||||||
|
search_params_callback(param);
|
||||||
|
return obj[key](param, ...rest);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
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[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
|
||||||
|
return inspect(url, opts);
|
||||||
|
};
|
||||||
|
tracked.searchParams[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[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => {
|
||||||
|
return inspect(new URL(url), opts);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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 };
|
||||||
|
}
|
||||||
|
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,
|
||||||
|
resolve as f,
|
||||||
|
decode_pathname as g,
|
||||||
|
validate_server_exports as h,
|
||||||
|
make_trackable as m,
|
||||||
|
normalize_path as n,
|
||||||
|
readable as r,
|
||||||
|
validate_layout_server_exports as v,
|
||||||
|
writable as w
|
||||||
|
};
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
const DEV = false;
|
||||||
|
export {
|
||||||
|
DEV as D
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,134 @@
|
|||||||
|
import { r as root } from "./root.js";
|
||||||
|
import "./environment.js";
|
||||||
|
let public_env = {};
|
||||||
|
function set_private_env(environment) {
|
||||||
|
}
|
||||||
|
function set_public_env(environment) {
|
||||||
|
public_env = environment;
|
||||||
|
}
|
||||||
|
let read_implementation = null;
|
||||||
|
function set_read_implementation(fn) {
|
||||||
|
read_implementation = fn;
|
||||||
|
}
|
||||||
|
function set_manifest(_) {
|
||||||
|
}
|
||||||
|
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: void 0,
|
||||||
|
templates: {
|
||||||
|
app: ({ head, body, assets, nonce, env }) => '<!doctype html>\n<html lang="en">\n <head>\n <meta charset="utf-8" />\n <link rel="icon" href="' + assets + '/favicon.png" />\n <meta name="viewport" content="width=device-width, initial-scale=1" />\n ' + head + '\n </head>\n <body data-sveltekit-preload-data="hover">\n <div style="display: contents">' + body + "</div>\n </body>\n</html>\n",
|
||||||
|
error: ({ status, message }) => '<!doctype html>\n<html lang="en">\n <head>\n <meta charset="utf-8" />\n <title>' + message + `</title>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
--bg: white;
|
||||||
|
--fg: #222;
|
||||||
|
--divider: #ccc;
|
||||||
|
background: var(--bg);
|
||||||
|
color: var(--fg);
|
||||||
|
font-family:
|
||||||
|
system-ui,
|
||||||
|
-apple-system,
|
||||||
|
BlinkMacSystemFont,
|
||||||
|
'Segoe UI',
|
||||||
|
Roboto,
|
||||||
|
Oxygen,
|
||||||
|
Ubuntu,
|
||||||
|
Cantarell,
|
||||||
|
'Open Sans',
|
||||||
|
'Helvetica Neue',
|
||||||
|
sans-serif;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 100vh;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
max-width: 32rem;
|
||||||
|
margin: 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
font-weight: 200;
|
||||||
|
font-size: 3rem;
|
||||||
|
line-height: 1;
|
||||||
|
position: relative;
|
||||||
|
top: -0.05rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message {
|
||||||
|
border-left: 1px solid var(--divider);
|
||||||
|
padding: 0 0 0 1rem;
|
||||||
|
margin: 0 0 0 1rem;
|
||||||
|
min-height: 2.5rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message h1 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 1em;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
body {
|
||||||
|
--bg: #222;
|
||||||
|
--fg: #ddd;
|
||||||
|
--divider: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="error">
|
||||||
|
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
||||||
|
},
|
||||||
|
version_hash: "1e50mid"
|
||||||
|
};
|
||||||
|
async function get_hooks() {
|
||||||
|
let handle;
|
||||||
|
let handleFetch;
|
||||||
|
let handleError;
|
||||||
|
let handleValidationError;
|
||||||
|
let init;
|
||||||
|
({ handle, handleFetch, handleError, handleValidationError, init } = await import("../entries/hooks.server.js"));
|
||||||
|
let reroute;
|
||||||
|
let transport;
|
||||||
|
return {
|
||||||
|
handle,
|
||||||
|
handleFetch,
|
||||||
|
handleError,
|
||||||
|
handleValidationError,
|
||||||
|
init,
|
||||||
|
reroute,
|
||||||
|
transport
|
||||||
|
};
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
set_public_env as a,
|
||||||
|
set_read_implementation as b,
|
||||||
|
set_manifest as c,
|
||||||
|
get_hooks as g,
|
||||||
|
options as o,
|
||||||
|
public_env as p,
|
||||||
|
read_implementation as r,
|
||||||
|
set_private_env as s
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,770 @@
|
|||||||
|
import { json, text } from "@sveltejs/kit";
|
||||||
|
import { SvelteKitError, HttpError } from "@sveltejs/kit/internal";
|
||||||
|
import { with_request_store } from "@sveltejs/kit/internal/server";
|
||||||
|
import * as devalue from "devalue";
|
||||||
|
import { t as text_decoder, b as base64_encode, a as base64_decode } from "./utils.js";
|
||||||
|
const SVELTE_KIT_ASSETS = "/_svelte_kit_assets";
|
||||||
|
const ENDPOINT_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"];
|
||||||
|
const PAGE_METHODS = ["GET", "POST", "HEAD"];
|
||||||
|
function set_nested_value(object, path_string, value) {
|
||||||
|
if (path_string.startsWith("n:")) {
|
||||||
|
path_string = path_string.slice(2);
|
||||||
|
value = value === "" ? void 0 : parseFloat(value);
|
||||||
|
} else if (path_string.startsWith("b:")) {
|
||||||
|
path_string = path_string.slice(2);
|
||||||
|
value = value === "on";
|
||||||
|
}
|
||||||
|
deep_set(object, split_path(path_string), value);
|
||||||
|
}
|
||||||
|
function convert_formdata(data) {
|
||||||
|
const result = {};
|
||||||
|
for (let key of data.keys()) {
|
||||||
|
const is_array = key.endsWith("[]");
|
||||||
|
let values = data.getAll(key);
|
||||||
|
if (is_array) key = key.slice(0, -2);
|
||||||
|
if (values.length > 1 && !is_array) {
|
||||||
|
throw new Error(`Form cannot contain duplicated keys — "${key}" has ${values.length} values`);
|
||||||
|
}
|
||||||
|
values = values.filter(
|
||||||
|
(entry) => typeof entry === "string" || entry.name !== "" || entry.size > 0
|
||||||
|
);
|
||||||
|
if (key.startsWith("n:")) {
|
||||||
|
key = key.slice(2);
|
||||||
|
values = values.map((v) => v === "" ? void 0 : parseFloat(
|
||||||
|
/** @type {string} */
|
||||||
|
v
|
||||||
|
));
|
||||||
|
} else if (key.startsWith("b:")) {
|
||||||
|
key = key.slice(2);
|
||||||
|
values = values.map((v) => v === "on");
|
||||||
|
}
|
||||||
|
set_nested_value(result, key, is_array ? values : values[0]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
const BINARY_FORM_CONTENT_TYPE = "application/x-sveltekit-formdata";
|
||||||
|
const BINARY_FORM_VERSION = 0;
|
||||||
|
const HEADER_BYTES = 1 + 4 + 2;
|
||||||
|
async function deserialize_binary_form(request) {
|
||||||
|
if (request.headers.get("content-type") !== BINARY_FORM_CONTENT_TYPE) {
|
||||||
|
const form_data = await request.formData();
|
||||||
|
return { data: convert_formdata(form_data), meta: {}, form_data };
|
||||||
|
}
|
||||||
|
if (!request.body) {
|
||||||
|
throw deserialize_error("no body");
|
||||||
|
}
|
||||||
|
const content_length = parseInt(request.headers.get("content-length") ?? "");
|
||||||
|
if (Number.isNaN(content_length)) {
|
||||||
|
throw deserialize_error("invalid Content-Length header");
|
||||||
|
}
|
||||||
|
const reader = request.body.getReader();
|
||||||
|
const chunks = [];
|
||||||
|
function get_chunk(index) {
|
||||||
|
if (index in chunks) return chunks[index];
|
||||||
|
let i = chunks.length;
|
||||||
|
while (i <= index) {
|
||||||
|
chunks[i] = reader.read().then((chunk) => chunk.value);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return chunks[index];
|
||||||
|
}
|
||||||
|
async function get_buffer(offset, length) {
|
||||||
|
let start_chunk;
|
||||||
|
let chunk_start = 0;
|
||||||
|
let chunk_index;
|
||||||
|
for (chunk_index = 0; ; chunk_index++) {
|
||||||
|
const chunk = await get_chunk(chunk_index);
|
||||||
|
if (!chunk) return null;
|
||||||
|
const chunk_end = chunk_start + chunk.byteLength;
|
||||||
|
if (offset >= chunk_start && offset < chunk_end) {
|
||||||
|
start_chunk = chunk;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
chunk_start = chunk_end;
|
||||||
|
}
|
||||||
|
if (offset + length <= chunk_start + start_chunk.byteLength) {
|
||||||
|
return start_chunk.subarray(offset - chunk_start, offset + length - chunk_start);
|
||||||
|
}
|
||||||
|
const chunks2 = [start_chunk.subarray(offset - chunk_start)];
|
||||||
|
let cursor = start_chunk.byteLength - offset + chunk_start;
|
||||||
|
while (cursor < length) {
|
||||||
|
chunk_index++;
|
||||||
|
let chunk = await get_chunk(chunk_index);
|
||||||
|
if (!chunk) return null;
|
||||||
|
if (chunk.byteLength > length - cursor) {
|
||||||
|
chunk = chunk.subarray(0, length - cursor);
|
||||||
|
}
|
||||||
|
chunks2.push(chunk);
|
||||||
|
cursor += chunk.byteLength;
|
||||||
|
}
|
||||||
|
const buffer = new Uint8Array(length);
|
||||||
|
cursor = 0;
|
||||||
|
for (const chunk of chunks2) {
|
||||||
|
buffer.set(chunk, cursor);
|
||||||
|
cursor += chunk.byteLength;
|
||||||
|
}
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
const header = await get_buffer(0, HEADER_BYTES);
|
||||||
|
if (!header) throw deserialize_error("too short");
|
||||||
|
if (header[0] !== BINARY_FORM_VERSION) {
|
||||||
|
throw deserialize_error(`got version ${header[0]}, expected version ${BINARY_FORM_VERSION}`);
|
||||||
|
}
|
||||||
|
const header_view = new DataView(header.buffer, header.byteOffset, header.byteLength);
|
||||||
|
const data_length = header_view.getUint32(1, true);
|
||||||
|
if (HEADER_BYTES + data_length > content_length) {
|
||||||
|
throw deserialize_error("data overflow");
|
||||||
|
}
|
||||||
|
const file_offsets_length = header_view.getUint16(5, true);
|
||||||
|
if (HEADER_BYTES + data_length + file_offsets_length > content_length) {
|
||||||
|
throw deserialize_error("file offset table overflow");
|
||||||
|
}
|
||||||
|
const data_buffer = await get_buffer(HEADER_BYTES, data_length);
|
||||||
|
if (!data_buffer) throw deserialize_error("data too short");
|
||||||
|
let file_offsets;
|
||||||
|
let files_start_offset;
|
||||||
|
if (file_offsets_length > 0) {
|
||||||
|
const file_offsets_buffer = await get_buffer(HEADER_BYTES + data_length, file_offsets_length);
|
||||||
|
if (!file_offsets_buffer) throw deserialize_error("file offset table too short");
|
||||||
|
file_offsets = /** @type {Array<number>} */
|
||||||
|
JSON.parse(text_decoder.decode(file_offsets_buffer));
|
||||||
|
files_start_offset = HEADER_BYTES + data_length + file_offsets_length;
|
||||||
|
}
|
||||||
|
const [data, meta] = devalue.parse(text_decoder.decode(data_buffer), {
|
||||||
|
File: ([name, type, size, last_modified, index]) => {
|
||||||
|
if (files_start_offset + file_offsets[index] + size > content_length) {
|
||||||
|
throw deserialize_error("file data overflow");
|
||||||
|
}
|
||||||
|
return new Proxy(
|
||||||
|
new LazyFile(
|
||||||
|
name,
|
||||||
|
type,
|
||||||
|
size,
|
||||||
|
last_modified,
|
||||||
|
get_chunk,
|
||||||
|
files_start_offset + file_offsets[index]
|
||||||
|
),
|
||||||
|
{
|
||||||
|
getPrototypeOf() {
|
||||||
|
return File.prototype;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
void (async () => {
|
||||||
|
let has_more = true;
|
||||||
|
while (has_more) {
|
||||||
|
const chunk = await get_chunk(chunks.length);
|
||||||
|
has_more = !!chunk;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
return { data, meta, form_data: null };
|
||||||
|
}
|
||||||
|
function deserialize_error(message) {
|
||||||
|
return new SvelteKitError(400, "Bad Request", `Could not deserialize binary form: ${message}`);
|
||||||
|
}
|
||||||
|
class LazyFile {
|
||||||
|
/** @type {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} */
|
||||||
|
#get_chunk;
|
||||||
|
/** @type {number} */
|
||||||
|
#offset;
|
||||||
|
/**
|
||||||
|
* @param {string} name
|
||||||
|
* @param {string} type
|
||||||
|
* @param {number} size
|
||||||
|
* @param {number} last_modified
|
||||||
|
* @param {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} get_chunk
|
||||||
|
* @param {number} offset
|
||||||
|
*/
|
||||||
|
constructor(name, type, size, last_modified, get_chunk, offset) {
|
||||||
|
this.name = name;
|
||||||
|
this.type = type;
|
||||||
|
this.size = size;
|
||||||
|
this.lastModified = last_modified;
|
||||||
|
this.webkitRelativePath = "";
|
||||||
|
this.#get_chunk = get_chunk;
|
||||||
|
this.#offset = offset;
|
||||||
|
this.arrayBuffer = this.arrayBuffer.bind(this);
|
||||||
|
this.bytes = this.bytes.bind(this);
|
||||||
|
this.slice = this.slice.bind(this);
|
||||||
|
this.stream = this.stream.bind(this);
|
||||||
|
this.text = this.text.bind(this);
|
||||||
|
}
|
||||||
|
/** @type {ArrayBuffer | undefined} */
|
||||||
|
#buffer;
|
||||||
|
async arrayBuffer() {
|
||||||
|
this.#buffer ??= await new Response(this.stream()).arrayBuffer();
|
||||||
|
return this.#buffer;
|
||||||
|
}
|
||||||
|
async bytes() {
|
||||||
|
return new Uint8Array(await this.arrayBuffer());
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param {number=} start
|
||||||
|
* @param {number=} end
|
||||||
|
* @param {string=} contentType
|
||||||
|
*/
|
||||||
|
slice(start = 0, end = this.size, contentType = this.type) {
|
||||||
|
if (start < 0) {
|
||||||
|
start = Math.max(this.size + start, 0);
|
||||||
|
} else {
|
||||||
|
start = Math.min(start, this.size);
|
||||||
|
}
|
||||||
|
if (end < 0) {
|
||||||
|
end = Math.max(this.size + end, 0);
|
||||||
|
} else {
|
||||||
|
end = Math.min(end, this.size);
|
||||||
|
}
|
||||||
|
const size = Math.max(end - start, 0);
|
||||||
|
const file = new LazyFile(
|
||||||
|
this.name,
|
||||||
|
contentType,
|
||||||
|
size,
|
||||||
|
this.lastModified,
|
||||||
|
this.#get_chunk,
|
||||||
|
this.#offset + start
|
||||||
|
);
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
stream() {
|
||||||
|
let cursor = 0;
|
||||||
|
let chunk_index = 0;
|
||||||
|
return new ReadableStream({
|
||||||
|
start: async (controller) => {
|
||||||
|
let chunk_start = 0;
|
||||||
|
let start_chunk = null;
|
||||||
|
for (chunk_index = 0; ; chunk_index++) {
|
||||||
|
const chunk = await this.#get_chunk(chunk_index);
|
||||||
|
if (!chunk) return null;
|
||||||
|
const chunk_end = chunk_start + chunk.byteLength;
|
||||||
|
if (this.#offset >= chunk_start && this.#offset < chunk_end) {
|
||||||
|
start_chunk = chunk;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
chunk_start = chunk_end;
|
||||||
|
}
|
||||||
|
if (this.#offset + this.size <= chunk_start + start_chunk.byteLength) {
|
||||||
|
controller.enqueue(
|
||||||
|
start_chunk.subarray(this.#offset - chunk_start, this.#offset + this.size - chunk_start)
|
||||||
|
);
|
||||||
|
controller.close();
|
||||||
|
} else {
|
||||||
|
controller.enqueue(start_chunk.subarray(this.#offset - chunk_start));
|
||||||
|
cursor = start_chunk.byteLength - this.#offset + chunk_start;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pull: async (controller) => {
|
||||||
|
chunk_index++;
|
||||||
|
let chunk = await this.#get_chunk(chunk_index);
|
||||||
|
if (!chunk) {
|
||||||
|
controller.error("incomplete file data");
|
||||||
|
controller.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (chunk.byteLength > this.size - cursor) {
|
||||||
|
chunk = chunk.subarray(0, this.size - cursor);
|
||||||
|
}
|
||||||
|
controller.enqueue(chunk);
|
||||||
|
cursor += chunk.byteLength;
|
||||||
|
if (cursor >= this.size) {
|
||||||
|
controller.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async text() {
|
||||||
|
return text_decoder.decode(await this.arrayBuffer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const path_regex = /^[a-zA-Z_$]\w*(\.[a-zA-Z_$]\w*|\[\d+\])*$/;
|
||||||
|
function split_path(path) {
|
||||||
|
if (!path_regex.test(path)) {
|
||||||
|
throw new Error(`Invalid path ${path}`);
|
||||||
|
}
|
||||||
|
return path.split(/\.|\[|\]/).filter(Boolean);
|
||||||
|
}
|
||||||
|
function check_prototype_pollution(key) {
|
||||||
|
if (key === "__proto__" || key === "constructor" || key === "prototype") {
|
||||||
|
throw new Error(
|
||||||
|
`Invalid key "${key}"`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function deep_set(object, keys, value) {
|
||||||
|
let current = object;
|
||||||
|
for (let i = 0; i < keys.length - 1; i += 1) {
|
||||||
|
const key = keys[i];
|
||||||
|
check_prototype_pollution(key);
|
||||||
|
const is_array = /^\d+$/.test(keys[i + 1]);
|
||||||
|
const exists = Object.hasOwn(current, key);
|
||||||
|
const inner = current[key];
|
||||||
|
if (exists && is_array !== Array.isArray(inner)) {
|
||||||
|
throw new Error(`Invalid array key ${keys[i + 1]}`);
|
||||||
|
}
|
||||||
|
if (!exists) {
|
||||||
|
current[key] = is_array ? [] : {};
|
||||||
|
}
|
||||||
|
current = current[key];
|
||||||
|
}
|
||||||
|
const final_key = keys[keys.length - 1];
|
||||||
|
check_prototype_pollution(final_key);
|
||||||
|
current[final_key] = value;
|
||||||
|
}
|
||||||
|
function normalize_issue(issue, server = false) {
|
||||||
|
const normalized = { name: "", path: [], message: issue.message, server };
|
||||||
|
if (issue.path !== void 0) {
|
||||||
|
let name = "";
|
||||||
|
for (const segment of issue.path) {
|
||||||
|
const key = (
|
||||||
|
/** @type {string | number} */
|
||||||
|
typeof segment === "object" ? segment.key : segment
|
||||||
|
);
|
||||||
|
normalized.path.push(key);
|
||||||
|
if (typeof key === "number") {
|
||||||
|
name += `[${key}]`;
|
||||||
|
} else if (typeof key === "string") {
|
||||||
|
name += name === "" ? key : "." + key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
normalized.name = name;
|
||||||
|
}
|
||||||
|
return normalized;
|
||||||
|
}
|
||||||
|
function flatten_issues(issues) {
|
||||||
|
const result = {};
|
||||||
|
for (const issue of issues) {
|
||||||
|
(result.$ ??= []).push(issue);
|
||||||
|
let name = "";
|
||||||
|
if (issue.path !== void 0) {
|
||||||
|
for (const key of issue.path) {
|
||||||
|
if (typeof key === "number") {
|
||||||
|
name += `[${key}]`;
|
||||||
|
} else if (typeof key === "string") {
|
||||||
|
name += name === "" ? key : "." + key;
|
||||||
|
}
|
||||||
|
(result[name] ??= []).push(issue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
function deep_get(object, path) {
|
||||||
|
let current = object;
|
||||||
|
for (const key of path) {
|
||||||
|
if (current == null || typeof current !== "object") {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
current = current[key];
|
||||||
|
}
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
function create_field_proxy(target, get_input, set_input, get_issues, path = []) {
|
||||||
|
const get_value = () => {
|
||||||
|
return deep_get(get_input(), path);
|
||||||
|
};
|
||||||
|
return new Proxy(target, {
|
||||||
|
get(target2, prop) {
|
||||||
|
if (typeof prop === "symbol") return target2[prop];
|
||||||
|
if (/^\d+$/.test(prop)) {
|
||||||
|
return create_field_proxy({}, get_input, set_input, get_issues, [
|
||||||
|
...path,
|
||||||
|
parseInt(prop, 10)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
const key = build_path_string(path);
|
||||||
|
if (prop === "set") {
|
||||||
|
const set_func = function(newValue) {
|
||||||
|
set_input(path, newValue);
|
||||||
|
return newValue;
|
||||||
|
};
|
||||||
|
return create_field_proxy(set_func, get_input, set_input, get_issues, [...path, prop]);
|
||||||
|
}
|
||||||
|
if (prop === "value") {
|
||||||
|
return create_field_proxy(get_value, get_input, set_input, get_issues, [...path, prop]);
|
||||||
|
}
|
||||||
|
if (prop === "issues" || prop === "allIssues") {
|
||||||
|
const issues_func = () => {
|
||||||
|
const all_issues = get_issues()[key === "" ? "$" : key];
|
||||||
|
if (prop === "allIssues") {
|
||||||
|
return all_issues?.map((issue) => ({
|
||||||
|
path: issue.path,
|
||||||
|
message: issue.message
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
return all_issues?.filter((issue) => issue.name === key)?.map((issue) => ({
|
||||||
|
path: issue.path,
|
||||||
|
message: issue.message
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
return create_field_proxy(issues_func, get_input, set_input, get_issues, [...path, prop]);
|
||||||
|
}
|
||||||
|
if (prop === "as") {
|
||||||
|
const as_func = (type, input_value) => {
|
||||||
|
const is_array = type === "file multiple" || type === "select multiple" || type === "checkbox" && typeof input_value === "string";
|
||||||
|
const prefix = type === "number" || type === "range" ? "n:" : type === "checkbox" && !is_array ? "b:" : "";
|
||||||
|
const base_props = {
|
||||||
|
name: prefix + key + (is_array ? "[]" : ""),
|
||||||
|
get "aria-invalid"() {
|
||||||
|
const issues = get_issues();
|
||||||
|
return key in issues ? "true" : void 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (type !== "text" && type !== "select" && type !== "select multiple") {
|
||||||
|
base_props.type = type === "file multiple" ? "file" : type;
|
||||||
|
}
|
||||||
|
if (type === "submit" || type === "hidden") {
|
||||||
|
return Object.defineProperties(base_props, {
|
||||||
|
value: { value: input_value, enumerable: true }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (type === "select" || type === "select multiple") {
|
||||||
|
return Object.defineProperties(base_props, {
|
||||||
|
multiple: { value: is_array, enumerable: true },
|
||||||
|
value: {
|
||||||
|
enumerable: true,
|
||||||
|
get() {
|
||||||
|
return get_value();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (type === "checkbox" || type === "radio") {
|
||||||
|
return Object.defineProperties(base_props, {
|
||||||
|
value: { value: input_value ?? "on", enumerable: true },
|
||||||
|
checked: {
|
||||||
|
enumerable: true,
|
||||||
|
get() {
|
||||||
|
const value = get_value();
|
||||||
|
if (type === "radio") {
|
||||||
|
return value === input_value;
|
||||||
|
}
|
||||||
|
if (is_array) {
|
||||||
|
return (value ?? []).includes(input_value);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (type === "file" || type === "file multiple") {
|
||||||
|
return Object.defineProperties(base_props, {
|
||||||
|
multiple: { value: is_array, enumerable: true },
|
||||||
|
files: {
|
||||||
|
enumerable: true,
|
||||||
|
get() {
|
||||||
|
const value = get_value();
|
||||||
|
if (value instanceof File) {
|
||||||
|
if (typeof DataTransfer !== "undefined") {
|
||||||
|
const fileList = new DataTransfer();
|
||||||
|
fileList.items.add(value);
|
||||||
|
return fileList.files;
|
||||||
|
}
|
||||||
|
return { 0: value, length: 1 };
|
||||||
|
}
|
||||||
|
if (Array.isArray(value) && value.every((f) => f instanceof File)) {
|
||||||
|
if (typeof DataTransfer !== "undefined") {
|
||||||
|
const fileList = new DataTransfer();
|
||||||
|
value.forEach((file) => fileList.items.add(file));
|
||||||
|
return fileList.files;
|
||||||
|
}
|
||||||
|
const fileListLike = { length: value.length };
|
||||||
|
value.forEach((file, index) => {
|
||||||
|
fileListLike[index] = file;
|
||||||
|
});
|
||||||
|
return fileListLike;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return Object.defineProperties(base_props, {
|
||||||
|
value: {
|
||||||
|
enumerable: true,
|
||||||
|
get() {
|
||||||
|
const value = get_value();
|
||||||
|
return value != null ? String(value) : "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
return create_field_proxy(as_func, get_input, set_input, get_issues, [...path, "as"]);
|
||||||
|
}
|
||||||
|
return create_field_proxy({}, get_input, set_input, get_issues, [...path, prop]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function build_path_string(path) {
|
||||||
|
let result = "";
|
||||||
|
for (const segment of path) {
|
||||||
|
if (typeof segment === "number") {
|
||||||
|
result += `[${segment}]`;
|
||||||
|
} else {
|
||||||
|
result += result === "" ? segment : "." + segment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
function negotiate(accept, types) {
|
||||||
|
const parts = [];
|
||||||
|
accept.split(",").forEach((str, i) => {
|
||||||
|
const match = /([^/ \t]+)\/([^; \t]+)[ \t]*(?:;[ \t]*q=([0-9.]+))?/.exec(str);
|
||||||
|
if (match) {
|
||||||
|
const [, type, subtype, q = "1"] = match;
|
||||||
|
parts.push({ type, subtype, q: +q, i });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
parts.sort((a, b) => {
|
||||||
|
if (a.q !== b.q) {
|
||||||
|
return b.q - a.q;
|
||||||
|
}
|
||||||
|
if (a.subtype === "*" !== (b.subtype === "*")) {
|
||||||
|
return a.subtype === "*" ? 1 : -1;
|
||||||
|
}
|
||||||
|
if (a.type === "*" !== (b.type === "*")) {
|
||||||
|
return a.type === "*" ? 1 : -1;
|
||||||
|
}
|
||||||
|
return a.i - b.i;
|
||||||
|
});
|
||||||
|
let accepted;
|
||||||
|
let min_priority = Infinity;
|
||||||
|
for (const mimetype of types) {
|
||||||
|
const [type, subtype] = mimetype.split("/");
|
||||||
|
const priority = parts.findIndex(
|
||||||
|
(part) => (part.type === type || part.type === "*") && (part.subtype === subtype || part.subtype === "*")
|
||||||
|
);
|
||||||
|
if (priority !== -1 && priority < min_priority) {
|
||||||
|
accepted = mimetype;
|
||||||
|
min_priority = priority;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return accepted;
|
||||||
|
}
|
||||||
|
function is_content_type(request, ...types) {
|
||||||
|
const type = request.headers.get("content-type")?.split(";", 1)[0].trim() ?? "";
|
||||||
|
return types.includes(type.toLowerCase());
|
||||||
|
}
|
||||||
|
function is_form_content_type(request) {
|
||||||
|
return is_content_type(
|
||||||
|
request,
|
||||||
|
"application/x-www-form-urlencoded",
|
||||||
|
"multipart/form-data",
|
||||||
|
"text/plain",
|
||||||
|
BINARY_FORM_CONTENT_TYPE
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function coalesce_to_error(err) {
|
||||||
|
return err instanceof Error || err && /** @type {any} */
|
||||||
|
err.name && /** @type {any} */
|
||||||
|
err.message ? (
|
||||||
|
/** @type {Error} */
|
||||||
|
err
|
||||||
|
) : new Error(JSON.stringify(err));
|
||||||
|
}
|
||||||
|
function normalize_error(error) {
|
||||||
|
return (
|
||||||
|
/** @type {import('../exports/internal/index.js').Redirect | HttpError | SvelteKitError | Error} */
|
||||||
|
error
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function get_status(error) {
|
||||||
|
return error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500;
|
||||||
|
}
|
||||||
|
function get_message(error) {
|
||||||
|
return error instanceof SvelteKitError ? error.text : "Internal Error";
|
||||||
|
}
|
||||||
|
const escape_html_attr_dict = {
|
||||||
|
"&": "&",
|
||||||
|
'"': """
|
||||||
|
// Svelte also escapes < because the escape function could be called inside a `noscript` there
|
||||||
|
// https://github.com/sveltejs/svelte/security/advisories/GHSA-8266-84wp-wv5c
|
||||||
|
// However, that doesn't apply in SvelteKit
|
||||||
|
};
|
||||||
|
const escape_html_dict = {
|
||||||
|
"&": "&",
|
||||||
|
"<": "<"
|
||||||
|
};
|
||||||
|
const surrogates = (
|
||||||
|
// high surrogate without paired low surrogate
|
||||||
|
"[\\ud800-\\udbff](?![\\udc00-\\udfff])|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\udc00-\\udfff]"
|
||||||
|
);
|
||||||
|
const escape_html_attr_regex = new RegExp(
|
||||||
|
`[${Object.keys(escape_html_attr_dict).join("")}]|` + surrogates,
|
||||||
|
"g"
|
||||||
|
);
|
||||||
|
const escape_html_regex = new RegExp(
|
||||||
|
`[${Object.keys(escape_html_dict).join("")}]|` + surrogates,
|
||||||
|
"g"
|
||||||
|
);
|
||||||
|
function escape_html(str, is_attr) {
|
||||||
|
const dict = is_attr ? escape_html_attr_dict : escape_html_dict;
|
||||||
|
const escaped_str = str.replace(is_attr ? escape_html_attr_regex : escape_html_regex, (match) => {
|
||||||
|
if (match.length === 2) {
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
return dict[match] ?? `&#${match.charCodeAt(0)};`;
|
||||||
|
});
|
||||||
|
return escaped_str;
|
||||||
|
}
|
||||||
|
function method_not_allowed(mod, method) {
|
||||||
|
return text(`${method} method not allowed`, {
|
||||||
|
status: 405,
|
||||||
|
headers: {
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
|
||||||
|
// "The server must generate an Allow header field in a 405 status code response"
|
||||||
|
allow: allowed_methods(mod).join(", ")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function allowed_methods(mod) {
|
||||||
|
const allowed = ENDPOINT_METHODS.filter((method) => method in mod);
|
||||||
|
if ("GET" in mod && !("HEAD" in mod)) {
|
||||||
|
allowed.push("HEAD");
|
||||||
|
}
|
||||||
|
return allowed;
|
||||||
|
}
|
||||||
|
function get_global_name(options) {
|
||||||
|
return `__sveltekit_${options.version_hash}`;
|
||||||
|
}
|
||||||
|
function static_error_page(options, status, message) {
|
||||||
|
let page = options.templates.error({ status, message: escape_html(message) });
|
||||||
|
return text(page, {
|
||||||
|
headers: { "content-type": "text/html; charset=utf-8" },
|
||||||
|
status
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function handle_fatal_error(event, state, options, error) {
|
||||||
|
error = error instanceof HttpError ? error : coalesce_to_error(error);
|
||||||
|
const status = get_status(error);
|
||||||
|
const body = await handle_error_and_jsonify(event, state, options, error);
|
||||||
|
const type = negotiate(event.request.headers.get("accept") || "text/html", [
|
||||||
|
"application/json",
|
||||||
|
"text/html"
|
||||||
|
]);
|
||||||
|
if (event.isDataRequest || type === "application/json") {
|
||||||
|
return json(body, {
|
||||||
|
status
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return static_error_page(options, status, body.message);
|
||||||
|
}
|
||||||
|
async function handle_error_and_jsonify(event, state, options, error) {
|
||||||
|
if (error instanceof HttpError) {
|
||||||
|
return { message: "Unknown Error", ...error.body };
|
||||||
|
}
|
||||||
|
const status = get_status(error);
|
||||||
|
const message = get_message(error);
|
||||||
|
return await with_request_store(
|
||||||
|
{ event, state },
|
||||||
|
() => options.hooks.handleError({ error, event, status, message })
|
||||||
|
) ?? { message };
|
||||||
|
}
|
||||||
|
function redirect_response(status, location) {
|
||||||
|
const response = new Response(void 0, {
|
||||||
|
status,
|
||||||
|
headers: { location }
|
||||||
|
});
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
function clarify_devalue_error(event, error) {
|
||||||
|
if (error.path) {
|
||||||
|
return `Data returned from \`load\` while rendering ${event.route.id} is not serializable: ${error.message} (${error.path}). If you need to serialize/deserialize custom types, use transport hooks: https://svelte.dev/docs/kit/hooks#Universal-hooks-transport.`;
|
||||||
|
}
|
||||||
|
if (error.path === "") {
|
||||||
|
return `Data returned from \`load\` while rendering ${event.route.id} is not a plain object`;
|
||||||
|
}
|
||||||
|
return error.message;
|
||||||
|
}
|
||||||
|
function serialize_uses(node) {
|
||||||
|
const uses = {};
|
||||||
|
if (node.uses && node.uses.dependencies.size > 0) {
|
||||||
|
uses.dependencies = Array.from(node.uses.dependencies);
|
||||||
|
}
|
||||||
|
if (node.uses && node.uses.search_params.size > 0) {
|
||||||
|
uses.search_params = Array.from(node.uses.search_params);
|
||||||
|
}
|
||||||
|
if (node.uses && node.uses.params.size > 0) {
|
||||||
|
uses.params = Array.from(node.uses.params);
|
||||||
|
}
|
||||||
|
if (node.uses?.parent) uses.parent = 1;
|
||||||
|
if (node.uses?.route) uses.route = 1;
|
||||||
|
if (node.uses?.url) uses.url = 1;
|
||||||
|
return uses;
|
||||||
|
}
|
||||||
|
function has_prerendered_path(manifest, pathname) {
|
||||||
|
return manifest._.prerendered_routes.has(pathname) || pathname.at(-1) === "/" && manifest._.prerendered_routes.has(pathname.slice(0, -1));
|
||||||
|
}
|
||||||
|
function format_server_error(status, error, event) {
|
||||||
|
const formatted_text = `
|
||||||
|
\x1B[1;31m[${status}] ${event.request.method} ${event.url.pathname}\x1B[0m`;
|
||||||
|
if (status === 404) {
|
||||||
|
return formatted_text;
|
||||||
|
}
|
||||||
|
return `${formatted_text}
|
||||||
|
${error.stack}`;
|
||||||
|
}
|
||||||
|
function get_node_type(node_id) {
|
||||||
|
const parts = node_id?.split("/");
|
||||||
|
const filename = parts?.at(-1);
|
||||||
|
if (!filename) return "unknown";
|
||||||
|
const dot_parts = filename.split(".");
|
||||||
|
return dot_parts.slice(0, -1).join(".");
|
||||||
|
}
|
||||||
|
const INVALIDATED_PARAM = "x-sveltekit-invalidated";
|
||||||
|
const TRAILING_SLASH_PARAM = "x-sveltekit-trailing-slash";
|
||||||
|
function stringify(data, transport) {
|
||||||
|
const encoders = Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.encode]));
|
||||||
|
return devalue.stringify(data, encoders);
|
||||||
|
}
|
||||||
|
function stringify_remote_arg(value, transport) {
|
||||||
|
if (value === void 0) return "";
|
||||||
|
const json_string = stringify(value, transport);
|
||||||
|
const bytes = new TextEncoder().encode(json_string);
|
||||||
|
return base64_encode(bytes).replaceAll("=", "").replaceAll("+", "-").replaceAll("/", "_");
|
||||||
|
}
|
||||||
|
function parse_remote_arg(string, transport) {
|
||||||
|
if (!string) return void 0;
|
||||||
|
const json_string = text_decoder.decode(
|
||||||
|
// no need to add back `=` characters, atob can handle it
|
||||||
|
base64_decode(string.replaceAll("-", "+").replaceAll("_", "/"))
|
||||||
|
);
|
||||||
|
const decoders = Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.decode]));
|
||||||
|
return devalue.parse(json_string, decoders);
|
||||||
|
}
|
||||||
|
function create_remote_key(id, payload) {
|
||||||
|
return id + "/" + payload;
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
ENDPOINT_METHODS as E,
|
||||||
|
INVALIDATED_PARAM as I,
|
||||||
|
PAGE_METHODS as P,
|
||||||
|
SVELTE_KIT_ASSETS as S,
|
||||||
|
TRAILING_SLASH_PARAM as T,
|
||||||
|
set_nested_value as a,
|
||||||
|
stringify as b,
|
||||||
|
create_field_proxy as c,
|
||||||
|
deep_set as d,
|
||||||
|
create_remote_key as e,
|
||||||
|
flatten_issues as f,
|
||||||
|
negotiate as g,
|
||||||
|
handle_error_and_jsonify as h,
|
||||||
|
get_status as i,
|
||||||
|
is_form_content_type as j,
|
||||||
|
normalize_error as k,
|
||||||
|
get_global_name as l,
|
||||||
|
method_not_allowed as m,
|
||||||
|
normalize_issue as n,
|
||||||
|
serialize_uses as o,
|
||||||
|
clarify_devalue_error as p,
|
||||||
|
get_node_type as q,
|
||||||
|
escape_html as r,
|
||||||
|
stringify_remote_arg as s,
|
||||||
|
static_error_page as t,
|
||||||
|
redirect_response as u,
|
||||||
|
parse_remote_arg as v,
|
||||||
|
deserialize_binary_form as w,
|
||||||
|
has_prerendered_path as x,
|
||||||
|
handle_fatal_error as y,
|
||||||
|
format_server_error as z
|
||||||
|
};
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
const text_encoder = new TextEncoder();
|
||||||
|
const text_decoder = new TextDecoder();
|
||||||
|
function get_relative_path(from, to) {
|
||||||
|
const from_parts = from.split(/[/\\]/);
|
||||||
|
const to_parts = to.split(/[/\\]/);
|
||||||
|
from_parts.pop();
|
||||||
|
while (from_parts[0] === to_parts[0]) {
|
||||||
|
from_parts.shift();
|
||||||
|
to_parts.shift();
|
||||||
|
}
|
||||||
|
let i = from_parts.length;
|
||||||
|
while (i--) from_parts[i] = "..";
|
||||||
|
return from_parts.concat(to_parts).join("/");
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
function base64_decode(encoded) {
|
||||||
|
if (globalThis.Buffer) {
|
||||||
|
const buffer = globalThis.Buffer.from(encoded, "base64");
|
||||||
|
return new Uint8Array(buffer);
|
||||||
|
}
|
||||||
|
const binary = atob(encoded);
|
||||||
|
const bytes = new Uint8Array(binary.length);
|
||||||
|
for (let i = 0; i < binary.length; i++) {
|
||||||
|
bytes[i] = binary.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
base64_decode as a,
|
||||||
|
base64_encode as b,
|
||||||
|
text_encoder as c,
|
||||||
|
get_relative_path as g,
|
||||||
|
text_decoder as t
|
||||||
|
};
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import { clsx } from "clsx";
|
||||||
|
import { twMerge } from "tailwind-merge";
|
||||||
|
function cn(...inputs) {
|
||||||
|
return twMerge(clsx(inputs));
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
cn as c
|
||||||
|
};
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
import { n as noop, g as getContext, e as escape_html } from "../../chunks/index.js";
|
||||||
|
import "clsx";
|
||||||
|
import { w as writable } from "../../chunks/exports.js";
|
||||||
|
import "@sveltejs/kit/internal/server";
|
||||||
|
import "../../chunks/root.js";
|
||||||
|
import "@sveltejs/kit/internal";
|
||||||
|
import "../../chunks/utils.js";
|
||||||
|
function create_updated_store() {
|
||||||
|
const { set, subscribe } = writable(false);
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
subscribe,
|
||||||
|
// eslint-disable-next-line @typescript-eslint/require-await
|
||||||
|
check: async () => false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const is_legacy = noop.toString().includes("$$") || /function \w+\(\) \{\}/.test(noop.toString());
|
||||||
|
if (is_legacy) {
|
||||||
|
({
|
||||||
|
data: {},
|
||||||
|
form: null,
|
||||||
|
error: null,
|
||||||
|
params: {},
|
||||||
|
route: { id: null },
|
||||||
|
state: {},
|
||||||
|
status: -1,
|
||||||
|
url: new URL("https://example.com")
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const stores = {
|
||||||
|
updated: /* @__PURE__ */ create_updated_store()
|
||||||
|
};
|
||||||
|
({
|
||||||
|
check: stores.updated.check
|
||||||
|
});
|
||||||
|
function context() {
|
||||||
|
return getContext("__request__");
|
||||||
|
}
|
||||||
|
const page$1 = {
|
||||||
|
get error() {
|
||||||
|
return context().page.error;
|
||||||
|
},
|
||||||
|
get status() {
|
||||||
|
return context().page.status;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const page = page$1;
|
||||||
|
function Error$1($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
$$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
Error$1 as default
|
||||||
|
};
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import { redirect } from "@sveltejs/kit";
|
||||||
|
import PocketBase from "pocketbase";
|
||||||
|
const POCKETBASE_URL = "https://pocketbase.ccllc.pro";
|
||||||
|
const LOGIN_PATH = "/login";
|
||||||
|
const LOGOUT_PATH = "/logout";
|
||||||
|
function isPublicRoute(pathname) {
|
||||||
|
return pathname === LOGIN_PATH || pathname.startsWith(LOGIN_PATH + "/") || pathname === LOGOUT_PATH;
|
||||||
|
}
|
||||||
|
const handle = async ({ event, resolve }) => {
|
||||||
|
event.locals.pb = new PocketBase(POCKETBASE_URL);
|
||||||
|
event.locals.pb.authStore.loadFromCookie(event.request.headers.get("cookie") || "");
|
||||||
|
try {
|
||||||
|
if (event.locals.pb.authStore.isValid) {
|
||||||
|
await event.locals.pb.collection("users").authRefresh();
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
event.locals.pb.authStore.clear();
|
||||||
|
}
|
||||||
|
event.locals.user = event.locals.pb.authStore.record ?? null;
|
||||||
|
if (!event.locals.user && !isPublicRoute(event.url.pathname)) {
|
||||||
|
const redirectTo = event.url.pathname + event.url.search;
|
||||||
|
const loginUrl = redirectTo && redirectTo !== "/" ? `${LOGIN_PATH}?redirectTo=${encodeURIComponent(redirectTo)}` : LOGIN_PATH;
|
||||||
|
throw redirect(303, loginUrl);
|
||||||
|
}
|
||||||
|
const response = await resolve(event);
|
||||||
|
response.headers.append(
|
||||||
|
"set-cookie",
|
||||||
|
event.locals.pb.authStore.exportToCookie({ httpOnly: false, sameSite: "Lax" })
|
||||||
|
);
|
||||||
|
return response;
|
||||||
|
};
|
||||||
|
export {
|
||||||
|
handle
|
||||||
|
};
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { s as slot } from "../../chunks/index.js";
|
||||||
|
function _layout($$renderer, $$props) {
|
||||||
|
$$renderer.push(`<!--[-->`);
|
||||||
|
slot($$renderer, $$props, "default", {});
|
||||||
|
$$renderer.push(`<!--]-->`);
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
_layout as default
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
import "clsx";
|
||||||
|
import { a as attributes, c as clsx, b as bind_props } from "../../chunks/index.js";
|
||||||
|
import { c as cn } from "../../chunks/utils2.js";
|
||||||
|
import { tv } from "tailwind-variants";
|
||||||
|
const buttonVariants = tv({
|
||||||
|
base: "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
||||||
|
variants: {
|
||||||
|
variant: {
|
||||||
|
default: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs",
|
||||||
|
destructive: "bg-destructive hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 text-white shadow-xs",
|
||||||
|
outline: "bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border shadow-xs",
|
||||||
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-xs",
|
||||||
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
||||||
|
link: "text-primary underline-offset-4 hover:underline"
|
||||||
|
},
|
||||||
|
size: {
|
||||||
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
||||||
|
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
||||||
|
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
||||||
|
icon: "size-9",
|
||||||
|
"icon-sm": "size-8",
|
||||||
|
"icon-lg": "size-10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
defaultVariants: { variant: "default", size: "default" }
|
||||||
|
});
|
||||||
|
function Button($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
class: className,
|
||||||
|
variant = "default",
|
||||||
|
size = "default",
|
||||||
|
ref = null,
|
||||||
|
href = void 0,
|
||||||
|
type = "button",
|
||||||
|
disabled,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
if (href) {
|
||||||
|
$$renderer2.push("<!--[-->");
|
||||||
|
$$renderer2.push(`<a${attributes({
|
||||||
|
"data-slot": "button",
|
||||||
|
class: clsx(cn(buttonVariants({ variant, size }), className)),
|
||||||
|
href: disabled ? void 0 : href,
|
||||||
|
"aria-disabled": disabled,
|
||||||
|
role: disabled ? "link" : void 0,
|
||||||
|
tabindex: disabled ? -1 : void 0,
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></a>`);
|
||||||
|
} else {
|
||||||
|
$$renderer2.push("<!--[!-->");
|
||||||
|
$$renderer2.push(`<button${attributes({
|
||||||
|
"data-slot": "button",
|
||||||
|
class: clsx(cn(buttonVariants({ variant, size }), className)),
|
||||||
|
type,
|
||||||
|
disabled,
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></button>`);
|
||||||
|
}
|
||||||
|
$$renderer2.push(`<!--]-->`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function _page($$renderer) {
|
||||||
|
$$renderer.push(`<main class="flex min-h-screen flex-col items-center justify-center gap-4 p-8"><h1 class="text-2xl font-semibold">Stackq</h1> <p class="text-muted-foreground">Svelte 5 + shadcn-svelte + PocketBase</p> <div class="flex gap-2"><a href="/items">`);
|
||||||
|
Button($$renderer, {
|
||||||
|
children: ($$renderer2) => {
|
||||||
|
$$renderer2.push(`<!---->Items table`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer.push(`<!----></a> <a href="/logout">`);
|
||||||
|
Button($$renderer, {
|
||||||
|
variant: "outline",
|
||||||
|
children: ($$renderer2) => {
|
||||||
|
$$renderer2.push(`<!---->Log out`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer.push(`<!----></a></div></main>`);
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
_page as default
|
||||||
|
};
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
import { fail } from "@sveltejs/kit";
|
||||||
|
const COLLECTION = "Stackq_Items";
|
||||||
|
function parseNum(val) {
|
||||||
|
if (val === "" || val === null || val === void 0) return void 0;
|
||||||
|
const n = Number(val);
|
||||||
|
return Number.isFinite(n) ? n : void 0;
|
||||||
|
}
|
||||||
|
function parseBool(val) {
|
||||||
|
return val === "on" || val === "true" || val === true;
|
||||||
|
}
|
||||||
|
const load = async ({ locals }) => {
|
||||||
|
const list = await locals.pb.collection(COLLECTION).getFullList({
|
||||||
|
sort: "-created",
|
||||||
|
expand: "Parent"
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error(COLLECTION, err);
|
||||||
|
return [];
|
||||||
|
});
|
||||||
|
const itemsForParent = list.map((i) => ({ id: i.id, Item: i.Item, SKU: i.SKU }));
|
||||||
|
return { items: list, itemsForParent };
|
||||||
|
};
|
||||||
|
const actions = {
|
||||||
|
create: async ({ request, locals }) => {
|
||||||
|
const form = await request.formData();
|
||||||
|
const Item = form.get("Item")?.trim() ?? "";
|
||||||
|
const SKU = form.get("SKU")?.trim() ?? "";
|
||||||
|
const Description = form.get("Description")?.trim() ?? "";
|
||||||
|
const UOM = form.get("UOM")?.trim() ?? "";
|
||||||
|
const Cost = parseNum(form.get("Cost"));
|
||||||
|
const Vendor = form.get("Vendor")?.trim() ?? "";
|
||||||
|
const Catagory = form.get("Catagory")?.trim() ?? "";
|
||||||
|
const Sub_Catagory = form.get("Sub_Catagory")?.trim() ?? "";
|
||||||
|
const Has_Parent = parseBool(form.get("Has_Parent"));
|
||||||
|
const Parent = form.get("Parent")?.trim() ?? "";
|
||||||
|
const Stock = parseBool(form.get("Stock"));
|
||||||
|
if (!Item) return fail(400, { error: "Item name is required", form: "create" });
|
||||||
|
try {
|
||||||
|
await locals.pb.collection(COLLECTION).create({
|
||||||
|
Item,
|
||||||
|
SKU,
|
||||||
|
Description,
|
||||||
|
UOM: UOM || void 0,
|
||||||
|
Cost: Cost ?? 0,
|
||||||
|
Vendor,
|
||||||
|
Catagory: Catagory || void 0,
|
||||||
|
Sub_Catagory: Sub_Catagory || void 0,
|
||||||
|
Has_Parent: !!Has_Parent,
|
||||||
|
Parent: Parent || null,
|
||||||
|
Stock: !!Stock
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
const message = e && typeof e === "object" && "message" in e ? String(e.message) : "Create failed";
|
||||||
|
return fail(500, { error: message, form: "create" });
|
||||||
|
}
|
||||||
|
return { success: true };
|
||||||
|
},
|
||||||
|
update: async ({ request, locals }) => {
|
||||||
|
const form = await request.formData();
|
||||||
|
const id = form.get("id")?.trim();
|
||||||
|
if (!id) return fail(400, { error: "Missing id", form: "update" });
|
||||||
|
const Item = form.get("Item")?.trim() ?? "";
|
||||||
|
const SKU = form.get("SKU")?.trim() ?? "";
|
||||||
|
const Description = form.get("Description")?.trim() ?? "";
|
||||||
|
const UOM = form.get("UOM")?.trim() ?? "";
|
||||||
|
const Cost = parseNum(form.get("Cost"));
|
||||||
|
const Vendor = form.get("Vendor")?.trim() ?? "";
|
||||||
|
const Catagory = form.get("Catagory")?.trim() ?? "";
|
||||||
|
const Sub_Catagory = form.get("Sub_Catagory")?.trim() ?? "";
|
||||||
|
const Has_Parent = parseBool(form.get("Has_Parent"));
|
||||||
|
const Parent = form.get("Parent")?.trim() ?? "";
|
||||||
|
const Stock = parseBool(form.get("Stock"));
|
||||||
|
if (!Item) return fail(400, { error: "Item name is required", form: "update" });
|
||||||
|
try {
|
||||||
|
await locals.pb.collection(COLLECTION).update(id, {
|
||||||
|
Item,
|
||||||
|
SKU,
|
||||||
|
Description,
|
||||||
|
UOM: UOM || void 0,
|
||||||
|
Cost: Cost ?? 0,
|
||||||
|
Vendor,
|
||||||
|
Catagory: Catagory || void 0,
|
||||||
|
Sub_Catagory: Sub_Catagory || void 0,
|
||||||
|
Has_Parent: !!Has_Parent,
|
||||||
|
Parent: Parent || null,
|
||||||
|
Stock: !!Stock
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
const message = e && typeof e === "object" && "message" in e ? String(e.message) : "Update failed";
|
||||||
|
return fail(500, { error: message, form: "update" });
|
||||||
|
}
|
||||||
|
return { success: true };
|
||||||
|
},
|
||||||
|
delete: async ({ request, locals }) => {
|
||||||
|
const form = await request.formData();
|
||||||
|
const id = form.get("id")?.trim();
|
||||||
|
if (!id) return fail(400, { error: "Missing id", form: "delete" });
|
||||||
|
try {
|
||||||
|
await locals.pb.collection(COLLECTION).delete(id);
|
||||||
|
} catch (e) {
|
||||||
|
const message = e && typeof e === "object" && "message" in e ? String(e.message) : "Delete failed";
|
||||||
|
return fail(500, { error: message, form: "delete" });
|
||||||
|
}
|
||||||
|
return { success: true };
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export {
|
||||||
|
actions,
|
||||||
|
load
|
||||||
|
};
|
||||||
@@ -0,0 +1,670 @@
|
|||||||
|
import { a as attributes, c as clsx, b as bind_props, d as element, h as head, e as escape_html, f as ensure_array_like } from "../../../chunks/index.js";
|
||||||
|
import { c as cn } from "../../../chunks/utils2.js";
|
||||||
|
import "clsx";
|
||||||
|
import { tv } from "tailwind-variants";
|
||||||
|
function Table($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<div data-slot="table-container" class="relative w-full overflow-x-auto"><table${attributes({
|
||||||
|
"data-slot": "table",
|
||||||
|
class: clsx(cn("w-full caption-bottom text-sm", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></table></div>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Table_body($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<tbody${attributes({
|
||||||
|
"data-slot": "table-body",
|
||||||
|
class: clsx(cn("[&_tr:last-child]:border-0", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></tbody>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Table_cell($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<td${attributes({
|
||||||
|
"data-slot": "table-cell",
|
||||||
|
class: clsx(cn("bg-clip-padding p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></td>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Table_head($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<th${attributes({
|
||||||
|
"data-slot": "table-head",
|
||||||
|
class: clsx(cn("text-foreground h-10 bg-clip-padding px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></th>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Table_header($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<thead${attributes({
|
||||||
|
"data-slot": "table-header",
|
||||||
|
class: clsx(cn("[&_tr]:border-b", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></thead>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Table_row($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<tr${attributes({
|
||||||
|
"data-slot": "table-row",
|
||||||
|
class: clsx(cn("hover:[&,&>svelte-css-wrapper]:[&>th,td]:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></tr>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const badgeVariants = tv({
|
||||||
|
base: "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",
|
||||||
|
variants: {
|
||||||
|
variant: {
|
||||||
|
default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",
|
||||||
|
secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",
|
||||||
|
destructive: "bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70 border-transparent text-white",
|
||||||
|
outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
defaultVariants: { variant: "default" }
|
||||||
|
});
|
||||||
|
function Badge($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
href,
|
||||||
|
class: className,
|
||||||
|
variant = "default",
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
element(
|
||||||
|
$$renderer2,
|
||||||
|
href ? "a" : "span",
|
||||||
|
() => {
|
||||||
|
$$renderer2.push(`${attributes({
|
||||||
|
"data-slot": "badge",
|
||||||
|
href,
|
||||||
|
class: clsx(cn(badgeVariants({ variant }), className)),
|
||||||
|
...restProps
|
||||||
|
})}`);
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!---->`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Card($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<div${attributes({
|
||||||
|
"data-slot": "card",
|
||||||
|
class: clsx(cn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></div>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Card_content($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<div${attributes({
|
||||||
|
"data-slot": "card-content",
|
||||||
|
class: clsx(cn("px-6", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></div>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Card_header($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<div${attributes({
|
||||||
|
"data-slot": "card-header",
|
||||||
|
class: clsx(cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></div>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function Card_title($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let {
|
||||||
|
ref = null,
|
||||||
|
class: className,
|
||||||
|
children,
|
||||||
|
$$slots,
|
||||||
|
$$events,
|
||||||
|
...restProps
|
||||||
|
} = $$props;
|
||||||
|
$$renderer2.push(`<div${attributes({
|
||||||
|
"data-slot": "card-title",
|
||||||
|
class: clsx(cn("leading-none font-semibold", className)),
|
||||||
|
...restProps
|
||||||
|
})}>`);
|
||||||
|
children?.($$renderer2);
|
||||||
|
$$renderer2.push(`<!----></div>`);
|
||||||
|
bind_props($$props, { ref });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function _page($$renderer, $$props) {
|
||||||
|
$$renderer.component(($$renderer2) => {
|
||||||
|
let { data } = $$props;
|
||||||
|
function asList(val) {
|
||||||
|
if (val == null) return [];
|
||||||
|
return Array.isArray(val) ? val : [val];
|
||||||
|
}
|
||||||
|
function formatDate(iso) {
|
||||||
|
if (!iso) return "—";
|
||||||
|
try {
|
||||||
|
return new Date(iso).toLocaleDateString(void 0, { dateStyle: "short", timeStyle: "short" });
|
||||||
|
} catch {
|
||||||
|
return iso;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const items = data?.items ?? [];
|
||||||
|
head("rk8na7", $$renderer2, ($$renderer3) => {
|
||||||
|
$$renderer3.title(($$renderer4) => {
|
||||||
|
$$renderer4.push(`<title>Items – Stackq</title>`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
{
|
||||||
|
$$renderer2.push("<!--[!-->");
|
||||||
|
$$renderer2.push(`<main class="container mx-auto flex flex-col gap-6 py-8"><div class="flex items-center justify-between"><h1 class="text-2xl font-semibold">Stackq Items</h1> <span class="text-muted-foreground text-sm">${escape_html(items.length)} items</span></div> `);
|
||||||
|
Card($$renderer2, {
|
||||||
|
children: ($$renderer3) => {
|
||||||
|
Card_header($$renderer3, {
|
||||||
|
children: ($$renderer4) => {
|
||||||
|
Card_title($$renderer4, {
|
||||||
|
children: ($$renderer5) => {
|
||||||
|
$$renderer5.push(`<!---->Stackq_Items`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer4.push(`<!----> <p class="text-muted-foreground text-sm">PocketBase collection. Enable JS for create/edit/delete.</p>`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer3.push(`<!----> `);
|
||||||
|
Card_content($$renderer3, {
|
||||||
|
class: "p-0",
|
||||||
|
children: ($$renderer4) => {
|
||||||
|
$$renderer4.push("<!---->");
|
||||||
|
Table?.($$renderer4, {
|
||||||
|
children: ($$renderer5) => {
|
||||||
|
$$renderer5.push("<!---->");
|
||||||
|
Table_header?.($$renderer5, {
|
||||||
|
children: ($$renderer6) => {
|
||||||
|
$$renderer6.push("<!---->");
|
||||||
|
Table_row?.($$renderer6, {
|
||||||
|
children: ($$renderer7) => {
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Item`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->SKU`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
class: "max-w-[200px]",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Description`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->UOM`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
class: "text-right",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Cost`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Vendor`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Catagory`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Sub_Catagory`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Has Parent`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Parent`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->Stock`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
class: "text-muted-foreground",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->created`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_head?.($$renderer7, {
|
||||||
|
class: "text-muted-foreground",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->updated`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer6.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer5.push(`<!----> `);
|
||||||
|
$$renderer5.push("<!---->");
|
||||||
|
Table_body?.($$renderer5, {
|
||||||
|
children: ($$renderer6) => {
|
||||||
|
if (items.length === 0) {
|
||||||
|
$$renderer6.push("<!--[-->");
|
||||||
|
$$renderer6.push("<!---->");
|
||||||
|
Table_row?.($$renderer6, {
|
||||||
|
children: ($$renderer7) => {
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
colspan: "13",
|
||||||
|
class: "h-24 text-center text-muted-foreground",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->No items.`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer6.push(`<!---->`);
|
||||||
|
} else {
|
||||||
|
$$renderer6.push("<!--[!-->");
|
||||||
|
$$renderer6.push(`<!--[-->`);
|
||||||
|
const each_array = ensure_array_like(items);
|
||||||
|
for (let $$index_2 = 0, $$length = each_array.length; $$index_2 < $$length; $$index_2++) {
|
||||||
|
let item = each_array[$$index_2];
|
||||||
|
$$renderer6.push("<!---->");
|
||||||
|
Table_row?.($$renderer6, {
|
||||||
|
children: ($$renderer7) => {
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "font-medium",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(item.Item ?? "—")}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "font-mono text-xs",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(item.SKU ?? "—")}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "max-w-[200px] truncate",
|
||||||
|
title: item.Description ?? "",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(item.Description ?? "—")}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
Badge($$renderer8, {
|
||||||
|
variant: "outline",
|
||||||
|
children: ($$renderer9) => {
|
||||||
|
$$renderer9.push(`<!---->${escape_html(item.UOM ?? "—")}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "text-right tabular-nums",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(item.Cost != null ? Number(item.Cost).toLocaleString() : "—")}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "text-muted-foreground",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(item.Vendor ?? "—")}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!--[-->`);
|
||||||
|
const each_array_1 = ensure_array_like(asList(item.Catagory));
|
||||||
|
for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {
|
||||||
|
let cat = each_array_1[$$index];
|
||||||
|
Badge($$renderer8, {
|
||||||
|
variant: "secondary",
|
||||||
|
class: "mr-1 text-xs",
|
||||||
|
children: ($$renderer9) => {
|
||||||
|
$$renderer9.push(`<!---->${escape_html(cat)}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]--> `);
|
||||||
|
if (asList(item.Catagory).length === 0) {
|
||||||
|
$$renderer8.push("<!--[-->");
|
||||||
|
$$renderer8.push(`<span class="text-muted-foreground">—</span>`);
|
||||||
|
} else {
|
||||||
|
$$renderer8.push("<!--[!-->");
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]-->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!--[-->`);
|
||||||
|
const each_array_2 = ensure_array_like(asList(item.Sub_Catagory));
|
||||||
|
for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
|
||||||
|
let sub = each_array_2[$$index_1];
|
||||||
|
Badge($$renderer8, {
|
||||||
|
variant: "outline",
|
||||||
|
class: "mr-1 text-xs",
|
||||||
|
children: ($$renderer9) => {
|
||||||
|
$$renderer9.push(`<!---->${escape_html(sub)}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]--> `);
|
||||||
|
if (asList(item.Sub_Catagory).length === 0) {
|
||||||
|
$$renderer8.push("<!--[-->");
|
||||||
|
$$renderer8.push(`<span class="text-muted-foreground">—</span>`);
|
||||||
|
} else {
|
||||||
|
$$renderer8.push("<!--[!-->");
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]-->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
if (item.Has_Parent) {
|
||||||
|
$$renderer8.push("<!--[-->");
|
||||||
|
Badge($$renderer8, {
|
||||||
|
children: ($$renderer9) => {
|
||||||
|
$$renderer9.push(`<!---->Yes`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$$renderer8.push("<!--[!-->");
|
||||||
|
$$renderer8.push(`<span class="text-muted-foreground">No</span>`);
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]-->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "text-muted-foreground",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
if (item.expand?.Parent) {
|
||||||
|
$$renderer8.push("<!--[-->");
|
||||||
|
$$renderer8.push(`${escape_html(item.expand.Parent.Item ?? item.expand.Parent.SKU ?? item.Parent)}`);
|
||||||
|
} else if (item.Parent) {
|
||||||
|
$$renderer8.push("<!--[1-->");
|
||||||
|
$$renderer8.push(`<span class="font-mono text-xs">${escape_html(item.Parent)}</span>`);
|
||||||
|
} else {
|
||||||
|
$$renderer8.push("<!--[!-->");
|
||||||
|
$$renderer8.push(`—`);
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]-->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
if (item.Stock) {
|
||||||
|
$$renderer8.push("<!--[-->");
|
||||||
|
Badge($$renderer8, {
|
||||||
|
variant: "default",
|
||||||
|
children: ($$renderer9) => {
|
||||||
|
$$renderer9.push(`<!---->Stock`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$$renderer8.push("<!--[!-->");
|
||||||
|
$$renderer8.push(`<span class="text-muted-foreground">—</span>`);
|
||||||
|
}
|
||||||
|
$$renderer8.push(`<!--]-->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "text-muted-foreground text-xs",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(formatDate(item.created))}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!----> `);
|
||||||
|
$$renderer7.push("<!---->");
|
||||||
|
Table_cell?.($$renderer7, {
|
||||||
|
class: "text-muted-foreground text-xs",
|
||||||
|
children: ($$renderer8) => {
|
||||||
|
$$renderer8.push(`<!---->${escape_html(formatDate(item.updated))}`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer7.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer6.push(`<!---->`);
|
||||||
|
}
|
||||||
|
$$renderer6.push(`<!--]-->`);
|
||||||
|
}
|
||||||
|
$$renderer6.push(`<!--]-->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer5.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer4.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer3.push(`<!---->`);
|
||||||
|
},
|
||||||
|
$$slots: { default: true }
|
||||||
|
});
|
||||||
|
$$renderer2.push(`<!----></main>`);
|
||||||
|
}
|
||||||
|
$$renderer2.push(`<!--]-->`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
_page as default
|
||||||
|
};
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import { fail, redirect } from "@sveltejs/kit";
|
||||||
|
function safeRedirectTo(searchParams) {
|
||||||
|
const to = searchParams.get("redirectTo");
|
||||||
|
if (!to || typeof to !== "string") return "/";
|
||||||
|
if (!to.startsWith("/") || to.startsWith("//")) return "/";
|
||||||
|
return to;
|
||||||
|
}
|
||||||
|
const load = ({ url, locals }) => {
|
||||||
|
if (locals.user) {
|
||||||
|
throw redirect(303, safeRedirectTo(url.searchParams));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const actions = {
|
||||||
|
login: async ({ request, locals, url }) => {
|
||||||
|
const data = await request.formData();
|
||||||
|
const email = data.get("email")?.trim() ?? "";
|
||||||
|
const password = data.get("password") ?? "";
|
||||||
|
if (!email || !password) {
|
||||||
|
return fail(400, { error: "Email and password are required.", email });
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
await locals.pb.collection("users").authWithPassword(email, password);
|
||||||
|
} catch (err) {
|
||||||
|
const message = err && typeof err === "object" && "message" in err ? String(err.message) : "Invalid email or password.";
|
||||||
|
return fail(401, { error: message, email });
|
||||||
|
}
|
||||||
|
const redirectTo = safeRedirectTo(url.searchParams);
|
||||||
|
throw redirect(303, redirectTo);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export {
|
||||||
|
actions,
|
||||||
|
load
|
||||||
|
};
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import "clsx";
|
||||||
|
function _page($$renderer, $$props) {
|
||||||
|
let { data } = $$props;
|
||||||
|
$$renderer.push(`<main class="flex min-h-screen flex-col items-center justify-center p-4">`);
|
||||||
|
{
|
||||||
|
$$renderer.push("<!--[!-->");
|
||||||
|
$$renderer.push(`<div class="w-full max-w-sm space-y-4 rounded-xl border bg-card p-6 shadow-sm"><div class="space-y-1"><h1 class="text-lg font-semibold">Login</h1> <p class="text-muted-foreground text-sm">Enter your email and password to sign in.</p></div> <p class="text-muted-foreground text-sm">Loading form…</p></div>`);
|
||||||
|
}
|
||||||
|
$$renderer.push(`<!--]--></main>`);
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
_page as default
|
||||||
|
};
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import { redirect } from "@sveltejs/kit";
|
||||||
|
const load = ({ locals }) => {
|
||||||
|
locals.pb.authStore.clear();
|
||||||
|
throw redirect(303, "/login");
|
||||||
|
};
|
||||||
|
export {
|
||||||
|
load
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
|||||||
|
import "./chunks/root.js";
|
||||||
|
import { s, a, b } from "./chunks/environment.js";
|
||||||
|
import { g, o, c, s as s2, a as a2, b as b2 } from "./chunks/internal.js";
|
||||||
|
export {
|
||||||
|
g as get_hooks,
|
||||||
|
o as options,
|
||||||
|
s as set_assets,
|
||||||
|
a as set_building,
|
||||||
|
c as set_manifest,
|
||||||
|
b as set_prerendering,
|
||||||
|
s2 as set_private_env,
|
||||||
|
a2 as set_public_env,
|
||||||
|
b2 as set_read_implementation
|
||||||
|
};
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
export const manifest = (() => {
|
||||||
|
function __memo(fn) {
|
||||||
|
let value;
|
||||||
|
return () => value ??= (value = fn());
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
appDir: "_app",
|
||||||
|
appPath: "_app",
|
||||||
|
assets: new Set([]),
|
||||||
|
mimeTypes: {},
|
||||||
|
_: {
|
||||||
|
client: {start:"_app/immutable/entry/start.CdONOS6-.js",app:"_app/immutable/entry/app.BaRtR_VV.js",imports:["_app/immutable/entry/start.CdONOS6-.js","_app/immutable/chunks/DH791y0n.js","_app/immutable/chunks/Db3dOJqt.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/entry/app.BaRtR_VV.js","_app/immutable/chunks/CS4xyx6M.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/DcegSV8N.js","_app/immutable/chunks/Db3dOJqt.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/CvosxF64.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
||||||
|
nodes: [
|
||||||
|
__memo(() => import('./nodes/0.js')),
|
||||||
|
__memo(() => import('./nodes/1.js')),
|
||||||
|
__memo(() => import('./nodes/2.js')),
|
||||||
|
__memo(() => import('./nodes/3.js')),
|
||||||
|
__memo(() => import('./nodes/4.js')),
|
||||||
|
__memo(() => import('./nodes/5.js'))
|
||||||
|
],
|
||||||
|
remotes: {
|
||||||
|
|
||||||
|
},
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
id: "/",
|
||||||
|
pattern: /^\/$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
||||||
|
endpoint: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "/items",
|
||||||
|
pattern: /^\/items\/?$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 4 },
|
||||||
|
endpoint: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "/login",
|
||||||
|
pattern: /^\/login\/?$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 5 },
|
||||||
|
endpoint: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "/logout",
|
||||||
|
pattern: /^\/logout\/?$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
||||||
|
endpoint: null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
prerendered_routes: new Set([]),
|
||||||
|
matchers: async () => {
|
||||||
|
|
||||||
|
return { };
|
||||||
|
},
|
||||||
|
server_assets: {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
export const manifest = (() => {
|
||||||
|
function __memo(fn) {
|
||||||
|
let value;
|
||||||
|
return () => value ??= (value = fn());
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
appDir: "_app",
|
||||||
|
appPath: "_app",
|
||||||
|
assets: new Set([]),
|
||||||
|
mimeTypes: {},
|
||||||
|
_: {
|
||||||
|
client: {start:"_app/immutable/entry/start.CdONOS6-.js",app:"_app/immutable/entry/app.BaRtR_VV.js",imports:["_app/immutable/entry/start.CdONOS6-.js","_app/immutable/chunks/DH791y0n.js","_app/immutable/chunks/Db3dOJqt.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/entry/app.BaRtR_VV.js","_app/immutable/chunks/CS4xyx6M.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/DcegSV8N.js","_app/immutable/chunks/Db3dOJqt.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/CvosxF64.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
||||||
|
nodes: [
|
||||||
|
__memo(() => import('./nodes/0.js')),
|
||||||
|
__memo(() => import('./nodes/1.js')),
|
||||||
|
__memo(() => import('./nodes/2.js')),
|
||||||
|
__memo(() => import('./nodes/3.js')),
|
||||||
|
__memo(() => import('./nodes/4.js')),
|
||||||
|
__memo(() => import('./nodes/5.js'))
|
||||||
|
],
|
||||||
|
remotes: {
|
||||||
|
|
||||||
|
},
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
id: "/",
|
||||||
|
pattern: /^\/$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
||||||
|
endpoint: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "/items",
|
||||||
|
pattern: /^\/items\/?$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 4 },
|
||||||
|
endpoint: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "/login",
|
||||||
|
pattern: /^\/login\/?$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 5 },
|
||||||
|
endpoint: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "/logout",
|
||||||
|
pattern: /^\/logout\/?$/,
|
||||||
|
params: [],
|
||||||
|
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
||||||
|
endpoint: null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
prerendered_routes: new Set([]),
|
||||||
|
matchers: async () => {
|
||||||
|
|
||||||
|
return { };
|
||||||
|
},
|
||||||
|
server_assets: {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import * as universal from '../entries/pages/_layout.ts.js';
|
||||||
|
|
||||||
|
export const index = 0;
|
||||||
|
let component_cache;
|
||||||
|
export const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;
|
||||||
|
export { universal };
|
||||||
|
export const universal_id = "src/routes/+layout.ts";
|
||||||
|
export const imports = ["_app/immutable/nodes/0.BWGINVoR.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/BrBXfa46.js","_app/immutable/chunks/m2dceAnU.js"];
|
||||||
|
export const stylesheets = ["_app/immutable/assets/0.C7J2EIJ7.css"];
|
||||||
|
export const fonts = [];
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
export const index = 1;
|
||||||
|
let component_cache;
|
||||||
|
export const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;
|
||||||
|
export const imports = ["_app/immutable/nodes/1.CEGpjm-A.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/BrBXfa46.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/Db3dOJqt.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/chunks/DH791y0n.js"];
|
||||||
|
export const stylesheets = [];
|
||||||
|
export const fonts = [];
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
export const index = 2;
|
||||||
|
let component_cache;
|
||||||
|
export const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;
|
||||||
|
export const imports = ["_app/immutable/nodes/2.W3CLiCpj.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/BrBXfa46.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/D4Z6sX8n.js","_app/immutable/chunks/BtiMKAzw.js","_app/immutable/chunks/DcegSV8N.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/chunks/CvosxF64.js"];
|
||||||
|
export const stylesheets = [];
|
||||||
|
export const fonts = [];
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import * as server from '../entries/pages/logout/_page.server.ts.js';
|
||||||
|
|
||||||
|
export const index = 3;
|
||||||
|
export { server };
|
||||||
|
export const server_id = "src/routes/logout/+page.server.ts";
|
||||||
|
export const imports = [];
|
||||||
|
export const stylesheets = [];
|
||||||
|
export const fonts = [];
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import * as server from '../entries/pages/items/_page.server.ts.js';
|
||||||
|
|
||||||
|
export const index = 4;
|
||||||
|
let component_cache;
|
||||||
|
export const component = async () => component_cache ??= (await import('../entries/pages/items/_page.svelte.js')).default;
|
||||||
|
export { server };
|
||||||
|
export const server_id = "src/routes/items/+page.server.ts";
|
||||||
|
export const imports = ["_app/immutable/nodes/4.B8D3vRQS.js","_app/immutable/chunks/CM9au6ec.js","_app/immutable/chunks/CS4xyx6M.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/DcegSV8N.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/BMcrRaS1.js","_app/immutable/chunks/BtiMKAzw.js","_app/immutable/chunks/DKU_2deH.js","_app/immutable/chunks/CvosxF64.js"];
|
||||||
|
export const stylesheets = [];
|
||||||
|
export const fonts = [];
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import * as server from '../entries/pages/login/_page.server.ts.js';
|
||||||
|
|
||||||
|
export const index = 5;
|
||||||
|
let component_cache;
|
||||||
|
export const component = async () => component_cache ??= (await import('../entries/pages/login/_page.svelte.js')).default;
|
||||||
|
export { server };
|
||||||
|
export const server_id = "src/routes/login/+page.server.ts";
|
||||||
|
export const imports = ["_app/immutable/nodes/5.NGnDqIo2.js","_app/immutable/chunks/CS4xyx6M.js","_app/immutable/chunks/m2dceAnU.js","_app/immutable/chunks/DcegSV8N.js","_app/immutable/chunks/Bzak7iHL.js","_app/immutable/chunks/BMcrRaS1.js"];
|
||||||
|
export const stylesheets = [];
|
||||||
|
export const fonts = [];
|
||||||
@@ -0,0 +1,557 @@
|
|||||||
|
import { get_request_store, with_request_store } from "@sveltejs/kit/internal/server";
|
||||||
|
import { parse } from "devalue";
|
||||||
|
import { error, json } from "@sveltejs/kit";
|
||||||
|
import { s as stringify_remote_arg, f as flatten_issues, c as create_field_proxy, n as normalize_issue, a as set_nested_value, d as deep_set, b as stringify, e as create_remote_key, h as handle_error_and_jsonify } from "./chunks/shared.js";
|
||||||
|
import { ValidationError, HttpError, SvelteKitError } from "@sveltejs/kit/internal";
|
||||||
|
import { D as DEV } from "./chunks/false.js";
|
||||||
|
import { c as base, d as app_dir, p as prerendering } from "./chunks/environment.js";
|
||||||
|
function create_validator(validate_or_fn, maybe_fn) {
|
||||||
|
if (!maybe_fn) {
|
||||||
|
return (arg) => {
|
||||||
|
if (arg !== void 0) {
|
||||||
|
error(400, "Bad Request");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (validate_or_fn === "unchecked") {
|
||||||
|
return (arg) => arg;
|
||||||
|
}
|
||||||
|
if ("~standard" in validate_or_fn) {
|
||||||
|
return async (arg) => {
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
const result = await validate_or_fn["~standard"].validate(arg);
|
||||||
|
if (result.issues) {
|
||||||
|
error(
|
||||||
|
400,
|
||||||
|
await state.handleValidationError({
|
||||||
|
issues: result.issues,
|
||||||
|
event
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return result.value;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw new Error(
|
||||||
|
'Invalid validator passed to remote function. Expected "unchecked" or a Standard Schema (https://standardschema.dev)'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
async function get_response(info, arg, state, get_result) {
|
||||||
|
await 0;
|
||||||
|
const cache = get_cache(info, state);
|
||||||
|
return cache[stringify_remote_arg(arg, state.transport)] ??= get_result();
|
||||||
|
}
|
||||||
|
function parse_remote_response(data, transport) {
|
||||||
|
const revivers = {};
|
||||||
|
for (const key in transport) {
|
||||||
|
revivers[key] = transport[key].decode;
|
||||||
|
}
|
||||||
|
return parse(data, revivers);
|
||||||
|
}
|
||||||
|
async function run_remote_function(event, state, allow_cookies, get_input, fn) {
|
||||||
|
const store = {
|
||||||
|
event: {
|
||||||
|
...event,
|
||||||
|
setHeaders: () => {
|
||||||
|
throw new Error("setHeaders is not allowed in remote functions");
|
||||||
|
},
|
||||||
|
cookies: {
|
||||||
|
...event.cookies,
|
||||||
|
set: (name, value, opts) => {
|
||||||
|
if (!allow_cookies) {
|
||||||
|
throw new Error("Cannot set cookies in `query` or `prerender` functions");
|
||||||
|
}
|
||||||
|
if (opts.path && !opts.path.startsWith("/")) {
|
||||||
|
throw new Error("Cookies set in remote functions must have an absolute path");
|
||||||
|
}
|
||||||
|
return event.cookies.set(name, value, opts);
|
||||||
|
},
|
||||||
|
delete: (name, opts) => {
|
||||||
|
if (!allow_cookies) {
|
||||||
|
throw new Error("Cannot delete cookies in `query` or `prerender` functions");
|
||||||
|
}
|
||||||
|
if (opts.path && !opts.path.startsWith("/")) {
|
||||||
|
throw new Error("Cookies deleted in remote functions must have an absolute path");
|
||||||
|
}
|
||||||
|
return event.cookies.delete(name, opts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
state: {
|
||||||
|
...state,
|
||||||
|
is_in_remote_function: true
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const input = await with_request_store(store, get_input);
|
||||||
|
return with_request_store(store, () => fn(input));
|
||||||
|
}
|
||||||
|
function get_cache(info, state = get_request_store().state) {
|
||||||
|
let cache = state.remote_data?.get(info);
|
||||||
|
if (cache === void 0) {
|
||||||
|
cache = {};
|
||||||
|
(state.remote_data ??= /* @__PURE__ */ new Map()).set(info, cache);
|
||||||
|
}
|
||||||
|
return cache;
|
||||||
|
}
|
||||||
|
// @__NO_SIDE_EFFECTS__
|
||||||
|
function command(validate_or_fn, maybe_fn) {
|
||||||
|
const fn = maybe_fn ?? validate_or_fn;
|
||||||
|
const validate = create_validator(validate_or_fn, maybe_fn);
|
||||||
|
const __ = { type: "command", id: "", name: "" };
|
||||||
|
const wrapper = (arg) => {
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
if (state.is_endpoint_request) {
|
||||||
|
if (!["POST", "PUT", "PATCH", "DELETE"].includes(event.request.method)) {
|
||||||
|
throw new Error(
|
||||||
|
`Cannot call a command (\`${__.name}(${maybe_fn ? "..." : ""})\`) from a ${event.request.method} handler`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else if (!event.isRemoteRequest) {
|
||||||
|
throw new Error(
|
||||||
|
`Cannot call a command (\`${__.name}(${maybe_fn ? "..." : ""})\`) during server-side rendering`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
state.refreshes ??= {};
|
||||||
|
const promise = Promise.resolve(
|
||||||
|
run_remote_function(event, state, true, () => validate(arg), fn)
|
||||||
|
);
|
||||||
|
promise.updates = () => {
|
||||||
|
throw new Error(`Cannot call '${__.name}(...).updates(...)' on the server`);
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
/** @type {ReturnType<RemoteCommand<Input, Output>>} */
|
||||||
|
promise
|
||||||
|
);
|
||||||
|
};
|
||||||
|
Object.defineProperty(wrapper, "__", { value: __ });
|
||||||
|
Object.defineProperty(wrapper, "pending", {
|
||||||
|
get: () => 0
|
||||||
|
});
|
||||||
|
return wrapper;
|
||||||
|
}
|
||||||
|
// @__NO_SIDE_EFFECTS__
|
||||||
|
function form(validate_or_fn, maybe_fn) {
|
||||||
|
const fn = maybe_fn ?? validate_or_fn;
|
||||||
|
const schema = !maybe_fn || validate_or_fn === "unchecked" ? null : (
|
||||||
|
/** @type {any} */
|
||||||
|
validate_or_fn
|
||||||
|
);
|
||||||
|
function create_instance(key) {
|
||||||
|
const instance = {};
|
||||||
|
instance.method = "POST";
|
||||||
|
Object.defineProperty(instance, "enhance", {
|
||||||
|
value: () => {
|
||||||
|
return { action: instance.action, method: instance.method };
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const __ = {
|
||||||
|
type: "form",
|
||||||
|
name: "",
|
||||||
|
id: "",
|
||||||
|
fn: async (data, meta, form_data) => {
|
||||||
|
const output = {};
|
||||||
|
output.submission = true;
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
const validated = await schema?.["~standard"].validate(data);
|
||||||
|
if (meta.validate_only) {
|
||||||
|
return validated?.issues?.map((issue) => normalize_issue(issue, true)) ?? [];
|
||||||
|
}
|
||||||
|
if (validated?.issues !== void 0) {
|
||||||
|
handle_issues(output, validated.issues, form_data);
|
||||||
|
} else {
|
||||||
|
if (validated !== void 0) {
|
||||||
|
data = validated.value;
|
||||||
|
}
|
||||||
|
state.refreshes ??= {};
|
||||||
|
const issue = create_issues();
|
||||||
|
try {
|
||||||
|
output.result = await run_remote_function(
|
||||||
|
event,
|
||||||
|
state,
|
||||||
|
true,
|
||||||
|
() => data,
|
||||||
|
(data2) => !maybe_fn ? fn() : fn(data2, issue)
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
if (e instanceof ValidationError) {
|
||||||
|
handle_issues(output, e.issues, form_data);
|
||||||
|
} else {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!event.isRemoteRequest) {
|
||||||
|
get_cache(__, state)[""] ??= output;
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Object.defineProperty(instance, "__", { value: __ });
|
||||||
|
Object.defineProperty(instance, "action", {
|
||||||
|
get: () => `?/remote=${__.id}`,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
Object.defineProperty(instance, "fields", {
|
||||||
|
get() {
|
||||||
|
const data = get_cache(__)?.[""];
|
||||||
|
const issues = flatten_issues(data?.issues ?? []);
|
||||||
|
return create_field_proxy(
|
||||||
|
{},
|
||||||
|
() => data?.input ?? {},
|
||||||
|
(path, value) => {
|
||||||
|
if (data?.submission) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const input = path.length === 0 ? value : deep_set(data?.input ?? {}, path.map(String), value);
|
||||||
|
(get_cache(__)[""] ??= {}).input = input;
|
||||||
|
},
|
||||||
|
() => issues
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(instance, "result", {
|
||||||
|
get() {
|
||||||
|
try {
|
||||||
|
return get_cache(__)?.[""]?.result;
|
||||||
|
} catch {
|
||||||
|
return void 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(instance, "pending", {
|
||||||
|
get: () => 0
|
||||||
|
});
|
||||||
|
Object.defineProperty(instance, "preflight", {
|
||||||
|
// preflight is a noop on the server
|
||||||
|
value: () => instance
|
||||||
|
});
|
||||||
|
Object.defineProperty(instance, "validate", {
|
||||||
|
value: () => {
|
||||||
|
throw new Error("Cannot call validate() on the server");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (key == void 0) {
|
||||||
|
Object.defineProperty(instance, "for", {
|
||||||
|
/** @type {RemoteForm<any, any>['for']} */
|
||||||
|
value: (key2) => {
|
||||||
|
const { state } = get_request_store();
|
||||||
|
const cache_key = __.id + "|" + JSON.stringify(key2);
|
||||||
|
let instance2 = (state.form_instances ??= /* @__PURE__ */ new Map()).get(cache_key);
|
||||||
|
if (!instance2) {
|
||||||
|
instance2 = create_instance(key2);
|
||||||
|
instance2.__.id = `${__.id}/${encodeURIComponent(JSON.stringify(key2))}`;
|
||||||
|
instance2.__.name = __.name;
|
||||||
|
state.form_instances.set(cache_key, instance2);
|
||||||
|
}
|
||||||
|
return instance2;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
return create_instance();
|
||||||
|
}
|
||||||
|
function handle_issues(output, issues, form_data) {
|
||||||
|
output.issues = issues.map((issue) => normalize_issue(issue, true));
|
||||||
|
if (form_data) {
|
||||||
|
output.input = {};
|
||||||
|
for (let key of form_data.keys()) {
|
||||||
|
if (/^[.\]]?_/.test(key)) continue;
|
||||||
|
const is_array = key.endsWith("[]");
|
||||||
|
const values = form_data.getAll(key).filter((value) => typeof value === "string");
|
||||||
|
if (is_array) key = key.slice(0, -2);
|
||||||
|
set_nested_value(
|
||||||
|
/** @type {Record<string, any>} */
|
||||||
|
output.input,
|
||||||
|
key,
|
||||||
|
is_array ? values : values[0]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function create_issues() {
|
||||||
|
return (
|
||||||
|
/** @type {InvalidField<any>} */
|
||||||
|
new Proxy(
|
||||||
|
/** @param {string} message */
|
||||||
|
(message) => {
|
||||||
|
if (typeof message !== "string") {
|
||||||
|
throw new Error(
|
||||||
|
"`invalid` should now be imported from `@sveltejs/kit` to throw validation issues. The second parameter provided to the form function (renamed to `issue`) is still used to construct issues, e.g. `invalid(issue.field('message'))`. For more info see https://github.com/sveltejs/kit/pulls/14768"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return create_issue(message);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
get(target, prop) {
|
||||||
|
if (typeof prop === "symbol") return (
|
||||||
|
/** @type {any} */
|
||||||
|
target[prop]
|
||||||
|
);
|
||||||
|
return create_issue_proxy(prop, []);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
function create_issue(message, path = []) {
|
||||||
|
return {
|
||||||
|
message,
|
||||||
|
path
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function create_issue_proxy(key, path) {
|
||||||
|
const new_path = [...path, key];
|
||||||
|
const issue_func = (message) => create_issue(message, new_path);
|
||||||
|
return new Proxy(issue_func, {
|
||||||
|
get(target, prop) {
|
||||||
|
if (typeof prop === "symbol") return (
|
||||||
|
/** @type {any} */
|
||||||
|
target[prop]
|
||||||
|
);
|
||||||
|
if (/^\d+$/.test(prop)) {
|
||||||
|
return create_issue_proxy(parseInt(prop, 10), new_path);
|
||||||
|
}
|
||||||
|
return create_issue_proxy(prop, new_path);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// @__NO_SIDE_EFFECTS__
|
||||||
|
function prerender(validate_or_fn, fn_or_options, maybe_options) {
|
||||||
|
const maybe_fn = typeof fn_or_options === "function" ? fn_or_options : void 0;
|
||||||
|
const options = maybe_options ?? (maybe_fn ? void 0 : fn_or_options);
|
||||||
|
const fn = maybe_fn ?? validate_or_fn;
|
||||||
|
const validate = create_validator(validate_or_fn, maybe_fn);
|
||||||
|
const __ = {
|
||||||
|
type: "prerender",
|
||||||
|
id: "",
|
||||||
|
name: "",
|
||||||
|
has_arg: !!maybe_fn,
|
||||||
|
inputs: options?.inputs,
|
||||||
|
dynamic: options?.dynamic
|
||||||
|
};
|
||||||
|
const wrapper = (arg) => {
|
||||||
|
const promise = (async () => {
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
const payload = stringify_remote_arg(arg, state.transport);
|
||||||
|
const id = __.id;
|
||||||
|
const url = `${base}/${app_dir}/remote/${id}${payload ? `/${payload}` : ""}`;
|
||||||
|
if (!state.prerendering && !DEV && !event.isRemoteRequest) {
|
||||||
|
try {
|
||||||
|
return await get_response(__, arg, state, async () => {
|
||||||
|
const key = stringify_remote_arg(arg, state.transport);
|
||||||
|
const cache = get_cache(__, state);
|
||||||
|
const promise3 = cache[key] ??= fetch(new URL(url, event.url.origin).href).then(
|
||||||
|
async (response) => {
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error("Prerendered response not found");
|
||||||
|
}
|
||||||
|
const prerendered = await response.json();
|
||||||
|
if (prerendered.type === "error") {
|
||||||
|
error(prerendered.status, prerendered.error);
|
||||||
|
}
|
||||||
|
return prerendered.result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
return parse_remote_response(await promise3, state.transport);
|
||||||
|
});
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (state.prerendering?.remote_responses.has(url)) {
|
||||||
|
return (
|
||||||
|
/** @type {Promise<any>} */
|
||||||
|
state.prerendering.remote_responses.get(url)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const promise2 = get_response(
|
||||||
|
__,
|
||||||
|
arg,
|
||||||
|
state,
|
||||||
|
() => run_remote_function(event, state, false, () => validate(arg), fn)
|
||||||
|
);
|
||||||
|
if (state.prerendering) {
|
||||||
|
state.prerendering.remote_responses.set(url, promise2);
|
||||||
|
}
|
||||||
|
const result = await promise2;
|
||||||
|
if (state.prerendering) {
|
||||||
|
const body = { type: "result", result: stringify(result, state.transport) };
|
||||||
|
state.prerendering.dependencies.set(url, {
|
||||||
|
body: JSON.stringify(body),
|
||||||
|
response: json(body)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
})();
|
||||||
|
promise.catch(() => {
|
||||||
|
});
|
||||||
|
return (
|
||||||
|
/** @type {RemoteResource<Output>} */
|
||||||
|
promise
|
||||||
|
);
|
||||||
|
};
|
||||||
|
Object.defineProperty(wrapper, "__", { value: __ });
|
||||||
|
return wrapper;
|
||||||
|
}
|
||||||
|
// @__NO_SIDE_EFFECTS__
|
||||||
|
function query(validate_or_fn, maybe_fn) {
|
||||||
|
const fn = maybe_fn ?? validate_or_fn;
|
||||||
|
const validate = create_validator(validate_or_fn, maybe_fn);
|
||||||
|
const __ = { type: "query", id: "", name: "" };
|
||||||
|
const wrapper = (arg) => {
|
||||||
|
if (prerendering) {
|
||||||
|
throw new Error(
|
||||||
|
`Cannot call query '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
const get_remote_function_result = () => run_remote_function(event, state, false, () => validate(arg), fn);
|
||||||
|
const promise = get_response(__, arg, state, get_remote_function_result);
|
||||||
|
promise.catch(() => {
|
||||||
|
});
|
||||||
|
promise.set = (value) => update_refresh_value(get_refresh_context(__, "set", arg), value);
|
||||||
|
promise.refresh = () => {
|
||||||
|
const refresh_context = get_refresh_context(__, "refresh", arg);
|
||||||
|
const is_immediate_refresh = !refresh_context.cache[refresh_context.cache_key];
|
||||||
|
const value = is_immediate_refresh ? promise : get_remote_function_result();
|
||||||
|
return update_refresh_value(refresh_context, value, is_immediate_refresh);
|
||||||
|
};
|
||||||
|
promise.withOverride = () => {
|
||||||
|
throw new Error(`Cannot call '${__.name}.withOverride()' on the server`);
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
/** @type {RemoteQuery<Output>} */
|
||||||
|
promise
|
||||||
|
);
|
||||||
|
};
|
||||||
|
Object.defineProperty(wrapper, "__", { value: __ });
|
||||||
|
return wrapper;
|
||||||
|
}
|
||||||
|
// @__NO_SIDE_EFFECTS__
|
||||||
|
function batch(validate_or_fn, maybe_fn) {
|
||||||
|
const fn = maybe_fn ?? validate_or_fn;
|
||||||
|
const validate = create_validator(validate_or_fn, maybe_fn);
|
||||||
|
const __ = {
|
||||||
|
type: "query_batch",
|
||||||
|
id: "",
|
||||||
|
name: "",
|
||||||
|
run: async (args, options) => {
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
return run_remote_function(
|
||||||
|
event,
|
||||||
|
state,
|
||||||
|
false,
|
||||||
|
async () => Promise.all(args.map(validate)),
|
||||||
|
async (input) => {
|
||||||
|
const get_result = await fn(input);
|
||||||
|
return Promise.all(
|
||||||
|
input.map(async (arg, i) => {
|
||||||
|
try {
|
||||||
|
return { type: "result", data: get_result(arg, i) };
|
||||||
|
} catch (error2) {
|
||||||
|
return {
|
||||||
|
type: "error",
|
||||||
|
error: await handle_error_and_jsonify(event, state, options, error2),
|
||||||
|
status: error2 instanceof HttpError || error2 instanceof SvelteKitError ? error2.status : 500
|
||||||
|
};
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let batching = { args: [], resolvers: [] };
|
||||||
|
const wrapper = (arg) => {
|
||||||
|
if (prerendering) {
|
||||||
|
throw new Error(
|
||||||
|
`Cannot call query.batch '${__.name}' while prerendering, as prerendered pages need static data. Use 'prerender' from $app/server instead`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const { event, state } = get_request_store();
|
||||||
|
const get_remote_function_result = () => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
batching.args.push(arg);
|
||||||
|
batching.resolvers.push({ resolve, reject });
|
||||||
|
if (batching.args.length > 1) return;
|
||||||
|
setTimeout(async () => {
|
||||||
|
const batched = batching;
|
||||||
|
batching = { args: [], resolvers: [] };
|
||||||
|
try {
|
||||||
|
return await run_remote_function(
|
||||||
|
event,
|
||||||
|
state,
|
||||||
|
false,
|
||||||
|
async () => Promise.all(batched.args.map(validate)),
|
||||||
|
async (input) => {
|
||||||
|
const get_result = await fn(input);
|
||||||
|
for (let i = 0; i < batched.resolvers.length; i++) {
|
||||||
|
try {
|
||||||
|
batched.resolvers[i].resolve(get_result(input[i], i));
|
||||||
|
} catch (error2) {
|
||||||
|
batched.resolvers[i].reject(error2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} catch (error2) {
|
||||||
|
for (const resolver of batched.resolvers) {
|
||||||
|
resolver.reject(error2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const promise = get_response(__, arg, state, get_remote_function_result);
|
||||||
|
promise.catch(() => {
|
||||||
|
});
|
||||||
|
promise.set = (value) => update_refresh_value(get_refresh_context(__, "set", arg), value);
|
||||||
|
promise.refresh = () => {
|
||||||
|
const refresh_context = get_refresh_context(__, "refresh", arg);
|
||||||
|
const is_immediate_refresh = !refresh_context.cache[refresh_context.cache_key];
|
||||||
|
const value = is_immediate_refresh ? promise : get_remote_function_result();
|
||||||
|
return update_refresh_value(refresh_context, value, is_immediate_refresh);
|
||||||
|
};
|
||||||
|
promise.withOverride = () => {
|
||||||
|
throw new Error(`Cannot call '${__.name}.withOverride()' on the server`);
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
/** @type {RemoteQuery<Output>} */
|
||||||
|
promise
|
||||||
|
);
|
||||||
|
};
|
||||||
|
Object.defineProperty(wrapper, "__", { value: __ });
|
||||||
|
return wrapper;
|
||||||
|
}
|
||||||
|
Object.defineProperty(query, "batch", { value: batch, enumerable: true });
|
||||||
|
function get_refresh_context(__, action, arg) {
|
||||||
|
const { state } = get_request_store();
|
||||||
|
const { refreshes } = state;
|
||||||
|
if (!refreshes) {
|
||||||
|
const name = __.type === "query_batch" ? `query.batch '${__.name}'` : `query '${__.name}'`;
|
||||||
|
throw new Error(
|
||||||
|
`Cannot call ${action} on ${name} because it is not executed in the context of a command/form remote function`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const cache = get_cache(__, state);
|
||||||
|
const cache_key = stringify_remote_arg(arg, state.transport);
|
||||||
|
const refreshes_key = create_remote_key(__.id, cache_key);
|
||||||
|
return { __, state, refreshes, refreshes_key, cache, cache_key };
|
||||||
|
}
|
||||||
|
function update_refresh_value({ __, refreshes, refreshes_key, cache, cache_key }, value, is_immediate_refresh = false) {
|
||||||
|
const promise = Promise.resolve(value);
|
||||||
|
if (!is_immediate_refresh) {
|
||||||
|
cache[cache_key] = promise;
|
||||||
|
}
|
||||||
|
if (__.id) {
|
||||||
|
refreshes[refreshes_key] = promise;
|
||||||
|
}
|
||||||
|
return promise.then(() => {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export {
|
||||||
|
command,
|
||||||
|
form,
|
||||||
|
prerender,
|
||||||
|
query
|
||||||
|
};
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"paths": {
|
||||||
|
"$lib": [
|
||||||
|
"../src/lib"
|
||||||
|
],
|
||||||
|
"$lib/*": [
|
||||||
|
"../src/lib/*"
|
||||||
|
],
|
||||||
|
"$app/types": [
|
||||||
|
"./types/index.d.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rootDirs": [
|
||||||
|
"..",
|
||||||
|
"./types"
|
||||||
|
],
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"lib": [
|
||||||
|
"esnext",
|
||||||
|
"DOM",
|
||||||
|
"DOM.Iterable"
|
||||||
|
],
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"module": "esnext",
|
||||||
|
"noEmit": true,
|
||||||
|
"target": "esnext"
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"ambient.d.ts",
|
||||||
|
"non-ambient.d.ts",
|
||||||
|
"./types/**/$types.d.ts",
|
||||||
|
"../vite.config.js",
|
||||||
|
"../vite.config.ts",
|
||||||
|
"../src/**/*.js",
|
||||||
|
"../src/**/*.ts",
|
||||||
|
"../src/**/*.svelte",
|
||||||
|
"../test/**/*.js",
|
||||||
|
"../test/**/*.ts",
|
||||||
|
"../test/**/*.svelte",
|
||||||
|
"../tests/**/*.js",
|
||||||
|
"../tests/**/*.ts",
|
||||||
|
"../tests/**/*.svelte"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"../node_modules/**",
|
||||||
|
"../src/service-worker.js",
|
||||||
|
"../src/service-worker/**/*.js",
|
||||||
|
"../src/service-worker.ts",
|
||||||
|
"../src/service-worker/**/*.ts",
|
||||||
|
"../src/service-worker.d.ts",
|
||||||
|
"../src/service-worker/**/*.d.ts"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"/": [
|
||||||
|
"src/routes/+layout.ts",
|
||||||
|
"src/routes/+layout.ts"
|
||||||
|
],
|
||||||
|
"/items": [
|
||||||
|
"src/routes/items/+page.server.ts",
|
||||||
|
"src/routes/+layout.ts"
|
||||||
|
],
|
||||||
|
"/login": [
|
||||||
|
"src/routes/login/+page.server.ts",
|
||||||
|
"src/routes/+layout.ts"
|
||||||
|
],
|
||||||
|
"/logout": [
|
||||||
|
"src/routes/logout/+page.server.ts",
|
||||||
|
"src/routes/+layout.ts"
|
||||||
|
]
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageParentData = EnsureDefined<LayoutData>;
|
||||||
|
type LayoutRouteId = RouteId | "/" | "/logout" | "/items" | "/login" | null
|
||||||
|
type LayoutParams = RouteParams & { }
|
||||||
|
type LayoutParentData = EnsureDefined<{}>;
|
||||||
|
|
||||||
|
export type PageServerData = null;
|
||||||
|
export type PageData = Expand<PageParentData>;
|
||||||
|
export type PageProps = { params: RouteParams; data: PageData }
|
||||||
|
export type LayoutServerData = null;
|
||||||
|
export type LayoutLoad<OutputData extends OutputDataShape<LayoutParentData> = OutputDataShape<LayoutParentData>> = Kit.Load<LayoutParams, LayoutServerData, LayoutParentData, OutputData, LayoutRouteId>;
|
||||||
|
export type LayoutLoadEvent = Parameters<LayoutLoad>[0];
|
||||||
|
export type LayoutData = Expand<Omit<LayoutParentData, keyof LayoutParentData & EnsureDefined<LayoutServerData>> & OptionalUnion<EnsureDefined<LayoutParentData & EnsureDefined<LayoutServerData>>>>;
|
||||||
|
export type LayoutProps = { params: LayoutParams; data: LayoutData; children: import("svelte").Snippet }
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/access-denied';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerData = null;
|
||||||
|
export type PageData = Expand<PageParentData>;
|
||||||
|
export type PageProps = { params: RouteParams; data: PageData }
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/items';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageServerParentData = EnsureDefined<import('../$types.js').LayoutServerData>;
|
||||||
|
type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerLoad<OutputData extends OutputDataShape<PageServerParentData> = OutputDataShape<PageServerParentData>> = Kit.ServerLoad<RouteParams, PageServerParentData, OutputData, RouteId>;
|
||||||
|
export type PageServerLoadEvent = Parameters<PageServerLoad>[0];
|
||||||
|
type ExcludeActionFailure<T> = T extends Kit.ActionFailure<any> ? never : T extends void ? never : T;
|
||||||
|
type ActionsSuccess<T extends Record<string, (...args: any) => any>> = { [Key in keyof T]: ExcludeActionFailure<Awaited<ReturnType<T[Key]>>>; }[keyof T];
|
||||||
|
type ExtractActionFailure<T> = T extends Kit.ActionFailure<infer X> ? X extends void ? never : X : never;
|
||||||
|
type ActionsFailure<T extends Record<string, (...args: any) => any>> = { [Key in keyof T]: Exclude<ExtractActionFailure<Awaited<ReturnType<T[Key]>>>, void>; }[keyof T];
|
||||||
|
type ActionsExport = typeof import('./proxy+page.server.js').actions
|
||||||
|
export type SubmitFunction = Kit.SubmitFunction<Expand<ActionsSuccess<ActionsExport>>, Expand<ActionsFailure<ActionsExport>>>
|
||||||
|
export type ActionData = Expand<Kit.AwaitedActions<ActionsExport>> | null;
|
||||||
|
export type PageServerData = Expand<OptionalUnion<EnsureDefined<Kit.LoadProperties<Awaited<ReturnType<typeof import('./proxy+page.server.js').load>>>>>>;
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageServerData> & EnsureDefined<PageServerData>>;
|
||||||
|
export type Action<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Action<RouteParams, OutputData, RouteId>
|
||||||
|
export type Actions<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Actions<RouteParams, OutputData, RouteId>
|
||||||
|
export type PageProps = { params: RouteParams; data: PageData; form: ActionData }
|
||||||
|
export type RequestEvent = Kit.RequestEvent<RouteParams, RouteId>;
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
// @ts-nocheck
|
||||||
|
import { fail } from "@sveltejs/kit";
|
||||||
|
import type { Actions, PageServerLoad } from "./$types";
|
||||||
|
import type { StackqItem } from "$lib/types/items";
|
||||||
|
|
||||||
|
const COLLECTION = "Stackq_Items";
|
||||||
|
|
||||||
|
function parseNum(val: unknown): number | undefined {
|
||||||
|
if (val === "" || val === null || val === undefined) return undefined;
|
||||||
|
const n = Number(val);
|
||||||
|
return Number.isFinite(n) ? n : undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseBool(val: unknown): boolean {
|
||||||
|
return val === "on" || val === "true" || val === true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const load = async ({ locals }: Parameters<PageServerLoad>[0]) => {
|
||||||
|
const list = await locals.pb
|
||||||
|
.collection(COLLECTION)
|
||||||
|
.getFullList<StackqItem>({
|
||||||
|
sort: "-created",
|
||||||
|
expand: "Parent",
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error(COLLECTION, err);
|
||||||
|
return [] as StackqItem[];
|
||||||
|
});
|
||||||
|
|
||||||
|
const itemsForParent = list.map((i) => ({ id: i.id, Item: i.Item, SKU: i.SKU }));
|
||||||
|
|
||||||
|
return { items: list, itemsForParent };
|
||||||
|
};
|
||||||
|
|
||||||
|
export const actions = {
|
||||||
|
create: async ({ request, locals }: import('./$types').RequestEvent) => {
|
||||||
|
const form = await request.formData();
|
||||||
|
const Item = (form.get("Item") as string)?.trim() ?? "";
|
||||||
|
const SKU = (form.get("SKU") as string)?.trim() ?? "";
|
||||||
|
const Description = (form.get("Description") as string)?.trim() ?? "";
|
||||||
|
const UOM = (form.get("UOM") as string)?.trim() ?? "";
|
||||||
|
const Cost = parseNum(form.get("Cost"));
|
||||||
|
const Vendor = (form.get("Vendor") as string)?.trim() ?? "";
|
||||||
|
const Catagory = (form.get("Catagory") as string)?.trim() ?? "";
|
||||||
|
const Sub_Catagory = (form.get("Sub_Catagory") as string)?.trim() ?? "";
|
||||||
|
const Has_Parent = parseBool(form.get("Has_Parent"));
|
||||||
|
const Parent = (form.get("Parent") as string)?.trim() ?? "";
|
||||||
|
const Stock = parseBool(form.get("Stock"));
|
||||||
|
|
||||||
|
if (!Item) return fail(400, { error: "Item name is required", form: "create" });
|
||||||
|
|
||||||
|
try {
|
||||||
|
await locals.pb.collection(COLLECTION).create({
|
||||||
|
Item,
|
||||||
|
SKU,
|
||||||
|
Description,
|
||||||
|
UOM: UOM || undefined,
|
||||||
|
Cost: Cost ?? 0,
|
||||||
|
Vendor,
|
||||||
|
Catagory: Catagory || undefined,
|
||||||
|
Sub_Catagory: Sub_Catagory || undefined,
|
||||||
|
Has_Parent: !!Has_Parent,
|
||||||
|
Parent: Parent || null,
|
||||||
|
Stock: !!Stock,
|
||||||
|
});
|
||||||
|
} catch (e: unknown) {
|
||||||
|
const message = e && typeof e === "object" && "message" in e ? String((e as { message: string }).message) : "Create failed";
|
||||||
|
return fail(500, { error: message, form: "create" });
|
||||||
|
}
|
||||||
|
return { success: true };
|
||||||
|
},
|
||||||
|
|
||||||
|
update: async ({ request, locals }: import('./$types').RequestEvent) => {
|
||||||
|
const form = await request.formData();
|
||||||
|
const id = (form.get("id") as string)?.trim();
|
||||||
|
if (!id) return fail(400, { error: "Missing id", form: "update" });
|
||||||
|
|
||||||
|
const Item = (form.get("Item") as string)?.trim() ?? "";
|
||||||
|
const SKU = (form.get("SKU") as string)?.trim() ?? "";
|
||||||
|
const Description = (form.get("Description") as string)?.trim() ?? "";
|
||||||
|
const UOM = (form.get("UOM") as string)?.trim() ?? "";
|
||||||
|
const Cost = parseNum(form.get("Cost"));
|
||||||
|
const Vendor = (form.get("Vendor") as string)?.trim() ?? "";
|
||||||
|
const Catagory = (form.get("Catagory") as string)?.trim() ?? "";
|
||||||
|
const Sub_Catagory = (form.get("Sub_Catagory") as string)?.trim() ?? "";
|
||||||
|
const Has_Parent = parseBool(form.get("Has_Parent"));
|
||||||
|
const Parent = (form.get("Parent") as string)?.trim() ?? "";
|
||||||
|
const Stock = parseBool(form.get("Stock"));
|
||||||
|
|
||||||
|
if (!Item) return fail(400, { error: "Item name is required", form: "update" });
|
||||||
|
|
||||||
|
try {
|
||||||
|
await locals.pb.collection(COLLECTION).update(id, {
|
||||||
|
Item,
|
||||||
|
SKU,
|
||||||
|
Description,
|
||||||
|
UOM: UOM || undefined,
|
||||||
|
Cost: Cost ?? 0,
|
||||||
|
Vendor,
|
||||||
|
Catagory: Catagory || undefined,
|
||||||
|
Sub_Catagory: Sub_Catagory || undefined,
|
||||||
|
Has_Parent: !!Has_Parent,
|
||||||
|
Parent: Parent || null,
|
||||||
|
Stock: !!Stock,
|
||||||
|
});
|
||||||
|
} catch (e: unknown) {
|
||||||
|
const message = e && typeof e === "object" && "message" in e ? String((e as { message: string }).message) : "Update failed";
|
||||||
|
return fail(500, { error: message, form: "update" });
|
||||||
|
}
|
||||||
|
return { success: true };
|
||||||
|
},
|
||||||
|
|
||||||
|
delete: async ({ request, locals }: import('./$types').RequestEvent) => {
|
||||||
|
const form = await request.formData();
|
||||||
|
const id = (form.get("id") as string)?.trim();
|
||||||
|
if (!id) return fail(400, { error: "Missing id", form: "delete" });
|
||||||
|
try {
|
||||||
|
await locals.pb.collection(COLLECTION).delete(id);
|
||||||
|
} catch (e: unknown) {
|
||||||
|
const message = e && typeof e === "object" && "message" in e ? String((e as { message: string }).message) : "Delete failed";
|
||||||
|
return fail(500, { error: message, form: "delete" });
|
||||||
|
}
|
||||||
|
return { success: true };
|
||||||
|
},
|
||||||
|
};
|
||||||
|
;null as any as Actions;
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/login';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageServerParentData = EnsureDefined<import('../$types.js').LayoutServerData>;
|
||||||
|
type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerLoad<OutputData extends OutputDataShape<PageServerParentData> = OutputDataShape<PageServerParentData>> = Kit.ServerLoad<RouteParams, PageServerParentData, OutputData, RouteId>;
|
||||||
|
export type PageServerLoadEvent = Parameters<PageServerLoad>[0];
|
||||||
|
type ExcludeActionFailure<T> = T extends Kit.ActionFailure<any> ? never : T extends void ? never : T;
|
||||||
|
type ActionsSuccess<T extends Record<string, (...args: any) => any>> = { [Key in keyof T]: ExcludeActionFailure<Awaited<ReturnType<T[Key]>>>; }[keyof T];
|
||||||
|
type ExtractActionFailure<T> = T extends Kit.ActionFailure<infer X> ? X extends void ? never : X : never;
|
||||||
|
type ActionsFailure<T extends Record<string, (...args: any) => any>> = { [Key in keyof T]: Exclude<ExtractActionFailure<Awaited<ReturnType<T[Key]>>>, void>; }[keyof T];
|
||||||
|
type ActionsExport = typeof import('./proxy+page.server.js').actions
|
||||||
|
export type SubmitFunction = Kit.SubmitFunction<Expand<ActionsSuccess<ActionsExport>>, Expand<ActionsFailure<ActionsExport>>>
|
||||||
|
export type ActionData = Expand<Kit.AwaitedActions<ActionsExport>> | null;
|
||||||
|
export type PageServerData = Expand<OptionalUnion<EnsureDefined<Kit.LoadProperties<Awaited<ReturnType<typeof import('./proxy+page.server.js').load>>>>>>;
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageServerData> & EnsureDefined<PageServerData>>;
|
||||||
|
export type Action<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Action<RouteParams, OutputData, RouteId>
|
||||||
|
export type Actions<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Actions<RouteParams, OutputData, RouteId>
|
||||||
|
export type PageProps = { params: RouteParams; data: PageData; form: ActionData }
|
||||||
|
export type RequestEvent = Kit.RequestEvent<RouteParams, RouteId>;
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
// @ts-nocheck
|
||||||
|
import { fail, redirect } from "@sveltejs/kit";
|
||||||
|
import type { Actions, PageServerLoad } from "./$types";
|
||||||
|
|
||||||
|
function safeRedirectTo(searchParams: URLSearchParams): string {
|
||||||
|
const to = searchParams.get("redirectTo");
|
||||||
|
if (!to || typeof to !== "string") return "/";
|
||||||
|
if (!to.startsWith("/") || to.startsWith("//")) return "/";
|
||||||
|
return to;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const load = ({ url, locals }: Parameters<PageServerLoad>[0]) => {
|
||||||
|
if (locals.user) {
|
||||||
|
throw redirect(303, safeRedirectTo(url.searchParams));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const actions = {
|
||||||
|
login: async ({ request, locals, url }: import('./$types').RequestEvent) => {
|
||||||
|
const data = await request.formData();
|
||||||
|
const email = (data.get("email") as string)?.trim() ?? "";
|
||||||
|
const password = (data.get("password") as string) ?? "";
|
||||||
|
|
||||||
|
if (!email || !password) {
|
||||||
|
return fail(400, { error: "Email and password are required.", email });
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await locals.pb.collection("users").authWithPassword(email, password);
|
||||||
|
} catch (err: unknown) {
|
||||||
|
const message =
|
||||||
|
err && typeof err === "object" && "message" in err
|
||||||
|
? String((err as { message: string }).message)
|
||||||
|
: "Invalid email or password.";
|
||||||
|
return fail(401, { error: message, email });
|
||||||
|
}
|
||||||
|
|
||||||
|
const redirectTo = safeRedirectTo(url.searchParams);
|
||||||
|
throw redirect(303, redirectTo);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
;null as any as Actions;
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/logout';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageServerParentData = EnsureDefined<import('../$types.js').LayoutServerData>;
|
||||||
|
type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerLoad<OutputData extends OutputDataShape<PageServerParentData> = OutputDataShape<PageServerParentData>> = Kit.ServerLoad<RouteParams, PageServerParentData, OutputData, RouteId>;
|
||||||
|
export type PageServerLoadEvent = Parameters<PageServerLoad>[0];
|
||||||
|
export type ActionData = unknown;
|
||||||
|
export type PageServerData = Expand<OptionalUnion<EnsureDefined<Kit.LoadProperties<Awaited<ReturnType<typeof import('./proxy+page.server.js').load>>>>>>;
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageServerData> & EnsureDefined<PageServerData>>;
|
||||||
|
export type Action<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Action<RouteParams, OutputData, RouteId>
|
||||||
|
export type Actions<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Actions<RouteParams, OutputData, RouteId>
|
||||||
|
export type PageProps = { params: RouteParams; data: PageData; form: ActionData }
|
||||||
|
export type RequestEvent = Kit.RequestEvent<RouteParams, RouteId>;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// @ts-nocheck
|
||||||
|
import { redirect } from "@sveltejs/kit";
|
||||||
|
import type { PageServerLoad } from "./$types";
|
||||||
|
|
||||||
|
export const load = ({ locals }: Parameters<PageServerLoad>[0]) => {
|
||||||
|
locals.pb.authStore.clear();
|
||||||
|
throw redirect(303, "/login");
|
||||||
|
};
|
||||||
@@ -1,2 +1,44 @@
|
|||||||
# Stackq
|
# Stackq
|
||||||
|
|
||||||
|
Basic Svelte 5 + SvelteKit project with [shadcn-svelte](https://www.shadcn-svelte.com/) and [PocketBase](https://pocketbase.ccllc.pro), using Bun.
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- **Svelte 5** with SvelteKit 2
|
||||||
|
- **Tailwind CSS v4** via `@tailwindcss/vite`
|
||||||
|
- **shadcn-svelte** (new-york style, slate base)
|
||||||
|
- **PocketBase** — auth and API at `https://pocketbase.ccllc.pro`
|
||||||
|
|
||||||
|
## Develop
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun install # if needed
|
||||||
|
bun run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Open http://localhost:5173. Unauthenticated users are redirected to `/login`.
|
||||||
|
|
||||||
|
## Login
|
||||||
|
|
||||||
|
- **Login page:** `/login` — email + password, styled like [HRM](https://gitea.ccllc.pro/Cardoza_Construction/HRM).
|
||||||
|
- **Logout:** home page “Log out” or visit `/logout`.
|
||||||
|
- Auth is stored in a `pb_auth` cookie and restored/refreshed in `src/hooks.server.ts`.
|
||||||
|
|
||||||
|
## PocketBase
|
||||||
|
|
||||||
|
- **Client:** `import { pb } from '$lib/pocketbase'` for browser-side API and auth.
|
||||||
|
- **Server:** use `event.locals.pb` and `event.locals.user` in load functions and form actions.
|
||||||
|
- To change the PocketBase URL or auth collection, edit `src/lib/pocketbase.ts` and `src/hooks.server.ts`.
|
||||||
|
|
||||||
|
## Add more components
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bunx shadcn-svelte@latest add <component-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run build
|
||||||
|
bun run preview # preview production build
|
||||||
|
```
|
||||||
|
|||||||
@@ -0,0 +1,359 @@
|
|||||||
|
{
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"configVersion": 1,
|
||||||
|
"workspaces": {
|
||||||
|
"": {
|
||||||
|
"name": "stackq",
|
||||||
|
"dependencies": {
|
||||||
|
"clsx": "^2.1.1",
|
||||||
|
"pocketbase": "^0.26.0",
|
||||||
|
"tailwind-merge": "^3.0.0",
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@internationalized/date": "^3.10.0",
|
||||||
|
"@lucide/svelte": "^0.561.0",
|
||||||
|
"@sveltejs/adapter-auto": "^3.0.0",
|
||||||
|
"@sveltejs/kit": "^2.0.0",
|
||||||
|
"@sveltejs/vite-plugin-svelte": "^5.0.0",
|
||||||
|
"@tailwindcss/vite": "^4.0.0",
|
||||||
|
"bits-ui": "^2.14.4",
|
||||||
|
"svelte": "^5.0.0",
|
||||||
|
"svelte-check": "^4.0.0",
|
||||||
|
"tailwind-variants": "^3.2.2",
|
||||||
|
"tailwindcss": "^4.0.0",
|
||||||
|
"tw-animate-css": "^1.4.0",
|
||||||
|
"typescript": "^5.0.0",
|
||||||
|
"vite": "^6.0.0",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="],
|
||||||
|
|
||||||
|
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="],
|
||||||
|
|
||||||
|
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="],
|
||||||
|
|
||||||
|
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="],
|
||||||
|
|
||||||
|
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="],
|
||||||
|
|
||||||
|
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="],
|
||||||
|
|
||||||
|
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="],
|
||||||
|
|
||||||
|
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="],
|
||||||
|
|
||||||
|
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="],
|
||||||
|
|
||||||
|
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="],
|
||||||
|
|
||||||
|
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="],
|
||||||
|
|
||||||
|
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="],
|
||||||
|
|
||||||
|
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="],
|
||||||
|
|
||||||
|
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="],
|
||||||
|
|
||||||
|
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="],
|
||||||
|
|
||||||
|
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="],
|
||||||
|
|
||||||
|
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="],
|
||||||
|
|
||||||
|
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
|
||||||
|
|
||||||
|
"@floating-ui/core": ["@floating-ui/core@1.7.4", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg=="],
|
||||||
|
|
||||||
|
"@floating-ui/dom": ["@floating-ui/dom@1.7.5", "", { "dependencies": { "@floating-ui/core": "^1.7.4", "@floating-ui/utils": "^0.2.10" } }, "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg=="],
|
||||||
|
|
||||||
|
"@floating-ui/utils": ["@floating-ui/utils@0.2.10", "", {}, "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ=="],
|
||||||
|
|
||||||
|
"@internationalized/date": ["@internationalized/date@3.11.0", "", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-BOx5huLAWhicM9/ZFs84CzP+V3gBW6vlpM02yzsdYC7TGlZJX1OJiEEHcSayF00Z+3jLlm4w79amvSt6RqKN3Q=="],
|
||||||
|
|
||||||
|
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
|
||||||
|
|
||||||
|
"@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="],
|
||||||
|
|
||||||
|
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
|
||||||
|
|
||||||
|
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
|
||||||
|
|
||||||
|
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
|
||||||
|
|
||||||
|
"@lucide/svelte": ["@lucide/svelte@0.561.0", "", { "peerDependencies": { "svelte": "^5" } }, "sha512-vofKV2UFVrKE6I4ewKJ3dfCXSV6iP6nWVmiM83MLjsU91EeJcEg7LoWUABLp/aOTxj1HQNbJD1f3g3L0JQgH9A=="],
|
||||||
|
|
||||||
|
"@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.57.1", "", { "os": "android", "cpu": "arm" }, "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.57.1", "", { "os": "android", "cpu": "arm64" }, "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.57.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.57.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.57.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.57.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.57.1", "", { "os": "linux", "cpu": "arm" }, "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.57.1", "", { "os": "linux", "cpu": "arm" }, "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.57.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.57.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.57.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.57.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.57.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.57.1", "", { "os": "linux", "cpu": "x64" }, "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.57.1", "", { "os": "linux", "cpu": "x64" }, "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.57.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.57.1", "", { "os": "none", "cpu": "arm64" }, "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.57.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.57.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.57.1", "", { "os": "win32", "cpu": "x64" }, "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ=="],
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.57.1", "", { "os": "win32", "cpu": "x64" }, "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA=="],
|
||||||
|
|
||||||
|
"@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
|
||||||
|
|
||||||
|
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.9", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA=="],
|
||||||
|
|
||||||
|
"@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@3.3.1", "", { "dependencies": { "import-meta-resolve": "^4.1.0" }, "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ=="],
|
||||||
|
|
||||||
|
"@sveltejs/kit": ["@sveltejs/kit@2.52.0", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/cookie": "^0.6.0", "acorn": "^8.14.1", "cookie": "^0.6.0", "devalue": "^5.6.2", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^3.0.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.3.3", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-zG+HmJuSF7eC0e7xt2htlOcEMAdEtlVdb7+gAr+ef08EhtwUsjLxcAwBgUCJY3/5p08OVOxVZti91WfXeuLvsg=="],
|
||||||
|
|
||||||
|
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@5.1.1", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.1", "deepmerge": "^4.3.1", "kleur": "^4.1.5", "magic-string": "^0.30.17", "vitefu": "^1.0.6" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ=="],
|
||||||
|
|
||||||
|
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@4.0.1", "", { "dependencies": { "debug": "^4.3.7" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.0", "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw=="],
|
||||||
|
|
||||||
|
"@swc/helpers": ["@swc/helpers@0.5.18", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ=="],
|
||||||
|
|
||||||
|
"@tailwindcss/node": ["@tailwindcss/node@4.1.18", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.18" } }, "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.18", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.18", "@tailwindcss/oxide-darwin-arm64": "4.1.18", "@tailwindcss/oxide-darwin-x64": "4.1.18", "@tailwindcss/oxide-freebsd-x64": "4.1.18", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", "@tailwindcss/oxide-linux-x64-musl": "4.1.18", "@tailwindcss/oxide-wasm32-wasi": "4.1.18", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" } }, "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.18", "", { "os": "android", "cpu": "arm64" }, "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.18", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.18", "", { "os": "darwin", "cpu": "x64" }, "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.18", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18", "", { "os": "linux", "cpu": "arm" }, "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.18", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.0", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.18", "", { "os": "win32", "cpu": "arm64" }, "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.18", "", { "os": "win32", "cpu": "x64" }, "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q=="],
|
||||||
|
|
||||||
|
"@tailwindcss/vite": ["@tailwindcss/vite@4.1.18", "", { "dependencies": { "@tailwindcss/node": "4.1.18", "@tailwindcss/oxide": "4.1.18", "tailwindcss": "4.1.18" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA=="],
|
||||||
|
|
||||||
|
"@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="],
|
||||||
|
|
||||||
|
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
||||||
|
|
||||||
|
"@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="],
|
||||||
|
|
||||||
|
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
||||||
|
|
||||||
|
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
|
||||||
|
|
||||||
|
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
||||||
|
|
||||||
|
"bits-ui": ["bits-ui@2.15.6", "", { "dependencies": { "@floating-ui/core": "^1.7.1", "@floating-ui/dom": "^1.7.1", "esm-env": "^1.1.2", "runed": "^0.35.1", "svelte-toolbelt": "^0.10.6", "tabbable": "^6.2.0" }, "peerDependencies": { "@internationalized/date": "^3.8.1", "svelte": "^5.33.0" } }, "sha512-5WvnYjxNwPxzCkc+KM4hs3iz650pl8iXAp5e3XB4045N30Rw34uQf0DZ1IKc84eM7cS2U/DUIqL8XwU8FNg4hQ=="],
|
||||||
|
|
||||||
|
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
|
||||||
|
|
||||||
|
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
|
||||||
|
|
||||||
|
"cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="],
|
||||||
|
|
||||||
|
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
||||||
|
|
||||||
|
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
|
||||||
|
|
||||||
|
"dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="],
|
||||||
|
|
||||||
|
"detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
|
||||||
|
|
||||||
|
"devalue": ["devalue@5.6.2", "", {}, "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg=="],
|
||||||
|
|
||||||
|
"enhanced-resolve": ["enhanced-resolve@5.19.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg=="],
|
||||||
|
|
||||||
|
"esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
|
||||||
|
|
||||||
|
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
|
||||||
|
|
||||||
|
"esrap": ["esrap@2.2.3", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ=="],
|
||||||
|
|
||||||
|
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
||||||
|
|
||||||
|
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
||||||
|
|
||||||
|
"graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
|
||||||
|
|
||||||
|
"import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="],
|
||||||
|
|
||||||
|
"inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="],
|
||||||
|
|
||||||
|
"is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="],
|
||||||
|
|
||||||
|
"jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="],
|
||||||
|
|
||||||
|
"kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
|
||||||
|
|
||||||
|
"lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="],
|
||||||
|
|
||||||
|
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="],
|
||||||
|
|
||||||
|
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="],
|
||||||
|
|
||||||
|
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="],
|
||||||
|
|
||||||
|
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="],
|
||||||
|
|
||||||
|
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="],
|
||||||
|
|
||||||
|
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="],
|
||||||
|
|
||||||
|
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="],
|
||||||
|
|
||||||
|
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="],
|
||||||
|
|
||||||
|
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="],
|
||||||
|
|
||||||
|
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="],
|
||||||
|
|
||||||
|
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="],
|
||||||
|
|
||||||
|
"locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
|
||||||
|
|
||||||
|
"lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="],
|
||||||
|
|
||||||
|
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
|
||||||
|
|
||||||
|
"mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="],
|
||||||
|
|
||||||
|
"mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
|
||||||
|
|
||||||
|
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||||
|
|
||||||
|
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
||||||
|
|
||||||
|
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
||||||
|
|
||||||
|
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
||||||
|
|
||||||
|
"pocketbase": ["pocketbase@0.26.8", "", {}, "sha512-aQ/ewvS7ncvAE8wxoW10iAZu6ElgbeFpBhKPnCfvRovNzm2gW8u/sQNPGN6vNgVEagz44kK//C61oKjfa+7Low=="],
|
||||||
|
|
||||||
|
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
||||||
|
|
||||||
|
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
||||||
|
|
||||||
|
"rollup": ["rollup@4.57.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A=="],
|
||||||
|
|
||||||
|
"runed": ["runed@0.35.1", "", { "dependencies": { "dequal": "^2.0.3", "esm-env": "^1.0.0", "lz-string": "^1.5.0" }, "peerDependencies": { "@sveltejs/kit": "^2.21.0", "svelte": "^5.7.0" }, "optionalPeers": ["@sveltejs/kit"] }, "sha512-2F4Q/FZzbeJTFdIS/PuOoPRSm92sA2LhzTnv6FXhCoENb3huf5+fDuNOg1LNvGOouy3u/225qxmuJvcV3IZK5Q=="],
|
||||||
|
|
||||||
|
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
|
||||||
|
|
||||||
|
"set-cookie-parser": ["set-cookie-parser@3.0.1", "", {}, "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q=="],
|
||||||
|
|
||||||
|
"sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="],
|
||||||
|
|
||||||
|
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
||||||
|
|
||||||
|
"style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="],
|
||||||
|
|
||||||
|
"svelte": ["svelte@5.51.3", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.6.2", "esm-env": "^1.2.1", "esrap": "^2.2.2", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-3+ni7BMjiEQeMCa1fDQzHy2ESAebgQDVOTuE4jlj2/QOAB2grRta8ew80p95miWE+ZmimpL7B3t9SSO4rv0aqQ=="],
|
||||||
|
|
||||||
|
"svelte-check": ["svelte-check@4.4.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-gB3FdEPb8tPO3Y7Dzc6d/Pm/KrXAhK+0Fk+LkcysVtupvAh6Y/IrBCEZNupq57oh0hcwlxCUamu/rq7GtvfSEg=="],
|
||||||
|
|
||||||
|
"svelte-toolbelt": ["svelte-toolbelt@0.10.6", "", { "dependencies": { "clsx": "^2.1.1", "runed": "^0.35.1", "style-to-object": "^1.0.8" }, "peerDependencies": { "svelte": "^5.30.2" } }, "sha512-YWuX+RE+CnWYx09yseAe4ZVMM7e7GRFZM6OYWpBKOb++s+SQ8RBIMMe+Bs/CznBMc0QPLjr+vDBxTAkozXsFXQ=="],
|
||||||
|
|
||||||
|
"tabbable": ["tabbable@6.4.0", "", {}, "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg=="],
|
||||||
|
|
||||||
|
"tailwind-merge": ["tailwind-merge@3.4.1", "", {}, "sha512-2OA0rFqWOkITEAOFWSBSApYkDeH9t2B3XSJuI4YztKBzK3mX0737A2qtxDZ7xkw9Zfh0bWl+r34sF3HXV+Ig7Q=="],
|
||||||
|
|
||||||
|
"tailwind-variants": ["tailwind-variants@3.2.2", "", { "peerDependencies": { "tailwind-merge": ">=3.0.0", "tailwindcss": "*" }, "optionalPeers": ["tailwind-merge"] }, "sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg=="],
|
||||||
|
|
||||||
|
"tailwindcss": ["tailwindcss@4.1.18", "", {}, "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw=="],
|
||||||
|
|
||||||
|
"tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="],
|
||||||
|
|
||||||
|
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
||||||
|
|
||||||
|
"totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="],
|
||||||
|
|
||||||
|
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||||
|
|
||||||
|
"tw-animate-css": ["tw-animate-css@1.4.0", "", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="],
|
||||||
|
|
||||||
|
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||||
|
|
||||||
|
"vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="],
|
||||||
|
|
||||||
|
"vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="],
|
||||||
|
|
||||||
|
"zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.8.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.8.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="],
|
||||||
|
|
||||||
|
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://shadcn-svelte.com/schema.json",
|
||||||
|
"style": "new-york",
|
||||||
|
"tailwind": {
|
||||||
|
"css": "src/routes/layout.css",
|
||||||
|
"baseColor": "slate"
|
||||||
|
},
|
||||||
|
"aliases": {
|
||||||
|
"components": "$lib/components",
|
||||||
|
"utils": "$lib/utils",
|
||||||
|
"ui": "$lib/components/ui",
|
||||||
|
"hooks": "$lib/hooks",
|
||||||
|
"lib": "$lib"
|
||||||
|
},
|
||||||
|
"typescript": true,
|
||||||
|
"registry": "https://shadcn-svelte.com/registry"
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../acorn/bin/acorn
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../@esbuild/darwin-arm64/bin/esbuild
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../jiti/lib/jiti-cli.mjs
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../lz-string/bin/bin.js
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../nanoid/bin/nanoid.cjs
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../rollup/dist/bin/rollup
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../svelte-check/bin/svelte-check
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../@sveltejs/kit/svelte-kit.js
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user