diff --git a/backend/cmd/server/embed/_app/env.js b/backend/cmd/server/embed/_app/env.js deleted file mode 100644 index f5427da..0000000 --- a/backend/cmd/server/embed/_app/env.js +++ /dev/null @@ -1 +0,0 @@ -export const env={} \ No newline at end of file diff --git a/backend/cmd/server/embed/_app/immutable/assets/0.DkgBtk4_.css b/backend/cmd/server/embed/_app/immutable/assets/0.DkgBtk4_.css deleted file mode 100644 index 792fc3f..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/0.DkgBtk4_.css +++ /dev/null @@ -1 +0,0 @@ -.loading.svelte-12qhfyh{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#666}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#f5f5f5}.app.svelte-12qhfyh{min-height:100vh}header.svelte-12qhfyh{background:#2c3e50;color:#fff;padding:.75rem 2rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}h1.svelte-12qhfyh{margin:0;font-size:1.25rem}nav.svelte-12qhfyh{display:flex;gap:.5rem;flex:1}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#ecf0f1;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;transition:background .2s}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#34495e}main.svelte-12qhfyh{padding:2rem;max-width:1400px;margin:0 auto}.user-menu.svelte-12qhfyh{display:flex;align-items:center;gap:1rem;font-size:.9rem}.user-menu.svelte-12qhfyh span:where(.svelte-12qhfyh){color:#ecf0f1}.user-menu.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#ecf0f1;text-decoration:none;padding:.375rem .75rem;border:1px solid #7f8c8d;border-radius:4px;font-size:.85rem}.user-menu.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#34495e}.user-menu.svelte-12qhfyh button:where(.svelte-12qhfyh){background:transparent;border:1px solid #7f8c8d;color:#ecf0f1;padding:.375rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem}.user-menu.svelte-12qhfyh button:where(.svelte-12qhfyh):hover{background:#34495e} diff --git a/backend/cmd/server/embed/_app/immutable/assets/10.Qar-kS8x.css b/backend/cmd/server/embed/_app/immutable/assets/10.Qar-kS8x.css deleted file mode 100644 index bbde314..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/10.Qar-kS8x.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-15uyvzd{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.back.svelte-15uyvzd{color:#3498db;text-decoration:none;font-size:.9rem}.back.svelte-15uyvzd:hover{text-decoration:underline}.header.svelte-15uyvzd h2:where(.svelte-15uyvzd){flex:1;margin:0}table.svelte-15uyvzd{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-15uyvzd,td.svelte-15uyvzd{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-15uyvzd{background:#f8f9fa;font-weight:600}button.svelte-15uyvzd{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-15uyvzd{background:#e74c3c}.modal-backdrop.svelte-15uyvzd{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;border:none;cursor:pointer;z-index:100}.modal.svelte-15uyvzd{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:2rem;border-radius:8px;min-width:400px;z-index:101}.modal.svelte-15uyvzd h3:where(.svelte-15uyvzd){margin-top:0}.modal.svelte-15uyvzd form:where(.svelte-15uyvzd){display:flex;flex-direction:column;gap:1rem}.modal.svelte-15uyvzd label:where(.svelte-15uyvzd){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-15uyvzd input:where(.svelte-15uyvzd){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-15uyvzd{display:flex;gap:1rem;justify-content:flex-end} diff --git a/backend/cmd/server/embed/_app/immutable/assets/11.D38O3Xxc.css b/backend/cmd/server/embed/_app/immutable/assets/11.D38O3Xxc.css deleted file mode 100644 index 14eb981..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/11.D38O3Xxc.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-oa5z6t{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.back.svelte-oa5z6t{color:#3498db;text-decoration:none;font-size:.9rem}.back.svelte-oa5z6t:hover{text-decoration:underline}.header.svelte-oa5z6t h2:where(.svelte-oa5z6t){flex:1;margin:0}table.svelte-oa5z6t{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-oa5z6t,td.svelte-oa5z6t{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-oa5z6t{background:#f8f9fa;font-weight:600}button.svelte-oa5z6t{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-oa5z6t{background:#e74c3c}.modal-backdrop.svelte-oa5z6t{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;border:none;cursor:pointer;z-index:100}.modal.svelte-oa5z6t{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:2rem;border-radius:8px;min-width:400px;z-index:101}.modal.svelte-oa5z6t h3:where(.svelte-oa5z6t){margin-top:0}.modal.svelte-oa5z6t form:where(.svelte-oa5z6t){display:flex;flex-direction:column;gap:1rem}.modal.svelte-oa5z6t label:where(.svelte-oa5z6t){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-oa5z6t input:where(.svelte-oa5z6t){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-oa5z6t{display:flex;gap:1rem;justify-content:flex-end} diff --git a/backend/cmd/server/embed/_app/immutable/assets/12.DQdHIvb_.css b/backend/cmd/server/embed/_app/immutable/assets/12.DQdHIvb_.css deleted file mode 100644 index 3f6263d..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/12.DQdHIvb_.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-1lsf4ps{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.controls.svelte-1lsf4ps{display:flex;gap:1rem;align-items:center}.controls.svelte-1lsf4ps label:where(.svelte-1lsf4ps){display:flex;align-items:center;gap:.5rem}.controls.svelte-1lsf4ps select:where(.svelte-1lsf4ps),.controls.svelte-1lsf4ps input:where(.svelte-1lsf4ps){padding:.5rem;border:1px solid #ddd;border-radius:4px}button.svelte-1lsf4ps{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}.log-container.svelte-1lsf4ps{background:#1a1a2e;color:#eee;padding:1rem;border-radius:8px;max-height:600px;overflow-y:auto;font-family:monospace;font-size:.85rem}.log-entry.svelte-1lsf4ps{padding:.25rem 0;border-bottom:1px solid #333}.log-entry.svelte-1lsf4ps:last-child{border-bottom:none}.timestamp.svelte-1lsf4ps{color:#888;margin-right:.5rem}.priority.svelte-1lsf4ps{margin-right:.5rem;font-weight:700}.log-entry.error.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#e74c3c}.log-entry.warning.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#f39c12}.log-entry.info.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#3498db}.error.svelte-1lsf4ps{color:#e74c3c} diff --git a/backend/cmd/server/embed/_app/immutable/assets/13.DnP_H9DZ.css b/backend/cmd/server/embed/_app/immutable/assets/13.DnP_H9DZ.css deleted file mode 100644 index 5caa7e3..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/13.DnP_H9DZ.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-qegr5c{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}table.svelte-qegr5c{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-qegr5c,td.svelte-qegr5c{padding:.75rem;text-align:left;border-bottom:1px solid #eee;font-size:.9rem}th.svelte-qegr5c{background:#f8f9fa;font-weight:600}.id.svelte-qegr5c{font-family:monospace;font-size:.8rem}.reason.svelte-qegr5c{color:#e74c3c}button.svelte-qegr5c{padding:.25rem .5rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff;font-size:.8rem;margin-right:.25rem}button.danger.svelte-qegr5c{background:#e74c3c}.error.svelte-qegr5c{color:#e74c3c} diff --git a/backend/cmd/server/embed/_app/immutable/assets/2.By2d6Bxb.css b/backend/cmd/server/embed/_app/immutable/assets/2.By2d6Bxb.css deleted file mode 100644 index f2098ff..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/2.By2d6Bxb.css +++ /dev/null @@ -1 +0,0 @@ -.stats-grid.svelte-1uha8ag{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:2rem}.stat-card.svelte-1uha8ag{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.stat-card.warning.svelte-1uha8ag{border:2px solid #e74c3c}.stat-card.svelte-1uha8ag h3:where(.svelte-1uha8ag){font-size:2.5rem;margin:0;color:#2c3e50}.stat-card.svelte-1uha8ag p:where(.svelte-1uha8ag){margin:.5rem 0 0;color:#7f8c8d}.warning.svelte-1uha8ag h3:where(.svelte-1uha8ag){color:#e74c3c} diff --git a/backend/cmd/server/embed/_app/immutable/assets/4.CG2X--Z8.css b/backend/cmd/server/embed/_app/immutable/assets/4.CG2X--Z8.css deleted file mode 100644 index ea80681..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/4.CG2X--Z8.css +++ /dev/null @@ -1 +0,0 @@ -.page-container.svelte-imhhoo{min-height:100vh;background:#f5f7fa}.header.svelte-imhhoo{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.header-content.svelte-imhhoo{max-width:800px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header.svelte-imhhoo h1:where(.svelte-imhhoo){margin:0;font-size:1.5rem;color:#2c3e50}.user-info.svelte-imhhoo{display:flex;align-items:center;gap:1rem}.logout.svelte-imhhoo{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.content.svelte-imhhoo{max-width:500px;margin:2rem auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.error.svelte-imhhoo{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem}.success.svelte-imhhoo{background:#efe;color:#060;padding:.75rem;border-radius:4px;margin-bottom:1rem}form.svelte-imhhoo{display:flex;flex-direction:column;gap:1rem}label.svelte-imhhoo{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#555}input.svelte-imhhoo{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}input.svelte-imhhoo:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button.svelte-imhhoo{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;margin-top:.5rem}button.svelte-imhhoo:hover:not(:disabled){opacity:.9}button.svelte-imhhoo:disabled{opacity:.6;cursor:not-allowed}.links.svelte-imhhoo{margin-top:1.5rem;text-align:center}.links.svelte-imhhoo a:where(.svelte-imhhoo){color:#667eea;text-decoration:none}.links.svelte-imhhoo a:where(.svelte-imhhoo):hover{text-decoration:underline} diff --git a/backend/cmd/server/embed/_app/immutable/assets/5.YbbfqdJp.css b/backend/cmd/server/embed/_app/immutable/assets/5.YbbfqdJp.css deleted file mode 100644 index 47f5e83..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/5.YbbfqdJp.css +++ /dev/null @@ -1 +0,0 @@ -.page-container.svelte-1s1ktxm{min-height:100vh;background:#f5f7fa}.header.svelte-1s1ktxm{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center}.header.svelte-1s1ktxm h1:where(.svelte-1s1ktxm){margin:0;font-size:1.5rem;color:#2c3e50}.user-info.svelte-1s1ktxm{display:flex;align-items:center;gap:1rem}.logout.svelte-1s1ktxm{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.content.svelte-1s1ktxm{max-width:800px;margin:2rem auto;padding:0 1rem}.card.svelte-1s1ktxm{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.card.svelte-1s1ktxm h2:where(.svelte-1s1ktxm){margin:0 0 1rem;color:#2c3e50;font-size:1.2rem}.info-row.svelte-1s1ktxm{display:flex;padding:.75rem 0;border-bottom:1px solid #eee}.info-row.svelte-1s1ktxm:last-child{border-bottom:none}.label.svelte-1s1ktxm{font-weight:500;color:#666;width:120px}.value.svelte-1s1ktxm{color:#2c3e50}.actions.svelte-1s1ktxm{display:flex;gap:1rem;flex-wrap:wrap}.action-btn.svelte-1s1ktxm{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:opacity .2s}.action-btn.svelte-1s1ktxm:hover{opacity:.9} diff --git a/backend/cmd/server/embed/_app/immutable/assets/6.w_qTFDpy.css b/backend/cmd/server/embed/_app/immutable/assets/6.w_qTFDpy.css deleted file mode 100644 index 4f2c471..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/6.w_qTFDpy.css +++ /dev/null @@ -1 +0,0 @@ -.login-container.svelte-15sczaz{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-card.svelte-15sczaz{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}h1.svelte-15sczaz{text-align:center;margin:0 0 1rem;color:#2c3e50}.info.svelte-15sczaz{color:#666;text-align:center;margin-bottom:1.5rem;font-size:.9rem}.error.svelte-15sczaz{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.success.svelte-15sczaz{background:#efe;color:#060;padding:1rem;border-radius:4px;margin-bottom:1rem;text-align:center}.success.svelte-15sczaz p:where(.svelte-15sczaz){margin:.5rem 0}form.svelte-15sczaz{display:flex;flex-direction:column;gap:1rem}label.svelte-15sczaz{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#555}input.svelte-15sczaz{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}input.svelte-15sczaz:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button.svelte-15sczaz{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s}button.svelte-15sczaz:hover:not(:disabled){opacity:.9}button.svelte-15sczaz:disabled{opacity:.6;cursor:not-allowed}.links.svelte-15sczaz{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px solid #eee}.links.svelte-15sczaz a:where(.svelte-15sczaz){color:#667eea;text-decoration:none;font-size:.9rem}.links.svelte-15sczaz a:where(.svelte-15sczaz):hover{text-decoration:underline} diff --git a/backend/cmd/server/embed/_app/immutable/assets/7.Bq7myTre.css b/backend/cmd/server/embed/_app/immutable/assets/7.Bq7myTre.css deleted file mode 100644 index 5e0a5f3..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/7.Bq7myTre.css +++ /dev/null @@ -1 +0,0 @@ -.login-container.svelte-1i2smtp{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2c3e50,#34495e)}.login-card.svelte-1i2smtp{background:#fff;padding:3rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}h1.svelte-1i2smtp{margin:0;text-align:center;color:#2c3e50;font-size:2rem}.subtitle.svelte-1i2smtp{text-align:center;color:#7f8c8d;margin:.5rem 0 2rem}.error.svelte-1i2smtp{background:#fee;border:1px solid #fcc;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}form.svelte-1i2smtp{display:flex;flex-direction:column;gap:1.25rem}label.svelte-1i2smtp{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#2c3e50}input.svelte-1i2smtp{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}input.svelte-1i2smtp:focus{outline:none;border-color:#3498db}.forgot.svelte-1i2smtp{text-align:right;margin-top:-.5rem}.forgot.svelte-1i2smtp a:where(.svelte-1i2smtp){color:#3498db;text-decoration:none;font-size:.9rem}.forgot.svelte-1i2smtp a:where(.svelte-1i2smtp):hover{text-decoration:underline}button.svelte-1i2smtp{padding:.875rem;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:.5rem}button.svelte-1i2smtp:hover:not(:disabled){background:#2980b9}button.svelte-1i2smtp:disabled{opacity:.7;cursor:not-allowed} diff --git a/backend/cmd/server/embed/_app/immutable/assets/9.Ci0QlAaW.css b/backend/cmd/server/embed/_app/immutable/assets/9.Ci0QlAaW.css deleted file mode 100644 index 6ef841b..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/9.Ci0QlAaW.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-lb8x40{margin-bottom:2rem}.back.svelte-lb8x40{display:inline-block;margin-bottom:1rem;color:#3498db;text-decoration:none}.back.svelte-lb8x40:hover{text-decoration:underline}.error.svelte-lb8x40{color:#e74c3c}.cards-grid.svelte-lb8x40{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.card.svelte-lb8x40{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.card.svelte-lb8x40:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.card.svelte-lb8x40 h3:where(.svelte-lb8x40){font-size:3rem;margin:0;color:#3498db}.card.svelte-lb8x40 p:where(.svelte-lb8x40){margin:.5rem 0 0;color:#7f8c8d;font-size:1.1rem} diff --git a/backend/cmd/server/embed/_app/version.json b/backend/cmd/server/embed/_app/version.json deleted file mode 100644 index f1bcdd4..0000000 --- a/backend/cmd/server/embed/_app/version.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"1774133205006"} \ No newline at end of file diff --git a/backend/cmd/server/embed/favicon.png b/backend/cmd/server/embed/favicon.png deleted file mode 100644 index 47ce666..0000000 --- a/backend/cmd/server/embed/favicon.png +++ /dev/null @@ -1,4 +0,0 @@ - - - V - diff --git a/backend/cmd/server/embed/index.html b/backend/cmd/server/embed/index.html deleted file mode 100644 index 968c4ad..0000000 --- a/backend/cmd/server/embed/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- -
- - diff --git a/frontend/.svelte-kit/ambient.d.ts b/frontend/.svelte-kit/ambient.d.ts deleted file mode 100644 index dff2444..0000000 --- a/frontend/.svelte-kit/ambient.d.ts +++ /dev/null @@ -1,336 +0,0 @@ - -// this file is generated — do not edit it - - -/// - -/** - * This module provides access to environment variables that are injected _statically_ into your bundle at build time and are limited to _private_ access. - * - * | | Runtime | Build time | - * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ | - * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) | - * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) | - * - * Static environment variables are [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env` at build time and then statically injected into your bundle at build time, enabling optimisations like dead code elimination. - * - * **_Private_ access:** - * - * - 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) - * - * For example, given the following build time environment: - * - * ```env - * ENVIRONMENT=production - * PUBLIC_BASE_URL=http://site.com - * ``` - * - * With the default `publicPrefix` and `privatePrefix`: - * - * ```ts - * import { ENVIRONMENT, PUBLIC_BASE_URL } from '$env/static/private'; - * - * console.log(ENVIRONMENT); // => "production" - * console.log(PUBLIC_BASE_URL); // => throws error during build - * ``` - * - * The above values will be the same _even if_ different values for `ENVIRONMENT` or `PUBLIC_BASE_URL` are set at runtime, as they are statically replaced in your code with their build time values. - */ -declare module '$env/static/private' { - export const SHELL: string; - export const npm_command: string; - export const LSCOLORS: string; - export const SESSION_MANAGER: string; - export const QT_ACCESSIBILITY: string; - export const COLORTERM: string; - export const XDG_CONFIG_DIRS: string; - export const LESS: string; - export const XDG_SESSION_PATH: string; - export const GNOME_DESKTOP_SESSION_ID: string; - export const GTK_IM_MODULE: string; - export const QT_IM_MODULES: string; - export const GNOME_KEYRING_CONTROL: string; - export const LANGUAGE: string; - export const NODE: string; - export const SSH_AUTH_SOCK: string; - export const AGENT: string; - export const npm_config_local_prefix: string; - export const XMODIFIERS: string; - export const DESKTOP_SESSION: string; - export const GTK_MODULES: string; - export const XDG_SEAT: string; - export const PWD: string; - export const XDG_SESSION_DESKTOP: string; - export const LOGNAME: string; - export const XDG_SESSION_TYPE: string; - export const GPG_AGENT_INFO: string; - export const _: string; - export const XAUTHORITY: string; - export const XDG_GREETER_DATA_DIR: string; - export const GDM_LANG: string; - export const HOME: string; - export const OPENCODE: string; - export const LANG: string; - export const LS_COLORS: string; - export const XDG_CURRENT_DESKTOP: string; - export const npm_package_version: string; - export const VTE_VERSION: string; - export const DEBEMAIL: string; - export const XDG_SEAT_PATH: string; - export const GNOME_TERMINAL_SCREEN: string; - export const CLUTTER_IM_MODULE: string; - export const MFLAGS: string; - export const npm_lifecycle_script: string; - export const XDG_SESSION_CLASS: string; - export const MAKEFLAGS: string; - export const TERM: string; - export const npm_package_name: string; - export const ZSH: string; - export const GTK_OVERLAY_SCROLLING: string; - export const LIBVIRT_DEFAULT_URI: string; - export const USER: string; - export const GNOME_TERMINAL_SERVICE: string; - export const DISPLAY: string; - export const npm_lifecycle_event: string; - export const SHLVL: string; - export const PAGER: string; - export const MAKELEVEL: string; - export const QT_IM_MODULE: string; - export const XDG_VTNR: string; - export const XDG_SESSION_ID: string; - export const npm_config_user_agent: string; - export const npm_execpath: string; - export const XDG_RUNTIME_DIR: string; - export const npm_package_json: string; - export const BUN_INSTALL: string; - export const EMAIL: string; - export const GTK3_MODULES: string; - export const XDG_DATA_DIRS: string; - export const PATH: string; - export const GDMSESSION: string; - export const DBUS_SESSION_BUS_ADDRESS: string; - export const THOR_MERGE: string; - export const npm_node_execpath: string; - export const OLDPWD: string; - export const NODE_ENV: string; -} - -/** - * This module provides access to environment variables that are injected _statically_ into your bundle at build time and are _publicly_ accessible. - * - * | | Runtime | Build time | - * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ | - * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) | - * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) | - * - * Static environment variables are [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env` at build time and then statically injected into your bundle at build time, enabling optimisations like dead code elimination. - * - * **_Public_ access:** - * - * - This module _can_ be imported into client-side code - * - **Only** variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`) are included - * - * For example, given the following build time environment: - * - * ```env - * ENVIRONMENT=production - * PUBLIC_BASE_URL=http://site.com - * ``` - * - * With the default `publicPrefix` and `privatePrefix`: - * - * ```ts - * import { ENVIRONMENT, PUBLIC_BASE_URL } from '$env/static/public'; - * - * console.log(ENVIRONMENT); // => throws error during build - * console.log(PUBLIC_BASE_URL); // => "http://site.com" - * ``` - * - * The above values will be the same _even if_ different values for `ENVIRONMENT` or `PUBLIC_BASE_URL` are set at runtime, as they are statically replaced in your code with their build time values. - */ -declare module '$env/static/public' { - -} - -/** - * This module provides access to environment variables set _dynamically_ at runtime and that are limited to _private_ access. - * - * | | Runtime | Build time | - * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ | - * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) | - * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) | - * - * Dynamic environment variables are 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`. - * - * **_Private_ access:** - * - * - This module cannot be imported into client-side code - * - This module 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) - * - * > [!NOTE] In `dev`, `$env/dynamic` includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter. - * - * > [!NOTE] To get correct types, 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: - * > - * > ```env - * > MY_FEATURE_FLAG= - * > ``` - * > - * > You can override `.env` values from the command line like so: - * > - * > ```sh - * > MY_FEATURE_FLAG="enabled" npm run dev - * > ``` - * - * For example, given the following runtime environment: - * - * ```env - * ENVIRONMENT=production - * PUBLIC_BASE_URL=http://site.com - * ``` - * - * With the default `publicPrefix` and `privatePrefix`: - * - * ```ts - * import { env } from '$env/dynamic/private'; - * - * console.log(env.ENVIRONMENT); // => "production" - * console.log(env.PUBLIC_BASE_URL); // => undefined - * ``` - */ -declare module '$env/dynamic/private' { - export const env: { - SHELL: string; - npm_command: string; - LSCOLORS: string; - SESSION_MANAGER: string; - QT_ACCESSIBILITY: string; - COLORTERM: string; - XDG_CONFIG_DIRS: string; - LESS: string; - XDG_SESSION_PATH: string; - GNOME_DESKTOP_SESSION_ID: string; - GTK_IM_MODULE: string; - QT_IM_MODULES: string; - GNOME_KEYRING_CONTROL: string; - LANGUAGE: string; - NODE: string; - SSH_AUTH_SOCK: string; - AGENT: string; - npm_config_local_prefix: string; - XMODIFIERS: string; - DESKTOP_SESSION: string; - GTK_MODULES: string; - XDG_SEAT: string; - PWD: string; - XDG_SESSION_DESKTOP: string; - LOGNAME: string; - XDG_SESSION_TYPE: string; - GPG_AGENT_INFO: string; - _: string; - XAUTHORITY: string; - XDG_GREETER_DATA_DIR: string; - GDM_LANG: string; - HOME: string; - OPENCODE: string; - LANG: string; - LS_COLORS: string; - XDG_CURRENT_DESKTOP: string; - npm_package_version: string; - VTE_VERSION: string; - DEBEMAIL: string; - XDG_SEAT_PATH: string; - GNOME_TERMINAL_SCREEN: string; - CLUTTER_IM_MODULE: string; - MFLAGS: string; - npm_lifecycle_script: string; - XDG_SESSION_CLASS: string; - MAKEFLAGS: string; - TERM: string; - npm_package_name: string; - ZSH: string; - GTK_OVERLAY_SCROLLING: string; - LIBVIRT_DEFAULT_URI: string; - USER: string; - GNOME_TERMINAL_SERVICE: string; - DISPLAY: string; - npm_lifecycle_event: string; - SHLVL: string; - PAGER: string; - MAKELEVEL: string; - QT_IM_MODULE: string; - XDG_VTNR: string; - XDG_SESSION_ID: string; - npm_config_user_agent: string; - npm_execpath: string; - XDG_RUNTIME_DIR: string; - npm_package_json: string; - BUN_INSTALL: string; - EMAIL: string; - GTK3_MODULES: string; - XDG_DATA_DIRS: string; - PATH: string; - GDMSESSION: string; - DBUS_SESSION_BUS_ADDRESS: string; - THOR_MERGE: string; - npm_node_execpath: string; - OLDPWD: string; - NODE_ENV: string; - [key: `PUBLIC_${string}`]: undefined; - [key: `${string}`]: string | undefined; - } -} - -/** - * This module provides access to environment variables set _dynamically_ at runtime and that are _publicly_ accessible. - * - * | | Runtime | Build time | - * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ | - * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) | - * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) | - * - * Dynamic environment variables are 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`. - * - * **_Public_ access:** - * - * - This module _can_ be imported into client-side code - * - **Only** variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`) are included - * - * > [!NOTE] In `dev`, `$env/dynamic` includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter. - * - * > [!NOTE] To get correct types, 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: - * > - * > ```env - * > MY_FEATURE_FLAG= - * > ``` - * > - * > You can override `.env` values from the command line like so: - * > - * > ```sh - * > MY_FEATURE_FLAG="enabled" npm run dev - * > ``` - * - * For example, given the following runtime environment: - * - * ```env - * ENVIRONMENT=production - * PUBLIC_BASE_URL=http://example.com - * ``` - * - * With the default `publicPrefix` and `privatePrefix`: - * - * ```ts - * import { env } from '$env/dynamic/public'; - * console.log(env.ENVIRONMENT); // => undefined, not public - * console.log(env.PUBLIC_BASE_URL); // => "http://example.com" - * ``` - * - * ``` - * - * ``` - */ -declare module '$env/dynamic/public' { - export const env: { - [key: `PUBLIC_${string}`]: string | undefined; - } -} diff --git a/frontend/.svelte-kit/generated/client-optimized/app.js b/frontend/.svelte-kit/generated/client-optimized/app.js deleted file mode 100644 index 77fc2a6..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/app.js +++ /dev/null @@ -1,53 +0,0 @@ -export { matchers } from './matchers.js'; - -export const nodes = [ - () => import('./nodes/0'), - () => import('./nodes/1'), - () => import('./nodes/2'), - () => import('./nodes/3'), - () => import('./nodes/4'), - () => import('./nodes/5'), - () => import('./nodes/6'), - () => import('./nodes/7'), - () => import('./nodes/8'), - () => import('./nodes/9'), - () => import('./nodes/10'), - () => import('./nodes/11'), - () => import('./nodes/12'), - () => import('./nodes/13'), - () => import('./nodes/14') -]; - -export const server_loads = []; - -export const dictionary = { - "/": [2], - "/aliases": [3], - "/auth/change-password": [4], - "/auth/dashboard": [5], - "/auth/forgot": [6], - "/auth/login": [7], - "/domains": [8], - "/domains/[name]": [9], - "/domains/[name]/aliases": [10], - "/domains/[name]/users": [11], - "/logs": [12], - "/queue": [13], - "/users": [14] - }; - -export const hooks = { - handleError: (({ error }) => { console.error(error) }), - - reroute: (() => {}), - transport: {} -}; - -export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode])); -export const encoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.encode])); - -export const hash = false; - -export const decode = (type, value) => decoders[type](value); - -export { default as root } from '../root.js'; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/matchers.js b/frontend/.svelte-kit/generated/client-optimized/matchers.js deleted file mode 100644 index f6bd30a..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/matchers.js +++ /dev/null @@ -1 +0,0 @@ -export const matchers = {}; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/0.js b/frontend/.svelte-kit/generated/client-optimized/nodes/0.js deleted file mode 100644 index fed1375..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/+layout.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/1.js b/frontend/.svelte-kit/generated/client-optimized/nodes/1.js deleted file mode 100644 index bf58bad..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/1.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/10.js b/frontend/.svelte-kit/generated/client-optimized/nodes/10.js deleted file mode 100644 index 6e3e843..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/10.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/[name]/aliases/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/11.js b/frontend/.svelte-kit/generated/client-optimized/nodes/11.js deleted file mode 100644 index 5d78636..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/11.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/[name]/users/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/12.js b/frontend/.svelte-kit/generated/client-optimized/nodes/12.js deleted file mode 100644 index 74546b8..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/12.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/logs/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/13.js b/frontend/.svelte-kit/generated/client-optimized/nodes/13.js deleted file mode 100644 index 2c7481c..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/13.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/queue/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/14.js b/frontend/.svelte-kit/generated/client-optimized/nodes/14.js deleted file mode 100644 index 81499df..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/14.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/users/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/2.js b/frontend/.svelte-kit/generated/client-optimized/nodes/2.js deleted file mode 100644 index 1cb4f85..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/2.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/3.js b/frontend/.svelte-kit/generated/client-optimized/nodes/3.js deleted file mode 100644 index 282cdf9..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/aliases/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/4.js b/frontend/.svelte-kit/generated/client-optimized/nodes/4.js deleted file mode 100644 index 38113d5..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/change-password/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/5.js b/frontend/.svelte-kit/generated/client-optimized/nodes/5.js deleted file mode 100644 index 8fbcc40..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/dashboard/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/6.js b/frontend/.svelte-kit/generated/client-optimized/nodes/6.js deleted file mode 100644 index c3e6677..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/forgot/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/7.js b/frontend/.svelte-kit/generated/client-optimized/nodes/7.js deleted file mode 100644 index 3e6b791..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/7.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/login/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/8.js b/frontend/.svelte-kit/generated/client-optimized/nodes/8.js deleted file mode 100644 index 7ddef3d..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/8.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client-optimized/nodes/9.js b/frontend/.svelte-kit/generated/client-optimized/nodes/9.js deleted file mode 100644 index 8c3dbb9..0000000 --- a/frontend/.svelte-kit/generated/client-optimized/nodes/9.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/[name]/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/app.js b/frontend/.svelte-kit/generated/client/app.js deleted file mode 100644 index 77fc2a6..0000000 --- a/frontend/.svelte-kit/generated/client/app.js +++ /dev/null @@ -1,53 +0,0 @@ -export { matchers } from './matchers.js'; - -export const nodes = [ - () => import('./nodes/0'), - () => import('./nodes/1'), - () => import('./nodes/2'), - () => import('./nodes/3'), - () => import('./nodes/4'), - () => import('./nodes/5'), - () => import('./nodes/6'), - () => import('./nodes/7'), - () => import('./nodes/8'), - () => import('./nodes/9'), - () => import('./nodes/10'), - () => import('./nodes/11'), - () => import('./nodes/12'), - () => import('./nodes/13'), - () => import('./nodes/14') -]; - -export const server_loads = []; - -export const dictionary = { - "/": [2], - "/aliases": [3], - "/auth/change-password": [4], - "/auth/dashboard": [5], - "/auth/forgot": [6], - "/auth/login": [7], - "/domains": [8], - "/domains/[name]": [9], - "/domains/[name]/aliases": [10], - "/domains/[name]/users": [11], - "/logs": [12], - "/queue": [13], - "/users": [14] - }; - -export const hooks = { - handleError: (({ error }) => { console.error(error) }), - - reroute: (() => {}), - transport: {} -}; - -export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode])); -export const encoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.encode])); - -export const hash = false; - -export const decode = (type, value) => decoders[type](value); - -export { default as root } from '../root.js'; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/matchers.js b/frontend/.svelte-kit/generated/client/matchers.js deleted file mode 100644 index f6bd30a..0000000 --- a/frontend/.svelte-kit/generated/client/matchers.js +++ /dev/null @@ -1 +0,0 @@ -export const matchers = {}; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/0.js b/frontend/.svelte-kit/generated/client/nodes/0.js deleted file mode 100644 index fed1375..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/0.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/+layout.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/1.js b/frontend/.svelte-kit/generated/client/nodes/1.js deleted file mode 100644 index bf58bad..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/1.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/10.js b/frontend/.svelte-kit/generated/client/nodes/10.js deleted file mode 100644 index 6e3e843..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/10.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/[name]/aliases/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/11.js b/frontend/.svelte-kit/generated/client/nodes/11.js deleted file mode 100644 index 5d78636..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/11.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/[name]/users/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/12.js b/frontend/.svelte-kit/generated/client/nodes/12.js deleted file mode 100644 index 74546b8..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/12.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/logs/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/13.js b/frontend/.svelte-kit/generated/client/nodes/13.js deleted file mode 100644 index 2c7481c..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/13.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/queue/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/14.js b/frontend/.svelte-kit/generated/client/nodes/14.js deleted file mode 100644 index 81499df..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/14.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/users/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/2.js b/frontend/.svelte-kit/generated/client/nodes/2.js deleted file mode 100644 index 1cb4f85..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/2.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/3.js b/frontend/.svelte-kit/generated/client/nodes/3.js deleted file mode 100644 index 282cdf9..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/3.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/aliases/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/4.js b/frontend/.svelte-kit/generated/client/nodes/4.js deleted file mode 100644 index 38113d5..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/4.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/change-password/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/5.js b/frontend/.svelte-kit/generated/client/nodes/5.js deleted file mode 100644 index 8fbcc40..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/5.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/dashboard/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/6.js b/frontend/.svelte-kit/generated/client/nodes/6.js deleted file mode 100644 index c3e6677..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/6.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/forgot/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/7.js b/frontend/.svelte-kit/generated/client/nodes/7.js deleted file mode 100644 index 3e6b791..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/7.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/auth/login/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/8.js b/frontend/.svelte-kit/generated/client/nodes/8.js deleted file mode 100644 index 7ddef3d..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/8.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/client/nodes/9.js b/frontend/.svelte-kit/generated/client/nodes/9.js deleted file mode 100644 index 8c3dbb9..0000000 --- a/frontend/.svelte-kit/generated/client/nodes/9.js +++ /dev/null @@ -1 +0,0 @@ -export { default as component } from "../../../../src/routes/domains/[name]/+page.svelte"; \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/root.js b/frontend/.svelte-kit/generated/root.js deleted file mode 100644 index 4d1e892..0000000 --- a/frontend/.svelte-kit/generated/root.js +++ /dev/null @@ -1,3 +0,0 @@ -import { asClassComponent } from 'svelte/legacy'; -import Root from './root.svelte'; -export default asClassComponent(Root); \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/root.svelte b/frontend/.svelte-kit/generated/root.svelte deleted file mode 100644 index 0795183..0000000 --- a/frontend/.svelte-kit/generated/root.svelte +++ /dev/null @@ -1,68 +0,0 @@ - - - - -{#if constructors[1]} - {@const Pyramid_0 = constructors[0]} - - - - - - -{:else} - {@const Pyramid_0 = constructors[0]} - - - -{/if} - -{#if mounted} -
- {#if navigated} - {title} - {/if} -
-{/if} \ No newline at end of file diff --git a/frontend/.svelte-kit/generated/server/internal.js b/frontend/.svelte-kit/generated/server/internal.js deleted file mode 100644 index c7c1e81..0000000 --- a/frontend/.svelte-kit/generated/server/internal.js +++ /dev/null @@ -1,54 +0,0 @@ - -import root from '../root.js'; -import { set_building, set_prerendering } from '__sveltekit/environment'; -import { set_assets } from '$app/paths/internal/server'; -import { set_manifest, set_read_implementation } from '__sveltekit/server'; -import { set_private_env, set_public_env } from '../../../node_modules/@sveltejs/kit/src/runtime/shared-server.js'; - -export const options = { - app_template_contains_nonce: false, - async: false, - csp: {"mode":"auto","directives":{"upgrade-insecure-requests":false,"block-all-mixed-content":false},"reportOnly":{"upgrade-insecure-requests":false,"block-all-mixed-content":false}}, - csrf_check_origin: true, - csrf_trusted_origins: [], - embedded: false, - env_public_prefix: 'PUBLIC_', - env_private_prefix: '', - hash_routing: false, - hooks: null, // added lazily, via `get_hooks` - preload_strategy: "modulepreload", - root, - service_worker: false, - service_worker_options: undefined, - server_error_boundaries: false, - templates: { - app: ({ head, body, assets, nonce, env }) => "\n\n \n \n \n \n " + head + "\n \n \n
" + body + "
\n \n\n", - error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t
\n\t\t\t" + status + "\n\t\t\t
\n\t\t\t\t

" + message + "

\n\t\t\t
\n\t\t
\n\t\n\n" - }, - version_hash: "1iiqrg0" -}; - -export async function get_hooks() { - let handle; - let handleFetch; - let handleError; - let handleValidationError; - let init; - - - let reroute; - let transport; - - - return { - handle, - handleFetch, - handleError, - handleValidationError, - init, - reroute, - transport - }; -} - -export { set_assets, set_building, set_manifest, set_prerendering, set_private_env, set_public_env, set_read_implementation }; diff --git a/frontend/.svelte-kit/non-ambient.d.ts b/frontend/.svelte-kit/non-ambient.d.ts deleted file mode 100644 index 7a0a5ab..0000000 --- a/frontend/.svelte-kit/non-ambient.d.ts +++ /dev/null @@ -1,58 +0,0 @@ - -// this file is generated — do not edit it - - -declare module "svelte/elements" { - export interface HTMLAttributes { - 'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null; - 'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null; - 'data-sveltekit-preload-code'?: - | true - | '' - | 'eager' - | 'viewport' - | 'hover' - | 'tap' - | 'off' - | undefined - | null; - 'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null; - 'data-sveltekit-reload'?: true | '' | 'off' | undefined | null; - 'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null; - } -} - -export {}; - - -declare module "$app/types" { - type MatcherParam = M extends (param : string) => param is (infer U extends string) ? U : string; - - export interface AppTypes { - RouteId(): "/" | "/aliases" | "/auth" | "/auth/change-password" | "/auth/dashboard" | "/auth/forgot" | "/auth/login" | "/domains" | "/domains/[name]" | "/domains/[name]/aliases" | "/domains/[name]/users" | "/logs" | "/queue" | "/users"; - RouteParams(): { - "/domains/[name]": { name: string }; - "/domains/[name]/aliases": { name: string }; - "/domains/[name]/users": { name: string } - }; - LayoutParams(): { - "/": { name?: string }; - "/aliases": Record; - "/auth": Record; - "/auth/change-password": Record; - "/auth/dashboard": Record; - "/auth/forgot": Record; - "/auth/login": Record; - "/domains": { name?: string }; - "/domains/[name]": { name: string }; - "/domains/[name]/aliases": { name: string }; - "/domains/[name]/users": { name: string }; - "/logs": Record; - "/queue": Record; - "/users": Record - }; - Pathname(): "/" | "/aliases" | "/auth/change-password" | "/auth/dashboard" | "/auth/forgot" | "/auth/login" | "/domains" | `/domains/${string}` & {} | `/domains/${string}/aliases` & {} | `/domains/${string}/users` & {} | "/logs" | "/queue" | "/users"; - ResolvedPathname(): `${"" | `/${string}`}${ReturnType}`; - Asset(): "/favicon.png" | string & {}; - } -} \ No newline at end of file diff --git a/frontend/.svelte-kit/output/client/.vite/manifest.json b/frontend/.svelte-kit/output/client/.vite/manifest.json deleted file mode 100644 index 413b3cf..0000000 --- a/frontend/.svelte-kit/output/client/.vite/manifest.json +++ /dev/null @@ -1,426 +0,0 @@ -{ - ".svelte-kit/generated/client-optimized/app.js": { - "file": "_app/immutable/entry/app.BbYYniZ5.js", - "name": "entry/app", - "src": ".svelte-kit/generated/client-optimized/app.js", - "isEntry": true, - "imports": [ - "_Duj8aI35.js", - "_CLjomene.js", - "_9f3gAZ9b.js", - "_DbjAFM6h.js", - "_BoxOjSrq.js", - "_Br6rEF7I.js" - ], - "dynamicImports": [ - ".svelte-kit/generated/client-optimized/nodes/0.js", - ".svelte-kit/generated/client-optimized/nodes/1.js", - ".svelte-kit/generated/client-optimized/nodes/2.js", - ".svelte-kit/generated/client-optimized/nodes/3.js", - ".svelte-kit/generated/client-optimized/nodes/4.js", - ".svelte-kit/generated/client-optimized/nodes/5.js", - ".svelte-kit/generated/client-optimized/nodes/6.js", - ".svelte-kit/generated/client-optimized/nodes/7.js", - ".svelte-kit/generated/client-optimized/nodes/8.js", - ".svelte-kit/generated/client-optimized/nodes/9.js", - ".svelte-kit/generated/client-optimized/nodes/10.js", - ".svelte-kit/generated/client-optimized/nodes/11.js", - ".svelte-kit/generated/client-optimized/nodes/12.js", - ".svelte-kit/generated/client-optimized/nodes/13.js", - ".svelte-kit/generated/client-optimized/nodes/14.js" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/0.js": { - "file": "_app/immutable/nodes/0.D1NfsGdh.js", - "name": "nodes/0", - "src": ".svelte-kit/generated/client-optimized/nodes/0.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_Br6rEF7I.js", - "_BoxOjSrq.js", - "_BUMTB73N.js", - "_D36G5VVl.js", - "_Cp0_Ivrq.js" - ], - "css": [ - "_app/immutable/assets/0.DkgBtk4_.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/1.js": { - "file": "_app/immutable/nodes/1.Dmg4gFpE.js", - "name": "nodes/1", - "src": ".svelte-kit/generated/client-optimized/nodes/1.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_B-VrhDce.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_DHtUr0jS.js", - "_Cp0_Ivrq.js" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/10.js": { - "file": "_app/immutable/nodes/10.Cr7c3Mev.js", - "name": "nodes/10", - "src": ".svelte-kit/generated/client-optimized/nodes/10.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_Br6rEF7I.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_CJwRMJo_.js", - "_BUMTB73N.js", - "_ChOwRET-.js", - "_D36G5VVl.js" - ], - "css": [ - "_app/immutable/assets/10.Qar-kS8x.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/11.js": { - "file": "_app/immutable/nodes/11.C28K4OC2.js", - "name": "nodes/11", - "src": ".svelte-kit/generated/client-optimized/nodes/11.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_Br6rEF7I.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_CJwRMJo_.js", - "_BUMTB73N.js", - "_ChOwRET-.js", - "_D36G5VVl.js" - ], - "css": [ - "_app/immutable/assets/11.D38O3Xxc.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/12.js": { - "file": "_app/immutable/nodes/12.C871LYi0.js", - "name": "nodes/12", - "src": ".svelte-kit/generated/client-optimized/nodes/12.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_CJwRMJo_.js", - "_BUMTB73N.js", - "_D0tQPCXt.js", - "_ChOwRET-.js" - ], - "css": [ - "_app/immutable/assets/12.DQdHIvb_.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/13.js": { - "file": "_app/immutable/nodes/13.tek3MBH5.js", - "name": "nodes/13", - "src": ".svelte-kit/generated/client-optimized/nodes/13.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_CJwRMJo_.js" - ], - "css": [ - "_app/immutable/assets/13.DnP_H9DZ.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/14.js": { - "file": "_app/immutable/nodes/14.GvC8CYlf.js", - "name": "nodes/14", - "src": ".svelte-kit/generated/client-optimized/nodes/14.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_B-VrhDce.js", - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_Cp0_Ivrq.js" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/2.js": { - "file": "_app/immutable/nodes/2.BPLTuoks.js", - "name": "nodes/2", - "src": ".svelte-kit/generated/client-optimized/nodes/2.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_D0tQPCXt.js" - ], - "css": [ - "_app/immutable/assets/2.By2d6Bxb.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/3.js": { - "file": "_app/immutable/nodes/3.GvC8CYlf.js", - "name": "nodes/3", - "src": ".svelte-kit/generated/client-optimized/nodes/3.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_B-VrhDce.js", - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_Cp0_Ivrq.js" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/4.js": { - "file": "_app/immutable/nodes/4.BncKIMeC.js", - "name": "nodes/4", - "src": ".svelte-kit/generated/client-optimized/nodes/4.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_BUMTB73N.js", - "_ChOwRET-.js", - "_Cp0_Ivrq.js" - ], - "css": [ - "_app/immutable/assets/4.CG2X--Z8.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/5.js": { - "file": "_app/immutable/nodes/5.B3bpZmnK.js", - "name": "nodes/5", - "src": ".svelte-kit/generated/client-optimized/nodes/5.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_Cp0_Ivrq.js" - ], - "css": [ - "_app/immutable/assets/5.YbbfqdJp.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/6.js": { - "file": "_app/immutable/nodes/6.IyjeEy8s.js", - "name": "nodes/6", - "src": ".svelte-kit/generated/client-optimized/nodes/6.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_BUMTB73N.js", - "_ChOwRET-.js", - "_DHtUr0jS.js" - ], - "css": [ - "_app/immutable/assets/6.w_qTFDpy.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/7.js": { - "file": "_app/immutable/nodes/7.D5gWFBO_.js", - "name": "nodes/7", - "src": ".svelte-kit/generated/client-optimized/nodes/7.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_BUMTB73N.js", - "_ChOwRET-.js", - "_Cp0_Ivrq.js" - ], - "css": [ - "_app/immutable/assets/7.Bq7myTre.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/8.js": { - "file": "_app/immutable/nodes/8.CQe8jM2W.js", - "name": "nodes/8", - "src": ".svelte-kit/generated/client-optimized/nodes/8.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_CJwRMJo_.js", - "_BUMTB73N.js", - "_ChOwRET-.js" - ], - "css": [ - "_app/immutable/assets/8.DoJEUEyy.css" - ] - }, - ".svelte-kit/generated/client-optimized/nodes/9.js": { - "file": "_app/immutable/nodes/9.aj9Oq8-x.js", - "name": "nodes/9", - "src": ".svelte-kit/generated/client-optimized/nodes/9.js", - "isEntry": true, - "isDynamicEntry": true, - "imports": [ - "_9f3gAZ9b.js", - "_Duj8aI35.js", - "_Br6rEF7I.js", - "_CLjomene.js", - "_BoxOjSrq.js", - "_BUMTB73N.js", - "_D36G5VVl.js" - ], - "css": [ - "_app/immutable/assets/9.Ci0QlAaW.css" - ] - }, - "_9f3gAZ9b.js": { - "file": "_app/immutable/chunks/9f3gAZ9b.js", - "name": "disclose-version", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_B-VrhDce.js": { - "file": "_app/immutable/chunks/B-VrhDce.js", - "name": "legacy", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_BUMTB73N.js": { - "file": "_app/immutable/chunks/BUMTB73N.js", - "name": "attributes", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_B_j05Fed.js": { - "file": "_app/immutable/chunks/B_j05Fed.js", - "name": "index", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_BoxOjSrq.js": { - "file": "_app/immutable/chunks/BoxOjSrq.js", - "name": "if", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_Br6rEF7I.js": { - "file": "_app/immutable/chunks/Br6rEF7I.js", - "name": "store", - "imports": [ - "_B_j05Fed.js", - "_Duj8aI35.js" - ] - }, - "_CJwRMJo_.js": { - "file": "_app/immutable/chunks/CJwRMJo_.js", - "name": "each", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_CLjomene.js": { - "file": "_app/immutable/chunks/CLjomene.js", - "name": "render", - "imports": [ - "_Duj8aI35.js", - "_9f3gAZ9b.js" - ] - }, - "_ChOwRET-.js": { - "file": "_app/immutable/chunks/ChOwRET-.js", - "name": "input", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_Cp0_Ivrq.js": { - "file": "_app/immutable/chunks/Cp0_Ivrq.js", - "name": "entry", - "imports": [ - "_Duj8aI35.js", - "_B_j05Fed.js", - "_DHtUr0jS.js" - ] - }, - "_D0tQPCXt.js": { - "file": "_app/immutable/chunks/D0tQPCXt.js", - "name": "class", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_D36G5VVl.js": { - "file": "_app/immutable/chunks/D36G5VVl.js", - "name": "stores", - "imports": [ - "_Cp0_Ivrq.js" - ] - }, - "_DHtUr0jS.js": { - "file": "_app/immutable/chunks/DHtUr0jS.js", - "name": "state.svelte", - "imports": [ - "_DbjAFM6h.js", - "_Duj8aI35.js", - "_B_j05Fed.js" - ] - }, - "_DbjAFM6h.js": { - "file": "_app/immutable/chunks/DbjAFM6h.js", - "name": "index-client", - "imports": [ - "_Duj8aI35.js" - ] - }, - "_Duj8aI35.js": { - "file": "_app/immutable/chunks/Duj8aI35.js", - "name": "runtime" - }, - "node_modules/@sveltejs/kit/src/runtime/client/entry.js": { - "file": "_app/immutable/entry/start.CoQRAp_d.js", - "name": "entry/start", - "src": "node_modules/@sveltejs/kit/src/runtime/client/entry.js", - "isEntry": true, - "imports": [ - "_Cp0_Ivrq.js", - "_DHtUr0jS.js" - ] - } -} \ No newline at end of file diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/0.DkgBtk4_.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/0.DkgBtk4_.css deleted file mode 100644 index 792fc3f..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/0.DkgBtk4_.css +++ /dev/null @@ -1 +0,0 @@ -.loading.svelte-12qhfyh{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#666}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#f5f5f5}.app.svelte-12qhfyh{min-height:100vh}header.svelte-12qhfyh{background:#2c3e50;color:#fff;padding:.75rem 2rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}h1.svelte-12qhfyh{margin:0;font-size:1.25rem}nav.svelte-12qhfyh{display:flex;gap:.5rem;flex:1}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#ecf0f1;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;transition:background .2s}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#34495e}main.svelte-12qhfyh{padding:2rem;max-width:1400px;margin:0 auto}.user-menu.svelte-12qhfyh{display:flex;align-items:center;gap:1rem;font-size:.9rem}.user-menu.svelte-12qhfyh span:where(.svelte-12qhfyh){color:#ecf0f1}.user-menu.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#ecf0f1;text-decoration:none;padding:.375rem .75rem;border:1px solid #7f8c8d;border-radius:4px;font-size:.85rem}.user-menu.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#34495e}.user-menu.svelte-12qhfyh button:where(.svelte-12qhfyh){background:transparent;border:1px solid #7f8c8d;color:#ecf0f1;padding:.375rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem}.user-menu.svelte-12qhfyh button:where(.svelte-12qhfyh):hover{background:#34495e} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/10.Qar-kS8x.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/10.Qar-kS8x.css deleted file mode 100644 index bbde314..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/10.Qar-kS8x.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-15uyvzd{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.back.svelte-15uyvzd{color:#3498db;text-decoration:none;font-size:.9rem}.back.svelte-15uyvzd:hover{text-decoration:underline}.header.svelte-15uyvzd h2:where(.svelte-15uyvzd){flex:1;margin:0}table.svelte-15uyvzd{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-15uyvzd,td.svelte-15uyvzd{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-15uyvzd{background:#f8f9fa;font-weight:600}button.svelte-15uyvzd{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-15uyvzd{background:#e74c3c}.modal-backdrop.svelte-15uyvzd{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;border:none;cursor:pointer;z-index:100}.modal.svelte-15uyvzd{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:2rem;border-radius:8px;min-width:400px;z-index:101}.modal.svelte-15uyvzd h3:where(.svelte-15uyvzd){margin-top:0}.modal.svelte-15uyvzd form:where(.svelte-15uyvzd){display:flex;flex-direction:column;gap:1rem}.modal.svelte-15uyvzd label:where(.svelte-15uyvzd){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-15uyvzd input:where(.svelte-15uyvzd){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-15uyvzd{display:flex;gap:1rem;justify-content:flex-end} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/11.D38O3Xxc.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/11.D38O3Xxc.css deleted file mode 100644 index 14eb981..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/11.D38O3Xxc.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-oa5z6t{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.back.svelte-oa5z6t{color:#3498db;text-decoration:none;font-size:.9rem}.back.svelte-oa5z6t:hover{text-decoration:underline}.header.svelte-oa5z6t h2:where(.svelte-oa5z6t){flex:1;margin:0}table.svelte-oa5z6t{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-oa5z6t,td.svelte-oa5z6t{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-oa5z6t{background:#f8f9fa;font-weight:600}button.svelte-oa5z6t{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-oa5z6t{background:#e74c3c}.modal-backdrop.svelte-oa5z6t{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;border:none;cursor:pointer;z-index:100}.modal.svelte-oa5z6t{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:2rem;border-radius:8px;min-width:400px;z-index:101}.modal.svelte-oa5z6t h3:where(.svelte-oa5z6t){margin-top:0}.modal.svelte-oa5z6t form:where(.svelte-oa5z6t){display:flex;flex-direction:column;gap:1rem}.modal.svelte-oa5z6t label:where(.svelte-oa5z6t){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-oa5z6t input:where(.svelte-oa5z6t){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-oa5z6t{display:flex;gap:1rem;justify-content:flex-end} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/12.DQdHIvb_.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/12.DQdHIvb_.css deleted file mode 100644 index 3f6263d..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/12.DQdHIvb_.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-1lsf4ps{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.controls.svelte-1lsf4ps{display:flex;gap:1rem;align-items:center}.controls.svelte-1lsf4ps label:where(.svelte-1lsf4ps){display:flex;align-items:center;gap:.5rem}.controls.svelte-1lsf4ps select:where(.svelte-1lsf4ps),.controls.svelte-1lsf4ps input:where(.svelte-1lsf4ps){padding:.5rem;border:1px solid #ddd;border-radius:4px}button.svelte-1lsf4ps{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}.log-container.svelte-1lsf4ps{background:#1a1a2e;color:#eee;padding:1rem;border-radius:8px;max-height:600px;overflow-y:auto;font-family:monospace;font-size:.85rem}.log-entry.svelte-1lsf4ps{padding:.25rem 0;border-bottom:1px solid #333}.log-entry.svelte-1lsf4ps:last-child{border-bottom:none}.timestamp.svelte-1lsf4ps{color:#888;margin-right:.5rem}.priority.svelte-1lsf4ps{margin-right:.5rem;font-weight:700}.log-entry.error.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#e74c3c}.log-entry.warning.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#f39c12}.log-entry.info.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#3498db}.error.svelte-1lsf4ps{color:#e74c3c} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/13.DnP_H9DZ.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/13.DnP_H9DZ.css deleted file mode 100644 index 5caa7e3..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/13.DnP_H9DZ.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-qegr5c{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}table.svelte-qegr5c{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-qegr5c,td.svelte-qegr5c{padding:.75rem;text-align:left;border-bottom:1px solid #eee;font-size:.9rem}th.svelte-qegr5c{background:#f8f9fa;font-weight:600}.id.svelte-qegr5c{font-family:monospace;font-size:.8rem}.reason.svelte-qegr5c{color:#e74c3c}button.svelte-qegr5c{padding:.25rem .5rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff;font-size:.8rem;margin-right:.25rem}button.danger.svelte-qegr5c{background:#e74c3c}.error.svelte-qegr5c{color:#e74c3c} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/2.By2d6Bxb.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/2.By2d6Bxb.css deleted file mode 100644 index f2098ff..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/2.By2d6Bxb.css +++ /dev/null @@ -1 +0,0 @@ -.stats-grid.svelte-1uha8ag{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:2rem}.stat-card.svelte-1uha8ag{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.stat-card.warning.svelte-1uha8ag{border:2px solid #e74c3c}.stat-card.svelte-1uha8ag h3:where(.svelte-1uha8ag){font-size:2.5rem;margin:0;color:#2c3e50}.stat-card.svelte-1uha8ag p:where(.svelte-1uha8ag){margin:.5rem 0 0;color:#7f8c8d}.warning.svelte-1uha8ag h3:where(.svelte-1uha8ag){color:#e74c3c} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/4.CG2X--Z8.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/4.CG2X--Z8.css deleted file mode 100644 index ea80681..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/4.CG2X--Z8.css +++ /dev/null @@ -1 +0,0 @@ -.page-container.svelte-imhhoo{min-height:100vh;background:#f5f7fa}.header.svelte-imhhoo{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.header-content.svelte-imhhoo{max-width:800px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header.svelte-imhhoo h1:where(.svelte-imhhoo){margin:0;font-size:1.5rem;color:#2c3e50}.user-info.svelte-imhhoo{display:flex;align-items:center;gap:1rem}.logout.svelte-imhhoo{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.content.svelte-imhhoo{max-width:500px;margin:2rem auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.error.svelte-imhhoo{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem}.success.svelte-imhhoo{background:#efe;color:#060;padding:.75rem;border-radius:4px;margin-bottom:1rem}form.svelte-imhhoo{display:flex;flex-direction:column;gap:1rem}label.svelte-imhhoo{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#555}input.svelte-imhhoo{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}input.svelte-imhhoo:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button.svelte-imhhoo{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;margin-top:.5rem}button.svelte-imhhoo:hover:not(:disabled){opacity:.9}button.svelte-imhhoo:disabled{opacity:.6;cursor:not-allowed}.links.svelte-imhhoo{margin-top:1.5rem;text-align:center}.links.svelte-imhhoo a:where(.svelte-imhhoo){color:#667eea;text-decoration:none}.links.svelte-imhhoo a:where(.svelte-imhhoo):hover{text-decoration:underline} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/5.YbbfqdJp.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/5.YbbfqdJp.css deleted file mode 100644 index 47f5e83..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/5.YbbfqdJp.css +++ /dev/null @@ -1 +0,0 @@ -.page-container.svelte-1s1ktxm{min-height:100vh;background:#f5f7fa}.header.svelte-1s1ktxm{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center}.header.svelte-1s1ktxm h1:where(.svelte-1s1ktxm){margin:0;font-size:1.5rem;color:#2c3e50}.user-info.svelte-1s1ktxm{display:flex;align-items:center;gap:1rem}.logout.svelte-1s1ktxm{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.content.svelte-1s1ktxm{max-width:800px;margin:2rem auto;padding:0 1rem}.card.svelte-1s1ktxm{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.card.svelte-1s1ktxm h2:where(.svelte-1s1ktxm){margin:0 0 1rem;color:#2c3e50;font-size:1.2rem}.info-row.svelte-1s1ktxm{display:flex;padding:.75rem 0;border-bottom:1px solid #eee}.info-row.svelte-1s1ktxm:last-child{border-bottom:none}.label.svelte-1s1ktxm{font-weight:500;color:#666;width:120px}.value.svelte-1s1ktxm{color:#2c3e50}.actions.svelte-1s1ktxm{display:flex;gap:1rem;flex-wrap:wrap}.action-btn.svelte-1s1ktxm{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:opacity .2s}.action-btn.svelte-1s1ktxm:hover{opacity:.9} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/6.w_qTFDpy.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/6.w_qTFDpy.css deleted file mode 100644 index 4f2c471..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/6.w_qTFDpy.css +++ /dev/null @@ -1 +0,0 @@ -.login-container.svelte-15sczaz{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-card.svelte-15sczaz{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}h1.svelte-15sczaz{text-align:center;margin:0 0 1rem;color:#2c3e50}.info.svelte-15sczaz{color:#666;text-align:center;margin-bottom:1.5rem;font-size:.9rem}.error.svelte-15sczaz{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.success.svelte-15sczaz{background:#efe;color:#060;padding:1rem;border-radius:4px;margin-bottom:1rem;text-align:center}.success.svelte-15sczaz p:where(.svelte-15sczaz){margin:.5rem 0}form.svelte-15sczaz{display:flex;flex-direction:column;gap:1rem}label.svelte-15sczaz{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#555}input.svelte-15sczaz{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}input.svelte-15sczaz:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button.svelte-15sczaz{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s}button.svelte-15sczaz:hover:not(:disabled){opacity:.9}button.svelte-15sczaz:disabled{opacity:.6;cursor:not-allowed}.links.svelte-15sczaz{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px solid #eee}.links.svelte-15sczaz a:where(.svelte-15sczaz){color:#667eea;text-decoration:none;font-size:.9rem}.links.svelte-15sczaz a:where(.svelte-15sczaz):hover{text-decoration:underline} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/7.Bq7myTre.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/7.Bq7myTre.css deleted file mode 100644 index 5e0a5f3..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/7.Bq7myTre.css +++ /dev/null @@ -1 +0,0 @@ -.login-container.svelte-1i2smtp{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2c3e50,#34495e)}.login-card.svelte-1i2smtp{background:#fff;padding:3rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}h1.svelte-1i2smtp{margin:0;text-align:center;color:#2c3e50;font-size:2rem}.subtitle.svelte-1i2smtp{text-align:center;color:#7f8c8d;margin:.5rem 0 2rem}.error.svelte-1i2smtp{background:#fee;border:1px solid #fcc;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}form.svelte-1i2smtp{display:flex;flex-direction:column;gap:1.25rem}label.svelte-1i2smtp{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#2c3e50}input.svelte-1i2smtp{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}input.svelte-1i2smtp:focus{outline:none;border-color:#3498db}.forgot.svelte-1i2smtp{text-align:right;margin-top:-.5rem}.forgot.svelte-1i2smtp a:where(.svelte-1i2smtp){color:#3498db;text-decoration:none;font-size:.9rem}.forgot.svelte-1i2smtp a:where(.svelte-1i2smtp):hover{text-decoration:underline}button.svelte-1i2smtp{padding:.875rem;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:.5rem}button.svelte-1i2smtp:hover:not(:disabled){background:#2980b9}button.svelte-1i2smtp:disabled{opacity:.7;cursor:not-allowed} diff --git a/frontend/.svelte-kit/output/client/_app/immutable/assets/9.Ci0QlAaW.css b/frontend/.svelte-kit/output/client/_app/immutable/assets/9.Ci0QlAaW.css deleted file mode 100644 index 6ef841b..0000000 --- a/frontend/.svelte-kit/output/client/_app/immutable/assets/9.Ci0QlAaW.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-lb8x40{margin-bottom:2rem}.back.svelte-lb8x40{display:inline-block;margin-bottom:1rem;color:#3498db;text-decoration:none}.back.svelte-lb8x40:hover{text-decoration:underline}.error.svelte-lb8x40{color:#e74c3c}.cards-grid.svelte-lb8x40{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.card.svelte-lb8x40{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.card.svelte-lb8x40:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.card.svelte-lb8x40 h3:where(.svelte-lb8x40){font-size:3rem;margin:0;color:#3498db}.card.svelte-lb8x40 p:where(.svelte-lb8x40){margin:.5rem 0 0;color:#7f8c8d;font-size:1.1rem} diff --git a/frontend/.svelte-kit/output/client/_app/version.json b/frontend/.svelte-kit/output/client/_app/version.json deleted file mode 100644 index f1bcdd4..0000000 --- a/frontend/.svelte-kit/output/client/_app/version.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"1774133205006"} \ No newline at end of file diff --git a/frontend/.svelte-kit/output/client/favicon.png b/frontend/.svelte-kit/output/client/favicon.png deleted file mode 100644 index 47ce666..0000000 --- a/frontend/.svelte-kit/output/client/favicon.png +++ /dev/null @@ -1,4 +0,0 @@ - - - V - diff --git a/frontend/.svelte-kit/output/prerendered/dependencies/_app/env.js b/frontend/.svelte-kit/output/prerendered/dependencies/_app/env.js deleted file mode 100644 index f5427da..0000000 --- a/frontend/.svelte-kit/output/prerendered/dependencies/_app/env.js +++ /dev/null @@ -1 +0,0 @@ -export const env={} \ No newline at end of file diff --git a/frontend/.svelte-kit/output/server/.vite/manifest.json b/frontend/.svelte-kit/output/server/.vite/manifest.json deleted file mode 100644 index f53fdc9..0000000 --- a/frontend/.svelte-kit/output/server/.vite/manifest.json +++ /dev/null @@ -1,301 +0,0 @@ -{ - ".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" - }, - "_false.js": { - "file": "chunks/false.js", - "name": "false" - }, - "_index.js": { - "file": "chunks/index.js", - "name": "index", - "imports": [ - "_index2.js", - "_root.js" - ] - }, - "_index2.js": { - "file": "chunks/index2.js", - "name": "index" - }, - "_internal.js": { - "file": "chunks/internal.js", - "name": "internal", - "imports": [ - "_root.js", - "_environment.js" - ] - }, - "_root.js": { - "file": "chunks/root.js", - "name": "root", - "imports": [ - "_index2.js", - "_false.js" - ] - }, - "_shared.js": { - "file": "chunks/shared.js", - "name": "shared", - "imports": [ - "_utils.js" - ] - }, - "_state.svelte.js": { - "file": "chunks/state.svelte.js", - "name": "state.svelte", - "imports": [ - "_index2.js", - "_exports.js", - "_root.js" - ] - }, - "_utils.js": { - "file": "chunks/utils.js", - "name": "utils" - }, - "node_modules/@sveltejs/kit/src/runtime/app/server/remote/index.js": { - "file": "remote-entry.js", - "name": "remote-entry", - "src": "node_modules/@sveltejs/kit/src/runtime/app/server/remote/index.js", - "isEntry": true, - "imports": [ - "_shared.js", - "_false.js", - "_environment.js" - ] - }, - "node_modules/@sveltejs/kit/src/runtime/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": [ - "_index2.js", - "_state.svelte.js", - "_exports.js", - "_utils.js", - "_index.js", - "_root.js" - ] - }, - "node_modules/@sveltejs/kit/src/runtime/server/index.js": { - "file": "index.js", - "name": "index", - "src": "node_modules/@sveltejs/kit/src/runtime/server/index.js", - "isEntry": true, - "imports": [ - "_false.js", - "_environment.js", - "_shared.js", - "_exports.js", - "_utils.js", - "_index.js", - "_internal.js" - ] - }, - "src/routes/+layout.svelte": { - "file": "entries/pages/_layout.svelte.js", - "name": "entries/pages/_layout.svelte", - "src": "src/routes/+layout.svelte", - "isEntry": true, - "imports": [ - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_layout.DkgBtk4_.css" - ] - }, - "src/routes/+page.svelte": { - "file": "entries/pages/_page.svelte.js", - "name": "entries/pages/_page.svelte", - "src": "src/routes/+page.svelte", - "isEntry": true, - "css": [ - "_app/immutable/assets/_page.By2d6Bxb.css" - ] - }, - "src/routes/aliases/+page.svelte": { - "file": "entries/pages/aliases/_page.svelte.js", - "name": "entries/pages/aliases/_page.svelte", - "src": "src/routes/aliases/+page.svelte", - "isEntry": true, - "imports": [ - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ] - }, - "src/routes/auth/change-password/+page.svelte": { - "file": "entries/pages/auth/change-password/_page.svelte.js", - "name": "entries/pages/auth/change-password/_page.svelte", - "src": "src/routes/auth/change-password/+page.svelte", - "isEntry": true, - "imports": [ - "_index2.js", - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.CG2X--Z8.css" - ] - }, - "src/routes/auth/dashboard/+page.svelte": { - "file": "entries/pages/auth/dashboard/_page.svelte.js", - "name": "entries/pages/auth/dashboard/_page.svelte", - "src": "src/routes/auth/dashboard/+page.svelte", - "isEntry": true, - "imports": [ - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.YbbfqdJp.css" - ] - }, - "src/routes/auth/forgot/+page.svelte": { - "file": "entries/pages/auth/forgot/_page.svelte.js", - "name": "entries/pages/auth/forgot/_page.svelte", - "src": "src/routes/auth/forgot/+page.svelte", - "isEntry": true, - "imports": [ - "_index2.js", - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.w_qTFDpy.css" - ] - }, - "src/routes/auth/login/+page.svelte": { - "file": "entries/pages/auth/login/_page.svelte.js", - "name": "entries/pages/auth/login/_page.svelte", - "src": "src/routes/auth/login/+page.svelte", - "isEntry": true, - "imports": [ - "_index2.js", - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.Bq7myTre.css" - ] - }, - "src/routes/domains/+page.svelte": { - "file": "entries/pages/domains/_page.svelte.js", - "name": "entries/pages/domains/_page.svelte", - "src": "src/routes/domains/+page.svelte", - "isEntry": true, - "css": [ - "_app/immutable/assets/_page.CEZIoQaL.css" - ] - }, - "src/routes/domains/[name]/+page.svelte": { - "file": "entries/pages/domains/_name_/_page.svelte.js", - "name": "entries/pages/domains/_name_/_page.svelte", - "src": "src/routes/domains/[name]/+page.svelte", - "isEntry": true, - "imports": [ - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.Ci0QlAaW.css" - ] - }, - "src/routes/domains/[name]/aliases/+page.svelte": { - "file": "entries/pages/domains/_name_/aliases/_page.svelte.js", - "name": "entries/pages/domains/_name_/aliases/_page.svelte", - "src": "src/routes/domains/[name]/aliases/+page.svelte", - "isEntry": true, - "imports": [ - "_index2.js", - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.CvxoqpCi.css" - ] - }, - "src/routes/domains/[name]/users/+page.svelte": { - "file": "entries/pages/domains/_name_/users/_page.svelte.js", - "name": "entries/pages/domains/_name_/users/_page.svelte", - "src": "src/routes/domains/[name]/users/+page.svelte", - "isEntry": true, - "imports": [ - "_index2.js", - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ], - "css": [ - "_app/immutable/assets/_page.Bmr1F0Zh.css" - ] - }, - "src/routes/logs/+page.svelte": { - "file": "entries/pages/logs/_page.svelte.js", - "name": "entries/pages/logs/_page.svelte", - "src": "src/routes/logs/+page.svelte", - "isEntry": true, - "imports": [ - "_index2.js" - ], - "css": [ - "_app/immutable/assets/_page.DQdHIvb_.css" - ] - }, - "src/routes/queue/+page.svelte": { - "file": "entries/pages/queue/_page.svelte.js", - "name": "entries/pages/queue/_page.svelte", - "src": "src/routes/queue/+page.svelte", - "isEntry": true, - "css": [ - "_app/immutable/assets/_page.DnP_H9DZ.css" - ] - }, - "src/routes/users/+page.svelte": { - "file": "entries/pages/users/_page.svelte.js", - "name": "entries/pages/users/_page.svelte", - "src": "src/routes/users/+page.svelte", - "isEntry": true, - "imports": [ - "_exports.js", - "_utils.js", - "_root.js", - "_state.svelte.js" - ] - } -} \ No newline at end of file diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.DkgBtk4_.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.DkgBtk4_.css deleted file mode 100644 index 792fc3f..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.DkgBtk4_.css +++ /dev/null @@ -1 +0,0 @@ -.loading.svelte-12qhfyh{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#666}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#f5f5f5}.app.svelte-12qhfyh{min-height:100vh}header.svelte-12qhfyh{background:#2c3e50;color:#fff;padding:.75rem 2rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}h1.svelte-12qhfyh{margin:0;font-size:1.25rem}nav.svelte-12qhfyh{display:flex;gap:.5rem;flex:1}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#ecf0f1;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;transition:background .2s}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#34495e}main.svelte-12qhfyh{padding:2rem;max-width:1400px;margin:0 auto}.user-menu.svelte-12qhfyh{display:flex;align-items:center;gap:1rem;font-size:.9rem}.user-menu.svelte-12qhfyh span:where(.svelte-12qhfyh){color:#ecf0f1}.user-menu.svelte-12qhfyh a:where(.svelte-12qhfyh){color:#ecf0f1;text-decoration:none;padding:.375rem .75rem;border:1px solid #7f8c8d;border-radius:4px;font-size:.85rem}.user-menu.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:#34495e}.user-menu.svelte-12qhfyh button:where(.svelte-12qhfyh){background:transparent;border:1px solid #7f8c8d;color:#ecf0f1;padding:.375rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem}.user-menu.svelte-12qhfyh button:where(.svelte-12qhfyh):hover{background:#34495e} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bmr1F0Zh.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bmr1F0Zh.css deleted file mode 100644 index a5fa7a6..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bmr1F0Zh.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-oa5z6t{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.back.svelte-oa5z6t{color:#3498db;text-decoration:none;font-size:.9rem}.back.svelte-oa5z6t:hover{text-decoration:underline}.header.svelte-oa5z6t h2:where(.svelte-oa5z6t){flex:1;margin:0}table.svelte-oa5z6t{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-oa5z6t,td.svelte-oa5z6t{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-oa5z6t{background:#f8f9fa;font-weight:600}button.svelte-oa5z6t{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-oa5z6t{background:#e74c3c}.modal-backdrop.svelte-oa5z6t{position:fixed;inset:0;background:#00000080;border:none;cursor:pointer;z-index:100}.modal.svelte-oa5z6t{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:2rem;border-radius:8px;min-width:400px;z-index:101}.modal.svelte-oa5z6t h3:where(.svelte-oa5z6t){margin-top:0}.modal.svelte-oa5z6t form:where(.svelte-oa5z6t){display:flex;flex-direction:column;gap:1rem}.modal.svelte-oa5z6t label:where(.svelte-oa5z6t){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-oa5z6t input:where(.svelte-oa5z6t){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-oa5z6t{display:flex;gap:1rem;justify-content:flex-end} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bq7myTre.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bq7myTre.css deleted file mode 100644 index 5e0a5f3..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bq7myTre.css +++ /dev/null @@ -1 +0,0 @@ -.login-container.svelte-1i2smtp{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2c3e50,#34495e)}.login-card.svelte-1i2smtp{background:#fff;padding:3rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}h1.svelte-1i2smtp{margin:0;text-align:center;color:#2c3e50;font-size:2rem}.subtitle.svelte-1i2smtp{text-align:center;color:#7f8c8d;margin:.5rem 0 2rem}.error.svelte-1i2smtp{background:#fee;border:1px solid #fcc;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}form.svelte-1i2smtp{display:flex;flex-direction:column;gap:1.25rem}label.svelte-1i2smtp{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#2c3e50}input.svelte-1i2smtp{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}input.svelte-1i2smtp:focus{outline:none;border-color:#3498db}.forgot.svelte-1i2smtp{text-align:right;margin-top:-.5rem}.forgot.svelte-1i2smtp a:where(.svelte-1i2smtp){color:#3498db;text-decoration:none;font-size:.9rem}.forgot.svelte-1i2smtp a:where(.svelte-1i2smtp):hover{text-decoration:underline}button.svelte-1i2smtp{padding:.875rem;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:.5rem}button.svelte-1i2smtp:hover:not(:disabled){background:#2980b9}button.svelte-1i2smtp:disabled{opacity:.7;cursor:not-allowed} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.By2d6Bxb.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.By2d6Bxb.css deleted file mode 100644 index f2098ff..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.By2d6Bxb.css +++ /dev/null @@ -1 +0,0 @@ -.stats-grid.svelte-1uha8ag{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:2rem}.stat-card.svelte-1uha8ag{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.stat-card.warning.svelte-1uha8ag{border:2px solid #e74c3c}.stat-card.svelte-1uha8ag h3:where(.svelte-1uha8ag){font-size:2.5rem;margin:0;color:#2c3e50}.stat-card.svelte-1uha8ag p:where(.svelte-1uha8ag){margin:.5rem 0 0;color:#7f8c8d}.warning.svelte-1uha8ag h3:where(.svelte-1uha8ag){color:#e74c3c} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CG2X--Z8.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CG2X--Z8.css deleted file mode 100644 index ea80681..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CG2X--Z8.css +++ /dev/null @@ -1 +0,0 @@ -.page-container.svelte-imhhoo{min-height:100vh;background:#f5f7fa}.header.svelte-imhhoo{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.header-content.svelte-imhhoo{max-width:800px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header.svelte-imhhoo h1:where(.svelte-imhhoo){margin:0;font-size:1.5rem;color:#2c3e50}.user-info.svelte-imhhoo{display:flex;align-items:center;gap:1rem}.logout.svelte-imhhoo{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.content.svelte-imhhoo{max-width:500px;margin:2rem auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.error.svelte-imhhoo{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem}.success.svelte-imhhoo{background:#efe;color:#060;padding:.75rem;border-radius:4px;margin-bottom:1rem}form.svelte-imhhoo{display:flex;flex-direction:column;gap:1rem}label.svelte-imhhoo{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#555}input.svelte-imhhoo{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}input.svelte-imhhoo:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button.svelte-imhhoo{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;margin-top:.5rem}button.svelte-imhhoo:hover:not(:disabled){opacity:.9}button.svelte-imhhoo:disabled{opacity:.6;cursor:not-allowed}.links.svelte-imhhoo{margin-top:1.5rem;text-align:center}.links.svelte-imhhoo a:where(.svelte-imhhoo){color:#667eea;text-decoration:none}.links.svelte-imhhoo a:where(.svelte-imhhoo):hover{text-decoration:underline} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Ci0QlAaW.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Ci0QlAaW.css deleted file mode 100644 index 6ef841b..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Ci0QlAaW.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-lb8x40{margin-bottom:2rem}.back.svelte-lb8x40{display:inline-block;margin-bottom:1rem;color:#3498db;text-decoration:none}.back.svelte-lb8x40:hover{text-decoration:underline}.error.svelte-lb8x40{color:#e74c3c}.cards-grid.svelte-lb8x40{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.card.svelte-lb8x40{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.card.svelte-lb8x40:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.card.svelte-lb8x40 h3:where(.svelte-lb8x40){font-size:3rem;margin:0;color:#3498db}.card.svelte-lb8x40 p:where(.svelte-lb8x40){margin:.5rem 0 0;color:#7f8c8d;font-size:1.1rem} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CvxoqpCi.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CvxoqpCi.css deleted file mode 100644 index f53ac9e..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CvxoqpCi.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-15uyvzd{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.back.svelte-15uyvzd{color:#3498db;text-decoration:none;font-size:.9rem}.back.svelte-15uyvzd:hover{text-decoration:underline}.header.svelte-15uyvzd h2:where(.svelte-15uyvzd){flex:1;margin:0}table.svelte-15uyvzd{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-15uyvzd,td.svelte-15uyvzd{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-15uyvzd{background:#f8f9fa;font-weight:600}button.svelte-15uyvzd{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-15uyvzd{background:#e74c3c}.modal-backdrop.svelte-15uyvzd{position:fixed;inset:0;background:#00000080;border:none;cursor:pointer;z-index:100}.modal.svelte-15uyvzd{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:2rem;border-radius:8px;min-width:400px;z-index:101}.modal.svelte-15uyvzd h3:where(.svelte-15uyvzd){margin-top:0}.modal.svelte-15uyvzd form:where(.svelte-15uyvzd){display:flex;flex-direction:column;gap:1rem}.modal.svelte-15uyvzd label:where(.svelte-15uyvzd){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-15uyvzd input:where(.svelte-15uyvzd){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-15uyvzd{display:flex;gap:1rem;justify-content:flex-end} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DQdHIvb_.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DQdHIvb_.css deleted file mode 100644 index 3f6263d..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DQdHIvb_.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-1lsf4ps{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.controls.svelte-1lsf4ps{display:flex;gap:1rem;align-items:center}.controls.svelte-1lsf4ps label:where(.svelte-1lsf4ps){display:flex;align-items:center;gap:.5rem}.controls.svelte-1lsf4ps select:where(.svelte-1lsf4ps),.controls.svelte-1lsf4ps input:where(.svelte-1lsf4ps){padding:.5rem;border:1px solid #ddd;border-radius:4px}button.svelte-1lsf4ps{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}.log-container.svelte-1lsf4ps{background:#1a1a2e;color:#eee;padding:1rem;border-radius:8px;max-height:600px;overflow-y:auto;font-family:monospace;font-size:.85rem}.log-entry.svelte-1lsf4ps{padding:.25rem 0;border-bottom:1px solid #333}.log-entry.svelte-1lsf4ps:last-child{border-bottom:none}.timestamp.svelte-1lsf4ps{color:#888;margin-right:.5rem}.priority.svelte-1lsf4ps{margin-right:.5rem;font-weight:700}.log-entry.error.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#e74c3c}.log-entry.warning.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#f39c12}.log-entry.info.svelte-1lsf4ps .priority:where(.svelte-1lsf4ps){color:#3498db}.error.svelte-1lsf4ps{color:#e74c3c} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DnP_H9DZ.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DnP_H9DZ.css deleted file mode 100644 index 5caa7e3..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DnP_H9DZ.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-qegr5c{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}table.svelte-qegr5c{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-qegr5c,td.svelte-qegr5c{padding:.75rem;text-align:left;border-bottom:1px solid #eee;font-size:.9rem}th.svelte-qegr5c{background:#f8f9fa;font-weight:600}.id.svelte-qegr5c{font-family:monospace;font-size:.8rem}.reason.svelte-qegr5c{color:#e74c3c}button.svelte-qegr5c{padding:.25rem .5rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff;font-size:.8rem;margin-right:.25rem}button.danger.svelte-qegr5c{background:#e74c3c}.error.svelte-qegr5c{color:#e74c3c} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.YbbfqdJp.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.YbbfqdJp.css deleted file mode 100644 index 47f5e83..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.YbbfqdJp.css +++ /dev/null @@ -1 +0,0 @@ -.page-container.svelte-1s1ktxm{min-height:100vh;background:#f5f7fa}.header.svelte-1s1ktxm{background:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center}.header.svelte-1s1ktxm h1:where(.svelte-1s1ktxm){margin:0;font-size:1.5rem;color:#2c3e50}.user-info.svelte-1s1ktxm{display:flex;align-items:center;gap:1rem}.logout.svelte-1s1ktxm{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.content.svelte-1s1ktxm{max-width:800px;margin:2rem auto;padding:0 1rem}.card.svelte-1s1ktxm{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.card.svelte-1s1ktxm h2:where(.svelte-1s1ktxm){margin:0 0 1rem;color:#2c3e50;font-size:1.2rem}.info-row.svelte-1s1ktxm{display:flex;padding:.75rem 0;border-bottom:1px solid #eee}.info-row.svelte-1s1ktxm:last-child{border-bottom:none}.label.svelte-1s1ktxm{font-weight:500;color:#666;width:120px}.value.svelte-1s1ktxm{color:#2c3e50}.actions.svelte-1s1ktxm{display:flex;gap:1rem;flex-wrap:wrap}.action-btn.svelte-1s1ktxm{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:opacity .2s}.action-btn.svelte-1s1ktxm:hover{opacity:.9} diff --git a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.w_qTFDpy.css b/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.w_qTFDpy.css deleted file mode 100644 index 4f2c471..0000000 --- a/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.w_qTFDpy.css +++ /dev/null @@ -1 +0,0 @@ -.login-container.svelte-15sczaz{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-card.svelte-15sczaz{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}h1.svelte-15sczaz{text-align:center;margin:0 0 1rem;color:#2c3e50}.info.svelte-15sczaz{color:#666;text-align:center;margin-bottom:1.5rem;font-size:.9rem}.error.svelte-15sczaz{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.success.svelte-15sczaz{background:#efe;color:#060;padding:1rem;border-radius:4px;margin-bottom:1rem;text-align:center}.success.svelte-15sczaz p:where(.svelte-15sczaz){margin:.5rem 0}form.svelte-15sczaz{display:flex;flex-direction:column;gap:1rem}label.svelte-15sczaz{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#555}input.svelte-15sczaz{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}input.svelte-15sczaz:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button.svelte-15sczaz{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s}button.svelte-15sczaz:hover:not(:disabled){opacity:.9}button.svelte-15sczaz:disabled{opacity:.6;cursor:not-allowed}.links.svelte-15sczaz{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px solid #eee}.links.svelte-15sczaz a:where(.svelte-15sczaz){color:#667eea;text-decoration:none;font-size:.9rem}.links.svelte-15sczaz a:where(.svelte-15sczaz):hover{text-decoration:underline} diff --git a/frontend/.svelte-kit/output/server/chunks/environment.js b/frontend/.svelte-kit/output/server/chunks/environment.js deleted file mode 100644 index ad45c3c..0000000 --- a/frontend/.svelte-kit/output/server/chunks/environment.js +++ /dev/null @@ -1,34 +0,0 @@ -let base = ""; -let assets = base; -const app_dir = "_app"; -const relative = true; -const initial = { base, assets }; -function override(paths) { - base = paths.base; - assets = paths.assets; -} -function reset() { - base = initial.base; - assets = initial.assets; -} -function set_assets(path) { - assets = initial.assets = path; -} -let prerendering = false; -function set_building() { -} -function set_prerendering() { - prerendering = true; -} -export { - assets as a, - base as b, - app_dir as c, - reset as d, - set_building as e, - set_prerendering as f, - override as o, - prerendering as p, - relative as r, - set_assets as s -}; diff --git a/frontend/.svelte-kit/output/server/chunks/exports.js b/frontend/.svelte-kit/output/server/chunks/exports.js deleted file mode 100644 index 81554d4..0000000 --- a/frontend/.svelte-kit/output/server/chunks/exports.js +++ /dev/null @@ -1,174 +0,0 @@ -const SCHEME = /^[a-z][a-z\d+\-.]+:/i; -const internal = new URL("sveltekit-internal://"); -function resolve(base, path) { - if (path[0] === "/" && path[1] === "/") return path; - let url = new URL(base, internal); - url = new URL(path, url); - return url.protocol === internal.protocol ? url.pathname + url.search + url.hash : url.href; -} -function normalize_path(path, trailing_slash) { - if (path === "/" || trailing_slash === "ignore") return path; - if (trailing_slash === "never") { - return path.endsWith("/") ? path.slice(0, -1) : path; - } else if (trailing_slash === "always" && !path.endsWith("/")) { - return path + "/"; - } - return path; -} -function decode_pathname(pathname) { - return pathname.split("%25").map(decodeURI).join("%25"); -} -function decode_params(params) { - for (const key in params) { - params[key] = decodeURIComponent(params[key]); - } - return params; -} -function make_trackable(url, callback, search_params_callback, allow_hash = false) { - const tracked = new URL(url); - Object.defineProperty(tracked, "searchParams", { - value: new Proxy(tracked.searchParams, { - get(obj, key) { - if (key === "get" || key === "getAll" || key === "has") { - return (param, ...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); - }; - } -} -function validator(expected) { - function validate(module, file) { - if (!module) return; - for (const key in module) { - if (key[0] === "_" || expected.has(key)) continue; - const values = [...expected.values()]; - const hint = hint_for_supported_files(key, file?.slice(file.lastIndexOf("."))) ?? `valid exports are ${values.join(", ")}, or anything with a '_' prefix`; - throw new Error(`Invalid export '${key}'${file ? ` in ${file}` : ""} (${hint})`); - } - } - return validate; -} -function hint_for_supported_files(key, ext = ".js") { - const supported_files = []; - if (valid_layout_exports.has(key)) { - supported_files.push(`+layout${ext}`); - } - if (valid_page_exports.has(key)) { - supported_files.push(`+page${ext}`); - } - if (valid_layout_server_exports.has(key)) { - supported_files.push(`+layout.server${ext}`); - } - if (valid_page_server_exports.has(key)) { - supported_files.push(`+page.server${ext}`); - } - if (valid_server_exports.has(key)) { - supported_files.push(`+server${ext}`); - } - if (supported_files.length > 0) { - return `'${key}' is a valid export in ${supported_files.slice(0, -1).join(", ")}${supported_files.length > 1 ? " or " : ""}${supported_files.at(-1)}`; - } -} -const valid_layout_exports = /* @__PURE__ */ new Set([ - "load", - "prerender", - "csr", - "ssr", - "trailingSlash", - "config" -]); -const valid_page_exports = /* @__PURE__ */ new Set([...valid_layout_exports, "entries"]); -const valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]); -const valid_page_server_exports = /* @__PURE__ */ new Set([...valid_layout_server_exports, "actions", "entries"]); -const valid_server_exports = /* @__PURE__ */ new Set([ - "GET", - "POST", - "PATCH", - "PUT", - "DELETE", - "OPTIONS", - "HEAD", - "fallback", - "prerender", - "trailingSlash", - "config", - "entries" -]); -const validate_layout_exports = validator(valid_layout_exports); -const validate_page_exports = validator(valid_page_exports); -const validate_layout_server_exports = validator(valid_layout_server_exports); -const validate_page_server_exports = validator(valid_page_server_exports); -const validate_server_exports = validator(valid_server_exports); -export { - SCHEME as S, - decode_params as a, - validate_layout_exports as b, - validate_page_server_exports as c, - disable_search as d, - validate_page_exports as e, - decode_pathname as f, - validate_server_exports as g, - make_trackable as m, - normalize_path as n, - resolve as r, - validate_layout_server_exports as v -}; diff --git a/frontend/.svelte-kit/output/server/chunks/false.js b/frontend/.svelte-kit/output/server/chunks/false.js deleted file mode 100644 index 85bc56d..0000000 --- a/frontend/.svelte-kit/output/server/chunks/false.js +++ /dev/null @@ -1,4 +0,0 @@ -const BROWSER = false; -export { - BROWSER as B -}; diff --git a/frontend/.svelte-kit/output/server/chunks/index.js b/frontend/.svelte-kit/output/server/chunks/index.js deleted file mode 100644 index aff0709..0000000 --- a/frontend/.svelte-kit/output/server/chunks/index.js +++ /dev/null @@ -1,59 +0,0 @@ -import { n as noop } from "./index2.js"; -import { s as safe_not_equal } from "./root.js"; -const subscriber_queue = []; -function readable(value, start) { - return { - subscribe: writable(value, start).subscribe - }; -} -function writable(value, start = noop) { - let stop = null; - const subscribers = /* @__PURE__ */ new Set(); - function set(new_value) { - if (safe_not_equal(value, new_value)) { - value = new_value; - if (stop) { - const run_queue = !subscriber_queue.length; - for (const subscriber of subscribers) { - subscriber[1](); - subscriber_queue.push(subscriber, value); - } - if (run_queue) { - for (let i = 0; i < subscriber_queue.length; i += 2) { - subscriber_queue[i][0](subscriber_queue[i + 1]); - } - subscriber_queue.length = 0; - } - } - } - } - function update(fn) { - set(fn( - /** @type {T} */ - value - )); - } - function subscribe(run, invalidate = noop) { - const subscriber = [run, invalidate]; - subscribers.add(subscriber); - if (subscribers.size === 1) { - stop = start(set, update) || noop; - } - run( - /** @type {T} */ - value - ); - return () => { - subscribers.delete(subscriber); - if (subscribers.size === 0 && stop) { - stop(); - stop = null; - } - }; - } - return { set, update, subscribe }; -} -export { - readable as r, - writable as w -}; diff --git a/frontend/.svelte-kit/output/server/chunks/index2.js b/frontend/.svelte-kit/output/server/chunks/index2.js deleted file mode 100644 index 9953b10..0000000 --- a/frontend/.svelte-kit/output/server/chunks/index2.js +++ /dev/null @@ -1,1250 +0,0 @@ -import { clsx as clsx$1 } from "clsx"; -import * as devalue from "devalue"; -var is_array = Array.isArray; -var index_of = Array.prototype.indexOf; -var includes = Array.prototype.includes; -var array_from = Array.from; -var define_property = Object.defineProperty; -var get_descriptor = Object.getOwnPropertyDescriptor; -var object_prototype = Object.prototype; -var array_prototype = Array.prototype; -var get_prototype_of = Object.getPrototypeOf; -var is_extensible = Object.isExtensible; -var has_own_property = Object.prototype.hasOwnProperty; -const noop = () => { -}; -function run_all(arr) { - for (var i = 0; i < arr.length; i++) { - arr[i](); - } -} -function deferred() { - var resolve; - var reject; - var promise = new Promise((res, rej) => { - resolve = res; - reject = rej; - }); - return { promise, resolve, reject }; -} -const DERIVED = 1 << 1; -const EFFECT = 1 << 2; -const RENDER_EFFECT = 1 << 3; -const MANAGED_EFFECT = 1 << 24; -const BLOCK_EFFECT = 1 << 4; -const BRANCH_EFFECT = 1 << 5; -const ROOT_EFFECT = 1 << 6; -const BOUNDARY_EFFECT = 1 << 7; -const CONNECTED = 1 << 9; -const CLEAN = 1 << 10; -const DIRTY = 1 << 11; -const MAYBE_DIRTY = 1 << 12; -const INERT = 1 << 13; -const DESTROYED = 1 << 14; -const REACTION_RAN = 1 << 15; -const DESTROYING = 1 << 25; -const EFFECT_TRANSPARENT = 1 << 16; -const EAGER_EFFECT = 1 << 17; -const HEAD_EFFECT = 1 << 18; -const EFFECT_PRESERVED = 1 << 19; -const USER_EFFECT = 1 << 20; -const WAS_MARKED = 1 << 16; -const REACTION_IS_UPDATING = 1 << 21; -const ASYNC = 1 << 22; -const ERROR_VALUE = 1 << 23; -const STATE_SYMBOL = Symbol("$state"); -const LEGACY_PROPS = Symbol("legacy props"); -const STALE_REACTION = new class StaleReactionError extends Error { - name = "StaleReactionError"; - message = "The reaction that called `getAbortSignal()` was re-run or destroyed"; -}(); -const COMMENT_NODE = 8; -function lifecycle_outside_component(name) { - { - throw new Error(`https://svelte.dev/e/lifecycle_outside_component`); - } -} -const HYDRATION_START = "["; -const HYDRATION_START_ELSE = "[!"; -const HYDRATION_START_FAILED = "[?"; -const HYDRATION_END = "]"; -const HYDRATION_ERROR = {}; -const ELEMENT_IS_NAMESPACED = 1; -const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1; -const ELEMENT_IS_INPUT = 1 << 2; -const UNINITIALIZED = Symbol(); -const DOM_BOOLEAN_ATTRIBUTES = [ - "allowfullscreen", - "async", - "autofocus", - "autoplay", - "checked", - "controls", - "default", - "disabled", - "formnovalidate", - "indeterminate", - "inert", - "ismap", - "loop", - "multiple", - "muted", - "nomodule", - "novalidate", - "open", - "playsinline", - "readonly", - "required", - "reversed", - "seamless", - "selected", - "webkitdirectory", - "defer", - "disablepictureinpicture", - "disableremoteplayback" -]; -function is_boolean_attribute(name) { - return DOM_BOOLEAN_ATTRIBUTES.includes(name); -} -const PASSIVE_EVENTS = ["touchstart", "touchmove"]; -function is_passive_event(name) { - return PASSIVE_EVENTS.includes(name); -} -const ATTR_REGEX = /[&"<]/g; -const CONTENT_REGEX = /[&<]/g; -function escape_html(value, is_attr) { - const str = String(value ?? ""); - const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX; - pattern.lastIndex = 0; - let escaped = ""; - let last = 0; - while (pattern.test(str)) { - const i = pattern.lastIndex - 1; - const ch = str[i]; - escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<"); - last = i + 1; - } - return escaped + str.substring(last); -} -const replacements = { - translate: /* @__PURE__ */ new Map([ - [true, "yes"], - [false, "no"] - ]) -}; -function attr(name, value, is_boolean = false) { - if (name === "hidden" && value !== "until-found") { - is_boolean = true; - } - if (value == null || !value && is_boolean) return ""; - const normalized = has_own_property.call(replacements, name) && replacements[name].get(value) || value; - const assignment = is_boolean ? `=""` : `="${escape_html(normalized, true)}"`; - return ` ${name}${assignment}`; -} -function clsx(value) { - if (typeof value === "object") { - return clsx$1(value); - } else { - return value ?? ""; - } -} -const whitespace = [..." \n\r\f \v\uFEFF"]; -function to_class(value, hash, directives) { - var classname = value == null ? "" : "" + value; - if (hash) { - classname = classname ? classname + " " + hash : hash; - } - if (directives) { - for (var key of Object.keys(directives)) { - if (directives[key]) { - classname = classname ? classname + " " + key : key; - } else if (classname.length) { - var len = key.length; - var a = 0; - while ((a = classname.indexOf(key, a)) >= 0) { - var b = a + len; - if ((a === 0 || whitespace.includes(classname[a - 1])) && (b === classname.length || whitespace.includes(classname[b]))) { - classname = (a === 0 ? "" : classname.substring(0, a)) + classname.substring(b + 1); - } else { - a = b; - } - } - } - } - } - return classname === "" ? null : classname; -} -function append_styles(styles, important = false) { - var separator = important ? " !important;" : ";"; - var css = ""; - for (var key of Object.keys(styles)) { - var value = styles[key]; - if (value != null && value !== "") { - css += " " + key + ": " + value + separator; - } - } - return css; -} -function to_css_name(name) { - if (name[0] !== "-" || name[1] !== "-") { - return name.toLowerCase(); - } - return name; -} -function to_style(value, styles) { - if (styles) { - var new_style = ""; - var normal_styles; - var important_styles; - if (Array.isArray(styles)) { - normal_styles = styles[0]; - important_styles = styles[1]; - } else { - normal_styles = styles; - } - if (value) { - value = String(value).replaceAll(/\s*\/\*.*?\*\/\s*/g, "").trim(); - var in_str = false; - var in_apo = 0; - var in_comment = false; - var reserved_names = []; - if (normal_styles) { - reserved_names.push(...Object.keys(normal_styles).map(to_css_name)); - } - if (important_styles) { - reserved_names.push(...Object.keys(important_styles).map(to_css_name)); - } - var start_index = 0; - var name_index = -1; - const len = value.length; - for (var i = 0; i < len; i++) { - var c = value[i]; - if (in_comment) { - if (c === "/" && value[i - 1] === "*") { - in_comment = false; - } - } else if (in_str) { - if (in_str === c) { - in_str = false; - } - } else if (c === "/" && value[i + 1] === "*") { - in_comment = true; - } else if (c === '"' || c === "'") { - in_str = c; - } else if (c === "(") { - in_apo++; - } else if (c === ")") { - in_apo--; - } - if (!in_comment && in_str === false && in_apo === 0) { - if (c === ":" && name_index === -1) { - name_index = i; - } else if (c === ";" || i === len - 1) { - if (name_index !== -1) { - var name = to_css_name(value.substring(start_index, name_index).trim()); - if (!reserved_names.includes(name)) { - if (c !== ";") { - i++; - } - var property = value.substring(start_index, i).trim(); - new_style += " " + property + ";"; - } - } - start_index = i + 1; - name_index = -1; - } - } - } - } - if (normal_styles) { - new_style += append_styles(normal_styles); - } - if (important_styles) { - new_style += append_styles(important_styles, true); - } - new_style = new_style.trim(); - return new_style === "" ? null : new_style; - } - return value == null ? null : String(value); -} -const BLOCK_OPEN = ``; -const BLOCK_CLOSE = ``; -let controller = null; -function abort() { - controller?.abort(STALE_REACTION); - controller = null; -} -function await_invalid() { - const error = new Error(`await_invalid -Encountered asynchronous work while rendering synchronously. -https://svelte.dev/e/await_invalid`); - error.name = "Svelte error"; - throw error; -} -function invalid_csp() { - const error = new Error(`invalid_csp -\`csp.nonce\` was set while \`csp.hash\` was \`true\`. These options cannot be used simultaneously. -https://svelte.dev/e/invalid_csp`); - error.name = "Svelte error"; - throw error; -} -function server_context_required() { - const error = new Error(`server_context_required -Could not resolve \`render\` context. -https://svelte.dev/e/server_context_required`); - error.name = "Svelte error"; - throw error; -} -var ssr_context = null; -function set_ssr_context(v) { - ssr_context = v; -} -function getContext(key) { - const context_map = get_or_init_context_map(); - const result = ( - /** @type {T} */ - context_map.get(key) - ); - return result; -} -function setContext(key, context) { - get_or_init_context_map().set(key, context); - return context; -} -function get_or_init_context_map(name) { - if (ssr_context === null) { - lifecycle_outside_component(); - } - return ssr_context.c ??= new Map(get_parent_context(ssr_context) || void 0); -} -function push(fn) { - ssr_context = { p: ssr_context, c: null, r: null }; -} -function pop() { - ssr_context = /** @type {SSRContext} */ - ssr_context.p; -} -function get_parent_context(ssr_context2) { - let parent = ssr_context2.p; - while (parent !== null) { - const context_map = parent.c; - if (context_map !== null) { - return context_map; - } - parent = parent.p; - } - return null; -} -function unresolved_hydratable(key, stack) { - { - console.warn(`https://svelte.dev/e/unresolved_hydratable`); - } -} -function get_render_context() { - const store = als?.getStore(); - { - server_context_required(); - } - return store; -} -let als = null; -let text_encoder; -let crypto; -const obfuscated_import = (module_name) => import( - /* @vite-ignore */ - module_name -); -async function sha256(data) { - text_encoder ??= new TextEncoder(); - crypto ??= globalThis.crypto?.subtle?.digest ? globalThis.crypto : ( - // @ts-ignore - we don't install node types in the prod build - // don't use import('node:crypto') directly because static analysers will think we rely on node when we don't - (await obfuscated_import("node:crypto")).webcrypto - ); - const hash_buffer = await crypto.subtle.digest("SHA-256", text_encoder.encode(data)); - return base64_encode(hash_buffer); -} -function base64_encode(bytes) { - if (globalThis.Buffer) { - return globalThis.Buffer.from(bytes).toString("base64"); - } - let binary = ""; - for (let i = 0; i < bytes.length; i++) { - binary += String.fromCharCode(bytes[i]); - } - return btoa(binary); -} -class Renderer { - /** - * The contents of the renderer. - * @type {RendererItem[]} - */ - #out = []; - /** - * Any `onDestroy` callbacks registered during execution of this renderer. - * @type {(() => void)[] | undefined} - */ - #on_destroy = void 0; - /** - * Whether this renderer is a component body. - * @type {boolean} - */ - #is_component_body = false; - /** - * If set, this renderer is an error boundary. When async collection - * of the children fails, the failed snippet is rendered instead. - * @type {{ - * failed: (renderer: Renderer, error: unknown, reset: () => void) => void; - * transformError: (error: unknown) => unknown; - * context: SSRContext | null; - * } | null} - */ - #boundary = null; - /** - * The type of string content that this renderer is accumulating. - * @type {RendererType} - */ - type; - /** @type {Renderer | undefined} */ - #parent; - /** - * Asynchronous work associated with this renderer - * @type {Promise | undefined} - */ - promise = void 0; - /** - * State which is associated with the content tree as a whole. - * It will be re-exposed, uncopied, on all children. - * @type {SSRState} - * @readonly - */ - global; - /** - * State that is local to the branch it is declared in. - * It will be shallow-copied to all children. - * - * @type {{ select_value: string | undefined }} - */ - local; - /** - * @param {SSRState} global - * @param {Renderer | undefined} [parent] - */ - constructor(global, parent) { - this.#parent = parent; - this.global = global; - this.local = parent ? { ...parent.local } : { select_value: void 0 }; - this.type = parent ? parent.type : "body"; - } - /** - * @param {(renderer: Renderer) => void} fn - */ - head(fn) { - const head = new Renderer(this.global, this); - head.type = "head"; - this.#out.push(head); - head.child(fn); - } - /** - * @param {Array>} blockers - * @param {(renderer: Renderer) => void} fn - */ - async_block(blockers, fn) { - this.#out.push(BLOCK_OPEN); - this.async(blockers, fn); - this.#out.push(BLOCK_CLOSE); - } - /** - * @param {Array>} blockers - * @param {(renderer: Renderer) => void} fn - */ - async(blockers, fn) { - let callback = fn; - if (blockers.length > 0) { - const context = ssr_context; - callback = (renderer) => { - return Promise.all(blockers).then(() => { - const previous_context = ssr_context; - try { - set_ssr_context(context); - return fn(renderer); - } finally { - set_ssr_context(previous_context); - } - }); - }; - } - this.child(callback); - } - /** - * @param {Array<() => void>} thunks - */ - run(thunks) { - const context = ssr_context; - let promise = Promise.resolve(thunks[0]()); - const promises = [promise]; - for (const fn of thunks.slice(1)) { - promise = promise.then(() => { - const previous_context = ssr_context; - set_ssr_context(context); - try { - return fn(); - } finally { - set_ssr_context(previous_context); - } - }); - promises.push(promise); - } - promise.catch(noop); - this.promise = promise; - return promises; - } - /** - * @param {(renderer: Renderer) => MaybePromise} fn - */ - child_block(fn) { - this.#out.push(BLOCK_OPEN); - this.child(fn); - this.#out.push(BLOCK_CLOSE); - } - /** - * Create a child renderer. The child renderer inherits the state from the parent, - * but has its own content. - * @param {(renderer: Renderer) => MaybePromise} fn - */ - child(fn) { - const child = new Renderer(this.global, this); - this.#out.push(child); - const parent = ssr_context; - set_ssr_context({ - ...ssr_context, - p: parent, - c: null, - r: child - }); - const result = fn(child); - set_ssr_context(parent); - if (result instanceof Promise) { - result.catch(noop); - result.finally(() => set_ssr_context(null)).catch(noop); - if (child.global.mode === "sync") { - await_invalid(); - } - child.promise = result; - } - return child; - } - /** - * Render children inside an error boundary. If the children throw and the API-level - * `transformError` transform handles the error (doesn't re-throw), the `failed` snippet is - * rendered instead. Otherwise the error propagates. - * - * @param {{ failed?: (renderer: Renderer, error: unknown, reset: () => void) => void }} props - * @param {(renderer: Renderer) => MaybePromise} children_fn - */ - boundary(props, children_fn) { - const child = new Renderer(this.global, this); - this.#out.push(child); - const parent_context = ssr_context; - if (props.failed) { - child.#boundary = { - failed: props.failed, - transformError: this.global.transformError, - context: parent_context - }; - } - set_ssr_context({ - ...ssr_context, - p: parent_context, - c: null, - r: child - }); - try { - const result = children_fn(child); - set_ssr_context(parent_context); - if (result instanceof Promise) { - if (child.global.mode === "sync") { - await_invalid(); - } - result.catch(noop); - child.promise = result; - } - } catch (error) { - set_ssr_context(parent_context); - const failed_snippet = props.failed; - if (!failed_snippet) throw error; - const result = this.global.transformError(error); - child.#out.length = 0; - child.#boundary = null; - if (result instanceof Promise) { - if (this.global.mode === "sync") { - await_invalid(); - } - child.promise = /** @type {Promise} */ - result.then((transformed) => { - set_ssr_context(parent_context); - child.#out.push(Renderer.#serialize_failed_boundary(transformed)); - failed_snippet(child, transformed, noop); - child.#out.push(BLOCK_CLOSE); - }); - child.promise.catch(noop); - } else { - child.#out.push(Renderer.#serialize_failed_boundary(result)); - failed_snippet(child, result, noop); - child.#out.push(BLOCK_CLOSE); - } - } - } - /** - * Create a component renderer. The component renderer inherits the state from the parent, - * but has its own content. It is treated as an ordering boundary for ondestroy callbacks. - * @param {(renderer: Renderer) => MaybePromise} fn - * @param {Function} [component_fn] - * @returns {void} - */ - component(fn, component_fn) { - push(); - const child = this.child(fn); - child.#is_component_body = true; - pop(); - } - /** - * @param {Record} attrs - * @param {(renderer: Renderer) => void} fn - * @param {string | undefined} [css_hash] - * @param {Record | undefined} [classes] - * @param {Record | undefined} [styles] - * @param {number | undefined} [flags] - * @param {boolean | undefined} [is_rich] - * @returns {void} - */ - select(attrs, fn, css_hash, classes, styles, flags, is_rich) { - const { value, ...select_attrs } = attrs; - this.push(``); - this.child((renderer) => { - renderer.local.select_value = value; - fn(renderer); - }); - this.push(`${is_rich ? "" : ""}`); - } - /** - * @param {Record} attrs - * @param {string | number | boolean | ((renderer: Renderer) => void)} body - * @param {string | undefined} [css_hash] - * @param {Record | undefined} [classes] - * @param {Record | undefined} [styles] - * @param {number | undefined} [flags] - * @param {boolean | undefined} [is_rich] - */ - option(attrs, body, css_hash, classes, styles, flags, is_rich) { - this.#out.push(` { - if (has_own_property.call(attrs, "value")) { - value = attrs.value; - } - if (value === this.local.select_value) { - renderer.#out.push(' selected=""'); - } - renderer.#out.push(`>${body2}${is_rich ? "" : ""}`); - if (head) { - renderer.head((child) => child.push(head)); - } - }; - if (typeof body === "function") { - this.child((renderer) => { - const r = new Renderer(this.global, this); - body(r); - if (this.global.mode === "async") { - return r.#collect_content_async().then((content) => { - close(renderer, content.body.replaceAll("", ""), content); - }); - } else { - const content = r.#collect_content(); - close(renderer, content.body.replaceAll("", ""), content); - } - }); - } else { - close(this, body, { body: escape_html(body) }); - } - } - /** - * @param {(renderer: Renderer) => void} fn - */ - title(fn) { - const path = this.get_path(); - const close = (head) => { - this.global.set_title(head, path); - }; - this.child((renderer) => { - const r = new Renderer(renderer.global, renderer); - fn(r); - if (renderer.global.mode === "async") { - return r.#collect_content_async().then((content) => { - close(content.head); - }); - } else { - const content = r.#collect_content(); - close(content.head); - } - }); - } - /** - * @param {string | (() => Promise)} content - */ - push(content) { - if (typeof content === "function") { - this.child(async (renderer) => renderer.push(await content())); - } else { - this.#out.push(content); - } - } - /** - * @param {() => void} fn - */ - on_destroy(fn) { - (this.#on_destroy ??= []).push(fn); - } - /** - * @returns {number[]} - */ - get_path() { - return this.#parent ? [...this.#parent.get_path(), this.#parent.#out.indexOf(this)] : []; - } - /** - * @deprecated this is needed for legacy component bindings - */ - copy() { - const copy = new Renderer(this.global, this.#parent); - copy.#out = this.#out.map((item) => item instanceof Renderer ? item.copy() : item); - copy.promise = this.promise; - return copy; - } - /** - * @param {Renderer} other - * @deprecated this is needed for legacy component bindings - */ - subsume(other) { - if (this.global.mode !== other.global.mode) { - throw new Error( - "invariant: A renderer cannot switch modes. If you're seeing this, there's a compiler bug. File an issue!" - ); - } - this.local = other.local; - this.#out = other.#out.map((item) => { - if (item instanceof Renderer) { - item.subsume(item); - } - return item; - }); - this.promise = other.promise; - this.type = other.type; - } - get length() { - return this.#out.length; - } - /** - * Creates the hydration comment that marks the start of a failed boundary. - * The error is JSON-serialized and embedded inside an HTML comment for the client - * to parse during hydration. The JSON is escaped to prevent `-->` or ``; - } - /** - * Only available on the server and when compiling with the `server` option. - * Takes a component and returns an object with `body` and `head` properties on it, which you can use to populate the HTML when server-rendering your app. - * @template {Record} Props - * @param {Component} component - * @param {{ props?: Omit; context?: Map; idPrefix?: string; csp?: Csp }} [options] - * @returns {RenderOutput} - */ - static render(component, options = {}) { - let sync; - const result = ( - /** @type {RenderOutput} */ - {} - ); - Object.defineProperties(result, { - html: { - get: () => { - return (sync ??= Renderer.#render(component, options)).body; - } - }, - head: { - get: () => { - return (sync ??= Renderer.#render(component, options)).head; - } - }, - body: { - get: () => { - return (sync ??= Renderer.#render(component, options)).body; - } - }, - hashes: { - value: { - script: "" - } - }, - then: { - value: ( - /** - * this is not type-safe, but honestly it's the best I can do right now, and it's a straightforward function. - * - * @template TResult1 - * @template [TResult2=never] - * @param { (value: SyncRenderOutput) => TResult1 } onfulfilled - * @param { (reason: unknown) => TResult2 } onrejected - */ - (onfulfilled, onrejected) => { - { - const result2 = sync ??= Renderer.#render(component, options); - const user_result = onfulfilled({ - head: result2.head, - body: result2.body, - html: result2.body, - hashes: { script: [] } - }); - return Promise.resolve(user_result); - } - } - ) - } - }); - return result; - } - /** - * Collect all of the `onDestroy` callbacks registered during rendering. In an async context, this is only safe to call - * after awaiting `collect_async`. - * - * Child renderers are "porous" and don't affect execution order, but component body renderers - * create ordering boundaries. Within a renderer, callbacks run in order until hitting a component boundary. - * @returns {Iterable<() => void>} - */ - *#collect_on_destroy() { - for (const component of this.#traverse_components()) { - yield* component.#collect_ondestroy(); - } - } - /** - * Performs a depth-first search of renderers, yielding the deepest components first, then additional components as we backtrack up the tree. - * @returns {Iterable} - */ - *#traverse_components() { - for (const child of this.#out) { - if (typeof child !== "string") { - yield* child.#traverse_components(); - } - } - if (this.#is_component_body) { - yield this; - } - } - /** - * @returns {Iterable<() => void>} - */ - *#collect_ondestroy() { - if (this.#on_destroy) { - for (const fn of this.#on_destroy) { - yield fn; - } - } - for (const child of this.#out) { - if (child instanceof Renderer && !child.#is_component_body) { - yield* child.#collect_ondestroy(); - } - } - } - /** - * Render a component. Throws if any of the children are performing asynchronous work. - * - * @template {Record} Props - * @param {Component} component - * @param {{ props?: Omit; context?: Map; idPrefix?: string }} options - * @returns {AccumulatedContent} - */ - static #render(component, options) { - var previous_context = ssr_context; - try { - const renderer = Renderer.#open_render("sync", component, options); - const content = renderer.#collect_content(); - return Renderer.#close_render(content, renderer); - } finally { - abort(); - set_ssr_context(previous_context); - } - } - /** - * Render a component. - * - * @template {Record} Props - * @param {Component} component - * @param {{ props?: Omit; context?: Map; idPrefix?: string; csp?: Csp }} options - * @returns {Promise} - */ - static async #render_async(component, options) { - const previous_context = ssr_context; - try { - const renderer = Renderer.#open_render("async", component, options); - const content = await renderer.#collect_content_async(); - const hydratables = await renderer.#collect_hydratables(); - if (hydratables !== null) { - content.head = hydratables + content.head; - } - return Renderer.#close_render(content, renderer); - } finally { - set_ssr_context(previous_context); - abort(); - } - } - /** - * Collect all of the code from the `out` array and return it as a string, or a promise resolving to a string. - * @param {AccumulatedContent} content - * @returns {AccumulatedContent} - */ - #collect_content(content = { head: "", body: "" }) { - for (const item of this.#out) { - if (typeof item === "string") { - content[this.type] += item; - } else if (item instanceof Renderer) { - item.#collect_content(content); - } - } - return content; - } - /** - * Collect all of the code from the `out` array and return it as a string. - * @param {AccumulatedContent} content - * @returns {Promise} - */ - async #collect_content_async(content = { head: "", body: "" }) { - await this.promise; - for (const item of this.#out) { - if (typeof item === "string") { - content[this.type] += item; - } else if (item instanceof Renderer) { - if (item.#boundary) { - const boundary_content = { head: "", body: "" }; - try { - await item.#collect_content_async(boundary_content); - content.head += boundary_content.head; - content.body += boundary_content.body; - } catch (error) { - const { context, failed, transformError } = item.#boundary; - set_ssr_context(context); - let transformed = await transformError(error); - const failed_renderer = new Renderer(item.global, item); - failed_renderer.type = item.type; - failed_renderer.#out.push(Renderer.#serialize_failed_boundary(transformed)); - failed(failed_renderer, transformed, noop); - failed_renderer.#out.push(BLOCK_CLOSE); - await failed_renderer.#collect_content_async(content); - } - } else { - await item.#collect_content_async(content); - } - } - } - return content; - } - async #collect_hydratables() { - const ctx = get_render_context().hydratable; - for (const [_, key] of ctx.unresolved_promises) { - unresolved_hydratable(key, ctx.lookup.get(key)?.stack ?? ""); - } - for (const comparison of ctx.comparisons) { - await comparison; - } - return await this.#hydratable_block(ctx); - } - /** - * @template {Record} Props - * @param {'sync' | 'async'} mode - * @param {import('svelte').Component} component - * @param {{ props?: Omit; context?: Map; idPrefix?: string; csp?: Csp; transformError?: (error: unknown) => unknown }} options - * @returns {Renderer} - */ - static #open_render(mode, component, options) { - var previous_context = ssr_context; - try { - const renderer = new Renderer( - new SSRState( - mode, - options.idPrefix ? options.idPrefix + "-" : "", - options.csp, - options.transformError - ) - ); - const context = { p: null, c: options.context ?? null, r: renderer }; - set_ssr_context(context); - renderer.push(BLOCK_OPEN); - component(renderer, options.props ?? {}); - renderer.push(BLOCK_CLOSE); - return renderer; - } finally { - set_ssr_context(previous_context); - } - } - /** - * @param {AccumulatedContent} content - * @param {Renderer} renderer - * @returns {AccumulatedContent & { hashes: { script: Sha256Source[] } }} - */ - static #close_render(content, renderer) { - for (const cleanup of renderer.#collect_on_destroy()) { - cleanup(); - } - let head = content.head + renderer.global.get_title(); - let body = content.body; - for (const { hash, code } of renderer.global.css) { - head += ``; - } - return { - head, - body, - hashes: { - script: renderer.global.csp.script_hashes - } - }; - } - /** - * @param {HydratableContext} ctx - */ - async #hydratable_block(ctx) { - if (ctx.lookup.size === 0) { - return null; - } - let entries = []; - let has_promises = false; - for (const [k, v] of ctx.lookup) { - if (v.promises) { - has_promises = true; - for (const p of v.promises) await p; - } - entries.push(`[${devalue.uneval(k)},${v.serialized}]`); - } - let prelude = `const h = (window.__svelte ??= {}).h ??= new Map();`; - if (has_promises) { - prelude = `const r = (v) => Promise.resolve(v); - ${prelude}`; - } - const body = ` - { - ${prelude} - - for (const [k, v] of [ - ${entries.join(",\n ")} - ]) { - h.set(k, v); - } - } - `; - let csp_attr = ""; - if (this.global.csp.nonce) { - csp_attr = ` nonce="${this.global.csp.nonce}"`; - } else if (this.global.csp.hash) { - const hash = await sha256(body); - this.global.csp.script_hashes.push(`sha256-${hash}`); - } - return ` - ${body}<\/script>`; - } -} -class SSRState { - /** @readonly @type {Csp & { script_hashes: Sha256Source[] }} */ - csp; - /** @readonly @type {'sync' | 'async'} */ - mode; - /** @readonly @type {() => string} */ - uid; - /** @readonly @type {Set<{ hash: string; code: string }>} */ - css = /* @__PURE__ */ new Set(); - /** - * `transformError` passed to `render`. Called when an error boundary catches an error. - * Throws by default if unset in `render`. - * @type {(error: unknown) => unknown} - */ - transformError; - /** @type {{ path: number[], value: string }} */ - #title = { path: [], value: "" }; - /** - * @param {'sync' | 'async'} mode - * @param {string} id_prefix - * @param {Csp} csp - * @param {((error: unknown) => unknown) | undefined} [transformError] - */ - constructor(mode, id_prefix = "", csp = { hash: false }, transformError) { - this.mode = mode; - this.csp = { ...csp, script_hashes: [] }; - this.transformError = transformError ?? ((error) => { - throw error; - }); - let uid = 1; - this.uid = () => `${id_prefix}s${uid++}`; - } - get_title() { - return this.#title.value; - } - /** - * Performs a depth-first (lexicographic) comparison using the path. Rejects sets - * from earlier than or equal to the current value. - * @param {string} value - * @param {number[]} path - */ - set_title(value, path) { - const current = this.#title.path; - let i = 0; - let l = Math.min(path.length, current.length); - while (i < l && path[i] === current[i]) i += 1; - if (path[i] === void 0) return; - if (current[i] === void 0 || path[i] > current[i]) { - this.#title.path = path; - this.#title.value = value; - } - } -} -const INVALID_ATTR_NAME_CHAR_REGEX = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; -function render(component, options = {}) { - if (options.csp?.hash && options.csp.nonce) { - invalid_csp(); - } - return Renderer.render( - /** @type {Component} */ - component, - options - ); -} -function attributes(attrs, css_hash, classes, styles, flags = 0) { - if (styles) { - attrs.style = to_style(attrs.style, styles); - } - if (attrs.class) { - attrs.class = clsx(attrs.class); - } - if (css_hash || classes) { - attrs.class = to_class(attrs.class, css_hash, classes); - } - let attr_str = ""; - let name; - const is_html = (flags & ELEMENT_IS_NAMESPACED) === 0; - const lowercase = (flags & ELEMENT_PRESERVE_ATTRIBUTE_CASE) === 0; - const is_input = (flags & ELEMENT_IS_INPUT) !== 0; - for (name of Object.keys(attrs)) { - if (typeof attrs[name] === "function") continue; - if (name[0] === "$" && name[1] === "$") continue; - if (INVALID_ATTR_NAME_CHAR_REGEX.test(name)) continue; - var value = attrs[name]; - var lower = name.toLowerCase(); - if (lowercase) name = lower; - if (lower.length > 2 && lower.startsWith("on")) continue; - if (is_input) { - if (name === "defaultvalue" || name === "defaultchecked") { - name = name === "defaultvalue" ? "value" : "checked"; - if (attrs[name]) continue; - } - } - attr_str += attr(name, value, is_html && is_boolean_attribute(name)); - } - return attr_str; -} -function stringify(value) { - return typeof value === "string" ? value : value == null ? "" : value + ""; -} -function attr_class(value, hash, directives) { - var result = to_class(value, hash, directives); - return result ? ` class="${escape_html(result, true)}"` : ""; -} -function ensure_array_like(array_like_or_iterator) { - if (array_like_or_iterator) { - return array_like_or_iterator.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator); - } - return []; -} -function once(get_value) { - let value = ( - /** @type {V} */ - UNINITIALIZED - ); - return () => { - if (value === UNINITIALIZED) { - value = get_value(); - } - return value; - }; -} -function derived(fn) { - const get_value = ssr_context === null ? fn : once(fn); - let updated_value; - return function(new_value) { - if (arguments.length === 0) { - return updated_value ?? get_value(); - } - updated_value = new_value; - return updated_value; - }; -} -export { - is_passive_event as $, - ASYNC as A, - BOUNDARY_EFFECT as B, - COMMENT_NODE as C, - DIRTY as D, - ERROR_VALUE as E, - EAGER_EFFECT as F, - STATE_SYMBOL as G, - HYDRATION_ERROR as H, - INERT as I, - object_prototype as J, - array_prototype as K, - get_descriptor as L, - MAYBE_DIRTY as M, - get_prototype_of as N, - is_array as O, - is_extensible as P, - HEAD_EFFECT as Q, - REACTION_RAN as R, - STALE_REACTION as S, - DESTROYING as T, - UNINITIALIZED as U, - USER_EFFECT as V, - WAS_MARKED as W, - REACTION_IS_UPDATING as X, - index_of as Y, - define_property as Z, - array_from as _, - attr as a, - LEGACY_PROPS as a0, - render as a1, - setContext as a2, - derived as a3, - ensure_array_like as b, - attr_class as c, - HYDRATION_END as d, - escape_html as e, - HYDRATION_START as f, - getContext as g, - HYDRATION_START_ELSE as h, - EFFECT as i, - CONNECTED as j, - CLEAN as k, - DERIVED as l, - BLOCK_EFFECT as m, - noop as n, - deferred as o, - RENDER_EFFECT as p, - MANAGED_EFFECT as q, - run_all as r, - stringify as s, - ROOT_EFFECT as t, - BRANCH_EFFECT as u, - DESTROYED as v, - includes as w, - HYDRATION_START_FAILED as x, - EFFECT_TRANSPARENT as y, - EFFECT_PRESERVED as z -}; diff --git a/frontend/.svelte-kit/output/server/chunks/internal.js b/frontend/.svelte-kit/output/server/chunks/internal.js deleted file mode 100644 index e5b8919..0000000 --- a/frontend/.svelte-kit/output/server/chunks/internal.js +++ /dev/null @@ -1,134 +0,0 @@ -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, - server_error_boundaries: false, - templates: { - app: ({ head, body, assets, nonce, env }) => '\n\n \n \n \n \n ' + head + '\n \n \n
' + body + "
\n \n\n", - error: ({ status, message }) => '\n\n \n \n ' + message + ` - - - - -
- ` + status + '\n
\n

' + message + "

\n
\n
\n \n\n" - }, - version_hash: "1iiqrg0" -}; -async function get_hooks() { - let handle; - let handleFetch; - let handleError; - let handleValidationError; - let init; - let reroute; - let transport; - return { - handle, - handleFetch, - handleError, - handleValidationError, - init, - reroute, - transport - }; -} -export { - set_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 -}; diff --git a/frontend/.svelte-kit/output/server/chunks/root.js b/frontend/.svelte-kit/output/server/chunks/root.js deleted file mode 100644 index 8afa68f..0000000 --- a/frontend/.svelte-kit/output/server/chunks/root.js +++ /dev/null @@ -1,2732 +0,0 @@ -import { H as HYDRATION_ERROR, C as COMMENT_NODE, d as HYDRATION_END, f as HYDRATION_START, h as HYDRATION_START_ELSE, r as run_all, B as BOUNDARY_EFFECT, R as REACTION_RAN, E as ERROR_VALUE, i as EFFECT, j as CONNECTED, k as CLEAN, M as MAYBE_DIRTY, D as DIRTY, l as DERIVED, W as WAS_MARKED, I as INERT, m as BLOCK_EFFECT, U as UNINITIALIZED, o as deferred, p as RENDER_EFFECT, q as MANAGED_EFFECT, t as ROOT_EFFECT, u as BRANCH_EFFECT, v as DESTROYED, A as ASYNC, w as includes, x as HYDRATION_START_FAILED, y as EFFECT_TRANSPARENT, z as EFFECT_PRESERVED, S as STALE_REACTION, n as noop, F as EAGER_EFFECT, G as STATE_SYMBOL, J as object_prototype, K as array_prototype, L as get_descriptor, N as get_prototype_of, O as is_array, P as is_extensible, Q as HEAD_EFFECT, T as DESTROYING, V as USER_EFFECT, X as REACTION_IS_UPDATING, Y as index_of, Z as define_property, _ as array_from, $ as is_passive_event, a0 as LEGACY_PROPS, a1 as render, a2 as setContext, a3 as derived } from "./index2.js"; -import { B as BROWSER } from "./false.js"; -function equals(value) { - return value === this.v; -} -function safe_not_equal(a, b) { - return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function"; -} -function safe_equals(value) { - return !safe_not_equal(value, this.v); -} -function effect_update_depth_exceeded() { - { - throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`); - } -} -function hydration_failed() { - { - throw new Error(`https://svelte.dev/e/hydration_failed`); - } -} -function state_descriptors_fixed() { - { - throw new Error(`https://svelte.dev/e/state_descriptors_fixed`); - } -} -function state_prototype_fixed() { - { - throw new Error(`https://svelte.dev/e/state_prototype_fixed`); - } -} -function state_unsafe_mutation() { - { - throw new Error(`https://svelte.dev/e/state_unsafe_mutation`); - } -} -function svelte_boundary_reset_onerror() { - { - throw new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`); - } -} -function hydration_mismatch(location) { - { - console.warn(`https://svelte.dev/e/hydration_mismatch`); - } -} -function svelte_boundary_reset_noop() { - { - console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`); - } -} -let hydrating = false; -function set_hydrating(value) { - hydrating = value; -} -let hydrate_node; -function set_hydrate_node(node) { - if (node === null) { - hydration_mismatch(); - throw HYDRATION_ERROR; - } - return hydrate_node = node; -} -function hydrate_next() { - return set_hydrate_node(/* @__PURE__ */ get_next_sibling(hydrate_node)); -} -function next(count = 1) { - if (hydrating) { - var i = count; - var node = hydrate_node; - while (i--) { - node = /** @type {TemplateNode} */ - /* @__PURE__ */ get_next_sibling(node); - } - hydrate_node = node; - } -} -function skip_nodes(remove = true) { - var depth = 0; - var node = hydrate_node; - while (true) { - if (node.nodeType === COMMENT_NODE) { - var data = ( - /** @type {Comment} */ - node.data - ); - if (data === HYDRATION_END) { - if (depth === 0) return node; - depth -= 1; - } else if (data === HYDRATION_START || data === HYDRATION_START_ELSE || // "[1", "[2", etc. for if blocks - data[0] === "[" && !isNaN(Number(data.slice(1)))) { - depth += 1; - } - } - var next2 = ( - /** @type {TemplateNode} */ - /* @__PURE__ */ get_next_sibling(node) - ); - if (remove) node.remove(); - node = next2; - } -} -let tracing_mode_flag = false; -let component_context = null; -function set_component_context(context) { - component_context = context; -} -function push(props, runes = false, fn) { - component_context = { - p: component_context, - i: false, - c: null, - e: null, - s: props, - x: null, - r: ( - /** @type {Effect} */ - active_effect - ), - l: null - }; -} -function pop(component) { - var context = ( - /** @type {ComponentContext} */ - component_context - ); - var effects = context.e; - if (effects !== null) { - context.e = null; - for (var fn of effects) { - create_user_effect(fn); - } - } - context.i = true; - component_context = context.p; - return ( - /** @type {T} */ - {} - ); -} -function is_runes() { - return true; -} -let micro_tasks = []; -function run_micro_tasks() { - var tasks = micro_tasks; - micro_tasks = []; - run_all(tasks); -} -function queue_micro_task(fn) { - if (micro_tasks.length === 0 && !is_flushing_sync) { - var tasks = micro_tasks; - queueMicrotask(() => { - if (tasks === micro_tasks) run_micro_tasks(); - }); - } - micro_tasks.push(fn); -} -function flush_tasks() { - while (micro_tasks.length > 0) { - run_micro_tasks(); - } -} -function handle_error(error) { - var effect = active_effect; - if (effect === null) { - active_reaction.f |= ERROR_VALUE; - return error; - } - if ((effect.f & REACTION_RAN) === 0 && (effect.f & EFFECT) === 0) { - throw error; - } - invoke_error_boundary(error, effect); -} -function invoke_error_boundary(error, effect) { - while (effect !== null) { - if ((effect.f & BOUNDARY_EFFECT) !== 0) { - if ((effect.f & REACTION_RAN) === 0) { - throw error; - } - try { - effect.b.error(error); - return; - } catch (e) { - error = e; - } - } - effect = effect.parent; - } - throw error; -} -const STATUS_MASK = -7169; -function set_signal_status(signal, status) { - signal.f = signal.f & STATUS_MASK | status; -} -function update_derived_status(derived2) { - if ((derived2.f & CONNECTED) !== 0 || derived2.deps === null) { - set_signal_status(derived2, CLEAN); - } else { - set_signal_status(derived2, MAYBE_DIRTY); - } -} -function clear_marked(deps) { - if (deps === null) return; - for (const dep of deps) { - if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) { - continue; - } - dep.f ^= WAS_MARKED; - clear_marked( - /** @type {Derived} */ - dep.deps - ); - } -} -function defer_effect(effect, dirty_effects, maybe_dirty_effects) { - if ((effect.f & DIRTY) !== 0) { - dirty_effects.add(effect); - } else if ((effect.f & MAYBE_DIRTY) !== 0) { - maybe_dirty_effects.add(effect); - } - clear_marked(effect.deps); - set_signal_status(effect, CLEAN); -} -const batches = /* @__PURE__ */ new Set(); -let current_batch = null; -let batch_values = null; -let last_scheduled_effect = null; -let is_flushing_sync = false; -let is_processing = false; -let collected_effects = null; -let legacy_updates = null; -var flush_count = 0; -let uid = 1; -class Batch { - // for debugging. TODO remove once async is stable - id = uid++; - /** - * The current values of any sources that are updated in this batch - * They keys of this map are identical to `this.#previous` - * @type {Map} - */ - current = /* @__PURE__ */ new Map(); - /** - * The values of any sources that are updated in this batch _before_ those updates took place. - * They keys of this map are identical to `this.#current` - * @type {Map} - */ - previous = /* @__PURE__ */ new Map(); - /** - * When the batch is committed (and the DOM is updated), we need to remove old branches - * and append new ones by calling the functions added inside (if/each/key/etc) blocks - * @type {Set<(batch: Batch) => void>} - */ - #commit_callbacks = /* @__PURE__ */ new Set(); - /** - * If a fork is discarded, we need to destroy any effects that are no longer needed - * @type {Set<(batch: Batch) => void>} - */ - #discard_callbacks = /* @__PURE__ */ new Set(); - /** - * The number of async effects that are currently in flight - */ - #pending = 0; - /** - * The number of async effects that are currently in flight, _not_ inside a pending boundary - */ - #blocking_pending = 0; - /** - * A deferred that resolves when the batch is committed, used with `settled()` - * TODO replace with Promise.withResolvers once supported widely enough - * @type {{ promise: Promise, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null} - */ - #deferred = null; - /** - * The root effects that need to be flushed - * @type {Effect[]} - */ - #roots = []; - /** - * Deferred effects (which run after async work has completed) that are DIRTY - * @type {Set} - */ - #dirty_effects = /* @__PURE__ */ new Set(); - /** - * Deferred effects that are MAYBE_DIRTY - * @type {Set} - */ - #maybe_dirty_effects = /* @__PURE__ */ new Set(); - /** - * A map of branches that still exist, but will be destroyed when this batch - * is committed — we skip over these during `process`. - * The value contains child effects that were dirty/maybe_dirty before being reset, - * so they can be rescheduled if the branch survives. - * @type {Map} - */ - #skipped_branches = /* @__PURE__ */ new Map(); - is_fork = false; - #decrement_queued = false; - #is_deferred() { - return this.is_fork || this.#blocking_pending > 0; - } - /** - * Add an effect to the #skipped_branches map and reset its children - * @param {Effect} effect - */ - skip_effect(effect) { - if (!this.#skipped_branches.has(effect)) { - this.#skipped_branches.set(effect, { d: [], m: [] }); - } - } - /** - * Remove an effect from the #skipped_branches map and reschedule - * any tracked dirty/maybe_dirty child effects - * @param {Effect} effect - */ - unskip_effect(effect) { - var tracked = this.#skipped_branches.get(effect); - if (tracked) { - this.#skipped_branches.delete(effect); - for (var e of tracked.d) { - set_signal_status(e, DIRTY); - this.schedule(e); - } - for (e of tracked.m) { - set_signal_status(e, MAYBE_DIRTY); - this.schedule(e); - } - } - } - #process() { - if (flush_count++ > 1e3) { - batches.delete(this); - infinite_loop_guard(); - } - if (!this.#is_deferred()) { - for (const e of this.#dirty_effects) { - this.#maybe_dirty_effects.delete(e); - set_signal_status(e, DIRTY); - this.schedule(e); - } - for (const e of this.#maybe_dirty_effects) { - set_signal_status(e, MAYBE_DIRTY); - this.schedule(e); - } - } - const roots = this.#roots; - this.#roots = []; - this.apply(); - var effects = collected_effects = []; - var render_effects = []; - var updates = legacy_updates = []; - for (const root2 of roots) { - try { - this.#traverse(root2, effects, render_effects); - } catch (e) { - reset_all(root2); - throw e; - } - } - current_batch = null; - if (updates.length > 0) { - var batch = Batch.ensure(); - for (const e of updates) { - batch.schedule(e); - } - } - collected_effects = null; - legacy_updates = null; - if (this.#is_deferred()) { - this.#defer_effects(render_effects); - this.#defer_effects(effects); - for (const [e, t] of this.#skipped_branches) { - reset_branch(e, t); - } - } else { - if (this.#pending === 0) { - batches.delete(this); - } - this.#dirty_effects.clear(); - this.#maybe_dirty_effects.clear(); - for (const fn of this.#commit_callbacks) fn(this); - this.#commit_callbacks.clear(); - flush_queued_effects(render_effects); - flush_queued_effects(effects); - this.#deferred?.resolve(); - } - var next_batch = ( - /** @type {Batch | null} */ - /** @type {unknown} */ - current_batch - ); - if (this.#roots.length > 0) { - const batch2 = next_batch ??= this; - batch2.#roots.push(...this.#roots.filter((r) => !batch2.#roots.includes(r))); - } - if (next_batch !== null) { - batches.add(next_batch); - next_batch.#process(); - } - if (!batches.has(this)) { - this.#commit(); - } - } - /** - * Traverse the effect tree, executing effects or stashing - * them for later execution as appropriate - * @param {Effect} root - * @param {Effect[]} effects - * @param {Effect[]} render_effects - */ - #traverse(root2, effects, render_effects) { - root2.f ^= CLEAN; - var effect = root2.first; - while (effect !== null) { - var flags2 = effect.f; - var is_branch = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0; - var is_skippable_branch = is_branch && (flags2 & CLEAN) !== 0; - var skip = is_skippable_branch || (flags2 & INERT) !== 0 || this.#skipped_branches.has(effect); - if (!skip && effect.fn !== null) { - if (is_branch) { - effect.f ^= CLEAN; - } else if ((flags2 & EFFECT) !== 0) { - effects.push(effect); - } else if (is_dirty(effect)) { - if ((flags2 & BLOCK_EFFECT) !== 0) this.#maybe_dirty_effects.add(effect); - update_effect(effect); - } - var child = effect.first; - if (child !== null) { - effect = child; - continue; - } - } - while (effect !== null) { - var next2 = effect.next; - if (next2 !== null) { - effect = next2; - break; - } - effect = effect.parent; - } - } - } - /** - * @param {Effect[]} effects - */ - #defer_effects(effects) { - for (var i = 0; i < effects.length; i += 1) { - defer_effect(effects[i], this.#dirty_effects, this.#maybe_dirty_effects); - } - } - /** - * Associate a change to a given source with the current - * batch, noting its previous and current values - * @param {Source} source - * @param {any} old_value - */ - capture(source2, old_value) { - if (old_value !== UNINITIALIZED && !this.previous.has(source2)) { - this.previous.set(source2, old_value); - } - if ((source2.f & ERROR_VALUE) === 0) { - this.current.set(source2, source2.v); - batch_values?.set(source2, source2.v); - } - } - activate() { - current_batch = this; - } - deactivate() { - current_batch = null; - batch_values = null; - } - flush() { - try { - is_processing = true; - current_batch = this; - this.#process(); - } finally { - flush_count = 0; - last_scheduled_effect = null; - collected_effects = null; - legacy_updates = null; - is_processing = false; - current_batch = null; - batch_values = null; - old_values.clear(); - } - } - discard() { - for (const fn of this.#discard_callbacks) fn(this); - this.#discard_callbacks.clear(); - batches.delete(this); - } - #commit() { - for (const batch of batches) { - var is_earlier = batch.id < this.id; - var sources = []; - for (const [source3, value] of this.current) { - if (batch.current.has(source3)) { - if (is_earlier && value !== batch.current.get(source3)) { - batch.current.set(source3, value); - } else { - continue; - } - } - sources.push(source3); - } - var others = [...batch.current.keys()].filter((s) => !this.current.has(s)); - if (others.length === 0) { - if (is_earlier) { - batch.discard(); - } - } else if (sources.length > 0) { - batch.activate(); - var marked = /* @__PURE__ */ new Set(); - var checked = /* @__PURE__ */ new Map(); - for (var source2 of sources) { - mark_effects(source2, others, marked, checked); - } - if (batch.#roots.length > 0) { - batch.apply(); - for (var root2 of batch.#roots) { - batch.#traverse(root2, [], []); - } - batch.#roots = []; - } - batch.deactivate(); - } - } - } - /** - * - * @param {boolean} blocking - */ - increment(blocking) { - this.#pending += 1; - if (blocking) this.#blocking_pending += 1; - } - /** - * @param {boolean} blocking - * @param {boolean} skip - whether to skip updates (because this is triggered by a stale reaction) - */ - decrement(blocking, skip) { - this.#pending -= 1; - if (blocking) this.#blocking_pending -= 1; - if (this.#decrement_queued || skip) return; - this.#decrement_queued = true; - queue_micro_task(() => { - this.#decrement_queued = false; - this.flush(); - }); - } - /** - * @param {Set} dirty_effects - * @param {Set} maybe_dirty_effects - */ - transfer_effects(dirty_effects, maybe_dirty_effects) { - for (const e of dirty_effects) { - this.#dirty_effects.add(e); - } - for (const e of maybe_dirty_effects) { - this.#maybe_dirty_effects.add(e); - } - dirty_effects.clear(); - maybe_dirty_effects.clear(); - } - /** @param {(batch: Batch) => void} fn */ - oncommit(fn) { - this.#commit_callbacks.add(fn); - } - /** @param {(batch: Batch) => void} fn */ - ondiscard(fn) { - this.#discard_callbacks.add(fn); - } - settled() { - return (this.#deferred ??= deferred()).promise; - } - static ensure() { - if (current_batch === null) { - const batch = current_batch = new Batch(); - if (!is_processing) { - batches.add(current_batch); - if (!is_flushing_sync) { - queue_micro_task(() => { - if (current_batch !== batch) { - return; - } - batch.flush(); - }); - } - } - } - return current_batch; - } - apply() { - { - batch_values = null; - return; - } - } - /** - * - * @param {Effect} effect - */ - schedule(effect) { - last_scheduled_effect = effect; - if (effect.b?.is_pending && (effect.f & (EFFECT | RENDER_EFFECT | MANAGED_EFFECT)) !== 0 && (effect.f & REACTION_RAN) === 0) { - effect.b.defer_effect(effect); - return; - } - var e = effect; - while (e.parent !== null) { - e = e.parent; - var flags2 = e.f; - if (collected_effects !== null && e === active_effect) { - if ((active_reaction === null || (active_reaction.f & DERIVED) === 0) && true) { - return; - } - } - if ((flags2 & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) { - if ((flags2 & CLEAN) === 0) { - return; - } - e.f ^= CLEAN; - } - } - this.#roots.push(e); - } -} -function flushSync(fn) { - var was_flushing_sync = is_flushing_sync; - is_flushing_sync = true; - try { - var result; - if (fn) ; - while (true) { - flush_tasks(); - if (current_batch === null) { - return ( - /** @type {T} */ - result - ); - } - current_batch.flush(); - } - } finally { - is_flushing_sync = was_flushing_sync; - } -} -function infinite_loop_guard() { - try { - effect_update_depth_exceeded(); - } catch (error) { - invoke_error_boundary(error, last_scheduled_effect); - } -} -let eager_block_effects = null; -function flush_queued_effects(effects) { - var length = effects.length; - if (length === 0) return; - var i = 0; - while (i < length) { - var effect = effects[i++]; - if ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) { - eager_block_effects = /* @__PURE__ */ new Set(); - update_effect(effect); - if (effect.deps === null && effect.first === null && effect.nodes === null && effect.teardown === null && effect.ac === null) { - unlink_effect(effect); - } - if (eager_block_effects?.size > 0) { - old_values.clear(); - for (const e of eager_block_effects) { - if ((e.f & (DESTROYED | INERT)) !== 0) continue; - const ordered_effects = [e]; - let ancestor = e.parent; - while (ancestor !== null) { - if (eager_block_effects.has(ancestor)) { - eager_block_effects.delete(ancestor); - ordered_effects.push(ancestor); - } - ancestor = ancestor.parent; - } - for (let j = ordered_effects.length - 1; j >= 0; j--) { - const e2 = ordered_effects[j]; - if ((e2.f & (DESTROYED | INERT)) !== 0) continue; - update_effect(e2); - } - } - eager_block_effects.clear(); - } - } - } - eager_block_effects = null; -} -function mark_effects(value, sources, marked, checked) { - if (marked.has(value)) return; - marked.add(value); - if (value.reactions !== null) { - for (const reaction of value.reactions) { - const flags2 = reaction.f; - if ((flags2 & DERIVED) !== 0) { - mark_effects( - /** @type {Derived} */ - reaction, - sources, - marked, - checked - ); - } else if ((flags2 & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags2 & DIRTY) === 0 && depends_on(reaction, sources, checked)) { - set_signal_status(reaction, DIRTY); - schedule_effect( - /** @type {Effect} */ - reaction - ); - } - } - } -} -function depends_on(reaction, sources, checked) { - const depends = checked.get(reaction); - if (depends !== void 0) return depends; - if (reaction.deps !== null) { - for (const dep of reaction.deps) { - if (includes.call(sources, dep)) { - return true; - } - if ((dep.f & DERIVED) !== 0 && depends_on( - /** @type {Derived} */ - dep, - sources, - checked - )) { - checked.set( - /** @type {Derived} */ - dep, - true - ); - return true; - } - } - } - checked.set(reaction, false); - return false; -} -function schedule_effect(effect) { - current_batch.schedule(effect); -} -function reset_branch(effect, tracked) { - if ((effect.f & BRANCH_EFFECT) !== 0 && (effect.f & CLEAN) !== 0) { - return; - } - if ((effect.f & DIRTY) !== 0) { - tracked.d.push(effect); - } else if ((effect.f & MAYBE_DIRTY) !== 0) { - tracked.m.push(effect); - } - set_signal_status(effect, CLEAN); - var e = effect.first; - while (e !== null) { - reset_branch(e, tracked); - e = e.next; - } -} -function reset_all(effect) { - set_signal_status(effect, CLEAN); - var e = effect.first; - while (e !== null) { - reset_all(e); - e = e.next; - } -} -function createSubscriber(start) { - let subscribers = 0; - let version = source(0); - let stop; - return () => { - if (effect_tracking()) { - get(version); - render_effect(() => { - if (subscribers === 0) { - stop = untrack(() => start(() => increment(version))); - } - subscribers += 1; - return () => { - queue_micro_task(() => { - subscribers -= 1; - if (subscribers === 0) { - stop?.(); - stop = void 0; - increment(version); - } - }); - }; - }); - } - }; -} -var flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED; -function boundary(node, props, children, transform_error) { - new Boundary(node, props, children, transform_error); -} -class Boundary { - /** @type {Boundary | null} */ - parent; - is_pending = false; - /** - * API-level transformError transform function. Transforms errors before they reach the `failed` snippet. - * Inherited from parent boundary, or defaults to identity. - * @type {(error: unknown) => unknown} - */ - transform_error; - /** @type {TemplateNode} */ - #anchor; - /** @type {TemplateNode | null} */ - #hydrate_open = hydrating ? hydrate_node : null; - /** @type {BoundaryProps} */ - #props; - /** @type {((anchor: Node) => void)} */ - #children; - /** @type {Effect} */ - #effect; - /** @type {Effect | null} */ - #main_effect = null; - /** @type {Effect | null} */ - #pending_effect = null; - /** @type {Effect | null} */ - #failed_effect = null; - /** @type {DocumentFragment | null} */ - #offscreen_fragment = null; - #local_pending_count = 0; - #pending_count = 0; - #pending_count_update_queued = false; - /** @type {Set} */ - #dirty_effects = /* @__PURE__ */ new Set(); - /** @type {Set} */ - #maybe_dirty_effects = /* @__PURE__ */ new Set(); - /** - * A source containing the number of pending async deriveds/expressions. - * Only created if `$effect.pending()` is used inside the boundary, - * otherwise updating the source results in needless `Batch.ensure()` - * calls followed by no-op flushes - * @type {Source | null} - */ - #effect_pending = null; - #effect_pending_subscriber = createSubscriber(() => { - this.#effect_pending = source(this.#local_pending_count); - return () => { - this.#effect_pending = null; - }; - }); - /** - * @param {TemplateNode} node - * @param {BoundaryProps} props - * @param {((anchor: Node) => void)} children - * @param {((error: unknown) => unknown) | undefined} [transform_error] - */ - constructor(node, props, children, transform_error) { - this.#anchor = node; - this.#props = props; - this.#children = (anchor) => { - var effect = ( - /** @type {Effect} */ - active_effect - ); - effect.b = this; - effect.f |= BOUNDARY_EFFECT; - children(anchor); - }; - this.parent = /** @type {Effect} */ - active_effect.b; - this.transform_error = transform_error ?? this.parent?.transform_error ?? ((e) => e); - this.#effect = block(() => { - if (hydrating) { - const comment = ( - /** @type {Comment} */ - this.#hydrate_open - ); - hydrate_next(); - const server_rendered_pending = comment.data === HYDRATION_START_ELSE; - const server_rendered_failed = comment.data.startsWith(HYDRATION_START_FAILED); - if (server_rendered_failed) { - const serialized_error = JSON.parse(comment.data.slice(HYDRATION_START_FAILED.length)); - this.#hydrate_failed_content(serialized_error); - } else if (server_rendered_pending) { - this.#hydrate_pending_content(); - } else { - this.#hydrate_resolved_content(); - } - } else { - this.#render(); - } - }, flags); - if (hydrating) { - this.#anchor = hydrate_node; - } - } - #hydrate_resolved_content() { - try { - this.#main_effect = branch(() => this.#children(this.#anchor)); - } catch (error) { - this.error(error); - } - } - /** - * @param {unknown} error The deserialized error from the server's hydration comment - */ - #hydrate_failed_content(error) { - const failed = this.#props.failed; - if (!failed) return; - this.#failed_effect = branch(() => { - failed( - this.#anchor, - () => error, - () => () => { - } - ); - }); - } - #hydrate_pending_content() { - const pending = this.#props.pending; - if (!pending) return; - this.is_pending = true; - this.#pending_effect = branch(() => pending(this.#anchor)); - queue_micro_task(() => { - var fragment = this.#offscreen_fragment = document.createDocumentFragment(); - var anchor = create_text(); - fragment.append(anchor); - this.#main_effect = this.#run(() => { - return branch(() => this.#children(anchor)); - }); - if (this.#pending_count === 0) { - this.#anchor.before(fragment); - this.#offscreen_fragment = null; - pause_effect( - /** @type {Effect} */ - this.#pending_effect, - () => { - this.#pending_effect = null; - } - ); - this.#resolve( - /** @type {Batch} */ - current_batch - ); - } - }); - } - #render() { - try { - this.is_pending = this.has_pending_snippet(); - this.#pending_count = 0; - this.#local_pending_count = 0; - this.#main_effect = branch(() => { - this.#children(this.#anchor); - }); - if (this.#pending_count > 0) { - var fragment = this.#offscreen_fragment = document.createDocumentFragment(); - move_effect(this.#main_effect, fragment); - const pending = ( - /** @type {(anchor: Node) => void} */ - this.#props.pending - ); - this.#pending_effect = branch(() => pending(this.#anchor)); - } else { - this.#resolve( - /** @type {Batch} */ - current_batch - ); - } - } catch (error) { - this.error(error); - } - } - /** - * @param {Batch} batch - */ - #resolve(batch) { - this.is_pending = false; - batch.transfer_effects(this.#dirty_effects, this.#maybe_dirty_effects); - } - /** - * Defer an effect inside a pending boundary until the boundary resolves - * @param {Effect} effect - */ - defer_effect(effect) { - defer_effect(effect, this.#dirty_effects, this.#maybe_dirty_effects); - } - /** - * Returns `false` if the effect exists inside a boundary whose pending snippet is shown - * @returns {boolean} - */ - is_rendered() { - return !this.is_pending && (!this.parent || this.parent.is_rendered()); - } - has_pending_snippet() { - return !!this.#props.pending; - } - /** - * @template T - * @param {() => T} fn - */ - #run(fn) { - var previous_effect = active_effect; - var previous_reaction = active_reaction; - var previous_ctx = component_context; - set_active_effect(this.#effect); - set_active_reaction(this.#effect); - set_component_context(this.#effect.ctx); - try { - Batch.ensure(); - return fn(); - } catch (e) { - handle_error(e); - return null; - } finally { - set_active_effect(previous_effect); - set_active_reaction(previous_reaction); - set_component_context(previous_ctx); - } - } - /** - * Updates the pending count associated with the currently visible pending snippet, - * if any, such that we can replace the snippet with content once work is done - * @param {1 | -1} d - * @param {Batch} batch - */ - #update_pending_count(d, batch) { - if (!this.has_pending_snippet()) { - if (this.parent) { - this.parent.#update_pending_count(d, batch); - } - return; - } - this.#pending_count += d; - if (this.#pending_count === 0) { - this.#resolve(batch); - if (this.#pending_effect) { - pause_effect(this.#pending_effect, () => { - this.#pending_effect = null; - }); - } - if (this.#offscreen_fragment) { - this.#anchor.before(this.#offscreen_fragment); - this.#offscreen_fragment = null; - } - } - } - /** - * Update the source that powers `$effect.pending()` inside this boundary, - * and controls when the current `pending` snippet (if any) is removed. - * Do not call from inside the class - * @param {1 | -1} d - * @param {Batch} batch - */ - update_pending_count(d, batch) { - this.#update_pending_count(d, batch); - this.#local_pending_count += d; - if (!this.#effect_pending || this.#pending_count_update_queued) return; - this.#pending_count_update_queued = true; - queue_micro_task(() => { - this.#pending_count_update_queued = false; - if (this.#effect_pending) { - internal_set(this.#effect_pending, this.#local_pending_count); - } - }); - } - get_effect_pending() { - this.#effect_pending_subscriber(); - return get( - /** @type {Source} */ - this.#effect_pending - ); - } - /** @param {unknown} error */ - error(error) { - var onerror = this.#props.onerror; - let failed = this.#props.failed; - if (!onerror && !failed) { - throw error; - } - if (this.#main_effect) { - destroy_effect(this.#main_effect); - this.#main_effect = null; - } - if (this.#pending_effect) { - destroy_effect(this.#pending_effect); - this.#pending_effect = null; - } - if (this.#failed_effect) { - destroy_effect(this.#failed_effect); - this.#failed_effect = null; - } - if (hydrating) { - set_hydrate_node( - /** @type {TemplateNode} */ - this.#hydrate_open - ); - next(); - set_hydrate_node(skip_nodes()); - } - var did_reset = false; - var calling_on_error = false; - const reset = () => { - if (did_reset) { - svelte_boundary_reset_noop(); - return; - } - did_reset = true; - if (calling_on_error) { - svelte_boundary_reset_onerror(); - } - if (this.#failed_effect !== null) { - pause_effect(this.#failed_effect, () => { - this.#failed_effect = null; - }); - } - this.#run(() => { - this.#render(); - }); - }; - const handle_error_result = (transformed_error) => { - try { - calling_on_error = true; - onerror?.(transformed_error, reset); - calling_on_error = false; - } catch (error2) { - invoke_error_boundary(error2, this.#effect && this.#effect.parent); - } - if (failed) { - this.#failed_effect = this.#run(() => { - try { - return branch(() => { - var effect = ( - /** @type {Effect} */ - active_effect - ); - effect.b = this; - effect.f |= BOUNDARY_EFFECT; - failed( - this.#anchor, - () => transformed_error, - () => reset - ); - }); - } catch (error2) { - invoke_error_boundary( - error2, - /** @type {Effect} */ - this.#effect.parent - ); - return null; - } - }); - } - }; - queue_micro_task(() => { - var result; - try { - result = this.transform_error(error); - } catch (e) { - invoke_error_boundary(e, this.#effect && this.#effect.parent); - return; - } - if (result !== null && typeof result === "object" && typeof /** @type {any} */ - result.then === "function") { - result.then( - handle_error_result, - /** @param {unknown} e */ - (e) => invoke_error_boundary(e, this.#effect && this.#effect.parent) - ); - } else { - handle_error_result(result); - } - }); - } -} -function destroy_derived_effects(derived2) { - var effects = derived2.effects; - if (effects !== null) { - derived2.effects = null; - for (var i = 0; i < effects.length; i += 1) { - destroy_effect( - /** @type {Effect} */ - effects[i] - ); - } - } -} -function get_derived_parent_effect(derived2) { - var parent = derived2.parent; - while (parent !== null) { - if ((parent.f & DERIVED) === 0) { - return (parent.f & DESTROYED) === 0 ? ( - /** @type {Effect} */ - parent - ) : null; - } - parent = parent.parent; - } - return null; -} -function execute_derived(derived2) { - var value; - var prev_active_effect = active_effect; - set_active_effect(get_derived_parent_effect(derived2)); - { - try { - derived2.f &= ~WAS_MARKED; - destroy_derived_effects(derived2); - value = update_reaction(derived2); - } finally { - set_active_effect(prev_active_effect); - } - } - return value; -} -function update_derived(derived2) { - var old_value = derived2.v; - var value = execute_derived(derived2); - if (!derived2.equals(value)) { - derived2.wv = increment_write_version(); - if (!current_batch?.is_fork || derived2.deps === null) { - derived2.v = value; - current_batch?.capture(derived2, old_value); - if (derived2.deps === null) { - set_signal_status(derived2, CLEAN); - return; - } - } - } - if (is_destroying_effect) { - return; - } - if (batch_values !== null) { - if (effect_tracking() || current_batch?.is_fork) { - batch_values.set(derived2, value); - } - } else { - update_derived_status(derived2); - } -} -function freeze_derived_effects(derived2) { - if (derived2.effects === null) return; - for (const e of derived2.effects) { - if (e.teardown || e.ac) { - e.teardown?.(); - e.ac?.abort(STALE_REACTION); - e.teardown = noop; - e.ac = null; - remove_reactions(e, 0); - destroy_effect_children(e); - } - } -} -function unfreeze_derived_effects(derived2) { - if (derived2.effects === null) return; - for (const e of derived2.effects) { - if (e.teardown) { - update_effect(e); - } - } -} -let eager_effects = /* @__PURE__ */ new Set(); -const old_values = /* @__PURE__ */ new Map(); -let eager_effects_deferred = false; -function source(v, stack) { - var signal = { - f: 0, - // TODO ideally we could skip this altogether, but it causes type errors - v, - reactions: null, - equals, - rv: 0, - wv: 0 - }; - return signal; -} -// @__NO_SIDE_EFFECTS__ -function state(v, stack) { - const s = source(v); - push_reaction_value(s); - return s; -} -// @__NO_SIDE_EFFECTS__ -function mutable_source(initial_value, immutable = false, trackable = true) { - const s = source(initial_value); - if (!immutable) { - s.equals = safe_equals; - } - return s; -} -function set(source2, value, should_proxy = false) { - if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check - // to ensure we error if state is set inside an inspect effect - (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && (current_sources === null || !includes.call(current_sources, source2))) { - state_unsafe_mutation(); - } - let new_value = should_proxy ? proxy(value) : value; - return internal_set(source2, new_value, legacy_updates); -} -function internal_set(source2, value, updated_during_traversal = null) { - if (!source2.equals(value)) { - var old_value = source2.v; - if (is_destroying_effect) { - old_values.set(source2, value); - } else { - old_values.set(source2, old_value); - } - source2.v = value; - var batch = Batch.ensure(); - batch.capture(source2, old_value); - if ((source2.f & DERIVED) !== 0) { - const derived2 = ( - /** @type {Derived} */ - source2 - ); - if ((source2.f & DIRTY) !== 0) { - execute_derived(derived2); - } - if (batch_values === null) { - update_derived_status(derived2); - } - } - source2.wv = increment_write_version(); - mark_reactions(source2, DIRTY, updated_during_traversal); - if (active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) { - if (untracked_writes === null) { - set_untracked_writes([source2]); - } else { - untracked_writes.push(source2); - } - } - if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) { - flush_eager_effects(); - } - } - return value; -} -function flush_eager_effects() { - eager_effects_deferred = false; - for (const effect of eager_effects) { - if ((effect.f & CLEAN) !== 0) { - set_signal_status(effect, MAYBE_DIRTY); - } - if (is_dirty(effect)) { - update_effect(effect); - } - } - eager_effects.clear(); -} -function increment(source2) { - set(source2, source2.v + 1); -} -function mark_reactions(signal, status, updated_during_traversal) { - var reactions = signal.reactions; - if (reactions === null) return; - var length = reactions.length; - for (var i = 0; i < length; i++) { - var reaction = reactions[i]; - var flags2 = reaction.f; - var not_dirty = (flags2 & DIRTY) === 0; - if (not_dirty) { - set_signal_status(reaction, status); - } - if ((flags2 & DERIVED) !== 0) { - var derived2 = ( - /** @type {Derived} */ - reaction - ); - batch_values?.delete(derived2); - if ((flags2 & WAS_MARKED) === 0) { - if (flags2 & CONNECTED) { - reaction.f |= WAS_MARKED; - } - mark_reactions(derived2, MAYBE_DIRTY, updated_during_traversal); - } - } else if (not_dirty) { - var effect = ( - /** @type {Effect} */ - reaction - ); - if ((flags2 & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) { - eager_block_effects.add(effect); - } - if (updated_during_traversal !== null) { - updated_during_traversal.push(effect); - } else { - schedule_effect(effect); - } - } - } -} -function proxy(value) { - if (typeof value !== "object" || value === null || STATE_SYMBOL in value) { - return value; - } - const prototype = get_prototype_of(value); - if (prototype !== object_prototype && prototype !== array_prototype) { - return value; - } - var sources = /* @__PURE__ */ new Map(); - var is_proxied_array = is_array(value); - var version = /* @__PURE__ */ state(0); - var parent_version = update_version; - var with_parent = (fn) => { - if (update_version === parent_version) { - return fn(); - } - var reaction = active_reaction; - var version2 = update_version; - set_active_reaction(null); - set_update_version(parent_version); - var result = fn(); - set_active_reaction(reaction); - set_update_version(version2); - return result; - }; - if (is_proxied_array) { - sources.set("length", /* @__PURE__ */ state( - /** @type {any[]} */ - value.length - )); - } - return new Proxy( - /** @type {any} */ - value, - { - defineProperty(_, prop, descriptor) { - if (!("value" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) { - state_descriptors_fixed(); - } - var s = sources.get(prop); - if (s === void 0) { - with_parent(() => { - var s2 = /* @__PURE__ */ state(descriptor.value); - sources.set(prop, s2); - return s2; - }); - } else { - set(s, descriptor.value, true); - } - return true; - }, - deleteProperty(target, prop) { - var s = sources.get(prop); - if (s === void 0) { - if (prop in target) { - const s2 = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED)); - sources.set(prop, s2); - increment(version); - } - } else { - set(s, UNINITIALIZED); - increment(version); - } - return true; - }, - get(target, prop, receiver) { - if (prop === STATE_SYMBOL) { - return value; - } - var s = sources.get(prop); - var exists = prop in target; - if (s === void 0 && (!exists || get_descriptor(target, prop)?.writable)) { - s = with_parent(() => { - var p = proxy(exists ? target[prop] : UNINITIALIZED); - var s2 = /* @__PURE__ */ state(p); - return s2; - }); - sources.set(prop, s); - } - if (s !== void 0) { - var v = get(s); - return v === UNINITIALIZED ? void 0 : v; - } - return Reflect.get(target, prop, receiver); - }, - getOwnPropertyDescriptor(target, prop) { - var descriptor = Reflect.getOwnPropertyDescriptor(target, prop); - if (descriptor && "value" in descriptor) { - var s = sources.get(prop); - if (s) descriptor.value = get(s); - } else if (descriptor === void 0) { - var source2 = sources.get(prop); - var value2 = source2?.v; - if (source2 !== void 0 && value2 !== UNINITIALIZED) { - return { - enumerable: true, - configurable: true, - value: value2, - writable: true - }; - } - } - return descriptor; - }, - has(target, prop) { - if (prop === STATE_SYMBOL) { - return true; - } - var s = sources.get(prop); - var has = s !== void 0 && s.v !== UNINITIALIZED || Reflect.has(target, prop); - if (s !== void 0 || active_effect !== null && (!has || get_descriptor(target, prop)?.writable)) { - if (s === void 0) { - s = with_parent(() => { - var p = has ? proxy(target[prop]) : UNINITIALIZED; - var s2 = /* @__PURE__ */ state(p); - return s2; - }); - sources.set(prop, s); - } - var value2 = get(s); - if (value2 === UNINITIALIZED) { - return false; - } - } - return has; - }, - set(target, prop, value2, receiver) { - var s = sources.get(prop); - var has = prop in target; - if (is_proxied_array && prop === "length") { - for (var i = value2; i < /** @type {Source} */ - s.v; i += 1) { - var other_s = sources.get(i + ""); - if (other_s !== void 0) { - set(other_s, UNINITIALIZED); - } else if (i in target) { - other_s = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED)); - sources.set(i + "", other_s); - } - } - } - if (s === void 0) { - if (!has || get_descriptor(target, prop)?.writable) { - s = with_parent(() => /* @__PURE__ */ state(void 0)); - set(s, proxy(value2)); - sources.set(prop, s); - } - } else { - has = s.v !== UNINITIALIZED; - var p = with_parent(() => proxy(value2)); - set(s, p); - } - var descriptor = Reflect.getOwnPropertyDescriptor(target, prop); - if (descriptor?.set) { - descriptor.set.call(receiver, value2); - } - if (!has) { - if (is_proxied_array && typeof prop === "string") { - var ls = ( - /** @type {Source} */ - sources.get("length") - ); - var n = Number(prop); - if (Number.isInteger(n) && n >= ls.v) { - set(ls, n + 1); - } - } - increment(version); - } - return true; - }, - ownKeys(target) { - get(version); - var own_keys = Reflect.ownKeys(target).filter((key2) => { - var source3 = sources.get(key2); - return source3 === void 0 || source3.v !== UNINITIALIZED; - }); - for (var [key, source2] of sources) { - if (source2.v !== UNINITIALIZED && !(key in target)) { - own_keys.push(key); - } - } - return own_keys; - }, - setPrototypeOf() { - state_prototype_fixed(); - } - } - ); -} -var $window; -var first_child_getter; -var next_sibling_getter; -function init_operations() { - if ($window !== void 0) { - return; - } - $window = window; - var element_prototype = Element.prototype; - var node_prototype = Node.prototype; - var text_prototype = Text.prototype; - first_child_getter = get_descriptor(node_prototype, "firstChild").get; - next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get; - if (is_extensible(element_prototype)) { - element_prototype.__click = void 0; - element_prototype.__className = void 0; - element_prototype.__attributes = null; - element_prototype.__style = void 0; - element_prototype.__e = void 0; - } - if (is_extensible(text_prototype)) { - text_prototype.__t = void 0; - } -} -function create_text(value = "") { - return document.createTextNode(value); -} -// @__NO_SIDE_EFFECTS__ -function get_first_child(node) { - return ( - /** @type {TemplateNode | null} */ - first_child_getter.call(node) - ); -} -// @__NO_SIDE_EFFECTS__ -function get_next_sibling(node) { - return ( - /** @type {TemplateNode | null} */ - next_sibling_getter.call(node) - ); -} -function clear_text_content(node) { - node.textContent = ""; -} -function without_reactive_context(fn) { - var previous_reaction = active_reaction; - var previous_effect = active_effect; - set_active_reaction(null); - set_active_effect(null); - try { - return fn(); - } finally { - set_active_reaction(previous_reaction); - set_active_effect(previous_effect); - } -} -function push_effect(effect, parent_effect) { - var parent_last = parent_effect.last; - if (parent_last === null) { - parent_effect.last = parent_effect.first = effect; - } else { - parent_last.next = effect; - effect.prev = parent_last; - parent_effect.last = effect; - } -} -function create_effect(type, fn) { - var parent = active_effect; - if (parent !== null && (parent.f & INERT) !== 0) { - type |= INERT; - } - var effect = { - ctx: component_context, - deps: null, - nodes: null, - f: type | DIRTY | CONNECTED, - first: null, - fn, - last: null, - next: null, - parent, - b: parent && parent.b, - prev: null, - teardown: null, - wv: 0, - ac: null - }; - var e = effect; - if ((type & EFFECT) !== 0) { - if (collected_effects !== null) { - collected_effects.push(effect); - } else { - Batch.ensure().schedule(effect); - } - } else if (fn !== null) { - try { - update_effect(effect); - } catch (e2) { - destroy_effect(effect); - throw e2; - } - if (e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child - (e.f & EFFECT_PRESERVED) === 0) { - e = e.first; - if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) { - e.f |= EFFECT_TRANSPARENT; - } - } - } - if (e !== null) { - e.parent = parent; - if (parent !== null) { - push_effect(e, parent); - } - if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) { - var derived2 = ( - /** @type {Derived} */ - active_reaction - ); - (derived2.effects ??= []).push(e); - } - } - return effect; -} -function effect_tracking() { - return active_reaction !== null && !untracking; -} -function create_user_effect(fn) { - return create_effect(EFFECT | USER_EFFECT, fn); -} -function component_root(fn) { - Batch.ensure(); - const effect = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn); - return (options = {}) => { - return new Promise((fulfil) => { - if (options.outro) { - pause_effect(effect, () => { - destroy_effect(effect); - fulfil(void 0); - }); - } else { - destroy_effect(effect); - fulfil(void 0); - } - }); - }; -} -function render_effect(fn, flags2 = 0) { - return create_effect(RENDER_EFFECT | flags2, fn); -} -function block(fn, flags2 = 0) { - var effect = create_effect(BLOCK_EFFECT | flags2, fn); - return effect; -} -function branch(fn) { - return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn); -} -function execute_effect_teardown(effect) { - var teardown = effect.teardown; - if (teardown !== null) { - const previously_destroying_effect = is_destroying_effect; - const previous_reaction = active_reaction; - set_is_destroying_effect(true); - set_active_reaction(null); - try { - teardown.call(null); - } finally { - set_is_destroying_effect(previously_destroying_effect); - set_active_reaction(previous_reaction); - } - } -} -function destroy_effect_children(signal, remove_dom = false) { - var effect = signal.first; - signal.first = signal.last = null; - while (effect !== null) { - const controller = effect.ac; - if (controller !== null) { - without_reactive_context(() => { - controller.abort(STALE_REACTION); - }); - } - var next2 = effect.next; - if ((effect.f & ROOT_EFFECT) !== 0) { - effect.parent = null; - } else { - destroy_effect(effect, remove_dom); - } - effect = next2; - } -} -function destroy_block_effect_children(signal) { - var effect = signal.first; - while (effect !== null) { - var next2 = effect.next; - if ((effect.f & BRANCH_EFFECT) === 0) { - destroy_effect(effect); - } - effect = next2; - } -} -function destroy_effect(effect, remove_dom = true) { - var removed = false; - if ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes !== null && effect.nodes.end !== null) { - remove_effect_dom( - effect.nodes.start, - /** @type {TemplateNode} */ - effect.nodes.end - ); - removed = true; - } - set_signal_status(effect, DESTROYING); - destroy_effect_children(effect, remove_dom && !removed); - remove_reactions(effect, 0); - var transitions = effect.nodes && effect.nodes.t; - if (transitions !== null) { - for (const transition of transitions) { - transition.stop(); - } - } - execute_effect_teardown(effect); - effect.f ^= DESTROYING; - effect.f |= DESTROYED; - var parent = effect.parent; - if (parent !== null && parent.first !== null) { - unlink_effect(effect); - } - effect.next = effect.prev = effect.teardown = effect.ctx = effect.deps = effect.fn = effect.nodes = effect.ac = null; -} -function remove_effect_dom(node, end) { - while (node !== null) { - var next2 = node === end ? null : /* @__PURE__ */ get_next_sibling(node); - node.remove(); - node = next2; - } -} -function unlink_effect(effect) { - var parent = effect.parent; - var prev = effect.prev; - var next2 = effect.next; - if (prev !== null) prev.next = next2; - if (next2 !== null) next2.prev = prev; - if (parent !== null) { - if (parent.first === effect) parent.first = next2; - if (parent.last === effect) parent.last = prev; - } -} -function pause_effect(effect, callback, destroy = true) { - var transitions = []; - pause_children(effect, transitions, true); - var fn = () => { - if (destroy) destroy_effect(effect); - if (callback) callback(); - }; - var remaining = transitions.length; - if (remaining > 0) { - var check = () => --remaining || fn(); - for (var transition of transitions) { - transition.out(check); - } - } else { - fn(); - } -} -function pause_children(effect, transitions, local) { - if ((effect.f & INERT) !== 0) return; - effect.f ^= INERT; - var t = effect.nodes && effect.nodes.t; - if (t !== null) { - for (const transition of t) { - if (transition.is_global || local) { - transitions.push(transition); - } - } - } - var child = effect.first; - while (child !== null) { - var sibling = child.next; - var transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent, - // it means the parent block effect was pruned. In that case, - // transparency information was transferred to the branch effect. - (child.f & BRANCH_EFFECT) !== 0 && (effect.f & BLOCK_EFFECT) !== 0; - pause_children(child, transitions, transparent ? local : false); - child = sibling; - } -} -function move_effect(effect, fragment) { - if (!effect.nodes) return; - var node = effect.nodes.start; - var end = effect.nodes.end; - while (node !== null) { - var next2 = node === end ? null : /* @__PURE__ */ get_next_sibling(node); - fragment.append(node); - node = next2; - } -} -let is_updating_effect = false; -let is_destroying_effect = false; -function set_is_destroying_effect(value) { - is_destroying_effect = value; -} -let active_reaction = null; -let untracking = false; -function set_active_reaction(reaction) { - active_reaction = reaction; -} -let active_effect = null; -function set_active_effect(effect) { - active_effect = effect; -} -let current_sources = null; -function push_reaction_value(value) { - if (active_reaction !== null && true) { - if (current_sources === null) { - current_sources = [value]; - } else { - current_sources.push(value); - } - } -} -let new_deps = null; -let skipped_deps = 0; -let untracked_writes = null; -function set_untracked_writes(value) { - untracked_writes = value; -} -let write_version = 1; -let read_version = 0; -let update_version = read_version; -function set_update_version(value) { - update_version = value; -} -function increment_write_version() { - return ++write_version; -} -function is_dirty(reaction) { - var flags2 = reaction.f; - if ((flags2 & DIRTY) !== 0) { - return true; - } - if (flags2 & DERIVED) { - reaction.f &= ~WAS_MARKED; - } - if ((flags2 & MAYBE_DIRTY) !== 0) { - var dependencies = ( - /** @type {Value[]} */ - reaction.deps - ); - var length = dependencies.length; - for (var i = 0; i < length; i++) { - var dependency = dependencies[i]; - if (is_dirty( - /** @type {Derived} */ - dependency - )) { - update_derived( - /** @type {Derived} */ - dependency - ); - } - if (dependency.wv > reaction.wv) { - return true; - } - } - if ((flags2 & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that - // traversal of the graph in the other batches still happens - batch_values === null) { - set_signal_status(reaction, CLEAN); - } - } - return false; -} -function schedule_possible_effect_self_invalidation(signal, effect, root2 = true) { - var reactions = signal.reactions; - if (reactions === null) return; - if (current_sources !== null && includes.call(current_sources, signal)) { - return; - } - for (var i = 0; i < reactions.length; i++) { - var reaction = reactions[i]; - if ((reaction.f & DERIVED) !== 0) { - schedule_possible_effect_self_invalidation( - /** @type {Derived} */ - reaction, - effect, - false - ); - } else if (effect === reaction) { - if (root2) { - set_signal_status(reaction, DIRTY); - } else if ((reaction.f & CLEAN) !== 0) { - set_signal_status(reaction, MAYBE_DIRTY); - } - schedule_effect( - /** @type {Effect} */ - reaction - ); - } - } -} -function update_reaction(reaction) { - var previous_deps = new_deps; - var previous_skipped_deps = skipped_deps; - var previous_untracked_writes = untracked_writes; - var previous_reaction = active_reaction; - var previous_sources = current_sources; - var previous_component_context = component_context; - var previous_untracking = untracking; - var previous_update_version = update_version; - var flags2 = reaction.f; - new_deps = /** @type {null | Value[]} */ - null; - skipped_deps = 0; - untracked_writes = null; - active_reaction = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null; - current_sources = null; - set_component_context(reaction.ctx); - untracking = false; - update_version = ++read_version; - if (reaction.ac !== null) { - without_reactive_context(() => { - reaction.ac.abort(STALE_REACTION); - }); - reaction.ac = null; - } - try { - reaction.f |= REACTION_IS_UPDATING; - var fn = ( - /** @type {Function} */ - reaction.fn - ); - var result = fn(); - reaction.f |= REACTION_RAN; - var deps = reaction.deps; - var is_fork = current_batch?.is_fork; - if (new_deps !== null) { - var i; - if (!is_fork) { - remove_reactions(reaction, skipped_deps); - } - if (deps !== null && skipped_deps > 0) { - deps.length = skipped_deps + new_deps.length; - for (i = 0; i < new_deps.length; i++) { - deps[skipped_deps + i] = new_deps[i]; - } - } else { - reaction.deps = deps = new_deps; - } - if (effect_tracking() && (reaction.f & CONNECTED) !== 0) { - for (i = skipped_deps; i < deps.length; i++) { - (deps[i].reactions ??= []).push(reaction); - } - } - } else if (!is_fork && deps !== null && skipped_deps < deps.length) { - remove_reactions(reaction, skipped_deps); - deps.length = skipped_deps; - } - if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) { - for (i = 0; i < /** @type {Source[]} */ - untracked_writes.length; i++) { - schedule_possible_effect_self_invalidation( - untracked_writes[i], - /** @type {Effect} */ - reaction - ); - } - } - if (previous_reaction !== null && previous_reaction !== reaction) { - read_version++; - if (previous_reaction.deps !== null) { - for (let i2 = 0; i2 < previous_skipped_deps; i2 += 1) { - previous_reaction.deps[i2].rv = read_version; - } - } - if (previous_deps !== null) { - for (const dep of previous_deps) { - dep.rv = read_version; - } - } - if (untracked_writes !== null) { - if (previous_untracked_writes === null) { - previous_untracked_writes = untracked_writes; - } else { - previous_untracked_writes.push(.../** @type {Source[]} */ - untracked_writes); - } - } - } - if ((reaction.f & ERROR_VALUE) !== 0) { - reaction.f ^= ERROR_VALUE; - } - return result; - } catch (error) { - return handle_error(error); - } finally { - reaction.f ^= REACTION_IS_UPDATING; - new_deps = previous_deps; - skipped_deps = previous_skipped_deps; - untracked_writes = previous_untracked_writes; - active_reaction = previous_reaction; - current_sources = previous_sources; - set_component_context(previous_component_context); - untracking = previous_untracking; - update_version = previous_update_version; - } -} -function remove_reaction(signal, dependency) { - let reactions = dependency.reactions; - if (reactions !== null) { - var index = index_of.call(reactions, signal); - if (index !== -1) { - var new_length = reactions.length - 1; - if (new_length === 0) { - reactions = dependency.reactions = null; - } else { - reactions[index] = reactions[new_length]; - reactions.pop(); - } - } - } - if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear - // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps` - // allows us to skip the expensive work of disconnecting and immediately reconnecting it - (new_deps === null || !includes.call(new_deps, dependency))) { - var derived2 = ( - /** @type {Derived} */ - dependency - ); - if ((derived2.f & CONNECTED) !== 0) { - derived2.f ^= CONNECTED; - derived2.f &= ~WAS_MARKED; - } - update_derived_status(derived2); - freeze_derived_effects(derived2); - remove_reactions(derived2, 0); - } -} -function remove_reactions(signal, start_index) { - var dependencies = signal.deps; - if (dependencies === null) return; - for (var i = start_index; i < dependencies.length; i++) { - remove_reaction(signal, dependencies[i]); - } -} -function update_effect(effect) { - var flags2 = effect.f; - if ((flags2 & DESTROYED) !== 0) { - return; - } - set_signal_status(effect, CLEAN); - var previous_effect = active_effect; - var was_updating_effect = is_updating_effect; - active_effect = effect; - is_updating_effect = true; - try { - if ((flags2 & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) { - destroy_block_effect_children(effect); - } else { - destroy_effect_children(effect); - } - execute_effect_teardown(effect); - var teardown = update_reaction(effect); - effect.teardown = typeof teardown === "function" ? teardown : null; - effect.wv = write_version; - var dep; - if (BROWSER && tracing_mode_flag && (effect.f & DIRTY) !== 0 && effect.deps !== null) ; - } finally { - is_updating_effect = was_updating_effect; - active_effect = previous_effect; - } -} -function get(signal) { - var flags2 = signal.f; - var is_derived = (flags2 & DERIVED) !== 0; - if (active_reaction !== null && !untracking) { - var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0; - if (!destroyed && (current_sources === null || !includes.call(current_sources, signal))) { - var deps = active_reaction.deps; - if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) { - if (signal.rv < read_version) { - signal.rv = read_version; - if (new_deps === null && deps !== null && deps[skipped_deps] === signal) { - skipped_deps++; - } else if (new_deps === null) { - new_deps = [signal]; - } else { - new_deps.push(signal); - } - } - } else { - (active_reaction.deps ??= []).push(signal); - var reactions = signal.reactions; - if (reactions === null) { - signal.reactions = [active_reaction]; - } else if (!includes.call(reactions, active_reaction)) { - reactions.push(active_reaction); - } - } - } - } - if (is_destroying_effect && old_values.has(signal)) { - return old_values.get(signal); - } - if (is_derived) { - var derived2 = ( - /** @type {Derived} */ - signal - ); - if (is_destroying_effect) { - var value = derived2.v; - if ((derived2.f & CLEAN) === 0 && derived2.reactions !== null || depends_on_old_values(derived2)) { - value = execute_derived(derived2); - } - old_values.set(derived2, value); - return value; - } - var should_connect = (derived2.f & CONNECTED) === 0 && !untracking && active_reaction !== null && (is_updating_effect || (active_reaction.f & CONNECTED) !== 0); - var is_new = (derived2.f & REACTION_RAN) === 0; - if (is_dirty(derived2)) { - if (should_connect) { - derived2.f |= CONNECTED; - } - update_derived(derived2); - } - if (should_connect && !is_new) { - unfreeze_derived_effects(derived2); - reconnect(derived2); - } - } - if (batch_values?.has(signal)) { - return batch_values.get(signal); - } - if ((signal.f & ERROR_VALUE) !== 0) { - throw signal.v; - } - return signal.v; -} -function reconnect(derived2) { - derived2.f |= CONNECTED; - if (derived2.deps === null) return; - for (const dep of derived2.deps) { - (dep.reactions ??= []).push(derived2); - if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) { - unfreeze_derived_effects( - /** @type {Derived} */ - dep - ); - reconnect( - /** @type {Derived} */ - dep - ); - } - } -} -function depends_on_old_values(derived2) { - if (derived2.v === UNINITIALIZED) return true; - if (derived2.deps === null) return false; - for (const dep of derived2.deps) { - if (old_values.has(dep)) { - return true; - } - if ((dep.f & DERIVED) !== 0 && depends_on_old_values( - /** @type {Derived} */ - dep - )) { - return true; - } - } - return false; -} -function untrack(fn) { - var previous_untracking = untracking; - try { - untracking = true; - return fn(); - } finally { - untracking = previous_untracking; - } -} -const event_symbol = Symbol("events"); -const all_registered_events = /* @__PURE__ */ new Set(); -const root_event_handles = /* @__PURE__ */ new Set(); -let last_propagated_event = null; -function handle_event_propagation(event) { - var handler_element = this; - var owner_document = ( - /** @type {Node} */ - handler_element.ownerDocument - ); - var event_name = event.type; - var path = event.composedPath?.() || []; - var current_target = ( - /** @type {null | Element} */ - path[0] || event.target - ); - last_propagated_event = event; - var path_idx = 0; - var handled_at = last_propagated_event === event && event[event_symbol]; - if (handled_at) { - var at_idx = path.indexOf(handled_at); - if (at_idx !== -1 && (handler_element === document || handler_element === /** @type {any} */ - window)) { - event[event_symbol] = handler_element; - return; - } - var handler_idx = path.indexOf(handler_element); - if (handler_idx === -1) { - return; - } - if (at_idx <= handler_idx) { - path_idx = at_idx; - } - } - current_target = /** @type {Element} */ - path[path_idx] || event.target; - if (current_target === handler_element) return; - define_property(event, "currentTarget", { - configurable: true, - get() { - return current_target || owner_document; - } - }); - var previous_reaction = active_reaction; - var previous_effect = active_effect; - set_active_reaction(null); - set_active_effect(null); - try { - var throw_error; - var other_errors = []; - while (current_target !== null) { - var parent_element = current_target.assignedSlot || current_target.parentNode || /** @type {any} */ - current_target.host || null; - try { - var delegated = current_target[event_symbol]?.[event_name]; - if (delegated != null && (!/** @type {any} */ - current_target.disabled || // DOM could've been updated already by the time this is reached, so we check this as well - // -> the target could not have been disabled because it emits the event in the first place - event.target === current_target)) { - delegated.call(current_target, event); - } - } catch (error) { - if (throw_error) { - other_errors.push(error); - } else { - throw_error = error; - } - } - if (event.cancelBubble || parent_element === handler_element || parent_element === null) { - break; - } - current_target = parent_element; - } - if (throw_error) { - for (let error of other_errors) { - queueMicrotask(() => { - throw error; - }); - } - throw throw_error; - } - } finally { - event[event_symbol] = handler_element; - delete event.currentTarget; - set_active_reaction(previous_reaction); - set_active_effect(previous_effect); - } -} -function assign_nodes(start, end) { - var effect = ( - /** @type {Effect} */ - active_effect - ); - if (effect.nodes === null) { - effect.nodes = { start, end, a: null, t: null }; - } -} -function mount(component, options) { - return _mount(component, options); -} -function hydrate(component, options) { - init_operations(); - options.intro = options.intro ?? false; - const target = options.target; - const was_hydrating = hydrating; - const previous_hydrate_node = hydrate_node; - try { - var anchor = /* @__PURE__ */ get_first_child(target); - while (anchor && (anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */ - anchor.data !== HYDRATION_START)) { - anchor = /* @__PURE__ */ get_next_sibling(anchor); - } - if (!anchor) { - throw HYDRATION_ERROR; - } - set_hydrating(true); - set_hydrate_node( - /** @type {Comment} */ - anchor - ); - const instance = _mount(component, { ...options, anchor }); - set_hydrating(false); - return ( - /** @type {Exports} */ - instance - ); - } catch (error) { - if (error instanceof Error && error.message.split("\n").some((line) => line.startsWith("https://svelte.dev/e/"))) { - throw error; - } - if (error !== HYDRATION_ERROR) { - console.warn("Failed to hydrate: ", error); - } - if (options.recover === false) { - hydration_failed(); - } - init_operations(); - clear_text_content(target); - set_hydrating(false); - return mount(component, options); - } finally { - set_hydrating(was_hydrating); - set_hydrate_node(previous_hydrate_node); - } -} -const listeners = /* @__PURE__ */ new Map(); -function _mount(Component, { target, anchor, props = {}, events, context, intro = true, transformError }) { - init_operations(); - var component = void 0; - var unmount2 = component_root(() => { - var anchor_node = anchor ?? target.appendChild(create_text()); - boundary( - /** @type {TemplateNode} */ - anchor_node, - { - pending: () => { - } - }, - (anchor_node2) => { - push({}); - var ctx = ( - /** @type {ComponentContext} */ - component_context - ); - if (context) ctx.c = context; - if (events) { - props.$$events = events; - } - if (hydrating) { - assign_nodes( - /** @type {TemplateNode} */ - anchor_node2, - null - ); - } - component = Component(anchor_node2, props) || {}; - if (hydrating) { - active_effect.nodes.end = hydrate_node; - if (hydrate_node === null || hydrate_node.nodeType !== COMMENT_NODE || /** @type {Comment} */ - hydrate_node.data !== HYDRATION_END) { - hydration_mismatch(); - throw HYDRATION_ERROR; - } - } - pop(); - }, - transformError - ); - var registered_events = /* @__PURE__ */ new Set(); - var event_handle = (events2) => { - for (var i = 0; i < events2.length; i++) { - var event_name = events2[i]; - if (registered_events.has(event_name)) continue; - registered_events.add(event_name); - var passive = is_passive_event(event_name); - for (const node of [target, document]) { - var counts = listeners.get(node); - if (counts === void 0) { - counts = /* @__PURE__ */ new Map(); - listeners.set(node, counts); - } - var count = counts.get(event_name); - if (count === void 0) { - node.addEventListener(event_name, handle_event_propagation, { passive }); - counts.set(event_name, 1); - } else { - counts.set(event_name, count + 1); - } - } - } - }; - event_handle(array_from(all_registered_events)); - root_event_handles.add(event_handle); - return () => { - for (var event_name of registered_events) { - for (const node of [target, document]) { - var counts = ( - /** @type {Map} */ - listeners.get(node) - ); - var count = ( - /** @type {number} */ - counts.get(event_name) - ); - if (--count == 0) { - node.removeEventListener(event_name, handle_event_propagation); - counts.delete(event_name); - if (counts.size === 0) { - listeners.delete(node); - } - } else { - counts.set(event_name, count); - } - } - } - root_event_handles.delete(event_handle); - if (anchor_node !== anchor) { - anchor_node.parentNode?.removeChild(anchor_node); - } - }; - }); - mounted_components.set(component, unmount2); - return component; -} -let mounted_components = /* @__PURE__ */ new WeakMap(); -function unmount(component, options) { - const fn = mounted_components.get(component); - if (fn) { - mounted_components.delete(component); - return fn(options); - } - return Promise.resolve(); -} -function asClassComponent$1(component) { - return class extends Svelte4Component { - /** @param {any} options */ - constructor(options) { - super({ - component, - ...options - }); - } - }; -} -class Svelte4Component { - /** @type {any} */ - #events; - /** @type {Record} */ - #instance; - /** - * @param {ComponentConstructorOptions & { - * component: any; - * }} options - */ - constructor(options) { - var sources = /* @__PURE__ */ new Map(); - var add_source = (key, value) => { - var s = /* @__PURE__ */ mutable_source(value, false, false); - sources.set(key, s); - return s; - }; - const props = new Proxy( - { ...options.props || {}, $$events: {} }, - { - get(target, prop) { - return get(sources.get(prop) ?? add_source(prop, Reflect.get(target, prop))); - }, - has(target, prop) { - if (prop === LEGACY_PROPS) return true; - get(sources.get(prop) ?? add_source(prop, Reflect.get(target, prop))); - return Reflect.has(target, prop); - }, - set(target, prop, value) { - set(sources.get(prop) ?? add_source(prop, value), value); - return Reflect.set(target, prop, value); - } - } - ); - this.#instance = (options.hydrate ? hydrate : mount)(options.component, { - target: options.target, - anchor: options.anchor, - props, - context: options.context, - intro: options.intro ?? false, - recover: options.recover, - transformError: options.transformError - }); - if (!options?.props?.$$host || options.sync === false) { - flushSync(); - } - this.#events = props.$$events; - for (const key of Object.keys(this.#instance)) { - if (key === "$set" || key === "$destroy" || key === "$on") continue; - define_property(this, key, { - get() { - return this.#instance[key]; - }, - /** @param {any} value */ - set(value) { - this.#instance[key] = value; - }, - enumerable: true - }); - } - this.#instance.$set = /** @param {Record} next */ - (next2) => { - Object.assign(props, next2); - }; - this.#instance.$destroy = () => { - unmount(this.#instance); - }; - } - /** @param {Record} props */ - $set(props) { - this.#instance.$set(props); - } - /** - * @param {string} event - * @param {(...args: any[]) => any} callback - * @returns {any} - */ - $on(event, callback) { - this.#events[event] = this.#events[event] || []; - const cb = (...args) => callback.call(this, ...args); - this.#events[event].push(cb); - return () => { - this.#events[event] = this.#events[event].filter( - /** @param {any} fn */ - (fn) => fn !== cb - ); - }; - } - $destroy() { - this.#instance.$destroy(); - } -} -function asClassComponent(component) { - const component_constructor = asClassComponent$1(component); - const _render = (props, { context, csp, transformError } = {}) => { - const result = render(component, { props, context, csp, transformError }); - const munged = Object.defineProperties( - /** @type {LegacyRenderResult & PromiseLike} */ - {}, - { - css: { - value: { code: "", map: null } - }, - head: { - get: () => result.head - }, - html: { - get: () => result.body - }, - then: { - /** - * this is not type-safe, but honestly it's the best I can do right now, and it's a straightforward function. - * - * @template TResult1 - * @template [TResult2=never] - * @param { (value: LegacyRenderResult) => TResult1 } onfulfilled - * @param { (reason: unknown) => TResult2 } onrejected - */ - value: (onfulfilled, onrejected) => { - { - const user_result = onfulfilled({ - css: munged.css, - head: munged.head, - html: munged.html - }); - return Promise.resolve(user_result); - } - } - } - } - ); - return munged; - }; - component_constructor.render = _render; - return component_constructor; -} -function Root($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { - stores, - page, - constructors, - components = [], - form, - data_0 = null, - data_1 = null - } = $$props; - { - setContext("__svelte__", stores); - } - { - stores.page.set(page); - } - const Pyramid_1 = derived(() => constructors[1]); - if (constructors[1]) { - $$renderer2.push(""); - const Pyramid_0 = constructors[0]; - if (Pyramid_0) { - $$renderer2.push(""); - Pyramid_0($$renderer2, { - data: data_0, - form, - params: page.params, - children: ($$renderer3) => { - if (Pyramid_1()) { - $$renderer3.push(""); - Pyramid_1()($$renderer3, { data: data_1, form, params: page.params }); - $$renderer3.push(""); - } else { - $$renderer3.push(""); - $$renderer3.push(""); - } - }, - $$slots: { default: true } - }); - $$renderer2.push(""); - } else { - $$renderer2.push(""); - $$renderer2.push(""); - } - } else { - $$renderer2.push(""); - const Pyramid_0 = constructors[0]; - if (Pyramid_0) { - $$renderer2.push(""); - Pyramid_0($$renderer2, { data: data_0, form, params: page.params }); - $$renderer2.push(""); - } else { - $$renderer2.push(""); - $$renderer2.push(""); - } - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - } - $$renderer2.push(``); - }); -} -const root = asClassComponent(Root); -export { - root as r, - safe_not_equal as s -}; diff --git a/frontend/.svelte-kit/output/server/chunks/shared.js b/frontend/.svelte-kit/output/server/chunks/shared.js deleted file mode 100644 index a0fdd68..0000000 --- a/frontend/.svelte-kit/output/server/chunks/shared.js +++ /dev/null @@ -1,789 +0,0 @@ -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, c as base64_decode } from "./utils.js"; -const SVELTE_KIT_ASSETS = "/_svelte_kit_assets"; -const ENDPOINT_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"]; -const MUTATIVE_METHODS = ["POST", "PUT", "PATCH", "DELETE"]; -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"); - const parsed_offsets = JSON.parse(text_decoder.decode(file_offsets_buffer)); - if (!Array.isArray(parsed_offsets) || parsed_offsets.some((n) => typeof n !== "number" || !Number.isInteger(n) || n < 0)) { - throw deserialize_error("invalid file offset table"); - } - file_offsets = /** @type {Array} */ - parsed_offsets; - files_start_offset = HEADER_BYTES + data_length + file_offsets_length; - } - const file_spans = []; - const [data, meta] = devalue.parse(text_decoder.decode(data_buffer), { - File: ([name, type, size, last_modified, index]) => { - if (typeof name !== "string" || typeof type !== "string" || typeof size !== "number" || typeof last_modified !== "number" || typeof index !== "number") { - throw deserialize_error("invalid file metadata"); - } - let offset = file_offsets[index]; - if (offset === void 0) { - throw deserialize_error("duplicate file offset table index"); - } - file_offsets[index] = void 0; - offset += files_start_offset; - if (offset + size > content_length) { - throw deserialize_error("file data overflow"); - } - file_spans.push({ offset, size }); - return new Proxy(new LazyFile(name, type, size, last_modified, get_chunk, offset), { - getPrototypeOf() { - return File.prototype; - } - }); - } - }); - file_spans.sort((a, b) => a.offset - b.offset || a.size - b.size); - for (let i = 1; i < file_spans.length; i++) { - const previous = file_spans[i - 1]; - const current = file_spans[i]; - const previous_end = previous.offset + previous.size; - if (previous_end < current.offset) { - throw deserialize_error("gaps in file data"); - } - if (previous_end > current.offset) { - throw deserialize_error("overlapping file data"); - } - } - 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 | undefined>} */ - #get_chunk; - /** @type {number} */ - #offset; - /** - * @param {string} name - * @param {string} type - * @param {number} size - * @param {number} last_modified - * @param {(index: number) => Promise | 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; - 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, - MUTATIVE_METHODS as M, - PAGE_METHODS as P, - SVELTE_KIT_ASSETS as S, - TRAILING_SLASH_PARAM as T, - normalize_error as a, - get_global_name as b, - clarify_devalue_error as c, - get_node_type as d, - escape_html as e, - create_remote_key as f, - get_status as g, - handle_error_and_jsonify as h, - is_form_content_type as i, - static_error_page as j, - stringify as k, - deserialize_binary_form as l, - method_not_allowed as m, - negotiate as n, - has_prerendered_path as o, - parse_remote_arg as p, - handle_fatal_error as q, - redirect_response as r, - serialize_uses as s, - format_server_error as t, - stringify_remote_arg as u, - create_field_proxy as v, - normalize_issue as w, - set_nested_value as x, - flatten_issues as y, - deep_set as z -}; diff --git a/frontend/.svelte-kit/output/server/chunks/state.svelte.js b/frontend/.svelte-kit/output/server/chunks/state.svelte.js deleted file mode 100644 index 8f471d9..0000000 --- a/frontend/.svelte-kit/output/server/chunks/state.svelte.js +++ /dev/null @@ -1,19 +0,0 @@ -import "clsx"; -import { n as noop } from "./index2.js"; -import "./exports.js"; -import "@sveltejs/kit/internal/server"; -import "./root.js"; -const is_legacy = noop.toString().includes("$$") || /function \w+\(\) \{\}/.test(noop.toString()); -const placeholder_url = "a:"; -if (is_legacy) { - ({ - data: {}, - form: null, - error: null, - params: {}, - route: { id: null }, - state: {}, - status: -1, - url: new URL(placeholder_url) - }); -} diff --git a/frontend/.svelte-kit/output/server/chunks/utils.js b/frontend/.svelte-kit/output/server/chunks/utils.js deleted file mode 100644 index 78e5bde..0000000 --- a/frontend/.svelte-kit/output/server/chunks/utils.js +++ /dev/null @@ -1,43 +0,0 @@ -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 { - text_encoder as a, - base64_encode as b, - base64_decode as c, - get_relative_path as g, - text_decoder as t -}; diff --git a/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js b/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js deleted file mode 100644 index d1e09f2..0000000 --- a/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +++ /dev/null @@ -1,45 +0,0 @@ -import { g as getContext, e as escape_html } from "../../chunks/index2.js"; -import "clsx"; -import "../../chunks/state.svelte.js"; -import "@sveltejs/kit/internal"; -import "../../chunks/exports.js"; -import "../../chunks/utils.js"; -import { w as writable } from "../../chunks/index.js"; -import "@sveltejs/kit/internal/server"; -import "../../chunks/root.js"; -function create_updated_store() { - const { set, subscribe } = writable(false); - { - return { - subscribe, - // eslint-disable-next-line @typescript-eslint/require-await - check: async () => false - }; - } -} -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(`

${escape_html(page.status)}

${escape_html(page.error?.message)}

`); - }); -} -export { - Error$1 as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js deleted file mode 100644 index 334fe5b..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +++ /dev/null @@ -1,20 +0,0 @@ -import "clsx"; -import "@sveltejs/kit/internal"; -import "../../chunks/exports.js"; -import "../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../chunks/root.js"; -import "../../chunks/state.svelte.js"; -function _layout($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let { children } = $$props; - { - $$renderer2.push(""); - $$renderer2.push(`
Loading...
`); - } - $$renderer2.push(``); - }); -} -export { - _layout as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js deleted file mode 100644 index eb0b6a2..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +++ /dev/null @@ -1,14 +0,0 @@ -import "clsx"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

Dashboard

`); - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/aliases/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/aliases/_page.svelte.js deleted file mode 100644 index fb71a6f..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/aliases/_page.svelte.js +++ /dev/null @@ -1,15 +0,0 @@ -import "clsx"; -import "@sveltejs/kit/internal"; -import "../../../chunks/exports.js"; -import "../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../chunks/root.js"; -import "../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

Redirecting to domains...

`); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/auth/change-password/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/auth/change-password/_page.svelte.js deleted file mode 100644 index d3de0ac..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/auth/change-password/_page.svelte.js +++ /dev/null @@ -1,31 +0,0 @@ -import { a as attr, e as escape_html } from "../../../../chunks/index2.js"; -import "@sveltejs/kit/internal"; -import "../../../../chunks/exports.js"; -import "../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../chunks/root.js"; -import "../../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let oldPassword = ""; - let newPassword = ""; - let confirmPassword = ""; - let loading = false; - $$renderer2.push(`

Change Password

`); - { - $$renderer2.push(""); - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/auth/dashboard/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/auth/dashboard/_page.svelte.js deleted file mode 100644 index 422ded5..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/auth/dashboard/_page.svelte.js +++ /dev/null @@ -1,24 +0,0 @@ -import "clsx"; -import "@sveltejs/kit/internal"; -import "../../../../chunks/exports.js"; -import "../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../chunks/root.js"; -import "../../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

User Dashboard

`); - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(`
`); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/auth/forgot/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/auth/forgot/_page.svelte.js deleted file mode 100644 index d9947d9..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/auth/forgot/_page.svelte.js +++ /dev/null @@ -1,24 +0,0 @@ -import { a as attr, e as escape_html } from "../../../../chunks/index2.js"; -import "@sveltejs/kit/internal"; -import "../../../../chunks/exports.js"; -import "../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../chunks/root.js"; -import "../../../../chunks/state.svelte.js"; -function _page($$renderer) { - let identifier = ""; - let loading = false; - $$renderer.push(``); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/auth/login/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/auth/login/_page.svelte.js deleted file mode 100644 index f9e10ba..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/auth/login/_page.svelte.js +++ /dev/null @@ -1,22 +0,0 @@ -import { a as attr, e as escape_html } from "../../../../chunks/index2.js"; -import "@sveltejs/kit/internal"; -import "../../../../chunks/exports.js"; -import "../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../chunks/root.js"; -import "../../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let identifier = ""; - let password = ""; - let loading = false; - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/_page.svelte.js deleted file mode 100644 index c5010fc..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/_page.svelte.js +++ /dev/null @@ -1,19 +0,0 @@ -import "clsx"; -import "@sveltejs/kit/internal"; -import "../../../../chunks/exports.js"; -import "../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../chunks/root.js"; -import "../../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/aliases/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/aliases/_page.svelte.js deleted file mode 100644 index 4d0f8a1..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/aliases/_page.svelte.js +++ /dev/null @@ -1,25 +0,0 @@ -import { a as attr, e as escape_html, s as stringify } from "../../../../../chunks/index2.js"; -import "@sveltejs/kit/internal"; -import "../../../../../chunks/exports.js"; -import "../../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../../chunks/root.js"; -import "../../../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let domainName = ""; - $$renderer2.push(`
← Back to ${escape_html(domainName)}

Aliases

`); - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/users/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/users/_page.svelte.js deleted file mode 100644 index 88a7030..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/domains/_name_/users/_page.svelte.js +++ /dev/null @@ -1,25 +0,0 @@ -import { a as attr, e as escape_html, s as stringify } from "../../../../../chunks/index2.js"; -import "@sveltejs/kit/internal"; -import "../../../../../chunks/exports.js"; -import "../../../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../../../chunks/root.js"; -import "../../../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let domainName = ""; - $$renderer2.push(`
← Back to ${escape_html(domainName)}

Users

`); - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/domains/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/domains/_page.svelte.js deleted file mode 100644 index cb02f51..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/domains/_page.svelte.js +++ /dev/null @@ -1,26 +0,0 @@ -import "clsx"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

Domains

`); - { - $$renderer2.push(""); - } - $$renderer2.push(`
`); - { - $$renderer2.push(""); - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(` `); - { - $$renderer2.push(""); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/logs/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/logs/_page.svelte.js deleted file mode 100644 index f3ac280..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/logs/_page.svelte.js +++ /dev/null @@ -1,78 +0,0 @@ -import { a as attr, e as escape_html, b as ensure_array_like, c as attr_class, s as stringify } from "../../../chunks/index2.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - let logs = []; - let loading = true; - let error = ""; - let filter = ""; - let hours = 1; - async function loadLogs() { - loading = true; - error = ""; - try { - const res = await fetch(`/api/logs?hours=${hours}&filter=${encodeURIComponent(filter)}`); - if (res.ok) { - const data = await res.json(); - logs = data.data || []; - } else { - error = "Failed to load logs"; - } - } catch (e) { - error = "Connection error"; - console.error("Failed to load logs:", e); - } finally { - loading = false; - } - } - function getPriorityClass(priority) { - const p = priority.toLowerCase(); - if (p === "err" || p === "error") return "error"; - if (p === "warning" || p === "warn") return "warning"; - if (p === "info") return "info"; - return ""; - } - $$renderer2.push(`

Mail Logs

`); - if (loading) { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } else if (error) { - $$renderer2.push(""); - $$renderer2.push(`

${escape_html(error)}

`); - } else if (logs.length === 0) { - $$renderer2.push(""); - $$renderer2.push(`

No log entries found.

`); - } else { - $$renderer2.push(""); - $$renderer2.push(`
`); - const each_array = ensure_array_like(logs); - for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) { - let entry = each_array[$$index]; - $$renderer2.push(`${escape_html(entry.timestamp)} [${escape_html(entry.priority)}] ${escape_html(entry.message)}
`); - } - $$renderer2.push(``); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/queue/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/queue/_page.svelte.js deleted file mode 100644 index 3cb5f5f..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/queue/_page.svelte.js +++ /dev/null @@ -1,14 +0,0 @@ -import "clsx"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

Mail Queue

`); - { - $$renderer2.push(""); - $$renderer2.push(`

Loading...

`); - } - $$renderer2.push(``); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/entries/pages/users/_page.svelte.js b/frontend/.svelte-kit/output/server/entries/pages/users/_page.svelte.js deleted file mode 100644 index fb71a6f..0000000 --- a/frontend/.svelte-kit/output/server/entries/pages/users/_page.svelte.js +++ /dev/null @@ -1,15 +0,0 @@ -import "clsx"; -import "@sveltejs/kit/internal"; -import "../../../chunks/exports.js"; -import "../../../chunks/utils.js"; -import "@sveltejs/kit/internal/server"; -import "../../../chunks/root.js"; -import "../../../chunks/state.svelte.js"; -function _page($$renderer, $$props) { - $$renderer.component(($$renderer2) => { - $$renderer2.push(`

Redirecting to domains...

`); - }); -} -export { - _page as default -}; diff --git a/frontend/.svelte-kit/output/server/index.js b/frontend/.svelte-kit/output/server/index.js deleted file mode 100644 index 36ef982..0000000 --- a/frontend/.svelte-kit/output/server/index.js +++ /dev/null @@ -1,3821 +0,0 @@ -import { B as BROWSER } from "./chunks/false.js"; -import { json, text, error } from "@sveltejs/kit"; -import { Redirect, SvelteKitError, ActionFailure, HttpError } from "@sveltejs/kit/internal"; -import { with_request_store, merge_tracing, try_get_request_store } from "@sveltejs/kit/internal/server"; -import { a as assets, b as base, c as app_dir, r as relative, o as override, d as reset } from "./chunks/environment.js"; -import { E as ENDPOINT_METHODS, P as PAGE_METHODS, n as negotiate, m as method_not_allowed, h as handle_error_and_jsonify, g as get_status, i as is_form_content_type, a as normalize_error, b as get_global_name, s as serialize_uses, c as clarify_devalue_error, d as get_node_type, e as escape_html, S as SVELTE_KIT_ASSETS, f as create_remote_key, j as static_error_page, r as redirect_response, p as parse_remote_arg, k as stringify, l as deserialize_binary_form, o as has_prerendered_path, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, q as handle_fatal_error, M as MUTATIVE_METHODS, t as format_server_error } from "./chunks/shared.js"; -import * as devalue from "devalue"; -import { m as make_trackable, d as disable_search, a as decode_params, S as SCHEME, v as validate_layout_server_exports, b as validate_layout_exports, c as validate_page_server_exports, e as validate_page_exports, n as normalize_path, r as resolve, f as decode_pathname, g as validate_server_exports } from "./chunks/exports.js"; -import { b as base64_encode, t as text_decoder, a as text_encoder, g as get_relative_path } from "./chunks/utils.js"; -import { w as writable, r as readable } from "./chunks/index.js"; -import { p as public_env, r as read_implementation, o as options, s as set_private_env, a as set_public_env, g as get_hooks, b as set_read_implementation } from "./chunks/internal.js"; -import { parse, serialize } from "cookie"; -import * as set_cookie_parser from "set-cookie-parser"; -function with_resolvers() { - let resolve2; - let reject; - const promise = new Promise((res, rej) => { - resolve2 = res; - reject = rej; - }); - return { promise, resolve: resolve2, reject }; -} -const NULL_BODY_STATUS = [101, 103, 204, 205, 304]; -const IN_WEBCONTAINER = !!globalThis.process?.versions?.webcontainer; -async function render_endpoint(event, event_state, mod, state) { - const method = ( - /** @type {import('types').HttpMethod} */ - event.request.method - ); - let handler = mod[method] || mod.fallback; - if (method === "HEAD" && !mod.HEAD && mod.GET) { - handler = mod.GET; - } - if (!handler) { - return method_not_allowed(mod, method); - } - const prerender = mod.prerender ?? state.prerender_default; - if (prerender && (mod.POST || mod.PATCH || mod.PUT || mod.DELETE)) { - throw new Error("Cannot prerender endpoints that have mutative methods"); - } - if (state.prerendering && !state.prerendering.inside_reroute && !prerender) { - if (state.depth > 0) { - throw new Error(`${event.route.id} is not prerenderable`); - } else { - return new Response(void 0, { status: 204 }); - } - } - try { - event_state.allows_commands = true; - const response = await with_request_store( - { event, state: event_state }, - () => handler( - /** @type {import('@sveltejs/kit').RequestEvent>} */ - event - ) - ); - if (!(response instanceof Response)) { - throw new Error( - `Invalid response from route ${event.url.pathname}: handler should return a Response object` - ); - } - if (state.prerendering && (!state.prerendering.inside_reroute || prerender)) { - const cloned = new Response(response.clone().body, { - status: response.status, - statusText: response.statusText, - headers: new Headers(response.headers) - }); - cloned.headers.set("x-sveltekit-prerender", String(prerender)); - if (state.prerendering.inside_reroute && prerender) { - cloned.headers.set( - "x-sveltekit-routeid", - encodeURI( - /** @type {string} */ - event.route.id - ) - ); - state.prerendering.dependencies.set(event.url.pathname, { response: cloned, body: null }); - } else { - return cloned; - } - } - return response; - } catch (e) { - if (e instanceof Redirect) { - return new Response(void 0, { - status: e.status, - headers: { location: e.location } - }); - } - throw e; - } -} -function is_endpoint_request(event) { - const { method, headers: headers2 } = event.request; - if (ENDPOINT_METHODS.includes(method) && !PAGE_METHODS.includes(method)) { - return true; - } - if (method === "POST" && headers2.get("x-sveltekit-action") === "true") return false; - const accept = event.request.headers.get("accept") ?? "*/*"; - return negotiate(accept, ["*", "text/html"]) !== "text/html"; -} -function compact(arr) { - return arr.filter( - /** @returns {val is NonNullable} */ - (val) => val != null - ); -} -const DATA_SUFFIX = "/__data.json"; -const HTML_DATA_SUFFIX = ".html__data.json"; -function has_data_suffix(pathname) { - return pathname.endsWith(DATA_SUFFIX) || pathname.endsWith(HTML_DATA_SUFFIX); -} -function add_data_suffix(pathname) { - if (pathname.endsWith(".html")) return pathname.replace(/\.html$/, HTML_DATA_SUFFIX); - return pathname.replace(/\/$/, "") + DATA_SUFFIX; -} -function strip_data_suffix(pathname) { - if (pathname.endsWith(HTML_DATA_SUFFIX)) { - return pathname.slice(0, -HTML_DATA_SUFFIX.length) + ".html"; - } - return pathname.slice(0, -DATA_SUFFIX.length); -} -const ROUTE_SUFFIX = "/__route.js"; -function has_resolution_suffix(pathname) { - return pathname.endsWith(ROUTE_SUFFIX); -} -function add_resolution_suffix(pathname) { - return pathname.replace(/\/$/, "") + ROUTE_SUFFIX; -} -function strip_resolution_suffix(pathname) { - return pathname.slice(0, -ROUTE_SUFFIX.length); -} -const noop_span = { - spanContext() { - return noop_span_context; - }, - setAttribute() { - return this; - }, - setAttributes() { - return this; - }, - addEvent() { - return this; - }, - setStatus() { - return this; - }, - updateName() { - return this; - }, - end() { - return this; - }, - isRecording() { - return false; - }, - recordException() { - return this; - }, - addLink() { - return this; - }, - addLinks() { - return this; - } -}; -const noop_span_context = { - traceId: "", - spanId: "", - traceFlags: 0 -}; -async function record_span({ name, attributes, fn }) { - { - return fn(noop_span); - } -} -function is_action_json_request(event) { - const accept = negotiate(event.request.headers.get("accept") ?? "*/*", [ - "application/json", - "text/html" - ]); - return accept === "application/json" && event.request.method === "POST"; -} -async function handle_action_json_request(event, event_state, options2, server) { - const actions = server?.actions; - if (!actions) { - const no_actions_error = new SvelteKitError( - 405, - "Method Not Allowed", - `POST method not allowed. No form actions exist for ${"this page"}` - ); - return action_json( - { - type: "error", - error: await handle_error_and_jsonify(event, event_state, options2, no_actions_error) - }, - { - status: no_actions_error.status, - 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: "GET" - } - } - ); - } - check_named_default_separate(actions); - try { - const data = await call_action(event, event_state, actions); - if (BROWSER) ; - if (data instanceof ActionFailure) { - return action_json({ - type: "failure", - status: data.status, - // @ts-expect-error we assign a string to what is supposed to be an object. That's ok - // because we don't use the object outside, and this way we have better code navigation - // through knowing where the related interface is used. - data: stringify_action_response( - data.data, - /** @type {string} */ - event.route.id, - options2.hooks.transport - ) - }); - } else { - return action_json({ - type: "success", - status: data ? 200 : 204, - // @ts-expect-error see comment above - data: stringify_action_response( - data, - /** @type {string} */ - event.route.id, - options2.hooks.transport - ) - }); - } - } catch (e) { - const err = normalize_error(e); - if (err instanceof Redirect) { - return action_json_redirect(err); - } - return action_json( - { - type: "error", - error: await handle_error_and_jsonify( - event, - event_state, - options2, - check_incorrect_fail_use(err) - ) - }, - { - status: get_status(err) - } - ); - } -} -function check_incorrect_fail_use(error2) { - return error2 instanceof ActionFailure ? new Error('Cannot "throw fail()". Use "return fail()"') : error2; -} -function action_json_redirect(redirect) { - return action_json({ - type: "redirect", - status: redirect.status, - location: redirect.location - }); -} -function action_json(data, init2) { - return json(data, init2); -} -function is_action_request(event) { - return event.request.method === "POST"; -} -async function handle_action_request(event, event_state, server) { - const actions = server?.actions; - if (!actions) { - event.setHeaders({ - // 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: "GET" - }); - return { - type: "error", - error: new SvelteKitError( - 405, - "Method Not Allowed", - `POST method not allowed. No form actions exist for ${"this page"}` - ) - }; - } - check_named_default_separate(actions); - try { - const data = await call_action(event, event_state, actions); - if (BROWSER) ; - if (data instanceof ActionFailure) { - return { - type: "failure", - status: data.status, - data: data.data - }; - } else { - return { - type: "success", - status: 200, - // @ts-expect-error this will be removed upon serialization, so `undefined` is the same as omission - data - }; - } - } catch (e) { - const err = normalize_error(e); - if (err instanceof Redirect) { - return { - type: "redirect", - status: err.status, - location: err.location - }; - } - return { - type: "error", - error: check_incorrect_fail_use(err) - }; - } -} -function check_named_default_separate(actions) { - if (actions.default && Object.keys(actions).length > 1) { - throw new Error( - "When using named actions, the default action cannot be used. See the docs for more info: https://svelte.dev/docs/kit/form-actions#named-actions" - ); - } -} -async function call_action(event, event_state, actions) { - const url = new URL(event.request.url); - let name = "default"; - for (const param of url.searchParams) { - if (param[0].startsWith("/")) { - name = param[0].slice(1); - if (name === "default") { - throw new Error('Cannot use reserved action name "default"'); - } - break; - } - } - const action = actions[name]; - if (!action) { - throw new SvelteKitError(404, "Not Found", `No action with name '${name}' found`); - } - if (!is_form_content_type(event.request)) { - throw new SvelteKitError( - 415, - "Unsupported Media Type", - `Form actions expect form-encoded data — received ${event.request.headers.get( - "content-type" - )}` - ); - } - return record_span({ - name: "sveltekit.form_action", - attributes: { - "http.route": event.route.id || "unknown" - }, - fn: async (current2) => { - const traced_event = merge_tracing(event, current2); - event_state.allows_commands = true; - const result = await with_request_store( - { event: traced_event, state: event_state }, - () => action(traced_event) - ); - if (result instanceof ActionFailure) { - current2.setAttributes({ - "sveltekit.form_action.result.type": "failure", - "sveltekit.form_action.result.status": result.status - }); - } - return result; - } - }); -} -function validate_action_return(data) { - if (data instanceof Redirect) { - throw new Error("Cannot `return redirect(...)` — use `redirect(...)` instead"); - } - if (data instanceof HttpError) { - throw new Error("Cannot `return error(...)` — use `error(...)` or `return fail(...)` instead"); - } -} -function uneval_action_response(data, route_id, transport) { - const replacer = (thing) => { - for (const key2 in transport) { - const encoded = transport[key2].encode(thing); - if (encoded) { - return `app.decode('${key2}', ${devalue.uneval(encoded, replacer)})`; - } - } - }; - return try_serialize(data, (value) => devalue.uneval(value, replacer), route_id); -} -function stringify_action_response(data, route_id, transport) { - const encoders = Object.fromEntries( - Object.entries(transport).map(([key2, value]) => [key2, value.encode]) - ); - return try_serialize(data, (value) => devalue.stringify(value, encoders), route_id); -} -function try_serialize(data, fn, route_id) { - try { - return fn(data); - } catch (e) { - const error2 = ( - /** @type {any} */ - e - ); - if (data instanceof Response) { - throw new Error( - `Data returned from action inside ${route_id} is not serializable. Form actions need to return plain objects or fail(). E.g. return { success: true } or return fail(400, { message: "invalid" });`, - { cause: e } - ); - } - if ("path" in error2) { - let message = `Data returned from action inside ${route_id} is not serializable: ${error2.message}`; - if (error2.path !== "") message += ` (data.${error2.path})`; - throw new Error(message, { cause: e }); - } - throw error2; - } -} -function create_async_iterator() { - let resolved = -1; - let returned = -1; - const deferred = []; - return { - iterate: (transform = (x) => x) => { - return { - [Symbol.asyncIterator]() { - return { - next: async () => { - const next = deferred[++returned]; - if (!next) return { value: null, done: true }; - const value = await next.promise; - return { value: transform(value), done: false }; - } - }; - } - }; - }, - add: (promise) => { - deferred.push(with_resolvers()); - void promise.then((value) => { - deferred[++resolved].resolve(value); - }); - } - }; -} -function server_data_serializer(event, event_state, options2) { - let promise_id = 1; - let max_nodes = -1; - const iterator = create_async_iterator(); - const global = get_global_name(options2); - function get_replacer(index) { - return function replacer(thing) { - if (typeof thing?.then === "function") { - const id = promise_id++; - const promise = thing.then( - /** @param {any} data */ - (data) => ({ data }) - ).catch( - /** @param {any} error */ - async (error2) => ({ - error: await handle_error_and_jsonify(event, event_state, options2, error2) - }) - ).then( - /** - * @param {{data: any; error: any}} result - */ - async ({ data, error: error2 }) => { - let str; - try { - str = devalue.uneval(error2 ? [, error2] : [data], replacer); - } catch { - error2 = await handle_error_and_jsonify( - event, - event_state, - options2, - new Error(`Failed to serialize promise while rendering ${event.route.id}`) - ); - str = devalue.uneval([, error2], replacer); - } - return { - index, - str: `${global}.resolve(${id}, ${str.includes("app.decode") ? `(app) => ${str}` : `() => ${str}`})` - }; - } - ); - iterator.add(promise); - return `${global}.defer(${id})`; - } else { - for (const key2 in options2.hooks.transport) { - const encoded = options2.hooks.transport[key2].encode(thing); - if (encoded) { - return `app.decode('${key2}', ${devalue.uneval(encoded, replacer)})`; - } - } - } - }; - } - const strings = ( - /** @type {string[]} */ - [] - ); - return { - set_max_nodes(i) { - max_nodes = i; - }, - add_node(i, node) { - try { - if (!node) { - strings[i] = "null"; - return; - } - const payload = { type: "data", data: node.data, uses: serialize_uses(node) }; - if (node.slash) payload.slash = node.slash; - strings[i] = devalue.uneval(payload, get_replacer(i)); - } catch (e) { - e.path = e.path.slice(1); - throw new Error(clarify_devalue_error( - event, - /** @type {any} */ - e - ), { cause: e }); - } - }, - get_data(csp) { - const open = ``; - const close = `<\/script> -`; - return { - data: `[${compact(max_nodes > -1 ? strings.slice(0, max_nodes) : strings).join(",")}]`, - chunks: promise_id > 1 ? iterator.iterate(({ index, str }) => { - if (max_nodes > -1 && index >= max_nodes) { - return ""; - } - return open + str + close; - }) : null - }; - } - }; -} -function server_data_serializer_json(event, event_state, options2) { - let promise_id = 1; - const iterator = create_async_iterator(); - const reducers = { - ...Object.fromEntries( - Object.entries(options2.hooks.transport).map(([key2, value]) => [key2, value.encode]) - ), - /** @param {any} thing */ - Promise: (thing) => { - if (typeof thing?.then !== "function") { - return; - } - const id = promise_id++; - let key2 = "data"; - const promise = thing.catch( - /** @param {any} e */ - async (e) => { - key2 = "error"; - return handle_error_and_jsonify( - event, - event_state, - options2, - /** @type {any} */ - e - ); - } - ).then( - /** @param {any} value */ - async (value) => { - let str; - try { - str = devalue.stringify(value, reducers); - } catch { - const error2 = await handle_error_and_jsonify( - event, - event_state, - options2, - new Error(`Failed to serialize promise while rendering ${event.route.id}`) - ); - key2 = "error"; - str = devalue.stringify(error2, reducers); - } - return `{"type":"chunk","id":${id},"${key2}":${str}} -`; - } - ); - iterator.add(promise); - return id; - } - }; - const strings = ( - /** @type {string[]} */ - [] - ); - return { - add_node(i, node) { - try { - if (!node) { - strings[i] = "null"; - return; - } - if (node.type === "error" || node.type === "skip") { - strings[i] = JSON.stringify(node); - return; - } - strings[i] = `{"type":"data","data":${devalue.stringify(node.data, reducers)},"uses":${JSON.stringify( - serialize_uses(node) - )}${node.slash ? `,"slash":${JSON.stringify(node.slash)}` : ""}}`; - } catch (e) { - e.path = "data" + e.path; - throw new Error(clarify_devalue_error( - event, - /** @type {any} */ - e - ), { cause: e }); - } - }, - get_data() { - return { - data: `{"type":"data","nodes":[${strings.join(",")}]} -`, - chunks: promise_id > 1 ? iterator.iterate() : null - }; - } - }; -} -async function load_server_data({ event, event_state, state, node, parent }) { - if (!node?.server) return null; - let is_tracking = true; - const uses = { - dependencies: /* @__PURE__ */ new Set(), - params: /* @__PURE__ */ new Set(), - parent: false, - route: false, - url: false, - search_params: /* @__PURE__ */ new Set() - }; - const load = node.server.load; - const slash = node.server.trailingSlash; - if (!load) { - return { type: "data", data: null, uses, slash }; - } - const url = make_trackable( - event.url, - () => { - if (is_tracking) { - uses.url = true; - } - }, - (param) => { - if (is_tracking) { - uses.search_params.add(param); - } - } - ); - if (state.prerendering) { - disable_search(url); - } - const result = await record_span({ - name: "sveltekit.load", - attributes: { - "sveltekit.load.node_id": node.server_id || "unknown", - "sveltekit.load.node_type": get_node_type(node.server_id), - "http.route": event.route.id || "unknown" - }, - fn: async (current2) => { - const traced_event = merge_tracing(event, current2); - const result2 = await with_request_store( - { event: traced_event, state: event_state }, - () => load.call(null, { - ...traced_event, - fetch: (info, init2) => { - new URL(info instanceof Request ? info.url : info, event.url); - return event.fetch(info, init2); - }, - /** @param {string[]} deps */ - depends: (...deps) => { - for (const dep of deps) { - const { href } = new URL(dep, event.url); - uses.dependencies.add(href); - } - }, - params: new Proxy(event.params, { - get: (target, key2) => { - if (is_tracking) { - uses.params.add(key2); - } - return target[ - /** @type {string} */ - key2 - ]; - } - }), - parent: async () => { - if (is_tracking) { - uses.parent = true; - } - return parent(); - }, - route: new Proxy(event.route, { - get: (target, key2) => { - if (is_tracking) { - uses.route = true; - } - return target[ - /** @type {'id'} */ - key2 - ]; - } - }), - url, - untrack(fn) { - is_tracking = false; - try { - return fn(); - } finally { - is_tracking = true; - } - } - }) - ); - return result2; - } - }); - return { - type: "data", - data: result ?? null, - uses, - slash - }; -} -async function load_data({ - event, - event_state, - fetched, - node, - parent, - server_data_promise, - state, - resolve_opts, - csr -}) { - const server_data_node = await server_data_promise; - const load = node?.universal?.load; - if (!load) { - return server_data_node?.data ?? null; - } - const result = await record_span({ - name: "sveltekit.load", - attributes: { - "sveltekit.load.node_id": node.universal_id || "unknown", - "sveltekit.load.node_type": get_node_type(node.universal_id), - "http.route": event.route.id || "unknown" - }, - fn: async (current2) => { - const traced_event = merge_tracing(event, current2); - return await with_request_store( - { event: traced_event, state: event_state }, - () => load.call(null, { - url: event.url, - params: event.params, - data: server_data_node?.data ?? null, - route: event.route, - fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts), - setHeaders: event.setHeaders, - depends: () => { - }, - parent, - untrack: (fn) => fn(), - tracing: traced_event.tracing - }) - ); - } - }); - return result ?? null; -} -function create_universal_fetch(event, state, fetched, csr, resolve_opts) { - const universal_fetch = async (input, init2) => { - const cloned_body = input instanceof Request && input.body ? input.clone().body : null; - const cloned_headers = input instanceof Request && [...input.headers].length ? new Headers(input.headers) : init2?.headers; - let response = await event.fetch(input, init2); - const url = new URL(input instanceof Request ? input.url : input, event.url); - const same_origin = url.origin === event.url.origin; - let dependency; - if (same_origin) { - if (state.prerendering) { - dependency = { response, body: null }; - state.prerendering.dependencies.set(url.pathname, dependency); - } - } else if (url.protocol === "https:" || url.protocol === "http:") { - const mode = input instanceof Request ? input.mode : init2?.mode ?? "cors"; - if (mode === "no-cors") { - response = new Response("", { - status: response.status, - statusText: response.statusText, - headers: response.headers - }); - } else { - const acao = response.headers.get("access-control-allow-origin"); - if (!acao || acao !== event.url.origin && acao !== "*") { - throw new Error( - `CORS error: ${acao ? "Incorrect" : "No"} 'Access-Control-Allow-Origin' header is present on the requested resource` - ); - } - } - } - let teed_body; - const proxy = new Proxy(response, { - get(response2, key2, receiver) { - async function push_fetched(body2, is_b64) { - const status_number = Number(response2.status); - if (isNaN(status_number)) { - throw new Error( - `response.status is not a number. value: "${response2.status}" type: ${typeof response2.status}` - ); - } - fetched.push({ - url: same_origin ? url.href.slice(event.url.origin.length) : url.href, - method: event.request.method, - request_body: ( - /** @type {string | ArrayBufferView | undefined} */ - input instanceof Request && cloned_body ? await stream_to_string(cloned_body) : init2?.body - ), - request_headers: cloned_headers, - response_body: body2, - response: response2, - is_b64 - }); - } - if (key2 === "body") { - if (response2.body === null) { - return null; - } - if (teed_body) { - return teed_body; - } - const [a, b] = response2.body.tee(); - void (async () => { - let result = new Uint8Array(); - for await (const chunk of a) { - const combined = new Uint8Array(result.length + chunk.length); - combined.set(result, 0); - combined.set(chunk, result.length); - result = combined; - } - if (dependency) { - dependency.body = new Uint8Array(result); - } - void push_fetched(base64_encode(result), true); - })(); - return teed_body = b; - } - if (key2 === "arrayBuffer") { - return async () => { - const buffer = await response2.arrayBuffer(); - const bytes = new Uint8Array(buffer); - if (dependency) { - dependency.body = bytes; - } - if (buffer instanceof ArrayBuffer) { - await push_fetched(base64_encode(bytes), true); - } - return buffer; - }; - } - async function text2() { - const body2 = await response2.text(); - if (body2 === "" && NULL_BODY_STATUS.includes(response2.status)) { - await push_fetched(void 0, false); - return void 0; - } - if (!body2 || typeof body2 === "string") { - await push_fetched(body2, false); - } - if (dependency) { - dependency.body = body2; - } - return body2; - } - if (key2 === "text") { - return text2; - } - if (key2 === "json") { - return async () => { - const body2 = await text2(); - return body2 ? JSON.parse(body2) : void 0; - }; - } - const value = Reflect.get(response2, key2, response2); - if (value instanceof Function) { - return Object.defineProperties( - /** - * @this {any} - */ - function() { - return Reflect.apply(value, this === receiver ? response2 : this, arguments); - }, - { - name: { value: value.name }, - length: { value: value.length } - } - ); - } - return value; - } - }); - if (csr) { - const get = response.headers.get; - response.headers.get = (key2) => { - const lower = key2.toLowerCase(); - const value = get.call(response.headers, lower); - if (value && !lower.startsWith("x-sveltekit-")) { - const included = resolve_opts.filterSerializedResponseHeaders(lower, value); - if (!included) { - throw new Error( - `Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://svelte.dev/docs/kit/hooks#Server-hooks-handle (at ${event.route.id})` - ); - } - } - return value; - }; - } - return proxy; - }; - return (input, init2) => { - const response = universal_fetch(input, init2); - response.catch(() => { - }); - return response; - }; -} -async function stream_to_string(stream) { - let result = ""; - const reader = stream.getReader(); - while (true) { - const { done, value } = await reader.read(); - if (done) { - break; - } - result += text_decoder.decode(value); - } - return result; -} -function hash(...values) { - let hash2 = 5381; - for (const value of values) { - if (typeof value === "string") { - let i = value.length; - while (i) hash2 = hash2 * 33 ^ value.charCodeAt(--i); - } else if (ArrayBuffer.isView(value)) { - const buffer = new Uint8Array(value.buffer, value.byteOffset, value.byteLength); - let i = buffer.length; - while (i) hash2 = hash2 * 33 ^ buffer[--i]; - } else { - throw new TypeError("value must be a string or TypedArray"); - } - } - return (hash2 >>> 0).toString(36); -} -const replacements = { - "<": "\\u003C", - "\u2028": "\\u2028", - "\u2029": "\\u2029" -}; -const pattern = new RegExp(`[${Object.keys(replacements).join("")}]`, "g"); -function serialize_data(fetched, filter, prerendering = false) { - const headers2 = {}; - let cache_control = null; - let age = null; - let varyAny = false; - for (const [key2, value] of fetched.response.headers) { - if (filter(key2, value)) { - headers2[key2] = value; - } - if (key2 === "cache-control") cache_control = value; - else if (key2 === "age") age = value; - else if (key2 === "vary" && value.trim() === "*") varyAny = true; - } - const payload = { - status: fetched.response.status, - statusText: fetched.response.statusText, - headers: headers2, - body: fetched.response_body - }; - const safe_payload = JSON.stringify(payload).replace(pattern, (match) => replacements[match]); - const attrs = [ - 'type="application/json"', - "data-sveltekit-fetched", - `data-url="${escape_html(fetched.url, true)}"` - ]; - if (fetched.is_b64) { - attrs.push("data-b64"); - } - if (fetched.request_headers || fetched.request_body) { - const values = []; - if (fetched.request_headers) { - values.push([...new Headers(fetched.request_headers)].join(",")); - } - if (fetched.request_body) { - values.push(fetched.request_body); - } - attrs.push(`data-hash="${hash(...values)}"`); - } - if (!prerendering && fetched.method === "GET" && cache_control && !varyAny) { - const match = /s-maxage=(\d+)/g.exec(cache_control) ?? /max-age=(\d+)/g.exec(cache_control); - if (match) { - const ttl = +match[1] - +(age ?? "0"); - attrs.push(`data-ttl="${ttl}"`); - } - } - return `