|
|
function En(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function _n(...e){const t=(e,t)=>n=>e(t(n)),n=Array.from(e).reverse().reduce((e,n)=>e?t(e,n.encode):n.encode,void 0),r=e.reduce((e,n)=>e?t(e,n.decode):n.decode,void 0);return{encode:n,decode:r}}function $n(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map(t=>{if(En(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]})},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map(t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})}}}function kn(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function An(e,t="="){if(En(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function Bn(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function Sn(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let r=0;const s=[],o=Array.from(e);for(o.forEach(e=>{if(En(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)});;){let e=0,i=!0;for(let s=r;s<o.length;s++){const l=o[s],a=t*e+l;if(!Number.isSafeInteger(a)||t*e/t!==e||a-l!==t*e)throw new Error("convertRadix: carry overflow");if(e=a%n,o[s]=Math.floor(a/n),!Number.isSafeInteger(o[s])||o[s]*n+e!==a)throw new Error("convertRadix: carry overflow");i&&(o[s]?i=!1:r=s)}if(s.push(e),i)break}for(let t=0;t<e.length-1&&0===e[t];t++)s.push(0);return s.reverse()}mn.verifyEvent;const Cn=(e,t)=>t?Cn(t,e%t):e,In=(e,t)=>e+(t-Cn(e,t));function Ln(e,t,n,r){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(In(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${In(t,n)}`);let s=0,o=0;const i=2**n-1,l=[];for(const r of e){if(En(r),r>=2**t)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(s=s<<t|r,o+t>32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)l.push((s>>o-n&i)>>>0);s&=2**o-1}if(s=s<<n-o&i,!r&&o>=t)throw new Error("Excess padding");if(!r&&s)throw new Error(`Non-zero padding: ${s}`);return r&&o>0&&l.push(s>>>0),l}function qn(e,t=!1){if(En(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(In(8,e)>32||In(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return Ln(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(Ln(n,e,8,t))}}}function Un(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}const Tn=_n(qn(4),$n("0123456789ABCDEF"),kn("")),Nn=_n(qn(5),$n("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),An(5),kn(""));_n(qn(5),$n("0123456789ABCDEFGHIJKLMNOPQRSTUV"),An(5),kn("")),_n(qn(5),$n("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),kn(""),Bn(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const On=_n(qn(6),$n("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),An(6),kn("")),Rn=_n(qn(6),$n("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),An(6),kn("")),zn=e=>{return _n((En(t=58),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return Sn(Array.from(e),256,t)},decode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(Sn(e,t,256))}}),$n(e),kn(""));var t},jn=zn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");zn("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),zn("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const Pn=[0,2,3,5,6,7,9,10,11],Dn={encode(e){let t="";for(let n=0;n<e.length;n+=8){const r=e.subarray(n,n+8);t+=jn.encode(r).padStart(Pn[r.length],"1")}return t},decode(e){let t=[];for(let n=0;n<e.length;n+=11){const r=e.slice(n,n+11),s=Pn.indexOf(r.length),o=jn.decode(r);for(let e=0;e<o.length-s;e++)if(0!==o[e])throw new Error("base58xmr: wrong padding");t=t.concat(Array.from(o.slice(o.length-s)))}return Uint8Array.from(t)}},Hn=_n($n("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),kn("")),Fn=[996825010,642813549,513874426,1027748829,705979059];function Vn(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Fn.length;e++)1==(t>>e&1)&&(n^=Fn[e]);return n}function Kn(e,t,n=1){const r=e.length;let s=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);s=Vn(s)^n>>5}s=Vn(s);for(let t=0;t<r;t++)s=Vn(s)^31&e.charCodeAt(t);for(let e of t)s=Vn(s)^e;for(let e=0;e<6;e++)s=Vn(s);return s^=n,Hn.encode(Ln([s%2**30],30,5,!1))}function Mn(e){const t="bech32"===e?1:734539939,n=qn(5),r=n.decode,s=n.encode,o=Un(r);function i(e,n=90){if("string"!=typeof e)throw new Error("bech32.decode input should be string, not "+typeof e);if(e.length<8||!1!==n&&e.length>n)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=(e=r).lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=e.slice(0,s),i=e.slice(s+1);if(i.length<6)throw new Error("Data must be at least 6 characters long");const l=Hn.decode(i).slice(0,-6),a=Kn(o,l,t);if(!i.endsWith(a))throw new Error(`Invalid checksum in ${e}: expected "${a}"`);return{prefix:o,words:l}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const s=e.length+7+n.length;if(!1!==r&&s>r)throw new TypeError(`Length ${s} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${Hn.encode(n)}${Kn(e,n,t)}`},decode:i,decodeToBytes:function(e){const{prefix:t,words:n}=i(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:Un(i),fromWords:r,fromWordsUnsafe:o,toWords:s}}const Zn=Mn("bech32");Mn("bech32m");const Wn={utf8:{encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},hex:_n(qn(4),$n("0123456789abcdef"),kn(""),Bn(e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),base16:Tn,base32:Nn,base64:On,base64url:Rn,base58:jn,base58xmr:Dn};Object.keys(Wn).join(", ");var Gn=new TextDecoder("utf-8");new TextEncoder;function Yn(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],s=n.slice(2,2+r);if(n=n.slice(2+r),s.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(s)}return t}function Jn(e){return Qn("npub",function(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(t/2);for(let t=0;t<n.length;t++){const r=2*t,s=e.slice(r,r+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");n[t]=o}return n}(e))}function Qn(e,t){return function(e,t){let n=Zn.toWords(t);return Zn.encode(e,n,5e3)}(e,t)}const{window:Xn}=a;function er(e){let t,n,s,o,i,l,a,f,p,b,v,x,E,_,$,A,B,S;function C(e,t){return"extension"===e[2]?nr:tr}let I=C(e),L=I(e),q=e[5]&&sr(e),U=e[6]&&or(e);return{c(){t=h("div"),n=h("div"),s=h("div"),o=h("h2"),o.textContent="Login to Launcher Admin",i=g(),l=h("button"),l.textContent="×",a=g(),f=h("div"),p=h("div"),b=h("button"),b.textContent="Extension",v=g(),x=h("button"),x.textContent="Nsec",E=g(),_=h("div"),L.c(),$=g(),q&&q.c(),A=g(),U&&U.c(),w(o,"class","svelte-rhbu32"),w(l,"class","close-btn svelte-rhbu32"),w(s,"class","modal-header svelte-rhbu32"),w(b,"class","tab-btn svelte-rhbu32"),k(b,"active","extension"===e[2]),w(x,"class","tab-btn svelte-rhbu32"),k(x,"active","nsec"===e[2]),w(p,"class","tabs svelte-rhbu32"),w(_,"class","tab-content svelte-rhbu32"),w(f,"class","tab-container svelte-rhbu32"),w(n,"class","modal svelte-rhbu32"),k(n,"dark-theme",e[1]),w(t,"class","modal-overlay svelte-rhbu32"),w(t,"role","button"),w(t,"tabindex","0")},m(r,d){u(r,t,d),c(t,n),c(n,s),c(s,o),c(s,i),c(s,l),c(n,a),c(n,f),c(f,p),c(p,b),c(p,v),c(p,x),c(f,E),c(f,_),L.m(_,null),c(_,$),q&&q.m(_,null),c(_,A),U&&U.m(_,null),B||(S=[y(l,"click",e[8]),y(b,"click",e[16]),y(x,"click",e[17]),y(n,"click",m(e[14])),y(n,"keydown",m(e[15])),y(t,"click",e[8]),y(t,"keydown",e[19])],B=!0)},p(e,t){4&t&&k(b,"active","extension"===e[2]),4&t&&k(x,"active","nsec"===e[2]),I===(I=C(e))&&L?L.p(e,t):(L.d(1),L=I(e),L&&(L.c(),L.m(_,$))),e[5]?q?q.p(e,t):(q=sr(e),q.c(),q.m(_,A)):q&&(q.d(1),q=null),e[6]?U?U.p(e,t):(U=or(e),U.c(),U.m(_,null)):U&&(U.d(1),U=null),2&t&&k(n,"dark-theme",e[1])},d(e){e&&d(t),L.d(),q&&q.d(),U&&U.d(),B=!1,r(S)}}}function tr(e){let t,n,s,o,i,l,a,f,b,m,E,_,$,k,A=e[4]?"Logging in...":"Login with Nsec",B=e[7]&&rr(e);return{c(){t=h("div"),n=h("p"),n.textContent="Enter your nsec or generate a new key pair.",s=g(),o=h("button"),i=p("Generate New Key"),l=g(),B&&B.c(),a=g(),f=h("input"),b=g(),m=h("button"),E=p(A),w(n,"class","svelte-rhbu32"),w(o,"class","generate-btn svelte-rhbu32"),o.disabled=e[4],w(f,"type","password"),w(f,"placeholder","nsec1..."),f.disabled=e[4],w(f,"class","nsec-input svelte-rhbu32"),w(m,"class","login-btn svelte-rhbu32"),m.disabled=_=e[4]||!e[3].trim(),w(t,"class","nsec-login svelte-rhbu32")},m(r,d){u(r,t,d),c(t,n),c(t,s),c(t,o),c(o,i),c(t,l),B&&B.m(t,null),c(t,a),c(t,f),x(f,e[3]),c(t,b),c(t,m),c(m,E),$||(k=[y(o,"click",e[10]),y(f,"input",e[18]),y(m,"click",e[12])],$=!0)},p(e,n){16&n&&(o.disabled=e[4]),e[7]?B?B.p(e,n):(B=rr(e),B.c(),B.m(t,a)):B&&(B.d(1),B=null),16&n&&(f.disabled=e[4]),8&n&&f.value!==e[3]&&x(f,e[3]),16&n&&A!==(A=e[4]?"Logging in...":"Login with Nsec")&&v(E,A),24&n&&_!==(_=e[4]||!e[3].trim())&&(m.disabled=_)},d(e){e&&d(t),B&&B.d(),$=!1,r(k)}}}function nr(e){let t,n,r,s,o,i,l,a=e[4]?"Connecting...":"Login with Extension";return{c(){t=h("div"),n=h("p"),n.textContent="Login using a NIP-07 browser extension like nos2x or Alby.",r=g(),s=h("button"),o=p(a),w(n,"class","svelte-rhbu32"),w(s,"class","login-btn svelte-rhbu32"),s.disabled=e[4],w(t,"class","extension-login svelte-rhbu32")},m(a,d){u(a,t,d),c(t,n),c(t,r),c(t,s),c(s,o),i||(l=y(s,"click",e[11]),i=!0)},p(e,t){16&t&&a!==(a=e[4]?"Connecting...":"Login with Extension")&&v(o,a),16&t&&(s.disabled=e[4])},d(e){e&&d(t),i=!1,l()}}}function rr(e){let t,n,r,s,o;return{c(){t=h("div"),n=h("label"),n.textContent="Your new public key (npub):",r=g(),s=h("code"),o=p(e[7]),w(n,"class","svelte-rhbu32"),w(s,"class","svelte-rhbu32"),w(t,"class","generated-info svelte-rhbu32")},m(e,i){u(e,t,i),c(t,n),c(t,r),c(t,s),c(s,o)},p(e,t){128&t&&v(o,e[7])},d(e){e&&d(t)}}}function sr(e){let t,n;return{c(){t=h("div"),n=p(e[5]),w(t,"class","message error-message svelte-rhbu32")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t&&v(n,e[5])},d(e){e&&d(t)}}}function or(e){let t,n;return{c(){t=h("div"),n=p(e[6]),w(t,"class","message success-message svelte-rhbu32")},m(e,r){u(e,t,r),c(t,n)},p(e,t){64&t&&v(n,e[6])},d(e){e&&d(t)}}}function ir(t){let n,r,s,o=t[0]&&er(t);return{c(){o&&o.c(),n=b()},m(e,i){o&&o.m(e,i),u(e,n,i),r||(s=y(Xn,"keydown",t[13]),r=!0)},p(e,[t]){e[0]?o?o.p(e,t):(o=er(e),o.c(),o.m(n.parentNode,n)):o&&(o.d(1),o=null)},i:e,o:e,d(e){e&&d(n),o&&o.d(e),r=!1,s()}}}function lr(e,t,n){const r=I();let{showModal:s=!1}=t,{isDarkTheme:o=!1}=t,i="extension",l="",a=!1,c="",u="",d="",f="";function h(){n(0,s=!1),n(3,l=""),n(5,c=""),n(6,u=""),d="",n(7,f=""),r("close")}function p(e){n(2,i=e),n(5,c=""),n(6,u=""),d="",n(7,f="")}async function g(){n(4,a=!0),n(5,c=""),n(6,u="");try{if(!l.trim())throw new Error("Please enter your nsec");const e=l.trim();let t;try{t=function(e){let{prefix:t,words:n}=Zn.decode(e,5e3),r=new Uint8Array(Zn.fromWords(n));switch(t){case"nprofile":{let e=Yn(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:Jt(e[0][0]),relays:e[1]?e[1].map(e=>Gn.decode(e)):[]}}}case"nevent":{let e=Yn(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:Jt(e[0][0]),relays:e[1]?e[1].map(e=>Gn.decode(e)):[],author:e[2]?.[0]?Jt(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(Jt(e[3][0]),16):void 0}}}case"naddr":{let e=Yn(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:Gn.decode(e[0][0]),pubkey:Jt(e[2][0]),kind:parseInt(Jt(e[3][0]),16),relays:e[1]?e[1].map(e=>Gn.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:Jt(r)};default:throw new Error(`unknown prefix ${t}`)}}(e)}catch{throw new Error("Invalid nsec format")}if("nsec"!==t.type)throw new Error("Please enter an nsec (private key)");const s=t.data,o=vn(s),i={getPublicKey:async()=>o,signEvent:async e=>xn(e,s)};n(6,u="Successfully logged in!"),r("login",{method:"nsec",pubkey:o,privateKey:e,signer:i}),setTimeout(h,500)}catch(e){n(5,c=e.message)}finally{n(4,a=!1)}}return e.$$set=e=>{"showModal"in e&&n(0,s=e.showModal),"isDarkTheme"in e&&n(1,o=e.isDarkTheme)},[s,o,i,l,a,c,u,f,h,p,async function(){n(5,c=""),n(6,u="");try{const e=wn(),t=Qn("nsec",e),r=Jn(vn(e));d=t,n(7,f=r),n(3,l=t),n(6,u="New key generated!")}catch(e){n(5,c="Failed to generate key: "+e.message)}},async function(){n(4,a=!0),n(5,c=""),n(6,u="");try{if(!window.nostr)throw new Error("No Nostr extension found. Please install nos2x or Alby.");const e=await window.nostr.getPublicKey();e&&(n(6,u="Successfully logged in with extension!"),r("login",{method:"extension",pubkey:e,signer:window.nostr}),setTimeout(h,500))}catch(e){n(5,c=e.message)}finally{n(4,a=!1)}},g,function(e){"Escape"===e.key&&h(),"Enter"===e.key&&"nsec"===i&&g()},function(t){L.call(this,e,t)},function(t){L.call(this,e,t)},()=>p("extension"),()=>p("nsec"),function(){l=this.value,n(3,l)},e=>"Escape"===e.key&&h()]}class ar extends te{constructor(e){super(),ee(this,e,lr,ir,o,{showModal:0,isDarkTheme:1})}}const cr=[];function ur(t,n=e){let r;const s=new Set;function i(e){if(o(t,e)&&(t=e,r)){const e=!cr.length;for(const e of s)e[1](),cr.push(e,t);if(e){for(let e=0;e<cr.length;e+=2)cr[e][0](cr[e+1]);cr.length=0}}}function l(e){i(e(t))}return{set:i,update:l,subscribe:function(o,a=e){const c=[o,a];return s.add(c),1===s.size&&(r=n(i,l)||e),o(t),()=>{s.delete(c),0===s.size&&r&&(r(),r=null)}}}}const dr=ur(!1),fr=ur(""),hr=ur(null),pr=ur(""),gr=ur(null),br=ur(null),yr=ur(null),mr=ur(!1),wr=ur("");async function vr(e,t={},n,r){const s=`${window.location.origin}${e}`,o=t.method||"GET",i=await async function(e,t,n,r){if(!e||!t)return null;try{const t={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",r],["method",n.toUpperCase()]],content:""},s=await e.signEvent(t),o=JSON.stringify(s);return btoa(o).replace(/\+/g,"-").replace(/\//g,"_")}catch(e){return console.error("createNIP98Auth error:",e),null}}(n,r,o,s),l={...t.headers};return i&&(l.Authorization=`Nostr ${i}`),fetch(s,{...t,headers:l})}async function xr(e,t,n,r){const s=await vr("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version:n,urls:r})},e,t);if(!s.ok){const e=await s.json();throw new Error(e.message||`Update failed: ${s.statusText}`)}return s.json()}async function Er(e,t){const n=await vr("/api/restart",{method:"POST"},e,t);if(!n.ok)throw new Error(`Restart failed: ${n.statusText}`);return n.json()}function _r(e){let t,n,r,s,o,i=e[0].pid+"";return{c(){t=h("div"),n=h("span"),n.textContent="PID:",r=g(),s=h("span"),o=p(i),w(n,"class","label svelte-xh5u5u"),w(s,"class","value svelte-xh5u5u"),w(t,"class","detail-row svelte-xh5u5u")},m(e,i){u(e,t,i),c(t,n),c(t,r),c(t,s),c(s,o)},p(e,t){1&t&&i!==(i=e[0].pid+"")&&v(o,i)},d(e){e&&d(t)}}}function $r(e){let t,n,r,s,o,i=e[0].restarts+"";return{c(){t=h("div"),n=h("span"),n.textContent="Restarts:",r=g(),s=h("span"),o=p(i),w(n,"class","label svelte-xh5u5u"),w(s,"class","value warning svelte-xh5u5u"),w(t,"class","detail-row svelte-xh5u5u")},m(e,i){u(e,t,i),c(t,n),c(t,r),c(t,s),c(s,o)},p(e,t){1&t&&i!==(i=e[0].restarts+"")&&v(o,i)},d(e){e&&d(t)}}}function kr(t){let n,r,s,o,i,l,a,f,b,y,m,x,_,$,k,A,B,S,C,I,L,q,U=Br(t[0].status)+"",T=t[0].name+"",N=t[0].status+"",O=t[0].binary+"",R=t[0].pid>0&&_r(t),z=t[0].restarts>0&&$r(t);return{c(){n=h("div"),r=h("div"),s=h("span"),o=p(U),i=g(),l=h("span"),a=p(T),f=g(),b=h("div"),y=h("div"),m=h("span"),m.textContent="Status:",x=g(),_=h("span"),$=p(N),k=g(),R&&R.c(),A=g(),B=h("div"),S=h("span"),S.textContent="Binary:",C=g(),I=h("span"),L=p(O),q=g(),z&&z.c(),w(s,"class","status-indicator svelte-xh5u5u"),E(s,"color",Ar(t[0].status)),w(l,"class","process-name svelte-xh5u5u"),w(r,"class","process-header svelte-xh5u5u"),w(m,"class","label svelte-xh5u5u"),w(_,"class","value svelte-xh5u5u"),E(_,"color",Ar(t[0].status)),w(y,"class","detail-row svelte-xh5u5u"),w(S,"class","label svelte-xh5u5u"),w(I,"class","value binary svelte-xh5u5u"),w(B,"class","detail-row svelte-xh5u5u"),w(b,"class","process-details svelte-xh5u5u"),w(n,"class","process-card svelte-xh5u5u")},m(e,t){u(e,n,t),c(n,r),c(r,s),c(s,o),c(r,i),c(r,l),c(l,a),c(n,f),c(n,b),c(b,y),c(y,m),c(y,x),c(y,_),c(_,$),c(b,k),R&&R.m(b,null),c(b,A),c(b,B),c(B,S),c(B,C),c(B,I),c(I,L),c(b,q),z&&z.m(b,null)},p(e,[t]){1&t&&U!==(U=Br(e[0].status)+"")&&v(o,U),1&t&&E(s,"color",Ar(e[0].status)),1&t&&T!==(T=e[0].name+"")&&v(a,T),1&t&&N!==(N=e[0].status+"")&&v($,N),1&t&&E(_,"color",Ar(e[0].status)),e[0].pid>0?R?R.p(e,t):(R=_r(e),R.c(),R.m(b,A)):R&&(R.d(1),R=null),1&t&&O!==(O=e[0].binary+"")&&v(L,O),e[0].restarts>0?z?z.p(e,t):(z=$r(e),z.c(),z.m(b,null)):z&&(z.d(1),z=null)},i:e,o:e,d(e){e&&d(n),R&&R.d(),z&&z.d()}}}function Ar(e){switch(e){case"running":return"var(--success)";case"stopped":default:return"var(--muted-color)";case"crashed":return"var(--error)"}}function Br(e){switch(e){case"running":return"●";case"stopped":return"○";case"crashed":return"✗";default:return"?"}}function Sr(e,t,n){let{process:r}=t;return e.$$set=e=>{"process"in e&&n(0,r=e.process)},[r]}class Cr extends te{constructor(e){super(),ee(this,e,Sr,kr,o,{process:0})}}function Ir(e,t,n){const r=e.slice();return r[10]=t[n],r}function Lr(e){let t,n,r,s;return{c(){t=h("button"),n=p("Start Services"),w(t,"class","start-btn svelte-ehjgxg"),t.disabled=e[0]},m(o,i){u(o,t,i),c(t,n),r||(s=y(t,"click",e[5]),r=!0)},p(e,n){1&n&&(t.disabled=e[0])},d(e){e&&d(t),r=!1,s()}}}function qr(e){let t,n,s,o,i,l,a;return{c(){t=h("button"),n=p("Stop Services"),s=g(),o=h("button"),i=p("Restart All"),w(t,"class","stop-btn svelte-ehjgxg"),t.disabled=e[0],w(o,"class","restart-btn svelte-ehjgxg"),o.disabled=e[0]},m(r,d){u(r,t,d),c(t,n),u(r,s,d),u(r,o,d),c(o,i),l||(a=[y(t,"click",e[6]),y(o,"click",e[4])],l=!0)},p(e,n){1&n&&(t.disabled=e[0]),1&n&&(o.disabled=e[0])},d(e){e&&(d(t),d(s),d(o)),l=!1,r(a)}}}function Ur(e){let t,n;return{c(){t=h("div"),n=p(e[1]),w(t,"class","error-banner svelte-ehjgxg")},m(e,r){u(e,t,r),c(t,n)},p(e,t){2&t&&v(n,e[1])},d(e){e&&d(t)}}}function Tr(t){let n;return{c(){n=h("div"),n.textContent="Loading status...",w(n,"class","loading svelte-ehjgxg")},m(e,t){u(e,n,t)},p:e,i:e,o:e,d(e){e&&d(n)}}}function Nr(e){let t,n,r,s,o,i,l,a,b,y,m,x,E,_,$,A,B,S,C,I,L,q,U,T,N,O,R,z,j,P=e[2].services_running?"Running":"Stopped",D=(e[2].version||"unknown")+"",H=e[2].uptime+"",F=(e[2].processes?.length||0)+"",V=G(e[2].processes||[]),Y=[];for(let t=0;t<V.length;t+=1)Y[t]=Or(Ir(e,V,t));const J=e=>W(Y[e],1,1,()=>{Y[e]=null});return{c(){t=h("div"),n=h("div"),r=h("span"),r.textContent="Status",s=g(),o=h("span"),i=p(P),l=g(),a=h("div"),b=h("span"),b.textContent="Version",y=g(),m=h("span"),x=p(D),E=g(),_=h("div"),$=h("span"),$.textContent="Uptime",A=g(),B=h("span"),S=p(H),C=g(),I=h("div"),L=h("span"),L.textContent="Processes",q=g(),U=h("span"),T=p(F),N=g(),O=h("h3"),O.textContent="Managed Processes",R=g(),z=h("div");for(let e=0;e<Y.length;e+=1)Y[e].c();w(r,"class","label svelte-ehjgxg"),w(o,"class","value status-indicator svelte-ehjgxg"),k(o,"running",e[2].services_running),k(o,"stopped",!e[2].services_running),w(n,"class","summary-card svelte-ehjgxg"),w(b,"class","label svelte-ehjgxg"),w(m,"class","value svelte-ehjgxg"),w(a,"class","summary-card svelte-ehjgxg"),w($,"class","label svelte-ehjgxg"),w(B,"class","value svelte-ehjgxg"),w(_,"class","summary-card svelte-ehjgxg"),w(L,"class","label svelte-ehjgxg"),w(U,"class","value svelte-ehjgxg"),w(I,"class","summary-card svelte-ehjgxg"),w(t,"class","status-summary svelte-ehjgxg"),w(O,"class","svelte-ehjgxg"),w(z,"class","processes-grid svelte-ehjgxg")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,s),c(n,o),c(o,i),c(t,l),c(t,a),c(a,b),c(a,y),c(a,m),c(m,x),c(t,E),c(t,_),c(_,$),c(_,A),c(_,B),c(B,S),c(t,C),c(t,I),c(I,L),c(I,q),c(I,U),c(U,T),u(e,N,d),u(e,O,d),u(e,R,d),u(e,z,d);for(let e=0;e<Y.length;e+=1)Y[e]&&Y[e].m(z,null);j=!0},p(e,t){if((!j||4&t)&&P!==(P=e[2].services_running?"Running":"Stopped")&&v(i,P),(!j||4&t)&&k(o,"running",e[2].services_running),(!j||4&t)&&k(o,"stopped",!e[2].services_running),(!j||4&t)&&D!==(D=(e[2].version||"unknown")+"")&&v(x,D),(!j||4&t)&&H!==(H=e[2].uptime+"")&&v(S,H),(!j||4&t)&&F!==(F=(e[2].processes?.length||0)+"")&&v(T,F),4&t){let n;for(V=G(e[2].processes||[]),n=0;n<V.length;n+=1){const r=Ir(e,V,n);Y[n]?(Y[n].p(r,t),Z(Y[n],1)):(Y[n]=Or(r),Y[n].c(),Z(Y[n],1),Y[n].m(z,null))}for(K(),n=V.length;n<Y.length;n+=1)J(n);M()}},i(e){if(!j){for(let e=0;e<V.length;e+=1)Z(Y[e]);j=!0}},o(e){Y=Y.filter(Boolean);for(let e=0;e<Y.length;e+=1)W(Y[e]);j=!1},d(e){e&&(d(t),d(N),d(O),d(R),d(z)),f(Y,e)}}}function Or(e){let t,n;return t=new Cr({props:{process:e[10]}}),{c(){Y(t.$$.fragment)},m(e,r){J(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.process=e[10]),t.$set(r)},i(e){n||(Z(t.$$.fragment,e),n=!0)},o(e){W(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Rr(e){let t,n,r,s,o,i,l,a,f,b,m,v,x,E,_;function $(e,t){return e[2]?.services_running?qr:Lr}let k=$(e),A=k(e),B=e[1]&&Ur(e);const S=[Nr,Tr],C=[];function I(e,t){return e[2]?0:e[1]?-1:1}return~(m=I(e))&&(v=C[m]=S[m](e)),{c(){t=h("div"),n=h("div"),r=h("h2"),r.textContent="Dashboard",s=g(),o=h("div"),i=h("button"),l=p("Refresh"),a=g(),A.c(),f=g(),B&&B.c(),b=g(),v&&v.c(),w(r,"class","svelte-ehjgxg"),w(i,"class","refresh-btn svelte-ehjgxg"),i.disabled=e[0],w(o,"class","actions svelte-ehjgxg"),w(n,"class","page-header svelte-ehjgxg"),w(t,"class","dashboard svelte-ehjgxg")},m(d,h){u(d,t,h),c(t,n),c(n,r),c(n,s),c(n,o),c(o,i),c(i,l),c(o,a),A.m(o,null),c(t,f),B&&B.m(t,null),c(t,b),~m&&C[m].m(t,null),x=!0,E||(_=y(i,"click",e[3]),E=!0)},p(e,[n]){(!x||1&n)&&(i.disabled=e[0]),k===(k=$(e))&&A?A.p(e,n):(A.d(1),A=k(e),A&&(A.c(),A.m(o,null))),e[1]?B?B.p(e,n):(B=Ur(e),B.c(),B.m(t,b)):B&&(B.d(1),B=null);let r=m;m=I(e),m===r?~m&&C[m].p(e,n):(v&&(K(),W(C[r],1,1,()=>{C[r]=null}),M()),~m?(v=C[m],v?v.p(e,n):(v=C[m]=S[m](e),v.c()),Z(v,1),v.m(t,null)):v=null)},i(e){x||(Z(v),x=!0)},o(e){W(v),x=!1},d(e){e&&d(t),A.d(),B&&B.d(),~m&&C[m].d(),E=!1,_()}}}function zr(e,t,n){let r,s,o,a,c,u;var d;async function f(){try{l(gr,c=await async function(e,t){const n=await vr("/api/status",{},e,t);if(!n.ok)throw new Error(`Failed to fetch status: ${n.statusText}`);return n.json()}(a,o),c),l(wr,s="",s)}catch(e){l(wr,s=e.message,s)}}return i(e,mr,e=>n(0,r=e)),i(e,wr,e=>n(1,s=e)),i(e,fr,e=>n(8,o=e)),i(e,hr,e=>n(9,a=e)),i(e,gr,e=>n(2,c=e)),C(async()=>{await f(),u=setInterval(f,5e3)}),d=()=>{u&&clearInterval(u)},S().$$.on_destroy.push(d),[r,s,c,f,async function(){if(confirm("Are you sure you want to restart all services?")){l(mr,r=!0,r);try{await Er(a,o),setTimeout(f,2e3)}catch(e){l(wr,s=e.message,s)}finally{l(mr,r=!1,r)}}},async function(){l(mr,r=!0,r);try{await async function(e,t){const n=await vr("/api/start-services",{method:"POST"},e,t);if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.message||`Start failed: ${n.statusText}`)}return n.json()}(a,o),setTimeout(f,2e3)}catch(e){l(wr,s=e.message,s)}finally{l(mr,r=!1,r)}},async function(){if(confirm("Are you sure you want to stop all services?")){l(mr,r=!0,r);try{await async function(e,t){const n=await vr("/api/stop-services",{method:"POST"},e,t);if(!n.ok){const e=await n.json().catch(()=>({}));throw new Error(e.message||`Stop failed: ${n.statusText}`)}return n.json()}(a,o),setTimeout(f,2e3)}catch(e){l(wr,s=e.message,s)}finally{l(mr,r=!1,r)}}}]}class jr extends te{constructor(e){super(),ee(this,e,zr,Rr,o,{})}}function Pr(e,t,n){const r=e.slice();return r[33]=t[n],r[35]=n,r}function Dr(e){let t,n,s,o,i,l,a,f;return{c(){t=h("button"),n=p("Refresh"),s=g(),o=h("button"),i=p("Edit"),w(t,"class","refresh-btn svelte-my2rpu"),t.disabled=e[6],w(o,"class","edit-btn svelte-my2rpu"),o.disabled=l=e[6]||!e[5]},m(r,l){u(r,t,l),c(t,n),u(r,s,l),u(r,o,l),c(o,i),a||(f=[y(t,"click",e[8]),y(o,"click",e[9])],a=!0)},p(e,n){64&n[0]&&(t.disabled=e[6]),96&n[0]&&l!==(l=e[6]||!e[5])&&(o.disabled=l)},d(e){e&&(d(t),d(s),d(o)),a=!1,r(f)}}}function Hr(e){let t,n,s,o,i,l,a,f=e[4]?"Saving...":"Save";return{c(){t=h("button"),n=p("Cancel"),s=g(),o=h("button"),i=p(f),w(t,"class","cancel-btn svelte-my2rpu"),t.disabled=e[4],w(o,"class","save-btn svelte-my2rpu"),o.disabled=e[4]},m(r,d){u(r,t,d),c(t,n),u(r,s,d),u(r,o,d),c(o,i),l||(a=[y(t,"click",e[10]),y(o,"click",e[11])],l=!0)},p(e,n){16&n[0]&&(t.disabled=e[4]),16&n[0]&&f!==(f=e[4]?"Saving...":"Save")&&v(i,f),16&n[0]&&(o.disabled=e[4])},d(e){e&&(d(t),d(s),d(o)),l=!1,r(a)}}}function Fr(e){let t,n;return{c(){t=h("div"),n=p(e[7]),w(t,"class","error-banner svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){128&t[0]&&v(n,e[7])},d(e){e&&d(t)}}}function Vr(e){let t,n,r,s=e[3]&&e[2].includes("Restart required"),o=s&&Kr(e);return{c(){t=h("div"),n=p(e[2]),r=g(),o&&o.c(),w(t,"class","message-banner svelte-my2rpu"),k(t,"success",e[3]),k(t,"error",!e[3])},m(e,s){u(e,t,s),c(t,n),c(t,r),o&&o.m(t,null)},p(e,r){4&r[0]&&v(n,e[2]),12&r[0]&&(s=e[3]&&e[2].includes("Restart required")),s?o?o.p(e,r):(o=Kr(e),o.c(),o.m(t,null)):o&&(o.d(1),o=null),8&r[0]&&k(t,"success",e[3]),8&r[0]&&k(t,"error",!e[3])},d(e){e&&d(t),o&&o.d()}}}function Kr(t){let n,r,s;return{c(){n=h("button"),n.textContent="Restart Now",w(n,"class","restart-btn-inline svelte-my2rpu")},m(e,o){u(e,n,o),r||(s=y(n,"click",t[12]),r=!0)},p:e,d(e){e&&d(n),r=!1,s()}}}function Mr(t){let n;return{c(){n=h("div"),n.textContent="Loading configuration...",w(n,"class","loading svelte-my2rpu")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Zr(e){let t,n,r,s,o,i,l,a,y,m,v,x,E,_,$,k,A,B,S,C,I,L,q,U,T,N,O,R,z,j,P,D,H,F,V,K,M,Z,W,Y,J,Q,X,ee,te,ne,re,se,oe,ie,le,ae,ce,ue,de,fe,he,pe,ge,be,ye,me,we,ve,xe,Ee,_e,$e,ke,Ae,Be,Se,Ce,Ie,Le,qe,Ue,Te,Ne,Oe,Re,ze,je,Pe,De,He,Fe,Ve;function Ke(e,t){return e[0]?Gr:Wr}let Me=Ke(e),Ze=Me(e);function We(e,t){return e[0]?Jr:Yr}let Ge=We(e),Ye=Ge(e);function Je(e,t){return e[0]?Xr:Qr}let Qe=Je(e),Xe=Qe(e);function et(e,t){return e[0]?ts:es}let tt=et(e),nt=tt(e);function rt(e,t){return e[0]?rs:ns}let st=rt(e),ot=st(e);function it(e,t){return e[0]?os:ss}let lt=it(e),at=lt(e);function ct(e,t){return e[0]?ls:is}let ut=ct(e),dt=ut(e);function ft(e,t){return e[0]?cs:as}let ht=ft(e),pt=ht(e);function gt(e,t){return e[0]?ds:us}let bt=gt(e),yt=bt(e);function mt(e,t){return e[0]?hs:fs}let wt=mt(e),vt=wt(e);function xt(e,t){return e[0]?gs:ps}let Et=xt(e),_t=Et(e);function $t(e,t){return e[0]?ys:bs}let kt=$t(e),At=kt(e);function Bt(e,t){return e[0]?ws:ms}let St=Bt(e),Ct=St(e);function It(e,t){return e[0]?xs:vs}let Lt=It(e),qt=Lt(e);function Ut(e,t){return e[0]?_s:Es}let Tt=Ut(e),Nt=Tt(e),Ot=e[0]&&$s(e),Rt=G((e[0]?e[1].admin_owners:e[5].admin_owners)||[]),zt=[];for(let t=0;t<Rt.length;t+=1)zt[t]=Bs(Pr(e,Rt,t));let jt=null;Rt.length||(jt=ks());let Pt=!e[0]&&Ss(e);return{c(){t=h("div"),n=h("section"),r=h("h3"),r.textContent="Database",s=g(),o=h("div"),i=h("div"),l=h("label"),l.textContent="Backend",a=g(),Ze.c(),y=g(),m=h("div"),v=h("label"),v.textContent="Binary",x=g(),Ye.c(),E=g(),_=h("div"),$=h("label"),$.textContent="Listen Address",k=g(),Xe.c(),A=g(),B=h("div"),S=h("label"),S.textContent="Data Directory",C=g(),nt.c(),I=g(),L=h("section"),q=h("h3"),q.textContent="ACL",U=g(),T=h("div"),N=h("div"),O=h("label"),O.textContent="Enabled",R=g(),ot.c(),z=g(),j=h("div"),P=h("label"),P.textContent="Mode",D=g(),at.c(),H=g(),F=h("div"),V=h("label"),V.textContent="Binary",K=g(),dt.c(),M=g(),Z=h("div"),W=h("label"),W.textContent="Listen Address",Y=g(),pt.c(),J=g(),Q=h("section"),X=h("h3"),X.textContent="Relay",ee=g(),te=h("div"),ne=h("div"),re=h("label"),re.textContent="Binary",se=g(),yt.c(),oe=g(),ie=h("div"),le=h("label"),le.textContent="Log Level",ae=g(),vt.c(),ce=g(),ue=h("section"),de=h("h3"),de.textContent="Sync Services",fe=g(),he=h("div"),pe=h("div"),ge=h("label"),ge.textContent="Distributed Sync",be=g(),_t.c(),ye=g(),me=h("div"),we=h("label"),we.textContent="Cluster Sync",ve=g(),At.c(),xe=g(),Ee=h("div"),_e=h("label"),_e.textContent="Relay Group",$e=g(),Ct.c(),ke=g(),Ae=h("div"),Be=h("label"),Be.textContent="Negentropy",Se=g(),qt.c(),Ce=g(),Ie=h("section"),Le=h("h3"),Le.textContent="Admin",qe=g(),Ue=h("div"),Te=h("div"),Ne=h("label"),Ne.textContent="Binary Directory",Oe=g(),Nt.c(),Re=g(),ze=h("div"),je=h("label"),Pe=p("Admin Owners\n "),Ot&&Ot.c(),De=g(),He=h("div");for(let e=0;e<zt.length;e+=1)zt[e].c();jt&&jt.c(),Fe=g(),Pt&&Pt.c(),Ve=b(),w(r,"class","svelte-my2rpu"),w(l,"class","label svelte-my2rpu"),w(i,"class","config-item svelte-my2rpu"),w(v,"class","label svelte-my2rpu"),w(m,"class","config-item svelte-my2rpu"),w($,"class","label svelte-my2rpu"),w(_,"class","config-item svelte-my2rpu"),w(S,"class","label svelte-my2rpu"),w(B,"class","config-item svelte-my2rpu"),w(o,"class","config-grid svelte-my2rpu"),w(n,"class","config-section svelte-my2rpu"),w(q,"class","svelte-my2rpu"),w(O,"class","label svelte-my2rpu"),w(N,"class","config-item svelte-my2rpu"),w(P,"class","label svelte-my2rpu"),w(j,"class","config-item svelte-my2rpu"),w(V,"class","label svelte-my2rpu"),w(F,"class","config-item svelte-my2rpu"),w(W,"class","label svelte-my2rpu"),w(Z,"class","config-item svelte-my2rpu"),w(T,"class","config-grid svelte-my2rpu"),w(L,"class","config-section svelte-my2rpu"),w(X,"class","svelte-my2rpu"),w(re,"class","label svelte-my2rpu"),w(ne,"class","config-item svelte-my2rpu"),w(le,"class","label svelte-my2rpu"),w(ie,"class","config-item svelte-my2rpu"),w(te,"class","config-grid svelte-my2rpu"),w(Q,"class","config-section svelte-my2rpu"),w(de,"class","svelte-my2rpu"),w(ge,"class","label svelte-my2rpu"),w(pe,"class","config-item svelte-my2rpu"),w(we,"class","label svelte-my2rpu"),w(me,"class","config-item svelte-my2rpu"),w(_e,"class","label svelte-my2rpu"),w(Ee,"class","config-item svelte-my2rpu"),w(Be,"class","label svelte-my2rpu"),w(Ae,"class","config-item svelte-my2rpu"),w(he,"class","config-grid svelte-my2rpu"),w(ue,"class","config-section svelte-my2rpu"),w(Le,"class","svelte-my2rpu"),w(Ne,"class","label svelte-my2rpu"),w(Te,"class","config-item svelte-my2rpu"),w(je,"class","label svelte-my2rpu"),w(He,"class","owners-list svelte-my2rpu"),w(ze,"class","config-item full-width svelte-my2rpu"),w(Ue,"class","config-grid svelte-my2rpu"),w(Ie,"class","config-section svelte-my2rpu"),w(t,"class","config-sections svelte-my2rpu")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,s),c(n,o),c(o,i),c(i,l),c(i,a),Ze.m(i,null),c(o,y),c(o,m),c(m,v),c(m,x),Ye.m(m,null),c(o,E),c(o,_),c(_,$),c(_,k),Xe.m(_,null),c(o,A),c(o,B),c(B,S),c(B,C),nt.m(B,null),c(t,I),c(t,L),c(L,q),c(L,U),c(L,T),c(T,N),c(N,O),c(N,R),ot.m(N,null),c(T,z),c(T,j),c(j,P),c(j,D),at.m(j,null),c(T,H),c(T,F),c(F,V),c(F,K),dt.m(F,null),c(T,M),c(T,Z),c(Z,W),c(Z,Y),pt.m(Z,null),c(t,J),c(t,Q),c(Q,X),c(Q,ee),c(Q,te),c(te,ne),c(ne,re),c(ne,se),yt.m(ne,null),c(te,oe),c(te,ie),c(ie,le),c(ie,ae),vt.m(ie,null),c(t,ce),c(t,ue),c(ue,de),c(ue,fe),c(ue,he),c(he,pe),c(pe,ge),c(pe,be),_t.m(pe,null),c(he,ye),c(he,me),c(me,we),c(me,ve),At.m(me,null),c(he,xe),c(he,Ee),c(Ee,_e),c(Ee,$e),Ct.m(Ee,null),c(he,ke),c(he,Ae),c(Ae,Be),c(Ae,Se),qt.m(Ae,null),c(t,Ce),c(t,Ie),c(Ie,Le),c(Ie,qe),c(Ie,Ue),c(Ue,Te),c(Te,Ne),c(Te,Oe),Nt.m(Te,null),c(Ue,Re),c(Ue,ze),c(ze,je),c(je,Pe),Ot&&Ot.m(je,null),c(ze,De),c(ze,He);for(let e=0;e<zt.length;e+=1)zt[e]&&zt[e].m(He,null);jt&&jt.m(He,null),u(e,Fe,d),Pt&&Pt.m(e,d),u(e,Ve,d)},p(e,t){if(Me===(Me=Ke(e))&&Ze?Ze.p(e,t):(Ze.d(1),Ze=Me(e),Ze&&(Ze.c(),Ze.m(i,null))),Ge===(Ge=We(e))&&Ye?Ye.p(e,t):(Ye.d(1),Ye=Ge(e),Ye&&(Ye.c(),Ye.m(m,null))),Qe===(Qe=Je(e))&&Xe?Xe.p(e,t):(Xe.d(1),Xe=Qe(e),Xe&&(Xe.c(),Xe.m(_,null))),tt===(tt=et(e))&&nt?nt.p(e,t):(nt.d(1),nt=tt(e),nt&&(nt.c(),nt.m(B,null))),st===(st=rt(e))&&ot?ot.p(e,t):(ot.d(1),ot=st(e),ot&&(ot.c(),ot.m(N,null))),lt===(lt=it(e))&&at?at.p(e,t):(at.d(1),at=lt(e),at&&(at.c(),at.m(j,null))),ut===(ut=ct(e))&&dt?dt.p(e,t):(dt.d(1),dt=ut(e),dt&&(dt.c(),dt.m(F,null))),ht===(ht=ft(e))&&pt?pt.p(e,t):(pt.d(1),pt=ht(e),pt&&(pt.c(),pt.m(Z,null))),bt===(bt=gt(e))&&yt?yt.p(e,t):(yt.d(1),yt=bt(e),yt&&(yt.c(),yt.m(ne,null))),wt===(wt=mt(e))&&vt?vt.p(e,t):(vt.d(1),vt=wt(e),vt&&(vt.c(),vt.m(ie,null))),Et===(Et=xt(e))&&_t?_t.p(e,t):(_t.d(1),_t=Et(e),_t&&(_t.c(),_t.m(pe,null))),kt===(kt=$t(e))&&At?At.p(e,t):(At.d(1),At=kt(e),At&&(At.c(),At.m(me,null))),St===(St=Bt(e))&&Ct?Ct.p(e,t):(Ct.d(1),Ct=St(e),Ct&&(Ct.c(),Ct.m(Ee,null))),Lt===(Lt=It(e))&&qt?qt.p(e,t):(qt.d(1),qt=Lt(e),qt&&(qt.c(),qt.m(Ae,null))),Tt===(Tt=Ut(e))&&Nt?Nt.p(e,t):(Nt.d(1),Nt=Tt(e),Nt&&(Nt.c(),Nt.m(Te,null))),e[0]?Ot?Ot.p(e,t):(Ot=$s(e),Ot.c(),Ot.m(je,null)):Ot&&(Ot.d(1),Ot=null),16419&t[0]){let n;for(Rt=G((e[0]?e[1].admin_owners:e[5].admin_owners)||[]),n=0;n<Rt.length;n+=1){const r=Pr(e,Rt,n);zt[n]?zt[n].p(r,t):(zt[n]=Bs(r),zt[n].c(),zt[n].m(He,null))}for(;n<zt.length;n+=1)zt[n].d(1);zt.length=Rt.length,!Rt.length&&jt?jt.p(e,t):Rt.length?jt&&(jt.d(1),jt=null):(jt=ks(),jt.c(),jt.m(He,null))}e[0]?Pt&&(Pt.d(1),Pt=null):Pt?Pt.p(e,t):(Pt=Ss(e),Pt.c(),Pt.m(Ve.parentNode,Ve))},d(e){e&&(d(t),d(Fe),d(Ve)),Ze.d(),Ye.d(),Xe.d(),nt.d(),ot.d(),at.d(),dt.d(),pt.d(),yt.d(),vt.d(),_t.d(),At.d(),Ct.d(),qt.d(),Nt.d(),Ot&&Ot.d(),f(zt,e),jt&&jt.d(),Pt&&Pt.d(e)}}}function Wr(e){let t,n,r=e[5].db_backend+"";return{c(){t=h("span"),n=p(r),w(t,"class","value svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].db_backend+"")&&v(n,r)},d(e){e&&d(t)}}}function Gr(e){let t,n,r,s,o;return{c(){t=h("select"),n=h("option"),n.textContent="Badger",r=h("option"),r.textContent="Neo4j",n.__value="badger",x(n,n.__value),r.__value="neo4j",x(r,r.__value),w(t,"class","svelte-my2rpu"),void 0===e[1].db_backend&&z(()=>e[15].call(t))},m(i,l){u(i,t,l),c(t,n),c(t,r),_(t,e[1].db_backend,!0),s||(o=y(t,"change",e[15]),s=!0)},p(e,n){2&n[0]&&_(t,e[1].db_backend)},d(e){e&&d(t),s=!1,o()}}}function Yr(e){let t,n,r=e[5].db_binary+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].db_binary+"")&&v(n,r)},d(e){e&&d(t)}}}function Jr(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"placeholder","orly-db-badger"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].db_binary),n||(r=y(t,"input",e[16]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].db_binary&&x(t,e[1].db_binary)},d(e){e&&d(t),n=!1,r()}}}function Qr(e){let t,n,r=e[5].db_listen+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].db_listen+"")&&v(n,r)},d(e){e&&d(t)}}}function Xr(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"placeholder","127.0.0.1:50051"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].db_listen),n||(r=y(t,"input",e[17]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].db_listen&&x(t,e[1].db_listen)},d(e){e&&d(t),n=!1,r()}}}function es(e){let t,n,r=e[5].data_dir+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].data_dir+"")&&v(n,r)},d(e){e&&d(t)}}}function ts(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].data_dir),n||(r=y(t,"input",e[18]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].data_dir&&x(t,e[1].data_dir)},d(e){e&&d(t),n=!1,r()}}}function ns(e){let t,n,r=e[5].acl_enabled?"Yes":"No";return{c(){t=h("span"),n=p(r),w(t,"class","value bool svelte-my2rpu"),k(t,"enabled",e[5].acl_enabled)},m(e,r){u(e,t,r),c(t,n)},p(e,s){32&s[0]&&r!==(r=e[5].acl_enabled?"Yes":"No")&&v(n,r),32&s[0]&&k(t,"enabled",e[5].acl_enabled)},d(e){e&&d(t)}}}function rs(e){let t,n,r,s,o,i,l,a=e[1].acl_enabled?"Enabled":"Disabled";return{c(){t=h("label"),n=h("input"),r=g(),s=h("span"),o=p(a),w(n,"type","checkbox"),w(n,"class","svelte-my2rpu"),w(t,"class","toggle svelte-my2rpu")},m(a,d){u(a,t,d),c(t,n),n.checked=e[1].acl_enabled,c(t,r),c(t,s),c(s,o),i||(l=y(n,"change",e[19]),i=!0)},p(e,t){2&t[0]&&(n.checked=e[1].acl_enabled),2&t[0]&&a!==(a=e[1].acl_enabled?"Enabled":"Disabled")&&v(o,a)},d(e){e&&d(t),i=!1,l()}}}function ss(e){let t,n,r=e[5].acl_mode+"";return{c(){t=h("span"),n=p(r),w(t,"class","value svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].acl_mode+"")&&v(n,r)},d(e){e&&d(t)}}}function os(e){let t,n,r,s,o,i;return{c(){t=h("select"),n=h("option"),n.textContent="Follows",r=h("option"),r.textContent="Managed",s=h("option"),s.textContent="Curation",n.__value="follows",x(n,n.__value),r.__value="managed",x(r,r.__value),s.__value="curation",x(s,s.__value),w(t,"class","svelte-my2rpu"),void 0===e[1].acl_mode&&z(()=>e[20].call(t))},m(l,a){u(l,t,a),c(t,n),c(t,r),c(t,s),_(t,e[1].acl_mode,!0),o||(i=y(t,"change",e[20]),o=!0)},p(e,n){2&n[0]&&_(t,e[1].acl_mode)},d(e){e&&d(t),o=!1,i()}}}function is(e){let t,n,r=e[5].acl_binary+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].acl_binary+"")&&v(n,r)},d(e){e&&d(t)}}}function ls(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].acl_binary),n||(r=y(t,"input",e[21]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].acl_binary&&x(t,e[1].acl_binary)},d(e){e&&d(t),n=!1,r()}}}function as(e){let t,n,r=e[5].acl_listen+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].acl_listen+"")&&v(n,r)},d(e){e&&d(t)}}}function cs(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"placeholder","127.0.0.1:50052"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].acl_listen),n||(r=y(t,"input",e[22]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].acl_listen&&x(t,e[1].acl_listen)},d(e){e&&d(t),n=!1,r()}}}function us(e){let t,n,r=e[5].relay_binary+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].relay_binary+"")&&v(n,r)},d(e){e&&d(t)}}}function ds(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"placeholder","orly"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].relay_binary),n||(r=y(t,"input",e[23]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].relay_binary&&x(t,e[1].relay_binary)},d(e){e&&d(t),n=!1,r()}}}function fs(e){let t,n,r=e[5].log_level+"";return{c(){t=h("span"),n=p(r),w(t,"class","value svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].log_level+"")&&v(n,r)},d(e){e&&d(t)}}}function hs(e){let t,n,r,s,o,i,l,a;return{c(){t=h("select"),n=h("option"),n.textContent="Trace",r=h("option"),r.textContent="Debug",s=h("option"),s.textContent="Info",o=h("option"),o.textContent="Warn",i=h("option"),i.textContent="Error",n.__value="trace",x(n,n.__value),r.__value="debug",x(r,r.__value),s.__value="info",x(s,s.__value),o.__value="warn",x(o,o.__value),i.__value="error",x(i,i.__value),w(t,"class","svelte-my2rpu"),void 0===e[1].log_level&&z(()=>e[24].call(t))},m(d,f){u(d,t,f),c(t,n),c(t,r),c(t,s),c(t,o),c(t,i),_(t,e[1].log_level,!0),l||(a=y(t,"change",e[24]),l=!0)},p(e,n){2&n[0]&&_(t,e[1].log_level)},d(e){e&&d(t),l=!1,a()}}}function ps(e){let t,n,r=e[5].distributed_sync_enabled?"Enabled":"Disabled";return{c(){t=h("span"),n=p(r),w(t,"class","value bool svelte-my2rpu"),k(t,"enabled",e[5].distributed_sync_enabled)},m(e,r){u(e,t,r),c(t,n)},p(e,s){32&s[0]&&r!==(r=e[5].distributed_sync_enabled?"Enabled":"Disabled")&&v(n,r),32&s[0]&&k(t,"enabled",e[5].distributed_sync_enabled)},d(e){e&&d(t)}}}function gs(e){let t,n,r,s,o,i,l,a=e[1].distributed_sync_enabled?"Enabled":"Disabled";return{c(){t=h("label"),n=h("input"),r=g(),s=h("span"),o=p(a),w(n,"type","checkbox"),w(n,"class","svelte-my2rpu"),w(t,"class","toggle svelte-my2rpu")},m(a,d){u(a,t,d),c(t,n),n.checked=e[1].distributed_sync_enabled,c(t,r),c(t,s),c(s,o),i||(l=y(n,"change",e[25]),i=!0)},p(e,t){2&t[0]&&(n.checked=e[1].distributed_sync_enabled),2&t[0]&&a!==(a=e[1].distributed_sync_enabled?"Enabled":"Disabled")&&v(o,a)},d(e){e&&d(t),i=!1,l()}}}function bs(e){let t,n,r=e[5].cluster_sync_enabled?"Enabled":"Disabled";return{c(){t=h("span"),n=p(r),w(t,"class","value bool svelte-my2rpu"),k(t,"enabled",e[5].cluster_sync_enabled)},m(e,r){u(e,t,r),c(t,n)},p(e,s){32&s[0]&&r!==(r=e[5].cluster_sync_enabled?"Enabled":"Disabled")&&v(n,r),32&s[0]&&k(t,"enabled",e[5].cluster_sync_enabled)},d(e){e&&d(t)}}}function ys(e){let t,n,r,s,o,i,l,a=e[1].cluster_sync_enabled?"Enabled":"Disabled";return{c(){t=h("label"),n=h("input"),r=g(),s=h("span"),o=p(a),w(n,"type","checkbox"),w(n,"class","svelte-my2rpu"),w(t,"class","toggle svelte-my2rpu")},m(a,d){u(a,t,d),c(t,n),n.checked=e[1].cluster_sync_enabled,c(t,r),c(t,s),c(s,o),i||(l=y(n,"change",e[26]),i=!0)},p(e,t){2&t[0]&&(n.checked=e[1].cluster_sync_enabled),2&t[0]&&a!==(a=e[1].cluster_sync_enabled?"Enabled":"Disabled")&&v(o,a)},d(e){e&&d(t),i=!1,l()}}}function ms(e){let t,n,r=e[5].relay_group_enabled?"Enabled":"Disabled";return{c(){t=h("span"),n=p(r),w(t,"class","value bool svelte-my2rpu"),k(t,"enabled",e[5].relay_group_enabled)},m(e,r){u(e,t,r),c(t,n)},p(e,s){32&s[0]&&r!==(r=e[5].relay_group_enabled?"Enabled":"Disabled")&&v(n,r),32&s[0]&&k(t,"enabled",e[5].relay_group_enabled)},d(e){e&&d(t)}}}function ws(e){let t,n,r,s,o,i,l,a=e[1].relay_group_enabled?"Enabled":"Disabled";return{c(){t=h("label"),n=h("input"),r=g(),s=h("span"),o=p(a),w(n,"type","checkbox"),w(n,"class","svelte-my2rpu"),w(t,"class","toggle svelte-my2rpu")},m(a,d){u(a,t,d),c(t,n),n.checked=e[1].relay_group_enabled,c(t,r),c(t,s),c(s,o),i||(l=y(n,"change",e[27]),i=!0)},p(e,t){2&t[0]&&(n.checked=e[1].relay_group_enabled),2&t[0]&&a!==(a=e[1].relay_group_enabled?"Enabled":"Disabled")&&v(o,a)},d(e){e&&d(t),i=!1,l()}}}function vs(e){let t,n,r=e[5].negentropy_enabled?"Enabled":"Disabled";return{c(){t=h("span"),n=p(r),w(t,"class","value bool svelte-my2rpu"),k(t,"enabled",e[5].negentropy_enabled)},m(e,r){u(e,t,r),c(t,n)},p(e,s){32&s[0]&&r!==(r=e[5].negentropy_enabled?"Enabled":"Disabled")&&v(n,r),32&s[0]&&k(t,"enabled",e[5].negentropy_enabled)},d(e){e&&d(t)}}}function xs(e){let t,n,r,s,o,i,l,a=e[1].negentropy_enabled?"Enabled":"Disabled";return{c(){t=h("label"),n=h("input"),r=g(),s=h("span"),o=p(a),w(n,"type","checkbox"),w(n,"class","svelte-my2rpu"),w(t,"class","toggle svelte-my2rpu")},m(a,d){u(a,t,d),c(t,n),n.checked=e[1].negentropy_enabled,c(t,r),c(t,s),c(s,o),i||(l=y(n,"change",e[28]),i=!0)},p(e,t){2&t[0]&&(n.checked=e[1].negentropy_enabled),2&t[0]&&a!==(a=e[1].negentropy_enabled?"Enabled":"Disabled")&&v(o,a)},d(e){e&&d(t),i=!1,l()}}}function Es(e){let t,n,r=e[5].bin_dir+"";return{c(){t=h("span"),n=p(r),w(t,"class","value mono svelte-my2rpu")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[5].bin_dir+"")&&v(n,r)},d(e){e&&d(t)}}}function _s(e){let t,n,r;return{c(){t=h("input"),w(t,"type","text"),w(t,"class","svelte-my2rpu")},m(s,o){u(s,t,o),x(t,e[1].bin_dir),n||(r=y(t,"input",e[29]),n=!0)},p(e,n){2&n[0]&&t.value!==e[1].bin_dir&&x(t,e[1].bin_dir)},d(e){e&&d(t),n=!1,r()}}}function $s(t){let n,r,s;return{c(){n=h("button"),n.textContent="+ Add",w(n,"class","add-owner-btn svelte-my2rpu")},m(e,o){u(e,n,o),r||(s=y(n,"click",t[13]),r=!0)},p:e,d(e){e&&d(n),r=!1,s()}}}function ks(t){let n;return{c(){n=h("span"),n.textContent="No owners configured",w(n,"class","no-owners svelte-my2rpu")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function As(e){let t,n,r;function s(){return e[30](e[35])}return{c(){t=h("button"),t.textContent="x",w(t,"class","remove-owner-btn svelte-my2rpu")},m(e,o){u(e,t,o),n||(r=y(t,"click",s),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function Bs(e){let t,n,r,s,o,i=e[33]+"",l=e[0]&&As(e);return{c(){t=h("div"),n=h("code"),r=p(i),s=g(),l&&l.c(),o=g(),w(n,"class","owner svelte-my2rpu"),w(t,"class","owner-item svelte-my2rpu")},m(e,i){u(e,t,i),c(t,n),c(n,r),c(t,s),l&&l.m(t,null),c(t,o)},p(e,n){35&n[0]&&i!==(i=e[33]+"")&&v(r,i),e[0]?l?l.p(e,n):(l=As(e),l.c(),l.m(t,o)):l&&(l.d(1),l=null)},d(e){e&&d(t),l&&l.d()}}}function Ss(e){let t,n,r,s,o,i,l,a=e[5].bin_dir?.replace(/\/bin$/,"")+"";return{c(){t=h("div"),n=h("p"),r=p("Configuration is saved to "),s=h("code"),o=p(a),i=p("/launcher.json"),l=p(". Environment variables override file settings."),w(s,"class","svelte-my2rpu"),w(n,"class","svelte-my2rpu"),w(t,"class","config-note svelte-my2rpu")},m(e,a){u(e,t,a),c(t,n),c(n,r),c(n,s),c(s,o),c(s,i),c(n,l)},p(e,t){32&t[0]&&a!==(a=e[5].bin_dir?.replace(/\/bin$/,"")+"")&&v(o,a)},d(e){e&&d(t)}}}function Cs(t){let n,r,s,o,i,l,a,f;function p(e,t){return e[0]?Hr:Dr}let b=p(t),y=b(t),m=t[7]&&Fr(t),v=t[2]&&Vr(t);function x(e,t){return e[5]?Zr:e[7]?void 0:Mr}let E=x(t),_=E&&E(t);return{c(){n=h("div"),r=h("div"),s=h("h2"),s.textContent="Configuration",o=g(),i=h("div"),y.c(),l=g(),m&&m.c(),a=g(),v&&v.c(),f=g(),_&&_.c(),w(s,"class","svelte-my2rpu"),w(i,"class","header-buttons svelte-my2rpu"),w(r,"class","page-header svelte-my2rpu"),w(n,"class","config-page svelte-my2rpu")},m(e,t){u(e,n,t),c(n,r),c(r,s),c(r,o),c(r,i),y.m(i,null),c(n,l),m&&m.m(n,null),c(n,a),v&&v.m(n,null),c(n,f),_&&_.m(n,null)},p(e,t){b===(b=p(e))&&y?y.p(e,t):(y.d(1),y=b(e),y&&(y.c(),y.m(i,null))),e[7]?m?m.p(e,t):(m=Fr(e),m.c(),m.m(n,a)):m&&(m.d(1),m=null),e[2]?v?v.p(e,t):(v=Vr(e),v.c(),v.m(n,f)):v&&(v.d(1),v=null),E===(E=x(e))&&_?_.p(e,t):(_&&_.d(1),_=E&&E(e),_&&(_.c(),_.m(n,null)))},i:e,o:e,d(e){e&&d(n),y.d(),m&&m.d(),v&&v.d(),_&&_.d()}}}function Is(e,t,n){let r,s,o,a,c;i(e,fr,e=>n(31,r=e)),i(e,hr,e=>n(32,s=e)),i(e,br,e=>n(5,o=e)),i(e,mr,e=>n(6,a=e)),i(e,wr,e=>n(7,c=e));let u=!1,d={},f="",h=!1,p=!1;async function g(){l(mr,a=!0,a);try{l(br,o=await async function(e,t){const n=await vr("/api/config",{},e,t);if(!n.ok)throw new Error(`Failed to fetch config: ${n.statusText}`);return n.json()}(s,r),o),n(1,d=JSON.parse(JSON.stringify(o))),l(wr,c="",c)}catch(e){l(wr,c=e.message,c)}finally{l(mr,a=!1,a)}}function b(e){n(1,d.admin_owners=d.admin_owners.filter((t,n)=>n!==e),d)}C(async()=>{await g()});return[u,d,f,h,p,o,a,c,g,function(){n(1,d=JSON.parse(JSON.stringify(o))),n(0,u=!0),n(2,f="")},function(){n(1,d=JSON.parse(JSON.stringify(o))),n(0,u=!1),n(2,f="")},async function(){n(4,p=!0),n(2,f="");try{const e=await async function(e,t,n){const r=await vr("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)},e,t);if(!r.ok){const e=await r.json().catch(()=>({}));throw new Error(e.message||`Save failed: ${r.statusText}`)}return r.json()}(s,r,d);n(3,h=e.success),n(2,f=e.message),e.success&&(l(br,o={...d},o),n(0,u=!1))}catch(e){n(3,h=!1),n(2,f=e.message)}finally{n(4,p=!1)}},async function(){if(confirm("Restart all services? This will briefly interrupt the relay."))try{await Er(s,r),n(2,f="Restart initiated. Services are restarting..."),n(3,h=!0)}catch(e){n(2,f=e.message),n(3,h=!1)}},function(){const e=prompt("Enter hex pubkey for new admin owner:");e&&e.match(/^[0-9a-fA-F]{64}$/)?n(1,d.admin_owners=[...d.admin_owners||[],e.toLowerCase()],d):e&&alert("Invalid pubkey. Must be 64 hex characters.")},b,function(){d.db_backend=$(this),n(1,d)},function(){d.db_binary=this.value,n(1,d)},function(){d.db_listen=this.value,n(1,d)},function(){d.data_dir=this.value,n(1,d)},function(){d.acl_enabled=this.checked,n(1,d)},function(){d.acl_mode=$(this),n(1,d)},function(){d.acl_binary=this.value,n(1,d)},function(){d.acl_listen=this.value,n(1,d)},function(){d.relay_binary=this.value,n(1,d)},function(){d.log_level=$(this),n(1,d)},function(){d.distributed_sync_enabled=this.checked,n(1,d)},function(){d.cluster_sync_enabled=this.checked,n(1,d)},function(){d.relay_group_enabled=this.checked,n(1,d)},function(){d.negentropy_enabled=this.checked,n(1,d)},function(){d.bin_dir=this.value,n(1,d)},e=>b(e)]}class Ls extends te{constructor(e){super(),ee(this,e,Is,Cs,o,{},null,[-1,-1])}}function qs(e,t,n){const r=e.slice();return r[37]=t[n],r}function Us(e,t,n){const r=e.slice();return r[40]=t[n][0],r[41]=t[n][1],r[42]=t,r[43]=n,r}function Ts(e,t,n){const r=e.slice();return r[44]=t[n],r}function Ns(e,t,n){const r=e.slice();return r[47]=t[n],r}function Os(e){let t,n;return{c(){t=h("div"),n=p(e[10]),w(t,"class","error-banner svelte-z9aqcb")},m(e,r){u(e,t,r),c(t,n)},p(e,t){1024&t[0]&&v(n,e[10])},d(e){e&&d(t)}}}function Rs(e){let t,n,r,s,o=e[3].message+"",i=e[3].downloaded_files?.length&&zs(e),l=e[5]&&js(e);return{c(){t=h("div"),n=p(o),r=g(),i&&i.c(),s=g(),l&&l.c(),w(t,"class","success-banner svelte-z9aqcb")},m(e,o){u(e,t,o),c(t,n),c(t,r),i&&i.m(t,null),c(t,s),l&&l.m(t,null)},p(e,r){8&r[0]&&o!==(o=e[3].message+"")&&v(n,o),e[3].downloaded_files?.length?i?i.p(e,r):(i=zs(e),i.c(),i.m(t,s)):i&&(i.d(1),i=null),e[5]?l?l.p(e,r):(l=js(e),l.c(),l.m(t,null)):l&&(l.d(1),l=null)},d(e){e&&d(t),i&&i.d(),l&&l.d()}}}function zs(e){let t,n,r,s=e[3].downloaded_files.join(", ")+"";return{c(){t=h("br"),n=p("Downloaded: "),r=p(s)},m(e,s){u(e,t,s),u(e,n,s),u(e,r,s)},p(e,t){8&t[0]&&s!==(s=e[3].downloaded_files.join(", ")+"")&&v(r,s)},d(e){e&&(d(t),d(n),d(r))}}}function js(t){let n,r,s,o,i,l;return{c(){n=h("div"),r=h("strong"),r.textContent="Launcher was updated!",s=g(),o=h("button"),o.textContent="Restart Launcher Now",w(o,"class","restart-launcher-btn svelte-z9aqcb"),w(n,"class","launcher-restart svelte-z9aqcb")},m(e,a){u(e,n,a),c(n,r),c(n,s),c(n,o),i||(l=y(o,"click",t[20]),i=!0)},p:e,d(e){e&&d(n),i=!1,l()}}}function Ps(e){let t,n,r,s,o,i=e[47].tag+"",l=e[47].message?` - ${e[47].message.slice(0,40)}`:"";return{c(){t=h("option"),n=p(i),r=p(l),s=g(),t.__value=o=e[47].tag,x(t,t.__value)},m(e,o){u(e,t,o),c(t,n),c(t,r),c(t,s)},p(e,s){64&s[0]&&i!==(i=e[47].tag+"")&&v(n,i),64&s[0]&&l!==(l=e[47].message?` - ${e[47].message.slice(0,40)}`:"")&&v(r,l),64&s[0]&&o!==(o=e[47].tag)&&(t.__value=o,x(t,t.__value))},d(e){e&&d(t)}}}function Ds(e){let t,n,r,s,o;return{c(){t=h("div"),n=h("span"),n.textContent="Release:",r=g(),s=h("code"),o=p(e[2]),w(n,"class","release-label svelte-z9aqcb"),w(s,"class","svelte-z9aqcb"),w(t,"class","release-url-display svelte-z9aqcb")},m(e,i){u(e,t,i),c(t,n),c(t,r),c(t,s),c(s,o)},p(e,t){4&t[0]&&v(o,e[2])},d(e){e&&d(t)}}}function Hs(t){let n,r,s=t[44].label+"";return{c(){n=h("option"),r=p(s),n.__value=t[44].value,x(n,n.__value)},m(e,t){u(e,n,t),c(n,r)},p:e,d(e){e&&d(n)}}}function Fs(e){let t,n;return{c(){t=h("input"),w(t,"type","text"),w(t,"class","url-display svelte-z9aqcb"),t.value=n=e[9][e[40]].url,t.readOnly=!0,w(t,"placeholder","Set release URL above")},m(e,n){u(e,t,n)},p(e,r){4608&r[0]&&n!==(n=e[9][e[40]].url)&&t.value!==n&&(t.value=n)},d(e){e&&d(t)}}}function Vs(e){let t,n,s,o;function i(){e[26].call(t,e[40])}function l(){return e[27](e[40])}return{c(){t=h("input"),w(t,"type","text"),w(t,"class","custom-url svelte-z9aqcb"),w(t,"placeholder","https://... (custom binary URL)"),t.disabled=n=e[4]||e[9][e[40]].installing},m(n,r){u(n,t,r),x(t,e[9][e[40]].customUrl),s||(o=[y(t,"input",i),y(t,"input",l)],s=!0)},p(r,s){e=r,4624&s[0]&&n!==(n=e[4]||e[9][e[40]].installing)&&(t.disabled=n),4608&s[0]&&t.value!==e[9][e[40]].customUrl&&x(t,e[9][e[40]].customUrl)},d(e){e&&d(t),s=!1,r(o)}}}function Ks(e){let t,n,r,s;function o(e,t){return e[9][e[40]].installing?Ws:e[9][e[40]].installed?Zs:Ms}let i=o(e),l=i(e);function a(){return e[28](e[40])}return{c(){t=h("button"),l.c(),w(t,"class","install-btn svelte-z9aqcb"),t.disabled=n=e[4]||e[9][e[40]].installing||!e[16](e[40]),w(t,"title","Download and install this component")},m(e,n){u(e,t,n),l.m(t,null),r||(s=y(t,"click",a),r=!0)},p(r,s){i!==(i=o(e=r))&&(l.d(1),l=i(e),l&&(l.c(),l.m(t,null))),4624&s[0]&&n!==(n=e[4]||e[9][e[40]].installing||!e[16](e[40]))&&(t.disabled=n)},d(e){e&&d(t),l.d(),r=!1,s()}}}function Ms(e){let t;return{c(){t=p("Install")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Zs(e){let t;return{c(){t=p("Done")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Ws(e){let t;return{c(){t=p("...")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Gs(e){let t,n,s,o,i,l,a,p,b,m,v,x,E,$=!e[41].required&&function(){let e;return{c(){e=h("span"),e.textContent="optional",w(e,"class","optional-badge svelte-z9aqcb")},m(t,n){u(t,e,n)},d(t){t&&d(e)}}}(),k=G(e[41].options),A=[];for(let t=0;t<k.length;t+=1)A[t]=Hs(Ts(e,k,t));function B(){e[24].call(a,e[40])}function S(){return e[25](e[40])}function C(e,t){return"custom"===e[9][e[40]].selected?Vs:"none"!==e[9][e[40]].selected?Fs:void 0}let I=C(e),L=I&&I(e),q="none"!==e[9][e[40]].selected&&Ks(e);return{c(){t=h("div"),n=h("div"),s=h("span"),s.textContent=`${e[41].label}`,o=g(),$&&$.c(),i=g(),l=h("div"),a=h("select");for(let e=0;e<A.length;e+=1)A[e].c();b=g(),L&&L.c(),m=g(),q&&q.c(),v=g(),w(s,"class","category-label svelte-z9aqcb"),w(n,"class","category-header svelte-z9aqcb"),a.disabled=p=e[4]||e[9][e[40]].installing,w(a,"class","svelte-z9aqcb"),void 0===e[9][e[40]].selected&&z(B),w(l,"class","category-controls svelte-z9aqcb"),w(t,"class","category-row svelte-z9aqcb")},m(r,d){u(r,t,d),c(t,n),c(n,s),c(n,o),$&&$.m(n,null),c(t,i),c(t,l),c(l,a);for(let e=0;e<A.length;e+=1)A[e]&&A[e].m(a,null);_(a,e[9][e[40]].selected,!0),c(l,b),L&&L.m(l,null),c(l,m),q&&q.m(l,null),c(t,v),x||(E=[y(a,"change",B),y(a,"change",S)],x=!0)},p(t,n){if(e=t,4096&n[0]){let t;for(k=G(e[41].options),t=0;t<k.length;t+=1){const r=Ts(e,k,t);A[t]?A[t].p(r,n):(A[t]=Hs(r),A[t].c(),A[t].m(a,null))}for(;t<A.length;t+=1)A[t].d(1);A.length=k.length}4624&n[0]&&p!==(p=e[4]||e[9][e[40]].installing)&&(a.disabled=p),4608&n[0]&&_(a,e[9][e[40]].selected),I===(I=C(e))&&L?L.p(e,n):(L&&L.d(1),L=I&&I(e),L&&(L.c(),L.m(l,m))),"none"!==e[9][e[40]].selected?q?q.p(e,n):(q=Ks(e),q.c(),q.m(l,null)):q&&(q.d(1),q=null)},d(e){e&&d(t),$&&$.d(),f(A,e),L&&L.d(),q&&q.d(),x=!1,r(E)}}}function Ys(e){let t,n,r,s,o,i,l,a=G(e[11].available_versions),p=[];for(let t=0;t<a.length;t+=1)p[t]=Qs(qs(e,a,t));return{c(){t=h("div"),n=h("h3"),n.textContent="Installed Versions",r=g(),s=h("table"),o=h("thead"),o.innerHTML='<tr><th class="svelte-z9aqcb">Version</th> <th class="svelte-z9aqcb">Installed</th> <th class="svelte-z9aqcb">Binaries</th> <th class="svelte-z9aqcb">Status</th></tr>',i=g(),l=h("tbody");for(let e=0;e<p.length;e+=1)p[e].c();w(n,"class","svelte-z9aqcb"),w(s,"class","svelte-z9aqcb"),w(t,"class","versions-list svelte-z9aqcb")},m(e,a){u(e,t,a),c(t,n),c(t,r),c(t,s),c(s,o),c(s,i),c(s,l);for(let e=0;e<p.length;e+=1)p[e]&&p[e].m(l,null)},p(e,t){if(2048&t[0]){let n;for(a=G(e[11].available_versions),n=0;n<a.length;n+=1){const r=qs(e,a,n);p[n]?p[n].p(r,t):(p[n]=Qs(r),p[n].c(),p[n].m(l,null))}for(;n<p.length;n+=1)p[n].d(1);p.length=a.length}},d(e){e&&d(t),f(p,e)}}}function Js(e){let t;return{c(){t=h("span"),t.textContent="Current",w(t,"class","current-badge svelte-z9aqcb")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Qs(e){let t,n,r,s,o,i,l,a,f,b,y,m,x,E=e[37].version+"",_=new Date(e[37].installed_at).toLocaleString()+"",$=(e[37].binaries?.length||0)+"",A=e[37].is_current&&Js();return{c(){t=h("tr"),n=h("td"),r=p(E),s=g(),o=h("td"),i=p(_),l=g(),a=h("td"),f=p($),b=p(" files"),y=g(),m=h("td"),A&&A.c(),x=g(),w(n,"class","version-cell svelte-z9aqcb"),w(o,"class","svelte-z9aqcb"),w(a,"class","svelte-z9aqcb"),w(m,"class","svelte-z9aqcb"),w(t,"class","svelte-z9aqcb"),k(t,"current",e[37].is_current)},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,s),c(t,o),c(o,i),c(t,l),c(t,a),c(a,f),c(a,b),c(t,y),c(t,m),A&&A.m(m,null),c(t,x)},p(e,n){2048&n[0]&&E!==(E=e[37].version+"")&&v(r,E),2048&n[0]&&_!==(_=new Date(e[37].installed_at).toLocaleString()+"")&&v(i,_),2048&n[0]&&$!==($=(e[37].binaries?.length||0)+"")&&v(f,$),e[37].is_current?A||(A=Js(),A.c(),A.m(m,null)):A&&(A.d(1),A=null),2048&n[0]&&k(t,"current",e[37].is_current)},d(e){e&&d(t),A&&A.d()}}}function Xs(t){let n,s,o,i,l,a,b,m,E,$,k,A,B,S,C,I,L,q,U,T,N,O,R,j,P,D,H,F,V,K,M,Z,W,Y,J,Q,X,ee,te,ne,re,se,oe,ie,le,ae,ce,ue,de,fe,he,pe,ge,be,ye,me,we,ve=(t[11]?.current_version||"unknown")+"",xe=t[8]?"Loading...":"-- Select release --",Ee=t[4]?"Installing...":"Install All Selected",_e=t[10]&&Os(t),$e=t[3]?.success&&Rs(t),ke=G(t[6]),Ae=[];for(let e=0;e<ke.length;e+=1)Ae[e]=Ps(Ns(t,ke,e));let Be=t[2]&&Ds(t),Se=G(Object.entries(t[12])),Ce=[];for(let e=0;e<Se.length;e+=1)Ce[e]=Gs(Us(t,Se,e));let Ie=t[11]?.available_versions?.length&&Ys(t);return{c(){n=h("div"),s=h("div"),s.innerHTML='<h2 class="svelte-z9aqcb">Update Binaries</h2>',o=g(),_e&&_e.c(),i=g(),$e&&$e.c(),l=g(),a=h("div"),b=h("h3"),b.textContent="Current Version",m=g(),E=h("div"),$=h("span"),k=p(ve),A=g(),B=h("button"),S=p("Rollback"),I=g(),L=h("div"),q=h("h3"),q.textContent="Install New Version",U=g(),T=h("div"),N=h("div"),O=h("div"),R=h("label"),R.textContent="Official Release",j=g(),P=h("select"),D=h("option"),H=p(xe),F=g();for(let e=0;e<Ae.length;e+=1)Ae[e].c();K=g(),M=h("div"),Z=h("label"),Z.textContent="Architecture",W=g(),Y=h("select"),J=h("option"),J.textContent="AMD64 (x86_64)",Q=h("option"),Q.textContent="ARM64 (aarch64)",X=g(),ee=h("div"),te=h("div"),ne=h("label"),ne.textContent="Or Custom Version",re=g(),se=h("input"),oe=g(),ie=h("div"),le=h("label"),le.textContent=" ",ae=g(),ce=h("button"),ue=p("Set Custom URL"),de=g(),Be&&Be.c(),fe=g(),he=h("div");for(let e=0;e<Ce.length;e+=1)Ce[e].c();pe=g(),ge=h("button"),be=p(Ee),ye=g(),Ie&&Ie.c(),w(s,"class","page-header svelte-z9aqcb"),w(b,"class","svelte-z9aqcb"),w($,"class","version svelte-z9aqcb"),w(B,"class","rollback-btn svelte-z9aqcb"),B.disabled=C=t[4]||(t[11]?.available_versions?.length||0)<2,w(E,"class","version-info svelte-z9aqcb"),w(a,"class","current-version svelte-z9aqcb"),w(q,"class","svelte-z9aqcb"),w(R,"for","release-select"),w(R,"class","svelte-z9aqcb"),D.__value="",x(D,D.__value),w(P,"id","release-select"),P.disabled=V=t[4]||t[8],w(P,"class","svelte-z9aqcb"),void 0===t[7]&&z(()=>t[21].call(P)),w(O,"class","form-group svelte-z9aqcb"),w(Z,"for","arch"),w(Z,"class","svelte-z9aqcb"),J.__value="amd64",x(J,J.__value),Q.__value="arm64",x(Q,Q.__value),w(Y,"id","arch"),Y.disabled=t[4],w(Y,"class","svelte-z9aqcb"),void 0===t[1]&&z(()=>t[22].call(Y)),w(M,"class","form-group svelte-z9aqcb"),w(N,"class","form-row svelte-z9aqcb"),w(ne,"for","version"),w(ne,"class","svelte-z9aqcb"),w(se,"type","text"),w(se,"id","version"),w(se,"placeholder","v0.56.1"),se.disabled=t[4],w(se,"class","svelte-z9aqcb"),w(te,"class","form-group svelte-z9aqcb"),w(le,"class","svelte-z9aqcb"),w(ce,"class","helper-btn fill-btn svelte-z9aqcb"),ce.disabled=t[4],w(ie,"class","form-group svelte-z9aqcb"),w(ee,"class","form-row custom-release-row svelte-z9aqcb"),w(T,"class","release-settings svelte-z9aqcb"),w(he,"class","categories svelte-z9aqcb"),w(ge,"class","update-btn svelte-z9aqcb"),ge.disabled=t[4],w(L,"class","update-form svelte-z9aqcb"),w(n,"class","update-page svelte-z9aqcb")},m(e,r){u(e,n,r),c(n,s),c(n,o),_e&&_e.m(n,null),c(n,i),$e&&$e.m(n,null),c(n,l),c(n,a),c(a,b),c(a,m),c(a,E),c(E,$),c($,k),c(E,A),c(E,B),c(B,S),c(n,I),c(n,L),c(L,q),c(L,U),c(L,T),c(T,N),c(N,O),c(O,R),c(O,j),c(O,P),c(P,D),c(D,H),c(D,F);for(let e=0;e<Ae.length;e+=1)Ae[e]&&Ae[e].m(P,null);_(P,t[7],!0),c(N,K),c(N,M),c(M,Z),c(M,W),c(M,Y),c(Y,J),c(Y,Q),_(Y,t[1],!0),c(T,X),c(T,ee),c(ee,te),c(te,ne),c(te,re),c(te,se),x(se,t[0]),c(ee,oe),c(ee,ie),c(ie,le),c(ie,ae),c(ie,ce),c(ce,ue),c(T,de),Be&&Be.m(T,null),c(L,fe),c(L,he);for(let e=0;e<Ce.length;e+=1)Ce[e]&&Ce[e].m(he,null);c(L,pe),c(L,ge),c(ge,be),c(n,ye),Ie&&Ie.m(n,null),me||(we=[y(B,"click",t[19]),y(P,"change",t[21]),y(P,"change",t[13]),y(Y,"change",t[22]),y(se,"input",t[23]),y(ce,"click",t[15]),y(ge,"click",t[18])],me=!0)},p(e,t){if(e[10]?_e?_e.p(e,t):(_e=Os(e),_e.c(),_e.m(n,i)):_e&&(_e.d(1),_e=null),e[3]?.success?$e?$e.p(e,t):($e=Rs(e),$e.c(),$e.m(n,l)):$e&&($e.d(1),$e=null),2048&t[0]&&ve!==(ve=(e[11]?.current_version||"unknown")+"")&&v(k,ve),2064&t[0]&&C!==(C=e[4]||(e[11]?.available_versions?.length||0)<2)&&(B.disabled=C),256&t[0]&&xe!==(xe=e[8]?"Loading...":"-- Select release --")&&v(H,xe),64&t[0]){let n;for(ke=G(e[6]),n=0;n<ke.length;n+=1){const r=Ns(e,ke,n);Ae[n]?Ae[n].p(r,t):(Ae[n]=Ps(r),Ae[n].c(),Ae[n].m(P,null))}for(;n<Ae.length;n+=1)Ae[n].d(1);Ae.length=ke.length}if(272&t[0]&&V!==(V=e[4]||e[8])&&(P.disabled=V),192&t[0]&&_(P,e[7]),16&t[0]&&(Y.disabled=e[4]),2&t[0]&&_(Y,e[1]),16&t[0]&&(se.disabled=e[4]),1&t[0]&&se.value!==e[0]&&x(se,e[0]),16&t[0]&&(ce.disabled=e[4]),e[2]?Be?Be.p(e,t):(Be=Ds(e),Be.c(),Be.m(T,null)):Be&&(Be.d(1),Be=null),217616&t[0]){let n;for(Se=G(Object.entries(e[12])),n=0;n<Se.length;n+=1){const r=Us(e,Se,n);Ce[n]?Ce[n].p(r,t):(Ce[n]=Gs(r),Ce[n].c(),Ce[n].m(he,null))}for(;n<Ce.length;n+=1)Ce[n].d(1);Ce.length=Se.length}16&t[0]&&Ee!==(Ee=e[4]?"Installing...":"Install All Selected")&&v(be,Ee),16&t[0]&&(ge.disabled=e[4]),e[11]?.available_versions?.length?Ie?Ie.p(e,t):(Ie=Ys(e),Ie.c(),Ie.m(n,null)):Ie&&(Ie.d(1),Ie=null)},i:e,o:e,d(e){e&&d(n),_e&&_e.d(),$e&&$e.d(),f(Ae,e),Be&&Be.d(),f(Ce,e),Ie&&Ie.d(),me=!1,r(we)}}}function eo(e,t,n){let r,s,o,a,c;i(e,wr,e=>n(10,r=e)),i(e,fr,e=>n(29,s=e)),i(e,hr,e=>n(30,o=e)),i(e,mr,e=>n(31,a=e)),i(e,yr,e=>n(11,c=e));let u="",d="",f="amd64",h=null,p=!1,g=!1,b=[],y="",m=!1;const w={launcher:{label:"Launcher",options:[{value:"orly-launcher",label:"orly-launcher"},{value:"custom",label:"Custom"}],required:!0},relay:{label:"Relay",options:[{value:"orly",label:"orly"},{value:"custom",label:"Custom"}],required:!0},database:{label:"Database",options:[{value:"orly-db-badger",label:"Badger"},{value:"orly-db-neo4j",label:"Neo4j"},{value:"custom",label:"Custom"}],required:!0},acl:{label:"ACL",options:[{value:"none",label:"None (disabled)"},{value:"orly-acl-follows",label:"Follows"},{value:"orly-acl-managed",label:"Managed"},{value:"orly-acl-curation",label:"Curation"},{value:"custom",label:"Custom"}],required:!1},sync:{label:"Sync",options:[{value:"none",label:"None (disabled)"},{value:"orly-sync-negentropy",label:"Negentropy"},{value:"custom",label:"Custom"}],required:!1}};let v={launcher:{selected:"orly-launcher",customUrl:"",url:"",installing:!1,installed:!1},relay:{selected:"orly",customUrl:"",url:"",installing:!1,installed:!1},database:{selected:"orly-db-badger",customUrl:"",url:"",installing:!1,installed:!1},acl:{selected:"none",customUrl:"",url:"",installing:!1,installed:!1},sync:{selected:"none",customUrl:"",url:"",installing:!1,installed:!1}};async function x(){l(mr,a=!0,a);try{l(yr,c=await async function(e,t){const n=await vr("/api/binaries",{},e,t);if(!n.ok)throw new Error(`Failed to fetch binaries: ${n.statusText}`);return n.json()}(o,s),c),l(wr,r="",r)}catch(e){l(wr,r=e.message,r)}finally{l(mr,a=!1,a)}}function E(e){if(!d||!u)return"";const t=u.replace(/^v/,"");return`${d}/${e}-${t}-linux-${f}`}function _(){for(const e of Object.keys(v)){const t=v[e];"none"!==t.selected&&"custom"!==t.selected?t.url=E(t.selected):"custom"===t.selected?t.url=t.customUrl:t.url=""}n(9,v)}function k(e){_()}function A(e){const t=v[e];if("custom"===t.selected){const n=t.customUrl.split("/");return n[n.length-1].replace(/-[\d.]+-linux-(amd64|arm64)$/,"")||e}return t.selected}function B(e){const t=v[e];return"custom"===t.selected?t.customUrl:t.url}async function S(e){const t=v[e],i=B(e);if(i.trim())if(u.trim()){t.installing=!0,n(9,v),l(wr,r="",r);try{const r=A(e),l={[r]:i.trim()},a=await xr(o,s,u.trim(),l);if(a.success){if(t.installed=!0,"launcher"===e)n(5,g=!0),n(3,h={success:!0,message:`Downloaded ${r}. Click 'Restart Launcher' to apply.`,downloaded_files:a.downloaded_files});else{n(3,h={success:!0,message:`Downloaded ${r}, restarting service...`,downloaded_files:a.downloaded_files});try{await async function(e,t,n){const r=await vr("/api/restart-service",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({service:n})},e,t);if(!r.ok){const e=await r.json().catch(()=>({}));throw new Error(e.message||`Restart failed: ${r.statusText}`)}return r.json()}(o,s,r),n(3,h={success:!0,message:`${r} installed and restart initiated`,downloaded_files:a.downloaded_files})}catch(e){n(3,h={success:!0,message:`Downloaded ${r}, but restart failed: ${e.message}`,downloaded_files:a.downloaded_files})}}await x()}}catch(t){l(wr,r=`Failed to install ${w[e].label}: ${t.message}`,r)}finally{t.installing=!1,n(9,v)}}else l(wr,r="Version is required",r);else l(wr,r=`URL is required for ${w[e].label}`,r)}C(async()=>{await x(),await async function(){n(8,m=!0);try{const e=await async function(e,t){const n=await vr("/api/releases",{},e,t);if(!n.ok)throw new Error(`Failed to fetch releases: ${n.statusText}`);return n.json()}(o,s);e.releases&&n(6,b=e.releases.map(e=>({tag:e.tag,message:e.message||""})))}catch(e){console.error("Failed to fetch releases:",e)}finally{n(8,m=!1)}}()});return e.$$.update=()=>{3&e.$$.dirty[0]&&(f||u)&&_()},[u,f,d,h,p,g,b,y,m,v,r,c,w,function(){y&&(n(0,u=y),n(2,d=`https://git.nostrdev.com/mleku/next.orly.dev/releases/download/${y}`),_())},k,function(){let e=prompt("Enter release URL (e.g., https://git.mleku.dev/mleku/next.orly.dev/releases/tag/v0.56.1):");if(!e)return;let t=e.replace(/\/$/,"");if(t.includes("/releases/tag/"))t=t.replace("/releases/tag/","/releases/download/");else if(!t.includes("/releases/download/")){t=t+"/releases/download/"+(u.trim()||"v0.56.1")}const r=t.split("/"),s=r[r.length-1];n(2,d=t),u||n(0,u=s),_()},B,S,async function(){const e={};let t=!1;for(const n of Object.keys(v)){if("none"!==v[n].selected){const r=B(n);if(r.trim()){e[A(n)]=r.trim(),"launcher"===n&&(t=!0)}}}if(u.trim())if(0!==Object.keys(e).length){n(4,p=!0),n(3,h=null),n(5,g=!1),l(wr,r="",r);try{n(3,h=await xr(o,s,u.trim(),e)),await x(),t&&h.success&&n(5,g=!0)}catch(e){l(wr,r=e.message,r)}finally{n(4,p=!1)}}else l(wr,r="No binaries selected for installation",r);else l(wr,r="Version is required",r)},async function(){if(confirm("Are you sure you want to rollback to the previous version?")){n(4,p=!0),l(wr,r="",r);try{const e=await async function(e,t){const n=await vr("/api/rollback",{method:"POST"},e,t);if(!n.ok){const e=await n.json();throw new Error(e.message||`Rollback failed: ${n.statusText}`)}return n.json()}(o,s);n(3,h={success:!0,message:`Rolled back from ${e.previous_version} to ${e.current_version}. Restart services to apply.`}),await x()}catch(e){l(wr,r=e.message,r)}finally{n(4,p=!1)}}},async function(){if(confirm("Restart the launcher? This will briefly disconnect you."))try{await Er(o,s),n(3,h={success:!0,message:"Launcher restart initiated. The page will reconnect automatically..."}),setTimeout(()=>{window.location.reload()},5e3)}catch(e){l(wr,r=e.message,r)}},function(){y=$(this),n(7,y),n(6,b)},function(){f=$(this),n(1,f)},function(){u=this.value,n(0,u)},function(e){v[e].selected=$(this),n(9,v),n(12,w)},e=>k(),function(e){v[e].customUrl=this.value,n(9,v),n(12,w)},e=>{n(9,v[e].url=v[e].customUrl,v)},e=>S(e)]}class to extends te{constructor(e){super(),ee(this,e,eo,Xs,o,{},null,[-1,-1])}}function no(t){let n,r;return n=new to({}),{c(){Y(n.$$.fragment)},m(e,t){J(n,e,t),r=!0},p:e,i(e){r||(Z(n.$$.fragment,e),r=!0)},o(e){W(n.$$.fragment,e),r=!1},d(e){Q(n,e)}}}function ro(t){let n,r;return n=new Ls({}),{c(){Y(n.$$.fragment)},m(e,t){J(n,e,t),r=!0},p:e,i(e){r||(Z(n.$$.fragment,e),r=!0)},o(e){W(n.$$.fragment,e),r=!1},d(e){Q(n,e)}}}function so(t){let n,r;return n=new jr({}),{c(){Y(n.$$.fragment)},m(e,t){J(n,e,t),r=!0},p:e,i(e){r||(Z(n.$$.fragment,e),r=!0)},o(e){W(n.$$.fragment,e),r=!1},d(e){Q(n,e)}}}function oo(t){let n,r,s,o,i,l,a,f;return{c(){n=h("div"),r=h("h2"),r.textContent="ORLY Launcher Admin",s=g(),o=h("p"),o.textContent="Please login to manage the relay services.",i=g(),l=h("button"),l.textContent="Login with Nostr",w(r,"class","svelte-4k9oqz"),w(o,"class","svelte-4k9oqz"),w(l,"class","login-btn svelte-4k9oqz"),w(n,"class","login-prompt svelte-4k9oqz")},m(e,d){u(e,n,d),c(n,r),c(n,s),c(n,o),c(n,i),c(n,l),a||(f=y(l,"click",t[10]),a=!0)},p:e,i:e,o:e,d(e){e&&d(n),a=!1,f()}}}function io(e){let t,n,r,s,o,i,l,a,f,p;n=new le({props:{currentPage:e[0],isLoggedIn:e[4],userPubkey:e[3]}}),n.$on("navigate",e[8]),n.$on("login",e[9]),n.$on("logout",e[6]);const b=[oo,so,ro,no],y=[];function m(e,t){return e[4]?"dashboard"===e[0]?1:"config"===e[0]?2:"update"===e[0]?3:-1:0}function v(t){e[11](t)}~(o=m(e))&&(i=y[o]=b[o](e));let x={isDarkTheme:e[2]};return void 0!==e[1]&&(x.showModal=e[1]),a=new ar({props:x}),U.push(()=>function(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}(a,"showModal",v)),a.$on("login",e[5]),a.$on("close",e[12]),{c(){t=h("main"),Y(n.$$.fragment),r=g(),s=h("div"),i&&i.c(),l=g(),Y(a.$$.fragment),w(s,"class","content svelte-4k9oqz"),w(t,"class","svelte-4k9oqz"),k(t,"dark-theme",e[2])},m(e,i){u(e,t,i),J(n,t,null),c(t,r),c(t,s),~o&&y[o].m(s,null),c(t,l),J(a,t,null),p=!0},p(e,[r]){const l={};1&r&&(l.currentPage=e[0]),16&r&&(l.isLoggedIn=e[4]),8&r&&(l.userPubkey=e[3]),n.$set(l);let c=o;o=m(e),o===c?~o&&y[o].p(e,r):(i&&(K(),W(y[c],1,1,()=>{y[c]=null}),M()),~o?(i=y[o],i?i.p(e,r):(i=y[o]=b[o](e),i.c()),Z(i,1),i.m(s,null)):i=null);const u={};var d;4&r&&(u.isDarkTheme=e[2]),!f&&2&r&&(f=!0,u.showModal=e[1],d=()=>f=!1,N.push(d)),a.$set(u),(!p||4&r)&&k(t,"dark-theme",e[2])},i(e){p||(Z(n.$$.fragment,e),Z(i),Z(a.$$.fragment,e),p=!0)},o(e){W(n.$$.fragment,e),W(i),W(a.$$.fragment,e),p=!1},d(e){e&&d(t),Q(n),~o&&y[o].d(),Q(a)}}}function lo(e,t,n){let r,s,o,a;i(e,pr,e=>n(13,r=e)),i(e,hr,e=>n(14,s=e)),i(e,fr,e=>n(3,o=e)),i(e,dr,e=>n(4,a=e));let c="dashboard",u=!1,d=!1;function f(e){n(0,c=e)}C(()=>{const e=localStorage.getItem("launcher_auth_method"),t=localStorage.getItem("launcher_pubkey");"extension"===e&&t&&window.nostr&&window.nostr.getPublicKey().then(e=>{e===t&&(l(dr,a=!0,a),l(fr,o=e,o),l(hr,s=window.nostr,s),l(pr,r="extension",r))}).catch(()=>{localStorage.removeItem("launcher_auth_method"),localStorage.removeItem("launcher_pubkey")}),n(2,d=window.matchMedia("(prefers-color-scheme: dark)").matches)});return[c,u,d,o,a,function(e){const{method:t,pubkey:i,signer:c,privateKey:d}=e.detail;l(dr,a=!0,a),l(fr,o=i,o),l(hr,s=c,s),l(pr,r=t,r),localStorage.setItem("launcher_auth_method",t),localStorage.setItem("launcher_pubkey",i),n(1,u=!1)},function(){l(dr,a=!1,a),l(fr,o="",o),l(hr,s=null,s),l(pr,r="",r),localStorage.removeItem("launcher_auth_method"),localStorage.removeItem("launcher_pubkey"),localStorage.removeItem("launcher_privkey_encrypted")},f,e=>f(e.detail),()=>n(1,u=!0),()=>n(1,u=!0),function(e){u=e,n(1,u)},()=>n(1,u=!1)]}return new class extends te{constructor(e){super(),ee(this,e,lo,io,o,{})}}({target:document.body})}();
|