diff --git a/.gitignore b/.gitignore index 567609b..ffa39cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ build/ +.vscode/ +.svelte-kit/ +backend/cmd/server/embed/ diff --git a/backend/cmd/server/embed/_app/immutable/assets/8.neQUdyXe.css b/backend/cmd/server/embed/_app/immutable/assets/8.neQUdyXe.css deleted file mode 100644 index b665553..0000000 --- a/backend/cmd/server/embed/_app/immutable/assets/8.neQUdyXe.css +++ /dev/null @@ -1 +0,0 @@ -.header.svelte-83awcy{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}table.svelte-83awcy{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}th.svelte-83awcy,td.svelte-83awcy{padding:1rem;text-align:left;border-bottom:1px solid #eee}th.svelte-83awcy{background:#f8f9fa;font-weight:600}button.svelte-83awcy{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;background:#3498db;color:#fff}button.danger.svelte-83awcy{background:#e74c3c}.modal-backdrop.svelte-83awcy{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-83awcy{background:#fff;padding:2rem;border-radius:8px;min-width:400px}.modal.svelte-83awcy form:where(.svelte-83awcy){display:flex;flex-direction:column;gap:1rem}.modal.svelte-83awcy label:where(.svelte-83awcy){display:flex;flex-direction:column;gap:.5rem}.modal.svelte-83awcy input:where(.svelte-83awcy){padding:.5rem;border:1px solid #ddd;border-radius:4px}.actions.svelte-83awcy{display:flex;gap:1rem;justify-content:flex-end} diff --git a/backend/cmd/server/embed/_app/immutable/chunks/-EcHSJia.js b/backend/cmd/server/embed/_app/immutable/chunks/-EcHSJia.js deleted file mode 100644 index ece78c0..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/-EcHSJia.js +++ /dev/null @@ -1 +0,0 @@ -var C=Object.defineProperty;var w=a=>{throw TypeError(a)};var D=(a,e,s)=>e in a?C(a,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[e]=s;var A=(a,e,s)=>D(a,typeof e!="symbol"?e+"":e,s),x=(a,e,s)=>e.has(a)||w("Cannot "+s);var t=(a,e,s)=>(x(a,e,"read from private field"),s?s.call(a):e.get(a)),u=(a,e,s)=>e.has(a)?w("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,s),E=(a,e,s,i)=>(x(a,e,"write to private field"),i?i.call(a,s):e.set(a,s),s);import{U as N,_ as g,V as R,o as F,E as M,c as S,h as k,A as B,Z as j,G as z,w as G,v as I,a9 as P,x as U,y as V,j as Z,z as T}from"./DtGl34IE.js";var d,l,c,p,v,m,b;class q{constructor(e,s=!0){A(this,"anchor");u(this,d,new Map);u(this,l,new Map);u(this,c,new Map);u(this,p,new Set);u(this,v,!0);u(this,m,e=>{if(t(this,d).has(e)){var s=t(this,d).get(e),i=t(this,l).get(s);if(i)N(i),t(this,p).delete(s);else{var n=t(this,c).get(s);n&&(t(this,l).set(s,n.effect),t(this,c).delete(s),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[f,h]of t(this,d)){if(t(this,d).delete(f),f===e)break;const r=t(this,c).get(h);r&&(g(r.effect),t(this,c).delete(h))}for(const[f,h]of t(this,l)){if(f===s||t(this,p).has(f))continue;const r=()=>{if(Array.from(t(this,d).values()).includes(f)){var _=document.createDocumentFragment();j(h,_),_.append(F()),t(this,c).set(f,{effect:h,fragment:_})}else g(h);t(this,p).delete(f),t(this,l).delete(f)};t(this,v)||!i?(t(this,p).add(f),R(h,r,!1)):r()}}});u(this,b,e=>{t(this,d).delete(e);const s=Array.from(t(this,d).values());for(const[i,n]of t(this,c))s.includes(i)||(g(n.effect),t(this,c).delete(i))});this.anchor=e,E(this,v,s)}ensure(e,s){var i=S,n=z();if(s&&!t(this,l).has(e)&&!t(this,c).has(e))if(n){var f=document.createDocumentFragment(),h=F();f.append(h),t(this,c).set(e,{effect:M(()=>s(h)),fragment:f})}else t(this,l).set(e,M(()=>s(this.anchor)));if(t(this,d).set(i,e),n){for(const[r,o]of t(this,l))r===e?i.unskip_effect(o):i.skip_effect(o);for(const[r,o]of t(this,c))r===e?i.unskip_effect(o.effect):i.skip_effect(o.effect);i.oncommit(t(this,m)),i.ondiscard(t(this,b))}else k&&(this.anchor=B),t(this,m).call(this,i)}}d=new WeakMap,l=new WeakMap,c=new WeakMap,p=new WeakMap,v=new WeakMap,m=new WeakMap,b=new WeakMap;function K(a,e,s=!1){var i;k&&(i=B,I());var n=new q(a),f=s?P:0;function h(r,o){if(k){var _=U(i);if(r!==parseInt(_.substring(1))){var y=V();Z(y),n.anchor=y,T(!1),n.ensure(r,o),T(!0);return}}n.ensure(r,o)}G(()=>{var r=!1;e((o,_=0)=>{r=!0,h(_,o)}),r||h(-1,null)},f)}export{q as B,K as i}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/B3ZK_jYJ.js b/backend/cmd/server/embed/_app/immutable/chunks/B3ZK_jYJ.js deleted file mode 100644 index e067bd4..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/B3ZK_jYJ.js +++ /dev/null @@ -1 +0,0 @@ -import{s as c,g as l}from"./BX-b5t2l.js";import{n as a,m as o,g as b,t as d,d as p,s as g}from"./DtGl34IE.js";let s=!1,i=Symbol();function m(e,u,r){const n=r[u]??(r[u]={store:null,source:o(void 0),unsubscribe:a});if(n.store!==e&&!(i in r))if(n.unsubscribe(),n.store=e??null,e==null)n.source.v=void 0,n.unsubscribe=a;else{var t=!0;n.unsubscribe=c(e,f=>{t?n.source.v=f:g(n.source,f)}),t=!1}return e&&i in r?l(e):b(n.source)}function y(){const e={};function u(){d(()=>{for(var r in e)e[r].unsubscribe();p(e,i,{enumerable:!1,value:!0})})}return[e,u]}function N(e){var u=s;try{return s=!1,[e(),s]}finally{s=u}}export{y as a,N as c,m as s}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/B7kAneMc.js b/backend/cmd/server/embed/_app/immutable/chunks/B7kAneMc.js deleted file mode 100644 index 6e13c31..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/B7kAneMc.js +++ /dev/null @@ -1 +0,0 @@ -import{s as e}from"./RKc8iKz_.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/BX-b5t2l.js b/backend/cmd/server/embed/_app/immutable/chunks/BX-b5t2l.js deleted file mode 100644 index e3d342c..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/BX-b5t2l.js +++ /dev/null @@ -1 +0,0 @@ -import{n as o,u as a,ah as d}from"./DtGl34IE.js";function p(s,u,e){if(s==null)return u(void 0),o;const t=a(()=>s.subscribe(u,e));return t.unsubscribe?()=>t.unsubscribe():t}const i=[];function h(s,u=o){let e=null;const t=new Set;function c(r){if(d(s,r)&&(s=r,e)){const b=!i.length;for(const n of t)n[1](),i.push(n,s);if(b){for(let n=0;n{t.delete(n),t.size===0&&e&&(e(),e=null)}}return{set:c,update:f,subscribe:l}}function _(s){let u;return p(s,e=>u=e)(),u}export{_ as g,p as s,h as w}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/BYrNiJ2z.js b/backend/cmd/server/embed/_app/immutable/chunks/BYrNiJ2z.js deleted file mode 100644 index 7221eb2..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/BYrNiJ2z.js +++ /dev/null @@ -1,2 +0,0 @@ -import{h as c}from"./DtGl34IE.js";const a=[...` -\r\f \v\uFEFF`];function e(r,g,u){var f=r==null?"":""+r;if(g&&(f=f?f+" "+g:g),u){for(var t of Object.keys(u))if(u[t])f=f?f+" "+t:t;else if(f.length)for(var l=t.length,i=0;(i=f.indexOf(t,i))>=0;){var n=i+l;(i===0||a.includes(f[i-1]))&&(n===f.length||a.includes(f[n]))?f=(i===0?"":f.substring(0,i))+f.substring(n+1):i=n}}return f===""?null:f}function v(r,g,u,f,t,l){var i=r.__className;if(c||i!==u||i===void 0){var n=e(u,f,l);(!c||n!==r.getAttribute("class"))&&(n==null?r.removeAttribute("class"):r.className=n),r.__className=u}else if(l&&t!==l)for(var o in l){var s=!!l[o];(t==null||s!==!!t[o])&&r.classList.toggle(o,s)}return l}export{v as s}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/CJv7FbHz.js b/backend/cmd/server/embed/_app/immutable/chunks/CJv7FbHz.js deleted file mode 100644 index a809740..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/CJv7FbHz.js +++ /dev/null @@ -1 +0,0 @@ -import{am as p,o as u,an as c,k as l,ao as E,ap as g,aq as w,h as d,A as s,ar as y,v as N,as as A,j as M,at as x}from"./DtGl34IE.js";var f;const i=((f=globalThis==null?void 0:globalThis.window)==null?void 0:f.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function L(t){return(i==null?void 0:i.createHTML(t))??t}function b(t){var r=p("template");return r.innerHTML=L(t.replaceAll("","")),r.content}function n(t,r){var e=c;e.nodes===null&&(e.nodes={start:t,end:r,a:null,t:null})}function R(t,r){var e=(r&g)!==0,m=(r&w)!==0,a,v=!t.startsWith("");return()=>{if(d)return n(s,null),s;a===void 0&&(a=b(v?t:""+t),e||(a=l(a)));var o=m||E?document.importNode(a,!0):a.cloneNode(!0);if(e){var T=l(o),h=o.lastChild;n(T,h)}else n(o,o);return o}}function C(t=""){if(!d){var r=u(t+"");return n(r,r),r}var e=s;return e.nodeType!==A?(e.before(e=u()),M(e)):x(e),n(e,e),e}function I(){if(d)return n(s,null),s;var t=document.createDocumentFragment(),r=document.createComment(""),e=u();return t.append(r,e),n(r,e),t}function D(t,r){if(d){var e=c;(!(e.f&y)||e.nodes.end===null)&&(e.nodes.end=s),N();return}t!==null&&t.before(r)}const O="5";var _;typeof window<"u"&&((_=window.__svelte??(window.__svelte={})).v??(_.v=new Set)).add(O);export{D as a,n as b,I as c,R as f,C as t}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/CfgL3m1f.js b/backend/cmd/server/embed/_app/immutable/chunks/CfgL3m1f.js deleted file mode 100644 index ab5a7e3..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/CfgL3m1f.js +++ /dev/null @@ -1 +0,0 @@ -var I=t=>{throw TypeError(t)};var B=(t,e,n)=>e.has(t)||I("Cannot "+n);var a=(t,e,n)=>(B(t,e,"read from private field"),n?n.call(t):e.get(t)),c=(t,e,n)=>e.has(t)?I("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{o as N}from"./DR7h53-u.js";import{a0 as u,g as f,s as d}from"./DtGl34IE.js";import{w as Y}from"./BX-b5t2l.js";new URL("sveltekit-internal://");function oe(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function ie(t){return t.split("%25").map(decodeURI).join("%25")}function le(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function ce({href:t}){return t.split("#")[0]}function W(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let s=r.length;for(;s;)e=e*33^r[--s]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function X(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&_.delete(U(t)),J(t,e));const _=new Map;function ue(t,e){const n=U(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:s,...l}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&_.set(n,{body:s,init:l,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(s=X(s)),Promise.resolve(new Response(s,l))}return window.fetch(t,e)}function fe(t,e,n){if(_.size>0){const r=U(t,n),s=_.get(r);if(s){if(performance.now()o)}function s(o){n=!1,e.set(o)}function l(o){let i;return e.subscribe(h=>{(i===void 0||n&&h!==i)&&o(i=h)})}return{notify:r,set:s,subscribe:l}}const D={v:()=>{}};function Se(){const{set:t,subscribe:e}=Y(!1);let n;async function r(){clearTimeout(n);try{const s=await fetch(`${F}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==Q;return o&&(t(!0),D.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Z(t,e,n){return t.origin!==q||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function ke(t){}const H=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...H];const ee=new Set([...H]);[...ee];let E,x,T;const te=N.toString().includes("$$")||/function \w+\(\) \{\}/.test(N.toString()),$="a:";var b,w,m,v,p,y,A,R,V,S,j,k,G;te?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL($)},x={current:null},T={current:!1}):(E=new(V=class{constructor(){c(this,b,u({}));c(this,w,u(null));c(this,m,u(null));c(this,v,u({}));c(this,p,u({id:null}));c(this,y,u({}));c(this,A,u(-1));c(this,R,u(new URL($)))}get data(){return f(a(this,b))}set data(e){d(a(this,b),e)}get form(){return f(a(this,w))}set form(e){d(a(this,w),e)}get error(){return f(a(this,m))}set error(e){d(a(this,m),e)}get params(){return f(a(this,v))}set params(e){d(a(this,v),e)}get route(){return f(a(this,p))}set route(e){d(a(this,p),e)}get state(){return f(a(this,y))}set state(e){d(a(this,y),e)}get status(){return f(a(this,A))}set status(e){d(a(this,A),e)}get url(){return f(a(this,R))}set url(e){d(a(this,R),e)}},b=new WeakMap,w=new WeakMap,m=new WeakMap,v=new WeakMap,p=new WeakMap,y=new WeakMap,A=new WeakMap,R=new WeakMap,V),x=new(j=class{constructor(){c(this,S,u(null))}get current(){return f(a(this,S))}set current(e){d(a(this,S),e)}},S=new WeakMap,j),T=new(G=class{constructor(){c(this,k,u(!1))}get current(){return f(a(this,k))}set current(e){d(a(this,k),e)}},k=new WeakMap,G),D.v=()=>T.current=!0);function Ie(t){Object.assign(E,t)}export{be as H,we as N,_e as P,ge as S,Ae as a,M as b,Se as c,ce as d,le as e,pe as f,ye as g,oe as h,Z as i,L as j,ie as k,de as l,fe as m,x as n,q as o,E as p,ue as q,me as r,ve as s,he as t,Re as u,Ie as v,ke as w}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/DFRBE_Uq.js b/backend/cmd/server/embed/_app/immutable/chunks/DFRBE_Uq.js deleted file mode 100644 index aa5446f..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/DFRBE_Uq.js +++ /dev/null @@ -1 +0,0 @@ -import{aa as g,ab as d,a8 as l,u as b,ac as i,ad as m,g as p,ae as v,af as h,ag as k}from"./DtGl34IE.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let o=()=>v(a.s);if(t){let n=0,s={};const _=h(()=>{let c=!1;const r=a.s;for(const f in r)r[f]!==s[f]&&(s[f]=r[f],c=!0);return c&&n++,n});o=()=>p(_)}e.b.length&&d(()=>{u(a,o),i(e.b)}),l(()=>{const n=b(()=>e.m.map(m));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&l(()=>{u(a,o),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}k();export{x as i}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/DR7h53-u.js b/backend/cmd/server/embed/_app/immutable/chunks/DR7h53-u.js deleted file mode 100644 index 7c177f8..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/DR7h53-u.js +++ /dev/null @@ -1 +0,0 @@ -import{a8 as o,aa as t,ai as a,u as c}from"./DtGl34IE.js";function u(n){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function r(n){t===null&&u(),a&&t.l!==null?l(t).m.push(n):o(()=>{const e=c(n);if(typeof e=="function")return e})}function l(n){var e=n.l;return e.u??(e.u={a:[],b:[],m:[]})}export{r as o}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/DtGl34IE.js b/backend/cmd/server/embed/_app/immutable/chunks/DtGl34IE.js deleted file mode 100644 index ac6b025..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/DtGl34IE.js +++ /dev/null @@ -1 +0,0 @@ -var ht=Object.defineProperty;var mn=e=>{throw TypeError(e)};var pt=(e,n,t)=>n in e?ht(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var ne=(e,n,t)=>pt(e,typeof n!="symbol"?n+"":n,t),$e=(e,n,t)=>n.has(e)||mn("Cannot "+t);var v=(e,n,t)=>($e(e,n,"read from private field"),t?t.call(e):n.get(e)),I=(e,n,t)=>n.has(e)?mn("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(e):n.set(e,t),Y=(e,n,t,r)=>($e(e,n,"write to private field"),r?r.call(e,t):n.set(e,t),t),q=(e,n,t)=>($e(e,n,"access private method"),t);var wt=Array.isArray,yt=Array.prototype.indexOf,Te=Array.prototype.includes,cr=Array.from,_r=Object.defineProperty,De=Object.getOwnPropertyDescriptor,Et=Object.getOwnPropertyDescriptors,gt=Object.prototype,mt=Array.prototype,Cn=Object.getPrototypeOf,Tn=Object.isExtensible;const Tt=()=>{};function vr(e){return e()}function bt(e){for(var n=0;n{e=r,n=s});return{promise:t,resolve:e,reject:n}}const T=2,be=4,Fe=8,Mn=1<<24,Q=16,V=32,ue=64,At=128,C=512,E=1024,O=2048,B=4096,H=8192,U=16384,he=32768,bn=1<<25,He=65536,An=1<<17,Rt=1<<18,Me=1<<19,jn=1<<20,dr=1<<25,oe=65536,Je=1<<21,un=1<<22,Z=1<<23,ie=Symbol("$state"),hr=Symbol("legacy props"),pr=Symbol(""),K=new class extends Error{constructor(){super(...arguments);ne(this,"name","StaleReactionError");ne(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Pn;const yr=!!((Pn=globalThis.document)!=null&&Pn.contentType)&&globalThis.document.contentType.includes("xml"),ze=3,Ln=8;function St(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Er(e,n,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ot(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function xt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Nt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function kt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function gr(){throw new Error("https://svelte.dev/e/hydration_failed")}function mr(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Dt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function It(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Pt(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Tr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const br=1,Ar=2,Rr=16,Sr=1,Or=2,xr=4,Nr=8,kr=16,Dr=1,Ir=2,Ct="[",Ft="[!",Pr="[?",Mt="]",on={},b=Symbol(),jt="http://www.w3.org/1999/xhtml";function cn(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Cr(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Fr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let ce=!1;function Mr(e){ce=e}let m;function Ae(e){if(e===null)throw cn(),on;return m=e}function jr(){return Ae(ee(m))}function Lr(e){if(ce){if(ee(m)!==null)throw cn(),on;m=e}}function Yr(e=1){if(ce){for(var n=e,t=m;n--;)t=ee(t);m=t}}function qr(e=!0){for(var n=0,t=m;;){if(t.nodeType===Ln){var r=t.data;if(r===Mt){if(n===0)return t;n-=1}else(r===Ct||r===Ft||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(n+=1)}var s=ee(t);e&&t.remove(),t=s}}function Hr(e){if(!e||e.nodeType!==Ln)throw cn(),on;return e.data}function Yn(e){return e===this.v}function Lt(e,n){return e!=e?n==n:e!==n||e!==null&&typeof e=="object"||typeof e=="function"}function qn(e){return!Lt(e,this.v)}let Xe=!1;function Ur(){Xe=!0}let S=null;function Ue(e){S=e}function Vr(e,n=!1,t){S={p:S,i:!1,c:null,e:null,s:e,x:null,r:w,l:Xe&&!n?{s:null,u:null,$:[]}:null}}function Br(e){var n=S,t=n.e;if(t!==null){n.e=null;for(var r of t)rt(r)}return n.i=!0,S=n.p,{}}function je(){return!Xe||S!==null&&S.l===null}let se=[];function Hn(){var e=se;se=[],bt(e)}function Rn(e){if(se.length===0&&!Ie){var n=se;queueMicrotask(()=>{n===se&&Hn()})}se.push(e)}function Yt(){for(;se.length>0;)Hn()}function qt(e){var n=w;if(n===null)return d.f|=Z,e;if(!(n.f&he)&&!(n.f&be))throw e;Ve(e,n)}function Ve(e,n){for(;n!==null;){if(n.f&At){if(!(n.f&he))throw e;try{n.b.error(e);return}catch(t){e=t}}n=n.parent}throw e}const Ht=-7169;function y(e,n){e.f=e.f&Ht|n}function _n(e){e.f&C||e.deps===null?y(e,E):y(e,B)}function Un(e){if(e!==null)for(const n of e)!(n.f&T)||!(n.f&oe)||(n.f^=oe,Un(n.deps))}function Ut(e,n,t){e.f&O?n.add(e):e.f&B&&t.add(e),Un(e.deps),y(e,E)}const te=new Set;let h=null,A=null,Qe=null,Ie=!1,Ze=!1,pe=null,Ye=null;var Sn=0;let Vt=1;var we,ye,Ee,ge,Ce,D,fe,z,X,me,R,en,nn,tn,rn,Vn;const Ke=class Ke{constructor(){I(this,R);ne(this,"id",Vt++);ne(this,"current",new Map);ne(this,"previous",new Map);I(this,we,new Set);I(this,ye,new Set);I(this,Ee,0);I(this,ge,0);I(this,Ce,null);I(this,D,[]);I(this,fe,new Set);I(this,z,new Set);I(this,X,new Map);ne(this,"is_fork",!1);I(this,me,!1)}skip_effect(n){v(this,X).has(n)||v(this,X).set(n,{d:[],m:[]})}unskip_effect(n){var t=v(this,X).get(n);if(t){v(this,X).delete(n);for(var r of t.d)y(r,O),this.schedule(r);for(r of t.m)y(r,B),this.schedule(r)}}capture(n,t){t!==b&&!this.previous.has(n)&&this.previous.set(n,t),n.f&Z||(this.current.set(n,n.v),A==null||A.set(n,n.v))}activate(){h=this}deactivate(){h=null,A=null}flush(){try{Ze=!0,h=this,q(this,R,nn).call(this)}finally{Sn=0,Qe=null,pe=null,Ye=null,Ze=!1,h=null,A=null,W.clear()}}discard(){for(const n of v(this,ye))n(this);v(this,ye).clear(),te.delete(this)}increment(n){Y(this,Ee,v(this,Ee)+1),n&&Y(this,ge,v(this,ge)+1)}decrement(n,t){Y(this,Ee,v(this,Ee)-1),n&&Y(this,ge,v(this,ge)-1),!(v(this,me)||t)&&(Y(this,me,!0),Rn(()=>{Y(this,me,!1),this.flush()}))}transfer_effects(n,t){for(const r of n)v(this,fe).add(r);for(const r of t)v(this,z).add(r);n.clear(),t.clear()}oncommit(n){v(this,we).add(n)}ondiscard(n){v(this,ye).add(n)}settled(){return(v(this,Ce)??Y(this,Ce,Fn())).promise}static ensure(){if(h===null){const n=h=new Ke;Ze||(te.add(h),Ie||Rn(()=>{h===n&&n.flush()}))}return h}apply(){{A=null;return}}schedule(n){var s;if(Qe=n,(s=n.b)!=null&&s.is_pending&&n.f&(be|Fe|Mn)&&!(n.f&he)){n.b.defer_effect(n);return}for(var t=n;t.parent!==null;){t=t.parent;var r=t.f;if(pe!==null&&t===w&&(d===null||!(d.f&T)))return;if(r&(ue|V)){if(!(r&E))return;t.f^=E}}v(this,D).push(t)}};we=new WeakMap,ye=new WeakMap,Ee=new WeakMap,ge=new WeakMap,Ce=new WeakMap,D=new WeakMap,fe=new WeakMap,z=new WeakMap,X=new WeakMap,me=new WeakMap,R=new WeakSet,en=function(){return this.is_fork||v(this,ge)>0},nn=function(){var a,i;if(Sn++>1e3&&(te.delete(this),Gt()),!q(this,R,en).call(this)){for(const l of v(this,fe))v(this,z).delete(l),y(l,O),this.schedule(l);for(const l of v(this,z))y(l,B),this.schedule(l)}const n=v(this,D);Y(this,D,[]),this.apply();var t=pe=[],r=[],s=Ye=[];for(const l of n)try{q(this,R,tn).call(this,l,t,r)}catch(o){throw zn(l),o}if(h=null,s.length>0){var f=Ke.ensure();for(const l of s)f.schedule(l)}if(pe=null,Ye=null,q(this,R,en).call(this)){q(this,R,rn).call(this,r),q(this,R,rn).call(this,t);for(const[l,o]of v(this,X))Kn(l,o)}else{v(this,Ee)===0&&te.delete(this),v(this,fe).clear(),v(this,z).clear();for(const l of v(this,we))l(this);v(this,we).clear(),On(r),On(t),(a=v(this,Ce))==null||a.resolve()}var u=h;if(v(this,D).length>0){const l=u??(u=this);v(l,D).push(...v(this,D).filter(o=>!v(l,D).includes(o)))}u!==null&&(te.add(u),q(i=u,R,nn).call(i)),te.has(this)||q(this,R,Vn).call(this)},tn=function(n,t,r){n.f^=E;for(var s=n.first;s!==null;){var f=s.f,u=(f&(V|ue))!==0,a=u&&(f&E)!==0,i=a||(f&H)!==0||v(this,X).has(s);if(!i&&s.fn!==null){u?s.f^=E:f&be?t.push(s):Le(s)&&(f&Q&&v(this,z).add(s),Se(s));var l=s.first;if(l!==null){s=l;continue}}for(;s!==null;){var o=s.next;if(o!==null){s=o;break}s=s.parent}}},rn=function(n){for(var t=0;t!this.current.has(o));if(r.length===0)n&&l.discard();else if(t.length>0){l.activate();var s=new Set,f=new Map;for(var u of t)Bn(u,r,s,f);if(v(l,D).length>0){l.apply();for(var a of v(l,D))q(i=l,R,tn).call(i,a,[],[]);Y(l,D,[])}l.deactivate()}}};let _e=Ke;function Bt(e){var n=Ie;Ie=!0;try{for(var t;;){if(Yt(),h===null)return t;h.flush()}}finally{Ie=n}}function Gt(){try{kt()}catch(e){Ve(e,Qe)}}let j=null;function On(e){var n=e.length;if(n!==0){for(var t=0;t0)){W.clear();for(const s of j){if(s.f&(U|H))continue;const f=[s];let u=s.parent;for(;u!==null;)j.has(u)&&(j.delete(u),f.push(u)),u=u.parent;for(let a=f.length-1;a>=0;a--){const i=f[a];i.f&(U|H)||Se(i)}}j.clear()}}j=null}}function Bn(e,n,t,r){if(!t.has(e)&&(t.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;f&T?Bn(s,n,t,r):f&(un|Q)&&!(f&O)&&Gn(s,n,r)&&(y(s,O),vn(s))}}function Gn(e,n,t){const r=t.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Te.call(n,s))return!0;if(s.f&T&&Gn(s,n,t))return t.set(s,!0),!0}return t.set(e,!1),!1}function vn(e){h.schedule(e)}function Kn(e,n){if(!(e.f&V&&e.f&E)){e.f&O?n.d.push(e):e.f&B&&n.m.push(e),y(e,E);for(var t=e.first;t!==null;)Kn(t,n),t=t.next}}function zn(e){y(e,E);for(var n=e.first;n!==null;)zn(n),n=n.next}function Kt(e,n,t,r){const s=je()?dn:$t;var f=e.filter(c=>!c.settled);if(t.length===0&&f.length===0){r(n.map(s));return}var u=w,a=zt(),i=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(c=>c.promise)):null;function l(c){a();try{r(c)}catch(g){u.f&U||Ve(g,u)}Be()}if(t.length===0){i.then(()=>l(n.map(s)));return}var o=Xn();function _(){Promise.all(t.map(c=>Xt(c))).then(c=>l([...n.map(s),...c])).catch(c=>Ve(c,u)).finally(()=>o())}i?i.then(()=>{a(),_(),Be()}):_()}function zt(){var e=w,n=d,t=S,r=h;return function(f=!0){Re(e),J(n),Ue(t),f&&!(e.f&U)&&(r==null||r.activate(),r==null||r.apply())}}function Be(e=!0){Re(null),J(null),Ue(null),e&&(h==null||h.deactivate())}function Xn(){var e=w.b,n=h,t=e.is_rendered();return e.update_pending_count(1,n),n.increment(t),(r=!1)=>{e.update_pending_count(-1,n),n.decrement(t,r)}}function dn(e){var n=T|O,t=d!==null&&d.f&T?d:null;return w!==null&&(w.f|=Me),{ctx:S,deps:null,effects:null,equals:Yn,f:n,fn:e,reactions:null,rv:0,v:b,wv:0,parent:t??w,ac:null}}function Xt(e,n,t){let r=w;r===null&&St();var s=void 0,f=pn(b),u=!d,a=new Map;return sr(()=>{var g;var i=w,l=Fn();s=l.promise;try{Promise.resolve(e()).then(l.resolve,l.reject).finally(Be)}catch(p){l.reject(p),Be()}var o=h;if(u){if(i.f&he)var _=Xn();if(r.b.is_rendered())(g=a.get(o))==null||g.reject(K),a.delete(o);else{for(const p of a.values())p.reject(K);a.clear()}a.set(o,l)}const c=(p,M=void 0)=>{if(_){var x=M===K;_(x)}if(!(M===K||i.f&U)){if(o.activate(),M)f.f|=Z,ln(f,M);else{f.f&Z&&(f.f^=Z),ln(f,p);for(const[Oe,xe]of a){if(a.delete(Oe),Oe===o)break;xe.reject(K)}}o.deactivate()}};l.promise.then(c,p=>c(null,p||"unknown"))}),rr(()=>{for(const i of a.values())i.reject(K)}),new Promise(i=>{function l(o){function _(){o===s?i(f):l(s)}o.then(_,_)}l(s)})}function Gr(e){const n=dn(e);return at(n),n}function $t(e){const n=dn(e);return n.equals=qn,n}function Zt(e){var n=e.effects;if(n!==null){e.effects=null;for(var t=0;t0&&!Wn&&Qt()}return n}function Qt(){Wn=!1;for(const e of sn)e.f&E&&y(e,B),Le(e)&&Se(e);sn.clear()}function We(e){re(e,e.v+1)}function Jn(e,n,t){var r=e.reactions;if(r!==null)for(var s=je(),f=r.length,u=0;u{if(ae===f)return a();var i=d,l=ae;J(null),In(f);var o=a();return J(i),In(l),o};return r&&t.set("length",$(e.length)),new Proxy(e,{defineProperty(a,i,l){(!("value"in l)||l.configurable===!1||l.enumerable===!1||l.writable===!1)&&Dt();var o=t.get(i);return o===void 0?u(()=>{var _=$(l.value);return t.set(i,_),_}):re(o,l.value,!0),!0},deleteProperty(a,i){var l=t.get(i);if(l===void 0){if(i in a){const o=u(()=>$(b));t.set(i,o),We(s)}}else re(l,b),We(s);return!0},get(a,i,l){var g;if(i===ie)return e;var o=t.get(i),_=i in a;if(o===void 0&&(!_||(g=De(a,i))!=null&&g.writable)&&(o=u(()=>{var p=Ne(_?a[i]:b),M=$(p);return M}),t.set(i,o)),o!==void 0){var c=ke(o);return c===b?void 0:c}return Reflect.get(a,i,l)},getOwnPropertyDescriptor(a,i){var l=Reflect.getOwnPropertyDescriptor(a,i);if(l&&"value"in l){var o=t.get(i);o&&(l.value=ke(o))}else if(l===void 0){var _=t.get(i),c=_==null?void 0:_.v;if(_!==void 0&&c!==b)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return l},has(a,i){var c;if(i===ie)return!0;var l=t.get(i),o=l!==void 0&&l.v!==b||Reflect.has(a,i);if(l!==void 0||w!==null&&(!o||(c=De(a,i))!=null&&c.writable)){l===void 0&&(l=u(()=>{var g=o?Ne(a[i]):b,p=$(g);return p}),t.set(i,l));var _=ke(l);if(_===b)return!1}return o},set(a,i,l,o){var gn;var _=t.get(i),c=i in a;if(r&&i==="length")for(var g=l;g<_.v;g+=1){var p=t.get(g+"");p!==void 0?re(p,b):g in a&&(p=u(()=>$(b)),t.set(g+"",p))}if(_===void 0)(!c||(gn=De(a,i))!=null&&gn.writable)&&(_=u(()=>$(void 0)),re(_,Ne(l)),t.set(i,_));else{c=_.v!==b;var M=u(()=>Ne(l));re(_,M)}var x=Reflect.getOwnPropertyDescriptor(a,i);if(x!=null&&x.set&&x.set.call(o,l),!c){if(r&&typeof i=="string"){var Oe=t.get("length"),xe=Number(i);Number.isInteger(xe)&&xe>=Oe.v&&re(Oe,xe+1)}We(s)}return!0},ownKeys(a){ke(s);var i=Reflect.ownKeys(a).filter(_=>{var c=t.get(_);return c===void 0||c.v!==b});for(var[l,o]of t)o.v!==b&&!(l in a)&&i.push(l);return i},setPrototypeOf(){It()}})}function xn(e){try{if(e!==null&&typeof e=="object"&&ie in e)return e[ie]}catch{}return e}function zr(e,n){return Object.is(xn(e),xn(n))}var Nn,er,Qn,et;function Xr(){if(Nn===void 0){Nn=window,er=/Firefox/.test(navigator.userAgent);var e=Element.prototype,n=Node.prototype,t=Text.prototype;Qn=De(n,"firstChild").get,et=De(n,"nextSibling").get,Tn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Tn(t)&&(t.__t=void 0)}}function Ge(e=""){return document.createTextNode(e)}function fn(e){return Qn.call(e)}function ee(e){return et.call(e)}function $r(e,n){if(!ce)return fn(e);var t=fn(m);if(t===null)t=m.appendChild(Ge());else if(n&&t.nodeType!==ze){var r=Ge();return t==null||t.before(r),Ae(r),r}return n&&wn(t),Ae(t),t}function Zr(e,n=!1){if(!ce){var t=fn(e);return t instanceof Comment&&t.data===""?ee(t):t}if(n){if((m==null?void 0:m.nodeType)!==ze){var r=Ge();return m==null||m.before(r),Ae(r),r}wn(m)}return m}function Wr(e,n=1,t=!1){let r=ce?m:e;for(var s;n--;)s=r,r=ee(r);if(!ce)return r;if(t){if((r==null?void 0:r.nodeType)!==ze){var f=Ge();return r===null?s==null||s.after(f):r.before(f),Ae(f),f}wn(r)}return Ae(r),r}function Jr(e){e.textContent=""}function Qr(){return!1}function es(e,n,t){return document.createElementNS(jt,e,void 0)}function wn(e){if(e.nodeValue.length<65536)return;let n=e.nextSibling;for(;n!==null&&n.nodeType===ze;)n.remove(),e.nodeValue+=n.nodeValue,n=e.nextSibling}let kn=!1;function nr(){kn||(kn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var n;if(!e.defaultPrevented)for(const t of e.target.elements)(n=t.__on_r)==null||n.call(t)})},{capture:!0}))}function yn(e){var n=d,t=w;J(null),Re(null);try{return e()}finally{J(n),Re(t)}}function ns(e,n,t,r=t){e.addEventListener(n,()=>yn(t));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),nr()}function nt(e){w===null&&(d===null&&Nt(),xt()),de&&Ot()}function tr(e,n){var t=n.last;t===null?n.last=n.first=e:(t.next=e,e.prev=t,n.last=e)}function G(e,n){var t=w;t!==null&&t.f&H&&(e|=H);var r={ctx:S,deps:null,nodes:null,f:e|O|C,first:null,fn:n,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null},s=r;if(e&be)pe!==null?pe.push(r):_e.ensure().schedule(r);else if(n!==null){try{Se(r)}catch(u){throw ve(r),u}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Me)&&(s=s.first,e&Q&&e&He&&s!==null&&(s.f|=He))}if(s!==null&&(s.parent=t,t!==null&&tr(s,t),d!==null&&d.f&T&&!(e&ue))){var f=d;(f.effects??(f.effects=[])).push(s)}return r}function tt(){return d!==null&&!L}function rr(e){const n=G(Fe,null);return y(n,E),n.teardown=e,n}function ts(e){nt();var n=w.f,t=!d&&(n&V)!==0&&(n&he)===0;if(t){var r=S;(r.e??(r.e=[])).push(e)}else return rt(e)}function rt(e){return G(be|jn,e)}function rs(e){return nt(),G(Fe|jn,e)}function ss(e){_e.ensure();const n=G(ue|Me,e);return(t={})=>new Promise(r=>{t.outro?ir(n,()=>{ve(n),r(void 0)}):(ve(n),r(void 0))})}function ls(e){return G(be,e)}function sr(e){return G(un|Me,e)}function fs(e,n=0){return G(Fe|n,e)}function is(e,n=[],t=[],r=[]){Kt(r,n,t,s=>{G(Fe,()=>e(...s.map(ke)))})}function as(e,n=0){var t=G(Q|n,e);return t}function us(e){return G(V|Me,e)}function st(e){var n=e.teardown;if(n!==null){const t=de,r=d;Dn(!0),J(null);try{n.call(null)}finally{Dn(t),J(r)}}}function En(e,n=!1){var t=e.first;for(e.first=e.last=null;t!==null;){const s=t.ac;s!==null&&yn(()=>{s.abort(K)});var r=t.next;t.f&ue?t.parent=null:ve(t,n),t=r}}function lr(e){for(var n=e.first;n!==null;){var t=n.next;n.f&V||ve(n),n=t}}function ve(e,n=!0){var t=!1;(n||e.f&Rt)&&e.nodes!==null&&e.nodes.end!==null&&(fr(e.nodes.start,e.nodes.end),t=!0),y(e,bn),En(e,n&&!t),Pe(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();st(e),e.f^=bn,e.f|=U;var s=e.parent;s!==null&&s.first!==null&<(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function fr(e,n){for(;e!==null;){var t=e===n?null:ee(e);e.remove(),e=t}}function lt(e){var n=e.parent,t=e.prev,r=e.next;t!==null&&(t.next=r),r!==null&&(r.prev=t),n!==null&&(n.first===e&&(n.first=r),n.last===e&&(n.last=t))}function ir(e,n,t=!0){var r=[];ft(e,r,!0);var s=()=>{t&&ve(e),n&&n()},f=r.length;if(f>0){var u=()=>--f||s();for(var a of r)a.out(u)}else s()}function ft(e,n,t){if(!(e.f&H)){e.f^=H;var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)(a.is_global||t)&&n.push(a);for(var s=e.first;s!==null;){var f=s.next,u=(s.f&He)!==0||(s.f&V)!==0&&(e.f&Q)!==0;ft(s,n,u?t:!1),s=f}}}function os(e){it(e,!0)}function it(e,n){if(e.f&H){e.f^=H,e.f&E||(y(e,O),_e.ensure().schedule(e));for(var t=e.first;t!==null;){var r=t.next,s=(t.f&He)!==0||(t.f&V)!==0;it(t,s?n:!1),t=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const u of f)(u.is_global||n)&&u.in()}}function cs(e,n){if(e.nodes)for(var t=e.nodes.start,r=e.nodes.end;t!==null;){var s=t===r?null:ee(t);n.append(t),t=s}}let qe=!1,de=!1;function Dn(e){de=e}let d=null,L=!1;function J(e){d=e}let w=null;function Re(e){w=e}let F=null;function at(e){d!==null&&(F===null?F=[e]:F.push(e))}let N=null,k=0,P=null;function ar(e){P=e}let ut=1,le=0,ae=le;function In(e){ae=e}function ot(){return++ut}function Le(e){var n=e.f;if(n&O)return!0;if(n&T&&(e.f&=~oe),n&B){for(var t=e.deps,r=t.length,s=0;se.wv)return!0}n&C&&A===null&&y(e,E)}return!1}function ct(e,n,t=!0){var r=e.reactions;if(r!==null&&!(F!==null&&Te.call(F,e)))for(var s=0;s{e.ac.abort(K)}),e.ac=null);try{e.f|=Je;var o=e.fn,_=o();e.f|=he;var c=e.deps,g=h==null?void 0:h.is_fork;if(N!==null){var p;if(g||Pe(e,k),c!==null&&k>0)for(c.length=k+N.length,p=0;p{const n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(n)return a.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return a.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return ft(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return ft(String.fromCharCode(...l.slice(2).split("-").map(m=>parseInt(m,16))));const h=de.exec(l),[,u,w,p,f]=h;return a.push({name:p,matcher:f,optional:!!u,rest:!!w,chained:w?c===1&&i[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return ft(l)}).join("")}).join("")}/?$`),params:a}}function ge(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function me(t){return t.slice(1).split("/").filter(ge)}function _e(t,a,e){const r={},n=t.slice(1),o=n.filter(s=>s!==void 0);let i=0;for(let s=0;sh).join("/"),i=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||e[l.matcher](c)){r[l.name]=c;const h=a[s+1],u=n[s+1];h&&!h.rest&&h.optional&&u&&l.chained&&(i=0),!h&&!u&&Object.keys(r).length===o.length&&(i=0);continue}if(l.optional&&l.chained){i++;continue}return}if(!i)return r}function ft(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function we({nodes:t,server_loads:a,dictionary:e,matchers:r}){const n=new Set(a);return Object.entries(e).map(([s,[l,c,h]])=>{const{pattern:u,params:w}=pe(s),p={id:s,exec:f=>{const m=u.exec(f);if(m)return _e(m,w,r)},errors:[1,...h||[]].map(f=>t[f]),layouts:[0,...c||[]].map(i),leaf:o(l)};return p.errors.length=p.layouts.length=Math.max(p.errors.length,p.layouts.length),p});function o(s){const l=s<0;return l&&(s=~s),[l,t[s]]}function i(s){return s===void 0?s:[n.has(s),t[s]]}}function Bt(t,a=JSON.parse){try{return a(sessionStorage[t])}catch{}}function Ot(t,a,e=JSON.stringify){const r=e(a);try{sessionStorage[t]=r}catch{}}function ve(t){return t.filter(a=>a!=null)}function kt(t){return t instanceof yt||t instanceof Et?t.status:500}function ye(t){return t instanceof Et?t.text:"Internal Error"}const be=new Set(["icon","shortcut icon","apple-touch-icon"]);let F=null;const I=Bt(zt)??{},V=Bt(Ft)??{},A={url:Tt({}),page:Tt({}),navigating:re(null),updated:oe()};function St(t){I[t]=j()}function Ee(t,a){let e=t+1;for(;I[e];)delete I[e],e+=1;for(e=a+1;V[e];)delete V[e],e+=1}function H(t,a=!1){return a?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Mt(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(L||"/");t&&await t.update()}}function jt(){}let Rt,pt,Z,U,gt,E;const tt=[],et=[];let v=null;function mt(){var t;(t=v==null?void 0:v.fork)==null||t.then(a=>a==null?void 0:a.discard()),v=null}const J=new Map,Vt=new Set,ke=new Set,B=new Set;let _={branch:[],error:null,url:null},Ht=!1,at=!1,Ct=!0,Y=!1,z=!1,Yt=!1,xt=!1,Wt,b,R,O;const nt=new Set,$t=new Map;async function Be(t,a,e){var o,i,s,l,c;(o=globalThis.__sveltekit_63i6zh)!=null&&o.data&&globalThis.__sveltekit_63i6zh.data,document.URL!==location.href&&(location.href=location.href),E=t,await((s=(i=t.hooks).init)==null?void 0:s.call(i)),Rt=we(t),U=document.documentElement,gt=a,pt=t.nodes[0],Z=t.nodes[1],pt(),Z(),b=(l=history.state)==null?void 0:l[$],R=(c=history.state)==null?void 0:c[M],b||(b=R=Date.now(),history.replaceState({...history.state,[$]:b,[M]:R},""));const r=I[b];function n(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}e?(n(),await $e(gt,e)):(await N({type:"enter",url:wt(E.hash?qe(new URL(location.href)):location.href),replace_state:!0}),n()),Ce()}function Se(){tt.length=0,xt=!1}function Gt(t){et.some(a=>a==null?void 0:a.snapshot)&&(V[t]=et.map(a=>{var e;return(e=a==null?void 0:a.snapshot)==null?void 0:e.capture()}))}function Jt(t){var a;(a=V[t])==null||a.forEach((e,r)=>{var n,o;(o=(n=et[r])==null?void 0:n.snapshot)==null||o.restore(e)})}function Nt(){St(b),Ot(zt,I),Gt(R),Ot(Ft,V)}async function Xt(t,a,e,r){let n;a.invalidateAll&&mt(),await N({type:"goto",url:wt(t),keepfocus:a.keepFocus,noscroll:a.noScroll,replace_state:a.replaceState,state:a.state,redirect_count:e,nav_token:r,accept:()=>{a.invalidateAll&&(xt=!0,n=[...$t.keys()]),a.invalidate&&a.invalidate.forEach(je)}}),a.invalidateAll&&X().then(X).then(()=>{$t.forEach(({resource:o},i)=>{var s;n!=null&&n.includes(i)&&((s=o.refresh)==null||s.call(o))})})}async function Re(t){if(t.id!==(v==null?void 0:v.id)){mt();const a={};nt.add(a),v={id:t.id,token:a,promise:Zt({...t,preload:a}).then(e=>(nt.delete(a),e.type==="loaded"&&e.state.error&&mt(),e)),fork:null}}return v.promise}async function ut(t){var e;const a=(e=await it(t,!1))==null?void 0:e.route;a&&await Promise.all([...a.layouts,a.leaf].filter(Boolean).map(r=>r[1]()))}async function Qt(t,a,e){var o;const r={params:_.params,route:{id:((o=_.route)==null?void 0:o.id)??null},url:new URL(location.href)};_={...t.state,nav:r};const n=document.querySelector("style[data-sveltekit]");if(n&&n.remove(),Object.assign(x,t.props.page),Wt=new E.root({target:a,props:{...t.props,stores:A,components:et},hydrate:e,sync:!1,transformError:void 0}),await Promise.resolve(),Jt(R),e){const i={from:null,to:{...r,scroll:I[b]??j()},willUnload:!1,type:"enter",complete:Promise.resolve()};B.forEach(s=>s(i))}at=!0}async function rt({url:t,params:a,branch:e,errors:r,status:n,error:o,route:i,form:s}){let l="never";if(L&&(t.pathname===L||t.pathname===L+"/"))l="always";else for(const f of e)(f==null?void 0:f.slash)!==void 0&&(l=f.slash);t.pathname=le(t.pathname,l),t.search=t.search;const c={type:"loaded",state:{url:t,params:a,branch:e,error:o,route:i},props:{constructors:ve(e).map(f=>f.node.component),page:It(x)}};s!==void 0&&(c.props.form=s);let h={},u=!x,w=0;for(let f=0;fs(new URL(i))))return!0;return!1}function Ut(t,a){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?a??null:null}function Ue(t,a){if(!t)return new Set(a.searchParams.keys());const e=new Set([...t.searchParams.keys(),...a.searchParams.keys()]);for(const r of e){const n=t.searchParams.getAll(r),o=a.searchParams.getAll(r);n.every(i=>o.includes(i))&&o.every(i=>n.includes(i))&&e.delete(r)}return e}function Pe({error:t,url:a,route:e,params:r}){return{type:"loaded",state:{error:t,url:a,route:e,params:r,branch:[]},props:{page:It(x),constructors:[]}}}async function Zt({id:t,invalidating:a,url:e,params:r,route:n,preload:o}){if((v==null?void 0:v.id)===t)return nt.delete(v.token),v.promise;const{errors:i,layouts:s,leaf:l}=n,c=[...s,l];i.forEach(d=>d==null?void 0:d().catch(()=>{})),c.forEach(d=>d==null?void 0:d[1]().catch(()=>{}));const h=_.url?t!==ot(_.url):!1,u=_.route?n.id!==_.route.id:!1,w=Ue(_.url,e);let p=!1;const f=c.map(async(d,g)=>{var P;if(!d)return;const y=_.branch[g];return d[1]===(y==null?void 0:y.loader)&&!Le(p,u,h,w,(P=y.universal)==null?void 0:P.uses,r)?y:(p=!0,Lt({loader:d[1],url:e,params:r,route:n,parent:async()=>{var G;const T={};for(let C=0;C{});const m=[];for(let d=0;dPromise.resolve({}),server_data_node:Ut(o)}),s={node:await Z(),loader:Z,universal:null,server:null,data:null};return rt({url:e,params:n,branch:[i,s],status:t,error:a,errors:[],route:null})}catch(i){if(i instanceof bt)return Xt(new URL(i.location,location.href),{},0);throw i}}async function Ie(t){const a=t.href;if(J.has(a))return J.get(a);let e;try{const r=(async()=>{let n=await E.hooks.reroute({url:new URL(t),fetch:async(o,i)=>xe(o,i,t).promise})??t;if(typeof n=="string"){const o=new URL(t);E.hash?o.hash=n:o.pathname=n,n=o}return n})();J.set(a,r),e=await r}catch{J.delete(a);return}return e}async function it(t,a){if(t&&!vt(t,L,E.hash)){const e=await Ie(t);if(!e)return;const r=Te(e);for(const n of Rt){const o=n.exec(r);if(o)return{id:ot(t),invalidating:a,route:n,params:se(o),url:t}}}}function Te(t){return ce(E.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(L.length))||"/"}function ot(t){return(E.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function te({url:t,type:a,intent:e,delta:r,event:n,scroll:o}){let i=!1;const s=At(_,e,t,a,o??null);r!==void 0&&(s.navigation.delta=r),n!==void 0&&(s.navigation.event=n);const l={...s.navigation,cancel:()=>{i=!0,s.reject(new Error("navigation cancelled"))}};return Y||Vt.forEach(c=>c(l)),i?null:s}async function N({type:t,url:a,popped:e,keepfocus:r,noscroll:n,replace_state:o,state:i={},redirect_count:s=0,nav_token:l={},accept:c=jt,block:h=jt,event:u}){var C;const w=O;O=l;const p=await it(a,!1),f=t==="enter"?At(_,p,a,t):te({url:a,type:t,delta:e==null?void 0:e.delta,intent:p,scroll:e==null?void 0:e.scroll,event:u});if(!f){h(),O===l&&(O=w);return}const m=b,d=R;c(),Y=!0,at&&f.navigation.type!=="enter"&&A.navigating.set(ht.current=f.navigation);let g=p&&await Zt(p);if(!g){if(vt(a,L,E.hash))return await H(a,o);g=await ee(a,{id:null},await W(new Et(404,"Not Found",`Not found: ${a.pathname}`),{url:a,params:{},route:{id:null}}),404,o)}if(a=(p==null?void 0:p.url)||a,O!==l)return f.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(s<20){await N({type:t,url:new URL(g.location,a),popped:e,keepfocus:r,noscroll:n,replace_state:o,state:i,redirect_count:s+1,nav_token:l}),f.fulfil(void 0);return}g=await Pt({status:500,error:await W(new Error("Redirect loop"),{url:a,params:{},route:{id:null}}),url:a,route:{id:null}})}else g.props.page.status>=400&&await A.updated.check()&&(await Mt(),await H(a,o));if(Se(),St(m),Gt(d),g.props.page.url.pathname!==a.pathname&&(a.pathname=g.props.page.url.pathname),i=e?e.state:i,!e){const k=o?0:1,D={[$]:b+=k,[M]:R+=k,[Kt]:i};(o?history.replaceState:history.pushState).call(history,D,"",a),o||Ee(b,R)}const y=p&&(v==null?void 0:v.id)===p.id?v.fork:null;v=null,g.props.page.state=i;let S;if(at){const k=(await Promise.all(Array.from(ke,q=>q(f.navigation)))).filter(q=>typeof q=="function");if(k.length>0){let q=function(){k.forEach(lt=>{B.delete(lt)})};k.push(q),k.forEach(lt=>{B.add(lt)})}const D=f.navigation.to;_={...g.state,nav:{params:D.params,route:D.route,url:D.url}},g.props.page&&(g.props.page.url=a);const st=y&&await y;st?S=st.commit():(F=null,Wt.$set(g.props),F&&Object.assign(g.props.page,F),he(g.props.page),S=(C=ne)==null?void 0:C()),Yt=!0}else await Qt(g,gt,!1);const{activeElement:P}=document;await S,await X(),await X();let T=null;if(Ct){const k=e?e.scroll:n?j():null;k?scrollTo(k.x,k.y):(T=a.hash&&document.getElementById(ae(a)))?T.scrollIntoView():scrollTo(0,0)}const G=document.activeElement!==P&&document.activeElement!==document.body;!r&&!G&&De(a,!T),Ct=!0,g.props.page&&(F&&Object.assign(g.props.page,F),Object.assign(x,g.props.page)),Y=!1,t==="popstate"&&Jt(R),f.fulfil(void 0),f.navigation.to&&(f.navigation.to.scroll=j()),B.forEach(k=>k(f.navigation)),A.navigating.set(ht.current=null)}async function ee(t,a,e,r,n){return t.origin===Dt&&t.pathname===location.pathname&&!Ht?await Pt({status:r,error:e,url:t,route:a}):await H(t,n)}function Oe(){let t,a={element:void 0,href:void 0},e;U.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(t),t=setTimeout(()=>{o(l,K.hover)},20)});function r(s){s.defaultPrevented||o(s.composedPath()[0],K.tap)}U.addEventListener("mousedown",r),U.addEventListener("touchstart",r,{passive:!0});const n=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(ut(new URL(l.target.href)),n.unobserve(l.target))},{threshold:0});async function o(s,l){const c=qt(s,U),h=c===a.element&&(c==null?void 0:c.href)===a.href&&l>=e;if(!c||h)return;const{url:u,external:w,download:p}=dt(c,L,E.hash);if(w||p)return;const f=Q(c),m=u&&ot(_.url)===ot(u);if(!(f.reload||m))if(l<=f.preload_data){a={element:c,href:c.href},e=K.tap;const d=await it(u,!1);if(!d)return;Re(d)}else l<=f.preload_code&&(a={element:c,href:c.href},e=l,ut(u))}function i(){n.disconnect();for(const s of U.querySelectorAll("a")){const{url:l,external:c,download:h}=dt(s,L,E.hash);if(c||h)continue;const u=Q(s);u.reload||(u.preload_code===K.viewport&&n.observe(s),u.preload_code===K.eager&&ut(l))}}B.add(i),i()}function W(t,a){if(t instanceof yt)return t.body;const e=kt(t),r=ye(t);return E.hooks.handleError({error:t,event:a,status:e,message:r})??{message:r}}function Me(t,a={}){return t=new URL(wt(t)),t.origin!==Dt?Promise.reject(new Error("goto: invalid URL")):Xt(t,a,0)}function je(t){if(typeof t=="function")tt.push(t);else{const{href:a}=new URL(t,location.href);tt.push(e=>e.href===a)}}function Ce(){var a;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let r=!1;if(Nt(),!Y){const n=At(_,void 0,null,"leave"),o={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};Vt.forEach(i=>i(o))}r?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Nt()}),(a=navigator.connection)!=null&&a.saveData||Oe(),U.addEventListener("click",async e=>{if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const r=qt(e.composedPath()[0],U);if(!r)return;const{url:n,external:o,target:i,download:s}=dt(r,L,E.hash);if(!n)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const l=Q(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||s)return;const[h,u]=(E.hash?n.hash.replace(/^#/,""):n.href).split("#"),w=h===ct(location);if(o||l.reload&&(!w||!u)){te({url:n,type:"link",event:e})?Y=!0:e.preventDefault();return}if(u!==void 0&&w){const[,p]=_.url.href.split("#");if(p===u){if(e.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const f=r.ownerDocument.getElementById(decodeURIComponent(u));f&&(f.scrollIntoView(),f.focus())}return}if(z=!0,St(b),t(n),!l.replace_state)return;z=!1}e.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await N({type:"link",url:n,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??n.href===location.href,event:e})}),U.addEventListener("submit",e=>{if(e.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if(((n==null?void 0:n.formTarget)||r.target)==="_blank"||((n==null?void 0:n.formMethod)||r.method)!=="get")return;const s=new URL((n==null?void 0:n.hasAttribute("formaction"))&&(n==null?void 0:n.formAction)||r.action);if(vt(s,L,!1))return;const l=e.target,c=Q(l);if(c.reload)return;e.preventDefault(),e.stopPropagation();const h=new FormData(l,n);s.search=new URLSearchParams(h).toString(),N({type:"form",url:s,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??s.href===location.href,event:e})}),addEventListener("popstate",async e=>{var r;if(!_t){if((r=e.state)!=null&&r[$]){const n=e.state[$];if(O={},n===b)return;const o=I[n],i=e.state[Kt]??{},s=new URL(e.state[ie]??location.href),l=e.state[M],c=_.url?ct(location)===ct(_.url):!1;if(l===R&&(Yt||c)){i!==x.state&&(x.state=i),t(s),I[b]=j(),o&&scrollTo(o.x,o.y),b=n;return}const u=n-b;await N({type:"popstate",url:s,popped:{state:i,scroll:o,delta:u},accept:()=>{b=n,R=l},block:()=>{history.go(-u)},nav_token:O,event:e})}else if(!z){const n=new URL(location.href);t(n),E.hash&&location.reload()}}}),addEventListener("hashchange",()=>{z&&(z=!1,history.replaceState({...history.state,[$]:++b,[M]:R},"",location.href))});for(const e of document.querySelectorAll("link"))be.has(e.rel)&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&A.navigating.set(ht.current=null)});function t(e){_.url=x.url=e,A.page.set(It(x)),A.page.notify()}}async function $e(t,{status:a=200,error:e,node_ids:r,params:n,route:o,server_route:i,data:s,form:l}){Ht=!0;const c=new URL(location.href);let h;({params:n={},route:o={id:null}}=await it(c,!1)||{}),h=Rt.find(({id:p})=>p===o.id);let u,w=!0;try{const p=r.map(async(m,d)=>{const g=s[d];return g!=null&&g.uses&&(g.uses=Ne(g.uses)),Lt({loader:E.nodes[m],url:c,params:n,route:o,parent:async()=>{const y={};for(let S=0;S{const s=history.state;_t=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(s,"",t),a&&scrollTo(o,i),_t=!1})}else{const o=document.body,i=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),i!==null?o.setAttribute("tabindex",i):o.removeAttribute("tabindex")}const n=getSelection();if(n&&n.type!=="None"){const o=[];for(let i=0;i{if(n.rangeCount===o.length){for(let i=0;i{o=u,i=w});return s.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url,scroll:j()},to:e&&{params:(a==null?void 0:a.params)??null,route:{id:((h=a==null?void 0:a.route)==null?void 0:h.id)??null},url:e,scroll:n},willUnload:!a,type:r,complete:s},fulfil:o,reject:i}}function It(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function qe(t){const a=new URL(t);return a.hash=decodeURIComponent(t.hash),a}function ae(t){let a;if(E.hash){const[,,e]=t.hash.split("#",3);a=e??""}else a=t.hash.slice(1);return decodeURIComponent(a)}export{Be as a,Me as g,A as s}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/ayyTDfEa.js b/backend/cmd/server/embed/_app/immutable/chunks/ayyTDfEa.js deleted file mode 100644 index ce8adf6..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/ayyTDfEa.js +++ /dev/null @@ -1 +0,0 @@ -import{l as b,c as v,b as m,u as _,r as i,h as y}from"./DtGl34IE.js";function k(e,l,u=l){var s=new WeakSet;b(e,"input",async r=>{var a=r?e.defaultValue:e.value;if(a=t(e)?o(a):a,u(a),v!==null&&s.add(v),await m(),a!==(a=l())){var d=e.selectionStart,c=e.selectionEnd,n=e.value.length;if(e.value=a??"",c!==null){var f=e.value.length;d===c&&c===n&&f>n?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=d,e.selectionEnd=Math.min(c,f))}}}),(y&&e.defaultValue!==e.value||_(l)==null&&e.value)&&(u(t(e)?o(e.value):e.value),v!==null&&s.add(v)),i(()=>{var r=l();if(e===document.activeElement){var a=v;if(s.has(a))return}t(e)&&r===o(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function t(e){var l=e.type;return l==="number"||l==="range"}function o(e){return e===""?null:+e}export{k as b}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/e1WBZ7UL.js b/backend/cmd/server/embed/_app/immutable/chunks/e1WBZ7UL.js deleted file mode 100644 index ef637a0..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/e1WBZ7UL.js +++ /dev/null @@ -1 +0,0 @@ -import{h as i,q as d,e as n,L as v,N as h,I as u,f as g,i as A}from"./DtGl34IE.js";const L=Symbol("is custom element"),N=Symbol("is html"),l=u?"link":"LINK";function S(r){if(i){var s=!1,e=()=>{if(!s){if(s=!0,r.hasAttribute("value")){var a=r.value;t(r,"value",null),r.value=a}if(r.hasAttribute("checked")){var o=r.checked;t(r,"checked",null),r.checked=o}}};r.__on_r=e,d(e),n()}}function t(r,s,e,a){var o=p(r);i&&(o[s]=r.getAttribute(s),s==="src"||s==="srcset"||s==="href"&&r.nodeName===l)||o[s]!==(o[s]=e)&&(s==="loading"&&(r[v]=e),e==null?r.removeAttribute(s):typeof e!="string"&&I(r).includes(s)?r[s]=e:r.setAttribute(s,e))}function p(r){return r.__attributes??(r.__attributes={[L]:r.nodeName.includes("-"),[N]:r.namespaceURI===h})}var c=new Map;function I(r){var s=r.getAttribute("is")||r.nodeName,e=c.get(s);if(e)return e;c.set(s,e=[]);for(var a,o=r,f=Element.prototype;f!==o;){a=A(o);for(var _ in a)a[_].set&&e.push(_);o=g(o)}return e}export{S as r,t as s}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/ecAlPOj8.js b/backend/cmd/server/embed/_app/immutable/chunks/ecAlPOj8.js deleted file mode 100644 index c322045..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/ecAlPOj8.js +++ /dev/null @@ -1 +0,0 @@ -import{h as N,j as z,k as W,o as H,v as Z,w as $,g as L,x as j,H as ee,y as U,z as O,A as b,C as ne,B as re,D as X,c as fe,E as Y,F as ae,G as ie,J as le,K as ue,M as V,O as se,P as q,Q as oe,R as ve,m as te,S as T,T as de,U as J,V as K,W as y,X as ce,Y as pe,Z as ge,_ as he,$ as _e}from"./DtGl34IE.js";function Ce(e,a){return a}function Ee(e,a,l){for(var o=[],c=a.length,u,i=a.length,r=0;r{if(u){if(u.pending.delete(v),u.done.add(v),u.pending.size===0){var w=e.outrogroups;B(e,V(u.done)),w.delete(u),w.size===0&&(e.outrogroups=null)}}else i-=1},!1)}if(i===0){var t=o.length===0&&l!==null;if(t){var f=l,d=f.parentNode;pe(d),d.append(f),e.items.clear()}B(e,a,!t)}else u={pending:new Set(a),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(u)}function B(e,a,l=!0){var o;if(e.pending.size>0){o=new Set;for(const i of e.pending.values())for(const r of i)o.add(e.items.get(r).e)}for(var c=0;c{var s=l();return ue(s)?s:s==null?[]:V(s)}),v,w=new Map,h=!0;function n(s){p.effect.f&de||(p.pending.delete(s),p.fallback=f,me(p,v,i,a,o),f!==null&&(v.length===0?f.f&T?(f.f^=T,D(f,null,i)):J(f):K(f,()=>{f=null})))}function C(s){p.pending.delete(s)}var I=$(()=>{v=L(d);var s=v.length;let k=!1;if(N){var R=j(i)===ee;R!==(s===0)&&(i=U(),z(i),O(!1),k=!0)}for(var _=new Set,A=fe,M=ie(),E=0;Eu(i)):(f=Y(()=>u(G??(G=H()))),f.f|=T)),s>_.size&&ae(),N&&s>0&&z(U()),!h)if(w.set(A,_),M){for(const[P,Q]of r)_.has(P)||A.skip_effect(Q.e);A.oncommit(n),A.ondiscard(C)}else n(A);k&&O(!0),L(d)}),p={effect:I,items:r,pending:w,outrogroups:null,fallback:f};h=!1,N&&(i=b)}function x(e){for(;e!==null&&!(e.f&ce);)e=e.next;return e}function me(e,a,l,o,c){var E;var u=a.length,i=e.items,r=x(e.effect.first),t,f=null,d=[],v=[],w,h,n,C;for(C=0;C0){var M=u===0?l:null;Ee(e,_,M)}}}function Te(e,a,l,o,c,u,i,r){var t=i&oe?i&ve?q(l):te(l,!1,!1):null,f=i&se?q(c):null;return{v:t,i:f,e:Y(()=>(u(a,t??l,f??c,r),()=>{e.delete(o)}))}}function D(e,a,l){if(e.nodes)for(var o=e.nodes.start,c=e.nodes.end,u=a&&!(a.f&T)?a.nodes.start:l;o!==null;){var i=_e(o);if(u.before(o),o===c)return;o=i}}function S(e,a,l){a===null?e.effect.first=l:a.next=l,l===null?e.effect.last=a:l.prev=a}export{Ae as e,Ce as i}; diff --git a/backend/cmd/server/embed/_app/immutable/chunks/n1byU5WW.js b/backend/cmd/server/embed/_app/immutable/chunks/n1byU5WW.js deleted file mode 100644 index 4424acc..0000000 --- a/backend/cmd/server/embed/_app/immutable/chunks/n1byU5WW.js +++ /dev/null @@ -1,2 +0,0 @@ -var Ft=Object.defineProperty;var dt=e=>{throw TypeError(e)};var kt=(e,t,r)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var z=(e,t,r)=>kt(e,typeof t!="symbol"?t+"":t,r),rt=(e,t,r)=>t.has(e)||dt("Cannot "+r);var s=(e,t,r)=>(rt(e,t,"read from private field"),r?r.call(e):t.get(e)),c=(e,t,r)=>t.has(e)?dt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),n=(e,t,r,a)=>(rt(e,t,"write to private field"),a?a.call(e,r):t.set(e,r),r),p=(e,t,r)=>(rt(e,t,"access private method"),r);import{au as Mt,g as bt,r as Lt,u as Ct,av as ut,q as V,P as Et,A as M,h as L,an as P,aw as _t,w as Ht,v as It,H as Bt,ax as pt,E as k,o as wt,V as st,c as gt,Z as Pt,ay as Yt,az as Z,aA as Q,aB as vt,aC as xt,aD as Vt,aE as mt,aa as Tt,D as Wt,_ as it,j as X,a6 as $t,y as qt,aF as j,a9 as zt,aG as jt,aH as Jt,aI as Gt,t as Kt,aJ as Ut,d as Zt,aK as at,k as Qt,C as St,aL as Xt,$ as te,aM as nt,z as J,aN as ee,Y as re,aO as se,M as ie,p as ae,B as ne,aP as fe,a as he}from"./DtGl34IE.js";import{b as oe}from"./CJv7FbHz.js";function le(e){let t=0,r=Et(0),a;return()=>{Mt()&&(bt(r),Lt(()=>(t===0&&(a=Ct(()=>e(()=>ut(r)))),t+=1,()=>{V(()=>{t-=1,t===0&&(a==null||a(),a=void 0,ut(r))})})))}}var ce=zt|jt;function de(e,t,r,a){new ue(e,t,r,a)}var E,W,T,H,g,S,w,m,N,I,D,Y,$,q,R,tt,o,Nt,Rt,At,ft,K,U,ht;class ue{constructor(t,r,a,h){c(this,o);z(this,"parent");z(this,"is_pending",!1);z(this,"transform_error");c(this,E);c(this,W,L?M:null);c(this,T);c(this,H);c(this,g);c(this,S,null);c(this,w,null);c(this,m,null);c(this,N,null);c(this,I,0);c(this,D,0);c(this,Y,!1);c(this,$,new Set);c(this,q,new Set);c(this,R,null);c(this,tt,le(()=>(n(this,R,Et(s(this,I))),()=>{n(this,R,null)})));var i;n(this,E,t),n(this,T,r),n(this,H,f=>{var u=P;u.b=this,u.f|=_t,a(f)}),this.parent=P.b,this.transform_error=h??((i=this.parent)==null?void 0:i.transform_error)??(f=>f),n(this,g,Ht(()=>{if(L){const f=s(this,W);It();const u=f.data===Bt;if(f.data.startsWith(pt)){const d=JSON.parse(f.data.slice(pt.length));p(this,o,Rt).call(this,d)}else u?p(this,o,At).call(this):p(this,o,Nt).call(this)}else p(this,o,ft).call(this)},ce)),L&&n(this,E,M)}defer_effect(t){Yt(t,s(this,$),s(this,q))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!s(this,T).pending}update_pending_count(t,r){p(this,o,ht).call(this,t,r),n(this,I,s(this,I)+t),!(!s(this,R)||s(this,Y))&&(n(this,Y,!0),V(()=>{n(this,Y,!1),s(this,R)&&Wt(s(this,R),s(this,I))}))}get_effect_pending(){return s(this,tt).call(this),bt(s(this,R))}error(t){var r=s(this,T).onerror;let a=s(this,T).failed;if(!r&&!a)throw t;s(this,S)&&(it(s(this,S)),n(this,S,null)),s(this,w)&&(it(s(this,w)),n(this,w,null)),s(this,m)&&(it(s(this,m)),n(this,m,null)),L&&(X(s(this,W)),$t(),X(qt()));var h=!1,i=!1;const f=()=>{if(h){Gt();return}h=!0,i&&Jt(),s(this,m)!==null&&st(s(this,m),()=>{n(this,m,null)}),p(this,o,U).call(this,()=>{p(this,o,ft).call(this)})},u=l=>{try{i=!0,r==null||r(l,f),i=!1}catch(d){j(d,s(this,g)&&s(this,g).parent)}a&&n(this,m,p(this,o,U).call(this,()=>{try{return k(()=>{var d=P;d.b=this,d.f|=_t,a(s(this,E),()=>l,()=>f)})}catch(d){return j(d,s(this,g).parent),null}}))};V(()=>{var l;try{l=this.transform_error(t)}catch(d){j(d,s(this,g)&&s(this,g).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(u,d=>j(d,s(this,g)&&s(this,g).parent)):u(l)})}}E=new WeakMap,W=new WeakMap,T=new WeakMap,H=new WeakMap,g=new WeakMap,S=new WeakMap,w=new WeakMap,m=new WeakMap,N=new WeakMap,I=new WeakMap,D=new WeakMap,Y=new WeakMap,$=new WeakMap,q=new WeakMap,R=new WeakMap,tt=new WeakMap,o=new WeakSet,Nt=function(){try{n(this,S,k(()=>s(this,H).call(this,s(this,E))))}catch(t){this.error(t)}},Rt=function(t){const r=s(this,T).failed;r&&n(this,m,k(()=>{r(s(this,E),()=>t,()=>()=>{})}))},At=function(){const t=s(this,T).pending;t&&(this.is_pending=!0,n(this,w,k(()=>t(s(this,E)))),V(()=>{var r=n(this,N,document.createDocumentFragment()),a=wt();r.append(a),n(this,S,p(this,o,U).call(this,()=>k(()=>s(this,H).call(this,a)))),s(this,D)===0&&(s(this,E).before(r),n(this,N,null),st(s(this,w),()=>{n(this,w,null)}),p(this,o,K).call(this,gt))}))},ft=function(){try{if(this.is_pending=this.has_pending_snippet(),n(this,D,0),n(this,I,0),n(this,S,k(()=>{s(this,H).call(this,s(this,E))})),s(this,D)>0){var t=n(this,N,document.createDocumentFragment());Pt(s(this,S),t);const r=s(this,T).pending;n(this,w,k(()=>r(s(this,E))))}else p(this,o,K).call(this,gt)}catch(r){this.error(r)}},K=function(t){this.is_pending=!1,t.transfer_effects(s(this,$),s(this,q))},U=function(t){var r=P,a=mt,h=Tt;Z(s(this,g)),Q(s(this,g)),vt(s(this,g).ctx);try{return xt.ensure(),t()}catch(i){return Vt(i),null}finally{Z(r),Q(a),vt(h)}},ht=function(t,r){var a;if(!this.has_pending_snippet()){this.parent&&p(a=this.parent,o,ht).call(a,t,r);return}n(this,D,s(this,D)+t),s(this,D)===0&&(p(this,o,K).call(this,r),s(this,w)&&st(s(this,w),()=>{n(this,w,null)}),s(this,N)&&(s(this,E).before(s(this,N)),n(this,N,null)))};const _e=["touchstart","touchmove"];function pe(e){return _e.includes(e)}const C=Symbol("events"),Dt=new Set,ot=new Set;function ge(e,t,r,a={}){function h(i){if(a.capture||lt.call(t,i),!i.cancelBubble)return Ut(()=>r==null?void 0:r.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?V(()=>{t.addEventListener(e,h,a)}):t.addEventListener(e,h,a),h}function we(e,t,r,a,h){var i={capture:a,passive:h},f=ge(e,t,r,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Kt(()=>{t.removeEventListener(e,f,i)})}function me(e,t,r){(t[C]??(t[C]={}))[e]=r}function Te(e){for(var t=0;t{throw F});throw A}}finally{e[C]=t,delete e.currentTarget,Q(B),Z(x)}}}function Se(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=r,e.nodeValue=`${r}`)}function ve(e,t){return Ot(e,t)}function Ne(e,t){at(),t.intro=t.intro??!1;const r=t.target,a=L,h=M;try{for(var i=Qt(r);i&&(i.nodeType!==St||i.data!==Xt);)i=te(i);if(!i)throw nt;J(!0),X(i);const f=Ot(e,{...t,anchor:i});return J(!1),f}catch(f){if(f instanceof Error&&f.message.split(` -`).some(u=>u.startsWith("https://svelte.dev/e/")))throw f;return f!==nt&&console.warn("Failed to hydrate: ",f),t.recover===!1&&ee(),at(),re(r),J(!1),ve(e,t)}finally{J(a),X(h)}}const G=new Map;function Ot(e,{target:t,anchor:r,props:a={},events:h,context:i,intro:f=!0,transformError:u}){at();var l=void 0,d=se(()=>{var B=r??t.appendChild(wt());de(B,{pending:()=>{}},v=>{ae({});var _=Tt;if(i&&(_.c=i),h&&(a.$$events=h),L&&oe(v,null),l=e(v,a)||{},L&&(P.nodes.end=M,M===null||M.nodeType!==St||M.data!==ne))throw fe(),nt;he()},u);var x=new Set,A=v=>{for(var _=0;_{var O;for(var v of x)for(const b of[t,document]){var _=G.get(b),y=_.get(v);--y==0?(b.removeEventListener(v,lt),_.delete(v),_.size===0&&G.delete(b)):_.set(v,y)}ot.delete(A),B!==r&&((O=B.parentNode)==null||O.removeChild(B))}});return ct.set(l,d),l}let ct=new WeakMap;function Re(e,t){const r=ct.get(e);return r?(ct.delete(e),r(t)):Promise.resolve()}export{me as a,Te as d,we as e,Ne as h,ve as m,Se as s,Re as u}; diff --git a/backend/cmd/server/embed/_app/immutable/entry/app.BI_Sozkn.js b/backend/cmd/server/embed/_app/immutable/entry/app.BI_Sozkn.js deleted file mode 100644 index 113305c..0000000 --- a/backend/cmd/server/embed/_app/immutable/entry/app.BI_Sozkn.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.D3wXY_0K.js","../chunks/CJv7FbHz.js","../chunks/DtGl34IE.js","../chunks/B3ZK_jYJ.js","../chunks/BX-b5t2l.js","../chunks/n1byU5WW.js","../chunks/-EcHSJia.js","../chunks/B7kAneMc.js","../chunks/RKc8iKz_.js","../chunks/CfgL3m1f.js","../chunks/DR7h53-u.js","../assets/0.DkgBtk4_.css","../nodes/1.Dgii_8lh.js","../chunks/DFRBE_Uq.js","../nodes/2.BMCUuUxB.js","../chunks/BYrNiJ2z.js","../assets/2.By2d6Bxb.css","../nodes/3.CFDiiGpK.js","../nodes/4.YDL696B2.js","../chunks/e1WBZ7UL.js","../chunks/ayyTDfEa.js","../assets/4.CG2X--Z8.css","../nodes/5.DHfYhdex.js","../assets/5.YbbfqdJp.css","../nodes/6.BiQ3_GJa.js","../assets/6.w_qTFDpy.css","../nodes/7.BEIquz8f.js","../assets/7.Bq7myTre.css","../nodes/8.D4QctIPu.js","../chunks/ecAlPOj8.js","../assets/8.neQUdyXe.css","../nodes/9.DflEy3LG.js","../assets/9.Ci0QlAaW.css","../nodes/10.BvOkMiuT.js","../assets/10.Qar-kS8x.css","../nodes/11.DnvWFHPj.js","../assets/11.D38O3Xxc.css","../nodes/12.CRx3MqWn.js","../assets/12.DQdHIvb_.css","../nodes/13.CB7FlS8h.js","../assets/13.DnP_H9DZ.css","../nodes/14.CFDiiGpK.js"])))=>i.map(i=>d[i]); -var M=t=>{throw TypeError(t)};var z=(t,e,a)=>e.has(t)||M("Cannot "+a);var h=(t,e,a)=>(z(t,e,"read from private field"),a?a.call(t):e.get(t)),V=(t,e,a)=>e.has(t)?M("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,a),x=(t,e,a,n)=>(z(t,e,"write to private field"),n?n.call(t,a):e.set(t,a),a);import{h as F,v as ae,w as se,a9 as ne,x as ie,y as oe,j as ue,z as G,aL as ce,A as _e,aa as de,aj as fe,r as le,u as H,an as J,aQ as me,aR as Q,aS as ve,aT as he,aU as Ee,g as R,a1 as ge,s as L,aV as Pe,T as Re,aW as ye,ai as Oe,aX as Te,aY as Ae,af as be,J as Ie,aZ as Se,a_ as X,a$ as Le,d as De,m as we,p as pe,ab as Ve,a8 as xe,b as je,a3 as w,a2 as Be,a as ke,a0 as j,a4 as Ce,a5 as Ye,a7 as Ne,b0 as B}from"../chunks/DtGl34IE.js";import{h as Ue,m as qe,u as Me,s as ze}from"../chunks/n1byU5WW.js";import{a as I,c as k,f as K,t as Fe}from"../chunks/CJv7FbHz.js";import{o as Ge}from"../chunks/DR7h53-u.js";import{B as We,i as C}from"../chunks/-EcHSJia.js";import{c as Ze}from"../chunks/B3ZK_jYJ.js";function Y(t,e,a){var n;F&&(n=_e,ae());var i=new We(t);se(()=>{var u=e()??null;if(F){var s=ie(n),r=s===ce,o=u!==null;if(r!==o){var d=oe();ue(d),i.anchor=d,G(!1),i.ensure(u,u&&(c=>a(c,u))),G(!0);return}}i.ensure(u,u&&(c=>a(c,u)))},ne)}function W(t,e){return t===e||(t==null?void 0:t[Q])===e}function N(t={},e,a,n){var i=de.r,u=J;return fe(()=>{var s,r;return le(()=>{s=r,r=[],H(()=>{t!==a(...r)&&(e(t,...r),s&&W(a(...s),t)&&e(null,...s))})}),()=>{let o=u;for(;o!==i&&o.parent!==null&&o.parent.f&me;)o=o.parent;const d=()=>{r&&W(a(...r),t)&&e(null,...r)},c=o.teardown;o.teardown=()=>{d(),c==null||c()}}}),t}function U(t,e,a,n){var O;var i=!Oe||(a&Te)!==0,u=(a&ye)!==0,s=(a&Se)!==0,r=n,o=!0,d=()=>(o&&(o=!1,r=s?H(n):n),r);let c;if(u){var S=Q in t||X in t;c=((O=ve(t,e))==null?void 0:O.set)??(S&&e in t?_=>t[e]=_:void 0)}var A,E=!1;u?[A,E]=Ze(()=>t[e]):A=t[e],A===void 0&&n!==void 0&&(A=d(),c&&(i&&he(),c(A)));var v;if(i?v=()=>{var _=t[e];return _===void 0?d():(o=!0,_)}:v=()=>{var _=t[e];return _!==void 0&&(r=void 0),_===void 0?r:_},i&&!(a&Ee))return v;if(c){var f=t.$$legacy;return function(_,l){return arguments.length>0?((!i||!l||f||E)&&c(l?v():_),_):v()}}var y=!1,g=(a&Ae?be:Ie)(()=>(y=!1,v()));u&&R(g);var b=J;return function(_,l){if(arguments.length>0){const p=l?R(g):i&&u?ge(_):_;return L(g,p),y=!0,r!==void 0&&(r=p),_}return Pe&&y||b.f&Re?g.v:R(g)}}function He(t){return class extends Je{constructor(e){super({component:t,...e})}}}var T,P;class Je{constructor(e){V(this,T);V(this,P);var u;var a=new Map,n=(s,r)=>{var o=we(r,!1,!1);return a.set(s,o),o};const i=new Proxy({...e.props||{},$$events:{}},{get(s,r){return R(a.get(r)??n(r,Reflect.get(s,r)))},has(s,r){return r===X?!0:(R(a.get(r)??n(r,Reflect.get(s,r))),Reflect.has(s,r))},set(s,r,o){return L(a.get(r)??n(r,o),o),Reflect.set(s,r,o)}});x(this,P,(e.hydrate?Ue:qe)(e.component,{target:e.target,anchor:e.anchor,props:i,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!((u=e==null?void 0:e.props)!=null&&u.$$host)||e.sync===!1)&&Le(),x(this,T,i.$$events);for(const s of Object.keys(h(this,P)))s==="$set"||s==="$destroy"||s==="$on"||De(this,s,{get(){return h(this,P)[s]},set(r){h(this,P)[s]=r},enumerable:!0});h(this,P).$set=s=>{Object.assign(i,s)},h(this,P).$destroy=()=>{Me(h(this,P))}}$set(e){h(this,P).$set(e)}$on(e,a){h(this,T)[e]=h(this,T)[e]||[];const n=(...i)=>a.call(this,...i);return h(this,T)[e].push(n),()=>{h(this,T)[e]=h(this,T)[e].filter(i=>i!==n)}}$destroy(){h(this,P).$destroy()}}T=new WeakMap,P=new WeakMap;const Qe="modulepreload",Xe=function(t,e){return new URL(t,e).href},Z={},m=function(e,a,n){let i=Promise.resolve();if(a&&a.length>0){const s=document.getElementsByTagName("link"),r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));i=Promise.allSettled(a.map(d=>{if(d=Xe(d,n),d in Z)return;Z[d]=!0;const c=d.endsWith(".css"),S=c?'[rel="stylesheet"]':"";if(!!n)for(let v=s.length-1;v>=0;v--){const f=s[v];if(f.href===d&&(!c||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${S}`))return;const E=document.createElement("link");if(E.rel=c?"stylesheet":Qe,c||(E.as="script"),E.crossOrigin="",E.href=d,o&&E.setAttribute("nonce",o),document.head.appendChild(E),c)return new Promise((v,f)=>{E.addEventListener("load",v),E.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${d}`)))})}))}function u(s){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=s,window.dispatchEvent(r),!r.defaultPrevented)throw s}return i.then(s=>{for(const r of s||[])r.status==="rejected"&&u(r.reason);return e().catch(u)})},ct={};var Ke=K('
'),$e=K(" ",1);function et(t,e){pe(e,!0);let a=U(e,"components",23,()=>[]),n=U(e,"data_0",3,null),i=U(e,"data_1",3,null);Ve(()=>e.stores.page.set(e.page)),xe(()=>{e.stores,e.page,e.constructors,a(),e.form,n(),i(),e.stores.page.notify()});let u=j(!1),s=j(!1),r=j(null);Ge(()=>{const f=e.stores.page.subscribe(()=>{R(u)&&(L(s,!0),je().then(()=>{L(r,document.title||"untitled page",!0)}))});return L(u,!0),f});const o=B(()=>e.constructors[1]);var d=$e(),c=w(d);{var S=f=>{const y=B(()=>e.constructors[0]);var g=k(),b=w(g);Y(b,()=>R(y),(O,_)=>{N(_(O,{get data(){return n()},get form(){return e.form},get params(){return e.page.params},children:(l,p)=>{var q=k(),ee=w(q);Y(ee,()=>R(o),(te,re)=>{N(re(te,{get data(){return i()},get form(){return e.form},get params(){return e.page.params}}),D=>a()[1]=D,()=>{var D;return(D=a())==null?void 0:D[1]})}),I(l,q)},$$slots:{default:!0}}),l=>a()[0]=l,()=>{var l;return(l=a())==null?void 0:l[0]})}),I(f,g)},A=f=>{const y=B(()=>e.constructors[0]);var g=k(),b=w(g);Y(b,()=>R(y),(O,_)=>{N(_(O,{get data(){return n()},get form(){return e.form},get params(){return e.page.params}}),l=>a()[0]=l,()=>{var l;return(l=a())==null?void 0:l[0]})}),I(f,g)};C(c,f=>{e.constructors[1]?f(S):f(A,-1)})}var E=Be(c,2);{var v=f=>{var y=Ke(),g=Ce(y);{var b=O=>{var _=Fe();Ne(()=>ze(_,R(r))),I(O,_)};C(g,O=>{R(s)&&O(b)})}Ye(y),I(f,y)};C(E,f=>{R(u)&&f(v)})}I(t,d),ke()}const _t=He(et),dt=[()=>m(()=>import("../nodes/0.D3wXY_0K.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),()=>m(()=>import("../nodes/1.Dgii_8lh.js"),__vite__mapDeps([12,1,2,13,5,9,10,4,8]),import.meta.url),()=>m(()=>import("../nodes/2.BMCUuUxB.js"),__vite__mapDeps([14,1,2,10,5,6,15,16]),import.meta.url),()=>m(()=>import("../nodes/3.CFDiiGpK.js"),__vite__mapDeps([17,1,2,13,10,8,4,9]),import.meta.url),()=>m(()=>import("../nodes/4.YDL696B2.js"),__vite__mapDeps([18,1,2,10,5,6,19,20,8,4,9,21]),import.meta.url),()=>m(()=>import("../nodes/5.DHfYhdex.js"),__vite__mapDeps([22,1,2,10,5,6,8,4,9,23]),import.meta.url),()=>m(()=>import("../nodes/6.BiQ3_GJa.js"),__vite__mapDeps([24,1,2,5,6,19,20,9,10,4,25]),import.meta.url),()=>m(()=>import("../nodes/7.BEIquz8f.js"),__vite__mapDeps([26,1,2,5,6,19,20,8,4,9,10,27]),import.meta.url),()=>m(()=>import("../nodes/8.D4QctIPu.js"),__vite__mapDeps([28,1,2,5,6,29,19,20,30]),import.meta.url),()=>m(()=>import("../nodes/9.DflEy3LG.js"),__vite__mapDeps([31,1,2,3,4,5,6,19,7,8,9,10,32]),import.meta.url),()=>m(()=>import("../nodes/10.BvOkMiuT.js"),__vite__mapDeps([33,1,2,3,4,5,6,29,19,20,7,8,9,10,34]),import.meta.url),()=>m(()=>import("../nodes/11.DnvWFHPj.js"),__vite__mapDeps([35,1,2,3,4,5,6,29,19,20,7,8,9,10,36]),import.meta.url),()=>m(()=>import("../nodes/12.CRx3MqWn.js"),__vite__mapDeps([37,1,2,5,6,29,19,15,20,38]),import.meta.url),()=>m(()=>import("../nodes/13.CB7FlS8h.js"),__vite__mapDeps([39,1,2,5,6,29,40]),import.meta.url),()=>m(()=>import("../nodes/14.CFDiiGpK.js"),__vite__mapDeps([41,1,2,13,10,8,4,9]),import.meta.url)],ft=[],lt={"/":[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]},$={handleError:({error:t})=>{console.error(t)},reroute:()=>{},transport:{}},tt=Object.fromEntries(Object.entries($.transport).map(([t,e])=>[t,e.decode])),mt=Object.fromEntries(Object.entries($.transport).map(([t,e])=>[t,e.encode])),vt=!1,ht=(t,e)=>tt[t](e);export{ht as decode,tt as decoders,lt as dictionary,mt as encoders,vt as hash,$ as hooks,ct as matchers,dt as nodes,_t as root,ft as server_loads}; diff --git a/backend/cmd/server/embed/_app/immutable/entry/start.tprRzko2.js b/backend/cmd/server/embed/_app/immutable/entry/start.tprRzko2.js deleted file mode 100644 index 5305aa3..0000000 --- a/backend/cmd/server/embed/_app/immutable/entry/start.tprRzko2.js +++ /dev/null @@ -1 +0,0 @@ -import{a as r}from"../chunks/RKc8iKz_.js";import{w as t}from"../chunks/CfgL3m1f.js";export{t as load_css,r as start}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/0.D3wXY_0K.js b/backend/cmd/server/embed/_app/immutable/nodes/0.D3wXY_0K.js deleted file mode 100644 index 8472483..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/0.D3wXY_0K.js +++ /dev/null @@ -1 +0,0 @@ -import{c as A,a as h,f as q}from"../chunks/CJv7FbHz.js";import{w as j,a9 as z,p as Q,a8 as U,s as v,g as r,a3 as x,a as V,a0 as B,a4 as n,a2 as _,a5 as i,a7 as W}from"../chunks/DtGl34IE.js";import{s as G,a as H}from"../chunks/B3ZK_jYJ.js";import{d as J,a as K,s as O}from"../chunks/n1byU5WW.js";import{B as X,i as C}from"../chunks/-EcHSJia.js";import{p as Y}from"../chunks/B7kAneMc.js";import{g as f}from"../chunks/RKc8iKz_.js";function E(u,o,...d){var m=new X(u);j(()=>{const l=o()??null;m.ensure(l,l&&(s=>l(s,...d)))},z)}var Z=q('
Loading...
'),$=q(' '),aa=q('');function na(u,o){Q(o,!0);const d=()=>G(Y,"$page",m),[m,l]=H();let s=B(null),p=B(!0);U(()=>{d().url.pathname.startsWith("/auth/")?v(p,!1):I()});async function I(){var a;const e=localStorage.getItem("token");if(!e){f("/auth/login");return}try{const t=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${e}`}});if(!t.ok){f("/auth/login");return}const c=await t.json();if(v(s,c.data,!0),((a=r(s))==null?void 0:a.role)!=="admin"){f("/auth/dashboard");return}}catch{f("/auth/login")}finally{v(p,!1)}}function L(){localStorage.removeItem("token"),v(s,null),f("/auth/login")}var b=A(),S=x(b);{var T=e=>{var a=Z();h(e,a)},D=e=>{var a=aa(),t=n(a),c=_(n(t),4),k=n(c);{var M=g=>{var y=$(),R=n(y,!0);i(y),W(()=>O(R,r(s).username||r(s).email)),h(g,y)};C(k,g=>{r(s)&&g(M)})}var N=_(k,4);i(c),i(t);var w=_(t,2),P=n(w);E(P,()=>o.children),i(w),i(a),K("click",N,L),h(e,a)},F=e=>{var a=A(),t=x(a);E(t,()=>o.children),h(e,a)};C(S,e=>{var a;r(p)?e(T):((a=r(s))==null?void 0:a.role)==="admin"?e(D,1):e(F,-1)})}h(u,b),V(),l()}J(["click"]);export{na as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/1.Dgii_8lh.js b/backend/cmd/server/embed/_app/immutable/nodes/1.Dgii_8lh.js deleted file mode 100644 index a5bb0fa..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/1.Dgii_8lh.js +++ /dev/null @@ -1 +0,0 @@ -import{a as h,f as g}from"../chunks/CJv7FbHz.js";import{i as l}from"../chunks/DFRBE_Uq.js";import{p as v,a3 as d,a7 as _,a as x,a4 as e,a5 as o,a2 as $}from"../chunks/DtGl34IE.js";import{s as p}from"../chunks/n1byU5WW.js";import{p as m}from"../chunks/CfgL3m1f.js";import{s as k}from"../chunks/RKc8iKz_.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var E=g("

",1);function B(f,n){v(n,!1),l();var t=E(),r=d(t),c=e(r,!0);o(r);var a=$(r,2),u=e(a,!0);o(a),_(()=>{var s;p(c,i.status),p(u,(s=i.error)==null?void 0:s.message)}),h(f,t),x()}export{B as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/10.BvOkMiuT.js b/backend/cmd/server/embed/_app/immutable/nodes/10.BvOkMiuT.js deleted file mode 100644 index b154daf..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/10.BvOkMiuT.js +++ /dev/null @@ -1 +0,0 @@ -import{a as m,f as y}from"../chunks/CJv7FbHz.js";import{p as Z,a0 as _,a1 as I,a8 as aa,s as i,a3 as N,a7 as D,a as ea,a2 as o,a4 as r,a5 as s,g as t,a6 as ta}from"../chunks/DtGl34IE.js";import{s as sa,a as oa}from"../chunks/B3ZK_jYJ.js";import{d as ra,a as w,s as F,e as la}from"../chunks/n1byU5WW.js";import{i as R}from"../chunks/-EcHSJia.js";import{e as ia,i as da}from"../chunks/ecAlPOj8.js";import{s as T,r as U}from"../chunks/e1WBZ7UL.js";import{b as q}from"../chunks/ayyTDfEa.js";import{p as na}from"../chunks/B7kAneMc.js";var va=y("

Loading...

"),ca=y("

No aliases configured yet.

"),ua=y(' '),pa=y('
SourceDestinationActions
'),fa=y(' ',1),ma=y('

Aliases

',1);function Aa(L,O){Z(O,!0);const B=()=>sa(na,"$page",J),[J,M]=oa();let A=_(I([])),S=_(!0),b=_(!1),p=_(I({source:"",destination:""})),l=_("");async function $(a){try{const e=await fetch(`/api/domains/${encodeURIComponent(a)}/aliases`);if(e.ok){const d=await e.json();i(A,d.data||[],!0)}}catch(e){console.error("Failed to load aliases:",e)}finally{i(S,!1)}}async function P(){try{const a=await fetch(`/api/domains/${encodeURIComponent(t(l))}/aliases`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t(p))});if(a.ok)i(b,!1),i(p,{source:"",destination:""},!0),await $(t(l));else{const e=await a.json();alert(e.error||"Failed to create alias")}}catch(a){console.error("Failed to create alias:",a)}}async function G(a){if(confirm("Delete this alias?"))try{await fetch(`/api/domains/${encodeURIComponent(t(l))}/aliases/${a}`,{method:"DELETE"}),await $(t(l))}catch(e){console.error("Failed to delete alias:",e)}}aa(()=>{const a=B().params.name;a&&(i(l,a,!0),$(a))});var j=ma(),C=N(j),z=r(C),H=r(z);s(z);var K=o(z,4);s(C);var E=o(C,2);{var Q=a=>{var e=va();m(a,e)},V=a=>{var e=ca();m(a,e)},W=a=>{var e=pa(),d=o(r(e));ia(d,21,()=>t(A),da,(g,n)=>{var v=ua(),c=r(v),h=r(c,!0);s(c);var f=o(c),k=r(f,!0);s(f);var x=o(f),u=r(x);s(x),s(v),D(()=>{F(h,t(n).source),F(k,t(n).destination)}),w("click",u,()=>G(t(n).id)),m(g,v)}),s(d),s(e),m(a,e)};R(E,a=>{t(S)?a(Q):t(A).length===0?a(V,1):a(W,-1)})}var X=o(E,2);{var Y=a=>{var e=fa(),d=N(e),g=o(d,2),n=o(r(g),2),v=r(n),c=o(r(v));U(c),s(v);var h=o(v,2),f=o(r(h));U(f),s(h);var k=o(h,2),x=r(k);ta(2),s(k),s(n),s(g),D(()=>T(c,"placeholder",`info@${t(l)??""}`)),w("click",d,()=>i(b,!1)),la("submit",n,u=>{u.preventDefault(),P()}),q(c,()=>t(p).source,u=>t(p).source=u),q(f,()=>t(p).destination,u=>t(p).destination=u),w("click",x,()=>i(b,!1)),m(a,e)};R(X,a=>{t(b)&&a(Y)})}D(()=>{T(z,"href",`/domains/${t(l)??""}`),F(H,`← Back to ${t(l)??""}`)}),w("click",K,()=>i(b,!0)),m(L,j),ea(),M()}ra(["click"]);export{Aa as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/11.DnvWFHPj.js b/backend/cmd/server/embed/_app/immutable/nodes/11.DnvWFHPj.js deleted file mode 100644 index 7662206..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/11.DnvWFHPj.js +++ /dev/null @@ -1 +0,0 @@ -import{a as b,f as _}from"../chunks/CJv7FbHz.js";import{p as ot,a0 as w,a1 as M,a8 as rt,s as c,a3 as O,a7 as D,a as lt,a2 as s,a4 as r,a5 as o,g as a,a6 as it}from"../chunks/DtGl34IE.js";import{s as nt,a as dt}from"../chunks/B3ZK_jYJ.js";import{d as ct,a as $,s as q,e as vt}from"../chunks/n1byU5WW.js";import{i as Q}from"../chunks/-EcHSJia.js";import{e as ut,i as pt}from"../chunks/ecAlPOj8.js";import{s as R,r as E}from"../chunks/e1WBZ7UL.js";import{b as N}from"../chunks/ayyTDfEa.js";import{p as mt}from"../chunks/B7kAneMc.js";var ft=_("

Loading...

"),bt=_("

No users configured yet.

"),_t=_(' '),ht=_('
EmailQuotaUsedActions
'),zt=_(' ',1),gt=_('

Users

',1);function Bt(L,P){ot(P,!0);const S=()=>nt(mt,"$page",G),[G,J]=dt();let C=w(M([])),T=w(!0),h=w(!1),i=w(M({email:"",password:"",quota:0})),n=w("");async function F(t){try{const e=await fetch(`/api/domains/${encodeURIComponent(t)}/users`);if(e.ok){const v=await e.json();c(C,v.data||[],!0)}}catch(e){console.error("Failed to load users:",e)}finally{c(T,!1)}}async function K(){try{const t=await fetch(`/api/domains/${encodeURIComponent(a(n))}/users`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a(i))});if(t.ok)c(h,!1),c(i,{email:"",password:"",quota:0},!0),await F(a(n));else{const e=await t.json();alert(e.error||"Failed to create user")}}catch(t){console.error("Failed to create user:",t)}}async function H(t){if(confirm("Delete this user? Mailbox will NOT be deleted."))try{await fetch(`/api/domains/${encodeURIComponent(a(n))}/users/${t}`,{method:"DELETE"}),await F(a(n))}catch(e){console.error("Failed to delete user:",e)}}function j(t){return t===0?"Default":t<1024?t+" B":t<1024*1024?(t/1024).toFixed(1)+" KB":t<1024*1024*1024?(t/1024/1024).toFixed(1)+" MB":(t/1024/1024/1024).toFixed(2)+" GB"}rt(()=>{const t=S().params.name;t&&(c(n,t,!0),F(t))});var A=gt(),B=O(A),y=r(B),V=r(y);o(y);var W=s(y,4);o(B);var I=s(B,2);{var X=t=>{var e=ft();b(t,e)},Y=t=>{var e=bt();b(t,e)},Z=t=>{var e=ht(),v=s(r(e));ut(v,21,()=>a(C),pt,(x,d)=>{var u=_t(),p=r(u),z=r(p,!0);o(p);var m=s(p),g=r(m,!0);o(m);var f=s(m),k=r(f,!0);o(f);var U=s(f),l=r(U);o(U),o(u),D((et,st)=>{q(z,a(d).email),q(g,et),q(k,st)},[()=>j(a(d).quota),()=>j(a(d).used_quota)]),$("click",l,()=>H(a(d).id)),b(x,u)}),o(v),o(e),b(t,e)};Q(I,t=>{a(T)?t(X):a(C).length===0?t(Y,1):t(Z,-1)})}var tt=s(I,2);{var at=t=>{var e=zt(),v=O(e),x=s(v,2),d=s(r(x),2),u=r(d),p=s(r(u));E(p),o(u);var z=s(u,2),m=s(r(z));E(m),o(z);var g=s(z,2),f=s(r(g));E(f),o(g);var k=s(g,2),U=r(k);it(2),o(k),o(d),o(x),D(()=>R(p,"placeholder",`user@${a(n)??""}`)),$("click",v,()=>c(h,!1)),vt("submit",d,l=>{l.preventDefault(),K()}),N(p,()=>a(i).email,l=>a(i).email=l),N(m,()=>a(i).password,l=>a(i).password=l),N(f,()=>a(i).quota,l=>a(i).quota=l),$("click",U,()=>c(h,!1)),b(t,e)};Q(tt,t=>{a(h)&&t(at)})}D(()=>{R(y,"href",`/domains/${a(n)??""}`),q(V,`← Back to ${a(n)??""}`)}),$("click",W,()=>c(h,!0)),b(L,A),lt(),J()}ct(["click"]);export{Bt as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/12.CRx3MqWn.js b/backend/cmd/server/embed/_app/immutable/nodes/12.CRx3MqWn.js deleted file mode 100644 index 2164ff6..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/12.CRx3MqWn.js +++ /dev/null @@ -1 +0,0 @@ -import{a as d,f as m}from"../chunks/CJv7FbHz.js";import{l as Z,c as A,aj as $,t as ee,K as ae,ak as re,al as te,p as se,a0 as g,a1 as oe,a8 as le,a3 as ie,g as s,a as ne,s as c,a2 as v,a4 as f,a5 as u,a7 as U}from"../chunks/DtGl34IE.js";import{d as ve,a as H,s as x}from"../chunks/n1byU5WW.js";import{i as ue}from"../chunks/-EcHSJia.js";import{e as fe,i as pe}from"../chunks/ecAlPOj8.js";import{r as _e}from"../chunks/e1WBZ7UL.js";import{s as ce}from"../chunks/BYrNiJ2z.js";import{b as de}from"../chunks/ayyTDfEa.js";function W(e,t,p=!1){if(e.multiple){if(t==null)return;if(!ae(t))return re();for(var o of e.options)o.selected=t.includes(h(o));return}for(o of e.options){var i=h(o);if(te(i,t)){o.selected=!0;return}}(!p||t!==void 0)&&(e.selectedIndex=-1)}function me(e){var t=new MutationObserver(()=>{W(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ee(()=>{t.disconnect()})}function ge(e,t,p=t){var o=new WeakSet,i=!0;Z(e,"change",n=>{var _=n?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(_),h);else{var b=e.querySelector(_)??e.querySelector("option:not([disabled])");l=b&&h(b)}p(l),e.__value=l,A!==null&&o.add(A)}),$(()=>{var n=t();if(e===document.activeElement){var _=A;if(o.has(_))return}if(W(e,n,i),i&&n===void 0){var l=e.querySelector(":checked");l!==null&&(n=h(l),p(n))}e.__value=n,i=!1}),me(e)}function h(e){return"__value"in e?e.__value:e.value}var he=m("

Loading...

"),be=m('

'),ye=m("

No log entries found.

"),ke=m('
'),we=m('
'),xe=m('

Mail Logs

',1);function Me(e,t){se(t,!0);let p=g(oe([])),o=g(!0),i=g(""),n=g(""),_=g(1);async function l(){c(o,!0),c(i,"");try{const a=await fetch(`/api/logs?hours=${s(_)}&filter=${encodeURIComponent(s(n))}`);if(a.ok){const r=await a.json();c(p,r.data||[],!0)}else c(i,"Failed to load logs")}catch(a){c(i,"Connection error"),console.error("Failed to load logs:",a)}finally{c(o,!1)}}function b(a){const r=a.toLowerCase();return r==="err"||r==="error"?"error":r==="warning"||r==="warn"?"warning":r==="info"?"info":""}le(()=>{l()});var K=xe(),L=ie(K),N=v(f(L),2),q=f(N),y=v(f(q)),F=f(y);F.value=F.__value=1;var S=v(F);S.value=S.__value=6;var C=v(S);C.value=C.__value=24;var O=v(C);O.value=O.__value=48,u(y),u(q);var j=v(q,2),E=v(f(j));_e(E),u(j);var z=v(j,2);u(N),u(L);var B=v(L,2);{var D=a=>{var r=he();d(a,r)},G=a=>{var r=be(),I=f(r,!0);u(r),U(()=>x(I,s(i))),d(a,r)},J=a=>{var r=ye();d(a,r)},Q=a=>{var r=we();fe(r,21,()=>s(p),pe,(I,k)=>{var w=ke(),M=f(w),T=f(M,!0);u(M);var R=v(M,2),V=f(R);u(R);var P=v(R,2),X=f(P,!0);u(P),u(w),U(Y=>{ce(w,1,`log-entry ${Y??""}`,"svelte-1lsf4ps"),x(T,s(k).timestamp),x(V,`[${s(k).priority??""}]`),x(X,s(k).message)},[()=>b(s(k).priority)]),d(I,w)}),u(r),d(a,r)};ue(B,a=>{s(o)?a(D):s(i)?a(G,1):s(p).length===0?a(J,2):a(Q,-1)})}H("change",y,l),ge(y,()=>s(_),a=>c(_,a)),H("keydown",E,a=>a.key==="Enter"&&l()),de(E,()=>s(n),a=>c(n,a)),H("click",z,l),d(e,K),ne()}ve(["change","keydown","click"]);export{Me as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/13.CB7FlS8h.js b/backend/cmd/server/embed/_app/immutable/nodes/13.CB7FlS8h.js deleted file mode 100644 index 1c15ab4..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/13.CB7FlS8h.js +++ /dev/null @@ -1 +0,0 @@ -import{a as i,f as d}from"../chunks/CJv7FbHz.js";import{p as Y,a0 as w,a1 as Z,a8 as $,a3 as ee,a as te,s as u,a2 as o,a4 as s,a5 as r,g as a,a7 as z}from"../chunks/DtGl34IE.js";import{d as ae,a as D,s as l}from"../chunks/n1byU5WW.js";import{i as re}from"../chunks/-EcHSJia.js";import{e as se,i as oe}from"../chunks/ecAlPOj8.js";var ce=d("

Loading...

"),le=d('

'),ie=d("

Queue is empty.

"),ue=d(' '),de=d('
IDSenderRecipientsSizeTimeReasonActions
'),ve=d('

Mail Queue

',1);function pe(B,E){Y(E,!0);let h=w(Z([])),g=w(!0),v=w("");async function n(){u(g,!0),u(v,"");try{const e=await fetch("/api/queue");if(e.ok){const t=await e.json();u(h,t.data||[],!0)}else u(v,"Failed to load queue")}catch(e){u(v,"Connection error"),console.error("Failed to load queue:",e)}finally{u(g,!1)}}async function T(e){try{await fetch(`/api/queue/${e}/requeue`,{method:"POST"}),await n()}catch(t){console.error("Failed to requeue:",t)}}async function j(e){if(confirm("Delete this message from queue?"))try{await fetch(`/api/queue/${e}`,{method:"DELETE"}),await n()}catch(t){console.error("Failed to delete from queue:",t)}}function L(e){return e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/1024/1024).toFixed(1)+" MB"}$(()=>{n()});var Q=ve(),q=ee(Q),M=o(s(q),2);r(q);var y=o(q,2);{var A=e=>{var t=ce();i(e,t)},C=e=>{var t=le(),f=s(t,!0);r(t),z(()=>l(f,a(v))),i(e,t)},I=e=>{var t=ie();i(e,t)},K=e=>{var t=de(),f=o(s(t));se(f,21,()=>a(h),oe,(O,c)=>{var p=ue(),_=s(p),P=s(_,!0);r(_);var m=o(_),G=s(m,!0);r(m);var b=o(m),H=s(b,!0);r(b);var x=o(b),J=s(x,!0);r(x);var F=o(x),N=s(F,!0);r(F);var k=o(F),U=s(k,!0);r(k);var R=o(k),S=s(R),V=o(S,2);r(R),r(p),z((W,X)=>{l(P,a(c).id),l(G,a(c).sender),l(H,W),l(J,X),l(N,a(c).time),l(U,a(c).reason)},[()=>a(c).recipients.join(", "),()=>L(a(c).size)]),D("click",S,()=>T(a(c).id)),D("click",V,()=>j(a(c).id)),i(O,p)}),r(f),r(t),i(e,t)};re(y,e=>{a(g)?e(A):a(v)?e(C,1):a(h).length===0?e(I,2):e(K,-1)})}D("click",M,n),i(B,Q),te()}ae(["click"]);export{pe as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/14.CFDiiGpK.js b/backend/cmd/server/embed/_app/immutable/nodes/14.CFDiiGpK.js deleted file mode 100644 index 0b5a50b..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/14.CFDiiGpK.js +++ /dev/null @@ -1 +0,0 @@ -import{a as r,f as m}from"../chunks/CJv7FbHz.js";import{i as t}from"../chunks/DFRBE_Uq.js";import{o as i}from"../chunks/DR7h53-u.js";import{p as s,a as n}from"../chunks/DtGl34IE.js";import{g as f}from"../chunks/RKc8iKz_.js";var e=m("

Redirecting to domains...

");function l(o,a){s(a,!1),i(()=>{f("/domains")}),t();var p=e();r(o,p),n()}export{l as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/2.BMCUuUxB.js b/backend/cmd/server/embed/_app/immutable/nodes/2.BMCUuUxB.js deleted file mode 100644 index e8be904..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/2.BMCUuUxB.js +++ /dev/null @@ -1 +0,0 @@ -import{a as p,f as n}from"../chunks/CJv7FbHz.js";import{o as L}from"../chunks/DR7h53-u.js";import{p as M,a0 as b,a1 as Q,a2 as o,a3 as B,a as C,s as q,g as l,a4 as s,a5 as t,a6 as i,a7 as G}from"../chunks/DtGl34IE.js";import{s as v}from"../chunks/n1byU5WW.js";import{i as H}from"../chunks/-EcHSJia.js";import{s as I}from"../chunks/BYrNiJ2z.js";var J=n("

Loading...

"),K=n('

Domains

Users

Aliases

Queued Emails

'),N=n("

Dashboard

",1);function X(w,z){M(z,!0);let r=b(Q({totalDomains:0,totalUsers:0,totalAliases:0,queueSize:0})),g=b(!0);L(async()=>{try{const a=await fetch("/api/stats");if(a.ok){const e=await a.json();q(r,e.data,!0)}}catch(a){console.error("Failed to fetch stats:",a)}finally{q(g,!1)}});var m=N(),A=o(B(m),2);{var S=a=>{var e=J();p(a,e)},U=a=>{var e=K(),h=s(e),f=s(h),j=s(f,!0);t(f),i(2),t(h);var c=o(h,2),_=s(c),k=s(_,!0);t(_),i(2),t(c);var u=o(c,2),x=s(u),E=s(x,!0);t(x),i(2),t(u);var d=o(u,2);let y;var D=s(d),F=s(D,!0);t(D),i(2),t(d),t(e),G(()=>{v(j,l(r).totalDomains),v(k,l(r).totalUsers),v(E,l(r).totalAliases),y=I(d,1,"stat-card svelte-1uha8ag",null,y,{warning:l(r).queueSize>10}),v(F,l(r).queueSize)}),p(a,e)};H(A,a=>{l(g)?a(S):a(U,-1)})}p(w,m),C()}export{X as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/3.CFDiiGpK.js b/backend/cmd/server/embed/_app/immutable/nodes/3.CFDiiGpK.js deleted file mode 100644 index 0b5a50b..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/3.CFDiiGpK.js +++ /dev/null @@ -1 +0,0 @@ -import{a as r,f as m}from"../chunks/CJv7FbHz.js";import{i as t}from"../chunks/DFRBE_Uq.js";import{o as i}from"../chunks/DR7h53-u.js";import{p as s,a as n}from"../chunks/DtGl34IE.js";import{g as f}from"../chunks/RKc8iKz_.js";var e=m("

Redirecting to domains...

");function l(o,a){s(a,!1),i(()=>{f("/domains")}),t();var p=e();r(o,p),n()}export{l as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/4.YDL696B2.js b/backend/cmd/server/embed/_app/immutable/nodes/4.YDL696B2.js deleted file mode 100644 index 16b5869..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/4.YDL696B2.js +++ /dev/null @@ -1 +0,0 @@ -import{a as p,f as g}from"../chunks/CJv7FbHz.js";import{o as W}from"../chunks/DR7h53-u.js";import{p as X,a7 as q,g as t,a as Y,a2 as i,a4 as o,a0 as v,a5 as r,a6 as Z,s}from"../chunks/DtGl34IE.js";import{d as aa,a as ea,e as ta,s as B}from"../chunks/n1byU5WW.js";import{i as I}from"../chunks/-EcHSJia.js";import{r as L}from"../chunks/e1WBZ7UL.js";import{b as N}from"../chunks/ayyTDfEa.js";import{g as f}from"../chunks/RKc8iKz_.js";var sa=g("Logged in as "),oa=g('
'),ra=g('
Password changed successfully!
'),ia=g('

Change Password

');function pa(F,J){X(J,!0);let c=null,u=v(""),h=v(""),m=v(""),l=v(""),z=v(!1),n=v(!1);W(async()=>{const a=localStorage.getItem("token");if(!a){await f("/auth/login");return}try{const e=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${a}`}});if(!e.ok){await f("/auth/login");return}c=(await e.json()).data}catch{await f("/auth/login")}});async function M(a){if(a.preventDefault(),s(l,""),t(h)!==t(m)){s(l,"Passwords do not match");return}if(t(h).length<8){s(l,"Password must be at least 8 characters");return}s(n,!0);try{const e=await fetch("/api/auth/change-password",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("token")}`},body:JSON.stringify({oldPassword:t(u),newPassword:t(h)})}),d=await e.json();if(!e.ok){s(l,d.error||"Failed to change password",!0);return}s(z,!0),s(u,""),s(h,""),s(m,"")}catch{s(l,"Connection error")}finally{s(n,!1)}}function G(){localStorage.removeItem("token"),f("/auth/login")}var w=ia(),b=o(w),A=o(b),D=i(o(A),2),E=o(D);{var H=a=>{var e=sa(),d=i(o(e)),V=o(d,!0);r(d),r(e),q(()=>B(V,c.email||c.username)),p(a,e)};I(E,a=>{c&&a(H)})}var K=i(E,2);r(D),r(A),r(b);var O=i(b,2),T=o(O);{var Q=a=>{var e=oa(),d=o(e,!0);r(e),q(()=>B(d,t(l))),p(a,e)};I(T,a=>{t(l)&&a(Q)})}var $=i(T,2);{var R=a=>{var e=ra();p(a,e)};I($,a=>{t(z)&&a(R)})}var _=i($,2),P=o(_),y=i(o(P));L(y),r(P);var k=i(P,2),C=i(o(k));L(C),r(k);var x=i(k,2),S=i(o(x));L(S),r(x);var j=i(x,2),U=o(j,!0);r(j),r(_),Z(2),r(O),r(w),q(()=>{y.disabled=t(n),C.disabled=t(n),S.disabled=t(n),j.disabled=t(n),B(U,t(n)?"Changing...":"Change Password")}),ea("click",K,G),ta("submit",_,M),N(y,()=>t(u),a=>s(u,a)),N(C,()=>t(h),a=>s(h,a)),N(S,()=>t(m),a=>s(m,a)),p(F,w),Y()}aa(["click"]);export{pa as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/5.DHfYhdex.js b/backend/cmd/server/embed/_app/immutable/nodes/5.DHfYhdex.js deleted file mode 100644 index 84e60ea..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/5.DHfYhdex.js +++ /dev/null @@ -1 +0,0 @@ -import{a as n,f as c}from"../chunks/CJv7FbHz.js";import{o as H}from"../chunks/DR7h53-u.js";import{p as J,a as K,a2 as r,a4 as a,s as O,a5 as s,g as T,a0 as V,a7 as g,a3 as W,a6 as X}from"../chunks/DtGl34IE.js";import{d as Y,a as Z,s as i}from"../chunks/n1byU5WW.js";import{i as h}from"../chunks/-EcHSJia.js";import{g as d}from"../chunks/RKc8iKz_.js";var $=c("Logged in as "),aa=c("

Loading...

"),sa=c('
Quota:
'),ta=c('

Account Information

Email:
Username:
Role:

Quick Actions

',1),ea=c('

User Dashboard

');function da(U,B){J(B,!0);let t=null,_=V(!0);H(async()=>{const e=localStorage.getItem("token");if(!e){await d("/auth/login");return}try{const o=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${e}`}});if(!o.ok){await d("/auth/login");return}if(t=(await o.json()).data,(t==null?void 0:t.role)==="admin"){await d("/");return}}catch{await d("/auth/login")}finally{O(_,!1)}});function M(){localStorage.removeItem("token"),d("/auth/login")}var m=ea(),p=a(m),w=r(a(p),2),b=a(w);{var N=e=>{var o=$(),l=r(a(o)),v=a(l,!0);s(l),s(o),g(()=>i(v,t.email||t.username)),n(e,o)};h(b,e=>{t&&e(N)})}var Q=r(b,2);s(w),s(p);var A=r(p,2),S=a(A);{var j=e=>{var o=aa();n(e,o)},z=e=>{var o=ta(),l=W(o),v=r(a(l),2),L=r(a(v),2),C=a(L,!0);s(L),s(v);var u=r(v,2),q=r(a(u),2),D=a(q,!0);s(q),s(u);var f=r(u,2),y=r(a(f),2),E=a(y,!0);s(y),s(f);var F=r(f,2);{var P=x=>{var k=sa(),I=r(a(k),2),R=a(I,!0);s(I),s(k),g(G=>i(R,G),[()=>t.quota>0?(t.quota/1024/1024).toFixed(0)+" MB":"Unlimited"]),n(x,k)};h(F,x=>{t.quota!==void 0&&x(P)})}s(l),X(2),g(()=>{i(C,t.email||"N/A"),i(D,t.username||"N/A"),i(E,t.role)}),n(e,o)};h(S,e=>{T(_)?e(j):t&&e(z,1)})}s(A),s(m),Z("click",Q,M),n(U,m),K()}Y(["click"]);export{da as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/6.BiQ3_GJa.js b/backend/cmd/server/embed/_app/immutable/nodes/6.BiQ3_GJa.js deleted file mode 100644 index b512f8a..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/6.BiQ3_GJa.js +++ /dev/null @@ -1 +0,0 @@ -import{a as v,f}from"../chunks/CJv7FbHz.js";import{a2 as c,a4 as i,g as s,a5 as o,a0 as d,a7 as y,a6 as k,a3 as E,s as r}from"../chunks/DtGl34IE.js";import{s as x,e as O}from"../chunks/n1byU5WW.js";import{i as w}from"../chunks/-EcHSJia.js";import{r as T}from"../chunks/e1WBZ7UL.js";import{b as D}from"../chunks/ayyTDfEa.js";import"../chunks/CfgL3m1f.js";var I=f('
'),J=f('

If an account exists with that email or username, a password reset link has been sent.

Please check your inbox.

',1),N=f(`

Enter your email address or username and we'll send you a link to reset your password.

`,1),U=f('');function V(S){let u=d(""),l=d(""),b=d(!1),n=d(!1);async function L(e){e.preventDefault(),r(l,""),r(n,!0);try{const a=await fetch("/api/auth/forgot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({identifier:s(u)})}),t=await a.json();if(!a.ok){r(l,t.error||"Request failed",!0);return}r(b,!0)}catch{r(l,"Connection error")}finally{r(n,!1)}}var m=U(),g=i(m),_=c(i(g),2);{var P=e=>{var a=I(),t=i(a,!0);o(a),y(()=>x(t,s(l))),v(e,a)};w(_,e=>{s(l)&&e(P)})}var R=c(_,2);{var j=e=>{var a=J();k(2),v(e,a)},q=e=>{var a=N(),t=c(E(a),2),p=i(t),z=c(i(p));T(z),o(p);var h=c(p,2),B=i(h,!0);o(h),o(t),k(2),y(()=>{z.disabled=s(n),h.disabled=s(n),x(B,s(n)?"Sending...":"Send Reset Link")}),O("submit",t,L),D(z,()=>s(u),C=>r(u,C)),v(e,a)};w(R,e=>{s(b)?e(j):e(q,-1)})}o(g),o(m),v(S,m)}export{V as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/7.BEIquz8f.js b/backend/cmd/server/embed/_app/immutable/nodes/7.BEIquz8f.js deleted file mode 100644 index 8e5713c..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/7.BEIquz8f.js +++ /dev/null @@ -1 +0,0 @@ -import{a as y,f as j}from"../chunks/CJv7FbHz.js";import{p as A,a7 as S,g as t,a as D,a2 as i,a4 as s,s as r,a0 as p,a5 as o}from"../chunks/DtGl34IE.js";import{e as F,s as x}from"../chunks/n1byU5WW.js";import{i as J}from"../chunks/-EcHSJia.js";import{r as k}from"../chunks/e1WBZ7UL.js";import{b as C}from"../chunks/ayyTDfEa.js";import{g as I}from"../chunks/RKc8iKz_.js";var L=j('
'),N=j('');function Q(q,E){A(E,!0);let m=p(""),d=p(""),l=p(""),n=p(!1);async function M(){r(n,!0),r(l,"");try{const e=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:t(m),password:t(d)})}),a=await e.json();if(!e.ok){r(l,a.error||"Login failed",!0);return}localStorage.setItem("token",a.data.token),a.data.user.role==="admin"?I("/"):I("/auth/dashboard")}catch{r(l,"Connection error")}finally{r(n,!1)}}var v=N(),g=s(v),h=i(s(g),4);{var O=e=>{var a=L(),T=s(a,!0);o(a),S(()=>x(T,t(l))),y(e,a)};J(h,e=>{t(l)&&e(O)})}var u=i(h,2),c=s(u),_=i(s(c));k(_),o(c);var f=i(c,2),w=i(s(f));k(w),o(f);var b=i(f,4),P=s(b,!0);o(b),o(u),o(g),o(v),S(()=>{b.disabled=t(n),x(P,t(n)?"Signing in...":"Sign In")}),F("submit",u,e=>{e.preventDefault(),M()}),C(_,()=>t(m),e=>r(m,e)),C(w,()=>t(d),e=>r(d,e)),y(q,v),D()}export{Q as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/8.D4QctIPu.js b/backend/cmd/server/embed/_app/immutable/nodes/8.D4QctIPu.js deleted file mode 100644 index 19836cd..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/8.D4QctIPu.js +++ /dev/null @@ -1 +0,0 @@ -import{a as m,f}from"../chunks/CJv7FbHz.js";import{p as K,a0 as w,a1 as j,a8 as Q,a3 as R,a as V,s as c,a2 as r,a4 as s,a5 as e,g as o,a6 as W,a7 as X}from"../chunks/DtGl34IE.js";import{d as Y,a as h,e as Z,s as C}from"../chunks/n1byU5WW.js";import{i as L}from"../chunks/-EcHSJia.js";import{e as $,i as aa}from"../chunks/ecAlPOj8.js";import{r as ta,s as ea}from"../chunks/e1WBZ7UL.js";import{b as sa}from"../chunks/ayyTDfEa.js";var oa=f("

Loading...

"),ra=f("

No domains configured yet.

"),la=f(' '),ia=f('
DomainUsersAliasesActions
'),ca=f(''),na=f('

Domains

',1);function ha(N,O){K(O,!0);let _=w(j([])),A=w(!0),p=w(!1),b=w(j({name:""}));async function g(){try{const a=await fetch("/api/domains");if(a.ok){const t=await a.json();c(_,t.data||[],!0)}}catch(a){console.error("Failed to load domains:",a)}finally{c(A,!1)}}async function P(){try{(await fetch("/api/domains",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(b))})).ok&&(c(p,!1),c(b,{name:""},!0),await g())}catch(a){console.error("Failed to create domain:",a)}}async function S(a){if(confirm("Delete this domain? Users and aliases will be deleted."))try{await fetch(`/api/domains/${a}`,{method:"DELETE"}),await g()}catch(t){console.error("Failed to delete domain:",t)}}Q(()=>{g()});var E=na(),D=R(E),U=r(s(D),2);e(D);var F=r(D,2);{var q=a=>{var t=oa();m(a,t)},J=a=>{var t=ra();m(a,t)},M=a=>{var t=ia(),n=r(s(t));$(n,21,()=>o(_),aa,(u,l)=>{var d=la(),v=s(d),y=s(v),i=s(y,!0);e(y),e(v);var k=r(v),G=s(k,!0);e(k);var x=r(k),H=s(x,!0);e(x);var T=r(x),I=s(T);e(T),e(d),X(()=>{ea(y,"href",`/domains/${o(l).name??""}/users`),C(i,o(l).name),C(G,o(l).userCount),C(H,o(l).aliasCount)}),h("click",I,()=>S(o(l).id)),m(u,d)}),e(n),e(t),m(a,t)};L(F,a=>{o(A)?a(q):o(_).length===0?a(J,1):a(M,-1)})}var z=r(F,2);{var B=a=>{var t=ca(),n=s(t),u=r(s(n),2),l=s(u),d=r(s(l));ta(d),e(l);var v=r(l,2),y=s(v);W(2),e(v),e(u),e(n),e(t),h("click",t,()=>c(p,!1)),h("click",n,i=>i.stopPropagation()),Z("submit",u,i=>{i.preventDefault(),P()}),sa(d,()=>o(b).name,i=>o(b).name=i),h("click",y,()=>c(p,!1)),m(a,t)};L(z,a=>{o(p)&&a(B)})}h("click",U,()=>c(p,!0)),m(N,E),V()}Y(["click"]);export{ha as component}; diff --git a/backend/cmd/server/embed/_app/immutable/nodes/9.DflEy3LG.js b/backend/cmd/server/embed/_app/immutable/nodes/9.DflEy3LG.js deleted file mode 100644 index 2ac9188..0000000 --- a/backend/cmd/server/embed/_app/immutable/nodes/9.DflEy3LG.js +++ /dev/null @@ -1 +0,0 @@ -import{c as J,a as i,f as c}from"../chunks/CJv7FbHz.js";import{p as K,a8 as M,a3 as D,a as N,s as m,a0 as d,g as e,a4 as t,a5 as r,a7 as y,a2 as _,a6 as C}from"../chunks/DtGl34IE.js";import{s as O,a as P}from"../chunks/B3ZK_jYJ.js";import{s as p}from"../chunks/n1byU5WW.js";import{i as Q}from"../chunks/-EcHSJia.js";import{s as $}from"../chunks/e1WBZ7UL.js";import{p as S}from"../chunks/B7kAneMc.js";var T=c("

Loading...

"),V=c('

'),W=c(' ',1),X=c("

Domain not found

");function oa(w,U){K(U,!0);const j=()=>O(S,"$page",A),[A,B]=P();let o=d(null),u=d(!0),n=d("");async function F(a){try{const s=await fetch(`/api/domains/${encodeURIComponent(a)}`);if(s.ok){const l=await s.json();m(o,l.data,!0)}else m(n,"Domain not found")}catch{m(n,"Failed to load domain")}finally{m(u,!1)}}M(()=>{const a=j().params.name;a&&F(a)});var h=J(),I=D(h);{var L=a=>{var s=T();i(a,s)},R=a=>{var s=V(),l=t(s,!0);r(s),y(()=>p(l,e(n))),i(a,s)},q=a=>{var s=W(),l=D(s),x=_(t(l),2),E=t(x,!0);r(x),r(l);var b=_(l,2),v=t(b),g=t(v),G=t(g,!0);r(g),C(2),r(v);var f=_(v,2),k=t(f),H=t(k,!0);r(k),C(2),r(f),r(b),y(()=>{p(E,e(o).name),$(v,"href",`/domains/${e(o).name??""}/users`),p(G,e(o).userCount),$(f,"href",`/domains/${e(o).name??""}/aliases`),p(H,e(o).aliasCount)}),i(a,s)},z=a=>{var s=X();i(a,s)};Q(I,a=>{e(u)?a(L):e(n)?a(R,1):e(o)?a(q,2):a(z,-1)})}i(w,h),N(),B()}export{oa as component}; diff --git a/backend/cmd/server/embed/_app/version.json b/backend/cmd/server/embed/_app/version.json index 1afd2af..f1bcdd4 100644 --- a/backend/cmd/server/embed/_app/version.json +++ b/backend/cmd/server/embed/_app/version.json @@ -1 +1 @@ -{"version":"1774129207705"} \ No newline at end of file +{"version":"1774133205006"} \ No newline at end of file diff --git a/backend/cmd/server/embed/index.html b/backend/cmd/server/embed/index.html index be50b17..968c4ad 100644 --- a/backend/cmd/server/embed/index.html +++ b/backend/cmd/server/embed/index.html @@ -4,32 +4,32 @@ - - - - - - - - - - - + + + + + + + + + + +
@@ -62,8 +86,8 @@ diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 430948d..9134fed 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -8,10 +8,6 @@ queueSize: number; } - interface ApiResponse { - data: Stats; - } - let stats = $state({ totalDomains: 0, totalUsers: 0, @@ -20,12 +16,19 @@ }); let loading = $state(true); + async function fetchWithAuth(url: string) { + const token = localStorage.getItem('token'); + const res = await fetch(url, { + headers: { Authorization: `Bearer ${token}` } + }); + return res.json(); + } + onMount(async () => { try { - const res = await fetch('/api/stats'); - if (res.ok) { - const json: ApiResponse = await res.json(); - stats = json.data; + const statsRes = await fetchWithAuth('/api/stats'); + if (statsRes.data) { + stats = statsRes.data; } } catch (e) { console.error('Failed to fetch stats:', e); diff --git a/frontend/src/routes/domains/+page.svelte b/frontend/src/routes/domains/+page.svelte index 97177d4..9779d14 100644 --- a/frontend/src/routes/domains/+page.svelte +++ b/frontend/src/routes/domains/+page.svelte @@ -6,20 +6,42 @@ aliasCount: number; } + interface UserInfo { + id: number; + username: string; + role: string; + domains: string[]; + } + let domains = $state([]); + let user = $state(null); let loading = $state(true); let showModal = $state(false); let newDomain = $state({ name: '' }); - async function loadDomains() { + async function fetchWithAuth(url: string) { + const token = localStorage.getItem('token'); + const res = await fetch(url, { + headers: { Authorization: `Bearer ${token}` } + }); + return res.json(); + } + + async function loadData() { try { - const res = await fetch('/api/domains'); - if (res.ok) { - const data = await res.json(); - domains = data.data || []; + const [domainsRes, userRes] = await Promise.all([ + fetchWithAuth('/api/domains'), + fetchWithAuth('/api/auth/me') + ]); + + if (domainsRes.data) { + domains = domainsRes.data || []; + } + if (userRes.data) { + user = userRes.data; } } catch (e) { - console.error('Failed to load domains:', e); + console.error('Failed to load data:', e); } finally { loading = false; } @@ -29,13 +51,13 @@ try { const res = await fetch('/api/domains', { method: 'POST', - headers: { 'Content-Type': 'application/json' }, + headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${localStorage.getItem('token')}` }, body: JSON.stringify(newDomain) }); if (res.ok) { showModal = false; newDomain = { name: '' }; - await loadDomains(); + await loadData(); } } catch (e) { console.error('Failed to create domain:', e); @@ -45,26 +67,48 @@ async function deleteDomain(id: number) { if (!confirm('Delete this domain? Users and aliases will be deleted.')) return; try { - await fetch(`/api/domains/${id}`, { method: 'DELETE' }); - await loadDomains(); + await fetch(`/api/domains/${id}`, { + method: 'DELETE', + headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } + }); + await loadData(); } catch (e) { console.error('Failed to delete domain:', e); } } - $effect(() => { loadDomains(); }); + function isAdmin() { + return user?.role === 'admin'; + } + + $effect(() => { loadData(); });

Domains

- + {#if isAdmin()} + + {/if}
+{#if user && !isAdmin() && user.domains.length > 0} +

Your Domains

+
+ {#each user.domains as domainName} + + {domainName} + Manage → + + {/each} +
+{/if} + {#if loading}

Loading...

-{:else if domains.length === 0} +{:else if isAdmin() && domains.length === 0}

No domains configured yet.

-{:else} +{:else if isAdmin()} +

All Domains

@@ -90,20 +134,19 @@ {/if} {#if showModal} -