smart-home-engine 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jsonMode-CXWNuhmR.js","assets/monaco-langs-BW2J83t5.js","assets/monaco-langs-DyX1CsEw.css","assets/tsMode-Ca6ze8bD.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jsonMode-CXWNuhmR.js","assets/monaco-langs-BW2J83t5.js","assets/monaco-langs-DyX1CsEw.css","assets/tsMode-DK6XHYAS.js"])))=>i.map(i=>d[i]);
2
2
  var zA=Object.defineProperty;var lL=o=>{throw TypeError(o)};var VA=(o,e,t)=>e in o?zA(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var yn=(o,e,t)=>VA(o,typeof e!="symbol"?e+"":e,t),yw=(o,e,t)=>e.has(o)||lL("Cannot "+t);var be=(o,e,t)=>(yw(o,e,"read from private field"),t?t.call(o):e.get(o)),gn=(o,e,t)=>e.has(o)?lL("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),pn=(o,e,t,i)=>(yw(o,e,"write to private field"),i?i.call(o,t):e.set(o,t),t),zn=(o,e,t)=>(yw(o,e,"access private method"),t);import{_ as AD,m as OD,l as ui,A as yo,C as Ae,I as Un,D as o_,a as as,g as FD,M as Gt,b as ji,E as ca,c as B,r as Tn,d as Nr,e as C,f as jA,h as Wn,R as _n,S as Fi,i as to,j as Ar,k as Sn,n as nn,o as xe,p as lt,K as us,q as oi,s as Dt,t as Ss,u as Z,v as dn,O as Ha,w as _s,P as gi,x as ww,y as r_,z as HD,B as pl,F as da,G as wS,H as Ws,U as Pn,J as uf,L as pi,N as wl,Q as $A,T as go,V as SS,W as UA,X as WD,$ as si,Y as xn,Z as wn,a0 as Zn,a1 as Zi,a2 as Go,a3 as dp,a4 as Lt,a5 as Dm,a6 as qA,a7 as GA,a8 as ws,a9 as KA,aa as ua,ab as wo,ac as bi,ad as BD,ae as jn,af as ZA,ag as YA,ah as mo,ai as zf,aj as hs,ak as my,al as co,am as Bc,an as Zx,ao as vy,ap as Os,aq as hf,ar as Fs,as as by,at as yy,au as XA,av as a_,aw as Vf,ax as Ml,ay as QA,az as jf,aA as JA,aB as Yx,aC as e2,aD as t2,aE as cL,aF as rs,aG as _l,aH as uo,aI as Qi,aJ as dl,aK as i2,aL as Va,aM as $o,aN as Es,aO as ha,aP as Xx,aQ as Cs,aR as is,aS as tv,aT as Xi,aU as zD,aV as n2,aW as Qx,aX as wy,aY as Jx,aZ as e0,a_ as bd,a$ as s2,b0 as t0,b1 as o2,b2 as i0,b3 as Rl,b4 as Nl,b5 as ff,b6 as up,b7 as Mo,b8 as l_,b9 as iv,ba as Sw,bb as Nn,bc as n0,bd as c_,be as Sy,bf as r2,bg as VD,bh as hp,bi as gf,bj as fp,bk as d_,bl as Cy,bm as Cn,bn as zc,bo as u_,bp as a2,bq as l2,br as s0,bs as c2,bt as nv,bu as ur,bv as o0,bw as pf,bx as Al,by as $f,bz as cn,bA as _f,bB as jD,bC as h_,bD as d2,bE as yd,bF as ei,bG as dL,bH as Tm,bI as $D,bJ as Hr,bK as oa,bL as On,bM as mf,bN as Er,bO as vf,bP as Kn,bQ as gp,bR as Fu,bS as CS,bT as UD,bU as qD,bV as GD,bW as r0,bX as Lo,bY as En,bZ as f_,b_ as KD,b$ as ml,c0 as xy,c1 as u2,c2 as Ch,c3 as uL,c4 as g_,c5 as ZD,c6 as xh,c7 as h2,c8 as wr,c9 as ky,ca as f2,cb as So,cc as fa,cd as p_,ce as pp,cf as YD,cg as ar,ch as __,ci as Ly,cj as g2,ck as p2,cl as _2,cm as Uf,cn as ja,co as Ds,cp as m2,cq as a0,cr as v2,cs as b2,ct as hL,cu as y2,cv as m_,cw as Sl,cx as xS,cy as mu,cz as Cl,cA as w2,cB as Wa,cC as Dr,cD as Bo,cE as fL,cF as no,cG as v_,cH as Pc,cI as $a,cJ as S2,cK as ga,cL as _p,cM as Iy,cN as XD,cO as C2,cP as x2,cQ as l0,cR as k2,cS as mp,cT as L2,cU as sc,cV as vp,cW as gL,cX as I2,cY as E2,cZ as Ga,c_ as D2,c$ as c0,d0 as QD,d1 as JD,d2 as eT,d3 as tT,d4 as T2,d5 as P2,d6 as iT,d7 as nT,d8 as M2,d9 as d0,da as R2,db as N2,dc as Qn,dd as A2,de as u0,df as O2,dg as kh,dh as pL,di as F2,dj as H2,dk as W2,dl as B2,dm as z2,dn as V2,dp as bf,dq as Ey,dr as kS,ds as j2,dt as $2,du as _L,dv as LS,dw as U2,dx as mL,dy as Cw,dz as q2,dA as sT,dB as G2,dC as oT,dD as IS,dE as K2,dF as Z2,dG as Y2,dH as rT,dI as aT,dJ as X2,dK as sv,dL as lT,dM as Dy,dN as Q2,dO as J2,dP as Mc,dQ as h0,dR as eO,dS as vL,dT as bL,dU as tO,dV as Lh,dW as cT,dX as iO,dY as nO,dZ as sO,d_ as oO,d$ as dT,e0 as uT,e1 as hT,e2 as fT,e3 as rO,e4 as Ba,e5 as yL,e6 as aO,e7 as b_,e8 as lO,e9 as xg,ea as gT,eb as wL,ec as bp,ed as pT,ee as ov,ef as cO,eg as _T,eh as dO,ei as mT,ej as uO,ek as hO,el as vT,em as bT,en as xl,eo as Ty,ep as fO,eq as yT,er as Uo,es as wd,et as wT,eu as gO,ev as pO,ew as ST,ex as CT,ey as _O,ez as xT,eA as kT,eB as yp,eC as mO,eD as vO,eE as bO,eF as yO,eG as fg,eH as SL,eI as wO,eJ as SO,eK as CO,eL as rv,eM as Ks,eN as xO,eO as ES,eP as Hu,eQ as kO,eR as cl,eS as LO,eT as IO,eU as LT,eV as EO,eW as Vg,eX as DO,eY as TO,eZ as PO,e_ as MO,e$ as CL,f0 as xL,f1 as kL,f2 as Wu,f3 as f0,f4 as IT,f5 as DS,f6 as Pm,f7 as ET,f8 as av,f9 as RO,fa as NO,fb as AO,fc as OO,fd as g0,fe as DT,ff as FO,fg as lv,fh as TT,fi as PT,fj as HO,fk as WO,fl as BO,fm as zO,fn as VO,fo as jO,fp as $O,fq as UO,fr as MT,fs as qO,ft as cv,fu as RT,fv as GO,fw as NT,fx as KO,fy as AT,fz as OT,fA as ZO,fB as LL,fC as FT,fD as IL,fE as YO,fF as xw,fG as EL,fH as XO,fI as QO,fJ as JO,fK as Pa,fL as Rc,fM as eF,fN as DL,fO as Mm,fP as tF,fQ as ul,fR as Py,fS as TS,fT as iF,fU as HT,fV as WT,fW as so,fX as TL,fY as Y_,fZ as p0,f_ as nF,f$ as sF,g0 as oF,g1 as rF,g2 as aF,g3 as lF,g4 as cF,g5 as dF,g6 as PL,g7 as uF,g8 as hF,g9 as fF,ga as yf,gb as jg,gc as BT,gd as gF,ge as _0,gf as Rm,gg as X_,gh as kw,gi as pF,gj as _F,gk as zT,gl as mF,gm as m0,gn as vF,go as bF,gp as VT,gq as My,gr as yF,gs as dv,gt as v0,gu as b0,gv as y0,gw as jT,gx as $T,gy as UT,gz as qT,gA as GT,gB as KT,gC as ZT,gD as ML,gE as YT,gF as eh,gG as wF,gH as SF,gI as CF,gJ as xF,gK as XT,gL as kF,gM as LF,gN as RL,gO as PS,gP as uc,gQ as IF,gR as EF,gS as DF,gT as TF,gU as PF,gV as MF,gW as NL,gX as w0,gY as MS,gZ as RF,g_ as RS,g$ as NF,h0 as AF,h1 as OF,h2 as FF,h3 as S0,h4 as QT,h5 as AL,h6 as OL,h7 as HF,h8 as WF,h9 as BF,ha as FL,hb as Lw,hc as zF,hd as VF,he as jF,hf as Iw,hg as JT,hh as eP,hi as tP,hj as iP,hk as kl,hl as nP,hm as C0,hn as HL,ho as $F,hp as sP,hq as UF,hr as qF,hs as Ry,ht as Ny,hu as Bu,hv as Ay,hw as y_,hx as GF,hy as Oy,hz as KF,hA as ZF,hB as YF,hC as oP,hD as gg,hE as XF,hF as QF,hG as JF,hH as e3,hI as w_,hJ as t3,hK as rP,hL as aP,hM as lP,hN as NS,hO as i3,hP as n3,hQ as s3,hR as o3,hS as r3,hT as AS,hU as a3,hV as l3,hW as c3,hX as d3,hY as u3,hZ as h3,h_ as f3,h$ as g3,i0 as cP,i1 as p3,i2 as _3,i3 as m3,i4 as WL,i5 as v3,i6 as b3,i7 as od,i8 as mr,i9 as y3,ia as w3}from"./monaco-langs-BW2J83t5.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const s of n)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function t(n){const s={};return n.integrity&&(s.integrity=n.integrity),n.referrerPolicy&&(s.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?s.credentials="include":n.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(n){if(n.ep)return;n.ep=!0;const s=t(n);fetch(n.href,s)}})();const dP=!1;var x0=Array.isArray,S3=Array.prototype.indexOf,uv=Array.prototype.includes,Fy=Array.from,C3=Object.defineProperty,zh=Object.getOwnPropertyDescriptor,x3=Object.getOwnPropertyDescriptors,k3=Object.prototype,L3=Array.prototype,uP=Object.getPrototypeOf,BL=Object.isExtensible;const Hy=()=>{};function I3(o){for(var e=0;e<o.length;e++)o[e]()}function hP(){var o,e,t=new Promise((i,n)=>{o=i,e=n});return{promise:t,resolve:o,reject:e}}function E3(o,e,t=!1){return o===void 0?t?e():e:o}function zL(o,e){if(Array.isArray(o))return o;if(!(Symbol.iterator in o))return Array.from(o);const t=[];for(const i of o)if(t.push(i),t.length===e)break;return t}const ao=2,wf=4,Wy=8,fP=1<<24,ra=16,la=32,Nc=64,OS=128,Mr=512,Zs=1024,Js=2048,Ua=4096,Eo=8192,Rr=16384,qf=32768,FS=1<<25,Sf=65536,hv=1<<17,D3=1<<18,Gf=1<<19,T3=1<<20,Aa=1<<25,vu=65536,fv=1<<21,Vh=1<<22,hc=1<<23,Sd=Symbol("$state"),P3=Symbol("legacy props"),M3=Symbol(""),Nm=Symbol("attributes"),HS=Symbol("class"),WS=Symbol("style"),kg=Symbol("text"),Am=Symbol("form reset"),By=new class extends Error{constructor(){super(...arguments);yn(this,"name","StaleReactionError");yn(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var MD;const R3=!!((MD=globalThis.document)!=null&&MD.contentType)&&globalThis.document.contentType.includes("xml");function gP(o){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function N3(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function A3(o,e,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function O3(o){throw new Error("https://svelte.dev/e/effect_in_teardown")}function F3(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function H3(o){throw new Error("https://svelte.dev/e/effect_orphan")}function W3(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function B3(o){throw new Error("https://svelte.dev/e/props_invalid_value")}function z3(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function V3(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function j3(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function $3(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const U3=1,q3=2,pP=4,G3=8,K3=16,Z3=1,Y3=4,X3=8,Q3=16,J3=1,eH=2,Gs=Symbol("uninitialized"),_P="http://www.w3.org/1999/xhtml",tH="http://www.w3.org/2000/svg",iH="http://www.w3.org/1998/Math/MathML";function nH(){console.warn("https://svelte.dev/e/derived_inert")}function sH(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function oH(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function mP(o){return o===this.v}function rH(o,e){return o!=o?e==e:o!==e||o!==null&&typeof o=="object"||typeof o=="function"}function vP(o){return!rH(o,this.v)}let aH=!1,ro=null;function Cf(o){ro=o}function Ts(o,e=!1,t){ro={p:ro,i:!1,c:null,e:null,s:o,x:null,r:Dn,l:null}}function Ps(o){var e=ro,t=e.e;if(t!==null){e.e=null;for(var i of t)BP(i)}return o!==void 0&&(e.x=o),e.i=!0,ro=e.p,o??{}}function bP(){return!0}let dd=[];function yP(){var o=dd;dd=[],I3(o)}function fc(o){if(dd.length===0&&!Ug){var e=dd;queueMicrotask(()=>{e===dd&&yP()})}dd.push(o)}function lH(){for(;dd.length>0;)yP()}function wP(o){var e=Dn;if(e===null)return In.f|=hc,o;if((e.f&qf)===0&&(e.f&wf)===0)throw o;oc(o,e)}function oc(o,e){for(;e!==null;){if((e.f&OS)!==0){if((e.f&qf)===0)throw o;try{e.b.error(o);return}catch(t){o=t}}e=e.parent}throw o}const cH=-7169;function Ls(o,e){o.f=o.f&cH|e}function k0(o){(o.f&Mr)!==0||o.deps===null?Ls(o,Zs):Ls(o,Ua)}function SP(o){if(o!==null)for(const e of o)(e.f&ao)===0||(e.f&vu)===0||(e.f^=vu,SP(e.deps))}function CP(o,e,t){(o.f&Js)!==0?e.add(o):(o.f&Ua)!==0&&t.add(o),SP(o.deps),Ls(o,Zs)}let Q_=!1;function dH(o){var e=Q_;try{return Q_=!1,[o(),Q_]}finally{Q_=e}}let Ew=null,th=null,Yi=null,$g=null,io=null,BS=null,Ug=!1,Dw=!1,Ih=null,Om=null;var VL=0;let uH=1;var qh,tc,gd,Gh,Kh,Zh,ol,Yh,Fo,Jp,rl,Yr,Ia,Xh,pd,Jn,zS,Lg,VS,xP,kP,mh,hH,Ig;const xb=class xb{constructor(){gn(this,Jn);yn(this,"id",uH++);gn(this,qh,!1);yn(this,"linked",!0);gn(this,tc,null);gn(this,gd,null);yn(this,"async_deriveds",new Map);yn(this,"current",new Map);yn(this,"previous",new Map);gn(this,Gh,new Set);gn(this,Kh,new Set);gn(this,Zh,0);gn(this,ol,new Map);gn(this,Yh,null);gn(this,Fo,[]);gn(this,Jp,[]);gn(this,rl,new Set);gn(this,Yr,new Set);gn(this,Ia,new Map);gn(this,Xh,new Set);yn(this,"is_fork",!1);gn(this,pd,!1);th===null?Ew=th=this:(pn(th,gd,this),pn(this,tc,th)),th=this}skip_effect(e){be(this,Ia).has(e)||be(this,Ia).set(e,{d:[],m:[]}),be(this,Xh).delete(e)}unskip_effect(e,t=i=>this.schedule(i)){var i=be(this,Ia).get(e);if(i){be(this,Ia).delete(e);for(var n of i.d)Ls(n,Js),t(n);for(n of i.m)Ls(n,Ua),t(n)}be(this,Xh).add(e)}capture(e,t,i=!1){e.v!==Gs&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&hc)===0&&(this.current.set(e,[t,i]),io==null||io.set(e,t)),this.is_fork||(e.v=t)}activate(){Yi=this}deactivate(){Yi=null,io=null}flush(){try{Dw=!0,Yi=this,zn(this,Jn,Lg).call(this)}finally{VL=0,BS=null,Ih=null,Om=null,Dw=!1,Yi=null,io=null,Cd.clear()}}discard(){var e;for(const t of be(this,Kh))t(this);be(this,Kh).clear(),zn(this,Jn,Ig).call(this),(e=be(this,Yh))==null||e.resolve()}register_created_effect(e){be(this,Jp).push(e)}increment(e,t){if(pn(this,Zh,be(this,Zh)+1),e){let i=be(this,ol).get(t)??0;be(this,ol).set(t,i+1)}}decrement(e,t){if(pn(this,Zh,be(this,Zh)-1),e){let i=be(this,ol).get(t)??0;i===1?be(this,ol).delete(t):be(this,ol).set(t,i-1)}be(this,pd)||(pn(this,pd,!0),fc(()=>{pn(this,pd,!1),this.linked&&this.flush()}))}transfer_effects(e,t){for(const i of e)be(this,rl).add(i);for(const i of t)be(this,Yr).add(i);e.clear(),t.clear()}oncommit(e){be(this,Gh).add(e)}ondiscard(e){be(this,Kh).add(e)}settled(){return(be(this,Yh)??pn(this,Yh,hP())).promise}static ensure(){if(Yi===null){const e=Yi=new xb;!Dw&&!Ug&&fc(()=>{be(e,qh)||e.flush()})}return Yi}apply(){{io=null;return}}schedule(e){var n;if(BS=e,(n=e.b)!=null&&n.is_pending&&(e.f&(wf|Wy|fP))!==0&&(e.f&qf)===0){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var i=t.f;if(Ih!==null&&t===Dn&&(In===null||(In.f&ao)===0))return;if((i&(Nc|la))!==0){if((i&Zs)===0)return;t.f^=Zs}}be(this,Fo).push(t)}};qh=new WeakMap,tc=new WeakMap,gd=new WeakMap,Gh=new WeakMap,Kh=new WeakMap,Zh=new WeakMap,ol=new WeakMap,Yh=new WeakMap,Fo=new WeakMap,Jp=new WeakMap,rl=new WeakMap,Yr=new WeakMap,Ia=new WeakMap,Xh=new WeakMap,pd=new WeakMap,Jn=new WeakSet,zS=function(){if(this.is_fork)return!0;for(const i of be(this,ol).keys()){for(var e=i,t=!1;e.parent!==null;){if(be(this,Ia).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1},Lg=function(){var d,u,f,g;pn(this,qh,!0),VL++>1e3&&(zn(this,Jn,Ig).call(this),gH());for(const p of be(this,rl))be(this,Yr).delete(p),Ls(p,Js),this.schedule(p);for(const p of be(this,Yr))Ls(p,Ua),this.schedule(p);const e=be(this,Fo);pn(this,Fo,[]),this.apply();var t=Ih=[],i=[],n=Om=[];for(const p of e)try{zn(this,Jn,VS).call(this,p,t,i)}catch(w){throw EP(p),zn(this,Jn,zS).call(this)||this.discard(),w}if(Yi=null,n.length>0){var s=xb.ensure();for(const p of n)s.schedule(p)}if(Ih=null,Om=null,zn(this,Jn,zS).call(this)){zn(this,Jn,mh).call(this,i),zn(this,Jn,mh).call(this,t);for(const[p,w]of be(this,Ia))IP(p,w);n.length>0&&zn(d=Yi,Jn,Lg).call(d);return}const r=zn(this,Jn,xP).call(this);if(r){zn(this,Jn,mh).call(this,i),zn(this,Jn,mh).call(this,t),zn(u=r,Jn,kP).call(u,this);return}be(this,rl).clear(),be(this,Yr).clear();for(const p of be(this,Gh))p(this);be(this,Gh).clear(),$g=this,jL(i),jL(t),$g=null,(f=be(this,Yh))==null||f.resolve();var a=Yi;if(be(this,Zh)===0&&(be(this,Fo).length===0||a!==null)&&zn(this,Jn,Ig).call(this),be(this,Fo).length>0)if(a!==null){const p=a;be(p,Fo).push(...be(this,Fo).filter(w=>!be(p,Fo).includes(w)))}else a=this;a!==null&&zn(g=a,Jn,Lg).call(g)},VS=function(e,t,i){e.f^=Zs;for(var n=e.first;n!==null;){var s=n.f,r=(s&(la|Nc))!==0,a=r&&(s&Zs)!==0,d=a||(s&Eo)!==0||be(this,Ia).has(n);if(!d&&n.fn!==null){r?n.f^=Zs:(s&wf)!==0?t.push(n):C_(n)&&((s&ra)!==0&&be(this,Yr).add(n),kf(n));var u=n.first;if(u!==null){n=u;continue}}for(;n!==null;){var f=n.next;if(f!==null){n=f;break}n=n.parent}}},xP=function(){for(var e=be(this,tc);e!==null;){if(!e.is_fork){for(const[t,[,i]]of this.current)if(e.current.has(t)&&!i)return e}e=be(e,tc)}return null},kP=function(e){var i;for(const[n,s]of e.current)!this.previous.has(n)&&e.previous.has(n)&&this.previous.set(n,e.previous.get(n)),this.current.set(n,s);for(const[n,s]of e.async_deriveds){const r=this.async_deriveds.get(n);r&&s.promise.then(r.resolve).catch(r.reject)}this.transfer_effects(be(e,rl),be(e,Yr));const t=n=>{var s=n.reactions;if(s!==null)for(const d of s){var r=d.f;if((r&ao)!==0)t(d);else{var a=d;r&(Vh|ra)&&!this.async_deriveds.has(a)&&(be(this,Yr).delete(a),Ls(a,Js),this.schedule(a))}}};for(const n of this.current.keys())t(n);this.oncommit(()=>e.discard()),zn(i=e,Jn,Ig).call(i),Yi=this,zn(this,Jn,Lg).call(this)},mh=function(e){for(var t=0;t<e.length;t+=1)CP(e[t],be(this,rl),be(this,Yr))},hH=function(){var f;for(let g=Ew;g!==null;g=be(g,gd)){var e=g.id<this.id,t=[];for(const[p,[w,y]]of this.current){if(g.current.has(p)){var i=g.current.get(p)[0];if(e&&w!==i)g.current.set(p,[w,y]);else continue}t.push(p)}if(e)for(const[p,w]of this.async_deriveds){const y=g.async_deriveds.get(p);y&&w.promise.then(y.resolve).catch(y.reject)}if(be(g,qh)){var n=[...g.current.keys()].filter(p=>!g.current.get(p)[1]&&!this.current.has(p));if(n.length===0)e&&g.discard();else if(t.length>0){if(e)for(const p of be(this,Xh))g.unskip_effect(p,w=>{var y;(w.f&(ra|Vh))!==0?g.schedule(w):zn(y=g,Jn,mh).call(y,[w])});g.activate();var s=new Set,r=new Map;for(var a of t)LP(a,n,s,r);r=new Map;var d=[...g.current].filter(([p,w])=>{const y=this.current.get(p);return y?y[0]!==w[0]||y[1]!==w[1]:!0}).map(([p])=>p);if(d.length>0)for(const p of be(this,Jp))(p.f&(Rr|Eo|hv))===0&&L0(p,d,r)&&((p.f&(Vh|ra))!==0?(Ls(p,Js),g.schedule(p)):be(g,rl).add(p));if(be(g,Fo).length>0&&!be(g,pd)){g.apply();for(var u of be(g,Fo))zn(f=g,Jn,VS).call(f,u,[],[]);pn(g,Fo,[])}g.deactivate()}}}},Ig=function(){if(this.linked){var e=be(this,tc),t=be(this,gd);e===null?Ew=t:pn(e,gd,t),t===null?th=e:pn(t,tc,e),this.linked=!1}};let bu=xb;function fH(o){var e=Ug;Ug=!0;try{for(var t;;){if(lH(),Yi===null)return t;Yi.flush()}}finally{Ug=e}}function gH(){try{W3()}catch(o){oc(o,BS)}}let Gr=null;function jL(o){var e=o.length;if(e!==0){for(var t=0;t<e;){var i=o[t++];if((i.f&(Rr|Eo))===0&&C_(i)&&(Gr=new Set,kf(i),i.deps===null&&i.first===null&&i.nodes===null&&i.teardown===null&&i.ac===null&&jP(i),(Gr==null?void 0:Gr.size)>0)){Cd.clear();for(const n of Gr){if((n.f&(Rr|Eo))!==0)continue;const s=[n];let r=n.parent;for(;r!==null;)Gr.has(r)&&(Gr.delete(r),s.push(r)),r=r.parent;for(let a=s.length-1;a>=0;a--){const d=s[a];(d.f&(Rr|Eo))===0&&kf(d)}}Gr.clear()}}Gr=null}}function LP(o,e,t,i){if(!t.has(o)&&(t.add(o),o.reactions!==null))for(const n of o.reactions){const s=n.f;(s&ao)!==0?LP(n,e,t,i):(s&(Vh|ra))!==0&&(s&Js)===0&&L0(n,e,i)&&(Ls(n,Js),I0(n))}}function L0(o,e,t){const i=t.get(o);if(i!==void 0)return i;if(o.deps!==null)for(const n of o.deps){if(uv.call(e,n))return!0;if((n.f&ao)!==0&&L0(n,e,t))return t.set(n,!0),!0}return t.set(o,!1),!1}function I0(o){Yi.schedule(o)}function IP(o,e){if(!((o.f&la)!==0&&(o.f&Zs)!==0)){(o.f&Js)!==0?e.d.push(o):(o.f&Ua)!==0&&e.m.push(o),Ls(o,Zs);for(var t=o.first;t!==null;)IP(t,e),t=t.next}}function EP(o){Ls(o,Zs);for(var e=o.first;e!==null;)EP(e),e=e.next}function pH(o){let e=0,t=yu(0),i;return()=>{P0()&&(c(t),Vy(()=>(e===0&&(i=Fl(()=>o(()=>qg(t)))),e+=1,()=>{fc(()=>{e-=1,e===0&&(i==null||i(),i=void 0,qg(t))})})))}}var _H=Sf|Gf;function mH(o,e,t,i){new vH(o,e,t,i)}var Cr,Kx,xr,_d,Ho,kr,xo,nr,al,md,ic,Qh,e_,t_,ll,kb,Is,bH,yH,wH,jS,Fm,Hm,$S,US;class vH{constructor(e,t,i,n){gn(this,Is);yn(this,"parent");yn(this,"is_pending",!1);yn(this,"transform_error");gn(this,Cr);gn(this,Kx,null);gn(this,xr);gn(this,_d);gn(this,Ho);gn(this,kr,null);gn(this,xo,null);gn(this,nr,null);gn(this,al,null);gn(this,md,0);gn(this,ic,0);gn(this,Qh,!1);gn(this,e_,new Set);gn(this,t_,new Set);gn(this,ll,null);gn(this,kb,pH(()=>(pn(this,ll,yu(be(this,md))),()=>{pn(this,ll,null)})));var s;pn(this,Cr,e),pn(this,xr,t),pn(this,_d,r=>{var a=Dn;a.b=this,a.f|=OS,i(r)}),this.parent=Dn.b,this.transform_error=n??((s=this.parent)==null?void 0:s.transform_error)??(r=>r),pn(this,Ho,N0(()=>{zn(this,Is,jS).call(this)},_H))}defer_effect(e){CP(e,be(this,e_),be(this,t_))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!be(this,xr).pending}update_pending_count(e,t){zn(this,Is,$S).call(this,e,t),pn(this,md,be(this,md)+e),!(!be(this,ll)||be(this,Qh))&&(pn(this,Qh,!0),fc(()=>{pn(this,Qh,!1),be(this,ll)&&xf(be(this,ll),be(this,md))}))}get_effect_pending(){return be(this,kb).call(this),c(be(this,ll))}error(e){if(!be(this,xr).onerror&&!be(this,xr).failed)throw e;Yi!=null&&Yi.is_fork?(be(this,kr)&&Yi.skip_effect(be(this,kr)),be(this,xo)&&Yi.skip_effect(be(this,xo)),be(this,nr)&&Yi.skip_effect(be(this,nr)),Yi.oncommit(()=>{zn(this,Is,US).call(this,e)})):zn(this,Is,US).call(this,e)}}Cr=new WeakMap,Kx=new WeakMap,xr=new WeakMap,_d=new WeakMap,Ho=new WeakMap,kr=new WeakMap,xo=new WeakMap,nr=new WeakMap,al=new WeakMap,md=new WeakMap,ic=new WeakMap,Qh=new WeakMap,e_=new WeakMap,t_=new WeakMap,ll=new WeakMap,kb=new WeakMap,Is=new WeakSet,bH=function(){try{pn(this,kr,Lr(()=>be(this,_d).call(this,be(this,Cr))))}catch(e){this.error(e)}},yH=function(e){const t=be(this,xr).failed;t&&pn(this,nr,Lr(()=>{t(be(this,Cr),()=>e,()=>()=>{})}))},wH=function(){const e=be(this,xr).pending;e&&(this.is_pending=!0,pn(this,xo,Lr(()=>e(be(this,Cr)))),fc(()=>{var t=pn(this,al,document.createDocumentFragment()),i=vl();t.append(i),pn(this,kr,zn(this,Is,Hm).call(this,()=>Lr(()=>be(this,_d).call(this,i)))),be(this,ic)===0&&(be(this,Cr).before(t),pn(this,al,null),kd(be(this,xo),()=>{pn(this,xo,null)}),zn(this,Is,Fm).call(this,Yi))}))},jS=function(){try{if(this.is_pending=this.has_pending_snippet(),pn(this,ic,0),pn(this,md,0),pn(this,kr,Lr(()=>{be(this,_d).call(this,be(this,Cr))})),be(this,ic)>0){var e=pn(this,al,document.createDocumentFragment());O0(be(this,kr),e);const t=be(this,xr).pending;pn(this,xo,Lr(()=>t(be(this,Cr))))}else zn(this,Is,Fm).call(this,Yi)}catch(t){this.error(t)}},Fm=function(e){this.is_pending=!1,e.transfer_effects(be(this,e_),be(this,t_))},Hm=function(e){var t=Dn,i=In,n=ro;qa(be(this,Ho)),Or(be(this,Ho)),Cf(be(this,Ho).ctx);try{return bu.ensure(),e()}catch(s){return wP(s),null}finally{qa(t),Or(i),Cf(n)}},$S=function(e,t){var i;if(!this.has_pending_snippet()){this.parent&&zn(i=this.parent,Is,$S).call(i,e,t);return}pn(this,ic,be(this,ic)+e),be(this,ic)===0&&(zn(this,Is,Fm).call(this,t),be(this,xo)&&kd(be(this,xo),()=>{pn(this,xo,null)}),be(this,al)&&(be(this,Cr).before(be(this,al)),pn(this,al,null)))},US=function(e){be(this,kr)&&(qo(be(this,kr)),pn(this,kr,null)),be(this,xo)&&(qo(be(this,xo)),pn(this,xo,null)),be(this,nr)&&(qo(be(this,nr)),pn(this,nr,null));var t=be(this,xr).onerror;let i=be(this,xr).failed;var n=!1,s=!1;const r=()=>{if(n){oH();return}n=!0,s&&$3(),be(this,nr)!==null&&kd(be(this,nr),()=>{pn(this,nr,null)}),zn(this,Is,Hm).call(this,()=>{zn(this,Is,jS).call(this)})},a=d=>{try{s=!0,t==null||t(d,r),s=!1}catch(u){oc(u,be(this,Ho)&&be(this,Ho).parent)}i&&pn(this,nr,zn(this,Is,Hm).call(this,()=>{try{return Lr(()=>{var u=Dn;u.b=this,u.f|=OS,i(be(this,Cr),()=>d,()=>r)})}catch(u){return oc(u,be(this,Ho).parent),null}}))};fc(()=>{var d;try{d=this.transform_error(e)}catch(u){oc(u,be(this,Ho)&&be(this,Ho).parent);return}d!==null&&typeof d=="object"&&typeof d.then=="function"?d.then(a,u=>oc(u,be(this,Ho)&&be(this,Ho).parent)):a(d)})};function SH(o,e,t,i){const n=wp;var s=o.filter(p=>!p.settled);if(t.length===0&&s.length===0){i(e.map(n));return}var r=Dn,a=CH(),d=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(p=>p.promise)):null;function u(p){if((r.f&Rr)===0){a();try{i(p)}catch(w){oc(w,r)}gv()}}var f=DP();if(t.length===0){d.then(()=>u(e.map(n))).finally(f);return}function g(){Promise.all(t.map(p=>xH(p))).then(p=>u([...e.map(n),...p])).catch(p=>oc(p,r)).finally(f)}d?d.then(()=>{a(),g(),gv()}):g()}function CH(){var o=Dn,e=In,t=ro,i=Yi;return function(s=!0){qa(o),Or(e),Cf(t),s&&(o.f&Rr)===0&&(i==null||i.activate(),i==null||i.apply())}}function gv(o=!0){qa(null),Or(null),Cf(null),o&&(Yi==null||Yi.deactivate())}function DP(){var o=Dn,e=o.b,t=Yi,i=!!(e!=null&&e.is_rendered());return e==null||e.update_pending_count(1,t),t.increment(i,o),()=>{e==null||e.update_pending_count(-1,t),t.decrement(i,o)}}function wp(o){var e=ao|Js;return Dn!==null&&(Dn.f|=Gf),{ctx:ro,deps:null,effects:null,equals:mP,f:e,fn:o,reactions:null,rv:0,v:Gs,wv:0,parent:Dn,ac:null}}const J_=Symbol("obsolete");function xH(o,e,t){let i=Dn;i===null&&N3();var n=void 0,s=yu(Gs),r=!In,a=new Set;return OH(()=>{var w,y;var d=Dn,u=hP();n=u.promise;try{Promise.resolve(o()).then(u.resolve,x=>{x!==By&&u.reject(x)}).finally(gv)}catch(x){u.reject(x),gv()}var f=Yi;if(r){if((d.f&qf)!==0)var g=DP();if((w=i.b)!=null&&w.is_rendered())(y=f.async_deriveds.get(d))==null||y.reject(J_);else for(const x of a.values())x.reject(J_);a.add(u),f.async_deriveds.set(d,u)}const p=(x,k=void 0)=>{g==null||g(),a.delete(u),k!==J_&&(f.activate(),k?(s.f|=hc,xf(s,k)):((s.f&hc)!==0&&(s.f^=hc),xf(s,x)),f.deactivate())};u.promise.then(p,x=>p(null,x||"unknown"))}),M0(()=>{for(const d of a)d.reject(J_)}),new Promise(d=>{function u(f){function g(){f===n?d(s):u(n)}f.then(g,g)}u(n)})}function Ct(o){const e=wp(o);return qP(e),e}function E0(o){const e=wp(o);return e.equals=vP,e}function kH(o){var e=o.effects;if(e!==null){o.effects=null;for(var t=0;t<e.length;t+=1)qo(e[t])}}function D0(o){var e,t=Dn,i=o.parent;if(!Ll&&i!==null&&o.v!==Gs&&(i.f&(Rr|Eo))!==0)return nH(),o.v;qa(i);try{o.f&=~vu,kH(o),e=YP(o)}finally{qa(t)}return e}function TP(o){var e=D0(o);if(!o.equals(e)&&(o.wv=KP(),(!(Yi!=null&&Yi.is_fork)||o.deps===null)&&(Yi!==null?(Yi.capture(o,e,!0),$g==null||$g.capture(o,e,!0)):o.v=e,o.deps===null))){Ls(o,Zs);return}Ll||(io!==null?(P0()||Yi!=null&&Yi.is_fork)&&io.set(o,e):k0(o))}function LH(o){var e,t;if(o.effects!==null)for(const i of o.effects)(i.teardown||i.ac)&&((e=i.teardown)==null||e.call(i),(t=i.ac)==null||t.abort(By),i.fn!==null&&(i.teardown=Hy),i.ac=null,Sp(i,0),A0(i))}function PP(o){if(o.effects!==null)for(const e of o.effects)e.teardown&&e.fn!==null&&kf(e)}let pv=new Set;const Cd=new Map;let MP=!1;function yu(o,e){var t={f:0,v:o,reactions:null,equals:mP,rv:0,wv:0};return t}function P(o,e){const t=yu(o);return qP(t),t}function IH(o,e=!1,t=!0){const i=yu(o);return e||(i.equals=vP),i}function v(o,e,t=!1){In!==null&&(!aa||(In.f&hv)!==0)&&bP()&&(In.f&(ao|ra|Vh|hv))!==0&&(za===null||!za.has(o))&&j3();let i=t?yi(e):e;return xf(o,i,Om)}function xf(o,e,t=null){if(!o.equals(e)){Cd.set(o,Ll?e:o.v);var i=bu.ensure();if(i.capture(o,e),(o.f&ao)!==0){const n=o;(o.f&Js)!==0&&D0(n),io===null&&k0(n)}o.wv=KP(),RP(o,Js,t),Dn!==null&&(Dn.f&Zs)!==0&&(Dn.f&(la|Nc))===0&&(Sr===null?HH([o]):Sr.push(o)),!i.is_fork&&pv.size>0&&!MP&&EH()}return e}function EH(){MP=!1;for(const o of pv){(o.f&Zs)!==0&&Ls(o,Ua);let e;try{e=C_(o)}catch{e=!0}e&&kf(o)}pv.clear()}function $L(o,e=1){var t=c(o),i=e===1?t++:t--;return v(o,t),i}function qg(o){v(o,o.v+1)}function RP(o,e,t){var i=o.reactions;if(i!==null)for(var n=i.length,s=0;s<n;s++){var r=i[s],a=r.f,d=(a&Js)===0;if(d&&Ls(r,e),(a&hv)!==0)pv.add(r);else if((a&ao)!==0){var u=r;io==null||io.delete(u),(a&vu)===0&&(a&Mr&&(Dn===null||(Dn.f&fv)===0)&&(r.f|=vu),RP(u,Ua,t))}else if(d){var f=r;(a&ra)!==0&&Gr!==null&&Gr.add(f),t!==null?t.push(f):I0(f)}}}function yi(o){if(typeof o!="object"||o===null||Sd in o)return o;const e=uP(o);if(e!==k3&&e!==L3)return o;var t=new Map,i=x0(o),n=P(0),s=Ld,r=a=>{if(Ld===s)return a();var d=In,u=Ld;Or(null),KL(s);var f=a();return Or(d),KL(u),f};return i&&t.set("length",P(o.length)),new Proxy(o,{defineProperty(a,d,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&z3();var f=t.get(d);return f===void 0?r(()=>{var g=P(u.value);return t.set(d,g),g}):v(f,u.value,!0),!0},deleteProperty(a,d){var u=t.get(d);if(u===void 0){if(d in a){const f=r(()=>P(Gs));t.set(d,f),qg(n)}}else v(u,Gs),qg(n);return!0},get(a,d,u){var w;if(d===Sd)return o;var f=t.get(d),g=d in a;if(f===void 0&&(!g||(w=zh(a,d))!=null&&w.writable)&&(f=r(()=>{var y=yi(g?a[d]:Gs),x=P(y);return x}),t.set(d,f)),f!==void 0){var p=c(f);return p===Gs?void 0:p}return Reflect.get(a,d,u)},getOwnPropertyDescriptor(a,d){var u=Reflect.getOwnPropertyDescriptor(a,d);if(u&&"value"in u){var f=t.get(d);f&&(u.value=c(f))}else if(u===void 0){var g=t.get(d),p=g==null?void 0:g.v;if(g!==void 0&&p!==Gs)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(a,d){var p;if(d===Sd)return!0;var u=t.get(d),f=u!==void 0&&u.v!==Gs||Reflect.has(a,d);if(u!==void 0||Dn!==null&&(!f||(p=zh(a,d))!=null&&p.writable)){u===void 0&&(u=r(()=>{var w=f?yi(a[d]):Gs,y=P(w);return y}),t.set(d,u));var g=c(u);if(g===Gs)return!1}return f},set(a,d,u,f){var F;var g=t.get(d),p=d in a;if(i&&d==="length")for(var w=u;w<g.v;w+=1){var y=t.get(w+"");y!==void 0?v(y,Gs):w in a&&(y=r(()=>P(Gs)),t.set(w+"",y))}if(g===void 0)(!p||(F=zh(a,d))!=null&&F.writable)&&(g=r(()=>P(void 0)),v(g,yi(u)),t.set(d,g));else{p=g.v!==Gs;var x=r(()=>yi(u));v(g,x)}var k=Reflect.getOwnPropertyDescriptor(a,d);if(k!=null&&k.set&&k.set.call(f,u),!p){if(i&&typeof d=="string"){var D=t.get("length"),M=Number(d);Number.isInteger(M)&&M>=D.v&&v(D,M+1)}qg(n)}return!0},ownKeys(a){c(n);var d=Reflect.ownKeys(a).filter(g=>{var p=t.get(g);return p===void 0||p.v!==Gs});for(var[u,f]of t)f.v!==Gs&&!(u in a)&&d.push(u);return d},setPrototypeOf(){V3()}})}function UL(o){try{if(o!==null&&typeof o=="object"&&Sd in o)return o[Sd]}catch{}return o}function DH(o,e){return Object.is(UL(o),UL(e))}var xd,NP,AP,OP,FP;function TH(){if(xd===void 0){xd=window,NP=document,AP=/Firefox/.test(navigator.userAgent);var o=Element.prototype,e=Node.prototype,t=Text.prototype;OP=zh(e,"firstChild").get,FP=zh(e,"nextSibling").get,BL(o)&&(o[HS]=void 0,o[Nm]=null,o[WS]=void 0,o.__e=void 0),BL(t)&&(t[kg]=void 0)}}function vl(o=""){return document.createTextNode(o)}function Oa(o){return OP.call(o)}function S_(o){return FP.call(o)}function b(o,e){return Oa(o)}function xt(o,e=!1){{var t=Oa(o);return t instanceof Comment&&t.data===""?S_(t):t}}function m(o,e=1,t=!1){let i=o;for(;e--;)i=S_(i);return i}function PH(o){o.textContent=""}function HP(){return!1}function WP(o,e,t){return e==null||e===_P?t?document.createElement(o,{is:t}):document.createElement(o):t?document.createElementNS(e,o,{is:t}):document.createElementNS(e,o)}let qL=!1;function MH(){qL||(qL=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{var e;if(!o.defaultPrevented)for(const t of o.target.elements)(e=t[Am])==null||e.call(t)})},{capture:!0}))}function zy(o){var e=In,t=Dn;Or(null),qa(null);try{return o()}finally{Or(e),qa(t)}}function T0(o,e,t,i=t){o.addEventListener(e,()=>zy(t));const n=o[Am];n?o[Am]=()=>{n(),i(!0)}:o[Am]=()=>i(!0),MH()}function RH(o){Dn===null&&(In===null&&H3(),F3()),Ll&&O3()}function NH(o,e){var t=e.last;t===null?e.last=e.first=o:(t.next=o,o.prev=t,e.last=o)}function Ol(o,e){var t=Dn;t!==null&&(t.f&Eo)!==0&&(o|=Eo);var i={ctx:ro,deps:null,nodes:null,f:o|Js|Mr,first:null,fn:e,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null};Yi==null||Yi.register_created_effect(i);var n=i;if((o&wf)!==0)Ih!==null?Ih.push(i):bu.ensure().schedule(i);else if(e!==null){try{kf(i)}catch(r){throw qo(i),r}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&(n.f&Gf)===0&&(n=n.first,(o&ra)!==0&&(o&Sf)!==0&&n!==null&&(n.f|=Sf))}if(n!==null&&(n.parent=t,t!==null&&NH(n,t),In!==null&&(In.f&ao)!==0&&(o&Nc)===0)){var s=In;(s.effects??(s.effects=[])).push(n)}return i}function P0(){return In!==null&&!aa}function M0(o){const e=Ol(Wy,null);return Ls(e,Zs),e.teardown=o,e}function Vn(o){RH();var e=Dn.f,t=!In&&(e&la)!==0&&ro!==null&&!ro.i;if(t){var i=ro;(i.e??(i.e=[])).push(o)}else return BP(o)}function BP(o){return Ol(wf|T3,o)}function AH(o){bu.ensure();const e=Ol(Nc|Gf,o);return(t={})=>new Promise(i=>{t.outro?kd(e,()=>{qo(e),i(void 0)}):(qo(e),i(void 0))})}function R0(o){return Ol(wf,o)}function OH(o){return Ol(Vh|Gf,o)}function Vy(o,e=0){return Ol(Wy|e,o)}function H(o,e=[],t=[],i=[]){SH(i,e,t,n=>{Ol(Wy,()=>o(...n.map(c)))})}function N0(o,e=0){var t=Ol(ra|e,o);return t}function Lr(o){return Ol(la|Gf,o)}function zP(o){var e=o.teardown;if(e!==null){const t=Ll,i=In;GL(!0),Or(null);try{e.call(null)}finally{GL(t),Or(i)}}}function A0(o,e=!1){var t=o.first;for(o.first=o.last=null;t!==null;){const n=t.ac;n!==null&&zy(()=>{n.abort(By)});var i=t.next;(t.f&Nc)!==0?t.parent=null:qo(t,e),t=i}}function FH(o){for(var e=o.first;e!==null;){var t=e.next;(e.f&la)===0&&qo(e),e=t}}function qo(o,e=!0){var t=!1;(e||(o.f&D3)!==0)&&o.nodes!==null&&o.nodes.end!==null&&(VP(o.nodes.start,o.nodes.end),t=!0),Ls(o,FS),A0(o,e&&!t),Sp(o,0);var i=o.nodes&&o.nodes.t;if(i!==null)for(const s of i)s.stop();zP(o),o.f^=FS,o.f|=Rr;var n=o.parent;n!==null&&n.first!==null&&jP(o),o.next=o.prev=o.teardown=o.ctx=o.deps=o.fn=o.nodes=o.ac=o.b=null}function VP(o,e){for(;o!==null;){var t=o===e?null:S_(o);o.remove(),o=t}}function jP(o){var e=o.parent,t=o.prev,i=o.next;t!==null&&(t.next=i),i!==null&&(i.prev=t),e!==null&&(e.first===o&&(e.first=i),e.last===o&&(e.last=t))}function kd(o,e,t=!0){var i=[];$P(o,i,!0);var n=()=>{t&&qo(o),e&&e()},s=i.length;if(s>0){var r=()=>--s||n();for(var a of i)a.out(r)}else n()}function $P(o,e,t){if((o.f&Eo)===0){o.f^=Eo;var i=o.nodes&&o.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&e.push(a);for(var n=o.first;n!==null;){var s=n.next;if((n.f&Nc)===0){var r=(n.f&Sf)!==0||(n.f&la)!==0&&(o.f&ra)!==0;$P(n,e,r?t:!1)}n=s}}}function _v(o){UP(o,!0)}function UP(o,e){if((o.f&Eo)!==0){o.f^=Eo,(o.f&Zs)===0&&(Ls(o,Js),bu.ensure().schedule(o));for(var t=o.first;t!==null;){var i=t.next,n=(t.f&Sf)!==0||(t.f&la)!==0;UP(t,n?e:!1),t=i}var s=o.nodes&&o.nodes.t;if(s!==null)for(const r of s)(r.is_global||e)&&r.in()}}function O0(o,e){if(o.nodes)for(var t=o.nodes.start,i=o.nodes.end;t!==null;){var n=t===i?null:S_(t);e.append(t),t=n}}let Wm=!1,Ll=!1;function GL(o){Ll=o}let In=null,aa=!1;function Or(o){In=o}let Dn=null;function qa(o){Dn=o}let za=null;function qP(o){In!==null&&(za??(za=new Set)).add(o)}let Wo=null,tr=0,Sr=null;function HH(o){Sr=o}let GP=1,ud=0,Ld=ud;function KL(o){Ld=o}function KP(){return++GP}function C_(o){var e=o.f;if((e&Js)!==0)return!0;if(e&ao&&(o.f&=~vu),(e&Ua)!==0){for(var t=o.deps,i=t.length,n=0;n<i;n++){var s=t[n];if(C_(s)&&TP(s),s.wv>o.wv)return!0}(e&Mr)!==0&&io===null&&Ls(o,Zs)}return!1}function ZP(o,e,t=!0){var i=o.reactions;if(i!==null&&!(za!==null&&za.has(o)))for(var n=0;n<i.length;n++){var s=i[n];(s.f&ao)!==0?ZP(s,e,!1):e===s&&(t?Ls(s,Js):(s.f&Zs)!==0&&Ls(s,Ua),I0(s))}}function YP(o){var x;var e=Wo,t=tr,i=Sr,n=In,s=za,r=ro,a=aa,d=Ld,u=o.f;Wo=null,tr=0,Sr=null,In=(u&(la|Nc))===0?o:null,za=null,Cf(o.ctx),aa=!1,Ld=++ud,o.ac!==null&&(zy(()=>{o.ac.abort(By)}),o.ac=null);try{o.f|=fv;var f=o.fn,g=f();o.f|=qf;var p=o.deps,w=Yi==null?void 0:Yi.is_fork;if(Wo!==null){var y;if(w||Sp(o,tr),p!==null&&tr>0)for(p.length=tr+Wo.length,y=0;y<Wo.length;y++)p[tr+y]=Wo[y];else o.deps=p=Wo;if(P0()&&(o.f&Mr)!==0)for(y=tr;y<p.length;y++)((x=p[y]).reactions??(x.reactions=[])).push(o)}else!w&&p!==null&&tr<p.length&&(Sp(o,tr),p.length=tr);if(bP()&&Sr!==null&&!aa&&p!==null&&(o.f&(ao|Ua|Js))===0)for(y=0;y<Sr.length;y++)ZP(Sr[y],o);if(n!==null&&n!==o){if(ud++,n.deps!==null)for(let k=0;k<t;k+=1)n.deps[k].rv=ud;if(e!==null)for(const k of e)k.rv=ud;Sr!==null&&(i===null?i=Sr:i.push(...Sr))}return(o.f&hc)!==0&&(o.f^=hc),g}catch(k){return wP(k)}finally{o.f^=fv,Wo=e,tr=t,Sr=i,In=n,za=s,Cf(r),aa=a,Ld=d}}function WH(o,e){let t=e.reactions;if(t!==null){var i=S3.call(t,o);if(i!==-1){var n=t.length-1;n===0?t=e.reactions=null:(t[i]=t[n],t.pop())}}if(t===null&&(e.f&ao)!==0&&(Wo===null||!uv.call(Wo,e))){var s=e;(s.f&Mr)!==0&&(s.f^=Mr,s.f&=~vu),s.v!==Gs&&k0(s),LH(s),Sp(s,0)}}function Sp(o,e){var t=o.deps;if(t!==null)for(var i=e;i<t.length;i++)WH(o,t[i])}function kf(o){var e=o.f;if((e&Rr)===0){Ls(o,Zs);var t=Dn,i=Wm;Dn=o,Wm=!0;try{(e&(ra|fP))!==0?FH(o):A0(o),zP(o);var n=YP(o);o.teardown=typeof n=="function"?n:null,o.wv=GP;var s;dP&&aH&&(o.f&Js)!==0&&o.deps}finally{Wm=i,Dn=t}}}async function Gg(){await Promise.resolve(),fH()}function c(o){var e=o.f,t=(e&ao)!==0;if(In!==null&&!aa){var i=Dn!==null&&(Dn.f&Rr)!==0;if(!i&&(za===null||!za.has(o))){var n=In.deps;if((In.f&fv)!==0)o.rv<ud&&(o.rv=ud,Wo===null&&n!==null&&n[tr]===o?tr++:Wo===null?Wo=[o]:Wo.push(o));else{In.deps??(In.deps=[]),uv.call(In.deps,o)||In.deps.push(o);var s=o.reactions;s===null?o.reactions=[In]:uv.call(s,In)||s.push(In)}}}if(Ll&&Cd.has(o))return Cd.get(o);if(t){var r=o;if(Ll){var a=r.v;return((r.f&Zs)===0&&r.reactions!==null||QP(r))&&(a=D0(r)),Cd.set(r,a),a}var d=(r.f&Mr)===0&&!aa&&In!==null&&(Wm||(In.f&Mr)!==0),u=(r.f&qf)===0;C_(r)&&(d&&(r.f|=Mr),TP(r)),d&&!u&&(PP(r),XP(r))}if(io!=null&&io.has(o))return io.get(o);if((o.f&hc)!==0)throw o.v;return o.v}function XP(o){if(o.f|=Mr,o.deps!==null)for(const e of o.deps)(e.reactions??(e.reactions=[])).push(o),(e.f&ao)!==0&&(e.f&Mr)===0&&(PP(e),XP(e))}function QP(o){if(o.v===Gs)return!0;if(o.deps===null)return!1;for(const e of o.deps)if(Cd.has(e)||(e.f&ao)!==0&&QP(e))return!0;return!1}function Fl(o){var e=aa;try{return aa=!0,o()}finally{aa=e}}const BH=["touchstart","touchmove"];function zH(o){return BH.includes(o)}const hd=Symbol("events"),JP=new Set,qS=new Set;function VH(o,e,t,i={}){function n(s){if(i.capture||GS.call(e,s),!s.cancelBubble)return zy(()=>t==null?void 0:t.call(this,s))}return o.startsWith("pointer")||o.startsWith("touch")||o==="wheel"?fc(()=>{e.addEventListener(o,n,i)}):e.addEventListener(o,n,i),n}function ds(o,e,t,i,n){var s={capture:i,passive:n},r=VH(o,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&M0(()=>{e.removeEventListener(o,r,s)})}function z(o,e,t){(e[hd]??(e[hd]={}))[o]=t}function zs(o){for(var e=0;e<o.length;e++)JP.add(o[e]);for(var t of qS)t(o)}let ZL=null;function GS(o){var x,k;var e=this,t=e.ownerDocument,i=o.type,n=((x=o.composedPath)==null?void 0:x.call(o))||[],s=n[0]||o.target;ZL=o;var r=0,a=ZL===o&&o[hd];if(a){var d=n.indexOf(a);if(d!==-1&&(e===document||e===window)){o[hd]=e;return}var u=n.indexOf(e);if(u===-1)return;d<=u&&(r=d)}if(s=n[r]||o.target,s!==e){C3(o,"currentTarget",{configurable:!0,get(){return s||t}});var f=In,g=Dn;Or(null),qa(null);try{for(var p,w=[];s!==null&&s!==e;){try{var y=(k=s[hd])==null?void 0:k[i];y!=null&&(!s.disabled||o.target===s)&&y.call(s,o)}catch(D){p?w.push(D):p=D}if(o.cancelBubble)break;r++,s=r<n.length?n[r]:null}if(p){for(let D of w)queueMicrotask(()=>{throw D});throw p}}finally{o[hd]=e,delete o.currentTarget,Or(f),qa(g)}}}var RD;const Tw=((RD=globalThis==null?void 0:globalThis.window)==null?void 0:RD.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:o=>o});function jH(o){return(Tw==null?void 0:Tw.createHTML(o))??o}function eM(o){var e=WP("template");return e.innerHTML=jH(o.replaceAll("<!>","<!---->")),e.content}function wu(o,e){var t=Dn;t.nodes===null&&(t.nodes={start:o,end:e,a:null,t:null})}function T(o,e){var t=(e&J3)!==0,i=(e&eH)!==0,n,s=!o.startsWith("<!>");return()=>{n===void 0&&(n=eM(s?o:"<!>"+o),t||(n=Oa(n)));var r=i||AP?document.importNode(n,!0):n.cloneNode(!0);if(t){var a=Oa(r),d=r.lastChild;wu(a,d)}else wu(r,r);return r}}function $H(o,e,t="svg"){var i=!o.startsWith("<!>"),n=`<${t}>${i?o:"<!>"+o}</${t}>`,s;return()=>{if(!s){var r=eM(n),a=Oa(r);s=Oa(a)}var d=s.cloneNode(!0);return wu(d,d),d}}function tM(o,e){return $H(o,e,"svg")}function po(o=""){{var e=vl(o+"");return wu(e,e),e}}function As(){var o=document.createDocumentFragment(),e=document.createComment(""),t=vl();return o.append(e,t),wu(e,t),o}function I(o,e){o!==null&&o.before(e)}function N(o,e){var t=e==null?"":typeof e=="object"?`${e}`:e;t!==(o[kg]??(o[kg]=o.nodeValue))&&(o[kg]=t,o.nodeValue=`${t}`)}function UH(o,e){return qH(o,e)}const em=new Map;function qH(o,{target:e,anchor:t,props:i={},events:n,context:s,intro:r=!0,transformError:a}){TH();var d=void 0,u=AH(()=>{var f=t??e.appendChild(vl());mH(f,{pending:()=>{}},w=>{Ts({});var y=ro;s&&(y.c=s),n&&(i.$$events=n),d=o(w,i)||{},Ps()},a);var g=new Set,p=w=>{for(var y=0;y<w.length;y++){var x=w[y];if(!g.has(x)){g.add(x);var k=zH(x);for(const F of[e,document]){var D=em.get(F);D===void 0&&(D=new Map,em.set(F,D));var M=D.get(x);M===void 0?(F.addEventListener(x,GS,{passive:k}),D.set(x,1)):D.set(x,M+1)}}}};return p(Fy(JP)),qS.add(p),()=>{var k;for(var w of g)for(const D of[e,document]){var y=em.get(D),x=y.get(w);--x==0?(D.removeEventListener(w,GS),y.delete(w),y.size===0&&em.delete(D)):y.set(w,x)}qS.delete(p),f!==t&&((k=f.parentNode)==null||k.removeChild(f))}});return GH.set(d,u),d}let GH=new WeakMap;var Xr,Ea,sr,vd,i_,n_,Lb;class KH{constructor(e,t=!0){yn(this,"anchor");gn(this,Xr,new Map);gn(this,Ea,new Map);gn(this,sr,new Map);gn(this,vd,new Set);gn(this,i_,!0);gn(this,n_,e=>{if(be(this,Xr).has(e)){var t=be(this,Xr).get(e),i=be(this,Ea).get(t);if(i)_v(i),be(this,vd).delete(t);else{var n=be(this,sr).get(t);n&&(_v(n.effect),be(this,Ea).set(t,n.effect),be(this,sr).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[s,r]of be(this,Xr)){if(be(this,Xr).delete(s),s===e)break;const a=be(this,sr).get(r);a&&(qo(a.effect),be(this,sr).delete(r))}for(const[s,r]of be(this,Ea)){if(s===t||be(this,vd).has(s))continue;const a=()=>{if(Array.from(be(this,Xr).values()).includes(s)){var u=document.createDocumentFragment();O0(r,u),u.append(vl()),be(this,sr).set(s,{effect:r,fragment:u})}else qo(r);be(this,vd).delete(s),be(this,Ea).delete(s)};be(this,i_)||!i?(be(this,vd).add(s),kd(r,a,!1)):a()}}});gn(this,Lb,e=>{be(this,Xr).delete(e);const t=Array.from(be(this,Xr).values());for(const[i,n]of be(this,sr))t.includes(i)||(qo(n.effect),be(this,sr).delete(i))});this.anchor=e,pn(this,i_,t)}ensure(e,t){var i=Yi,n=HP();if(t&&!be(this,Ea).has(e)&&!be(this,sr).has(e))if(n){var s=document.createDocumentFragment(),r=vl();s.append(r),be(this,sr).set(e,{effect:Lr(()=>t(r)),fragment:s})}else be(this,Ea).set(e,Lr(()=>t(this.anchor)));if(be(this,Xr).set(i,e),n){for(const[a,d]of be(this,Ea))a===e?i.unskip_effect(d):i.skip_effect(d);for(const[a,d]of be(this,sr))a===e?i.unskip_effect(d.effect):i.skip_effect(d.effect);i.oncommit(be(this,n_)),i.ondiscard(be(this,Lb))}else be(this,n_).call(this,i)}}Xr=new WeakMap,Ea=new WeakMap,sr=new WeakMap,vd=new WeakMap,i_=new WeakMap,n_=new WeakMap,Lb=new WeakMap;function O(o,e,t=!1){var i=new KH(o),n=t?Sf:0;function s(r,a){i.ensure(r,a)}N0(()=>{var r=!1;e((a,d=0)=>{r=!0,s(d,a)}),r||s(-1,null)},n)}function Vi(o,e){return e}function ZH(o,e,t){for(var i=[],n=e.length,s,r=e.length,a=0;a<n;a++){let g=e[a];kd(g,()=>{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var p=o.outrogroups;KS(o,Fy(s.done)),p.delete(s),p.size===0&&(o.outrogroups=null)}}else r-=1},!1)}if(r===0){var d=i.length===0&&t!==null;if(d){var u=t,f=u.parentNode;PH(f),f.append(u),o.items.clear()}KS(o,e,!d)}else s={pending:new Set(e),done:new Set},(o.outrogroups??(o.outrogroups=new Set)).add(s)}function KS(o,e,t=!0){var i;if(o.pending.size>0){i=new Set;for(const r of o.pending.values())for(const a of r)i.add(o.items.get(a).e)}for(var n=0;n<e.length;n++){var s=e[n];if(i!=null&&i.has(s)){s.f|=Aa;const r=document.createDocumentFragment();O0(s,r)}else qo(e[n],t)}}var YL;function ni(o,e,t,i,n,s=null){var r=o,a=new Map,d=(e&pP)!==0;if(d){var u=o;r=u.appendChild(vl())}var f=null,g=E0(()=>{var F=t();return x0(F)?F:F==null?[]:Fy(F)}),p,w=new Map,y=!0;function x(F){(M.effect.f&Rr)===0&&(M.pending.delete(F),M.fallback=f,YH(M,p,r,e,i),f!==null&&(p.length===0?(f.f&Aa)===0?_v(f):(f.f^=Aa,Eg(f,null,r)):kd(f,()=>{f=null})))}function k(F){M.pending.delete(F)}var D=N0(()=>{p=c(g);for(var F=p.length,K=new Set,V=Yi,se=HP(),te=0;te<F;te+=1){var pe=p[te],je=i(pe,te),Ke=y?null:a.get(je);Ke?(Ke.v&&xf(Ke.v,pe),Ke.i&&xf(Ke.i,te),se&&V.unskip_effect(Ke.e)):(Ke=XH(a,y?r:YL??(YL=vl()),pe,je,te,n,e,t),y||(Ke.e.f|=Aa),a.set(je,Ke)),K.add(je)}if(F===0&&s&&!f&&(y?f=Lr(()=>s(r)):(f=Lr(()=>s(YL??(YL=vl()))),f.f|=Aa)),F>K.size&&A3(),!y)if(w.set(V,K),se){for(const[ue,He]of a)K.has(ue)||V.skip_effect(He.e);V.oncommit(x),V.ondiscard(k)}else x(V);c(g)}),M={effect:D,items:a,pending:w,outrogroups:null,fallback:f};y=!1}function pg(o){for(;o!==null&&(o.f&la)===0;)o=o.next;return o}function YH(o,e,t,i,n){var Ke,ue,He,dt,we,gt,ot,Pt,Oe;var s=(i&G3)!==0,r=e.length,a=o.items,d=pg(o.effect.first),u,f=null,g,p=[],w=[],y,x,k,D;if(s)for(D=0;D<r;D+=1)y=e[D],x=n(y,D),k=a.get(x).e,(k.f&Aa)===0&&((ue=(Ke=k.nodes)==null?void 0:Ke.a)==null||ue.measure(),(g??(g=new Set)).add(k));for(D=0;D<r;D+=1){if(y=e[D],x=n(y,D),k=a.get(x).e,o.outrogroups!==null)for(const Mt of o.outrogroups)Mt.pending.delete(k),Mt.done.delete(k);if((k.f&Eo)!==0&&(_v(k),s&&((dt=(He=k.nodes)==null?void 0:He.a)==null||dt.unfix(),(g??(g=new Set)).delete(k))),(k.f&Aa)!==0)if(k.f^=Aa,k===d)Eg(k,null,t);else{var M=f?f.next:d;k===o.effect.last&&(o.effect.last=k.prev),k.prev&&(k.prev.next=k.next),k.next&&(k.next.prev=k.prev),jl(o,f,k),jl(o,k,M),Eg(k,M,t),f=k,p=[],w=[],d=pg(f.next);continue}if(k!==d){if(u!==void 0&&u.has(k)){if(p.length<w.length){var F=w[0],K;f=F.prev;var V=p[0],se=p[p.length-1];for(K=0;K<p.length;K+=1)Eg(p[K],F,t);for(K=0;K<w.length;K+=1)u.delete(w[K]);jl(o,V.prev,se.next),jl(o,f,V),jl(o,se,F),d=F,f=se,D-=1,p=[],w=[]}else u.delete(k),Eg(k,d,t),jl(o,k.prev,k.next),jl(o,k,f===null?o.effect.first:f.next),jl(o,f,k),f=k;continue}for(p=[],w=[];d!==null&&d!==k;)(u??(u=new Set)).add(d),w.push(d),d=pg(d.next);if(d===null)continue}(k.f&Aa)===0&&p.push(k),f=k,d=pg(k.next)}if(o.outrogroups!==null){for(const Mt of o.outrogroups)Mt.pending.size===0&&(KS(o,Fy(Mt.done)),(we=o.outrogroups)==null||we.delete(Mt));o.outrogroups.size===0&&(o.outrogroups=null)}if(d!==null||u!==void 0){var te=[];if(u!==void 0)for(k of u)(k.f&Eo)===0&&te.push(k);for(;d!==null;)(d.f&Eo)===0&&d!==o.fallback&&te.push(d),d=pg(d.next);var pe=te.length;if(pe>0){var je=(i&pP)!==0&&r===0?t:null;if(s){for(D=0;D<pe;D+=1)(ot=(gt=te[D].nodes)==null?void 0:gt.a)==null||ot.measure();for(D=0;D<pe;D+=1)(Oe=(Pt=te[D].nodes)==null?void 0:Pt.a)==null||Oe.fix()}ZH(o,te,je)}}s&&fc(()=>{var Mt,et;if(g!==void 0)for(k of g)(et=(Mt=k.nodes)==null?void 0:Mt.a)==null||et.apply()})}function XH(o,e,t,i,n,s,r,a){var d=(r&U3)!==0?(r&K3)===0?IH(t,!1,!1):yu(t):null,u=(r&q3)!==0?yu(n):null;return{v:d,i:u,e:Lr(()=>(s(e,d??t,u??n,a),()=>{o.delete(i)}))}}function Eg(o,e,t){if(o.nodes)for(var i=o.nodes.start,n=o.nodes.end,s=e&&(e.f&Aa)===0?e.nodes.start:t;i!==null;){var r=S_(i);if(s.before(i),i===n)return;i=r}}function jl(o,e,t){e===null?o.effect.first=t:e.next=t,t===null?o.effect.last=e:t.prev=e}function rc(o,e,t=!1,i=!1,n=!1,s=!1){var r=o,a="";if(t)var d=o;H(()=>{var u=Dn;if(a!==(a=e()??"")){if(t){u.nodes=null,d.innerHTML=a,a!==""&&wu(Oa(d),d.lastChild);return}if(u.nodes!==null&&(VP(u.nodes.start,u.nodes.end),u.nodes=null),a!==""){var f=i?tH:n?iH:void 0,g=WP(i?"svg":n?"math":"template",f);g.innerHTML=a;var p=i||n?g:g.content;if(wu(Oa(p),p.lastChild),i||n)for(;Oa(p);)r.before(Oa(p));else r.before(p)}}})}function iM(o){var e,t,i="";if(typeof o=="string"||typeof o=="number")i+=o;else if(typeof o=="object")if(Array.isArray(o)){var n=o.length;for(e=0;e<n;e++)o[e]&&(t=iM(o[e]))&&(i&&(i+=" "),i+=t)}else for(t in o)o[t]&&(i&&(i+=" "),i+=t);return i}function QH(){for(var o,e,t=0,i="",n=arguments.length;t<n;t++)(o=arguments[t])&&(e=iM(o))&&(i&&(i+=" "),i+=e);return i}function Kg(o){return typeof o=="object"?QH(o):o??""}const XL=[...`
3
3
  \r\f \v\uFEFF`];function JH(o,e,t){var i=o==null?"":""+o;if(e&&(i=i?i+" "+e:e),t){for(var n of Object.keys(t))if(t[n])i=i?i+" "+n:n;else if(i.length)for(var s=n.length,r=0;(r=i.indexOf(n,r))>=0;){var a=r+s;(r===0||XL.includes(i[r-1]))&&(a===i.length||XL.includes(i[a]))?i=(r===0?"":i.substring(0,r))+i.substring(a+1):r=a}}return i===""?null:i}function QL(o,e=!1){var t=e?" !important;":";",i="";for(var n of Object.keys(o)){var s=o[n];s!=null&&s!==""&&(i+=" "+n+": "+s+t)}return i}function Pw(o){return o[0]!=="-"||o[1]!=="-"?o.toLowerCase():o}function eW(o,e){if(e){var t="",i,n;if(Array.isArray(e)?(i=e[0],n=e[1]):i=e,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var s=!1,r=0,a=!1,d=[];i&&d.push(...Object.keys(i).map(Pw)),n&&d.push(...Object.keys(n).map(Pw));var u=0,f=-1;const x=o.length;for(var g=0;g<x;g++){var p=o[g];if(a?p==="/"&&o[g-1]==="*"&&(a=!1):s?s===p&&(s=!1):p==="/"&&o[g+1]==="*"?a=!0:p==='"'||p==="'"?s=p:p==="("?r++:p===")"&&r--,!a&&s===!1&&r===0){if(p===":"&&f===-1)f=g;else if(p===";"||g===x-1){if(f!==-1){var w=Pw(o.substring(u,f).trim());if(!d.includes(w)){p!==";"&&g++;var y=o.substring(u,g).trim();t+=" "+y+";"}}u=g+1,f=-1}}}}return i&&(t+=QL(i)),n&&(t+=QL(n,!0)),t=t.trim(),t===""?null:t}return o==null?null:String(o)}function kt(o,e,t,i,n,s){var r=o[HS];if(r!==t||r===void 0){var a=JH(t,i,s);a==null?o.removeAttribute("class"):e?o.className=a:o.setAttribute("class",a),o[HS]=t}else if(s&&n!==s)for(var d in s){var u=!!s[d];(n==null||u!==!!n[d])&&o.classList.toggle(d,u)}return s}function Mw(o,e={},t,i){for(var n in t){var s=t[n];e[n]!==s&&(t[n]==null?o.style.removeProperty(n):o.style.setProperty(n,s,i))}}function zo(o,e,t,i){var n=o[WS];if(n!==e){var s=eW(e,i);s==null?o.removeAttribute("style"):o.style.cssText=s,o[WS]=e}else i&&(Array.isArray(i)?(Mw(o,t==null?void 0:t[0],i[0]),Mw(o,t==null?void 0:t[1],i[1],"important")):Mw(o,t,i));return i}function mv(o,e,t=!1){if(o.multiple){if(e==null)return;if(!x0(e))return sH();for(var i of o.options)i.selected=e.includes(Zg(i));return}for(i of o.options){var n=Zg(i);if(DH(n,e)){i.selected=!0;return}}(!t||e!==void 0)&&(o.selectedIndex=-1)}function ZS(o){var e=new MutationObserver(()=>{mv(o,o.__value)});e.observe(o,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),M0(()=>{e.disconnect()})}function ys(o,e,t=e){var i=new WeakSet,n=!0;T0(o,"change",s=>{var r=s?"[selected]":":checked",a;if(o.multiple)a=[].map.call(o.querySelectorAll(r),Zg);else{var d=o.querySelector(r)??o.querySelector("option:not([disabled])");a=d&&Zg(d)}t(a),o.__value=a,Yi!==null&&i.add(Yi)}),R0(()=>{var s=e();if(o===document.activeElement){var r=Yi;if(i.has(r))return}if(mv(o,s,n),n&&s===void 0){var a=o.querySelector(":checked");a!==null&&(s=Zg(a),t(s))}o.__value=s,n=!1}),ZS(o)}function Zg(o){return"__value"in o?o.__value:o.value}const tW=Symbol("is custom element"),iW=Symbol("is html"),nW=R3?"progress":"PROGRESS";function YS(o,e){var t=F0(o);t.value===(t.value=e??void 0)||o.value===e&&(e!==0||o.nodeName!==nW)||(o.value=e??"")}function hl(o,e){var t=F0(o);t.checked!==(t.checked=e??void 0)&&(o.checked=e)}function ln(o,e,t,i){var n=F0(o);n[e]!==(n[e]=t)&&(e==="loading"&&(o[M3]=t),t==null?o.removeAttribute(e):typeof t!="string"&&sW(o).includes(e)?o[e]=t:o.setAttribute(e,t))}function F0(o){return o[Nm]??(o[Nm]={[tW]:o.nodeName.includes("-"),[iW]:o.namespaceURI===_P})}var JL=new Map;function sW(o){var e=o.getAttribute("is")||o.nodeName,t=JL.get(e);if(t)return t;JL.set(e,t=[]);for(var i,n=o,s=Element.prototype;s!==n;){i=x3(n);for(var r in i)i[r].set&&r!=="innerHTML"&&r!=="textContent"&&r!=="innerText"&&t.push(r);n=uP(n)}return t}function Ht(o,e,t=e){var i=new WeakSet;T0(o,"input",async n=>{var s=n?o.defaultValue:o.value;if(s=Rw(o)?Nw(s):s,t(s),Yi!==null&&i.add(Yi),await Gg(),s!==(s=e())){var r=o.selectionStart,a=o.selectionEnd,d=o.value.length;if(o.value=s??"",a!==null){var u=o.value.length;r===a&&a===d&&u>d?(o.selectionStart=u,o.selectionEnd=u):(o.selectionStart=r,o.selectionEnd=Math.min(a,u))}}}),Fl(e)==null&&o.value&&(t(Rw(o)?Nw(o.value):o.value),Yi!==null&&i.add(Yi)),Vy(()=>{var n=e();if(o===document.activeElement){var s=Yi;if(i.has(s))return}Rw(o)&&n===Nw(o.value)||o.type==="date"&&!n&&!o.value||n!==o.value&&(o.value=n??"")})}function ms(o,e,t=e){T0(o,"change",i=>{var n=i?o.defaultChecked:o.checked;t(n)}),Fl(e)==null&&t(o.checked),Vy(()=>{var i=e();o.checked=!!i})}function Rw(o){var e=o.type;return e==="number"||e==="range"}function Nw(o){return o===""?null:+o}var nc,Jh,s_,Ib,nM;const Eb=class Eb{constructor(e){gn(this,Ib);gn(this,nc,new WeakMap);gn(this,Jh);gn(this,s_);pn(this,s_,e)}observe(e,t){var i=be(this,nc).get(e)||new Set;return i.add(t),be(this,nc).set(e,i),zn(this,Ib,nM).call(this).observe(e,be(this,s_)),()=>{var n=be(this,nc).get(e);n.delete(t),n.size===0&&(be(this,nc).delete(e),be(this,Jh).unobserve(e))}}};nc=new WeakMap,Jh=new WeakMap,s_=new WeakMap,Ib=new WeakSet,nM=function(){return be(this,Jh)??pn(this,Jh,new ResizeObserver(e=>{for(var t of e){Eb.entries.set(t.target,t);for(var i of be(this,nc).get(t.target)||[])i(t)}}))},yn(Eb,"entries",new WeakMap);let XS=Eb;var oW=new XS({box:"border-box"});function rW(o,e,t){var i=oW.observe(o,()=>t(o[e]));R0(()=>(Fl(()=>t(o[e])),i))}function Aw(o,e){return o===e||(o==null?void 0:o[Sd])===e}function vs(o={},e,t,i){var n=ro.r,s=Dn;return R0(()=>{var r,a;return Vy(()=>{r=a,a=[],Fl(()=>{Aw(t(...a),o)||(e(o,...a),r&&Aw(t(...r),o)&&e(null,...r))})}),()=>{let d=s;for(;d!==n&&d.parent!==null&&d.parent.f&FS;)d=d.parent;const u=()=>{a&&Aw(t(...a),o)&&e(null,...a)},f=d.teardown;d.teardown=()=>{u(),f==null||f()}}}),o}function Su(o,e,t,i){var K;var n=!0,s=(t&X3)!==0,r=(t&Q3)!==0,a=i,d=!0,u=void 0,f=()=>r&&n?(u??(u=wp(i)),c(u)):(d&&(d=!1,a=r?Fl(i):i),a);let g;if(s){var p=Sd in o||P3 in o;g=((K=zh(o,e))==null?void 0:K.set)??(p&&e in o?V=>o[e]=V:void 0)}var w,y=!1;s?[w,y]=dH(()=>o[e]):w=o[e],w===void 0&&i!==void 0&&(w=f(),g&&(B3(),g(w)));var x;if(x=()=>{var V=o[e];return V===void 0?f():(d=!0,V)},(t&Y3)===0)return x;if(g){var k=o.$$legacy;return(function(V,se){return arguments.length>0?((!se||k||y)&&g(se?x():V),V):x()})}var D=!1,M=((t&Z3)!==0?wp:E0)(()=>(D=!1,x()));s&&c(M);var F=Dn;return(function(V,se){if(arguments.length>0){const te=se?c(M):s?yi(V):V;return v(M,te),D=!0,a!==void 0&&(a=te),V}return Ll&&D||(F.f&Rr)!==0?M.v:c(M)})}function Bs(o){ro===null&&gP(),Vn(()=>{const e=Fl(o);if(typeof e=="function")return e})}function x_(o){ro===null&&gP(),Bs(()=>()=>Fl(o))}const aW="5";var ND;typeof window<"u"&&((ND=window.__svelte??(window.__svelte={})).v??(ND.v=new Set)).add(aW);/*!-----------------------------------------------------------------------------
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -10,7 +10,7 @@ var zA=Object.defineProperty;var lL=o=>{throw TypeError(o)};var VA=(o,e,t)=>e in
10
10
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
11
11
  * Released under the MIT license
12
12
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
13
- *-----------------------------------------------------------------------------*/var vW=Object.defineProperty,bW=Object.getOwnPropertyDescriptor,yW=Object.getOwnPropertyNames,wW=Object.prototype.hasOwnProperty,SW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yW(e))!wW.call(o,n)&&n!==t&&vW(o,n,{get:()=>e[n],enumerable:!(i=bW(e,n))||i.enumerable});return o},CW=(o,e,t)=>(SW(o,e,"default"),t),xW="5.4.5",Lf={};CW(Lf,OD);var rM=(o=>(o[o.None=0]="None",o[o.CommonJS=1]="CommonJS",o[o.AMD=2]="AMD",o[o.UMD=3]="UMD",o[o.System=4]="System",o[o.ES2015=5]="ES2015",o[o.ESNext=99]="ESNext",o))(rM||{}),aM=(o=>(o[o.None=0]="None",o[o.Preserve=1]="Preserve",o[o.React=2]="React",o[o.ReactNative=3]="ReactNative",o[o.ReactJSX=4]="ReactJSX",o[o.ReactJSXDev=5]="ReactJSXDev",o))(aM||{}),lM=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(lM||{}),cM=(o=>(o[o.ES3=0]="ES3",o[o.ES5=1]="ES5",o[o.ES2015=2]="ES2015",o[o.ES2016=3]="ES2016",o[o.ES2017=4]="ES2017",o[o.ES2018=5]="ES2018",o[o.ES2019=6]="ES2019",o[o.ES2020=7]="ES2020",o[o.ESNext=99]="ESNext",o[o.JSON=100]="JSON",o[o.Latest=99]="Latest",o))(cM||{}),dM=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(dM||{}),uM=class{constructor(o,e,t,i,n){this._onDidChange=new Lf.Emitter,this._onDidExtraLibsChange=new Lf.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},kW=xW,hM={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},fM=new uM({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},hM),gM=new uM({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},hM),LW=()=>jy().then(o=>o.getTypeScriptWorker()),IW=()=>jy().then(o=>o.getJavaScriptWorker());Lf.languages.typescript={ModuleKind:rM,JsxEmit:aM,NewLineKind:lM,ScriptTarget:cM,ModuleResolutionKind:dM,typescriptVersion:kW,typescriptDefaults:fM,javascriptDefaults:gM,getTypeScriptWorker:LW,getJavaScriptWorker:IW};function jy(){return AD(()=>import("./tsMode-Ca6ze8bD.js"),__vite__mapDeps([3,1,2]))}Lf.languages.onLanguage("typescript",()=>jy().then(o=>o.setupTypeScript(fM)));Lf.languages.onLanguage("javascript",()=>jy().then(o=>o.setupJavaScript(gM)));class EW extends yo{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:ui("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:ji.map,toggled:Ae.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ae.has("isInDiffEditor"),menu:{when:Ae.has("isInDiffEditor"),id:Gt.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class pM extends yo{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:ui("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Ae.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class _M extends yo{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:ui("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Ae.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const L_=ui("diffEditor","Diff Editor");class DW extends ca{constructor(){super({id:"diffEditor.switchSide",title:ui("switchSide","Switch Side"),icon:ji.arrowSwap,precondition:Ae.has("isInDiffEditor"),f1:!0,category:L_})}runEditorCommand(e,t,i){const n=Kf(e);if(n instanceof o_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class TW extends ca{constructor(){super({id:"diffEditor.exitCompareMove",title:ui("exitCompareMove","Exit Compare Move"),icon:ji.close,precondition:B.comparingMovedCode,f1:!1,category:L_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof o_&&n.exitCompareMove()}}class PW extends ca{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:ui("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:ji.fold,precondition:Ae.has("isInDiffEditor"),f1:!0,category:L_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof o_&&n.collapseAllUnchangedRegions()}}class MW extends ca{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:ui("showAllUnchangedRegions","Show All Unchanged Regions"),icon:ji.unfold,precondition:Ae.has("isInDiffEditor"),f1:!0,category:L_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof o_&&n.showAllUnchangedRegions()}}class QS extends yo{constructor(){super({id:"diffEditor.revert",title:ui("revert","Revert"),f1:!1,category:L_})}run(e,t){const i=RW(e,t.originalUri,t.modifiedUri);i instanceof o_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const mM=ui("accessibleDiffViewer","Accessible Diff Viewer"),Db=class Db extends yo{constructor(){super({id:Db.id,title:ui("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:mM,precondition:Ae.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerNext()}};Db.id="editor.action.accessibleDiffViewer.next";let Cp=Db;const Tb=class Tb extends yo{constructor(){super({id:Tb.id,title:ui("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:mM,precondition:Ae.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerPrev()}};Tb.id="editor.action.accessibleDiffViewer.prev";let vv=Tb;function RW(o,e,t){return o.get(as).listDiffEditors().find(s=>{var d,u;const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&((d=r.getModel())==null?void 0:d.uri.toString())===t.toString()&&a&&((u=a.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function Kf(o){const t=o.get(as).listDiffEditors(),i=FD();if(i)for(const n of t){const s=n.getContainerDomNode();if(NW(s,i))return n}return null}function NW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Tn(EW);Tn(pM);Tn(_M);Nr.appendMenuItem(Gt.EditorTitle,{command:{id:new _M().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Ae.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Ae.has("isInDiffEditor")},order:11,group:"1_diff",when:Ae.and(B.diffEditorRenderSideBySideInlineBreakpointReached,Ae.has("isInDiffEditor"))});Nr.appendMenuItem(Gt.EditorTitle,{command:{id:new pM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:ji.move,toggled:jA.create("config.diffEditor.experimental.showMoves",!0),precondition:Ae.has("isInDiffEditor")},order:10,group:"1_diff",when:Ae.has("isInDiffEditor")});Tn(QS);for(const o of[{icon:ji.arrowRight,key:B.diffEditorInlineMode.toNegated()},{icon:ji.discard,key:B.diffEditorInlineMode}])Nr.appendMenuItem(Gt.DiffEditorHunkToolbar,{command:{id:new QS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:Ae.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Nr.appendMenuItem(Gt.DiffEditorSelectionToolbar,{command:{id:new QS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:Ae.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Tn(DW);Tn(TW);Tn(PW);Tn(MW);Nr.appendMenuItem(Gt.EditorTitle,{command:{id:Cp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Ae.has("isInDiffEditor")},order:10,group:"2_diff",when:Ae.and(B.accessibleDiffViewerVisible.negate(),Ae.has("isInDiffEditor"))});Wn.registerCommandAlias("editor.action.diffReview.next",Cp.id);Tn(Cp);Wn.registerCommandAlias("editor.action.diffReview.prev",vv.id);Tn(vv);var AW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},OW=function(o,e){return function(t,i){e(t,i,o)}},JS;const $y=new _n("selectionAnchorSet",!1);var Td;let Ac=(Td=class{static get(e){return e.getContribution(JS.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=$y.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(Fi.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new to().appendText(C("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Ar(C("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(Fi.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},JS=Td,Td.ID="editor.contrib.selectionAnchorController",Td);Ac=JS=AW([OW(1,Sn)],Ac);class FW extends lt{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2080),weight:100}})}async run(e,t){var i;(i=Ac.get(t))==null||i.setSelectionAnchor()}}class HW extends lt{constructor(){super({id:"editor.action.goToSelectionAnchor",label:C("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:$y})}async run(e,t){var i;(i=Ac.get(t))==null||i.goToSelectionAnchor()}}class WW extends lt{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:$y,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2089),weight:100}})}async run(e,t){var i;(i=Ac.get(t))==null||i.selectFromAnchorToCursor()}}class BW extends lt{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:$y,kbOpts:{kbExpr:B.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Ac.get(t))==null||i.cancelSelectionAnchor()}}nn(Ac.ID,Ac,4);xe(FW);xe(HW);xe(WW);xe(BW);const zW=oi("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class VW extends lt{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.jumpToBracket()}}class jW extends lt{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:ui("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var s;let n=!0;i&&i.selectBrackets===!1&&(n=!1),(s=Cu.get(t))==null||s.selectToBracket(n)}}class $W extends lt{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.removeBrackets(this.id)}}class UW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Yl=class Yl extends Dt{static get(e){return e.getContribution(Yl.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Ss(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const n=i.getStartPosition(),s=e.bracketPairs.matchBracket(n);let r=null;if(s)s[0].containsPosition(n)&&!s[1].containsPosition(n)?r=s[1].getStartPosition():s[1].containsPosition(n)&&(r=s[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(n);if(a)r=a[1].getStartPosition();else{const d=e.bracketPairs.findNextBracket(n);d&&d.range&&(r=d.range.getStartPosition())}}return r?new Fi(r.lineNumber,r.column,r.lineNumber,r.column):new Fi(n.lineNumber,n.column,n.lineNumber,n.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(n=>{const s=n.getStartPosition();let r=t.bracketPairs.matchBracket(s);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(s),!r)){const u=t.bracketPairs.findNextBracket(s);u&&u.range&&(r=t.bracketPairs.matchBracket(u.range.getStartPosition()))}let a=null,d=null;if(r){r.sort(Z.compareRangesUsingStarts);const[u,f]=r;if(a=e?u.getStartPosition():u.getEndPosition(),d=e?f.getEndPosition():f.getStartPosition(),f.containsPosition(s)){const g=a;a=d,d=g}}a&&d&&i.push(new Fi(a.lineNumber,a.column,d.lineNumber,d.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const n=i.getPosition();let s=t.bracketPairs.matchBracket(n);s||(s=t.bracketPairs.findEnclosingBrackets(n)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const s=[];let r=0;for(let g=0,p=e.length;g<p;g++){const w=e[g];w.isEmpty()&&(s[r++]=w.getStartPosition())}s.length>1&&s.sort(gi.compare);const a=[];let d=0,u=0;const f=n.length;for(let g=0,p=s.length;g<p;g++){const w=s[g];for(;u<f&&n[u].position.isBefore(w);)u++;if(u<f&&n[u].position.equals(w))a[d++]=n[u];else{let y=t.bracketPairs.matchBracket(w,20),x=Yl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!y&&this._matchBrackets==="always"&&(y=t.bracketPairs.findEnclosingBrackets(w,20),x=Yl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new UW(w,y,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Yl.ID="editor.contrib.bracketMatchingController",Yl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=dn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:_s(zW),position:Ha.Center}}),Yl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=dn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Cu=Yl;nn(Cu.ID,Cu,1);xe(jW);xe(VW);xe($W);Nr.appendMenuItem(Gt.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class qW{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,n=this._selection.startColumn,s=this._selection.endColumn;if(!(this._isMovingLeft&&n===1)&&!(!this._isMovingLeft&&s===e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new Z(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,s,i,s),a)}else{const r=new Z(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new Fi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Fi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class vM extends lt{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],n=t.getSelections();for(const s of n)i.push(new qW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class GW extends vM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:B.writable})}}class KW extends vM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:B.writable})}}xe(GW);xe(KW);class ZW extends lt{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:B.writable,kbOpts:{kbExpr:B.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],s=t.getSelections();for(const r of s){if(!r.isEmpty())continue;const a=r.startLineNumber,d=r.startColumn,u=i.getLineMaxColumn(a);if(a===1&&(d===1||d===2&&u===2))continue;const f=d===u?r.getPosition():ww.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=ww.leftPosition(i,f),p=ww.leftPosition(i,g),w=i.getValueInRange(Z.fromPositions(p,g)),y=i.getValueInRange(Z.fromPositions(g,f)),x=Z.fromPositions(p,f);n.push(new r_(x,y+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}xe(ZW);const Uy=(function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let o;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?o=crypto.getRandomValues.bind(crypto):o=function(i){for(let n=0;n<i.length;n++)i[n]=Math.floor(Math.random()*256);return i};const e=new Uint8Array(16),t=[];for(let i=0;i<256;i++)t.push(i.toString(16).padStart(2,"0"));return function(){o(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let n=0,s="";return s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s}})();function H0(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function YW(o,e,t){const i={id:Uy(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class bM{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return pl.some(this,([i,n])=>n.asFile())&&t.push("files"),wM(bv(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))==null?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return bv(e)}}function bv(o){return o.toLowerCase()}function yM(o,e){return wM(bv(o),e.map(bv))}function wM(o,e){if(o==="*/*")return e.length>0;if(e.includes(o))return!0;const t=o.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,n,s]=t;return s==="*"?e.some(r=>r.startsWith(n+"/")):!1}const qy=Object.freeze({create:o=>HD(o.map(e=>e.toString())).join(`\r
13
+ *-----------------------------------------------------------------------------*/var vW=Object.defineProperty,bW=Object.getOwnPropertyDescriptor,yW=Object.getOwnPropertyNames,wW=Object.prototype.hasOwnProperty,SW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yW(e))!wW.call(o,n)&&n!==t&&vW(o,n,{get:()=>e[n],enumerable:!(i=bW(e,n))||i.enumerable});return o},CW=(o,e,t)=>(SW(o,e,"default"),t),xW="5.4.5",Lf={};CW(Lf,OD);var rM=(o=>(o[o.None=0]="None",o[o.CommonJS=1]="CommonJS",o[o.AMD=2]="AMD",o[o.UMD=3]="UMD",o[o.System=4]="System",o[o.ES2015=5]="ES2015",o[o.ESNext=99]="ESNext",o))(rM||{}),aM=(o=>(o[o.None=0]="None",o[o.Preserve=1]="Preserve",o[o.React=2]="React",o[o.ReactNative=3]="ReactNative",o[o.ReactJSX=4]="ReactJSX",o[o.ReactJSXDev=5]="ReactJSXDev",o))(aM||{}),lM=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(lM||{}),cM=(o=>(o[o.ES3=0]="ES3",o[o.ES5=1]="ES5",o[o.ES2015=2]="ES2015",o[o.ES2016=3]="ES2016",o[o.ES2017=4]="ES2017",o[o.ES2018=5]="ES2018",o[o.ES2019=6]="ES2019",o[o.ES2020=7]="ES2020",o[o.ESNext=99]="ESNext",o[o.JSON=100]="JSON",o[o.Latest=99]="Latest",o))(cM||{}),dM=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(dM||{}),uM=class{constructor(o,e,t,i,n){this._onDidChange=new Lf.Emitter,this._onDidExtraLibsChange=new Lf.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},kW=xW,hM={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},fM=new uM({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},hM),gM=new uM({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},hM),LW=()=>jy().then(o=>o.getTypeScriptWorker()),IW=()=>jy().then(o=>o.getJavaScriptWorker());Lf.languages.typescript={ModuleKind:rM,JsxEmit:aM,NewLineKind:lM,ScriptTarget:cM,ModuleResolutionKind:dM,typescriptVersion:kW,typescriptDefaults:fM,javascriptDefaults:gM,getTypeScriptWorker:LW,getJavaScriptWorker:IW};function jy(){return AD(()=>import("./tsMode-DK6XHYAS.js"),__vite__mapDeps([3,1,2]))}Lf.languages.onLanguage("typescript",()=>jy().then(o=>o.setupTypeScript(fM)));Lf.languages.onLanguage("javascript",()=>jy().then(o=>o.setupJavaScript(gM)));class EW extends yo{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:ui("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:ji.map,toggled:Ae.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ae.has("isInDiffEditor"),menu:{when:Ae.has("isInDiffEditor"),id:Gt.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class pM extends yo{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:ui("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Ae.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class _M extends yo{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:ui("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Ae.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const L_=ui("diffEditor","Diff Editor");class DW extends ca{constructor(){super({id:"diffEditor.switchSide",title:ui("switchSide","Switch Side"),icon:ji.arrowSwap,precondition:Ae.has("isInDiffEditor"),f1:!0,category:L_})}runEditorCommand(e,t,i){const n=Kf(e);if(n instanceof o_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class TW extends ca{constructor(){super({id:"diffEditor.exitCompareMove",title:ui("exitCompareMove","Exit Compare Move"),icon:ji.close,precondition:B.comparingMovedCode,f1:!1,category:L_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof o_&&n.exitCompareMove()}}class PW extends ca{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:ui("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:ji.fold,precondition:Ae.has("isInDiffEditor"),f1:!0,category:L_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof o_&&n.collapseAllUnchangedRegions()}}class MW extends ca{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:ui("showAllUnchangedRegions","Show All Unchanged Regions"),icon:ji.unfold,precondition:Ae.has("isInDiffEditor"),f1:!0,category:L_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof o_&&n.showAllUnchangedRegions()}}class QS extends yo{constructor(){super({id:"diffEditor.revert",title:ui("revert","Revert"),f1:!1,category:L_})}run(e,t){const i=RW(e,t.originalUri,t.modifiedUri);i instanceof o_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const mM=ui("accessibleDiffViewer","Accessible Diff Viewer"),Db=class Db extends yo{constructor(){super({id:Db.id,title:ui("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:mM,precondition:Ae.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerNext()}};Db.id="editor.action.accessibleDiffViewer.next";let Cp=Db;const Tb=class Tb extends yo{constructor(){super({id:Tb.id,title:ui("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:mM,precondition:Ae.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerPrev()}};Tb.id="editor.action.accessibleDiffViewer.prev";let vv=Tb;function RW(o,e,t){return o.get(as).listDiffEditors().find(s=>{var d,u;const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&((d=r.getModel())==null?void 0:d.uri.toString())===t.toString()&&a&&((u=a.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function Kf(o){const t=o.get(as).listDiffEditors(),i=FD();if(i)for(const n of t){const s=n.getContainerDomNode();if(NW(s,i))return n}return null}function NW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Tn(EW);Tn(pM);Tn(_M);Nr.appendMenuItem(Gt.EditorTitle,{command:{id:new _M().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Ae.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Ae.has("isInDiffEditor")},order:11,group:"1_diff",when:Ae.and(B.diffEditorRenderSideBySideInlineBreakpointReached,Ae.has("isInDiffEditor"))});Nr.appendMenuItem(Gt.EditorTitle,{command:{id:new pM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:ji.move,toggled:jA.create("config.diffEditor.experimental.showMoves",!0),precondition:Ae.has("isInDiffEditor")},order:10,group:"1_diff",when:Ae.has("isInDiffEditor")});Tn(QS);for(const o of[{icon:ji.arrowRight,key:B.diffEditorInlineMode.toNegated()},{icon:ji.discard,key:B.diffEditorInlineMode}])Nr.appendMenuItem(Gt.DiffEditorHunkToolbar,{command:{id:new QS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:Ae.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Nr.appendMenuItem(Gt.DiffEditorSelectionToolbar,{command:{id:new QS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:Ae.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Tn(DW);Tn(TW);Tn(PW);Tn(MW);Nr.appendMenuItem(Gt.EditorTitle,{command:{id:Cp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Ae.has("isInDiffEditor")},order:10,group:"2_diff",when:Ae.and(B.accessibleDiffViewerVisible.negate(),Ae.has("isInDiffEditor"))});Wn.registerCommandAlias("editor.action.diffReview.next",Cp.id);Tn(Cp);Wn.registerCommandAlias("editor.action.diffReview.prev",vv.id);Tn(vv);var AW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},OW=function(o,e){return function(t,i){e(t,i,o)}},JS;const $y=new _n("selectionAnchorSet",!1);var Td;let Ac=(Td=class{static get(e){return e.getContribution(JS.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=$y.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(Fi.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new to().appendText(C("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Ar(C("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(Fi.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},JS=Td,Td.ID="editor.contrib.selectionAnchorController",Td);Ac=JS=AW([OW(1,Sn)],Ac);class FW extends lt{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2080),weight:100}})}async run(e,t){var i;(i=Ac.get(t))==null||i.setSelectionAnchor()}}class HW extends lt{constructor(){super({id:"editor.action.goToSelectionAnchor",label:C("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:$y})}async run(e,t){var i;(i=Ac.get(t))==null||i.goToSelectionAnchor()}}class WW extends lt{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:$y,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2089),weight:100}})}async run(e,t){var i;(i=Ac.get(t))==null||i.selectFromAnchorToCursor()}}class BW extends lt{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:$y,kbOpts:{kbExpr:B.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Ac.get(t))==null||i.cancelSelectionAnchor()}}nn(Ac.ID,Ac,4);xe(FW);xe(HW);xe(WW);xe(BW);const zW=oi("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class VW extends lt{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.jumpToBracket()}}class jW extends lt{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:ui("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var s;let n=!0;i&&i.selectBrackets===!1&&(n=!1),(s=Cu.get(t))==null||s.selectToBracket(n)}}class $W extends lt{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.removeBrackets(this.id)}}class UW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Yl=class Yl extends Dt{static get(e){return e.getContribution(Yl.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Ss(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const n=i.getStartPosition(),s=e.bracketPairs.matchBracket(n);let r=null;if(s)s[0].containsPosition(n)&&!s[1].containsPosition(n)?r=s[1].getStartPosition():s[1].containsPosition(n)&&(r=s[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(n);if(a)r=a[1].getStartPosition();else{const d=e.bracketPairs.findNextBracket(n);d&&d.range&&(r=d.range.getStartPosition())}}return r?new Fi(r.lineNumber,r.column,r.lineNumber,r.column):new Fi(n.lineNumber,n.column,n.lineNumber,n.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(n=>{const s=n.getStartPosition();let r=t.bracketPairs.matchBracket(s);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(s),!r)){const u=t.bracketPairs.findNextBracket(s);u&&u.range&&(r=t.bracketPairs.matchBracket(u.range.getStartPosition()))}let a=null,d=null;if(r){r.sort(Z.compareRangesUsingStarts);const[u,f]=r;if(a=e?u.getStartPosition():u.getEndPosition(),d=e?f.getEndPosition():f.getStartPosition(),f.containsPosition(s)){const g=a;a=d,d=g}}a&&d&&i.push(new Fi(a.lineNumber,a.column,d.lineNumber,d.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const n=i.getPosition();let s=t.bracketPairs.matchBracket(n);s||(s=t.bracketPairs.findEnclosingBrackets(n)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const s=[];let r=0;for(let g=0,p=e.length;g<p;g++){const w=e[g];w.isEmpty()&&(s[r++]=w.getStartPosition())}s.length>1&&s.sort(gi.compare);const a=[];let d=0,u=0;const f=n.length;for(let g=0,p=s.length;g<p;g++){const w=s[g];for(;u<f&&n[u].position.isBefore(w);)u++;if(u<f&&n[u].position.equals(w))a[d++]=n[u];else{let y=t.bracketPairs.matchBracket(w,20),x=Yl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!y&&this._matchBrackets==="always"&&(y=t.bracketPairs.findEnclosingBrackets(w,20),x=Yl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new UW(w,y,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Yl.ID="editor.contrib.bracketMatchingController",Yl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=dn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:_s(zW),position:Ha.Center}}),Yl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=dn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Cu=Yl;nn(Cu.ID,Cu,1);xe(jW);xe(VW);xe($W);Nr.appendMenuItem(Gt.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class qW{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,n=this._selection.startColumn,s=this._selection.endColumn;if(!(this._isMovingLeft&&n===1)&&!(!this._isMovingLeft&&s===e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new Z(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,s,i,s),a)}else{const r=new Z(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new Fi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Fi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class vM extends lt{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],n=t.getSelections();for(const s of n)i.push(new qW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class GW extends vM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:B.writable})}}class KW extends vM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:B.writable})}}xe(GW);xe(KW);class ZW extends lt{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:B.writable,kbOpts:{kbExpr:B.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],s=t.getSelections();for(const r of s){if(!r.isEmpty())continue;const a=r.startLineNumber,d=r.startColumn,u=i.getLineMaxColumn(a);if(a===1&&(d===1||d===2&&u===2))continue;const f=d===u?r.getPosition():ww.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=ww.leftPosition(i,f),p=ww.leftPosition(i,g),w=i.getValueInRange(Z.fromPositions(p,g)),y=i.getValueInRange(Z.fromPositions(g,f)),x=Z.fromPositions(p,f);n.push(new r_(x,y+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}xe(ZW);const Uy=(function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let o;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?o=crypto.getRandomValues.bind(crypto):o=function(i){for(let n=0;n<i.length;n++)i[n]=Math.floor(Math.random()*256);return i};const e=new Uint8Array(16),t=[];for(let i=0;i<256;i++)t.push(i.toString(16).padStart(2,"0"));return function(){o(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let n=0,s="";return s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+="-",s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s+=t[e[n++]],s}})();function H0(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function YW(o,e,t){const i={id:Uy(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class bM{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return pl.some(this,([i,n])=>n.asFile())&&t.push("files"),wM(bv(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))==null?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return bv(e)}}function bv(o){return o.toLowerCase()}function yM(o,e){return wM(bv(o),e.map(bv))}function wM(o,e){if(o==="*/*")return e.length>0;if(e.includes(o))return!0;const t=o.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,n,s]=t;return s==="*"?e.some(r=>r.startsWith(n+"/")):!1}const qy=Object.freeze({create:o=>HD(o.map(e=>e.toString())).join(`\r
14
14
  `),split:o=>o.split(`\r
15
15
  `),parse:o=>qy.split(o).filter(e=>!e.startsWith("#"))}),Ca=class Ca{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===""||e.value.startsWith(this.value+Ca.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Ca((this.value?[this.value,...e]:e).join(Ca.sep))}};Ca.sep=".",Ca.None=new Ca("@@none@@"),Ca.Empty=new Ca("");let $n=Ca;const eI={EDITORS:"CodeEditors",FILES:"CodeFiles"};class XW{}const QW={DragAndDropContribution:"workbench.contributions.dragAndDrop"};da.add(QW.DragAndDropContribution,new XW);const rp=class rp{constructor(){}static getInstance(){return rp.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};rp.INSTANCE=new rp;let eC=rp;function SM(o){const e=new bM;for(const t of o.items){const i=t.type;if(t.kind==="string"){const n=new Promise(s=>t.getAsString(s));e.append(i,H0(n))}else if(t.kind==="file"){const n=t.getAsFile();n&&e.append(i,JW(n))}}return e}function JW(o){const e=o.path?Pn.parse(o.path):void 0;return YW(o.name,e,async()=>new Uint8Array(await o.arrayBuffer()))}const e4=Object.freeze([eI.EDITORS,eI.FILES,wS.RESOURCES,wS.INTERNAL_URI_LIST]);function CM(o,e=!1){const t=SM(o),i=t.get(wS.INTERNAL_URI_LIST);if(i)t.replace(Ws.uriList,i);else if(e||!t.has(Ws.uriList)){const n=[];for(const s of o.items){const r=s.getAsFile();if(r){const a=r.path;try{a?n.push(Pn.file(a).toString()):n.push(Pn.parse(r.name,!0).toString())}catch{}}}n.length&&t.replace(Ws.uriList,H0(qy.create(n)))}for(const n of e4)t.delete(n);return t}var W0=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},xp=function(o,e){return function(t,i){e(t,i,o)}};class B0{async provideDocumentPasteEdits(e,t,i,n,s){const r=await this.getEdit(i,s);if(r)return{edits:[{insertText:r.insertText,title:r.title,kind:r.kind,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,i,n){const s=await this.getEdit(i,n);if(s)return{edits:[{insertText:s.insertText,title:s.title,kind:s.kind,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}],dispose(){}}}}const ap=class ap extends B0{constructor(){super(...arguments),this.kind=ap.kind,this.dropMimeTypes=[Ws.text],this.pasteMimeTypes=[Ws.text]}async getEdit(e,t){const i=e.get(Ws.text);if(!i||e.has(Ws.uriList))return;const n=await i.asString();return{handledMimeType:Ws.text,title:C("text.label","Insert Plain Text"),insertText:n,kind:this.kind}}};ap.id="text",ap.kind=new $n("text.plain");let xu=ap;class xM extends B0{constructor(){super(...arguments),this.kind=new $n("uri.absolute"),this.dropMimeTypes=[Ws.uriList],this.pasteMimeTypes=[Ws.uriList]}async getEdit(e,t){const i=await kM(e);if(!i.length||t.isCancellationRequested)return;let n=0;const s=i.map(({uri:a,originalText:d})=>a.scheme===go.file?a.fsPath:(n++,d)).join(" ");let r;return n>0?r=i.length>1?C("defaultDropProvider.uriList.uris","Insert Uris"):C("defaultDropProvider.uriList.uri","Insert Uri"):r=i.length>1?C("defaultDropProvider.uriList.paths","Insert Paths"):C("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:Ws.uriList,insertText:s,title:r,kind:this.kind}}}let yv=class extends B0{constructor(e){super(),this._workspaceContextService=e,this.kind=new $n("uri.relative"),this.dropMimeTypes=[Ws.uriList],this.pasteMimeTypes=[Ws.uriList]}async getEdit(e,t){const i=await kM(e);if(!i.length||t.isCancellationRequested)return;const n=wl(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?$A(r.uri,s):void 0}));if(n.length)return{handledMimeType:Ws.uriList,insertText:n.join(" "),title:i.length>1?C("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):C("defaultDropProvider.uriList.relativePath","Insert Relative Path"),kind:this.kind}}};yv=W0([xp(0,uf)],yv);class t4{constructor(){this.kind=new $n("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Ws.text}]}async provideDocumentPasteEdits(e,t,i,n,s){var d;if(n.triggerKind!==SS.PasteAs&&!((d=n.only)!=null&&d.contains(this.kind)))return;const r=i.get("text/html"),a=await(r==null?void 0:r.asString());if(!(!a||s.isCancellationRequested))return{dispose(){},edits:[{insertText:a,yieldTo:this._yieldTo,title:C("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}}}async function kM(o){const e=o.get(Ws.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const n of qy.parse(t))try{i.push({uri:Pn.parse(n),originalText:n})}catch{}return i}let tC=class extends Dt{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new xu)),this._register(e.documentDropEditProvider.register("*",new xM)),this._register(e.documentDropEditProvider.register("*",new yv(t)))}};tC=W0([xp(0,pi),xp(1,uf)],tC);let iC=class extends Dt{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new xu)),this._register(e.documentPasteEditProvider.register("*",new xM)),this._register(e.documentPasteEditProvider.register("*",new yv(t))),this._register(e.documentPasteEditProvider.register("*",new t4))}};iC=W0([xp(0,pi),xp(1,uf)],iC);const vr=class vr{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t=0,i=this.value.charCodeAt(e),n;if(n=vr._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(vr.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(vr.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(vr.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(vr.isVariableCharacter(i)||vr.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}n=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof vr._table[i]>"u"&&!vr.isDigitCharacter(i)&&!vr.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}};vr._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let nC=vr;class Zf{constructor(){this._children=[]}appendChild(e){return e instanceof Io&&this._children[this._children.length-1]instanceof Io?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,n=i.children.indexOf(e),s=i.children.slice(0);s.splice(n,1,...t),i._children=s,(function r(a,d){for(const u of a)u.parent=d,r(u.children,u)})(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof I_)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}let Io=class LM extends Zf{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new LM(this.value)}};class IM extends Zf{}class lr extends IM{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Yf?this._children[0]:void 0}clone(){const e=new lr(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Yf extends Zf{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Io&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Yf;return this.options.forEach(e.appendChild,e),e}}class z0 extends Zf{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,n=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(s=>s instanceof Qr&&!!s.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof Qr){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new z0;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}}class Qr extends Zf{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,n)=>n===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new Qr(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class kp extends IM{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new Io(t)],!0):!1}clone(){const e=new kp(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function tI(o,e){const t=[...o];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class I_ extends Zf{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof lr&&(e.push(i),t=!t||t.index<i.index?i:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk(n=>n===e?(i=!0,!1):(t+=n.len(),!0)),i?t:-1}fullLen(e){let t=0;return tI([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof lr&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof kp&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new I_;return this._children=this.children.map(t=>t.clone()),e}walk(e){tI(this.children,e)}}class ku{constructor(){this._scanner=new nC,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const n=new I_;return this.parseFragment(e,n),this.ensureFinalTabstop(n,i??!1,t??!1),n}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const n=new Map,s=[];t.walk(d=>(d instanceof lr&&(d.isFinalTabstop?n.set(0,void 0):!n.has(d.index)&&d.children.length>0?n.set(d.index,d.children):s.push(d)),!0));const r=(d,u)=>{const f=n.get(d.index);if(!f)return;const g=new lr(d.index);g.transform=d.transform;for(const p of f){const w=p.clone();g.appendChild(w),w instanceof lr&&n.has(w.index)&&!u.has(w.index)&&(u.add(w.index),r(w,u),u.delete(w.index))}t.replace(d,[g])},a=new Set;for(const d of s)r(d,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(s=>s.index===0)||e.appendChild(new lr(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const n=this._scanner.next();if(n.type!==0&&n.type!==4&&n.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Io(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new lr(Number(t)):new kp(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const s=new lr(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Io("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else if(s.index>0&&this._accept(7)){const r=new Yf;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(s.appendChild(r),this._accept(4)))return e.appendChild(s),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(s)?(e.appendChild(s),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(s),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let n;if((n=this._accept(5,!0))?n=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||n:n=this._accept(void 0,!0),!n)return this._backTo(t),!1;i.push(n)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new Io(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const s=new kp(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Io("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(s)?(e.appendChild(s),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(s),!0):this._backTo(i)}_parseTransform(e){const t=new z0;let i="",n="";for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(6,!0)||s,i+=s;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(5,!0)||this._accept(6,!0)||s,t.appendChild(new Io(s));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,n)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const n=this._accept(8,!0);if(n)if(i){if(this._accept(4))return e.appendChild(new Qr(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Qr(Number(n))),!0;else return this._backTo(t),!1;if(this._accept(6)){const s=this._accept(9,!0);return!s||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new Qr(Number(n),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return e.appendChild(new Qr(Number(n),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return e.appendChild(new Qr(Number(n),void 0,void 0,s)),!0}else if(this._accept(13)){const s=this._until(1);if(s){const r=this._until(4);if(r)return e.appendChild(new Qr(Number(n),void 0,s,r)),!0}}else{const s=this._until(4);if(s)return e.appendChild(new Qr(Number(n),void 0,void 0,s)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Io(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function EM(o,e,t){var i,n;return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:((i=t.additionalEdit)==null?void 0:i.edits)??[]}:{edits:[...e.map(s=>new UA(o,{range:s,text:typeof t.insertText=="string"?ku.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...((n=t.additionalEdit)==null?void 0:n.edits)??[]]}}function DM(o){function e(r,a){return"mimeType"in r?r.mimeType===a.handledMimeType:!!a.kind&&r.kind.contains(a.kind)}const t=new Map;for(const r of o)for(const a of r.yieldTo??[])for(const d of o)if(d!==r&&e(a,d)){let u=t.get(r);u||(u=[],t.set(r,u)),u.push(d)}if(!t.size)return Array.from(o);const i=new Set,n=[];function s(r){if(!r.length)return[];const a=r[0];if(n.includes(a))return console.warn("Yield to cycle detected",a),r;if(i.has(a))return s(r.slice(1));let d=[];const u=t.get(a);return u&&(n.push(a),d=s(u),n.pop()),i.add(a),[...d,a,...s(r.slice(1))]}return s(Array.from(o))}var i4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},n4=function(o,e){return function(t,i){e(t,i,o)}};const s4=dn.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:WD,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),Pb=class Pb extends Dt{constructor(e,t,i,n,s){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=s,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(n),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=si(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=si("span.icon");this.domNode.append(t),t.classList.add(...xn.asClassNameArray(ji.loading),"codicon-modifier-spin");const i=()=>{const n=this.editor.getOption(67);this.domNode.style.height=`${n}px`,this.domNode.style.width=`${Math.ceil(.8*n)}px`};i(),this._register(this.editor.onDidChangeConfiguration(n=>{(n.hasChanged(52)||n.hasChanged(67))&&i()})),this._register(wn(this.domNode,Zn.CLICK,n=>{this.delegate.cancel()}))}getId(){return Pb.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}};Pb.baseId="editor.widget.inlineProgressWidget";let sC=Pb,wv=class extends Dt{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Go),this._currentWidget=this._register(new Go),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,i,n,s){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=dp(()=>{const a=Z.fromPositions(e);this._currentDecorations.set([{range:a,options:s4}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(sC,this.id,this._editor,a,t,n))},s??this._showDelay);try{return await i}finally{this._currentOperation===r&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};wv=i4([n4(2,Zi)],wv);var o4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},iI=function(o,e){return function(t,i){e(t,i,o)}},Bm,pc;let Do=(pc=class{static get(e){return e.getContribution(Bm.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Go,this._messageListeners=new Lt,this._mouseOverMessage=!1,this._editor=e,this._visible=Bm.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)==null||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){Ar(Dm(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=Dm(e)?qA(e,{actionHandler:{callback:n=>{this.closeMessage(),GA(this._openerService,n,Dm(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new nI(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(ws.debounce(this._editor.onDidBlurEditorText,(n,s)=>s,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&KA(FD(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(wn(this._messageWidget.value.getDomNode(),Zn.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(wn(this._messageWidget.value.getDomNode(),Zn.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(n=>{n.target.position&&(i?i.containsPosition(n.target.position)||this.closeMessage():i=new Z(t.lineNumber-3,1,n.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(nI.fadeOut(this._messageWidget.value))}},Bm=pc,pc.ID="editor.contrib.messageController",pc.MESSAGE_VISIBLE=new _n("messageVisible",!1,C("messageVisible","Whether the editor is currently showing an inline message")),pc);Do=Bm=o4([iI(1,Sn),iI(2,ua)],Do);const r4=wo.bindToContribution(Do.get);bi(new r4({id:"leaveEditorMessage",precondition:Do.MESSAGE_VISIBLE,handler:o=>o.closeMessage(),kbOpts:{weight:130,primary:9}}));let nI=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:i},n){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);const r=document.createElement("div");typeof n=="string"?(r.classList.add("message"),r.textContent=n):(n.classList.add("message"),r.appendChild(n)),this._domNode.appendChild(r);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",e===2)}};nn(Do.ID,Do,4);function Ow(o,e){return e&&(o.stack||o.stacktrace)?C("stackTrace.format","{0}: {1}",oI(o),sI(o.stack)||sI(o.stacktrace)):oI(o)}function sI(o){return Array.isArray(o)?o.join(`
16
16
  `):o}function oI(o){return o.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${o.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof o.code=="string"&&typeof o.errno=="number"&&typeof o.syscall=="string"?C("nodeExceptionMessage","A system error occurred ({0})",o.message):o.message||C("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function Sv(o=null,e=!1){if(!o)return C("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(o)){const t=wl(o),i=Sv(t[0],e);return t.length>1?C("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(BD(o))return o;if(o.detail){const t=o.detail;if(t.error)return Ow(t.error,e);if(t.exception)return Ow(t.exception,e)}return o.stack?Ow(o,e):o.message?o.message:C("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var TM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},jh=function(o,e){return function(t,i){e(t,i,o)}},oC,Pd;let rC=(Pd=class extends Dt{constructor(e,t,i,n,s,r,a,d,u,f){super(),this.typeId=e,this.editor=t,this.showCommand=n,this.range=s,this.edits=r,this.onSelectNewEdit=a,this._contextMenuService=d,this._keybindingService=f,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(u),this.visibleContext.set(!0),this._register(jn(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(jn((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(g=>{s.containsPosition(g.position)||this.dispose()})),this._register(ws.runAndSubscribe(f.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var t;const e=(t=this._keybindingService.lookupKeybinding(this.showCommand.id))==null?void 0:t.getLabel();this.button.element.title=this.showCommand.label+(e?` (${e})`:"")}create(){this.domNode=si(".post-edit-widget"),this.button=this._register(new ZA(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(wn(this.domNode,Zn.CLICK,()=>this.showSelector()))}getId(){return oC.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=mo(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>YA({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}},oC=Pd,Pd.baseId="editor.widget.postEditWidget",Pd);rC=oC=TM([jh(7,zf),jh(8,Sn),jh(9,hs)],rC);let Cv=class extends Dt{constructor(e,t,i,n,s,r,a){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=n,this._instantiationService=s,this._bulkEditService=r,this._notificationService=a,this._currentWidget=this._register(new Go),this._register(ws.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,n,s){const r=this._editor.getModel();if(!r||!e.length)return;const a=t.allEdits.at(t.activeEditIndex);if(!a)return;const d=async k=>{const D=this._editor.getModel();D&&(await D.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:k,allEdits:t.allEdits},i,n,s))},u=(k,D)=>{Bc(k)||(this._notificationService.error(D),i&&this.show(e[0],t,d))};let f;try{f=await n(a,s)}catch(k){return u(k,C("resolveError",`Error resolving edit '{0}':
@@ -227,4 +227,4 @@ declare const she: {
227
227
  `).trim())}}return Q}function ti(W){return W.filter!==void 0||W.map!==void 0||W.reduce!==void 0}function ri(W){const Q=[];return W.filter!==void 0&&Q.push("filter"),W.map!==void 0&&Q.push("map"),W.reduce!==void 0&&Q.push("reduce"),`Apply ${Q.join(" + ")}`}const Vt=15;function Me(W){return W.split(`
228
228
  `).length>Vt}function jt(W){const Q=new Set(c(p));Q.has(W)?Q.delete(W):Q.add(W),v(p,Q,!0)}function ft(W,Q){if(he(Q))try{return bb.highlight(W,{language:"javascript"}).value}catch{}return W.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ht(W){return qn.parse(W)}function he(W){return!W||W==="js"||W==="javascript"}function Xe(W){navigator.clipboard.writeText(W).catch(()=>{})}async function Ut(){if(v(w,!0),!(c(y)||c(x))){v(x,!0),v(k,"");try{v(y,await Hx(c(g)||c(u).model),!0)}catch(W){v(k,W.message,!0)}v(x,!1)}}function wi(W){return W>=1e9?`${(W/1e9).toFixed(1)} GB`:W>=1e6?`${(W/1e6).toFixed(0)} MB`:`${W} B`}function Ri(W){const Q=W.match(/\.([^.]+)$/);return Q?Q[1].toUpperCase():"?"}function ci(W){switch(W){case"SH":case"BASH":return"$";case"MD":case"MARKDOWN":return"↓";case"JSON":case"JSONC":return"{}";default:return W}}function Bt(W){v(te,c(te).filter((Q,oe)=>oe!==W),!0)}function Xt(){Ke.click()}async function pt(W){if(!(!W||W.length===0))for(const Q of Array.from(W)){const oe=await Q.text();v(te,[...c(te),{name:Q.name,content:oe}],!0)}}function Bi(W){const Q=W.target;pt(Q.files),Q.value=""}function Ti(W){var Q;W.preventDefault(),v(je,!1),pt(((Q=W.dataTransfer)==null?void 0:Q.files)??null)}function Ni(W){var Q;(Q=W.dataTransfer)!=null&&Q.types.includes("Files")&&(W.preventDefault(),v(je,!0))}function Ki(){v(je,!1)}async function Ai(){const W=c(r).trim();if(!(!W||c(a))){v(r,""),v(d,""),v(a,!0),v(n,[...c(n),{role:"user",content:W}],!0),D=new AbortController,v(ue,[],!0);try{await eA({messages:c(n),currentView:c(Oe),context:c(gt),modelOverride:c(g)||void 0,extraFiles:c(te).length>0?c(te):void 0},Q=>{v(s,(c(s)??"")+Q)},D.signal,Q=>{v(ue,[...c(ue),Q],!0)}),v(n,[...c(n),{role:"assistant",content:c(s)??"",toolEvents:c(ue).length>0?[...c(ue)]:void 0}],!0),v(ue,[],!0)}catch(Q){if(Q.name==="AbortError"){const oe=c(s);oe!=null&&oe.trim()&&v(n,[...c(n),{role:"assistant",content:oe+`
229
229
 
230
- *[stopped]*`,toolEvents:c(ue).length>0?[...c(ue)]:void 0}],!0)}else v(d,Q.message,!0)}finally{D=null,v(s,null),v(ue,[],!0),v(a,!1)}}}function Di(){D==null||D.abort()}function $i(W){W.key==="Enter"&&!W.shiftKey&&(W.preventDefault(),Ai())}function Gi(){v(n,[],!0),v(d,"")}const Ui=["Write a view to list all document IDs","Write a view to sum a numeric property across all documents","Write a view that filters to a specific prefix and emits a field","Write a reduce that returns the maximum value","Explain how the current view works"];function mn(W){v(r,W,!0),dt==null||dt.focus()}var rt=oY(),Kt=xt(rt),_i=b(Kt),Pi=m(b(_i),2);{var Li=W=>{var Q=CZ(),oe=b(Q);{var $=G=>{var ie=po();H(()=>N(ie,`${c(u).provider??""} · ${(c(g)||c(u).model)??""}`)),I(G,ie)},A=G=>{var ie=po("Not configured");I(G,ie)};O(oe,G=>{c(ot)?G($):G(A,-1)})}H(()=>ln(Q,"title",`Provider: ${c(u).provider??""}`)),I(W,Q)};O(Pi,W=>{c(u)&&W(Li)})}var Si=m(Pi,2);{var Oi=W=>{var Q=xZ();z("click",Q,Gi),I(W,Q)};O(Si,W=>{c(n).length>0&&W(Oi)})}var qi=m(_i,2),mi=b(qi);{var Ue=W=>{var Q=kZ();I(W,Q)},J=W=>{var Q=EZ(),oe=b(Q),$=b(oe);{var A=fe=>{var Y=LZ(),le=m(xt(Y)),Re=b(le);H(()=>N(Re,t().id)),I(fe,Y)},G=fe=>{var Y=po("No view selected. Ask a general sheDB view question.");I(fe,Y)};O($,fe=>{t()?fe(A):fe(G,-1)})}var ie=m(oe,2);ni(ie,17,()=>Ui,Vi,(fe,Y)=>{var le=IZ(),Re=b(le);H(()=>N(Re,c(Y))),z("click",le,()=>mn(c(Y))),I(fe,le)}),I(W,Q)};O(mi,W=>{c(ot)?c(n).length===0&&c(s)===null&&W(J,1):W(Ue)})}var Qe=m(mi,2);ni(Qe,17,()=>c(n),Vi,(W,Q,oe)=>{var $=NZ(),A=b($);{var G=fe=>{var Y=DZ(),le=b(Y);H(()=>N(le,c(Q).content)),I(fe,Y)},ie=fe=>{const Y=Ct(()=>et(c(Q).content)),le=Ct(()=>Nt(c(Y)));var Re=RZ(),_e=xt(Re);{var ge=De=>{var Ie=vD();ni(Ie,21,()=>c(Q).toolEvents,Vi,(St,mt)=>{var qe=As(),Tt=xt(qe);{var it=Ne=>{var Ee=_D(),Se=m(b(Ee)),nt=b(Se);H(de=>N(nt,de),[()=>c(mt).name.replace(/_/g," ")]),I(Ne,Ee)},ye=Ne=>{var Ee=mD(),Se=m(b(Ee)),nt=b(Se);H(de=>N(nt,de),[()=>c(mt).name.replace(/_/g," ")]),I(Ne,Ee)};O(Tt,Ne=>{c(mt).type==="tool_call"?Ne(it):Ne(ye,-1)})}I(St,qe)}),I(De,Ie)};O(_e,De=>{var Ie;(Ie=c(Q).toolEvents)!=null&&Ie.length&&De(ge)})}var tt=m(_e,2),U=b(tt);ni(U,17,()=>c(Y),Vi,(De,Ie,St)=>{var mt=As(),qe=xt(mt);{var Tt=ye=>{var Ne=bD();rc(Ne,()=>ht(c(Ie).text),!0),I(ye,Ne)},it=ye=>{const Ne=Ct(()=>`${oe}:${St}`),Ee=Ct(()=>Me(c(Ie).text)),Se=Ct(()=>c(p).has(c(Ne))),nt=Ct(()=>c(Ie).lang==="filter");var de=PZ(),Pe=b(de),at=b(Pe),ut=b(at),Je=m(at,2),$t=b(Je),Jt=m(Pe,2);let Mi;var ii=b(Jt),xi=b(ii);rc(xi,()=>ft(c(Ie).text,c(Ie).lang??""),!0);var Ji=m(ii,2);{var Hi=li=>{var un=TZ(),rn=b(un);H(()=>N(rn,c(Se)?"▲ collapse":"▼ expand")),z("click",un,()=>jt(c(Ne))),I(li,un)};O(Ji,li=>{c(Ee)&&li(Hi)})}H(()=>{N(ut,c(nt)?"filter":c(Ie).lang),Mi=kt(Jt,1,"code-body svelte-1twuiul",null,Mi,{collapsed:c(Ee)&&!c(Se)})}),z("click",$t,()=>Xe(c(Ie).text)),I(ye,de)};O(qe,ye=>{c(Ie).type==="text"?ye(Tt):ye(it,-1)})}I(De,mt)});var ne=m(U,2);{var Le=De=>{var Ie=MZ(),St=b(Ie),mt=b(St);H(qe=>N(mt,qe),[()=>ri(c(le))]),z("click",St,()=>e.onApplyView(c(le))),I(De,Ie)},Ve=Ct(()=>ti(c(le))&&e.onApplyView);O(ne,De=>{c(Ve)&&De(Le)})}I(fe,Re)};O(A,fe=>{c(Q).role==="user"?fe(G):fe(ie,-1)})}H(()=>kt($,1,`message ${c(Q).role??""}`,"svelte-1twuiul")),I(W,$)});var _t=m(Qe,2);{var yt=W=>{var Q=vD();ni(Q,21,()=>c(ue),Vi,(oe,$)=>{var A=As(),G=xt(A);{var ie=Y=>{var le=_D(),Re=m(b(le)),_e=b(Re);H(ge=>N(_e,ge),[()=>c($).name.replace(/_/g," ")]),I(Y,le)},fe=Y=>{var le=mD(),Re=m(b(le)),_e=b(Re);H(ge=>N(_e,ge),[()=>c($).name.replace(/_/g," ")]),I(Y,le)};O(G,Y=>{c($).type==="tool_call"?Y(ie):Y(fe,-1)})}I(oe,A)}),I(W,Q)};O(_t,W=>{c(ue).length>0&&W(yt)})}var Ot=m(_t,2);{var j=W=>{var Q=AZ(),oe=b(Q),$=b(oe),A=b($);H(()=>N(A,F[c(M)])),I(W,Q)};O(Ot,W=>{c(a)&&c(s)===null&&c(ue).length===0&&W(j)})}var ce=m(Ot,2);{var ke=W=>{var Q=FZ(),oe=b(Q);ni(oe,21,()=>ct(c(s)),Vi,($,A)=>{var G=As(),ie=xt(G);{var fe=le=>{var Re=bD();rc(Re,()=>ht(c(A).text),!0),I(le,Re)},Y=le=>{var Re=OZ(),_e=b(Re),ge=b(_e),tt=b(ge),U=m(_e,2),ne=b(U);rc(ne,()=>ft(c(A).text,c(A).lang??""),!0),H(()=>N(tt,c(A).lang)),I(le,Re)};O(ie,le=>{c(A).type==="text"?le(fe):le(Y,-1)})}I($,G)}),I(W,Q)};O(ce,W=>{c(s)!==null&&W(ke)})}vs(qi,W=>we=W,()=>we);var ze=m(qi,2);{var st=W=>{var Q=HZ(),oe=b(Q);H(()=>N(oe,c(d))),I(W,Q)};O(ze,W=>{c(d)&&W(st)})}var X=m(ze,2),ae=b(X),me=b(ae),Ze=m(ae,2),Zt=b(Ze),bt=m(Ze,2),We=b(bt),At=m(bt,2),ai=b(At),zt=m(X,2),vi=b(zt);{var hi=W=>{var Q=WZ();let oe;var $=m(b(Q),2),A=b($),G=m($,2),ie=b(G);H(()=>{oe=kt(Q,1,"file-chip svelte-1twuiul",null,oe,{inactive:!c(pe)}),N(A,t().id),ln(G,"title",c(pe)?"Remove from context":"Re-add to context"),N(ie,c(pe)?"×":"+")}),z("click",G,()=>v(pe,!c(pe))),I(W,Q)};O(vi,W=>{t()&&W(hi)})}var Ci=m(vi,2);ni(Ci,17,()=>c(te),Vi,(W,Q,oe)=>{const $=Ct(()=>Ri(c(Q).name));var A=BZ(),G=b(A),ie=b(G),fe=m(G,2),Y=b(fe),le=m(fe,2);H((Re,_e)=>{kt(G,1,`badge badge-${Re??""}`,"svelte-1twuiul"),N(ie,_e),N(Y,c(Q).name)},[()=>c($).toLowerCase(),()=>ci(c($))]),z("click",le,()=>Bt(oe)),I(W,A)});var zi=m(Ci,2),$e=m(zi,2);vs($e,W=>Ke=W,()=>Ke);var Fe=m(zt,2);let Ft;var Yt=b(Fe);let qt;var Qt=b(Yt);vs(Qt,W=>dt=W,()=>dt);var re=m(Yt,2);{var Ge=W=>{var Q=zZ();z("click",Q,Di),I(W,Q)},wt=W=>{var Q=VZ();H(oe=>Q.disabled=oe,[()=>!c(r).trim()||!c(ot)]),z("click",Q,Ai),I(W,Q)};O(re,W=>{c(a)?W(Ge):W(wt,-1)})}var vt=m(Fe,2);{var di=W=>{var Q=GZ(),oe=b(Q),$=b(oe),A=m(oe,2);{var G=le=>{var Re=$Z();ni(Re,21,()=>c(f),Vi,(_e,ge)=>{var tt=jZ(),U=b(tt),ne={};H(()=>{N(U,c(ge)),ne!==(ne=c(ge))&&(tt.value=(tt.__value=c(ge))??"")}),I(_e,tt)}),H(()=>Re.disabled=c(a)),ys(Re,()=>c(g),_e=>v(g,_e)),I(le,Re)},ie=le=>{var Re=UZ(),_e=b(Re);H(()=>N(_e,c(g)||c(u).model)),I(le,Re)};O(A,le=>{c(f).length>0?le(G):le(ie,-1)})}var fe=m(A,2);{var Y=le=>{var Re=qZ();z("click",Re,Ut),I(le,Re)};O(fe,le=>{c(u).provider==="ollama"&&le(Y)})}H(()=>N($,c(u).provider)),I(W,Q)};O(vt,W=>{c(ot)&&c(u)&&W(di)})}var It=m(Kt,2);{var Ii=W=>{var Q=sY(),oe=b(Q),$=b(oe),A=b($),G=b(A),ie=m(A,2),fe=m($,2),Y=b(fe);{var le=ge=>{var tt=KZ();I(ge,tt)},Re=ge=>{var tt=ZZ(),U=b(tt);H(()=>N(U,c(k))),I(ge,tt)},_e=ge=>{var tt=nY(),U=b(tt);{var ne=ye=>{var Ne=YZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).version)),I(ye,Ne)};O(U,ye=>{c(y).version&&ye(ne)})}var Le=m(U,2);{var Ve=ye=>{var Ne=XZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).details.family)),I(ye,Ne)};O(Le,ye=>{var Ne;(Ne=c(y).details)!=null&&Ne.family&&ye(Ve)})}var De=m(Le,2);{var Ie=ye=>{var Ne=QZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).details.parameter_size)),I(ye,Ne)};O(De,ye=>{var Ne;(Ne=c(y).details)!=null&&Ne.parameter_size&&ye(Ie)})}var St=m(De,2);{var mt=ye=>{var Ne=JZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).details.quantization_level)),I(ye,Ne)};O(St,ye=>{var Ne;(Ne=c(y).details)!=null&&Ne.quantization_level&&ye(mt)})}var qe=m(St,2);{var Tt=ye=>{var Ne=tY(),Ee=m(xt(Ne),2);ni(Ee,21,()=>c(y).running,Vi,(Se,nt)=>{var de=eY(),Pe=b(de);H(at=>N(Pe,`${c(nt).name??""} · ${at??""} VRAM`),[()=>wi(c(nt).size_vram)]),I(Se,de)}),I(ye,Ne)},it=ye=>{var Ne=iY();I(ye,Ne)};O(qe,ye=>{c(y).running&&c(y).running.length>0?ye(Tt):c(y).running!==null&&ye(it,1)})}I(ge,tt)};O(Y,ge=>{c(x)?ge(le):c(k)?ge(Re,1):c(y)&&ge(_e,2)})}H(()=>{var ge;return N(G,`Ollama · ${(c(g)||((ge=c(u))==null?void 0:ge.model))??""}`)}),z("click",Q,()=>v(w,!1)),z("click",oe,ge=>ge.stopPropagation()),z("click",ie,()=>v(w,!1)),I(W,Q)};O(It,W=>{c(w)&&W(Ii)})}H(W=>{N(ai,W),Ft=kt(Fe,1,"input-row svelte-1twuiul",null,Ft,{"drag-over":c(je)}),qt=kt(Yt,1,"textarea-wrap svelte-1twuiul",null,qt,{loading:c(a)}),ln(Qt,"placeholder",c(ot)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),Qt.disabled=c(a)||!c(ot)},[()=>wi(c(Pt))]),ms(me,()=>c(K),W=>v(K,W)),ms(Zt,()=>c(V),W=>v(V,W)),ms(We,()=>c(se),W=>v(se,W)),z("click",zi,Xt),z("change",$e,Bi),ds("dragover",Fe,Ni),ds("dragleave",Fe,Ki),ds("drop",Fe,Ti),z("keydown",Qt,$i),Ht(Qt,()=>c(r),W=>v(r,W)),I(o,rt),Ps()}zs(["click","change","keydown"]);var aY=T('<div class="me svelte-1pxdb1"></div>');function vS(o,e){Ts(e,!0);let t=Su(e,"value",15,""),i=Su(e,"language",3,"javascript"),n,s,r=!1;Bs(()=>{const d=i()==="json"?{formatOnPaste:!0,autoIndent:"full"}:{};s=mr.create(n,{value:t(),language:i(),theme:"vs-dark",minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', monospace",automaticLayout:!0,wordWrap:"on",lineNumbers:"on",renderLineHighlight:"none",overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:6,horizontalScrollbarSize:6},...d}),s.onDidChangeModelContent(()=>{r||t(s.getValue())})}),x_(()=>s==null?void 0:s.dispose()),Vn(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=aY();vs(a,d=>n=d,()=>n),I(o,a),Ps()}var lY=T('<!> <div class="welcome svelte-rrt0o"><div class="welcome-inner svelte-rrt0o"><div class="welcome-logo svelte-rrt0o">db</div> <p class="welcome-sub svelte-rrt0o">sheDB — embedded JSON document store with MapReduce views</p> <div class="welcome-hint svelte-rrt0o"><strong>In scripts:</strong> use <code class="svelte-rrt0o">she.db.get(id)</code>, <code class="svelte-rrt0o">she.db.set(id, doc)</code>, <code class="svelte-rrt0o">she.db.extend(id, partial)</code>, <code class="svelte-rrt0o">she.db.sub(pattern, cb)</code>.<br/> <strong>Views:</strong> <code class="svelte-rrt0o">this</code> = current document &mdash; call <code class="svelte-rrt0o">emit(value)</code> to add to result.</div> <div class="welcome-links svelte-rrt0o"><a href="https://github.com/hobbyquaker/she/blob/main/doc/db/README.md" target="_blank" rel="noopener" class="svelte-rrt0o">sheDB docs</a> <span class="svelte-rrt0o">·</span> <a href="https://github.com/hobbyquaker/she/blob/main/doc/db/view-examples.md" target="_blank" rel="noopener" class="svelte-rrt0o">View examples</a> <span class="svelte-rrt0o">·</span> <a href="https://github.com/hobbyquaker/she" target="_blank" rel="noopener" class="svelte-rrt0o">GitHub</a></div></div></div>',1),cY=T('<button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><line x1="5.5" y1="5" x2="4" y2="2.5"></line><line x1="10.5" y1="5" x2="12" y2="2.5"></line><path d="M3 11 V7 A5 3.5 0 0 0 13 7 V11 Z" stroke-linejoin="round"></path><circle cx="6" cy="8.2" r="0.7" fill="currentColor" stroke="none"></circle><circle cx="10" cy="8.2" r="0.7" fill="currentColor" stroke="none"></circle></svg> AI</button>'),yD=T('<div class="form-error svelte-rrt0o"> </div>'),dY=T('<div class="new-item-form svelte-rrt0o"><input placeholder="device/lamp1" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),wD=T("<li> </li>"),SD=T('<div class="error-bar svelte-rrt0o"> </div>'),CD=T('<div class="loading svelte-rrt0o">Loading…</div>'),uY=T('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),hY=T('<div class="editor-toolbar svelte-rrt0o"><span class="editor-title svelte-rrt0o"> </span> <button class="svelte-rrt0o">Save</button> <button class="btn-danger svelte-rrt0o">Delete</button></div> <!> <!>',1),fY=T('<div class="panel svelte-rrt0o"><aside class="sidebar svelte-rrt0o"><div class="toolbar svelte-rrt0o"><button class="svelte-rrt0o">+ Doc</button></div> <!> <div class="sidebar-search svelte-rrt0o"><input type="search" placeholder="Filter…" class="svelte-rrt0o"/></div> <ul class="flat-list svelte-rrt0o"></ul></aside> <div class="resize-handle svelte-rrt0o" role="separator"></div> <main class="editor-area svelte-rrt0o"><!></main></div>'),gY=T('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),pY=T('<label class="opt-check svelte-rrt0o"><input type="checkbox" class="svelte-rrt0o"/> <span class="checkmark svelte-rrt0o"></span> Retain <span class="section-hint svelte-rrt0o">— send as retained MQTT message</span></label>'),_Y=T('<span class="badge-error svelte-rrt0o">error</span>'),mY=T('<span class="badge-ok svelte-rrt0o"> </span>'),vY=T('<pre class="result-error svelte-rrt0o"> </pre>'),bY=T('<pre class="result-json svelte-rrt0o"> </pre>'),yY=T('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),wY=T('<div class="view-sections svelte-rrt0o"><div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Description <span class="section-hint svelte-rrt0o">— optional, shown in sidebar</span></div> <div class="section-body svelte-rrt0o"><input class="filter-input svelte-rrt0o" placeholder="(optional description)"/></div></div> <div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Filter <span class="section-hint svelte-rrt0o">— MQTT wildcard, optional</span></div> <div class="section-body svelte-rrt0o"><input class="filter-input svelte-rrt0o" placeholder="#"/></div></div> <div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Map <span class="section-hint svelte-rrt0o">— <code>this</code> = document &nbsp;·&nbsp; call <code>emit(this)</code> to include in result</span></div> <div class="monaco-view-wrap monaco-view-wrap--map svelte-rrt0o"><!></div></div> <div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Reduce <span class="section-hint svelte-rrt0o">— receives <code>result</code> array, must <code>return</code> new value (optional)</span></div> <div class="monaco-view-wrap monaco-view-wrap--reduce svelte-rrt0o"><!></div></div> <div class="view-section view-section--options svelte-rrt0o"><label class="opt-check svelte-rrt0o"><input type="checkbox" class="svelte-rrt0o"/> <span class="checkmark svelte-rrt0o"></span> Publish to MQTT <span class="section-hint svelte-rrt0o">— publish view to MQTT topic <code> </code></span></label> <!></div> <!></div>'),SY=T('<div class="editor-toolbar svelte-rrt0o"><span class="editor-title svelte-rrt0o"> </span> <button class="svelte-rrt0o">Save</button> <button title="Re-run view" class="svelte-rrt0o">Refresh</button> <button class="btn-danger svelte-rrt0o">Delete</button></div> <!> <!>',1),CY=T('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),xY=T('<div class="panel svelte-rrt0o"><aside class="sidebar svelte-rrt0o"><div class="toolbar svelte-rrt0o"><button class="svelte-rrt0o">+ View</button></div> <!> <div class="sidebar-search svelte-rrt0o"><input type="search" placeholder="Filter…" class="svelte-rrt0o"/></div> <ul class="flat-list svelte-rrt0o"></ul></aside> <div class="resize-handle svelte-rrt0o" role="separator"></div> <main class="editor-area svelte-rrt0o"><!></main> <!></div>'),kY=T('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function LY(o,e){Ts(e,!0);const t=Ue=>{var J=lY(),Qe=xt(J);vs(Uc(Qe,{}),_t=>ci=_t,()=>ci),I(Ue,J)};let i=P(yi([])),n=P(null),s=P("{}"),r=P(!1),a=P(null);const d="she-db-selected-view";let u=P(yi([])),f=P(yi(localStorage.getItem(d))),g=P("#"),p=P("// emit(this.someProperty)"),w=P(""),y=P(""),x=P(!1),k=P(!1),D=P(null),M=P(!1),F=P(null),K=P("she/db/view/");const V="she-db-panel";let se=P(yi(localStorage.getItem(V)??"docs")),te=P(""),pe=P(!1),je=P(null),Ke=P(""),ue=P(!1),He=P(null);const dt="she-db-sidebar-width";let we=P(yi(parseInt(localStorage.getItem(dt)??"220",10))),gt=!1,ot=0,Pt=0;const Oe="she-db-chat-width",Mt="she-db-chat-open";let et=P(localStorage.getItem(Mt)==="true"),ct=P(yi(parseInt(localStorage.getItem(Oe)??"320",10))),Nt=!1,ti=0,ri=0;const Vt=Ct(()=>c(f)?{id:c(f),filter:c(g),map:c(p),reduce:c(w)}:null);function Me(Ue){Ue.filter!==void 0&&v(g,Ue.filter,!0),Ue.map!==void 0&&v(p,Ue.map,!0),Ue.reduce!==void 0&&v(w,Ue.reduce,!0)}Vn(()=>{localStorage.setItem(Mt,String(c(et)))}),Vn(()=>{localStorage.setItem(V,c(se))}),Vn(()=>{c(f)?localStorage.setItem(d,c(f)):localStorage.removeItem(d)});function jt(Ue){gt=!0,ot=Ue.clientX,Pt=c(we),Ue.preventDefault()}function ft(Ue){gt&&v(we,Math.max(140,Math.min(500,Pt+Ue.clientX-ot)),!0),Nt&&v(ct,Math.max(240,Math.min(600,ri-(Ue.clientX-ti))),!0)}function ht(){gt&&(gt=!1,localStorage.setItem(dt,String(c(we)))),Nt&&(Nt=!1,localStorage.setItem(Oe,String(c(ct))))}function he(Ue){Nt=!0,ti=Ue.clientX,ri=c(ct),Ue.preventDefault()}async function Xe(){try{v(i,await qN(),!0)}catch{}}async function Ut(){try{v(u,await GN(),!0)}catch{}}async function wi(Ue){v(n,Ue,!0),v(a,null),v(r,!0);try{const J=await WU(Ue);v(s,JSON.stringify(J,null,2),!0)}catch(J){v(a,J instanceof Error?J.message:String(J),!0)}finally{v(r,!1)}}async function Ri(){if(c(n)){v(a,null);try{const Ue=JSON.parse(c(s));await VE(c(n),Ue)}catch(Ue){v(a,Ue instanceof Error?Ue.message:String(Ue),!0)}}}let ci;async function Bt(){if(c(n)&&await ci.show(`Delete document "${c(n)}"?`,{confirm:"Delete",danger:!0}))try{await BU(c(n)),v(n,null),v(s,"{}")}catch(Ue){v(a,Ue instanceof Error?Ue.message:String(Ue),!0)}}async function Xt(){const Ue=c(te).trim();if(Ue){v(je,null);try{await VE(Ue,{}),v(pe,!1),v(te,""),await wi(Ue)}catch(J){v(je,J instanceof Error?J.message:String(J),!0)}}}async function pt(Ue){v(f,Ue,!0),v(F,null),v(M,!0),v(D,null);try{const J=await zU(Ue);v(g,J.filter??"",!0),v(p,J.map,!0),v(w,J.reduce??"",!0),v(y,J.description??"",!0),v(x,J.mqttpub??!1,!0),v(k,J.retain??!1,!0),v(D,await pS(Ue).catch(()=>null),!0)}catch(J){v(F,J instanceof Error?J.message:String(J),!0)}finally{v(M,!1)}}async function Bi(){if(c(f)){v(F,null);try{const Ue={map:c(p)};c(g).trim()&&(Ue.filter=c(g).trim()),c(w).trim()&&(Ue.reduce=c(w).trim()),c(y).trim()&&(Ue.description=c(y).trim()),c(x)&&(Ue.mqttpub=!0),c(k)&&(Ue.retain=!0),await jE(c(f),Ue)}catch(Ue){v(F,Ue instanceof Error?Ue.message:String(Ue),!0)}}}async function Ti(){if(c(f))try{v(D,await pS(c(f)),!0)}catch(Ue){v(F,Ue instanceof Error?Ue.message:String(Ue),!0)}}async function Ni(){if(c(f)&&await ci.show(`Delete view "${c(f)}"?`,{confirm:"Delete",danger:!0}))try{await VU(c(f)),v(f,null),v(g,""),v(p,"// emit(this.someProperty)"),v(w,""),v(y,""),v(x,!1),v(k,!1),v(D,null)}catch(Ue){v(F,Ue instanceof Error?Ue.message:String(Ue),!0)}}async function Ki(){if(!c(Ke).trim())return;const Ue=c(Ke).trim();v(He,null);try{await jE(Ue,{map:"// emit(this.someProperty)"}),v(ue,!1),v(Ke,""),await Ut(),await pt(Ue)}catch(J){v(He,J instanceof Error?J.message:String(J),!0)}}let Ai=P(""),Di=P(""),$i=Ct(()=>[...c(i)].filter(Ue=>!c(Ai)||Ue.toLowerCase().includes(c(Ai).toLowerCase())).sort()),Gi=Ct(()=>[...c(u)].filter(Ue=>!c(Di)||Ue.toLowerCase().includes(c(Di).toLowerCase())).sort());Bs(()=>{Xe(),Ut().then(()=>{c(f)&&c(u).includes(c(f))?pt(c(f)):v(f,null)}),Pl().then(yt=>{const Ot=yt.dbPrefix||"she/db/",j=Ot.endsWith("/")?Ot:Ot+"/";v(K,j+"view/")}).catch(()=>{});const Ue=cr("db:ids",yt=>{v(i,yt.ids??[],!0)}),J=cr("db:viewIds",yt=>{v(u,yt.ids??[],!0)}),Qe=cr("db:change",async yt=>{const Ot=yt.id;c(n)===Ot&&(yt.doc===null?(v(n,null),v(s,"{}")):v(s,JSON.stringify(yt.doc,null,2),!0))}),_t=cr("db:viewUpdate",async yt=>{const Ot=yt.id;c(f)===Ot&&v(D,await pS(Ot).catch(()=>null),!0)});return()=>{Ue(),J(),Qe(),_t()}});var Ui=kY(),mn=b(Ui),rt=b(mn);let Kt;var _i=m(rt,2);let Pi;var Li=m(_i,2);{var Si=Ue=>{var J=cY();let Qe;H(()=>{Qe=kt(J,1,"ai-toggle svelte-rrt0o",null,Qe,{"ai-open":c(et)}),ln(J,"title",c(et)?"Close AI assistant":"Open AI assistant")}),z("click",J,()=>v(et,!c(et))),I(Ue,J)};O(Li,Ue=>{c(se)==="views"&&Ue(Si)})}var Oi=m(mn,2);{var qi=Ue=>{var J=fY(),Qe=b(J);let _t;var yt=b(Qe),Ot=b(yt),j=m(yt,2);{var ce=bt=>{var We=dY(),At=xt(We),ai=b(At),zt=m(ai,2),vi=m(At,2);{var hi=Ci=>{var zi=yD(),$e=b(zi);H(()=>N($e,c(je))),I(Ci,zi)};O(vi,Ci=>{c(je)&&Ci(hi)})}z("keydown",ai,Ci=>Ci.key==="Enter"&&Xt()),Ht(ai,()=>c(te),Ci=>v(te,Ci)),z("click",zt,Xt),I(bt,We)};O(j,bt=>{c(pe)&&bt(ce)})}var ke=m(j,2),ze=b(ke),st=m(ke,2);ni(st,20,()=>c($i),bt=>bt,(bt,We)=>{var At=wD();let ai;var zt=b(At);H(()=>{ai=kt(At,1,"flat-item svelte-rrt0o",null,ai,{"active-item":c(n)===We}),N(zt,We)}),z("click",At,()=>wi(We)),I(bt,At)});var X=m(Qe,2),ae=m(X,2),me=b(ae);{var Ze=bt=>{var We=hY(),At=xt(We),ai=b(At),zt=b(ai),vi=m(ai,2),hi=m(vi,2),Ci=m(At,2);{var zi=Yt=>{var qt=SD(),Qt=b(qt);H(()=>N(Qt,c(a))),I(Yt,qt)};O(Ci,Yt=>{c(a)&&Yt(zi)})}var $e=m(Ci,2);{var Fe=Yt=>{var qt=CD();I(Yt,qt)},Ft=Yt=>{var qt=uY(),Qt=b(qt);vS(Qt,{language:"json",get value(){return c(s)},set value(re){v(s,re,!0)}}),I(Yt,qt)};O($e,Yt=>{c(r)?Yt(Fe):Yt(Ft,-1)})}H(()=>N(zt,c(n))),z("click",vi,Ri),z("click",hi,Bt),I(bt,We)},Zt=bt=>{t(bt)};O(me,bt=>{c(n)?bt(Ze):bt(Zt,-1)})}H(()=>_t=zo(Qe,"",_t,{width:`${c(we)??""}px`})),z("click",Ot,()=>{v(pe,!c(pe)),v(je,null)}),Ht(ze,()=>c(Ai),bt=>v(Ai,bt)),z("mousedown",X,jt),I(Ue,J)},mi=Ue=>{var J=xY(),Qe=b(J);let _t;var yt=b(Qe),Ot=b(yt),j=m(yt,2);{var ce=At=>{var ai=gY(),zt=xt(ai),vi=b(zt),hi=m(vi,2),Ci=m(zt,2);{var zi=$e=>{var Fe=yD(),Ft=b(Fe);H(()=>N(Ft,c(He))),I($e,Fe)};O(Ci,$e=>{c(He)&&$e(zi)})}z("keydown",vi,$e=>$e.key==="Enter"&&Ki()),Ht(vi,()=>c(Ke),$e=>v(Ke,$e)),z("click",hi,Ki),I(At,ai)};O(j,At=>{c(ue)&&At(ce)})}var ke=m(j,2),ze=b(ke),st=m(ke,2);ni(st,20,()=>c(Gi),At=>At,(At,ai)=>{var zt=wD();let vi;var hi=b(zt);H(()=>{vi=kt(zt,1,"flat-item svelte-rrt0o",null,vi,{"active-item":c(f)===ai}),N(hi,ai)}),z("click",zt,()=>pt(ai)),I(At,zt)});var X=m(Qe,2),ae=m(X,2),me=b(ae);{var Ze=At=>{var ai=SY(),zt=xt(ai),vi=b(zt),hi=b(vi),Ci=m(vi,2),zi=m(Ci,2),$e=m(zi,2),Fe=m(zt,2);{var Ft=re=>{var Ge=SD(),wt=b(Ge);H(()=>N(wt,c(F))),I(re,Ge)};O(Fe,re=>{c(F)&&re(Ft)})}var Yt=m(Fe,2);{var qt=re=>{var Ge=CD();I(re,Ge)},Qt=re=>{var Ge=wY(),wt=b(Ge),vt=m(b(wt),2),di=b(vt),It=m(wt,2),Ii=m(b(It),2),W=b(Ii),Q=m(It,2),oe=m(b(Q),2),$=b(oe);vS($,{language:"javascript",get value(){return c(p)},set value(Ve){v(p,Ve,!0)}});var A=m(Q,2),G=m(b(A),2),ie=b(G);vS(ie,{language:"javascript",get value(){return c(w)},set value(Ve){v(w,Ve,!0)}});var fe=m(A,2),Y=b(fe),le=b(Y),Re=m(le,4),_e=m(b(Re)),ge=b(_e),tt=m(Y,2);{var U=Ve=>{var De=pY(),Ie=b(De);ms(Ie,()=>c(k),St=>v(k,St)),I(Ve,De)};O(tt,Ve=>{c(x)&&Ve(U)})}var ne=m(fe,2);{var Le=Ve=>{var De=yY(),Ie=b(De),St=m(b(Ie));{var mt=Ne=>{var Ee=_Y();I(Ne,Ee)},qe=Ne=>{var Ee=mY(),Se=b(Ee);H(()=>N(Se,`${c(D).length??0??""} items · rev ${c(D)._rev??""}`)),I(Ne,Ee)};O(St,Ne=>{c(D).error?Ne(mt):Ne(qe,-1)})}var Tt=m(Ie,2);{var it=Ne=>{var Ee=vY(),Se=b(Ee);H(()=>N(Se,c(D).error)),I(Ne,Ee)},ye=Ne=>{var Ee=bY(),Se=b(Ee);H(nt=>N(Se,nt),[()=>JSON.stringify(c(D).result,null,2)]),I(Ne,Ee)};O(Tt,Ne=>{c(D).error?Ne(it):Ne(ye,-1)})}I(Ve,De)};O(ne,Ve=>{c(D)&&Ve(Le)})}H(()=>N(ge,`${c(K)??""}${c(f)??""} on every update`)),Ht(di,()=>c(y),Ve=>v(y,Ve)),Ht(W,()=>c(g),Ve=>v(g,Ve)),ms(le,()=>c(x),Ve=>v(x,Ve)),I(re,Ge)};O(Yt,re=>{c(M)?re(qt):re(Qt,-1)})}H(()=>N(hi,c(f))),z("click",Ci,Bi),z("click",zi,Ti),z("click",$e,Ni),I(At,ai)},Zt=At=>{t(At)};O(me,At=>{c(f)?At(Ze):At(Zt,-1)})}var bt=m(ae,2);{var We=At=>{var ai=CY(),zt=xt(ai),vi=m(zt,2);let hi;var Ci=b(vi);rY(Ci,{get currentView(){return c(Vt)},onApplyView:Me}),H(()=>hi=zo(vi,"",hi,{width:`${c(ct)??""}px`})),z("mousedown",zt,he),I(At,ai)};O(bt,At=>{c(et)&&At(We)})}H(()=>_t=zo(Qe,"",_t,{width:`${c(we)??""}px`})),z("click",Ot,()=>{v(ue,!c(ue)),v(He,null)}),Ht(ze,()=>c(Di),At=>v(Di,At)),z("mousedown",X,jt),I(Ue,J)};O(Oi,Ue=>{c(se)==="docs"?Ue(qi):Ue(mi,-1)})}H(()=>{Kt=kt(rt,1,"svelte-rrt0o",null,Kt,{active:c(se)==="docs"}),Pi=kt(_i,1,"svelte-rrt0o",null,Pi,{active:c(se)==="views"})}),z("mousemove",Ui,ft),z("mouseup",Ui,ht),ds("mouseleave",Ui,ht),z("click",rt,()=>v(se,"docs")),z("click",_i,()=>v(se,"views")),I(o,Ui),Ps()}zs(["mousemove","mouseup","click","keydown","mousedown"]);var IY=T('<label class="svelte-1ua3isv">Passcode <input type="number" placeholder="20202021" class="svelte-1ua3isv"/></label> <label class="svelte-1ua3isv">Discriminator (optional) <input type="number" placeholder="3840" class="svelte-1ua3isv"/></label>',1),EY=T('<label class="svelte-1ua3isv">Pairing Code / QR <input type="text" placeholder="MT:..." class="svelte-1ua3isv"/></label>'),xD=T('<p class="err svelte-1ua3isv"> </p>'),DY=T('<div class="wizard svelte-1ua3isv"><div class="wizard-tabs svelte-1ua3isv"><button>Passcode</button> <button>QR / Code</button></div> <!> <label class="svelte-1ua3isv">IP Address (optional, bypasses mDNS) <input type="text" placeholder="192.168.1.100 or 192.168.1.100:5540" class="svelte-1ua3isv"/></label> <!> <button class="commission-btn svelte-1ua3isv"> </button></div>'),TY=T('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),PY=T('<span class="device-name svelte-1ua3isv"> </span>'),MY=T('<li><button class="device-select-btn svelte-1ua3isv"><span></span> <span class="device-label svelte-1ua3isv"><!></span></button> <button class="unpair-btn svelte-1ua3isv" title="Unpair">✕</button></li>'),RY=T('<li class="empty svelte-1ua3isv">No paired devices</li>'),NY=T('<p class="info svelte-1ua3isv">Loading…</p>'),AY=T('<p class="device-subtitle svelte-1ua3isv"> </p>'),OY=T('<span class="ep-chip svelte-1ua3isv"> </span>'),FY=T('<span class="attr-id svelte-1ua3isv"> </span>'),HY=T('<button class="attr-action-btn svelte-1ua3isv"> </button>'),WY=T('<div class="attr-actions svelte-1ua3isv"></div>'),BY=T('<span class="cmd-sep svelte-1ua3isv">,</span>'),zY=T('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),VY=T('<span class="cmd-id svelte-1ua3isv"> </span>'),jY=T("<!> <!>",1),$Y=T('<span class="cmd-list svelte-1ua3isv"></span>'),UY=T(' <span class="cmd-id svelte-1ua3isv"> </span>',1),qY=T('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),GY=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"><th class="svelte-1ua3isv">deviceType</th><th class="svelte-1ua3isv">revision</th></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),KY=T('<th class="svelte-1ua3isv"> </th>'),ZY=T('<td class="svelte-1ua3isv"> </td>'),YY=T('<tr class="svelte-1ua3isv"></tr>'),XY=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),QY=T('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),JY=T('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),eX=T('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),tX=T('<span class="attr-val svelte-1ua3isv"> </span>'),iX=T('<tr class="svelte-1ua3isv"><td class="attr-name-cell svelte-1ua3isv"><span class="attr-key svelte-1ua3isv"> </span><!></td><td class="attr-actions-cell svelte-1ua3isv"><!></td><td class="attr-val-cell svelte-1ua3isv"><!></td></tr>'),nX=T('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),sX=T('<table class="cluster-table svelte-1ua3isv"><colgroup><col class="col-attr-name svelte-1ua3isv"/><col class="col-attr-actions svelte-1ua3isv"/><col class="col-attr-val"/></colgroup><tbody class="svelte-1ua3isv"></tbody></table>'),oX=T('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),rX=T('<details class="svelte-1ua3isv"><summary class="svelte-1ua3isv"> <span class="ep-id svelte-1ua3isv"> </span> <span class="ep-chips svelte-1ua3isv"></span></summary> <!></details>'),aX=T('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),lX=T('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),cX=T('<span class="stream-badge svelte-1ua3isv"> </span>'),dX=T('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),bS=T('&nbsp;<span class="e-sub svelte-1ua3isv"> </span>',1),uX=T('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),hX=T('<span class="e-badge e-badge-attr svelte-1ua3isv">attr</span> <span class="e-node svelte-1ua3isv"> <!></span> <span class="e-ep svelte-1ua3isv"> <!></span> <span class="e-cluster svelte-1ua3isv"> </span> <span class="e-attr svelte-1ua3isv"> </span> <span class="e-val svelte-1ua3isv"> </span>',1),fX=T('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),gX=T('<div class="stream-body svelte-1ua3isv"><!></div>'),pX=T('<!> <div class="matter-page svelte-1ua3isv"><div class="matter-main svelte-1ua3isv"><div class="sidebar svelte-1ua3isv"><div class="sidebar-header svelte-1ua3isv"><span class="sidebar-title svelte-1ua3isv">Matter Devices</span> <button class="add-btn svelte-1ua3isv" title="Commission new device">+</button></div> <!> <ul class="device-list svelte-1ua3isv"><!> <!></ul></div> <div class="detail svelte-1ua3isv"><!></div></div> <div class="stream-panel svelte-1ua3isv"><div class="stream-resize svelte-1ua3isv"></div> <div class="stream-hdr-row svelte-1ua3isv"><span class="stream-title svelte-1ua3isv">Matter Events</span> <!> <button class="stream-toggle svelte-1ua3isv" title="Toggle event feed"> </button></div> <!></div></div>',1);function _X(o,e){Ts(e,!0);const t={onOff:{onOff:[{label:"On",command:"on"},{label:"Off",command:"off"},{label:"Toggle",command:"toggle"}]},levelControl:{currentLevel:[{label:"Step ▲",command:"stepWithOnOff",args:{stepMode:0,stepSize:25,transitionTime:5}},{label:"Step ▼",command:"stepWithOnOff",args:{stepMode:1,stepSize:25,transitionTime:5}}]},windowCovering:{currentPositionLiftPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}],currentPositionTiltPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}]}};async function i(J,Qe,_t,yt,Ot){try{await eq(J,Qe,_t,yt,Ot)}catch(j){console.error("matter command failed",j)}}const n={identify:{0:"identify",1:"triggerEffect"},groups:{0:"addGroup",1:"viewGroup",2:"getGroupMembership",3:"removeGroup",4:"removeAllGroups",5:"addGroupIfIdentifying"},scenes:{0:"addScene",1:"viewScene",2:"removeScene",3:"removeAllScenes",4:"storeScene",5:"recallScene",6:"getSceneMembership",64:"enhancedAddScene",65:"enhancedViewScene",66:"copyScene"},onOff:{0:"off",1:"on",2:"toggle",64:"offWithEffect",65:"onWithRecallGlobalScene",66:"onWithTimedOff"},levelControl:{0:"moveToLevel",1:"move",2:"step",3:"stop",4:"moveToLevelWithOnOff",5:"moveWithOnOff",6:"stepWithOnOff",7:"stopWithOnOff",8:"moveToClosestFrequency"},colorControl:{0:"moveToHue",1:"moveHue",2:"stepHue",3:"moveToSaturation",4:"moveSaturation",5:"stepSaturation",6:"moveToHueAndSaturation",7:"moveToColor",8:"moveColor",9:"stepColor",10:"moveToColorTemperature",64:"enhancedMoveToHue",65:"enhancedMoveHue",66:"enhancedStepHue",67:"enhancedMoveToHueAndSaturation",68:"colorLoopSet",71:"stopMoveStep",75:"moveColorTemperature",76:"stepColorTemperature"},thermostat:{0:"setpointRaiseLower",1:"setWeeklySchedule",2:"getWeeklySchedule",3:"clearWeeklySchedule"},doorLock:{0:"lockDoor",1:"unlockDoor",3:"unlockWithTimeout",11:"setWeekDaySchedule",12:"getWeekDaySchedule",13:"clearWeekDaySchedule",14:"setYearDaySchedule",15:"getYearDaySchedule",16:"clearYearDaySchedule",17:"setHolidaySchedule",18:"getHolidaySchedule",19:"clearHolidaySchedule",26:"setUser",27:"getUser",28:"clearUser",34:"setCredential",36:"getCredential",38:"clearCredential"},windowCovering:{0:"upOrOpen",1:"downOrClose",2:"stopMotion",4:"goToLiftValue",5:"goToLiftPercentage",7:"goToTiltValue",8:"goToTiltPercentage"},fanControl:{0:"step"}};function s(J,Qe){const _t=n[J];return Qe.map(yt=>{const Ot=typeof yt=="number"?yt:Number(yt);return{id:Ot,name:(_t==null?void 0:_t[Ot])??null}})}const r={10:"Door Lock",11:"Door Lock Controller",14:"Aggregator",15:"Generic Switch",17:"On/Off Plug-In Unit",18:"Dimmable Plug-In Unit",19:"Pump",20:"On/Off Light Switch",21:"Dimmer Switch",22:"Color Dimmer Switch",23:"Control Bridge",24:"Pump Controller",256:"On/Off Light",257:"Dimmable Light",268:"Extended Color Light",269:"Color Temperature Light",262:"Light Sensor",263:"Occupancy Sensor",514:"Window Covering",515:"Window Covering Controller",768:"Heating/Cooling Unit",769:"Thermostat",770:"Temperature Sensor",771:"Pressure Sensor",772:"Flow Sensor",773:"Humidity Sensor",774:"On/Off Sensor",2112:"Air Quality Sensor"},a={generatedCommandList:65528,acceptedCommandList:65529,eventList:65530,attributeList:65531,featureMap:65532,clusterRevision:65533},d={descriptor:{deviceTypeList:0,serverList:1,clientList:2,partsList:3,tagList:4},basicInformation:{dataModelRevision:0,vendorName:1,vendorID:2,vendorId:2,productName:3,productID:4,productId:4,nodeLabel:5,location:6,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,localConfigDisabled:16,reachable:17,uniqueID:18,uniqueId:18,capabilityMinima:19,productAppearance:20,specificationVersion:21,maxPathsPerInvoke:22},bridgedDeviceBasicInformation:{vendorName:1,vendorID:2,vendorId:2,productName:3,productId:4,nodeLabel:5,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,reachable:17,uniqueID:18,uniqueId:18,productAppearance:20},identify:{identifyTime:0,identifyType:1},groups:{nameSupport:0},onOff:{onOff:0,globalSceneControl:16384,onTime:16385,offWaitTime:16386,startUpOnOff:16387},levelControl:{currentLevel:0,remainingTime:1,minLevel:2,maxLevel:3,currentFrequency:4,minFrequency:5,maxFrequency:6,options:15,onOffTransitionTime:16,onLevel:17,onTransitionTime:18,offTransitionTime:19,defaultMoveRate:20,startUpCurrentLevel:16384},colorControl:{currentHue:0,currentSaturation:1,remainingTime:2,currentX:3,currentY:4,colorTemperatureMireds:7,colorMode:8,options:15,enhancedCurrentHue:16384,enhancedColorMode:16385,colorLoopActive:16386,colorLoopDirection:16387,colorLoopTime:16388,colorCapabilities:16394,colorTempPhysicalMinMireds:16395,colorTempPhysicalMaxMireds:16396,coupleColorTempToLevelMinMireds:16397,startUpColorTemperatureMireds:16400},thermostat:{localTemperature:0,outdoorTemperature:1,occupancy:2,absMinHeatSetpointLimit:3,absMaxHeatSetpointLimit:4,absMinCoolSetpointLimit:5,absMaxCoolSetpointLimit:6,piCoolingDemand:7,piHeatingDemand:8,localTemperatureCalibration:16,occupiedCoolingSetpoint:17,occupiedHeatingSetpoint:18,unoccupiedCoolingSetpoint:19,unoccupiedHeatingSetpoint:20,minHeatSetpointLimit:21,maxHeatSetpointLimit:22,minCoolSetpointLimit:23,maxCoolSetpointLimit:24,minSetpointDeadBand:25,remoteSensing:26,controlSequenceOfOperation:27,systemMode:28,thermostatRunningMode:30,startOfWeek:32,numberOfWeeklyTransitions:33,numberOfDailyTransitions:34,temperatureSetpointHold:35,temperatureSetpointHoldDuration:36,thermostatProgrammingOperationMode:37,thermostatRunningState:41,setpointChangeSource:48,setpointChangeAmount:49,setpointChangeSourceTimestamp:50,occupiedSetback:52,unoccupiedSetback:55,emergencyHeatDelta:58},windowCovering:{type:0,physicalClosedLimitLift:1,physicalClosedLimitTilt:2,currentPositionLift:3,currentPositionTilt:4,numberOfActuationsLift:5,numberOfActuationsTilt:6,configStatus:7,currentPositionLiftPercentage:8,currentPositionTiltPercentage:9,operationalStatus:10,targetPositionLiftPercent100ths:11,targetPositionTiltPercent100ths:12,endProductType:13,currentPositionLiftPercent100ths:14,currentPositionTiltPercent100ths:15,installedOpenLimitLift:16,installedClosedLimitLift:17,installedOpenLimitTilt:18,installedClosedLimitTilt:19,mode:23,safetyStatus:26},doorLock:{lockState:0,lockType:1,actuatorEnabled:2,doorState:3,numberOfTotalUsersSupported:17,numberOfPINUsersSupported:18,maxPINCodeLength:23,minPINCodeLength:24,language:33,autoRelockTime:35,soundVolume:36,operatingMode:37,supportedOperatingModes:38,wrongCodeEntryLimit:48},fanControl:{fanMode:0,fanModeSequence:1,percentSetting:2,percentCurrent:3,speedMax:4,speedSetting:5,speedCurrent:6,rockSupport:7,rockSetting:8,windSupport:9,windSetting:10,airflowDirectionSupport:11,airflowDirection:12},occupancySensing:{occupancy:0,occupancySensorType:1,occupancySensorTypeBitmap:2,holdTime:3,pirOccupiedToUnoccupiedDelay:16,pirUnoccupiedToOccupiedDelay:17},illuminanceMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,lightSensorType:4},temperatureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},pressureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,scaledValue:16,minScaledValue:17,maxScaledValue:18,scale:20},flowMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},relativeHumidityMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},powerSource:{status:0,order:1,description:2,batVoltage:11,batPercentRemaining:12,batTimeRemaining:13,batChargeLevel:14,batReplacementNeeded:15,batReplaceability:16,batPresent:17,activeBatFaults:18,batChargeState:26}};function u(J){return"0x"+J.toString(16).toUpperCase().padStart(4,"0")}let f=P(yi([])),g=yi(new Map);function p(J){if(J==null)return"—";if(typeof J=="boolean"||typeof J=="number")return String(J);if(typeof J=="string")return J.length>50?J.slice(0,47)+"…":J;const Qe=JSON.stringify(J);return Qe.length>60?Qe.slice(0,57)+"…":Qe}function w(J){return J==null?"—":typeof J=="boolean"||typeof J=="number"?String(J):typeof J=="string"?J:JSON.stringify(J)}function y(J){return J!==null&&typeof J=="object"&&!Array.isArray(J)}function x(J){return Array.isArray(J)&&J.length>0&&J.every(y)}function k(J,Qe){return!!(Qe==="attributeList"||Array.isArray(J)&&J.length===0||y(J)&&Object.keys(J).length===0)}function D(J){return new Date(J).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const M=500,F=20,K=32;let V=0,se=P(yi([])),te=P(!0),pe=P(180),je=Ct(()=>{const J=Math.max(1,Math.floor((c(pe)-K)/F)+1);return c(se).slice(0,J)});function Ke(J){J.preventDefault();const Qe=J.clientY,_t=c(pe);function yt(j){v(pe,Math.max(60,Math.min(600,_t+Qe-j.clientY)),!0)}function Ot(){document.removeEventListener("mousemove",yt),document.removeEventListener("mouseup",Ot)}document.addEventListener("mousemove",yt),document.addEventListener("mouseup",Ot)}let ue=P(null),He=P(!1),dt=P(null),we=P(!1),gt=P("passcode"),ot=P(""),Pt=P(""),Oe=P(""),Mt=P(!1),et=P(null),ct=P("");const Nt="she:matter:selectedNodeId";async function ti(){try{v(f,await ZN(),!0);for(const J of c(f))Jm(J.nodeId).then(Qe=>{g.set(J.nodeId,Qe)}).catch(()=>{});if(c(f).length>0&&!c(ue)){const J=localStorage.getItem(Nt),Qe=J&&c(f).find(_t=>_t.nodeId===J)?J:c(f)[0].nodeId;ri(Qe)}}catch{v(f,[],!0)}}async function ri(J){v(He,!0),v(dt,null);try{v(ue,await Jm(J),!0),g.set(J,c(ue)),localStorage.setItem(Nt,J)}catch(Qe){v(dt,Qe instanceof Error?Qe.message:String(Qe),!0)}finally{v(He,!1)}}let Vt;async function Me(J){var Qe;if(await Vt.show(`Unpair device ${J}?`,{confirm:"Unpair",danger:!0}))try{await JU(J),((Qe=c(ue))==null?void 0:Qe.nodeId)===J&&v(ue,null),await ti()}catch(_t){v(dt,_t instanceof Error?_t.message:String(_t),!0)}}async function jt(){v(Mt,!0),v(et,null);try{let J;c(gt)==="passcode"?(J={passcode:Number(c(ot))},c(Pt)&&(J={...J,discriminator:Number(c(Pt))})):J={pairingCode:c(Oe).trim()},c(ct).trim()&&(J={...J,discoveryAddress:c(ct).trim()}),await QU(J),v(we,!1),v(ot,""),v(Pt,""),v(Oe,""),v(ct,""),await ti()}catch(J){v(et,J instanceof Error?J.message:String(J),!0)}finally{v(Mt,!1)}}Bs(()=>{ti()});const ft=cr("matter:deviceList",J=>{if(!Array.isArray(J.devices))return;const Qe=J.devices;for(const _t of Qe)g.has(_t.nodeId)||Jm(_t.nodeId).then(yt=>{g.set(_t.nodeId,yt)}).catch(()=>{});v(f,Qe,!0)}),ht=cr("matter:deviceStatus",J=>{if(J.nodeId===void 0)return;const Qe=String(J.nodeId),_t=!!J.online;v(f,c(f).map(yt=>yt.nodeId===Qe?{...yt,online:_t}:yt),!0),v(se,[{id:V++,kind:"status",nodeId:Qe,online:_t,ts:Date.now()},...c(se).slice(0,M-1)],!0)}),he=cr("matter:attr",J=>{const Qe=String(J.nodeId),_t=J.endpointId,yt=String(J.clusterName),Ot=String(J.attrName),j=J.value;if(c(ue)&&c(ue).nodeId===Qe){const ke=c(ue).endpoints.find(st=>st.endpointId===_t),ze=ke==null?void 0:ke.clusters.find(st=>st.name===yt);ze&&(ze.attrs[Ot]=j)}const ce=g.get(Qe);if(ce){const ke=ce.endpoints.find(st=>st.endpointId===_t),ze=ke==null?void 0:ke.clusters.find(st=>st.name===yt);ze&&(ze.attrs[Ot]=j)}v(se,[{id:V++,kind:"attr",nodeId:Qe,endpointId:_t,clusterName:yt,attrName:Ot,value:j,ts:J.ts??Date.now()},...c(se).slice(0,M-1)],!0)});x_(()=>{ft(),ht(),he()});var Xe=pX(),Ut=xt(Xe);vs(Uc(Ut,{}),J=>Vt=J,()=>Vt);var wi=m(Ut,2),Ri=b(wi),ci=b(Ri),Bt=b(ci),Xt=m(b(Bt),2),pt=m(Bt,2);{var Bi=J=>{var Qe=DY(),_t=b(Qe),yt=b(_t);let Ot;var j=m(yt,2);let ce;var ke=m(_t,2);{var ze=We=>{var At=IY(),ai=xt(At),zt=m(b(ai)),vi=m(ai,2),hi=m(b(vi));Ht(zt,()=>c(ot),Ci=>v(ot,Ci)),Ht(hi,()=>c(Pt),Ci=>v(Pt,Ci)),I(We,At)},st=We=>{var At=EY(),ai=m(b(At));Ht(ai,()=>c(Oe),zt=>v(Oe,zt)),I(We,At)};O(ke,We=>{c(gt)==="passcode"?We(ze):We(st,-1)})}var X=m(ke,2),ae=m(b(X)),me=m(X,2);{var Ze=We=>{var At=xD(),ai=b(At);H(()=>N(ai,c(et))),I(We,At)};O(me,We=>{c(et)&&We(Ze)})}var Zt=m(me,2),bt=b(Zt);H(()=>{Ot=kt(yt,1,"svelte-1ua3isv",null,Ot,{active:c(gt)==="passcode"}),ce=kt(j,1,"svelte-1ua3isv",null,ce,{active:c(gt)==="pairingCode"}),Zt.disabled=c(Mt),N(bt,c(Mt)?"Commissioning…":"Commission")}),z("click",yt,()=>v(gt,"passcode")),z("click",j,()=>v(gt,"pairingCode")),Ht(ae,()=>c(ct),We=>v(ct,We)),z("click",Zt,jt),I(J,Qe)};O(pt,J=>{c(we)&&J(Bi)})}var Ti=m(pt,2),Ni=b(Ti);ni(Ni,17,()=>c(f),J=>J.nodeId,(J,Qe)=>{var _t=MY();let yt;var Ot=b(_t),j=b(Ot);let ce;var ke=m(j,2),ze=b(ke);{var st=me=>{var Ze=TY(),Zt=xt(Ze),bt=b(Zt),We=m(Zt,2),At=b(We);H(()=>{N(bt,c(Qe).name),N(At,`#${c(Qe).nodeId??""}`)}),I(me,Ze)},X=me=>{var Ze=PY(),Zt=b(Ze);H(()=>N(Zt,`Node ${c(Qe).nodeId??""}`)),I(me,Ze)};O(ze,me=>{c(Qe).name?me(st):me(X,-1)})}var ae=m(Ot,2);H(()=>{var me;yt=kt(_t,1,"svelte-1ua3isv",null,yt,{selected:((me=c(ue))==null?void 0:me.nodeId)===c(Qe).nodeId}),ce=kt(j,1,"status-dot svelte-1ua3isv",null,ce,{online:c(Qe).online})}),z("click",Ot,()=>ri(c(Qe).nodeId)),z("click",ae,()=>Me(c(Qe).nodeId)),I(J,_t)});var Ki=m(Ni,2);{var Ai=J=>{var Qe=RY();I(J,Qe)};O(Ki,J=>{c(f).length===0&&J(Ai)})}var Di=m(ci,2),$i=b(Di);{var Gi=J=>{var Qe=NY();I(J,Qe)},Ui=J=>{var Qe=xD(),_t=b(Qe);H(()=>N(_t,c(dt))),I(J,Qe)},mn=J=>{var Qe=aX(),_t=xt(Qe),yt=b(_t),Ot=b(yt),j=m(yt,2);{var ce=X=>{var ae=AY(),me=b(ae);H(()=>N(me,c(ue).subtitle)),I(X,ae)};O(j,X=>{c(ue).subtitle&&X(ce)})}var ke=m(j,2),ze=b(ke),st=m(_t,2);ni(st,17,()=>c(ue).endpoints,X=>X.endpointId,(X,ae)=>{var me=rX(),Ze=b(me),Zt=b(Ze),bt=m(Zt),We=b(bt),At=m(bt,2);ni(At,21,()=>c(ae).clusters,Vi,(hi,Ci)=>{var zi=OY(),$e=b(zi);H(()=>N($e,c(Ci).name)),I(hi,zi)});var ai=m(Ze,2);{var zt=hi=>{var Ci=sX(),zi=m(b(Ci));ni(zi,21,()=>c(ae).clusters,Vi,($e,Fe)=>{var Ft=nX(),Yt=xt(Ft),qt=b(Yt),Qt=b(qt),re=m(Yt,2);ni(re,17,()=>Object.entries(c(Fe).attrs),Vi,(Ge,wt)=>{var vt=Ct(()=>zL(c(wt),2));let di=()=>c(vt)[0],It=()=>c(vt)[1];var Ii=As(),W=xt(Ii);{var Q=$=>{const A=Ct(()=>{var Ee;return(Ee=t[c(Fe).name])==null?void 0:Ee[di()]}),G=Ct(()=>(di()==="acceptedCommandList"||di()==="generatedCommandList")&&Array.isArray(It())),ie=Ct(()=>{var Ee;return((Ee=d[c(Fe).name])==null?void 0:Ee[di()])??a[di()]});var fe=iX(),Y=b(fe),le=b(Y),Re=b(le),_e=m(le);{var ge=Ee=>{var Se=FY(),nt=b(Se);H(de=>N(nt,`(${de??""})`),[()=>u(c(ie))]),I(Ee,Se)};O(_e,Ee=>{c(ie)!==void 0&&Ee(ge)})}var tt=m(Y),U=b(tt);{var ne=Ee=>{var Se=WY();ni(Se,21,()=>c(A),Vi,(nt,de)=>{var Pe=HY(),at=b(Pe);H(()=>N(at,c(de).label)),z("click",Pe,()=>i(c(ue).nodeId,c(ae).endpointId,c(Fe).name,c(de).command,c(de).args)),I(nt,Pe)}),I(Ee,Se)};O(U,Ee=>{c(A)&&Ee(ne)})}var Le=m(tt),Ve=b(Le);{var De=Ee=>{var Se=$Y();ni(Se,21,()=>s(c(Fe).name,It()),Vi,(nt,de,Pe)=>{var at=jY(),ut=xt(at);{var Je=ii=>{var xi=BY();I(ii,xi)};O(ut,ii=>{Pe>0&&ii(Je)})}var $t=m(ut,2);{var Jt=ii=>{var xi=zY(),Ji=xt(xi),Hi=b(Ji),li=m(Ji),un=b(li);H(()=>{N(Hi,c(de).name),N(un,`(${c(de).id??""})`)}),I(ii,xi)},Mi=ii=>{var xi=VY(),Ji=b(xi);H(()=>N(Ji,c(de).id)),I(ii,xi)};O($t,ii=>{c(de).name?ii(Jt):ii(Mi,-1)})}I(nt,at)}),I(Ee,Se)},Ie=Ee=>{var Se=GY(),nt=m(b(Se));ni(nt,21,It,Vi,(de,Pe)=>{const at=Ct(()=>c(Pe)),ut=Ct(()=>c(at).deviceType),Je=Ct(()=>r[c(ut)]);var $t=qY(),Jt=b($t),Mi=b(Jt);{var ii=li=>{var un=UY(),rn=xt(un),es=m(rn),js=b(es);H(fo=>{N(rn,`${c(Je)??""} `),N(js,`(${fo??""})`)},[()=>u(c(ut))]),I(li,un)},xi=li=>{var un=po();H(rn=>N(un,rn),[()=>u(c(ut))]),I(li,un)};O(Mi,li=>{c(Je)?li(ii):li(xi,-1)})}var Ji=m(Jt),Hi=b(Ji);H(li=>N(Hi,li),[()=>w(c(at).revision)]),I(de,$t)}),I(Ee,Se)},St=Ct(()=>di()==="deviceTypeList"&&Array.isArray(It())),mt=Ee=>{const Se=Ct(()=>[...new Set(It().flatMap(ut=>Object.keys(ut)))]);var nt=XY(),de=b(nt),Pe=b(de);ni(Pe,21,()=>c(Se),Vi,(ut,Je)=>{var $t=KY(),Jt=b($t);H(()=>N(Jt,c(Je))),I(ut,$t)});var at=m(de);ni(at,21,It,Vi,(ut,Je)=>{var $t=YY();ni($t,21,()=>c(Se),Vi,(Jt,Mi)=>{var ii=ZY(),xi=b(ii);H(Ji=>N(xi,Ji),[()=>w(c(Je)[c(Mi)])]),I(Jt,ii)}),I(ut,$t)}),I(Ee,nt)},qe=Ct(()=>x(It())),Tt=Ee=>{var Se=JY(),nt=b(Se);ni(nt,21,()=>Object.entries(It()),Vi,(de,Pe)=>{var at=Ct(()=>zL(c(Pe),2));let ut=()=>c(at)[0],Je=()=>c(at)[1];var $t=QY(),Jt=b($t),Mi=b(Jt),ii=m(Jt),xi=b(ii);H(Ji=>{N(Mi,ut()),N(xi,Ji)},[()=>w(Je())]),I(de,$t)}),I(Ee,Se)},it=Ct(()=>y(It())),ye=Ee=>{var Se=eX(),nt=b(Se);H(()=>{ln(Se,"href",It()),N(nt,It())}),I(Ee,Se)},Ne=Ee=>{var Se=tX(),nt=b(Se);H(de=>N(nt,de),[()=>w(It())]),I(Ee,Se)};O(Ve,Ee=>{c(G)?Ee(De):c(St)?Ee(Ie,1):c(qe)?Ee(mt,2):c(it)?Ee(Tt,3):(di()==="productUrl"||di()==="productURL")&&typeof It()=="string"?Ee(ye,4):Ee(Ne,-1)})}H(()=>{ln(Y,"title",di()),N(Re,di())}),I($,fe)},oe=Ct(()=>!k(It(),di()));O(W,$=>{c(oe)&&$(Q)})}I(Ge,Ii)}),H(()=>N(Qt,c(Fe).name)),I($e,Ft)}),I(hi,Ci)},vi=hi=>{var Ci=oX();I(hi,Ci)};O(ai,hi=>{c(ae).clusters.length>0?hi(zt):hi(vi,-1)})}H(()=>{N(Zt,`${c(ae).name??`Endpoint ${c(ae).endpointId}`??""} `),N(We,`ep${c(ae).endpointId??""}`)}),I(X,me)}),H(()=>{N(Ot,c(ue).name??`Node ${c(ue).nodeId}`),N(ze,`Node ID: ${c(ue).nodeId??""}`)}),I(J,Qe)},rt=J=>{var Qe=lX();I(J,Qe)};O($i,J=>{c(He)?J(Gi):c(dt)?J(Ui,1):c(ue)?J(mn,2):J(rt,-1)})}var Kt=m(Ri,2),_i=b(Kt),Pi=m(_i,2),Li=m(b(Pi),2);{var Si=J=>{var Qe=cX(),_t=b(Qe);H(()=>N(_t,c(se).length)),I(J,Qe)};O(Li,J=>{!c(te)&&c(se).length>0&&J(Si)})}var Oi=m(Li,2),qi=b(Oi),mi=m(Pi,2);{var Ue=J=>{var Qe=gX(),_t=b(Qe);{var yt=j=>{var ce=dX();I(j,ce)},Ot=j=>{var ce=As(),ke=xt(ce);ni(ke,17,()=>c(je),ze=>ze.id,(ze,st)=>{const X=Ct(()=>{var zt,vi;return((zt=g.get(c(st).nodeId))==null?void 0:zt.name)??((vi=c(f).find(hi=>hi.nodeId===c(st).nodeId))==null?void 0:vi.name)??null}),ae=Ct(()=>{var zt,vi;return c(st).endpointId!==void 0?((vi=(zt=g.get(c(st).nodeId))==null?void 0:zt.endpoints.find(hi=>hi.endpointId===c(st).endpointId))==null?void 0:vi.name)??null:null}),me=Ct(()=>c(st).attrName??c(st).clusterName);var Ze=fX(),Zt=b(Ze),bt=b(Zt),We=m(Zt,2);{var At=zt=>{var vi=uX(),hi=m(xt(vi),2),Ci=b(hi),zi=m(Ci);{var $e=qt=>{var Qt=bS(),re=m(xt(Qt)),Ge=b(re);H(()=>N(Ge,`(#${c(st).nodeId??""})`)),I(qt,Qt)};O(zi,qt=>{c(X)&&qt($e)})}var Fe=m(hi,2);let Ft;var Yt=b(Fe);H(()=>{N(Ci,c(X)??`#${c(st).nodeId}`),Ft=kt(Fe,1,"e-val svelte-1ua3isv",null,Ft,{"e-online":c(st).online,"e-offline":!c(st).online}),N(Yt,c(st).online?"online":"offline")}),I(zt,vi)},ai=zt=>{var vi=hX(),hi=m(xt(vi),2),Ci=b(hi),zi=m(Ci);{var $e=It=>{var Ii=bS(),W=m(xt(Ii)),Q=b(W);H(()=>N(Q,`(#${c(st).nodeId??""})`)),I(It,Ii)};O(zi,It=>{c(X)&&It($e)})}var Fe=m(hi,2),Ft=b(Fe),Yt=m(Ft);{var qt=It=>{var Ii=bS(),W=m(xt(Ii)),Q=b(W);H(()=>N(Q,`(ep ${c(st).endpointId??""})`)),I(It,Ii)};O(Yt,It=>{c(ae)&&It(qt)})}var Qt=m(Fe,2),re=b(Qt),Ge=m(Qt,2),wt=b(Ge),vt=m(Ge,2),di=b(vt);H(It=>{N(Ci,c(X)??`#${c(st).nodeId}`),N(Ft,c(ae)??`ep${c(st).endpointId}`),N(re,c(st).clusterName),N(wt,c(me)),N(di,It)},[()=>p(c(st).value)]),I(zt,vi)};O(We,zt=>{c(st).kind==="status"?zt(At):zt(ai,-1)})}H(zt=>N(bt,zt),[()=>D(c(st).ts)]),I(ze,Ze)}),I(j,ce)};O(_t,j=>{c(je).length===0?j(yt):j(Ot,-1)})}I(J,Qe)};O(mi,J=>{c(te)&&J(Ue)})}H(()=>{zo(Kt,c(te)?`height: ${c(pe)}px;`:""),N(qi,c(te)?"▾":"▸")}),z("click",Xt,()=>v(we,!c(we))),z("mousedown",_i,Ke),z("click",Oi,()=>{v(te,!c(te))}),I(o,Xe),Ps()}zs(["click","mousedown"]);var mX=T("<button>›</button>"),vX=T('<span class="chev-ph svelte-1vejtrc"></span>'),bX=T('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),yX=T("<button>🔒</button>"),wX=T("<span> </span>"),SX=T('<span class="acl-dyn svelte-1vejtrc" title="per-user/client pattern — cannot evaluate statically">⚠%u/%c</span>'),CX=T('<span class="acl-members svelte-1vejtrc"> </span>'),xX=T('<span class="acl-group svelte-1vejtrc"> </span>'),kX=T('<span> <strong class="svelte-1vejtrc"> </strong> <!> <!> <!></span>'),LX=T('<div class="acl-sec svelte-1vejtrc"><span class="acl-sec-hdr svelte-1vejtrc"> </span> <!></div>'),IX=T('<div class="acl-panel svelte-1vejtrc"></div>'),EX=T('<div class="tc svelte-1vejtrc"></div>'),DX=T('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!> <!></div> <!> <!></div>'),TX=T('<button class="acl-refresh svelte-1vejtrc" title="Refresh ACL data">↺</button>'),PX=T('<button title="Show ACL coverage for topics"><svg width="11" height="11" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="7" width="10" height="8" rx="1.5"></rect><path d="M5 7V5a3 3 0 0 1 6 0v2" fill="none" stroke="currentColor" stroke-width="1.8"></path></svg> ACL<!></button> <!>',1),MX=T("<option></option>"),RX=T('<span class="pub-ok svelte-1vejtrc">✓</span>'),NX=T('<span class="pub-err svelte-1vejtrc"> </span>'),AX=T('<div class="info svelte-1vejtrc">Loading…</div>'),OX=T('<div class="info err svelte-1vejtrc"> </div>'),FX=T('<div class="info svelte-1vejtrc">No topics match.</div>'),HX=T('<div class="vr svelte-1vejtrc"><span class="v-topic svelte-1vejtrc"> </span> <span class="v-val svelte-1vejtrc"> </span> <span class="v-ts svelte-1vejtrc"> </span></div>'),WX=T('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),BX=T('<div class="info svelte-1vejtrc">No topics yet.</div>'),zX=T('<div class="tree-wrap svelte-1vejtrc"><!></div>'),VX=T('<span class="stream-badge"> </span>'),jX=T('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),$X=T('<span class="s-ret svelte-1vejtrc" title="retained snapshot">&#x229B;</span>'),UX=T('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),qX=T('<div class="stream-body svelte-1vejtrc"><!></div>'),GX=T('<div class="ctx-bd svelte-1vejtrc"></div> <div class="ctx-menu svelte-1vejtrc"><button class="svelte-1vejtrc">Copy topic</button> <button class="svelte-1vejtrc">Clear retained</button></div>',1),KX=T('<label class="modal-check svelte-1vejtrc"><input type="checkbox" class="svelte-1vejtrc"/> <span class="checkmark svelte-1vejtrc"></span> Recursive — also clear all child topics</label>'),ZX=T('<div class="modal-bd svelte-1vejtrc"></div> <div class="modal svelte-1vejtrc"><div class="modal-title svelte-1vejtrc">Clear retained</div> <div class="modal-body svelte-1vejtrc"><p class="svelte-1vejtrc">Clear retained value for <code class="svelte-1vejtrc"> </code>?</p> <!></div> <div class="modal-footer svelte-1vejtrc"><button class="btn-cancel svelte-1vejtrc">Cancel</button> <button class="btn-confirm svelte-1vejtrc">Clear</button></div></div>',1),YX=T('<div class="page svelte-1vejtrc"><div class="toolbar svelte-1vejtrc"><h2 class="svelte-1vejtrc">MQTT</h2> <!></div> <div class="main-group svelte-1vejtrc"><div class="pub-bar svelte-1vejtrc"><input class="pt svelte-1vejtrc" type="text" placeholder="topic" list="pub-topic-list" autocomplete="off"/> <datalist id="pub-topic-list"></datalist> <input class="pp svelte-1vejtrc" type="text" placeholder="payload"/> <label class="rl svelte-1vejtrc"><input type="checkbox" class="svelte-1vejtrc"/> <span class="checkmark svelte-1vejtrc"></span> retain</label> <select class="svelte-1vejtrc"><option>QoS 0</option><option>QoS 1</option><option>QoS 2</option></select> <button class="svelte-1vejtrc">Publish</button> <!> <!></div> <div class="tree-filter-bar svelte-1vejtrc"><input class="filter-in svelte-1vejtrc" type="search" placeholder="Filter topics…"/> <span class="count svelte-1vejtrc"><!> </span></div> <!></div> <div class="stream-panel svelte-1vejtrc"><div class="stream-resize svelte-1vejtrc"></div> <div class="stream-hdr-row svelte-1vejtrc"><input class="filter-in stream-filter-in svelte-1vejtrc" type="search" placeholder="Live stream filter (MQTT wildcard, default: #)"/> <!> <button class="stream-toggle svelte-1vejtrc" title="Toggle live stream"> </button></div> <!></div> <!> <!></div>');function XX(o,e){Ts(e,!0);const t=($,A=Hy)=>{const G=Ct(()=>c(g).has(A().path)),ie=Ct(()=>c(a)>=0&&A().children.size>0),fe=Ct(()=>c(a)>=0&&A().isLeaf&&!n.has(A().path));var Y=DX(),le=b(Y);let Re;var _e=b(le);{var ge=ye=>{var Ne=mX();let Ee;H(()=>{Ee=kt(Ne,1,"chev svelte-1vejtrc",null,Ee,{open:c(G)}),ln(Ne,"aria-label",c(G)?"Collapse":"Expand")}),z("click",Ne,()=>p(A().path)),I(ye,Ne)},tt=ye=>{var Ne=vX();I(ye,Ne)};O(_e,ye=>{c(ie)?ye(ge):ye(tt,-1)})}var U=m(_e,2),ne=b(U),Le=m(U,2);{var Ve=ye=>{var Ne=bX(),Ee=xt(Ne),Se=b(Ee),nt=m(Ee,2),de=b(nt);H((Pe,at,ut)=>{ln(Ee,"title",Pe),N(Se,at),N(de,ut)},[()=>{var Pe;return wi((Pe=Bt(A().path))==null?void 0:Pe.val)},()=>{var Pe;return wi((Pe=Bt(A().path))==null?void 0:Pe.val)},()=>{var Pe;return((Pe=Bt(A().path))==null?void 0:Pe.ts)!=null?Ri(Bt(A().path).ts):""}]),I(ye,Ne)},De=Ct(()=>A().isLeaf&&i.has(A().path));O(Le,ye=>{c(De)&&ye(Ve)})}var Ie=m(Le,2);{var St=ye=>{const Ne=Ct(()=>!!c($i)&&mn(A().path));var Ee=yX();let Se;H(()=>{Se=kt(Ee,1,"acl-badge svelte-1vejtrc",null,Se,{matched:c(Ne)}),ln(Ee,"title",c(Ne)?"Has explicit ACL — click to inspect":"No explicit ACL — uses defaults")}),z("click",Ee,nt=>{nt.stopPropagation(),v(Gi,c(Gi)===A().path?null:A().path,!0)}),I(ye,Ee)};O(Ie,ye=>{c(Ai)&&A().isLeaf&&ye(St)})}var mt=m(le,2);{var qe=ye=>{const Ne=Ct(()=>rt(A().path,Bi)),Ee=Ct(()=>rt(A().path,Ti)),Se=Ct(()=>rt(A().path,Ni));var nt=IX();ni(nt,21,()=>[{label:"Send",roles:c(Ne),defType:"publishClientSend"},{label:"Subscribe",roles:c(Ee),defType:"subscribePattern"},{label:"Receive",roles:c(Se),defType:"publishClientReceive"}],Vi,(de,Pe)=>{var at=LX(),ut=b(at),Je=b(ut),$t=m(ut,2);{var Jt=ii=>{var xi=wX();let Ji;var Hi=b(xi);H((li,un)=>{Ji=kt(xi,1,"acl-def svelte-1vejtrc",null,Ji,li),N(Hi,`${un??""} (default)`)},[()=>({allow:_i(c(Pe).defType),deny:!_i(c(Pe).defType)}),()=>_i(c(Pe).defType)?"allow":"deny"]),I(ii,xi)},Mi=ii=>{var xi=As(),Ji=xt(xi);ni(Ji,17,()=>c(Pe).roles,Vi,(Hi,li)=>{const un=Ct(()=>Kt(c(li).rolename));var rn=kX();let es;var js=b(rn),fo=m(js),Zo=b(fo),hr=m(fo,2);{var Yn=Ms=>{var fs=SX();I(Ms,fs)};O(hr,Ms=>{c(li).dynamic&&Ms(Yn)})}var Yo=m(hr,2);{var fr=Ms=>{var fs=CX(),ns=b(fs);H(Rs=>N(ns,Rs),[()=>c(un).direct.join(", ")]),I(Ms,fs)};O(Yo,Ms=>{c(un).direct.length>0&&Ms(fr)})}var vn=m(Yo,2);ni(vn,17,()=>c(un).viaGroup,Vi,(Ms,fs)=>{var ns=xX(),Rs=b(ns);H(()=>N(Rs,c(fs).groupname)),I(Ms,ns)}),H(()=>{es=kt(rn,1,"acl-role svelte-1vejtrc",null,es,{allow:c(li).allow,deny:!c(li).allow}),N(js,`${c(li).allow?"✓":"✗"} `),N(Zo,c(li).rolename)}),I(Hi,rn)}),I(ii,xi)};O($t,ii=>{c(Pe).roles.length===0?ii(Jt):ii(Mi,-1)})}H(()=>N(Je,c(Pe).label)),I(de,at)}),I(ye,nt)};O(mt,ye=>{c(Ai)&&A().isLeaf&&c(Gi)===A().path&&c($i)&&ye(qe)})}var Tt=m(mt,2);{var it=ye=>{var Ne=EX();ni(Ne,21,()=>[...A().children.values()].sort((Ee,Se)=>Ee.seg.localeCompare(Se.seg)),Ee=>Ee.path,(Ee,Se)=>{t(Ee,()=>c(Se))}),I(ye,Ne)};O(Tt,ye=>{c(ie)&&c(G)&&ye(it)})}H(()=>{Re=kt(le,1,"tr svelte-1vejtrc",null,Re,{stale:c(fe)}),N(ne,A().seg)}),z("click",le,()=>{v(He,A().path+"/#")}),z("contextmenu",le,ye=>{ye.preventDefault(),v(ct,{x:ye.clientX,y:ye.clientY,topic:A().path},!0)}),I($,Y)},i=new Map,n=new Set,s=new Set;let r=null,a=P(0);function d(){r===null&&(r=requestAnimationFrame(()=>{r=null;for(const $ of s)f($);s.clear(),$L(a)}))}const u=new Map;function f($){const A=$.split("/");let G=u,ie="";for(let fe=0;fe<A.length;fe++){const Y=A[fe];ie=fe===0?Y:`${ie}/${Y}`,G.has(Y)||G.set(Y,{seg:Y,path:ie,children:new Map,isLeaf:!1});const le=G.get(Y);fe===A.length-1&&(le.isLeaf=!0),G=le.children}}let g=P(yi(new Set));function p($){const A=new Set(c(g));A.has($)?A.delete($):A.add($),v(g,A,!0)}let w=P("");const y=24,x=5;let k=P(0),D=P(300),M=Ct(()=>{if(c(a),!c(w))return[];const $=c(w).toLowerCase().split(/\s+/).filter(Boolean),A=[];for(const[G,ie]of i){const fe=G.toLowerCase();$.every(Y=>fe.includes(Y))&&A.push({topic:G,...ie})}return A.sort((G,ie)=>G.topic.localeCompare(ie.topic))}),F=Ct(()=>{const $=c(M).length,A=Math.max(0,Math.floor(c(k)/y)-x),G=Math.min($,Math.ceil((c(k)+c(D))/y)+x);return{start:A,end:G,totalH:$*y,top:A*y}});const K=1e3,V=200,se=20,te=36;let pe=0,je=P(yi([])),Ke=P(yi([])),ue=P(!0),He=P("#"),dt=P(200);Vn(()=>{const $=c(He).trim(),A=Fl(()=>c(je)),G=!$||$==="#"?A.slice(0,V):A.filter(ie=>we($,ie.topic)).slice(0,V);if($&&$!=="#"){const ie=new Set(G.map(Y=>Y.topic)),fe=[];for(const[Y,le]of i)ie.has(Y)||we($,Y)&&fe.push({id:-(fe.length+1),topic:Y,val:le.val,ts:le.ts,retained:!0});fe.sort((Y,le)=>Y.topic.localeCompare(le.topic)),v(Ke,[...G,...fe],!0)}else v(Ke,G,!0)});function we($,A){if($==="#")return!0;const G=$.split("/"),ie=A.split("/");for(let fe=0;fe<G.length;fe++){if(G[fe]==="#")return!0;if(fe>=ie.length||G[fe]!=="+"&&G[fe]!==ie[fe])return!1}return G.length===ie.length}function gt($){$.preventDefault();const A=$.clientY,G=c(dt);function ie(Y){v(dt,Math.max(60,Math.min(800,G+A-Y.clientY)),!0)}function fe(){document.removeEventListener("mousemove",ie),document.removeEventListener("mouseup",fe)}document.addEventListener("mousemove",ie),document.addEventListener("mouseup",fe)}let ot=Ct(()=>{const $=Math.max(1,Math.floor((c(dt)-te)/se)+1);return c(Ke).slice(0,$)}),Pt=P(!0),Oe=P(null);async function Mt(){v(Pt,!0),v(Oe,null);try{const $=await YN();for(const A of $)i.set(A.topic,{val:A.val,ts:A.ts}),f(A.topic)}catch($){v(Oe,$ instanceof Error?$.message:String($),!0)}finally{v(Pt,!1),$L(a)}}const et=cr("mqtt",$=>{const{topic:A,val:G,ts:ie}=$;i.set(A,{val:G,ts:ie}),n.add(A),s.add(A),d();const fe={id:pe++,topic:A,val:G,ts:ie};v(je,[fe,...c(je).slice(0,K-1)],!0);const Y=c(He).trim();(!Y||Y==="#"||we(Y,A))&&v(Ke,[fe,...c(Ke).filter(le=>!(le.retained&&le.topic===A)).slice(0,V-1)],!0)});let ct=P(null),Nt=P(null);async function ti($,A){const G=[$];if(A){const ie=$+"/";for(const fe of i.keys())fe.startsWith(ie)&&G.push(fe)}for(const ie of G)await UE(ie,"",!0,0)}let ri=Ct(()=>(c(a),[...i.keys()].sort())),Vt=P(""),Me=P(""),jt=P(!1),ft=P(0),ht=P(!1),he=P(null),Xe=P(!1);async function Ut(){if(c(Vt)){v(ht,!0),v(he,null),v(Xe,!1);try{await UE(c(Vt),c(Me),c(jt),c(ft)),v(Xe,!0),setTimeout(()=>{v(Xe,!1)},2e3)}catch($){v(he,$ instanceof Error?$.message:String($),!0)}finally{v(ht,!1)}}}function wi($){return $==null?"":typeof $=="object"?JSON.stringify($):String($)}function Ri($){return new Date($).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function ci($){return new Date($).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Bt($){return c(a),i.get($)}let Xt=Ct(()=>(c(a),[...u.values()].sort(($,A)=>$.seg.localeCompare(A.seg)))),pt=Ct(()=>(c(a),i.size));const Bi=new Set(["publishClientSend"]),Ti=new Set(["subscribePattern","subscribeLiteral"]),Ni=new Set(["publishClientReceive"]);let Ki=P(!1),Ai=P(!1),Di=P(!1),$i=P(null),Gi=P(null);function Ui($,A,G){return A.includes("%u")||A.includes("%c")?"dynamic":$==="subscribeLiteral"||$==="unsubscribeLiteral"?A===G?"match":"no-match":we(A,G)?"match":"no-match"}function mn($){if(!c($i))return!1;for(const A of c($i).roles)if(A.acls){for(const G of A.acls)if(Ui(G.acltype,G.topic,$)!=="no-match")return!0}return!1}function rt($,A){if(!c($i))return[];const G=[];for(const ie of c($i).roles)if(ie.acls)for(const fe of ie.acls){if(!A.has(fe.acltype))continue;const Y=Ui(fe.acltype,fe.topic,$);if(Y!=="no-match"){G.push({rolename:ie.rolename,allow:fe.allow,dynamic:Y==="dynamic"});break}}return G}function Kt($){if(!c($i))return{direct:[],viaGroup:[]};const A=c($i).users.filter(ie=>{var fe;return(fe=ie.roles)==null?void 0:fe.some(Y=>Y.rolename===$)}).map(ie=>ie.username),G=c($i).groups.filter(ie=>{var fe;return(fe=ie.roles)==null?void 0:fe.some(Y=>Y.rolename===$)}).map(ie=>({groupname:ie.groupname,members:(ie.clients??[]).map(fe=>fe.username)}));return{direct:A,viaGroup:G}}function _i($){if(!c($i))return!1;const A=c($i).defaults.find(G=>G.acltype===$);return(A==null?void 0:A.allow)??!1}async function Pi(){v(Di,!0);try{const[$,A,G,ie]=await Promise.all([sA(),nA(),oA(),rA()]);v($i,{roles:$.roles,users:A.users,groups:G.groups,defaults:ie.acls},!0)}catch{v($i,null),v(Ai,!1)}finally{v(Di,!1)}}async function Li(){c(Ai)?(v(Ai,!1),v(Gi,null)):(v(Ai,!0),v(Gi,null),c($i)||await Pi())}Bs(Mt),Bs(async()=>{var $;try{const A=await Tk();v(Ki,!!(($=A.dynsec)!=null&&$.dynsecReady),!0)}catch{v(Ki,!1)}}),x_(()=>{et(),r!==null&&cancelAnimationFrame(r)});var Si=YX(),Oi=b(Si),qi=m(b(Oi),2);{var mi=$=>{var A=PX(),G=xt(A);let ie;var fe=m(b(G),2);{var Y=_e=>{var ge=po("…");I(_e,ge)};O(fe,_e=>{c(Di)&&_e(Y)})}var le=m(G,2);{var Re=_e=>{var ge=TX();H(()=>ge.disabled=c(Di)),z("click",ge,Pi),I(_e,ge)};O(le,_e=>{c(Ai)&&_e(Re)})}H(()=>{ie=kt(G,1,"acl-btn svelte-1vejtrc",null,ie,{active:c(Ai)}),G.disabled=c(Di)}),z("click",G,Li),I($,A)};O(qi,$=>{c(Ki)&&$(mi)})}var Ue=m(Oi,2),J=b(Ue),Qe=b(J),_t=m(Qe,2);ni(_t,20,()=>c(ri),$=>$,($,A)=>{var G=MX(),ie={};H(()=>{ie!==(ie=A)&&(G.value=(G.__value=A)??"")}),I($,G)});var yt=m(_t,2),Ot=m(yt,2),j=b(Ot),ce=m(Ot,2),ke=b(ce);ke.value=ke.__value=0;var ze=m(ke);ze.value=ze.__value=1;var st=m(ze);st.value=st.__value=2;var X=m(ce,2),ae=m(X,2);{var me=$=>{var A=RX();I($,A)};O(ae,$=>{c(Xe)&&$(me)})}var Ze=m(ae,2);{var Zt=$=>{var A=NX(),G=b(A);H(()=>N(G,c(he))),I($,A)};O(Ze,$=>{c(he)&&$(Zt)})}var bt=m(J,2),We=b(bt),At=m(We,2),ai=b(At);{var zt=$=>{var A=po();H(()=>N(A,`${c(M).length??""} /`)),I($,A)};O(ai,$=>{c(w)&&$(zt)})}var vi=m(ai),hi=m(bt,2);{var Ci=$=>{var A=AX();I($,A)},zi=$=>{var A=OX(),G=b(A);H(()=>N(G,c(Oe))),I($,A)},$e=$=>{var A=As(),G=xt(A);{var ie=Y=>{var le=FX();I(Y,le)},fe=Y=>{var le=WX(),Re=b(le),_e=b(Re);ni(_e,21,()=>c(M).slice(c(F).start,c(F).end),ge=>ge.topic,(ge,tt)=>{var U=HX(),ne=b(U),Le=b(ne),Ve=m(ne,2),De=b(Ve),Ie=m(Ve,2),St=b(Ie);H((mt,qe,Tt)=>{N(Le,c(tt).topic),ln(Ve,"title",mt),N(De,qe),N(St,Tt)},[()=>wi(c(tt).val),()=>wi(c(tt).val),()=>Ri(c(tt).ts)]),I(ge,U)}),H(()=>{zo(Re,`height: ${c(F).totalH??""}px; position: relative;`),zo(_e,`top: ${c(F).top??""}px;`)}),ds("scroll",le,ge=>{v(k,ge.currentTarget.scrollTop,!0)}),rW(le,"clientHeight",ge=>v(D,ge)),I(Y,le)};O(G,Y=>{c(M).length===0?Y(ie):Y(fe,-1)})}I($,A)},Fe=$=>{var A=zX(),G=b(A);{var ie=Y=>{var le=BX();I(Y,le)},fe=Y=>{var le=As(),Re=xt(le);ni(Re,17,()=>c(Xt),_e=>_e.path,(_e,ge)=>{t(_e,()=>c(ge))}),I(Y,le)};O(G,Y=>{c(Xt).length===0?Y(ie):Y(fe,-1)})}I($,A)};O(hi,$=>{c(Pt)?$(Ci):c(Oe)?$(zi,1):c(w)?$($e,2):$(Fe,-1)})}var Ft=m(Ue,2),Yt=b(Ft),qt=m(Yt,2),Qt=b(qt),re=m(Qt,2);{var Ge=$=>{var A=VX(),G=b(A);H(()=>N(G,c(Ke).length)),I($,A)};O(re,$=>{!c(ue)&&c(Ke).length>0&&$(Ge)})}var wt=m(re,2),vt=b(wt),di=m(qt,2);{var It=$=>{var A=qX(),G=b(A);{var ie=Y=>{var le=jX();I(Y,le)},fe=Y=>{var le=As(),Re=xt(le);ni(Re,17,()=>c(ot),_e=>_e.id,(_e,ge)=>{var tt=UX();let U;var ne=b(tt),Le=b(ne),Ve=m(ne,2);{var De=Tt=>{var it=$X();I(Tt,it)};O(Ve,Tt=>{c(ge).retained&&Tt(De)})}var Ie=m(Ve,2),St=b(Ie),mt=m(Ie,2),qe=b(mt);H((Tt,it,ye)=>{U=kt(tt,1,"sr svelte-1vejtrc",null,U,{retained:c(ge).retained}),N(Le,Tt),N(St,c(ge).topic),ln(mt,"title",it),N(qe,ye)},[()=>ci(c(ge).ts),()=>wi(c(ge).val),()=>wi(c(ge).val)]),I(_e,tt)}),I(Y,le)};O(G,Y=>{c(ot).length===0?Y(ie):Y(fe,-1)})}I($,A)};O(di,$=>{c(ue)&&$(It)})}var Ii=m(Ft,2);{var W=$=>{var A=GX(),G=xt(A),ie=m(G,2);let fe;var Y=b(ie),le=m(Y,2);H(()=>fe=zo(ie,"",fe,{left:`${c(ct).x??""}px`,top:`${c(ct).y??""}px`})),z("click",G,()=>v(ct,null)),z("contextmenu",G,Re=>{Re.preventDefault(),v(ct,null)}),z("click",Y,()=>{navigator.clipboard.writeText(c(ct).topic),v(ct,null)}),z("click",le,()=>{const Re=c(ct).topic,_e=Re+"/",ge=[...i.keys()].some(tt=>tt.startsWith(_e));v(Nt,{topic:Re,hasChildren:ge,recursive:!1},!0),v(ct,null)}),I($,A)};O(Ii,$=>{c(ct)&&$(W)})}var Q=m(Ii,2);{var oe=$=>{var A=ZX(),G=xt(A),ie=m(G,2),fe=m(b(ie),2),Y=b(fe),le=m(b(Y)),Re=b(le),_e=m(Y,2);{var ge=Le=>{var Ve=KX(),De=b(Ve);ms(De,()=>c(Nt).recursive,Ie=>c(Nt).recursive=Ie),I(Le,Ve)};O(_e,Le=>{c(Nt).hasChildren&&Le(ge)})}var tt=m(fe,2),U=b(tt),ne=m(U,2);H(()=>N(Re,c(Nt).topic)),z("click",G,()=>v(Nt,null)),z("click",U,()=>v(Nt,null)),z("click",ne,()=>{const{topic:Le,recursive:Ve}=c(Nt);v(Nt,null),ti(Le,Ve)}),I($,A)};O(Q,$=>{c(Nt)&&$(oe)})}H(()=>{X.disabled=c(ht)||!c(Vt),N(vi,` ${c(pt)??""}`),zo(Ft,c(ue)?`height: ${c(dt)}px;`:""),N(vt,c(ue)?"▾":"▸")}),Ht(Qe,()=>c(Vt),$=>v(Vt,$)),Ht(yt,()=>c(Me),$=>v(Me,$)),ms(j,()=>c(jt),$=>v(jt,$)),ys(ce,()=>c(ft),$=>v(ft,$)),z("click",X,Ut),Ht(We,()=>c(w),$=>v(w,$)),z("mousedown",Yt,gt),Ht(Qt,()=>c(He),$=>v(He,$)),z("click",wt,()=>{v(ue,!c(ue))}),I(o,Si),Ps()}zs(["click","contextmenu","mousedown"]);var QX=T('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),JX=T('<div class="restart-banner svelte-twakcj">⚠ Package changes require a daemon restart to take effect. <button class="restart-btn svelte-twakcj">Restart now</button></div>'),eQ=T('<div class="err svelte-twakcj"> </div>'),tQ=T('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),iQ=T('<p class="empty svelte-twakcj">No packages installed.</p>'),nQ=T('<p class="empty svelte-twakcj">No match.</p>'),sQ=T("<span> </span>"),oQ=tM('<svg width="12" height="12" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="8" cy="8" r="6" stroke-dasharray="18" stroke-dashoffset="4"></circle></svg>'),rQ=tM('<svg width="12" height="12" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 8A5 5 0 1 1 10.5 3.67"></path><polyline points="10.5,1.5 10.5,4 13,4"></polyline></svg>'),aQ=T('<div><div class="dep-info svelte-twakcj"><a class="dep-name svelte-twakcj" target="_blank" rel="noopener noreferrer"> </a> <span class="dep-ver svelte-twakcj"> </span> <!></div> <div class="dep-btns svelte-twakcj"><button><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4"></path><line x1="9" y1="15" x2="4.5" y2="19.5"></line><line x1="14.5" y1="4" x2="20" y2="9.5"></line></svg></button> <button><!></button> <button class="icon-btn icon-btn--danger svelte-twakcj" title="Uninstall"><svg width="11" height="11" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><line x1="2" y1="2" x2="14" y2="14"></line><line x1="14" y1="2" x2="2" y2="14"></line></svg></button></div></div>'),lQ=T('<span class="result-author svelte-twakcj"> </span>'),cQ=T('<span class="result-date svelte-twakcj"> </span>'),dQ=T('<span class="result-desc svelte-twakcj"> </span>'),uQ=T('<div class="result-row svelte-twakcj"><div class="result-info svelte-twakcj"><a class="result-name svelte-twakcj" target="_blank" rel="noopener noreferrer"> </a> <span class="result-ver svelte-twakcj"> </span> <!> <!> <!></div> <button class="install-btn svelte-twakcj"> </button></div>'),hQ=T('<div class="results-list svelte-twakcj"></div>'),fQ=T('<pre class="npm-output svelte-twakcj"> </pre>'),gQ=T(`<p class="hint svelte-twakcj">Install npm packages into <code class="svelte-twakcj">~/.she/</code>. Scripts can then <code class="svelte-twakcj">require('package-name')</code> directly.</p>`),pQ=T('<!> <div class="pkg-shell svelte-twakcj"><!> <!> <div class="pkg-body svelte-twakcj"><div class="pkg-left svelte-twakcj"><div class="pane-hdr svelte-twakcj"><span class="pane-title svelte-twakcj">Installed</span> <span class="pane-count svelte-twakcj"> </span> <!> <button class="icon-btn check-outdated-btn svelte-twakcj" title="Check for package updates"><svg width="12" height="12" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 8A5 5 0 1 1 10.5 3.67"></path><polyline points="10.5,1.5 10.5,4 13,4"></polyline></svg></button></div> <div class="filter-row svelte-twakcj"><input class="filter-in svelte-twakcj" type="search" placeholder="Filter…"/></div> <div class="installed-list svelte-twakcj"><!></div></div> <div class="pkg-right svelte-twakcj"><div class="pane-hdr svelte-twakcj"><span class="pane-title svelte-twakcj">Search npm</span></div> <div class="search-row svelte-twakcj"><input class="search-in svelte-twakcj" type="text" placeholder="Package name, e.g. axios, lodash…"/> <button class="search-btn svelte-twakcj"> </button></div> <!> <!> <!></div></div></div>',1);function _Q(o,e){Ts(e,!0);let t=P(yi([])),i=P(""),n=P(yi({})),s=P(yi([])),r=P(!1),a=P(""),d=P(yi([])),u=P(!1),f=P(!1),g=P(!1),p=P(""),w=P(""),y=yi({});const x=Ct(()=>c(i).trim()?c(t).filter(rt=>rt.name.toLowerCase().includes(c(i).toLowerCase())):c(t)),k=Ct(()=>Object.keys(c(n)).filter(rt=>!c(s).includes(rt)).length);Bs(async()=>{await Promise.all([D(),M(),F()])});async function D(){try{v(t,await jU(),!0),v(p,"")}catch(rt){v(p,rt.message,!0)}}async function M(){try{v(n,await KN(),!0)}catch{}}async function F(){try{const rt=await Pl();v(s,Array.isArray(rt.pinnedPackages)?rt.pinnedPackages:[],!0)}catch{}}async function K(rt){const Kt=c(s).includes(rt)?c(s).filter(_i=>_i!==rt):[...c(s),rt];v(s,Kt,!0);try{const _i=await Pl();await Xp({..._i,pinnedPackages:Kt})}catch{}}async function V(){v(r,!0);try{v(n,await KU(),!0)}catch{}finally{v(r,!1)}}async function se(){const rt=c(a).trim();if(!rt){v(d,[],!0);return}v(g,!0),v(p,"");try{v(d,await $U(rt),!0)}catch(Kt){v(p,Kt.message,!0)}finally{v(g,!1)}}function te(rt){if(!rt)return"";try{return new Date(rt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function pe(rt,Kt){y[rt]=!0,v(p,""),v(w,"");try{const _i=await UU(rt,Kt);v(w,_i.stdout||_i.stderr||"Done.",!0),v(u,!0),await D()}catch(_i){v(p,_i.message,!0)}finally{y[rt]=!1}}async function je(rt){y[rt]=!0,v(p,""),v(w,"");try{const Kt=await qU(rt);v(w,Kt.stdout||Kt.stderr||"Done.",!0),v(u,!0);const _i={...c(n)};delete _i[rt],v(n,_i,!0),await D()}catch(Kt){v(p,Kt.message,!0)}finally{y[rt]=!1}}async function Ke(rt){y[rt]=!0,v(p,""),v(w,"");try{const Kt=await GU(rt);v(w,Kt.stdout||Kt.stderr||"Done.",!0),v(u,!0);const _i={...c(n)};delete _i[rt],v(n,_i,!0),await D()}catch(Kt){v(p,Kt.message,!0)}finally{y[rt]=!1}}let ue;async function He(){if(await ue.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){v(f,!0);try{await UN()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var dt=pQ(),we=xt(dt);vs(Uc(we,{}),rt=>ue=rt,()=>ue);var gt=m(we,2),ot=b(gt);{var Pt=rt=>{var Kt=QX();I(rt,Kt)},Oe=rt=>{var Kt=JX(),_i=m(b(Kt));z("click",_i,He),I(rt,Kt)};O(ot,rt=>{c(f)?rt(Pt):c(u)&&rt(Oe,1)})}var Mt=m(ot,2);{var et=rt=>{var Kt=eQ(),_i=b(Kt);H(()=>N(_i,c(p))),I(rt,Kt)};O(Mt,rt=>{c(p)&&rt(et)})}var ct=m(Mt,2),Nt=b(ct),ti=b(Nt),ri=m(b(ti),2),Vt=b(ri),Me=m(ri,2);{var jt=rt=>{var Kt=tQ(),_i=b(Kt);H(()=>N(_i,`${c(k)??""} outdated`)),I(rt,Kt)};O(Me,rt=>{c(k)>0&&rt(jt)})}var ft=m(Me,2),ht=b(ft);let he;var Xe=m(ti,2),Ut=b(Xe),wi=m(Xe,2),Ri=b(wi);{var ci=rt=>{var Kt=iQ();I(rt,Kt)},Bt=rt=>{var Kt=nQ();I(rt,Kt)},Xt=rt=>{var Kt=As(),_i=xt(Kt);ni(_i,17,()=>c(x),Pi=>Pi.name,(Pi,Li)=>{var Si=aQ();let Oi;var qi=b(Si),mi=b(qi),Ue=b(mi),J=m(mi,2),Qe=b(J),_t=m(J,2);{var yt=Ze=>{var Zt=sQ();let bt;var We=b(Zt);H(At=>{bt=kt(Zt,1,"dep-latest svelte-twakcj",null,bt,At),N(We,`→ v${c(n)[c(Li).name].latest??""}`)},[()=>({"dep-latest--pinned":c(s).includes(c(Li).name)})]),I(Ze,Zt)};O(_t,Ze=>{c(n)[c(Li).name]&&Ze(yt)})}var Ot=m(qi,2),j=b(Ot);let ce;var ke=m(j,2);let ze;var st=b(ke);{var X=Ze=>{var Zt=oQ();I(Ze,Zt)},ae=Ze=>{var Zt=rQ();I(Ze,Zt)};O(st,Ze=>{y[c(Li).name]?Ze(X):Ze(ae,-1)})}var me=m(ke,2);H((Ze,Zt,bt)=>{Oi=kt(Si,1,"dep-row svelte-twakcj",null,Oi,{"dep-busy":!!y[c(Li).name]}),ln(mi,"href",c(Li).url??`https://www.npmjs.com/package/${c(Li).name}`),N(Ue,c(Li).name),N(Qe,c(Li).installedVersion??c(Li).version),ce=kt(j,1,"icon-btn svelte-twakcj",null,ce,Ze),ln(j,"title",Zt),ze=kt(ke,1,"icon-btn svelte-twakcj",null,ze,bt),ke.disabled=!!y[c(Li).name],ln(ke,"title",c(n)[c(Li).name]?`Update to v${c(n)[c(Li).name].latest}`:"Update to latest"),me.disabled=!!y[c(Li).name]},[()=>({"icon-btn--pinned":c(s).includes(c(Li).name)}),()=>c(s).includes(c(Li).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!c(n)[c(Li).name]&&!c(s).includes(c(Li).name)})]),z("click",j,()=>K(c(Li).name)),z("click",ke,()=>Ke(c(Li).name)),z("click",me,()=>je(c(Li).name)),I(Pi,Si)}),I(rt,Kt)};O(Ri,rt=>{c(t).length===0?rt(ci):c(x).length===0?rt(Bt,1):rt(Xt,-1)})}var pt=m(Nt,2),Bi=m(b(pt),2),Ti=b(Bi),Ni=m(Ti,2),Ki=b(Ni),Ai=m(Bi,2);{var Di=rt=>{var Kt=hQ();ni(Kt,21,()=>c(d),_i=>_i.name,(_i,Pi)=>{var Li=uQ(),Si=b(Li),Oi=b(Si),qi=b(Oi),mi=m(Oi,2),Ue=b(mi),J=m(mi,2);{var Qe=ze=>{var st=lQ(),X=b(st);H(()=>N(X,c(Pi).author)),I(ze,st)};O(J,ze=>{c(Pi).author&&ze(Qe)})}var _t=m(J,2);{var yt=ze=>{var st=cQ(),X=b(st);H(ae=>{ln(st,"title",c(Pi).date),N(X,ae)},[()=>te(c(Pi).date)]),I(ze,st)};O(_t,ze=>{c(Pi).date&&ze(yt)})}var Ot=m(_t,2);{var j=ze=>{var st=dQ(),X=b(st);H(()=>N(X,c(Pi).description)),I(ze,st)};O(Ot,ze=>{c(Pi).description&&ze(j)})}var ce=m(Si,2),ke=b(ce);H(()=>{ln(Oi,"href",c(Pi).url??`https://www.npmjs.com/package/${c(Pi).name}`),N(qi,c(Pi).name),N(Ue,c(Pi).version),ce.disabled=!!y[c(Pi).name],N(ke,y[c(Pi).name]?"Installing…":"Install")}),z("click",ce,()=>pe(c(Pi).name)),I(_i,Li)}),I(rt,Kt)};O(Ai,rt=>{c(d).length>0&&rt(Di)})}var $i=m(Ai,2);{var Gi=rt=>{var Kt=fQ(),_i=b(Kt);H(()=>N(_i,c(w))),I(rt,Kt)};O($i,rt=>{c(w)&&rt(Gi)})}var Ui=m($i,2);{var mn=rt=>{var Kt=gQ();I(rt,Kt)};O(Ui,rt=>{!c(d).length&&!c(w)&&rt(mn)})}H(()=>{N(Vt,c(t).length),ft.disabled=c(r),he=kt(ht,0,"svelte-twakcj",null,he,{spinning:c(r)}),Ni.disabled=c(g),N(Ki,c(g)?"Searching…":"Search")}),z("click",ft,V),Ht(Ut,()=>c(i),rt=>v(i,rt)),z("keydown",Ti,rt=>rt.key==="Enter"&&se()),Ht(Ti,()=>c(a),rt=>v(a,rt)),z("click",Ni,se),I(o,dt),Ps()}zs(["click","keydown"]);var mQ=T('<div class="plugin-warning svelte-3itf14">⚠ The dynamic-security plugin is not responding. Add <code class="svelte-3itf14">plugin …/mosquitto_dynamic_security.so</code> and <code class="svelte-3itf14">plugin_opt_config_file …/dynamic-security.json</code> to your mosquitto.conf and restart mosquitto. Operations below will time out until the plugin is active.</div>'),ya=T('<div class="err svelte-3itf14"> </div>'),vQ=T('<div class="empty svelte-3itf14">No users found.</div>'),bQ=T('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),_h=T("<option> </option>"),Lm=T('<div class="inline-err svelte-3itf14"> </div>'),kD=T('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— role —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),yQ=T('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove from group">×</button></span>'),wQ=T('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— group —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),SQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add to group">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Set password" class="svelte-3itf14">🔑</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),CQ=T('<table class="svelte-3itf14"><thead><tr><th class="svelte-3itf14">Username</th><th class="svelte-3itf14">Roles</th><th class="svelte-3itf14">Groups</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),xQ=T('<div class="panel svelte-3itf14"><div class="panel-header svelte-3itf14"><h3 class="svelte-3itf14">Users</h3> <button class="btn-add svelte-3itf14">+ Add user</button></div> <!> <!></div>'),kQ=T('<div class="empty svelte-3itf14">No roles found.</div>'),LQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Edit ACLs" class="svelte-3itf14">Edit ACLs</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),IQ=T('<table class="svelte-3itf14"><thead><tr><th class="svelte-3itf14">Role</th><th class="svelte-3itf14">ACLs</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),EQ=T('<div class="panel svelte-3itf14"><div class="panel-header svelte-3itf14"><h3 class="svelte-3itf14">Roles</h3> <button class="btn-add svelte-3itf14">+ Add role</button></div> <!> <!></div>'),DQ=T('<div class="empty svelte-3itf14">No groups found.</div>'),TQ=T('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove member">×</button></span>'),PQ=T('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— user —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),MQ=T('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),RQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add member">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),NQ=T('<table class="svelte-3itf14"><thead><tr><th class="svelte-3itf14">Group</th><th class="svelte-3itf14">Members</th><th class="svelte-3itf14">Roles</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),AQ=T('<div class="panel svelte-3itf14"><div class="panel-header svelte-3itf14"><h3 class="svelte-3itf14">Groups</h3> <button class="btn-add svelte-3itf14">+ Add group</button></div> <!> <!></div>'),LD=T('<div class="empty svelte-3itf14">Loading…</div>'),OQ=T('<tr><td class="mono small svelte-3itf14"> </td><td class="acl-radio svelte-3itf14"><input type="radio" value="allow"/></td><td class="acl-radio svelte-3itf14"><input type="radio" value="deny"/></td></tr>'),FQ=T('<table class="acl-defaults-table svelte-3itf14"><thead><tr><th class="svelte-3itf14">Operation</th><th class="svelte-3itf14">Allow</th><th class="svelte-3itf14">Deny</th></tr></thead><tbody></tbody></table>'),HQ=T('<div class="anon-current svelte-3itf14">Current: <span class="mono svelte-3itf14"> </span></div>'),WQ=T('<div class="anon-current muted svelte-3itf14">No anonymous group configured.</div>'),BQ=T('<div class="anon-row svelte-3itf14"><select class="svelte-3itf14"><option>— none —</option><!></select> <button class="svelte-3itf14"> </button></div> <!>',1),zQ=T('<div class="panel svelte-3itf14"><div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Default ACL Access</h3> <p class="settings-hint svelte-3itf14">Broker-wide defaults applied when no role ACL matches. Role ACLs always take precedence over these defaults.</p> <!> <!></div> <div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Anonymous Group</h3> <p class="settings-hint svelte-3itf14">Clients connecting without credentials are treated as members of this group. Requires <code class="svelte-3itf14">allow_anonymous true</code> in mosquitto.conf.</p> <!> <!></div></div>'),VQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Add user</h3> <label class="svelte-3itf14">Username<input autocomplete="off" class="svelte-3itf14"/></label> <label class="svelte-3itf14">Password <div class="pw-row svelte-3itf14"><input autocomplete="new-password" class="svelte-3itf14"/> <button class="toggle-pw svelte-3itf14"> </button></div></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),jQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Set password for <em class="svelte-3itf14"> </em></h3> <label class="svelte-3itf14">New password <input type="password" autocomplete="new-password" class="svelte-3itf14"/></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),$Q=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Add role</h3> <label class="svelte-3itf14">Role name<input autocomplete="off" class="svelte-3itf14"/></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),UQ=T('<tr class="svelte-3itf14"><td class="mono small svelte-3itf14"> </td><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="svelte-3itf14"><button class="danger">✕</button></td></tr>'),qQ=T('<table class="acl-table svelte-3itf14"><thead><tr><th class="svelte-3itf14">Type</th><th class="svelte-3itf14">Topic</th><th class="svelte-3itf14">Allow</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),GQ=T('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),KQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-3itf14"><h3 class="svelte-3itf14">ACLs for role <em class="svelte-3itf14"> </em></h3> <!> <div class="acl-add-row svelte-3itf14"><select class="svelte-3itf14"></select> <input placeholder="topic or pattern" class="svelte-3itf14"/> <label class="allow-toggle svelte-3itf14"><input type="checkbox" class="svelte-3itf14"/> Allow</label> <button class="svelte-3itf14">Add</button></div> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Close</button></div></div></div>'),ZQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Add group</h3> <label class="svelte-3itf14">Group name<input autocomplete="off" class="svelte-3itf14"/></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),YQ=T('<div class="users-page svelte-3itf14"><!> <div class="panel-tabs svelte-3itf14"><button>Users</button> <button>Roles</button> <button>Groups</button> <button>Settings</button> <button class="reload-btn svelte-3itf14" title="Refresh">↺</button></div> <!> <!> <!> <!></div> <!> <!> <!> <!> <!> <!>',1);function XQ(o,e){Ts(e,!0);let t=Su(e,"dynsecReady",3,!1),i,n=P(yi([])),s=P(yi([])),r=P(yi([])),a=P(""),d=P(""),u=P(""),f=P("users"),g=P(null),p=P(""),w=P(""),y=P(!1);const x=Ct(()=>c(g)?c(g).kind==="user-roles"?c(s).map(re=>re.rolename).filter(re=>{var Ge,wt;return!((wt=(Ge=c(n).find(vt=>vt.username===c(g).target))==null?void 0:Ge.roles)!=null&&wt.some(vt=>vt.rolename===re))}):c(g).kind==="user-groups"?c(r).map(re=>re.groupname).filter(re=>{var Ge,wt;return!((wt=(Ge=c(n).find(vt=>vt.username===c(g).target))==null?void 0:Ge.groups)!=null&&wt.some(vt=>vt.groupname===re))}):c(g).kind==="group-members"?c(n).map(re=>re.username).filter(re=>{var Ge,wt;return!((wt=(Ge=c(r).find(vt=>vt.groupname===c(g).target))==null?void 0:Ge.clients)!=null&&wt.some(vt=>vt.username===re))}):c(s).map(re=>re.rolename).filter(re=>{var Ge,wt;return!((wt=(Ge=c(r).find(vt=>vt.groupname===c(g).target))==null?void 0:Ge.roles)!=null&&wt.some(vt=>vt.rolename===re))}):[]);function k(re,Ge){v(g,{kind:re,target:Ge},!0),v(p,""),v(w,"")}async function D(){if(!(!c(g)||!c(p))){v(y,!0),v(w,"");try{const{kind:re,target:Ge}=c(g);re==="user-roles"?await dq(Ge,c(p)):re==="user-groups"?await qE(c(p),Ge):re==="group-members"?await qE(Ge,c(p)):await vq(Ge,c(p)),v(g,null),v(p,""),await Di()}catch(re){v(w,re.message,!0)}finally{v(y,!1)}}}async function M(re,Ge){try{await uq(re,Ge),await Di()}catch(wt){v(a,wt.message,!0)}}async function F(re,Ge){try{await GE(Ge,re),await Di()}catch(wt){v(a,wt.message,!0)}}async function K(re,Ge){try{await GE(re,Ge),await Di()}catch(wt){v(u,wt.message,!0)}}async function V(re,Ge){try{await bq(re,Ge),await Di()}catch(wt){v(u,wt.message,!0)}}let se=P(!1),te=P(""),pe=P(""),je=P(!1),Ke=P(""),ue=P(!1),He=P(!1),dt=P(""),we=P(""),gt=P(""),ot=P(!1),Pt=P(!1),Oe=P(""),Mt=P(""),et=P(!1),ct=P(null),Nt=P(!1),ti=P("publishClientSend"),ri=P(""),Vt=P(!0),Me=P(""),jt=P(!1),ft=P(""),ht=P(""),he=P(!1),Xe=P(yi([])),Ut=P(""),wi=P(!1),Ri=P(null),ci=P(""),Bt=P(""),Xt=P(!1),pt=P(!1);const Bi=[{acltype:"publishClientSend",label:"Publish (send)"},{acltype:"publishClientReceive",label:"Publish (receive)"},{acltype:"subscribe",label:"Subscribe"},{acltype:"unsubscribe",label:"Unsubscribe"}];async function Ti(){var re,Ge;v(pt,!1),v(Ut,""),v(Bt,"");try{const[wt,vt]=await Promise.allSettled([rA(),wq()]);if(wt.status==="fulfilled"){const di=Object.fromEntries(wt.value.acls.map(It=>[It.acltype,It.allow]));v(Xe,Bi.map(({acltype:It})=>({acltype:It,allow:di[It]??(It==="publishClientReceive"||It==="unsubscribe")})),!0)}else v(Ut,((re=wt.reason)==null?void 0:re.message)??"Failed to load default ACLs",!0);vt.status==="fulfilled"?(v(Ri,vt.value.group,!0),v(ci,vt.value.group??"",!0)):v(Bt,((Ge=vt.reason)==null?void 0:Ge.message)??"Failed to load anonymous group",!0)}finally{v(pt,!0)}}async function Ni(re,Ge){v(Xe,c(Xe).map(wt=>wt.acltype===re?{...wt,allow:Ge}:wt),!0),v(wi,!0),v(Ut,"");try{await yq(c(Xe))}catch(wt){v(Ut,wt.message,!0)}finally{v(wi,!1)}}async function Ki(){v(Xt,!0),v(Bt,"");try{await Sq(c(ci)||null),v(Ri,c(ci)||null,!0)}catch(re){v(Bt,re.message,!0)}finally{v(Xt,!1)}}const Ai=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function Di(){var re,Ge,wt;try{const[vt,di,It]=await Promise.allSettled([nA(),sA(),oA()]);vt.status==="fulfilled"?(v(n,vt.value.users,!0),v(a,"")):v(a,((re=vt.reason)==null?void 0:re.message)??"Failed to load users",!0),di.status==="fulfilled"?(v(s,di.value.roles,!0),v(d,"")):v(d,((Ge=di.reason)==null?void 0:Ge.message)??"Failed to load roles",!0),It.status==="fulfilled"?(v(r,It.value.groups,!0),v(u,"")):v(u,((wt=It.reason)==null?void 0:wt.message)??"Failed to load groups",!0)}catch{}}Bs(()=>{Di()});async function $i(){v(Ke,""),v(ue,!0);try{await aq(c(te),c(pe)),v(te,""),v(pe,""),v(se,!1),await Di()}catch(re){v(Ke,re.message??"Failed to create user",!0)}finally{v(ue,!1)}}async function Gi(re){if(await i.show(`Delete user “${re}”?`,{confirm:"Delete",danger:!0}))try{await lq(re),await Di()}catch(Ge){v(a,Ge.message,!0)}}async function Ui(re){v(dt,re,!0),v(we,""),v(gt,""),v(He,!0)}async function mn(){v(gt,""),v(ot,!0);try{await cq(c(dt),c(we)),v(He,!1)}catch(re){v(gt,re.message,!0)}finally{v(ot,!1)}}async function rt(){v(Mt,""),v(et,!0);try{await hq(c(Oe)),v(Oe,""),v(Pt,!1),await Di()}catch(re){v(Mt,re.message??"Failed to create role",!0)}finally{v(et,!1)}}async function Kt(re){var Ge;if(await i.show(`Delete role “${re}”?`,{confirm:"Delete",danger:!0}))try{await fq(re),((Ge=c(ct))==null?void 0:Ge.rolename)===re&&(v(ct,null),v(Nt,!1)),await Di()}catch(wt){v(d,wt.message,!0)}}function _i(re){v(ct,re,!0),v(Nt,!0),v(ti,"publishClientSend"),v(ri,""),v(Vt,!0),v(Me,"")}async function Pi(){if(c(ct)){v(Me,"");try{await gq(c(ct).rolename,{acltype:c(ti),topic:c(ri),allow:c(Vt)}),v(ri,""),await Di(),v(ct,c(s).find(re=>re.rolename===c(ct).rolename)??c(ct),!0)}catch(re){v(Me,re.message,!0)}}}async function Li(re,Ge,wt){try{await pq(re,Ge,wt),await Di(),v(ct,c(s).find(vt=>vt.rolename===re)??c(ct),!0)}catch(vt){v(Me,vt.message,!0)}}async function Si(){v(ht,""),v(he,!0);try{await _q(c(ft)),v(ft,""),v(jt,!1),await Di()}catch(re){v(ht,re.message??"Failed to create group",!0)}finally{v(he,!1)}}async function Oi(re){if(await i.show(`Delete group “${re}”?`,{confirm:"Delete",danger:!0}))try{await mq(re),await Di()}catch(Ge){v(u,Ge.message,!0)}}var qi=YQ(),mi=xt(qi),Ue=b(mi);{var J=re=>{var Ge=mQ();I(re,Ge)};O(Ue,re=>{t()||re(J)})}var Qe=m(Ue,2),_t=b(Qe);let yt;var Ot=m(_t,2);let j;var ce=m(Ot,2);let ke;var ze=m(ce,2);let st;var X=m(ze,2),ae=m(Qe,2);{var me=re=>{var Ge=xQ(),wt=b(Ge),vt=m(b(wt),2),di=m(wt,2);{var It=oe=>{var $=ya(),A=b($);H(()=>N(A,c(a))),I(oe,$)};O(di,oe=>{c(a)&&oe(It)})}var Ii=m(di,2);{var W=oe=>{var $=vQ();I(oe,$)},Q=oe=>{var $=CQ(),A=m(b($));ni(A,21,()=>c(n),Vi,(G,ie)=>{var fe=SQ(),Y=b(fe),le=b(Y),Re=m(Y),_e=b(Re),ge=b(_e),tt=b(ge);ni(tt,17,()=>c(ie).roles??[],Vi,(Se,nt)=>{var de=bQ(),Pe=b(de),at=m(Pe);H(()=>N(Pe,c(nt).rolename)),z("click",at,()=>M(c(ie).username,c(nt).rolename)),I(Se,de)});var U=m(tt,2),ne=m(ge,2);{var Le=Se=>{var nt=kD(),de=xt(nt),Pe=b(de),at=b(Pe);at.value=at.__value="";var ut=m(at);ni(ut,17,()=>c(x),Vi,(ii,xi)=>{var Ji=_h(),Hi=b(Ji),li={};H(()=>{N(Hi,c(xi)),li!==(li=c(xi))&&(Ji.value=(Ji.__value=c(xi))??"")}),I(ii,Ji)});var Je=m(Pe,2),$t=m(Je,2),Jt=m(de,2);{var Mi=ii=>{var xi=Lm(),Ji=b(xi);H(()=>N(Ji,c(w))),I(ii,xi)};O(Jt,ii=>{c(w)&&ii(Mi)})}H(()=>Je.disabled=!c(p)||c(y)),ys(Pe,()=>c(p),ii=>v(p,ii)),z("click",Je,D),z("click",$t,()=>v(g,null)),I(Se,nt)};O(ne,Se=>{var nt;((nt=c(g))==null?void 0:nt.kind)==="user-roles"&&c(g).target===c(ie).username&&Se(Le)})}var Ve=m(Re),De=b(Ve),Ie=b(De),St=b(Ie);ni(St,17,()=>c(ie).groups??[],Vi,(Se,nt)=>{var de=yQ(),Pe=b(de),at=m(Pe);H(()=>N(Pe,c(nt).groupname)),z("click",at,()=>F(c(ie).username,c(nt).groupname)),I(Se,de)});var mt=m(St,2),qe=m(Ie,2);{var Tt=Se=>{var nt=wQ(),de=xt(nt),Pe=b(de),at=b(Pe);at.value=at.__value="";var ut=m(at);ni(ut,17,()=>c(x),Vi,(ii,xi)=>{var Ji=_h(),Hi=b(Ji),li={};H(()=>{N(Hi,c(xi)),li!==(li=c(xi))&&(Ji.value=(Ji.__value=c(xi))??"")}),I(ii,Ji)});var Je=m(Pe,2),$t=m(Je,2),Jt=m(de,2);{var Mi=ii=>{var xi=Lm(),Ji=b(xi);H(()=>N(Ji,c(w))),I(ii,xi)};O(Jt,ii=>{c(w)&&ii(Mi)})}H(()=>Je.disabled=!c(p)||c(y)),ys(Pe,()=>c(p),ii=>v(p,ii)),z("click",Je,D),z("click",$t,()=>v(g,null)),I(Se,nt)};O(qe,Se=>{var nt;((nt=c(g))==null?void 0:nt.kind)==="user-groups"&&c(g).target===c(ie).username&&Se(Tt)})}var it=m(Ve),ye=b(it),Ne=b(ye),Ee=m(Ne,2);H(()=>N(le,c(ie).username)),z("click",U,()=>k("user-roles",c(ie).username)),z("click",mt,()=>k("user-groups",c(ie).username)),z("click",Ne,()=>Ui(c(ie).username)),z("click",Ee,()=>Gi(c(ie).username)),I(G,fe)}),I(oe,$)};O(Ii,oe=>{c(n).length===0?oe(W):oe(Q,-1)})}z("click",vt,()=>{v(se,!0),v(Ke,"")}),I(re,Ge)};O(ae,re=>{c(f)==="users"&&re(me)})}var Ze=m(ae,2);{var Zt=re=>{var Ge=EQ(),wt=b(Ge),vt=m(b(wt),2),di=m(wt,2);{var It=oe=>{var $=ya(),A=b($);H(()=>N(A,c(d))),I(oe,$)};O(di,oe=>{c(d)&&oe(It)})}var Ii=m(di,2);{var W=oe=>{var $=kQ();I(oe,$)},Q=oe=>{var $=IQ(),A=m(b($));ni(A,21,()=>c(s),Vi,(G,ie)=>{var fe=LQ(),Y=b(fe),le=b(Y),Re=m(Y),_e=b(Re),ge=m(Re),tt=b(ge),U=b(tt),ne=m(U,2);H(()=>{var Le;N(le,c(ie).rolename),N(_e,((Le=c(ie).acls)==null?void 0:Le.length)??0)}),z("click",U,()=>_i(c(ie))),z("click",ne,()=>Kt(c(ie).rolename)),I(G,fe)}),I(oe,$)};O(Ii,oe=>{c(s).length===0?oe(W):oe(Q,-1)})}z("click",vt,()=>{v(Pt,!0),v(Mt,""),v(Oe,"")}),I(re,Ge)};O(Ze,re=>{c(f)==="roles"&&re(Zt)})}var bt=m(Ze,2);{var We=re=>{var Ge=AQ(),wt=b(Ge),vt=m(b(wt),2),di=m(wt,2);{var It=oe=>{var $=ya(),A=b($);H(()=>N(A,c(u))),I(oe,$)};O(di,oe=>{c(u)&&oe(It)})}var Ii=m(di,2);{var W=oe=>{var $=DQ();I(oe,$)},Q=oe=>{var $=NQ(),A=m(b($));ni(A,21,()=>c(r),Vi,(G,ie)=>{var fe=RQ(),Y=b(fe),le=b(Y),Re=m(Y),_e=b(Re),ge=b(_e),tt=b(ge);ni(tt,17,()=>c(ie).clients??[],Vi,(Ee,Se)=>{var nt=TQ(),de=b(nt),Pe=m(de);H(()=>N(de,c(Se).username)),z("click",Pe,()=>K(c(ie).groupname,c(Se).username)),I(Ee,nt)});var U=m(tt,2),ne=m(ge,2);{var Le=Ee=>{var Se=PQ(),nt=xt(Se),de=b(nt),Pe=b(de);Pe.value=Pe.__value="";var at=m(Pe);ni(at,17,()=>c(x),Vi,(Mi,ii)=>{var xi=_h(),Ji=b(xi),Hi={};H(()=>{N(Ji,c(ii)),Hi!==(Hi=c(ii))&&(xi.value=(xi.__value=c(ii))??"")}),I(Mi,xi)});var ut=m(de,2),Je=m(ut,2),$t=m(nt,2);{var Jt=Mi=>{var ii=Lm(),xi=b(ii);H(()=>N(xi,c(w))),I(Mi,ii)};O($t,Mi=>{c(w)&&Mi(Jt)})}H(()=>ut.disabled=!c(p)||c(y)),ys(de,()=>c(p),Mi=>v(p,Mi)),z("click",ut,D),z("click",Je,()=>v(g,null)),I(Ee,Se)};O(ne,Ee=>{var Se;((Se=c(g))==null?void 0:Se.kind)==="group-members"&&c(g).target===c(ie).groupname&&Ee(Le)})}var Ve=m(Re),De=b(Ve),Ie=b(De),St=b(Ie);ni(St,17,()=>c(ie).roles??[],Vi,(Ee,Se)=>{var nt=MQ(),de=b(nt),Pe=m(de);H(()=>N(de,c(Se).rolename)),z("click",Pe,()=>V(c(ie).groupname,c(Se).rolename)),I(Ee,nt)});var mt=m(St,2),qe=m(Ie,2);{var Tt=Ee=>{var Se=kD(),nt=xt(Se),de=b(nt),Pe=b(de);Pe.value=Pe.__value="";var at=m(Pe);ni(at,17,()=>c(x),Vi,(Mi,ii)=>{var xi=_h(),Ji=b(xi),Hi={};H(()=>{N(Ji,c(ii)),Hi!==(Hi=c(ii))&&(xi.value=(xi.__value=c(ii))??"")}),I(Mi,xi)});var ut=m(de,2),Je=m(ut,2),$t=m(nt,2);{var Jt=Mi=>{var ii=Lm(),xi=b(ii);H(()=>N(xi,c(w))),I(Mi,ii)};O($t,Mi=>{c(w)&&Mi(Jt)})}H(()=>ut.disabled=!c(p)||c(y)),ys(de,()=>c(p),Mi=>v(p,Mi)),z("click",ut,D),z("click",Je,()=>v(g,null)),I(Ee,Se)};O(qe,Ee=>{var Se;((Se=c(g))==null?void 0:Se.kind)==="group-roles"&&c(g).target===c(ie).groupname&&Ee(Tt)})}var it=m(Ve),ye=b(it),Ne=b(ye);H(()=>N(le,c(ie).groupname)),z("click",U,()=>k("group-members",c(ie).groupname)),z("click",mt,()=>k("group-roles",c(ie).groupname)),z("click",Ne,()=>Oi(c(ie).groupname)),I(G,fe)}),I(oe,$)};O(Ii,oe=>{c(r).length===0?oe(W):oe(Q,-1)})}z("click",vt,()=>{v(jt,!0),v(ht,""),v(ft,"")}),I(re,Ge)};O(bt,re=>{c(f)==="groups"&&re(We)})}var At=m(bt,2);{var ai=re=>{var Ge=zQ(),wt=b(Ge),vt=m(b(wt),4);{var di=fe=>{var Y=ya(),le=b(Y);H(()=>N(le,c(Ut))),I(fe,Y)};O(vt,fe=>{c(Ut)&&fe(di)})}var It=m(vt,2);{var Ii=fe=>{var Y=LD();I(fe,Y)},W=fe=>{var Y=FQ(),le=m(b(Y));ni(le,21,()=>Bi,Vi,(Re,_e)=>{let ge=()=>c(_e).acltype,tt=()=>c(_e).label;const U=Ct(()=>c(Xe).find(Tt=>Tt.acltype===ge()));var ne=OQ();let Le;var Ve=b(ne),De=b(Ve),Ie=m(Ve),St=b(Ie),mt=m(Ie),qe=b(mt);H(()=>{var Tt,it;Le=kt(ne,1,"svelte-3itf14",null,Le,{saving:c(wi)}),N(De,tt()),ln(St,"name",ge()),hl(St,((Tt=c(U))==null?void 0:Tt.allow)===!0),ln(qe,"name",ge()),hl(qe,((it=c(U))==null?void 0:it.allow)===!1)}),z("change",St,()=>Ni(ge(),!0)),z("change",qe,()=>Ni(ge(),!1)),I(Re,ne)}),I(fe,Y)};O(It,fe=>{c(pt)?fe(W,-1):fe(Ii)})}var Q=m(wt,2),oe=m(b(Q),4);{var $=fe=>{var Y=ya(),le=b(Y);H(()=>N(le,c(Bt))),I(fe,Y)};O(oe,fe=>{c(Bt)&&fe($)})}var A=m(oe,2);{var G=fe=>{var Y=LD();I(fe,Y)},ie=fe=>{var Y=BQ(),le=xt(Y),Re=b(le),_e=b(Re);_e.value=_e.__value="";var ge=m(_e);ni(ge,17,()=>c(r),Vi,(De,Ie)=>{var St=_h(),mt=b(St),qe={};H(()=>{N(mt,c(Ie).groupname),qe!==(qe=c(Ie).groupname)&&(St.value=(St.__value=c(Ie).groupname)??"")}),I(De,St)});var tt=m(Re,2),U=b(tt),ne=m(le,2);{var Le=De=>{var Ie=HQ(),St=m(b(Ie)),mt=b(St);H(()=>N(mt,c(Ri))),I(De,Ie)},Ve=De=>{var Ie=WQ();I(De,Ie)};O(ne,De=>{c(Ri)?De(Le):De(Ve,-1)})}H(()=>{tt.disabled=c(Xt)||c(ci)===(c(Ri)??""),N(U,c(Xt)?"Saving…":"Save")}),ys(Re,()=>c(ci),De=>v(ci,De)),z("click",tt,Ki),I(fe,Y)};O(A,fe=>{c(pt)?fe(ie,-1):fe(G)})}I(re,Ge)};O(At,re=>{c(f)==="settings"&&re(ai)})}var zt=m(mi,2);{var vi=re=>{var Ge=VQ(),wt=b(Ge),vt=m(b(wt),2),di=m(b(vt)),It=m(vt,2),Ii=m(b(It)),W=b(Ii),Q=m(W,2),oe=b(Q),$=m(It,2);{var A=le=>{var Re=ya(),_e=b(Re);H(()=>N(_e,c(Ke))),I(le,Re)};O($,le=>{c(Ke)&&le(A)})}var G=m($,2),ie=b(G),fe=m(ie,2),Y=b(fe);H(()=>{ln(W,"type",c(je)?"text":"password"),N(oe,c(je)?"Hide":"Show"),fe.disabled=c(ue)||!c(te)||!c(pe),N(Y,c(ue)?"Creating…":"Create")}),Ht(di,()=>c(te),le=>v(te,le)),Ht(W,()=>c(pe),le=>v(pe,le)),z("click",Q,()=>v(je,!c(je))),z("click",ie,()=>v(se,!1)),z("click",fe,$i),I(re,Ge)};O(zt,re=>{c(se)&&re(vi)})}var hi=m(zt,2);{var Ci=re=>{var Ge=jQ(),wt=b(Ge),vt=b(wt),di=m(b(vt)),It=b(di),Ii=m(vt,2),W=m(b(Ii)),Q=m(Ii,2);{var oe=fe=>{var Y=ya(),le=b(Y);H(()=>N(le,c(gt))),I(fe,Y)};O(Q,fe=>{c(gt)&&fe(oe)})}var $=m(Q,2),A=b($),G=m(A,2),ie=b(G);H(()=>{N(It,c(dt)),G.disabled=c(ot)||!c(we),N(ie,c(ot)?"Saving…":"Set password")}),Ht(W,()=>c(we),fe=>v(we,fe)),z("click",A,()=>v(He,!1)),z("click",G,mn),I(re,Ge)};O(hi,re=>{c(He)&&re(Ci)})}var zi=m(hi,2);{var $e=re=>{var Ge=$Q(),wt=b(Ge),vt=m(b(wt),2),di=m(b(vt)),It=m(vt,2);{var Ii=A=>{var G=ya(),ie=b(G);H(()=>N(ie,c(Mt))),I(A,G)};O(It,A=>{c(Mt)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2),$=b(oe);H(()=>{oe.disabled=c(et)||!c(Oe),N($,c(et)?"Creating…":"Create")}),Ht(di,()=>c(Oe),A=>v(Oe,A)),z("click",Q,()=>v(Pt,!1)),z("click",oe,rt),I(re,Ge)};O(zi,re=>{c(Pt)&&re($e)})}var Fe=m(zi,2);{var Ft=re=>{var Ge=KQ(),wt=b(Ge),vt=b(wt),di=m(b(vt)),It=b(di),Ii=m(vt,2);{var W=ge=>{var tt=qQ(),U=m(b(tt));ni(U,21,()=>c(ct).acls??[],Vi,(ne,Le)=>{var Ve=UQ(),De=b(Ve),Ie=b(De),St=m(De),mt=b(St),qe=m(St),Tt=b(qe),it=m(qe),ye=b(it);H(()=>{N(Ie,c(Le).acltype),N(mt,c(Le).topic),N(Tt,c(Le).allow?"✓":"✗")}),z("click",ye,()=>Li(c(ct).rolename,c(Le).acltype,c(Le).topic)),I(ne,Ve)}),I(ge,tt)},Q=ge=>{var tt=GQ();I(ge,tt)};O(Ii,ge=>{var tt;(((tt=c(ct).acls)==null?void 0:tt.length)??0)>0?ge(W):ge(Q,-1)})}var oe=m(Ii,2),$=b(oe);ni($,21,()=>Ai,Vi,(ge,tt)=>{var U=_h(),ne=b(U),Le={};H(()=>{N(ne,c(tt)),Le!==(Le=c(tt))&&(U.value=(U.__value=c(tt))??"")}),I(ge,U)});var A=m($,2),G=m(A,2),ie=b(G),fe=m(G,2),Y=m(oe,2);{var le=ge=>{var tt=ya(),U=b(tt);H(()=>N(U,c(Me))),I(ge,tt)};O(Y,ge=>{c(Me)&&ge(le)})}var Re=m(Y,2),_e=b(Re);H(()=>{N(It,c(ct).rolename),fe.disabled=!c(ri)}),ys($,()=>c(ti),ge=>v(ti,ge)),Ht(A,()=>c(ri),ge=>v(ri,ge)),ms(ie,()=>c(Vt),ge=>v(Vt,ge)),z("click",fe,Pi),z("click",_e,()=>v(Nt,!1)),I(re,Ge)};O(Fe,re=>{c(Nt)&&c(ct)&&re(Ft)})}var Yt=m(Fe,2);{var qt=re=>{var Ge=ZQ(),wt=b(Ge),vt=m(b(wt),2),di=m(b(vt)),It=m(vt,2);{var Ii=A=>{var G=ya(),ie=b(G);H(()=>N(ie,c(ht))),I(A,G)};O(It,A=>{c(ht)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2),$=b(oe);H(()=>{oe.disabled=c(he)||!c(ft),N($,c(he)?"Creating…":"Create")}),Ht(di,()=>c(ft),A=>v(ft,A)),z("click",Q,()=>v(jt,!1)),z("click",oe,Si),I(re,Ge)};O(Yt,re=>{c(jt)&&re(qt)})}var Qt=m(Yt,2);vs(Uc(Qt,{}),re=>i=re,()=>i),H(()=>{yt=kt(_t,1,"svelte-3itf14",null,yt,{active:c(f)==="users"}),j=kt(Ot,1,"svelte-3itf14",null,j,{active:c(f)==="roles"}),ke=kt(ce,1,"svelte-3itf14",null,ke,{active:c(f)==="groups"}),st=kt(ze,1,"svelte-3itf14",null,st,{active:c(f)==="settings"})}),z("click",_t,()=>v(f,"users")),z("click",Ot,()=>v(f,"roles")),z("click",ce,()=>v(f,"groups")),z("click",ze,()=>{v(f,"settings"),c(pt)||Ti()}),z("click",X,Di),I(o,qi),Ps()}zs(["click","change"]);var ID=T('<div class="err svelte-9i68x"> </div>'),QQ=T('<div class="ok svelte-9i68x">Saved.</div>'),JQ=T('<div class="reload-msg svelte-9i68x"> </div>'),eJ=T('<div class="loading svelte-9i68x">Loading…</div>'),tJ=T('<div class="anon-row svelte-9i68x"><span class="field-label svelte-9i68x"><code class="svelte-9i68x">allow_anonymous</code></span> <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated clients</option><option>false — require authentication</option></select></div>'),iJ=T("<option></option>"),nJ=T('<div class="tls-section svelte-9i68x"><div class="field-row svelte-9i68x"><label class="svelte-9i68x">Certificate file (certfile) <input placeholder="/etc/mosquitto/certs/server.crt" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Key file (keyfile) <input placeholder="/etc/mosquitto/certs/server.key" class="svelte-9i68x"/></label></div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">CA file (cafile) — single CA cert <input placeholder="/etc/mosquitto/ca.crt" class="svelte-9i68x"/></label> <label class="svelte-9i68x">CA path (capath) — CA cert directory <input placeholder="/etc/mosquitto/ca-certs/" class="svelte-9i68x"/></label></div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">CRL file (crlfile) <input placeholder="/etc/mosquitto/crl.pem" class="svelte-9i68x"/></label> <label class="svelte-9i68x">TLS version <select class="svelte-9i68x"><option>Default</option><option>tlsv1.3</option><option>tlsv1.2</option></select></label></div> <div class="field-row svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> Require client certificate (require_certificate)</label> <label class="toggle-label svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> Use cert CN as username (use_identity_as_username)</label></div></div>'),sJ=T('<div class="field-row svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> Use cert Subject as username (use_subject_as_username)</label></div>'),oJ=T('<div class="advanced-section svelte-9i68x"><div class="field-row svelte-9i68x"><label class="svelte-9i68x">Mount point <input placeholder="(none)" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Max connections <input type="number" min="-1" placeholder="-1 (unlimited)" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Max QoS <select class="svelte-9i68x"><option>default</option><option>0 — fire and forget</option><option>1 — at least once</option><option>2 — exactly once</option></select></label></div> <!></div>'),rJ=T('<div class="auth-section svelte-9i68x"><div class="auth-section-title svelte-9i68x">Authentication</div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">allow_anonymous <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated</option><option>false — require auth</option></select></label> <label class="svelte-9i68x">password_file <input placeholder="/etc/mosquitto/passwd" class="svelte-9i68x"/></label> <label class="svelte-9i68x">acl_file <input placeholder="/etc/mosquitto/acl" class="svelte-9i68x"/></label></div></div>'),aJ=T('<div class="listener-card svelte-9i68x"><div class="card-title svelte-9i68x"><span> </span> <button class="remove-btn svelte-9i68x" title="Remove listener">✕</button></div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">Port <input type="number" min="1" max="65535" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Protocol <select class="svelte-9i68x"><option>mqtt</option><option>websockets</option></select></label> <label class="svelte-9i68x">Bind address <input placeholder="(all interfaces)" class="svelte-9i68x"/></label> <label class="toggle-label tls-inline svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> TLS</label></div> <datalist></datalist> <!> <button class="advanced-btn svelte-9i68x"> </button> <!> <!></div>'),lJ=T('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),cJ=T('<div class="global-settings svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox"/> <span><code>per_listener_settings</code> — independent auth per listener</span> <span class="info-icon svelte-9i68x" title="Not recommended when using the dynamic-security plugin — dynsec credentials only apply to the default listener. See mosquitto documentation.">ℹ</span></label> <!></div> <div class="cards svelte-9i68x"><!> <!></div>',1),dJ=T('<div class="listeners-page svelte-9i68x"><div class="page-header svelte-9i68x"><h3 class="svelte-9i68x">Listeners</h3> <div class="header-actions svelte-9i68x"><button class="svelte-9i68x">+ Add listener</button> <button class="btn-save svelte-9i68x"> </button> <button class="btn-reload svelte-9i68x" title="Apply &amp; Reload mosquitto"> </button></div></div> <!> <!> <!> <!> <!></div>');function uJ(o,e){Ts(e,!0);let t=P(null),i=P(""),n=P(!1),s=P(""),r=P(!1),a=P(!1),d=P(""),u=P(yi([])),f=P(null),g=P(!1),p=P(""),w=P(yi([])),y=P(yi(new Set));Bs(()=>{x(),iq().then(Me=>{v(w,Me.addresses,!0)}).catch(()=>{})});async function x(){try{v(t,await Pk(),!0),v(u,JSON.parse(JSON.stringify(c(t).listeners)),!0),v(f,c(t).checksum,!0);const Me=c(t).managed.allow_anonymous;v(p,Me==="true"||Me==="false"?Me:"",!0),v(g,c(t).managed.per_listener_settings==="true"),v(i,"")}catch(Me){v(i,Me.message??"Failed to load broker config",!0)}}function k(){v(u,[...c(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0),v(y,new Set(c(y)),!0)}function D(Me){const jt=new Set(c(y));jt.has(Me)?jt.delete(Me):jt.add(Me),v(y,jt,!0)}function M(Me){v(u,c(u).filter((jt,ft)=>ft!==Me),!0)}async function F(){if(c(t)){v(n,!0),v(s,""),v(r,!1);try{const Me={...c(t).managed};c(g)?(Me.per_listener_settings="true",delete Me.allow_anonymous):(delete Me.per_listener_settings,c(p)?Me.allow_anonymous=c(p):delete Me.allow_anonymous),await tA({listeners:c(u),managed:Me,passthrough:c(t).passthrough,checksum:c(f)}),v(r,!0),setTimeout(()=>v(r,!1),3e3),await x()}catch(Me){v(s,Me.message??"Save failed",!0)}finally{v(n,!1)}}}async function K(){v(a,!0),v(d,"");try{const Me=await iA();v(d,Me.stderr||Me.stdout||"Reloaded",!0)}catch(Me){v(d,"Error: "+(Me.message??"reload failed"))}finally{v(a,!1)}}function V(Me){var jt,ft,ht,he;return!!((jt=Me.tls)!=null&&jt.certfile||(ft=Me.tls)!=null&&ft.keyfile||(ht=Me.tls)!=null&&ht.capath||(he=Me.tls)!=null&&he.cafile)}function se(Me,jt){jt||(Me.tls={}),v(u,[...c(u)],!0)}var te=dJ(),pe=b(te),je=m(b(pe),2),Ke=b(je),ue=m(Ke,2),He=b(ue),dt=m(ue,2),we=b(dt),gt=m(pe,2);{var ot=Me=>{var jt=ID(),ft=b(jt);H(()=>N(ft,c(i))),I(Me,jt)};O(gt,Me=>{c(i)&&Me(ot)})}var Pt=m(gt,2);{var Oe=Me=>{var jt=ID(),ft=b(jt);H(()=>N(ft,c(s))),I(Me,jt)};O(Pt,Me=>{c(s)&&Me(Oe)})}var Mt=m(Pt,2);{var et=Me=>{var jt=QQ();I(Me,jt)};O(Mt,Me=>{c(r)&&Me(et)})}var ct=m(Mt,2);{var Nt=Me=>{var jt=JQ(),ft=b(jt);H(()=>N(ft,c(d))),I(Me,jt)};O(ct,Me=>{c(d)&&Me(Nt)})}var ti=m(ct,2);{var ri=Me=>{var jt=eJ();I(Me,jt)},Vt=Me=>{var jt=cJ(),ft=xt(jt),ht=b(ft),he=b(ht),Xe=m(ht,2);{var Ut=Xt=>{var pt=tJ(),Bi=m(b(pt),2),Ti=b(Bi);Ti.value=Ti.__value="";var Ni=m(Ti);Ni.value=Ni.__value="true";var Ki=m(Ni);Ki.value=Ki.__value="false",ys(Bi,()=>c(p),Ai=>v(p,Ai)),I(Xt,pt)};O(Xe,Xt=>{c(g)||Xt(Ut)})}var wi=m(ft,2),Ri=b(wi);ni(Ri,17,()=>c(u),Vi,(Xt,pt,Bi)=>{var Ti=aJ(),Ni=b(Ti),Ki=b(Ni),Ai=b(Ki),Di=m(Ki,2),$i=m(Ni,2),Gi=b($i),Ui=m(b(Gi)),mn=m(Gi,2),rt=m(b(mn)),Kt=b(rt);Kt.value=Kt.__value="mqtt";var _i=m(Kt);_i.value=_i.__value="websockets";var Pi=m(mn,2),Li=m(b(Pi));ln(Li,"list",`bind-addr-list-${Bi}`);var Si=m(Pi,2),Oi=b(Si),qi=m($i,2);ln(qi,"id",`bind-addr-list-${Bi}`),ni(qi,21,()=>c(w),Vi,(ze,st)=>{var X=iJ(),ae={};H(()=>{ae!==(ae=c(st))&&(X.value=(X.__value=c(st))??"")}),I(ze,X)});var mi=m(qi,2);{var Ue=ze=>{var st=nJ(),X=b(st),ae=b(X),me=m(b(ae)),Ze=m(ae,2),Zt=m(b(Ze)),bt=m(X,2),We=b(bt),At=m(b(We)),ai=m(We,2),zt=m(b(ai)),vi=m(bt,2),hi=b(vi),Ci=m(b(hi)),zi=m(hi,2),$e=m(b(zi)),Fe=b($e);Fe.value=Fe.__value="";var Ft=m(Fe);Ft.value=Ft.__value="tlsv1.3";var Yt=m(Ft);Yt.value=Yt.__value="tlsv1.2";var qt=m(vi,2),Qt=b(qt),re=b(Qt),Ge=m(Qt,2),wt=b(Ge);Ht(me,()=>c(pt).tls.certfile,vt=>c(pt).tls.certfile=vt),Ht(Zt,()=>c(pt).tls.keyfile,vt=>c(pt).tls.keyfile=vt),Ht(At,()=>c(pt).tls.cafile,vt=>c(pt).tls.cafile=vt),Ht(zt,()=>c(pt).tls.capath,vt=>c(pt).tls.capath=vt),Ht(Ci,()=>c(pt).tls.crlfile,vt=>c(pt).tls.crlfile=vt),ys($e,()=>c(pt).tls.tls_version,vt=>c(pt).tls.tls_version=vt),ms(re,()=>c(pt).tls.require_certificate,vt=>c(pt).tls.require_certificate=vt),ms(wt,()=>c(pt).tls.use_identity_as_username,vt=>c(pt).tls.use_identity_as_username=vt),I(ze,st)},J=Ct(()=>V(c(pt)));O(mi,ze=>{c(J)&&ze(Ue)})}var Qe=m(mi,2),_t=b(Qe),yt=m(Qe,2);{var Ot=ze=>{var st=oJ(),X=b(st),ae=b(X),me=m(b(ae)),Ze=m(ae,2),Zt=m(b(Ze)),bt=m(Ze,2),We=m(b(bt)),At=b(We);At.value=At.__value="";var ai=m(At);ai.value=ai.__value="0";var zt=m(ai);zt.value=zt.__value="1";var vi=m(zt);vi.value=vi.__value="2";var hi;ZS(We);var Ci=m(X,2);{var zi=Fe=>{var Ft=sJ(),Yt=b(Ft),qt=b(Yt);ms(qt,()=>c(pt).tls.use_subject_as_username,Qt=>c(pt).tls.use_subject_as_username=Qt),I(Fe,Ft)},$e=Ct(()=>V(c(pt)));O(Ci,Fe=>{c($e)&&Fe(zi)})}H(Fe=>{hi!==(hi=Fe)&&(We.value=(We.__value=Fe)??"",mv(We,Fe))},[()=>c(pt).max_qos!==void 0?String(c(pt).max_qos):""]),Ht(me,()=>c(pt).mount_point,Fe=>c(pt).mount_point=Fe),Ht(Zt,()=>c(pt).max_connections,Fe=>c(pt).max_connections=Fe),z("change",We,Fe=>{const Ft=Fe.target.value;c(pt).max_qos=Ft===""?void 0:Number(Ft),v(u,[...c(u)],!0)}),I(ze,st)},j=Ct(()=>c(y).has(Bi));O(yt,ze=>{c(j)&&ze(Ot)})}var ce=m(yt,2);{var ke=ze=>{var st=rJ(),X=m(b(st),2),ae=b(X),me=m(b(ae)),Ze=b(me);Ze.value=Ze.__value="";var Zt=m(Ze);Zt.value=Zt.__value="true";var bt=m(Zt);bt.value=bt.__value="false";var We;ZS(me);var At=m(ae,2),ai=m(b(At)),zt=m(At,2),vi=m(b(zt));H(()=>{We!==(We=c(pt).allow_anonymous===void 0?"":c(pt).allow_anonymous?"true":"false")&&(me.value=me.__value=c(pt).allow_anonymous===void 0?"":c(pt).allow_anonymous?"true":"false",mv(me,c(pt).allow_anonymous===void 0?"":c(pt).allow_anonymous?"true":"false"))}),z("change",me,hi=>{const Ci=hi.target.value;c(pt).allow_anonymous=Ci===""?void 0:Ci==="true",v(u,[...c(u)],!0)}),Ht(ai,()=>c(pt).password_file,hi=>c(pt).password_file=hi),Ht(vi,()=>c(pt).acl_file,hi=>c(pt).acl_file=hi),I(ze,st)};O(ce,ze=>{c(g)&&ze(ke)})}H((ze,st)=>{N(Ai,`Port ${c(pt).port??""}`),hl(Oi,ze),N(_t,`${st??""} Advanced`)},[()=>V(c(pt)),()=>c(y).has(Bi)?"▾":"▸"]),z("click",Di,()=>M(Bi)),Ht(Ui,()=>c(pt).port,ze=>c(pt).port=ze),ys(rt,()=>c(pt).protocol,ze=>c(pt).protocol=ze),Ht(Li,()=>c(pt).bindAddress,ze=>c(pt).bindAddress=ze),z("change",Oi,ze=>se(c(pt),ze.target.checked)),z("click",Qe,()=>D(Bi)),I(Xt,Ti)});var ci=m(Ri,2);{var Bt=Xt=>{var pt=lJ();I(Xt,pt)};O(ci,Xt=>{c(u).length===0&&Xt(Bt)})}ms(he,()=>c(g),Xt=>v(g,Xt)),I(Me,jt)};O(ti,Me=>{c(t)===null&&!c(i)?Me(ri):Me(Vt,-1)})}H(()=>{ue.disabled=c(n),N(He,c(n)?"Saving…":"Save"),dt.disabled=c(a),N(we,c(a)?"Reloading…":"Apply & Reload")}),z("click",Ke,k),z("click",ue,F),z("click",dt,K),I(o,te),Ps()}zs(["click","change"]);var ED=T('<div class="err svelte-1by6o5t"> </div>'),hJ=T('<div class="ok svelte-1by6o5t">Saved.</div>'),fJ=T('<div class="reload-msg svelte-1by6o5t"> </div>'),DD=T('<label class="check-label svelte-1by6o5t"><input type="checkbox" class="svelte-1by6o5t"/> </label>'),gJ=T(`<div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Connection limits</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_connections</span> <input placeholder="−1 (unlimited)" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum simultaneous client connections. <code class="svelte-1by6o5t">-1</code> = unlimited.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_keepalive</span> <input placeholder="65535" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum keepalive value (seconds) a client may request. <code class="svelte-1by6o5t">0</code> = unlimited.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_inflight_messages</span> <input placeholder="20" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Max simultaneous unacknowledged QoS 1/2 messages per client.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_queued_messages</span> <input placeholder="100" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Max messages queued for a disconnected persistent client.</p></div></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Packet &amp; payload size</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_packet_size</span> <input placeholder="0 (no limit)" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum MQTT packet size in bytes (MQTT v5 only). <code class="svelte-1by6o5t">0</code> = no limit.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">message_size_limit</span> <input placeholder="0 (no limit)" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum payload size in bytes for published messages. <code class="svelte-1by6o5t">0</code> = no limit.</p></div></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Sessions &amp; persistence</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">persistent_client_expiration</span> <input placeholder="e.g. 7d, 2h, 30m" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Expire persistent sessions after this duration. Suffix: <code class="svelte-1by6o5t">d</code>/<code class="svelte-1by6o5t">h</code>/<code class="svelte-1by6o5t">m</code>/<code class="svelte-1by6o5t">s</code>. Empty = never expire.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">retain_available</span> <select class="svelte-1by6o5t"><option>auto (broker default)</option><option>true — allow retained messages</option><option>false — disable retained messages globally</option></select></label> <p class="hint svelte-1by6o5t">Disable retained messages broker-wide.</p></div></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Logging</h4> <div class="field svelte-1by6o5t"><span class="field-key svelte-1by6o5t">log_dest</span> <div class="checkbox-group svelte-1by6o5t"></div> <p class="hint svelte-1by6o5t">Log destinations. Enable <code class="svelte-1by6o5t">topic</code> to stream logs to <code class="svelte-1by6o5t">$SYS/broker/log/*</code> and view them in the Logs tab.</p></div> <div class="field svelte-1by6o5t"><span class="field-key svelte-1by6o5t">log_type</span> <div class="checkbox-group svelte-1by6o5t"></div> <p class="hint svelte-1by6o5t">Types of messages to log. Leave empty to use the broker default.</p></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Performance</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">set_tcp_nodelay</span> <select class="svelte-1by6o5t"><option>auto (broker default)</option><option>true — disable Nagle (lower latency)</option><option>false — enable Nagle</option></select></label> <p class="hint svelte-1by6o5t">Disable Nagle's algorithm to reduce latency at the cost of slightly more packets.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">connection_messages</span> <select class="svelte-1by6o5t"><option>auto (broker default)</option><option>true — log connect/disconnect</option><option>false — suppress</option></select></label> <p class="hint svelte-1by6o5t">Log a message on every client connect and disconnect.</p></div></div></div>`,1),pJ=T('<div class="config-page svelte-1by6o5t"><div class="page-header svelte-1by6o5t"><h3 class="svelte-1by6o5t">Global config</h3> <div class="header-actions svelte-1by6o5t"><button class="btn-save svelte-1by6o5t"> </button> <button class="btn-reload svelte-1by6o5t"> </button></div></div> <!> <!> <!> <!> <!></div>');function _J(o,e){Ts(e,!0);let t=P(null),i=P(""),n=P(!1),s=P(""),r=P(!1),a=P(!1),d=P(""),u=P(null),f=P(""),g=P(""),p=P(""),w=P(""),y=P(""),x=P(""),k=P(""),D=P(""),M=P(""),F=P("");const K=["file","stdout","stderr","syslog","topic","none"],V=["debug","error","warning","notice","information","subscribe","unsubscribe","websockets","connect","disconnect","publish","receive","all"];let se=P(yi(new Set)),te=P(yi(new Set));function pe(he){if(!c(t))return"";const Xe=c(t).managed[he];return Array.isArray(Xe)?Xe[0]:Xe??""}function je(he){if(!c(t))return new Set;const Xe=c(t).managed[he];return Xe?new Set(Array.isArray(Xe)?Xe:[Xe]):new Set}Bs(()=>Ke());async function Ke(){try{v(t,await Pk(),!0),v(u,c(t).checksum,!0),v(f,pe("max_connections"),!0),v(g,pe("max_inflight_messages"),!0),v(p,pe("max_queued_messages"),!0),v(w,pe("max_packet_size"),!0),v(y,pe("message_size_limit"),!0),v(x,pe("max_keepalive"),!0),v(k,pe("persistent_client_expiration"),!0),v(D,pe("retain_available"),!0),v(M,pe("set_tcp_nodelay"),!0),v(F,pe("connection_messages"),!0),v(se,je("log_dest"),!0),v(te,je("log_type"),!0),v(i,"")}catch(he){v(i,he.message??"Failed to load config",!0)}}async function ue(){if(c(t)){v(n,!0),v(s,""),v(r,!1);try{let Xe=function(Ut,wi){wi!==""?he[Ut]=wi:delete he[Ut]};const he={...c(t).managed};Xe("max_connections",c(f)),Xe("max_inflight_messages",c(g)),Xe("max_queued_messages",c(p)),Xe("max_packet_size",c(w)),Xe("message_size_limit",c(y)),Xe("max_keepalive",c(x)),Xe("persistent_client_expiration",c(k)),Xe("retain_available",c(D)),Xe("set_tcp_nodelay",c(M)),Xe("connection_messages",c(F)),c(se).size>0?he.log_dest=c(se).size===1?[...c(se)][0]:[...c(se)]:delete he.log_dest,c(te).size>0?he.log_type=c(te).size===1?[...c(te)][0]:[...c(te)]:delete he.log_type,await tA({listeners:c(t).listeners,managed:he,passthrough:c(t).passthrough,checksum:c(u)}),v(r,!0),setTimeout(()=>v(r,!1),3e3),await Ke()}catch(he){v(s,he.message??"Save failed",!0)}finally{v(n,!1)}}}async function He(){v(a,!0),v(d,"");try{const he=await iA();v(d,he.stderr||he.stdout||"Reloaded",!0)}catch(he){v(d,"Error: "+(he.message??"reload failed"))}finally{v(a,!1)}}var dt=pJ(),we=b(dt),gt=m(b(we),2),ot=b(gt),Pt=b(ot),Oe=m(ot,2),Mt=b(Oe),et=m(we,2);{var ct=he=>{var Xe=ED(),Ut=b(Xe);H(()=>N(Ut,c(i))),I(he,Xe)};O(et,he=>{c(i)&&he(ct)})}var Nt=m(et,2);{var ti=he=>{var Xe=ED(),Ut=b(Xe);H(()=>N(Ut,c(s))),I(he,Xe)};O(Nt,he=>{c(s)&&he(ti)})}var ri=m(Nt,2);{var Vt=he=>{var Xe=hJ();I(he,Xe)};O(ri,he=>{c(r)&&he(Vt)})}var Me=m(ri,2);{var jt=he=>{var Xe=fJ(),Ut=b(Xe);H(()=>N(Ut,c(d))),I(he,Xe)};O(Me,he=>{c(d)&&he(jt)})}var ft=m(Me,2);{var ht=he=>{var Xe=gJ(),Ut=xt(Xe),wi=m(b(Ut),2),Ri=b(wi),ci=b(Ri),Bt=m(b(ci),2),Xt=m(Ri,2),pt=b(Xt),Bi=m(b(pt),2),Ti=m(Xt,2),Ni=b(Ti),Ki=m(b(Ni),2),Ai=m(Ti,2),Di=b(Ai),$i=m(b(Di),2),Gi=m(Ut,2),Ui=m(b(Gi),2),mn=b(Ui),rt=b(mn),Kt=m(b(rt),2),_i=m(mn,2),Pi=b(_i),Li=m(b(Pi),2),Si=m(Gi,2),Oi=m(b(Si),2),qi=b(Oi),mi=b(qi),Ue=m(b(mi),2),J=m(qi,2),Qe=b(J),_t=m(b(Qe),2),yt=b(_t);yt.value=yt.__value="";var Ot=m(yt);Ot.value=Ot.__value="true";var j=m(Ot);j.value=j.__value="false";var ce=m(Si,2),ke=m(b(ce),2),ze=m(b(ke),2);ni(ze,21,()=>K,Vi,(Fe,Ft)=>{var Yt=DD(),qt=b(Yt),Qt=m(qt);H(re=>{hl(qt,re),N(Qt,` ${c(Ft)??""}`)},[()=>c(se).has(c(Ft))]),z("change",qt,()=>{const re=new Set(c(se));re.has(c(Ft))?re.delete(c(Ft)):re.add(c(Ft)),v(se,re,!0)}),I(Fe,Yt)});var st=m(ke,2),X=m(b(st),2);ni(X,21,()=>V,Vi,(Fe,Ft)=>{var Yt=DD(),qt=b(Yt),Qt=m(qt);H(re=>{hl(qt,re),N(Qt,` ${c(Ft)??""}`)},[()=>c(te).has(c(Ft))]),z("change",qt,()=>{const re=new Set(c(te));re.has(c(Ft))?re.delete(c(Ft)):re.add(c(Ft)),v(te,re,!0)}),I(Fe,Yt)});var ae=m(ce,2),me=m(b(ae),2),Ze=b(me),Zt=b(Ze),bt=m(b(Zt),2),We=b(bt);We.value=We.__value="";var At=m(We);At.value=At.__value="true";var ai=m(At);ai.value=ai.__value="false";var zt=m(Ze,2),vi=b(zt),hi=m(b(vi),2),Ci=b(hi);Ci.value=Ci.__value="";var zi=m(Ci);zi.value=zi.__value="true";var $e=m(zi);$e.value=$e.__value="false",Ht(Bt,()=>c(f),Fe=>v(f,Fe)),Ht(Bi,()=>c(x),Fe=>v(x,Fe)),Ht(Ki,()=>c(g),Fe=>v(g,Fe)),Ht($i,()=>c(p),Fe=>v(p,Fe)),Ht(Kt,()=>c(w),Fe=>v(w,Fe)),Ht(Li,()=>c(y),Fe=>v(y,Fe)),Ht(Ue,()=>c(k),Fe=>v(k,Fe)),ys(_t,()=>c(D),Fe=>v(D,Fe)),ys(bt,()=>c(M),Fe=>v(M,Fe)),ys(hi,()=>c(F),Fe=>v(F,Fe)),I(he,Xe)};O(ft,he=>{c(t)&&he(ht)})}H(()=>{ot.disabled=c(n),N(Pt,c(n)?"Saving…":"Save"),Oe.disabled=c(a),N(Mt,c(a)?"Reloading…":"Apply & Reload")}),z("click",ot,ue),z("click",Oe,He),I(o,dt),Ps()}zs(["click","change"]);var tl=T('<div class="err svelte-9auejo"> </div>'),mJ=T('<div class="info-card svelte-9auejo"><dl class="svelte-9auejo"><dt class="svelte-9auejo">CN</dt><dd class="svelte-9auejo"> </dd> <dt class="svelte-9auejo">Fingerprint (SHA-256)</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Expires</dt><dd> </dd></dl></div>'),vJ=T('<div class="empty svelte-9auejo">No managed server certificate. Use one of the options above, or configure <code>certfile</code>/<code>keyfile</code> manually in the Listeners tab.</div>'),bJ=T('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),yJ=T('<tr><td class="mono svelte-9auejo"> </td><td class="mono small svelte-9auejo"> </td><td> </td><td class="actions svelte-9auejo"><button class="danger svelte-9auejo">✕</button></td></tr>'),wJ=T('<table class="svelte-9auejo"><thead><tr><th class="svelte-9auejo">CN</th><th class="svelte-9auejo">Fingerprint</th><th class="svelte-9auejo">Expires</th><th class="svelte-9auejo"></th></tr></thead><tbody></tbody></table>'),SJ=T('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Certificate installed.</p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd><dt class="svelte-9auejo">Expires</dt><dd class="svelte-9auejo"> </dd></dl></div>'),TD=T('<button class="btn-primary svelte-9auejo"> </button>'),CJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate self-signed server certificate</h3> <label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Validity (days)<input type="number" min="1" max="3650" class="svelte-9auejo"/></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div></div></div>'),xJ=T('<label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <p class="hint svelte-9auejo">A private key and CSR are generated on the server. Copy the CSR, have it signed by your CA, then paste the signed cert below.</p> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),kJ=T('<div class="ok svelte-9auejo">✓ Certificate installed.</div>'),LJ=T('<p class="hint svelte-9auejo">Key stored on server. Copy the CSR, get it signed, then paste the signed certificate to complete installation.</p> <label class="svelte-9auejo">Certificate Signing Request<textarea readonly="" rows="8" class="svelte-9auejo"></textarea></label> <div class="csr-actions svelte-9auejo"><button class="svelte-9auejo">Copy CSR</button> <a class="btn-download svelte-9auejo" download="server.csr">Download .csr</a></div> <hr class="svelte-9auejo"/> <label class="svelte-9auejo">Upload signed certificate (PEM)<textarea rows="6" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div>',1),IJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Generate key + CSR for server certificate</h3> <!></div></div>'),EJ=T('<label class="svelte-9auejo">Certificate (PEM)<textarea rows="5" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <label class="svelte-9auejo">Private key (PEM — leave blank if key is already on disk from a prior CSR)<textarea rows="4" placeholder="-----BEGIN PRIVATE KEY----- … -----END PRIVATE KEY-----" class="svelte-9auejo"></textarea></label>',1),DJ=T('<span class="file-name mono small svelte-9auejo"> </span>'),TJ=T('<label class="svelte-9auejo">PKCS#12 file <div class="file-row svelte-9auejo"><input type="file" accept=".p12,.pfx" class="svelte-9auejo"/> <!></div></label> <label class="svelte-9auejo">Passphrase <div class="pw-row svelte-9auejo"><input autocomplete="off" class="svelte-9auejo"/> <button class="toggle-pw svelte-9auejo"> </button></div></label>',1),PJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Import server certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>PEM files</button> <button>PKCS#12 (.p12 / .pfx)</button></div> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),yS=T("<option></option>"),MJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Use existing certificate files</h3> <p class="hint svelte-9auejo">Enter absolute paths on the broker host. Tab-completion is available for paths starting with /.</p> <label class="svelte-9auejo">Certificate file path <input list="set-cert-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/fullchain.pem" class="svelte-9auejo"/> <datalist id="set-cert-path-list"></datalist></label> <label class="svelte-9auejo">Private key file path <input list="set-key-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/privkey.pem" class="svelte-9auejo"/> <datalist id="set-key-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),RJ=T('<label class="svelte-9auejo">CA certificate (PEM)<textarea rows="8" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),NJ=T('<p class="hint svelte-9auejo">Enter the absolute path to the CA certificate file on the broker host.</p> <label class="svelte-9auejo">CA certificate path <input list="trusted-path-list" placeholder="/etc/ssl/certs/my-ca.pem" class="svelte-9auejo"/> <datalist id="trusted-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),AJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Add trusted CA certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>Paste PEM</button> <button>From path</button></div> <!></div></div>'),OJ=T('<div class="certs-page svelte-9auejo"><div class="page-toolbar svelte-9auejo"><button class="reload-btn svelte-9auejo" title="Refresh">↺</button></div> <!> <!> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Server Certificate</h3> <button class="svelte-9auejo">Self-signed</button> <button class="svelte-9auejo">Generate CSR</button> <button class="svelte-9auejo">Import cert</button> <button class="svelte-9auejo">Use path</button></div> <!></div> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Trusted CA Certificates</h3> <button class="svelte-9auejo">+ Add CA cert</button></div> <!></div></div> <!> <!> <!> <!> <!>',1);function FJ(o,e){Ts(e,!0);let t=P(null),i=P(yi([])),n=P(""),s=P(""),r=P(!1),a=P(""),d=P(""),u=P(365),f=P(!1),g=P(""),p=P(null),w=P(!1),y=P(""),x=P(""),k=P(!1),D=P(""),M=P(""),F=P(""),K=P(!1),V=P(""),se=P(!1),te=P(!1),pe=P("pem"),je=P(""),Ke=P(""),ue=P(""),He=P(""),dt=P(""),we=P(!1),gt=P(!1),ot=P(""),Pt=P(!1),Oe=P(""),Mt=P(""),et=P(!1),ct=P(""),Nt=P(yi([])),ti=P(yi([])),ri=P(!1),Vt=P("pem"),Me=P(""),jt=P(!1),ft=P(""),ht=P(""),he=P(yi([])),Xe=P(!1),Ut=P("");async function wi(){try{const[$e,Fe]=await Promise.allSettled([Cq(),Lq()]);$e.status==="fulfilled"&&v(t,$e.value.server,!0),Fe.status==="fulfilled"&&v(i,Fe.value.certs,!0),v(n,"")}catch($e){v(n,$e.message,!0)}}Bs(()=>{wi()});async function Ri(){v(g,""),v(f,!0),v(p,null);try{const $e=c(d).split(",").map(Ft=>Ft.trim()).filter(Boolean),Fe=await xq({cn:c(a),san:$e,days:c(u)});v(p,{fingerprint:Fe.fingerprint,expires:Fe.expires},!0),await wi()}catch($e){v(g,$e.message,!0)}finally{v(f,!1)}}async function ci(){v(D,""),v(k,!0),v(M,"");try{const $e=c(x).split(",").map(Ft=>Ft.trim()).filter(Boolean),Fe=await kq({cn:c(y),san:$e});v(M,Fe.csrPem,!0)}catch($e){v(D,$e.message,!0)}finally{v(k,!1)}}async function Bt(){v(V,""),v(K,!0),v(se,!1);try{if(!c(F).trim())throw new Error("Paste the signed certificate PEM");await _S({cert:c(F)}),v(se,!0),await wi()}catch($e){v(V,$e.message,!0)}finally{v(K,!1)}}function Xt(){navigator.clipboard.writeText(c(M)).catch(()=>{})}function pt($e){var Yt;const Fe=(Yt=$e.target.files)==null?void 0:Yt[0];if(!Fe)return;v(He,Fe.name,!0);const Ft=new FileReader;Ft.onload=()=>{const qt=Ft.result;v(ue,btoa(String.fromCharCode(...new Uint8Array(qt))),!0)},Ft.readAsArrayBuffer(Fe)}async function Bi(){v(ot,""),v(gt,!0);try{if(c(pe)==="p12"){if(!c(ue))throw new Error("Select a .p12 / .pfx file");await _S({p12base64:c(ue),passphrase:c(dt)})}else{if(!c(je).trim())throw new Error("Certificate PEM is required");await _S({cert:c(je),key:c(Ke)||void 0})}v(te,!1),await wi()}catch($e){v(ot,$e.message,!0)}finally{v(gt,!1)}}function Ti($e){let Fe;return Ft=>{const Yt=Ft.target.value;clearTimeout(Fe),Fe=setTimeout(async()=>{if(!Yt.startsWith("/")||Yt.length<2){$e([]);return}try{$e((await Dq(Yt)).suggestions)}catch{$e([])}},280)}}const Ni=Ti($e=>{v(Nt,$e,!0)}),Ki=Ti($e=>{v(ti,$e,!0)}),Ai=Ti($e=>{v(he,$e,!0)});async function Di(){v(ct,""),v(et,!0);try{await Tq({certPath:c(Oe),keyPath:c(Mt)}),v(Pt,!1),await wi()}catch($e){v(ct,$e.message,!0)}finally{v(et,!1)}}async function $i(){v(ft,""),v(jt,!0);try{await Iq(c(Me)),v(Me,""),v(ri,!1),await wi()}catch($e){v(ft,$e.message,!0)}finally{v(jt,!1)}}async function Gi(){v(Ut,""),v(Xe,!0);try{await Pq(c(ht)),v(ht,""),v(ri,!1),await wi()}catch($e){v(Ut,$e.message,!0)}finally{v(Xe,!1)}}async function Ui($e){if(confirm("Remove this trusted CA cert?"))try{await Eq($e),await wi()}catch(Fe){v(s,Fe.message,!0)}}function mn($e){const Fe=new Date($e).getTime()-Date.now();return Fe<0?"expired":Fe<30*864e5?"expiring":""}function rt($e){return new Date($e).toLocaleDateString()}var Kt=OJ(),_i=xt(Kt),Pi=b(_i),Li=b(Pi),Si=m(Pi,2);{var Oi=$e=>{var Fe=tl(),Ft=b(Fe);H(()=>N(Ft,c(n))),I($e,Fe)};O(Si,$e=>{c(n)&&$e(Oi)})}var qi=m(Si,2);{var mi=$e=>{var Fe=tl(),Ft=b(Fe);H(()=>N(Ft,c(s))),I($e,Fe)};O(qi,$e=>{c(s)&&$e(mi)})}var Ue=m(qi,2),J=b(Ue),Qe=m(b(J),2),_t=m(Qe,2),yt=m(_t,2),Ot=m(yt,2),j=m(J,2);{var ce=$e=>{var Fe=mJ(),Ft=b(Fe),Yt=m(b(Ft)),qt=b(Yt),Qt=m(Yt,3),re=b(Qt),Ge=m(Qt,3),wt=b(Ge);H((vt,di)=>{N(qt,c(t).cn),N(re,c(t).fingerprint),kt(Ge,1,vt,"svelte-9auejo"),N(wt,di)},[()=>Kg(mn(c(t).expires)),()=>rt(c(t).expires)]),I($e,Fe)},ke=$e=>{var Fe=vJ();I($e,Fe)};O(j,$e=>{c(t)?$e(ce):$e(ke,-1)})}var ze=m(Ue,2),st=b(ze),X=m(b(st),2),ae=m(st,2);{var me=$e=>{var Fe=bJ();I($e,Fe)},Ze=$e=>{var Fe=wJ(),Ft=m(b(Fe));ni(Ft,21,()=>c(i),Vi,(Yt,qt)=>{var Qt=yJ(),re=b(Qt),Ge=b(re),wt=m(re),vt=b(wt),di=m(wt),It=b(di),Ii=m(di),W=b(Ii);H((Q,oe,$)=>{N(Ge,c(qt).cn),N(vt,`${Q??""}…`),kt(di,1,oe,"svelte-9auejo"),N(It,$)},[()=>c(qt).fingerprint.slice(0,29),()=>Kg(mn(c(qt).expires)),()=>rt(c(qt).expires)]),z("click",W,()=>Ui(c(qt).fingerprint)),I(Yt,Qt)}),I($e,Fe)};O(ae,$e=>{c(i).length===0?$e(me):$e(Ze,-1)})}var Zt=m(_i,2);{var bt=$e=>{var Fe=CJ(),Ft=b(Fe),Yt=m(b(Ft),2),qt=m(b(Yt)),Qt=m(Yt,2),re=m(b(Qt)),Ge=m(Qt,2),wt=m(b(Ge)),vt=m(Ge,2);{var di=A=>{var G=tl(),ie=b(G);H(()=>N(ie,c(g))),I(A,G)};O(vt,A=>{c(g)&&A(di)})}var It=m(vt,2);{var Ii=A=>{var G=SJ(),ie=m(b(G),2),fe=m(b(ie)),Y=b(fe),le=m(fe,2),Re=b(le);H(_e=>{N(Y,c(p).fingerprint),N(Re,_e)},[()=>rt(c(p).expires)]),I(A,G)};O(It,A=>{c(p)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2);{var $=A=>{var G=TD(),ie=b(G);H(()=>{G.disabled=c(f),N(ie,c(f)?"Generating…":"Generate")}),z("click",G,Ri),I(A,G)};O(oe,A=>{c(p)||A($)})}Ht(qt,()=>c(a),A=>v(a,A)),Ht(re,()=>c(d),A=>v(d,A)),Ht(wt,()=>c(u),A=>v(u,A)),z("click",Q,()=>v(r,!1)),I($e,Fe)};O(Zt,$e=>{c(r)&&$e(bt)})}var We=m(Zt,2);{var At=$e=>{var Fe=IJ(),Ft=b(Fe),Yt=m(b(Ft),2);{var qt=re=>{var Ge=xJ(),wt=xt(Ge),vt=m(b(wt)),di=m(wt,2),It=m(b(di)),Ii=m(di,4);{var W=G=>{var ie=tl(),fe=b(ie);H(()=>N(fe,c(D))),I(G,ie)};O(Ii,G=>{c(D)&&G(W)})}var Q=m(Ii,2),oe=b(Q),$=m(oe,2),A=b($);H(()=>{$.disabled=c(k),N(A,c(k)?"Generating…":"Generate key + CSR")}),Ht(vt,()=>c(y),G=>v(y,G)),Ht(It,()=>c(x),G=>v(x,G)),z("click",oe,()=>v(w,!1)),z("click",$,ci),I(re,Ge)},Qt=re=>{var Ge=LJ(),wt=m(xt(Ge),2),vt=m(b(wt)),di=m(wt,2),It=b(di),Ii=m(It,2),W=m(di,4),Q=m(b(W)),oe=m(W,2);{var $=Re=>{var _e=tl(),ge=b(_e);H(()=>N(ge,c(V))),I(Re,_e)};O(oe,Re=>{c(V)&&Re($)})}var A=m(oe,2);{var G=Re=>{var _e=kJ();I(Re,_e)};O(A,Re=>{c(se)&&Re(G)})}var ie=m(A,2),fe=b(ie),Y=m(fe,2);{var le=Re=>{var _e=TD(),ge=b(_e);H(tt=>{_e.disabled=tt,N(ge,c(K)?"Uploading…":"Upload signed cert")},[()=>c(K)||!c(F).trim()]),z("click",_e,Bt),I(Re,_e)};O(Y,Re=>{c(se)||Re(le)})}H(Re=>{YS(vt,c(M)),ln(Ii,"href",`data:application/pkcs10;charset=utf-8,${Re??""}`)},[()=>encodeURIComponent(c(M))]),z("click",It,Xt),Ht(Q,()=>c(F),Re=>v(F,Re)),z("click",fe,()=>v(w,!1)),I(re,Ge)};O(Yt,re=>{c(M)?re(Qt,-1):re(qt)})}I($e,Fe)};O(We,$e=>{c(w)&&$e(At)})}var ai=m(We,2);{var zt=$e=>{var Fe=PJ(),Ft=b(Fe),Yt=m(b(Ft),2),qt=b(Yt);let Qt;var re=m(qt,2);let Ge;var wt=m(Yt,2);{var vt=A=>{var G=EJ(),ie=xt(G),fe=m(b(ie)),Y=m(ie,2),le=m(b(Y));Ht(fe,()=>c(je),Re=>v(je,Re)),Ht(le,()=>c(Ke),Re=>v(Ke,Re)),I(A,G)},di=A=>{var G=TJ(),ie=xt(G),fe=m(b(ie)),Y=b(fe),le=m(Y,2);{var Re=Le=>{var Ve=DJ(),De=b(Ve);H(()=>N(De,c(He))),I(Le,Ve)};O(le,Le=>{c(He)&&Le(Re)})}var _e=m(ie,2),ge=m(b(_e)),tt=b(ge),U=m(tt,2),ne=b(U);H(()=>{ln(tt,"type",c(we)?"text":"password"),N(ne,c(we)?"Hide":"Show")}),z("change",Y,pt),Ht(tt,()=>c(dt),Le=>v(dt,Le)),z("click",U,()=>v(we,!c(we))),I(A,G)};O(wt,A=>{c(pe)==="pem"?A(vt):A(di,-1)})}var It=m(wt,2);{var Ii=A=>{var G=tl(),ie=b(G);H(()=>N(ie,c(ot))),I(A,G)};O(It,A=>{c(ot)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2),$=b(oe);H(()=>{Qt=kt(qt,1,"svelte-9auejo",null,Qt,{active:c(pe)==="pem"}),Ge=kt(re,1,"svelte-9auejo",null,Ge,{active:c(pe)==="p12"}),oe.disabled=c(gt),N($,c(gt)?"Importing…":"Import")}),z("click",qt,()=>v(pe,"pem")),z("click",re,()=>v(pe,"p12")),z("click",Q,()=>v(te,!1)),z("click",oe,Bi),I($e,Fe)};O(ai,$e=>{c(te)&&$e(zt)})}var vi=m(ai,2);{var hi=$e=>{var Fe=MJ(),Ft=b(Fe),Yt=m(b(Ft),4),qt=m(b(Yt)),Qt=m(qt,2);ni(Qt,21,()=>c(Nt),Vi,(oe,$)=>{var A=yS(),G={};H(()=>{G!==(G=c($))&&(A.value=(A.__value=c($))??"")}),I(oe,A)});var re=m(Yt,2),Ge=m(b(re)),wt=m(Ge,2);ni(wt,21,()=>c(ti),Vi,(oe,$)=>{var A=yS(),G={};H(()=>{G!==(G=c($))&&(A.value=(A.__value=c($))??"")}),I(oe,A)});var vt=m(re,2);{var di=oe=>{var $=tl(),A=b($);H(()=>N(A,c(ct))),I(oe,$)};O(vt,oe=>{c(ct)&&oe(di)})}var It=m(vt,2),Ii=b(It),W=m(Ii,2),Q=b(W);H(oe=>{W.disabled=oe,N(Q,c(et)?"Installing…":"Install")},[()=>c(et)||!c(Oe).trim()||!c(Mt).trim()]),z("input",qt,Ni),Ht(qt,()=>c(Oe),oe=>v(Oe,oe)),z("input",Ge,Ki),Ht(Ge,()=>c(Mt),oe=>v(Mt,oe)),z("click",Ii,()=>v(Pt,!1)),z("click",W,Di),I($e,Fe)};O(vi,$e=>{c(Pt)&&$e(hi)})}var Ci=m(vi,2);{var zi=$e=>{var Fe=AJ(),Ft=b(Fe),Yt=m(b(Ft),2),qt=b(Yt);let Qt;var re=m(qt,2);let Ge;var wt=m(Yt,2);{var vt=It=>{var Ii=RJ(),W=xt(Ii),Q=m(b(W)),oe=m(W,2);{var $=Y=>{var le=tl(),Re=b(le);H(()=>N(Re,c(ft))),I(Y,le)};O(oe,Y=>{c(ft)&&Y($)})}var A=m(oe,2),G=b(A),ie=m(G,2),fe=b(ie);H(Y=>{ie.disabled=Y,N(fe,c(jt)?"Adding…":"Add CA cert")},[()=>c(jt)||!c(Me).trim()]),Ht(Q,()=>c(Me),Y=>v(Me,Y)),z("click",G,()=>v(ri,!1)),z("click",ie,$i),I(It,Ii)},di=It=>{var Ii=NJ(),W=m(xt(Ii),2),Q=m(b(W)),oe=m(Q,2);ni(oe,21,()=>c(he),Vi,(le,Re)=>{var _e=yS(),ge={};H(()=>{ge!==(ge=c(Re))&&(_e.value=(_e.__value=c(Re))??"")}),I(le,_e)});var $=m(W,2);{var A=le=>{var Re=tl(),_e=b(Re);H(()=>N(_e,c(Ut))),I(le,Re)};O($,le=>{c(Ut)&&le(A)})}var G=m($,2),ie=b(G),fe=m(ie,2),Y=b(fe);H(le=>{fe.disabled=le,N(Y,c(Xe)?"Adding…":"Add CA cert")},[()=>c(Xe)||!c(ht).trim()]),z("input",Q,Ai),Ht(Q,()=>c(ht),le=>v(ht,le)),z("click",ie,()=>v(ri,!1)),z("click",fe,Gi),I(It,Ii)};O(wt,It=>{c(Vt)==="pem"?It(vt):It(di,-1)})}H(()=>{Qt=kt(qt,1,"svelte-9auejo",null,Qt,{active:c(Vt)==="pem"}),Ge=kt(re,1,"svelte-9auejo",null,Ge,{active:c(Vt)==="path"})}),z("click",qt,()=>v(Vt,"pem")),z("click",re,()=>v(Vt,"path")),I($e,Fe)};O(Ci,$e=>{c(ri)&&$e(zi)})}z("click",Li,wi),z("click",Qe,()=>{v(r,!0),v(g,""),v(p,null)}),z("click",_t,()=>{v(w,!0),v(D,""),v(M,""),v(F,""),v(se,!1),v(V,"")}),z("click",yt,()=>{v(te,!0),v(ot,""),v(pe,"pem"),v(je,""),v(Ke,""),v(ue,""),v(He,""),v(dt,""),v(we,!1)}),z("click",Ot,()=>{v(Pt,!0),v(ct,""),v(Oe,""),v(Mt,""),v(Nt,[],!0),v(ti,[],!0)}),z("click",X,()=>{v(ri,!0),v(ft,""),v(Me,""),v(Vt,"pem"),v(Ut,""),v(ht,""),v(he,[],!0)}),I(o,Kt),Ps()}zs(["click","change","input"]);var Im=T('<div class="err svelte-17yczfe"> </div>'),HJ=T('<div class="check-list svelte-17yczfe"><div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto_ctrl</code> <span> </span></div> <div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto</code> <span> </span></div></div>'),WJ=T('<div class="checking svelte-17yczfe">Checking…</div>'),BJ=T('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Tool availability</h3> <p class="hint svelte-17yczfe">These tools must be installed and in the PATH of the she process. They are used by the Setup Wizard and cert installation.</p> <!> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div></div>'),zJ=T('<label class="svelte-17yczfe">Install command (run locally) <div class="pubkey-row svelte-17yczfe"><input readonly="" class="svelte-17yczfe"/> <button class="copy-btn svelte-17yczfe">Copy</button></div></label>'),VJ=T('<label class="svelte-17yczfe">Public key <div class="pubkey-row svelte-17yczfe"><textarea readonly="" rows="3" class="svelte-17yczfe"></textarea> <button class="copy-btn svelte-17yczfe">Copy</button></div></label> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>',1),jJ=T('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),$J=T("<span> </span>"),UJ=T('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH connection</h3> <p class="hint svelte-17yczfe">Used for file operations: reading/writing mosquitto.conf and installing certificates on the broker host. User/ACL management always uses the MQTT port directly.</p> <div class="fields svelte-17yczfe"><label class="svelte-17yczfe">Host<input placeholder="192.168.1.10 or broker.local" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Port<input type="number" min="1" max="65535" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">SSH user<input placeholder="root" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Identity file (private key)<input class="svelte-17yczfe"/></label></div></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH keypair</h3> <p class="hint svelte-17yczfe">Dedicated Ed25519 keypair for she to authenticate to the broker host. Private key stored at <code class="svelte-17yczfe"> </code>.</p> <!> <!></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Test connection</h3> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button> <!></div></div>',1),qJ=T('<div class="ok svelte-17yczfe">Saved.</div>'),GJ=T('<div class="mosquitto-page svelte-17yczfe"><!> <div class="mode-bar svelte-17yczfe"><span class="mode-label svelte-17yczfe">Connection mode</span> <div class="mode-toggle svelte-17yczfe"><button>Local</button> <button>SSH / Remote</button></div> <span class="mode-desc svelte-17yczfe"> </span></div> <!> <!> <!> <!> <div class="row svelte-17yczfe"><button class="btn-primary svelte-17yczfe"> </button></div></div>');function KJ(o,e){Ts(e,!0);let t=P(yi({})),i=P(""),n=P(!1),s=P(!1),r=P(""),a=P("~/.she/ssh/broker_id_ed25519"),d=P("local"),u=P(null),f=P(!1),g=P(""),p=P(""),w=P(!1),y=P(""),x=P(!1),k=P(""),D=P(yi({}));Bs(async()=>{try{const[he,Xe,Ut]=await Promise.all([Pl(),Tk(),fetch("/she/broker/ssh/pubkey").then(Ri=>Ri.json()).catch(()=>({publicKey:null}))]);v(D,he,!0),Xe.sshKeyDefault&&v(a,Xe.sshKeyDefault,!0);const wi=c(D).broker??{};v(t,wi.ssh??{},!0),c(t).port||(c(t).port=22),c(t).identityFile||(c(t).identityFile=c(a)),Ut.publicKey&&v(p,Ut.publicKey,!0),v(d,c(t).host?"ssh":"local",!0),c(d)==="local"&&M()}catch(he){v(i,he.message,!0)}});async function M(){v(f,!0),v(g,"");try{v(u,await tq(),!0)}catch(he){v(g,he.message??"Check failed",!0)}finally{v(f,!1)}}async function F(){v(n,!0),v(r,""),v(s,!1);try{const he=c(D).broker??{},Xe=c(d)==="local"?{...c(t),host:""}:c(t),Ut={...c(D),broker:{...he,ssh:Xe}};await Xp(Ut),v(s,!0),setTimeout(()=>v(s,!1),3e3)}catch(he){v(r,he.message,!0)}finally{v(n,!1)}}async function K(){v(w,!0),v(y,"");try{const he=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Xe=await he.json();if(!he.ok)throw new Error(Xe.error??he.statusText);v(p,Xe.publicKey,!0)}catch(he){v(y,he.message,!0)}finally{v(w,!1)}}async function V(){v(x,!0),v(k,"");try{const he=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Xe=await he.json();if(!he.ok)throw new Error(Xe.error??he.statusText);v(k,Xe.ok?"✓ Connection successful":"✗ "+(Xe.error??"Failed"),!0)}catch(he){v(k,"✗ "+he.message)}finally{v(x,!1)}}function se(he){navigator.clipboard.writeText(he).catch(()=>{})}const te=Ct(()=>c(t).identityFile&&c(t).user&&c(t).host?`ssh-copy-id -i ${c(t).identityFile}.pub ${c(t).user}@${c(t).host}`:"");var pe=GJ(),je=b(pe);{var Ke=he=>{var Xe=Im(),Ut=b(Xe);H(()=>N(Ut,c(i))),I(he,Xe)};O(je,he=>{c(i)&&he(Ke)})}var ue=m(je,2),He=m(b(ue),2),dt=b(He);let we;var gt=m(dt,2);let ot;var Pt=m(He,2),Oe=b(Pt),Mt=m(ue,2);{var et=he=>{var Xe=BJ(),Ut=m(b(Xe),4);{var wi=Ti=>{var Ni=Im(),Ki=b(Ni);H(()=>N(Ki,c(g))),I(Ti,Ni)};O(Ut,Ti=>{c(g)&&Ti(wi)})}var Ri=m(Ut,2);{var ci=Ti=>{var Ni=HJ(),Ki=b(Ni),Ai=b(Ki);let Di;var $i=b(Ai),Gi=m(Ai,4);let Ui;var mn=b(Gi),rt=m(Ki,2),Kt=b(rt);let _i;var Pi=b(Kt),Li=m(Kt,4);let Si;var Oi=b(Li);H(()=>{Di=kt(Ai,1,"check-icon svelte-17yczfe",null,Di,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),N($i,c(u).mosquittoCtrl?"✓":"✗"),Ui=kt(Gi,1,"check-note svelte-17yczfe",null,Ui,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),N(mn,c(u).mosquittoCtrl?"found in PATH":"not found — install the mosquitto or mosquitto-clients package"),_i=kt(Kt,1,"check-icon svelte-17yczfe",null,_i,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),N(Pi,c(u).mosquitto?"✓":"✗"),Si=kt(Li,1,"check-note svelte-17yczfe",null,Si,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),N(Oi,c(u).mosquitto?"found in PATH":"not found — install the mosquitto package")}),I(Ti,Ni)},Bt=Ti=>{var Ni=WJ();I(Ti,Ni)};O(Ri,Ti=>{c(u)?Ti(ci):c(f)&&Ti(Bt,1)})}var Xt=m(Ri,2),pt=b(Xt),Bi=b(pt);H(()=>{pt.disabled=c(f),N(Bi,c(f)?"Checking…":c(u)?"Re-check":"Check tools")}),z("click",pt,M),I(he,Xe)};O(Mt,he=>{c(d)==="local"&&he(et)})}var ct=m(Mt,2);{var Nt=he=>{var Xe=UJ(),Ut=xt(Xe),wi=m(b(Ut),4),Ri=b(wi),ci=m(b(Ri)),Bt=m(Ri,2),Xt=m(b(Bt)),pt=m(Bt,2),Bi=m(b(pt)),Ti=m(pt,2),Ni=m(b(Ti)),Ki=m(Ut,2),Ai=m(b(Ki),2),Di=m(b(Ai)),$i=b(Di),Gi=m(Ai,2);{var Ui=mi=>{var Ue=VJ(),J=xt(Ue),Qe=m(b(J)),_t=b(Qe),yt=m(_t,2),Ot=m(J,2);{var j=st=>{var X=zJ(),ae=m(b(X)),me=b(ae),Ze=m(me,2);H(()=>YS(me,c(te))),z("click",Ze,()=>se(c(te))),I(st,X)};O(Ot,st=>{c(te)&&st(j)})}var ce=m(Ot,2),ke=b(ce),ze=b(ke);H(()=>{YS(_t,c(p)),ke.disabled=c(w),N(ze,c(w)?"Generating…":"Regenerate keypair")}),z("click",yt,()=>se(c(p))),z("click",ke,K),I(mi,Ue)},mn=mi=>{var Ue=jJ(),J=b(Ue),Qe=b(J);H(()=>{J.disabled=c(w),N(Qe,c(w)?"Generating…":"Generate keypair")}),z("click",J,K),I(mi,Ue)};O(Gi,mi=>{c(p)?mi(Ui):mi(mn,-1)})}var rt=m(Gi,2);{var Kt=mi=>{var Ue=Im(),J=b(Ue);H(()=>N(J,c(y))),I(mi,Ue)};O(rt,mi=>{c(y)&&mi(Kt)})}var _i=m(Ki,2),Pi=m(b(_i),2),Li=b(Pi),Si=b(Li),Oi=m(Li,2);{var qi=mi=>{var Ue=$J();let J;var Qe=b(Ue);H(_t=>{J=kt(Ue,1,"test-result svelte-17yczfe",null,J,_t),N(Qe,c(k))},[()=>({ok:c(k).startsWith("✓"),fail:c(k).startsWith("✗")})]),I(mi,Ue)};O(Oi,mi=>{c(k)&&mi(qi)})}H(()=>{ln(Ni,"placeholder",c(a)),N($i,c(t).identityFile||c(a)),Li.disabled=c(x)||!c(t).host,N(Si,c(x)?"Testing…":"Test SSH connection")}),Ht(ci,()=>c(t).host,mi=>c(t).host=mi),Ht(Xt,()=>c(t).port,mi=>c(t).port=mi),Ht(Bi,()=>c(t).user,mi=>c(t).user=mi),Ht(Ni,()=>c(t).identityFile,mi=>c(t).identityFile=mi),z("click",Li,V),I(he,Xe)};O(ct,he=>{c(d)==="ssh"&&he(Nt)})}var ti=m(ct,2);{var ri=he=>{var Xe=Im(),Ut=b(Xe);H(()=>N(Ut,c(r))),I(he,Xe)};O(ti,he=>{c(r)&&he(ri)})}var Vt=m(ti,2);{var Me=he=>{var Xe=qJ();I(he,Xe)};O(Vt,he=>{c(s)&&he(Me)})}var jt=m(Vt,2),ft=b(jt),ht=b(ft);H(()=>{we=kt(dt,1,"svelte-17yczfe",null,we,{active:c(d)==="local"}),ot=kt(gt,1,"svelte-17yczfe",null,ot,{active:c(d)==="ssh"}),N(Oe,c(d)==="local"?"she and mosquitto run on the same machine — local filesystem access":"mosquitto runs on a remote host — file operations go through SSH"),ft.disabled=c(n),N(ht,c(n)?"Saving…":"Save")}),z("click",dt,()=>{v(d,"local"),c(u)||M()}),z("click",gt,()=>v(d,"ssh")),z("click",ft,F),I(o,pe),Ps()}zs(["click"]);var ZJ=T("<button> </button>"),YJ=T('<code>log_dest topic</code> is not enabled in mosquitto.conf.<br/> <span class="hint svelte-1yc29ow">Enable it in the <strong>Config</strong> tab, then click <em>Apply &amp; Reload</em>.</span>',1),XJ=T('<code>log_dest topic</code> is configured — waiting for messages&hellip;<br/> <span class="hint svelte-1yc29ow">If nothing appears, mosquitto may need a full restart for the change to take effect.</span>',1),QJ=T('Waiting for log messages&hellip;<br/> <span class="hint svelte-1yc29ow">Make sure <code class="svelte-1yc29ow">log_dest topic</code> is set in mosquitto.conf.</span>',1),JJ=T('<div class="empty svelte-1yc29ow"><!></div>'),eee=T('<div class="entry svelte-1yc29ow"><span class="ts svelte-1yc29ow"> </span> <span> </span> <span class="msg svelte-1yc29ow"> </span></div>'),tee=T('<div class="logs-page svelte-1yc29ow"><div class="toolbar svelte-1yc29ow"><div class="level-filters svelte-1yc29ow"></div> <div class="spacer svelte-1yc29ow"></div> <label class="autoscroll-label svelte-1yc29ow"><input type="checkbox"/> Auto-scroll</label> <button class="btn-clear svelte-1yc29ow">Clear</button></div> <div class="log-container svelte-1yc29ow"><!></div></div>');function iee(o,e){Ts(e,!0);const t={D:"DBG",I:"INF",N:"NTC",W:"WRN",E:"ERR"},i={D:"lvl-d",I:"lvl-i",N:"lvl-n",W:"lvl-w",E:"lvl-e"};function n(ue){const He=ue.slice(16);return He==="D"?"D":He==="I"?"I":He==="N"?"N":He==="W"?"W":He==="E"?"E":null}let s=P(yi([])),r=P(!0),a=P(yi(new Set(["D","I","N","W","E"]))),d=P(void 0),u=P(!1),f=P(null),g=null;Bs(()=>{g=cr("mqtt",ue=>{if(!ue.topic.startsWith("$SYS/broker/log/"))return;const He=n(ue.topic);He&&(v(u,!0),v(s,[...c(s).slice(-499),{ts:ue.ts,level:He,msg:ue.val}],!0),c(r)&&Gg().then(p))}),Pk().then(ue=>{const He=ue.managed.log_dest,dt=Array.isArray(He)?He:He?[He]:[];v(f,dt.includes("topic"),!0)}).catch(()=>{v(f,null)})}),x_(()=>{g==null||g()});function p(){c(d)&&(c(d).scrollTop=c(d).scrollHeight)}function w(ue){const He=new Set(c(a));He.has(ue)?He.delete(ue):He.add(ue),v(a,He,!0)}function y(){v(s,[],!0),v(u,!1)}let x=Ct(()=>c(s).filter(ue=>c(a).has(ue.level)));function k(ue){const He=new Date(ue);return He.toTimeString().slice(0,8)+"."+String(He.getMilliseconds()).padStart(3,"0")}var D=tee(),M=b(D),F=b(M);ni(F,20,()=>["D","I","N","W","E"],Vi,(ue,He)=>{var dt=ZJ();let we;var gt=b(dt);H(ot=>{we=kt(dt,1,`lvl-btn ${i[He]??""}`,"svelte-1yc29ow",we,ot),ln(dt,"title",`Toggle ${He??""} messages`),N(gt,t[He])},[()=>({active:c(a).has(He)})]),z("click",dt,()=>w(He)),I(ue,dt)});var K=m(F,4),V=b(K),se=m(K,2),te=m(M,2),pe=b(te);{var je=ue=>{var He=JJ(),dt=b(He);{var we=ot=>{var Pt=As(),Oe=xt(Pt);{var Mt=Nt=>{var ti=YJ();I(Nt,ti)},et=Nt=>{var ti=XJ();I(Nt,ti)},ct=Nt=>{var ti=QJ();I(Nt,ti)};O(Oe,Nt=>{c(f)===!1?Nt(Mt):c(f)===!0?Nt(et,1):Nt(ct,-1)})}I(ot,Pt)},gt=ot=>{var Pt=po("No messages match the current filter.");I(ot,Pt)};O(dt,ot=>{c(u)?ot(gt,-1):ot(we)})}I(ue,He)},Ke=ue=>{var He=As(),dt=xt(He);ni(dt,17,()=>c(x),we=>we.ts+we.msg,(we,gt)=>{var ot=eee(),Pt=b(ot),Oe=b(Pt),Mt=m(Pt,2),et=b(Mt),ct=m(Mt,2),Nt=b(ct);H(ti=>{N(Oe,ti),kt(Mt,1,`badge ${i[c(gt).level]??""}`,"svelte-1yc29ow"),N(et,t[c(gt).level]),N(Nt,c(gt).msg)},[()=>k(c(gt).ts)]),I(we,ot)}),I(ue,He)};O(pe,ue=>{c(x).length===0?ue(je):ue(Ke,-1)})}vs(te,ue=>v(d,ue),()=>c(d)),ms(V,()=>c(r),ue=>v(r,ue)),z("click",se,y),I(o,D),Ps()}zs(["click"]);var nee=T('<div class="err svelte-d31be1"> </div>'),see=T('<div class="step svelte-d31be1"><p class="svelte-d31be1">This wizard will configure the <strong>Mosquitto Dynamic Security plugin</strong> for use with she. It will:</p> <ul class="svelte-d31be1"><li>Create a <code class="svelte-d31be1">she-admin</code> service account with a random strong password.</li> <li>Write <code class="svelte-d31be1">dynamic-security.json</code> to your mosquitto config directory.</li> <li>Add the <code class="svelte-d31be1">plugin</code> line to <code class="svelte-d31be1">mosquitto.conf</code>.</li> <li>Ask you to restart mosquitto to activate the plugin.</li></ul> <p class="hint svelte-d31be1">In <strong>remote mode</strong> (SSH host configured), <code class="svelte-d31be1">mosquitto_ctrl</code> is invoked on the broker host via SSH. In local mode, it must be installed on this machine. <code class="svelte-d31be1">mosquitto_ctrl</code> is part of the <code class="svelte-d31be1">mosquitto</code> package.</p> <div class="actions svelte-d31be1"><button class="svelte-d31be1">Start</button></div></div>'),oee=T('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),ree=T('<div class="step svelte-d31be1"><p class="svelte-d31be1">dynsec is not yet active. Configure bootstrap settings:</p> <label class="svelte-d31be1">Admin username<input class="svelte-d31be1"/></label> <label class="svelte-d31be1">Admin password<input type="password" placeholder="(leave blank to auto-generate)" class="svelte-d31be1"/></label> <label class="svelte-d31be1">Mosquitto config directory<input class="svelte-d31be1"/></label> <div class="actions svelte-d31be1"><button class="svelte-d31be1"> </button></div></div>'),aee=T('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),lee=T(`<div class="step svelte-d31be1"><div class="ok-banner svelte-d31be1">✓ dynsec files written and credentials saved.</div> <p class="svelte-d31be1">The <code class="svelte-d31be1">plugin</code> line has been added to <code class="svelte-d31be1"> </code>.</p> <p class="svelte-d31be1">Enabling a new plugin requires a <strong>full mosquitto restart</strong> (not just SIGHUP):</p> <div class="actions svelte-d31be1"><button class="btn-warn svelte-d31be1"> </button> <button class="skip-step svelte-d31be1">Skip (I'll restart manually)</button></div> <!></div>`),cee=T('<div class="step svelte-d31be1"><div class="ok-banner svelte-d31be1">✓ dynsec is configured and connected.</div> <p class="svelte-d31be1">she is now managing broker users and ACLs via the Dynamic Security plugin. You can use the <strong>Users & Roles</strong> tab to add users, create roles, and define ACL rules.</p> <div class="actions svelte-d31be1"><button class="btn-primary svelte-d31be1">Done</button></div></div>'),dee=T('<div class="step svelte-d31be1"><p class="svelte-d31be1">Enter the credentials of an existing dynsec admin account:</p> <label class="svelte-d31be1">Admin username<input class="svelte-d31be1"/></label> <label class="svelte-d31be1">Admin password<input type="password" class="svelte-d31be1"/></label> <div class="actions svelte-d31be1"><button class="svelte-d31be1">Back</button> <button class="btn-primary svelte-d31be1"> </button></div></div>'),uee=T('<div class="wizard svelte-d31be1"><div class="wizard-header svelte-d31be1"><h3 class="svelte-d31be1">dynsec Setup Wizard</h3> <button class="skip-btn svelte-d31be1">Manual setup instead</button></div> <!> <!></div>');function hee(o,e){Ts(e,!0);let t=P("intro"),i=P(""),n=P(!1),s=P("she-admin"),r=P(""),a=P("/etc/mosquitto"),d=P(null),u=P(!1),f=P(!1),g=P("she-admin"),p=P(""),w=P(!1);async function y(){v(n,!0),v(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?v(t,"done"):v(t,"config")}catch(we){v(i,we.message,!0)}finally{v(n,!1)}}async function x(){v(n,!0),v(i,"");try{const we=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:c(s),adminPassword:c(r)||void 0,configDir:c(a)})}),gt=await we.json();if(!we.ok||!gt.ok)throw new Error(gt.error??"Bootstrap failed");v(d,gt,!0);const ot=await Pl(),Pt=ot.broker??{};await Xp({...ot,broker:{...Pt,dynsec:{adminUsername:gt.adminUsername,adminPassword:gt.adminPassword}}}),await oq().catch(()=>{}),v(t,"restart")}catch(we){v(i,we.message,!0)}finally{v(n,!1)}}async function k(){v(f,!0),v(i,"");try{await nq(),await new Promise(we=>setTimeout(we,2e3)),v(u,!0),v(t,"done")}catch(we){v(i,we.message,!0)}finally{v(f,!1)}}async function D(){v(w,!0),v(i,"");try{const we=await Pl(),gt=we.broker??{};await Xp({...we,broker:{...gt,dynsec:{adminUsername:c(g),adminPassword:c(p)}}}),v(t,"done")}catch(we){v(i,we.message,!0)}finally{v(w,!1)}}var M=uee(),F=b(M),K=m(b(F),2),V=m(F,2);{var se=we=>{var gt=nee(),ot=b(gt);H(()=>N(ot,c(i))),I(we,gt)};O(V,we=>{c(i)&&we(se)})}var te=m(V,2);{var pe=we=>{var gt=see(),ot=m(b(gt),6),Pt=b(ot);H(()=>Pt.disabled=c(n)),z("click",Pt,()=>{v(t,"probe"),y()}),I(we,gt)},je=we=>{var gt=oee(),ot=b(gt),Pt=b(ot);H(()=>N(Pt,c(n)?"Probing dynsec…":"Checking dynsec status…")),I(we,gt)},Ke=we=>{var gt=ree(),ot=m(b(gt),2),Pt=m(b(ot)),Oe=m(ot,2),Mt=m(b(Oe)),et=m(Oe,2),ct=m(b(et)),Nt=m(et,2),ti=b(Nt),ri=b(ti);H(()=>{ti.disabled=c(n)||!c(s),N(ri,c(n)?"Bootstrapping…":"Bootstrap dynsec")}),Ht(Pt,()=>c(s),Vt=>v(s,Vt)),Ht(Mt,()=>c(r),Vt=>v(r,Vt)),Ht(ct,()=>c(a),Vt=>v(a,Vt)),z("click",ti,x),I(we,gt)},ue=we=>{var gt=lee(),ot=m(b(gt),2),Pt=m(b(ot),3),Oe=b(Pt),Mt=m(ot,4),et=b(Mt),ct=b(et),Nt=m(et,2),ti=m(Mt,2);{var ri=Vt=>{var Me=aee();I(Vt,Me)};O(ti,Vt=>{c(f)&&Vt(ri)})}H(()=>{N(Oe,c(d).confFilePath),et.disabled=c(f),N(ct,c(f)?"Restarting…":"Restart mosquitto now")}),z("click",et,k),z("click",Nt,()=>{v(t,"done")}),I(we,gt)},He=we=>{var gt=cee(),ot=m(b(gt),4),Pt=b(ot);z("click",Pt,function(...Oe){var Mt;(Mt=e.onDone)==null||Mt.apply(this,Oe)}),I(we,gt)},dt=we=>{var gt=dee(),ot=m(b(gt),2),Pt=m(b(ot)),Oe=m(ot,2),Mt=m(b(Oe)),et=m(Oe,2),ct=b(et),Nt=m(ct,2),ti=b(Nt);H(()=>{Nt.disabled=c(w)||!c(g)||!c(p),N(ti,c(w)?"Saving…":"Save credentials")}),Ht(Pt,()=>c(g),ri=>v(g,ri)),Ht(Mt,()=>c(p),ri=>v(p,ri)),z("click",ct,()=>v(t,"intro")),z("click",Nt,D),I(we,gt)};O(te,we=>{c(t)==="intro"?we(pe):c(t)==="probe"?we(je,1):c(t)==="config"?we(Ke,2):c(t)==="restart"&&c(d)?we(ue,3):c(t)==="done"?we(He,4):c(t)==="manual"&&we(dt,5)})}z("click",K,()=>v(t,"manual")),I(o,M),Ps()}zs(["click"]);var fee=T('<div class="loading svelte-zuhcpo">Loading…</div>'),gee=T('<div class="error-banner svelte-zuhcpo"> </div>'),pee=T('<div class="conn-row svelte-zuhcpo"><span></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span><!></span> <button class="btn-deactivate svelte-zuhcpo"> </button></div>'),_ee=T('<button class="btn-wizard-inline svelte-zuhcpo">Setup Wizard ↗</button>'),mee=T('<div class="conn-row svelte-zuhcpo"><span class="dot dot-off svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span class="conn-detail muted svelte-zuhcpo">not configured</span> <!></div>'),vee=T('<div class="error-inline svelte-zuhcpo"> </div>'),bee=T('<button class="diag-btn svelte-zuhcpo"> </button>'),PD=T('<p class="diag-issue svelte-zuhcpo"> </p>'),yee=T('<p class="diag-ok-msg svelte-zuhcpo">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),wee=T('<p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">File</span><code class="svelte-zuhcpo"> </code></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Admin user exists</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Has admin role</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">$CONTROL publish ACL</span><span> </span></p> <!> <!>',1),See=T('<div><!></div> <button class="diag-btn svelte-zuhcpo" style="margin-top:6px"> </button>',1),Cee=T('<button class="wizard-btn svelte-zuhcpo">Run Setup Wizard</button>'),xee=T('<div class="diag-area svelte-zuhcpo"><!> <!></div>'),kee=T('<div class="stats-block svelte-zuhcpo"><dl class="svelte-zuhcpo"><dt class="svelte-zuhcpo">Version</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Uptime</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Clients</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Messages</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Topics</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Traffic</dt><dd class="svelte-zuhcpo"> </dd></dl></div>'),Lee=T('<div style="margin-top: 20px;"><!></div>'),Iee=T('<div class="status-layout svelte-zuhcpo"><div class="conn-block svelte-zuhcpo"><div class="conn-row svelte-zuhcpo"><span class="dot ok svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">mosquitto</span> <span class="conn-detail svelte-zuhcpo"> </span></div> <!> <!></div> <!> <!></div> <!>',1),Eee=T('<div class="tab-content svelte-zuhcpo"><!></div>'),Dee=T('<div class="broker-page svelte-zuhcpo"><div class="sub-nav svelte-zuhcpo"><button>Status</button> <button>Directory</button> <button>Config</button> <button>Listeners</button> <button>Certificates</button> <button>Connection</button> <button>Logs</button></div> <!></div> <!>',1);function Tee(o,e){Ts(e,!0);let t=P(!1),i,n=P(!1),s=P(""),r=P(!1),a=P(null);const d="she-broker-tab";let u=P(yi(localStorage.getItem(d)??"status"));Vn(()=>{localStorage.setItem(d,c(u))});let f=P(null),g=P(""),p=P(!0);async function w(){try{v(f,await Tk(),!0),v(g,"")}catch(ht){v(g,ht.message??"Failed to load broker status",!0)}finally{v(p,!1)}}Bs(()=>{w();const ht=setInterval(w,1e4);return()=>clearInterval(ht)});async function y(){v(r,!0),v(a,null);try{v(a,await rq(),!0)}catch(ht){v(a,{ok:!1,dynSecPath:"",issues:[ht.message??"Diagnose request failed"]},!0)}finally{v(r,!1)}}async function x(){if(await i.show("Remove dynsec plugin lines from mosquitto.conf and clear credentials? You will need to restart mosquitto afterwards.",{confirm:"Deactivate",danger:!0})){v(n,!0),v(s,"");try{await sq(),await w()}catch(ht){v(s,ht.message??"Deactivate failed",!0)}finally{v(n,!1)}}}function k(ht){var Xe;if(!((Xe=c(f))!=null&&Xe.sys))return"—";const he=c(f).sys[ht];return he?String(he.val??"—"):"—"}function D(ht){if(ht==="—")return ht;const he=ht.match(/^(\d+)/),Xe=he?parseInt(he[1]):NaN;if(isNaN(Xe))return ht;const Ut=Math.floor(Xe/86400),wi=Math.floor(Xe%86400/3600),Ri=Math.floor(Xe%3600/60),ci=Xe%60,Bt=Xt=>String(Xt).padStart(2,"0");return Ut>0?`${Ut}d ${Bt(wi)}:${Bt(Ri)}:${Bt(ci)}`:`${Bt(wi)}:${Bt(Ri)}:${Bt(ci)}`}function M(ht){if(ht==="—")return ht;const he=parseInt(ht);return isNaN(he)?ht:he<1024?`${he} B`:he<1048576?`${(he/1024).toFixed(1)} KB`:he<1073741824?`${(he/1048576).toFixed(1)} MB`:`${(he/1073741824).toFixed(1)} GB`}var F=Dee(),K=xt(F),V=b(K),se=b(V);let te;var pe=m(se,2);let je;var Ke=m(pe,2);let ue;var He=m(Ke,2);let dt;var we=m(He,2);let gt;var ot=m(we,2);let Pt;var Oe=m(ot,2);let Mt;var et=m(V,2);{var ct=ht=>{var he=Eee(),Xe=b(he);{var Ut=ci=>{var Bt=fee();I(ci,Bt)},wi=ci=>{var Bt=gee(),Xt=b(Bt);H(()=>N(Xt,c(g))),I(ci,Bt)},Ri=ci=>{var Bt=Iee(),Xt=xt(Bt),pt=b(Xt),Bi=b(pt),Ti=m(b(Bi),4),Ni=b(Ti),Ki=m(Bi,2);{var Ai=Si=>{var Oi=pee(),qi=b(Oi);let mi;var Ue=m(qi,4);let J;var Qe=b(Ue);{var _t=ke=>{var ze=po("plugin active");I(ke,ze)},yt=ke=>{var ze=po("connected — plugin not responding");I(ke,ze)},Ot=ke=>{var ze=po("disconnected");I(ke,ze)};O(Qe,ke=>{c(f).dynsec.dynsecReady?ke(_t):c(f).dynsec.connected?ke(yt,1):ke(Ot,-1)})}var j=m(Ue,2),ce=b(j);H(()=>{mi=kt(qi,1,"dot svelte-zuhcpo",null,mi,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,"dot-err":!c(f).dynsec.connected}),J=kt(Ue,1,"conn-detail svelte-zuhcpo",null,J,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,err:!c(f).dynsec.connected}),j.disabled=c(n),N(ce,c(n)?"…":"deactivate")}),z("click",j,x),I(Si,Oi)},Di=Si=>{var Oi=mee(),qi=m(b(Oi),6);{var mi=Ue=>{var J=_ee();z("click",J,()=>v(t,!0)),I(Ue,J)};O(qi,Ue=>{c(t)||Ue(mi)})}I(Si,Oi)};O(Ki,Si=>{c(f).dynsec.configured?Si(Ai):Si(Di,-1)})}var $i=m(Ki,2);{var Gi=Si=>{var Oi=vee(),qi=b(Oi);H(()=>N(qi,c(s))),I(Si,Oi)};O($i,Si=>{c(s)&&Si(Gi)})}var Ui=m(pt,2);{var mn=Si=>{var Oi=xee(),qi=b(Oi);{var mi=_t=>{var yt=bee(),Ot=b(yt);H(()=>{yt.disabled=c(r),N(Ot,c(r)?"Running diagnostics…":"Run diagnostics")}),z("click",yt,y),I(_t,yt)},Ue=_t=>{var yt=See(),Ot=xt(yt);let j;var ce=b(Ot);{var ke=ae=>{var me=PD(),Ze=b(me);H(()=>N(Ze,`⚠ ${c(a).error??""}`)),I(ae,me)},ze=ae=>{var me=wee(),Ze=xt(me),Zt=m(b(Ze)),bt=b(Zt),We=m(Ze,2),At=m(b(We)),ai=b(At),zt=m(We,2),vi=m(b(zt)),hi=b(vi),Ci=m(zt,2),zi=m(b(Ci)),$e=b(zi),Fe=m(Ci,2);ni(Fe,17,()=>c(a).issues,Vi,(qt,Qt)=>{var re=PD(),Ge=b(re);H(()=>N(Ge,`⚠ ${c(Qt)??""}`)),I(qt,re)});var Ft=m(Fe,2);{var Yt=qt=>{var Qt=yee();I(qt,Qt)};O(Ft,qt=>{c(a).ok&&qt(Yt)})}H(()=>{N(bt,c(a).dynSecPath),kt(At,1,Kg(c(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),N(ai,c(a).adminClientExists?"✓ yes":"✗ no"),kt(vi,1,Kg(c(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),N(hi,c(a).hasAdminRole?"✓ yes":"✗ no"),kt(zi,1,Kg(c(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),N($e,c(a).hasControlSendAcl?"✓ present":"✗ missing")}),I(ae,me)};O(ce,ae=>{c(a).error?ae(ke):ae(ze,-1)})}var st=m(Ot,2),X=b(st);H(()=>{j=kt(Ot,1,"diag-card svelte-zuhcpo",null,j,{"diag-ok":c(a).ok,"diag-fail":!c(a).ok}),st.disabled=c(r),N(X,c(r)?"Running…":"Re-run")}),z("click",st,y),I(_t,yt)};O(qi,_t=>{c(a)?_t(Ue,-1):_t(mi)})}var J=m(qi,2);{var Qe=_t=>{var yt=Cee();z("click",yt,()=>v(t,!0)),I(_t,yt)};O(J,_t=>{c(t)||_t(Qe)})}I(Si,Oi)};O(Ui,Si=>{c(f).dynsec.configured&&c(f).dynsec.connected&&!c(f).dynsec.dynsecReady&&Si(mn)})}var rt=m(Ui,2);{var Kt=Si=>{var Oi=kee(),qi=b(Oi),mi=m(b(qi)),Ue=b(mi),J=m(mi,3),Qe=b(J),_t=m(J,3),yt=b(_t),Ot=m(_t,3),j=b(Ot),ce=m(Ot,3),ke=b(ce),ze=m(ce,3),st=b(ze);H((X,ae,me,Ze,Zt,bt,We,At,ai,zt,vi,hi)=>{N(Ue,X),N(Qe,ae),N(yt,`${me??""} connected · ${Ze??""} max · ${Zt??""} total`),N(j,`${bt??""} rcv · ${We??""} sent · ${At??""} stored`),N(ke,`${ai??""} retained · ${zt??""} subscriptions`),N(st,`${vi??""} in · ${hi??""} out`)},[()=>k("$SYS/broker/version"),()=>D(k("$SYS/broker/uptime")),()=>k("$SYS/broker/clients/connected"),()=>k("$SYS/broker/clients/maximum"),()=>k("$SYS/broker/clients/total"),()=>k("$SYS/broker/messages/received"),()=>k("$SYS/broker/messages/sent"),()=>k("$SYS/broker/messages/stored"),()=>k("$SYS/broker/retained messages/count"),()=>k("$SYS/broker/subscriptions/count"),()=>M(k("$SYS/broker/bytes/received")),()=>M(k("$SYS/broker/bytes/sent"))]),I(Si,Oi)},_i=Ct(()=>Object.keys(c(f).sys).length>0);O(rt,Si=>{c(_i)&&Si(Kt)})}var Pi=m(Xt,2);{var Li=Si=>{var Oi=Lee(),qi=b(Oi);hee(qi,{onDone:()=>{v(t,!1),w()}}),I(Si,Oi)};O(Pi,Si=>{c(t)&&(!c(f).dynsec.configured||!c(f).dynsec.dynsecReady)&&Si(Li)})}H(()=>N(Ni,c(f).sshConfigured?`ssh — ${c(f).sshHost}`:"local")),I(ci,Bt)};O(Xe,ci=>{c(p)?ci(Ut):c(g)?ci(wi,1):c(f)&&ci(Ri,2)})}I(ht,he)},Nt=ht=>{{let he=Ct(()=>{var Xe;return((Xe=c(f))==null?void 0:Xe.dynsec.dynsecReady)??!1});XQ(ht,{get dynsecReady(){return c(he)}})}},ti=ht=>{_J(ht,{})},ri=ht=>{uJ(ht,{})},Vt=ht=>{FJ(ht,{})},Me=ht=>{KJ(ht,{})},jt=ht=>{iee(ht,{})};O(et,ht=>{c(u)==="status"?ht(ct):c(u)==="users"?ht(Nt,1):c(u)==="brokerconfig"?ht(ti,2):c(u)==="listeners"?ht(ri,3):c(u)==="certs"?ht(Vt,4):c(u)==="ssh"?ht(Me,5):c(u)==="logs"&&ht(jt,6)})}var ft=m(K,2);vs(Uc(ft,{}),ht=>i=ht,()=>i),H(()=>{te=kt(se,1,"svelte-zuhcpo",null,te,{active:c(u)==="status"}),je=kt(pe,1,"svelte-zuhcpo",null,je,{active:c(u)==="users"}),ue=kt(Ke,1,"svelte-zuhcpo",null,ue,{active:c(u)==="brokerconfig"}),dt=kt(He,1,"svelte-zuhcpo",null,dt,{active:c(u)==="listeners"}),gt=kt(we,1,"svelte-zuhcpo",null,gt,{active:c(u)==="certs"}),Pt=kt(ot,1,"svelte-zuhcpo",null,Pt,{active:c(u)==="ssh"}),Mt=kt(Oe,1,"svelte-zuhcpo",null,Mt,{active:c(u)==="logs"})}),z("click",se,()=>v(u,"status")),z("click",pe,()=>v(u,"users")),z("click",Ke,()=>v(u,"brokerconfig")),z("click",He,()=>v(u,"listeners")),z("click",we,()=>v(u,"certs")),z("click",ot,()=>v(u,"ssh")),z("click",Oe,()=>v(u,"logs")),I(o,F),Ps()}zs(["click"]);var Pee=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),Mee=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),Ree=T('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),Nee=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),Aee=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),Oee=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),Fee=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),Hee=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),Wee=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),Bee=T('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),zee=T('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),Vee=T('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),jee=T('<button class="svelte-1n46o8q"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> </button>'),$ee=T('<div class="version-popup svelte-1n46o8q"><dl class="svelte-1n46o8q"><dt class="svelte-1n46o8q">Installed</dt><dd class="svelte-1n46o8q"></dd> <!></dl> <div class="version-actions svelte-1n46o8q"><!> <button class="check-btn svelte-1n46o8q" title="Check for updates now"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> </button></div></div>'),Uee=T('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),qee=T('<dt class="svelte-1n46o8q">Matter nodes</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">Matter endpoints</dt><dd class="svelte-1n46o8q"> </dd>',1),Gee=T('<dt class="svelte-1n46o8q">DB docs</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">DB views</dt><dd class="svelte-1n46o8q"> </dd>',1),Kee=T('<dl class="svelte-1n46o8q"><!> <dt class="svelte-1n46o8q">Scripts</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">MQTT topics</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">MQTT msg/s</dt><dd class="svelte-1n46o8q"> </dd> <!> <!> <dt class="svelte-1n46o8q">Handlers</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">Memory</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">CPU</dt><dd class="svelte-1n46o8q"> </dd></dl>'),Zee=T('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),Yee=T('<button class="svelte-1n46o8q"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M18.36 6.64a9 9 0 1 1-12.73 0" class="svelte-1n46o8q"></path><line x1="12" y1="2" x2="12" y2="12" class="svelte-1n46o8q"></line></svg> Restart daemon</button>'),Xee=T('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),Qee=T('<button class="nav-logout svelte-1n46o8q" title="Logout"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" class="svelte-1n46o8q"></path><polyline points="16 17 21 12 16 7" class="svelte-1n46o8q"></polyline><line x1="21" y1="12" x2="9" y2="12" class="svelte-1n46o8q"></line></svg></button>'),Jee=T('<div class="shell svelte-1n46o8q"><nav class="svelte-1n46o8q"><span class="brand svelte-1n46o8q">she</span> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="5,3 1,8 5,13" class="svelte-1n46o8q"></polyline><polyline points="11,3 15,8 11,13" class="svelte-1n46o8q"></polyline></svg> Scripts</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter" class="svelte-1n46o8q"><rect x="0.75" y="0.75" width="14.5" height="14.5" rx="1" class="svelte-1n46o8q"></rect><path d="M2,11 V5 H5 V11" class="svelte-1n46o8q"></path><path d="M6,12 V5 H9 V8 H6" class="svelte-1n46o8q"></path><path d="M10,11 V5 H15 V11" class="svelte-1n46o8q"></path><line x1="12.5" y1="5" x2="12.5" y2="11" class="svelte-1n46o8q"></line></svg> Packages <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" stroke="none" style="vertical-align: middle" class="svelte-1n46o8q"><path fill-rule="evenodd" d="M2,0 H14 A2,2 0 0,1 16,2 V14 A2,2 0 0,1 14,16 H0 V2 A2,2 0 0,1 2,0 Z M0,16 L0,12 A4,4 0 0,1 4,16 Z M0,10.5 A5.5,5.5 0 0,1 5.5,16 L9,16 A9,9 0 0,0 0,7 Z M0,5.5 A10.5,10.5 0 0,1 10.5,16 L13.5,16 A13.5,13.5 0 0,0 0,2.5 Z" class="svelte-1n46o8q"></path></svg> MQTT <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><circle cx="8" cy="10" r="2" class="svelte-1n46o8q"></circle><path d="M5,7 A4,4 0,0,1 11,7" class="svelte-1n46o8q"></path><path d="M3,5 A6.5,6.5 0,0,1 13,5" class="svelte-1n46o8q"></path><line x1="8" y1="12" x2="8" y2="15" class="svelte-1n46o8q"></line></svg> Broker</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M8,2 L8,7" class="svelte-1n46o8q"></path><path d="M6,5 L8,7.5 L10,5" class="svelte-1n46o8q"></path><path d="M2.5,14 L6,10" class="svelte-1n46o8q"></path><path d="M6.2,12.8 L6,10 L3.2,10.2" class="svelte-1n46o8q"></path><path d="M13.5,14 L10,10" class="svelte-1n46o8q"></path><path d="M9.8,12.8 L10,10 L12.8,10.2" class="svelte-1n46o8q"></path></svg> Matter <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><ellipse cx="8" cy="4.5" rx="5" ry="1.8" class="svelte-1n46o8q"></ellipse><path d="M3,4.5 v7 a5,1.8 0,0,0 10,0 v-7" class="svelte-1n46o8q"></path><path d="M3,8 a5,1.8 0,0,0 10,0" class="svelte-1n46o8q"></path></svg> DB</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-1n46o8q"><line x1="2" y1="5" x2="14" y2="5" class="svelte-1n46o8q"></line><line x1="2" y1="8" x2="14" y2="8" class="svelte-1n46o8q"></line><line x1="2" y1="11" x2="9" y2="11" class="svelte-1n46o8q"></line></svg> Logs <!></button> <div class="nav-spacer svelte-1n46o8q"></div> <div class="nav-right svelte-1n46o8q"><a class="nav-icon svelte-1n46o8q" href="https://github.com/hobbyquaker/she" target="_blank" rel="noopener" title="GitHub"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" class="svelte-1n46o8q"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" class="svelte-1n46o8q"></path></svg></a> <div class="version-wrap svelte-1n46o8q"><button class="version svelte-1n46o8q"> <!></button> <!></div> <div class="stats-wrap svelte-1n46o8q"><button class="nav-icon svelte-1n46o8q" title="Daemon status"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><line x1="18" y1="20" x2="18" y2="10" class="svelte-1n46o8q"></line><line x1="12" y1="20" x2="12" y2="4" class="svelte-1n46o8q"></line><line x1="6" y1="20" x2="6" y2="14" class="svelte-1n46o8q"></line></svg></button> <!></div> <button title="Settings"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" class="svelte-1n46o8q"></path><circle cx="12" cy="12" r="3" class="svelte-1n46o8q"></circle></svg></button> <!></div></nav> <main class="svelte-1n46o8q"><!> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div></main></div>'),ete=T('<div class="login-error svelte-1n46o8q"> </div>'),tte=T('<div class="login-overlay svelte-1n46o8q"><form class="login-box svelte-1n46o8q"><div class="login-brand svelte-1n46o8q">she</div> <h2 class="svelte-1n46o8q">Sign in</h2> <div class="login-field svelte-1n46o8q"><label for="she-password" class="svelte-1n46o8q">Password</label> <input id="she-password" type="password" placeholder="Enter password" autocomplete="current-password" class="svelte-1n46o8q"/></div> <!> <button type="submit" class="login-btn svelte-1n46o8q"> </button></form></div>'),ite=T('<div class="updating-overlay svelte-1n46o8q"><div class="updating-box svelte-1n46o8q"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> Restarting smart-home-engine…</div></div>'),nte=T('<div class="updating-overlay svelte-1n46o8q"><div class="updating-box svelte-1n46o8q"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> Updating smart-home-engine…</div></div>'),ste=T("<!> <!> <!> <!>",1);function ote(o,e){Ts(e,!0);const t=["scripts","mqtt","matter","security","db","logs","config","packages"];function i(){const ft=location.hash.slice(1);return t.includes(ft)?ft:"scripts"}let n=P(yi(i())),s=P(null),r=P(!1),a=P(!1),d=P(!1),u=P(!1),f=P("none"),g=P(""),p=P(!1),w=P(""),y=P(""),x=P(!1),k=P(!1);kU(()=>{v(p,!0)});async function D(){v(y,""),v(x,!0);try{await EU(c(w)),v(w,""),v(p,!1)}catch(ft){v(y,ft.message??"Login failed",!0)}finally{v(x,!1)}}async function M(){if(c(f)==="proxy"&&c(g)){window.location.href=c(g);return}await DU(),v(p,!0)}let F=P(null),K=P(!1),V=P(!1),se=P(!1),te=P(!1),pe=P(yi([])),je=P(0),Ke=P(yi([]));const ue=Ct(()=>c(Ke).filter(ft=>ft.online).length),He=Ct(()=>c(Ke).length===0?"none":c(ue)===c(Ke).length?"all":c(ue)>0?"some":"offline");let dt=P(!1),we=P(!1);async function gt(){if(!await c(F).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;v(K,!0);let ft;try{ft=(await Wg()).startedAt}catch{}try{await UN()}catch{}const ht=Date.now()+6e4;for(;Date.now()<ht;){await new Promise(he=>setTimeout(he,250));try{const he=await Wg();if(ft===void 0||he.startedAt!==ft){location.reload();return}}catch{}}location.reload()}async function ot(){v(d,!0);try{const ft=await AU();c(s)&&v(s,{...c(s),latestVersion:ft.latestVersion??void 0},!0)}catch{}finally{v(d,!1)}}async function Pt(){var he,Xe;if(!await c(F).show(`Update to v${(he=c(s))==null?void 0:he.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;v(a,!1),v(u,!0);const ft=(Xe=c(s))==null?void 0:Xe.startedAt;try{await NU()}catch{}const ht=Date.now()+18e4;for(;Date.now()<ht;){await new Promise(Ut=>setTimeout(Ut,1e3));try{const Ut=await Wg();if(ft===void 0||Ut.startedAt!==ft){location.reload();return}}catch{v(u,!1),v(K,!0)}}location.reload()}function Oe(ft){v(n,ft,!0),location.hash=ft}Bs(async()=>{location.hash||(location.hash=c(n));const ft=()=>{v(n,i(),!0)};window.addEventListener("hashchange",ft);try{const Bt=await IU();v(f,Bt.mode,!0),v(g,Bt.proxyLogoutUrl??"",!0),c(f)==="password"&&(await fetch("/she/scripts")).status===401&&v(p,!0)}catch{}v(k,!0);async function ht(){try{v(s,await Wg(),!0)}catch{}try{const[Bt,Xt]=await Promise.all([KN(),Pl()]);v(pe,Array.isArray(Xt.pinnedPackages)?Xt.pinnedPackages:[],!0),v(je,Object.keys(Bt).filter(pt=>!c(pe).includes(pt)).length,!0)}catch{}}ht();const he=setInterval(ht,5e3),Xe=cr("mqtt:status",Bt=>{Bt.connected===!1?(v(te,!0),v(V,!1),v(se,!1)):(v(te,!1),v(V,Bt.ready===!1),v(se,Bt.ready===!0))}),Ut=cr("matter:deviceList",Bt=>{Array.isArray(Bt.devices)&&v(Ke,Bt.devices.map(Xt=>({nodeId:String(Xt.nodeId),online:!!Xt.online})),!0)}),wi=cr("matter:deviceStatus",Bt=>{if(Bt.nodeId===void 0)return;const Xt=String(Bt.nodeId),pt=!!Bt.online;v(Ke,c(Ke).map(Bi=>Bi.nodeId===Xt?{...Bi,online:pt}:Bi),!0)}),Ri=aA();v(dt,Ri.some(Bt=>Bt.level==="error"),!0),v(we,!c(dt)&&Ri.some(Bt=>Bt.level==="warn"),!0);const ci=Rk(Bt=>{Bt.level==="error"?(v(dt,!0),v(we,!1)):Bt.level==="warn"&&!c(dt)&&v(we,!0)});return()=>{window.removeEventListener("hashchange",ft),clearInterval(he),Xe(),Ut(),wi(),ci()}});var Mt=ste();ds("click",NP,()=>{c(r)&&v(r,!1),c(a)&&v(a,!1)});var et=xt(Mt);{var ct=ft=>{var ht=Jee(),he=b(ht),Xe=m(b(he),2);let Ut;var wi=m(Xe,2);let Ri;var ci=m(b(wi),2);{var Bt=A=>{var G=Pee();H(()=>ln(G,"title",`${c(je)??""} package update${c(je)===1?"":"s"} available`)),I(A,G)};O(ci,A=>{c(je)>0&&A(Bt)})}var Xt=m(wi,2);let pt;var Bi=m(b(Xt),2);{var Ti=A=>{var G=Mee();I(A,G)},Ni=A=>{var G=Ree();I(A,G)},Ki=A=>{var G=Nee();I(A,G)};O(Bi,A=>{c(te)?A(Ti):c(V)?A(Ni,1):c(se)&&A(Ki,2)})}var Ai=m(Xt,2);let Di;var $i=m(Ai,2);let Gi;var Ui=m(b($i),2);{var mn=A=>{var G=Aee();I(A,G)},rt=A=>{var G=Oee();I(A,G)},Kt=A=>{var G=Fee();I(A,G)};O(Ui,A=>{c(He)==="all"?A(mn):c(He)==="some"?A(rt,1):c(He)==="offline"&&A(Kt,2)})}var _i=m($i,2);let Pi;var Li=m(_i,2);let Si;var Oi=m(b(Li),2);{var qi=A=>{var G=Hee();I(A,G)},mi=A=>{var G=Wee();I(A,G)};O(Oi,A=>{c(dt)?A(qi):c(we)&&A(mi,1)})}var Ue=m(Li,4),J=m(b(Ue),2),Qe=b(J),_t=b(Qe);_t.nodeValue="v1.8.0 ";var yt=m(_t);{var Ot=A=>{var G=Bee();I(A,G)};O(yt,A=>{var G,ie;(G=c(s))!=null&&G.latestVersion&&!((ie=c(s))!=null&&ie.docker)&&A(Ot)})}var j=m(Qe,2);{var ce=A=>{var G=$ee(),ie=b(G),fe=m(b(ie));fe.textContent="v1.8.0";var Y=m(fe,2);{var le=De=>{var Ie=zee(),St=m(xt(Ie)),mt=b(St);H(()=>N(mt,`v${c(s).latestVersion??""}`)),I(De,Ie)},Re=De=>{var Ie=Vee();I(De,Ie)};O(Y,De=>{var Ie;(Ie=c(s))!=null&&Ie.latestVersion?De(le):De(Re,-1)})}var _e=m(ie,2),ge=b(_e);{var tt=De=>{var Ie=jee(),St=m(b(Ie));H(()=>N(St,` Update to v${c(s).latestVersion??""}`)),z("click",Ie,Pt),I(De,Ie)};O(ge,De=>{var Ie;(Ie=c(s))!=null&&Ie.latestVersion&&De(tt)})}var U=m(ge,2),ne=b(U);let Le;var Ve=m(ne);H(()=>{U.disabled=c(d),Le=kt(ne,0,"svelte-1n46o8q",null,Le,{spinning:c(d)}),N(Ve,` ${c(d)?"Checking…":"Check for updates"}`)}),z("click",G,De=>De.stopPropagation()),z("click",U,ot),I(A,G)};O(j,A=>{var G;c(a)&&!((G=c(s))!=null&&G.docker)&&A(ce)})}var ke=m(J,2),ze=b(ke),st=m(ze,2);{var X=A=>{var G=Xee(),ie=b(G);{var fe=ge=>{var tt=Kee(),U=b(tt);{var ne=at=>{const ut=Ct(()=>Math.floor((Date.now()-c(s).startedAt)/1e3)),Je=Ct(()=>Math.floor(c(ut)/86400)),$t=Ct(()=>Math.floor(c(ut)%86400/3600)),Jt=Ct(()=>Math.floor(c(ut)%3600/60));var Mi=Uee(),ii=m(xt(Mi)),xi=b(ii);H(()=>N(xi,`${c(Je)>0?c(Je)+"d ":""}${c($t)>0||c(Je)>0?c($t)+"h ":""}${c(Jt)??""}m`)),I(at,Mi)};O(U,at=>{c(s).startedAt&&at(ne)})}var Le=m(U,3),Ve=b(Le),De=m(Le,3),Ie=b(De),St=m(De,3),mt=b(St),qe=m(St,2);{var Tt=at=>{var ut=qee(),Je=m(xt(ut)),$t=b(Je),Jt=m(Je,3),Mi=b(Jt);H(()=>{N($t,c(s).matterNodes??0),N(Mi,c(s).matterEndpoints??0)}),I(at,ut)};O(qe,at=>{c(s).matterEnabled&&at(Tt)})}var it=m(qe,2);{var ye=at=>{var ut=Gee(),Je=m(xt(ut)),$t=b(Je),Jt=m(Je,3),Mi=b(Jt);H(()=>{N($t,c(s).dbDocs??"—"),N(Mi,c(s).dbViews??"—")}),I(at,ut)};O(it,at=>{c(s).dbEnabled&&at(ye)})}var Ne=m(it,3),Ee=b(Ne),Se=m(Ne,3),nt=b(Se),de=m(Se,3),Pe=b(de);H(()=>{N(Ve,c(s).scripts),N(Ie,c(s).topics),N(mt,c(s).mqttMsgPerSec??"—"),N(Ee,c(s).handlers??"—"),N(nt,c(s).memMb!=null?c(s).memMb+" MB":"—"),N(Pe,c(s).cpuPercent!=null?c(s).cpuPercent+" %":"—")}),I(ge,tt)},Y=ge=>{var tt=Zee();I(ge,tt)};O(ie,ge=>{c(s)?ge(fe):ge(Y,-1)})}var le=m(ie,2),Re=b(le);{var _e=ge=>{var tt=Yee();z("click",tt,()=>{v(r,!1),gt()}),I(ge,tt)};O(Re,ge=>{var tt;(tt=c(s))!=null&&tt.docker||ge(_e)})}z("click",G,ge=>ge.stopPropagation()),I(A,G)};O(st,A=>{c(r)&&A(X)})}var ae=m(ke,2);let me;var Ze=m(ae,2);{var Zt=A=>{var G=Qee();z("click",G,M),I(A,G)};O(Ze,A=>{c(f)==="password"&&A(Zt)})}var bt=m(he,2),We=b(bt);vs(Uc(We,{}),A=>v(F,A,!0),()=>c(F));var At=m(We,2);let ai;var zt=b(At);{let A=Ct(()=>c(n)==="scripts");RK(zt,{get active(){return c(A)}})}var vi=m(At,2);let hi;var Ci=b(vi);_Q(Ci,{});var zi=m(vi,2);let $e;var Fe=b(zi);XX(Fe,{});var Ft=m(zi,2);let Yt;var qt=b(Ft);_X(qt,{});var Qt=m(Ft,2);let re;var Ge=b(Qt);Tee(Ge,{});var wt=m(Qt,2);let vt;var di=b(wt);LY(di,{});var It=m(wt,2);let Ii;var W=b(It);vZ(W,{});var Q=m(It,2);let oe;var $=b(Q);SZ($,{}),H(()=>{Ut=kt(Xe,1,"svelte-1n46o8q",null,Ut,{active:c(n)==="scripts"}),Ri=kt(wi,1,"svelte-1n46o8q",null,Ri,{active:c(n)==="packages"}),pt=kt(Xt,1,"svelte-1n46o8q",null,pt,{active:c(n)==="mqtt"}),Di=kt(Ai,1,"svelte-1n46o8q",null,Di,{active:c(n)==="security"}),Gi=kt($i,1,"svelte-1n46o8q",null,Gi,{active:c(n)==="matter"}),Pi=kt(_i,1,"svelte-1n46o8q",null,Pi,{active:c(n)==="db"}),Si=kt(Li,1,"svelte-1n46o8q",null,Si,{active:c(n)==="logs"}),me=kt(ae,1,"nav-settings svelte-1n46o8q",null,me,{active:c(n)==="config"}),ai=kt(At,1,"page-wrap svelte-1n46o8q",null,ai,{hidden:c(n)!=="scripts"}),hi=kt(vi,1,"page-wrap svelte-1n46o8q",null,hi,{hidden:c(n)!=="packages"}),$e=kt(zi,1,"page-wrap svelte-1n46o8q",null,$e,{hidden:c(n)!=="mqtt"}),Yt=kt(Ft,1,"page-wrap svelte-1n46o8q",null,Yt,{hidden:c(n)!=="matter"}),re=kt(Qt,1,"page-wrap svelte-1n46o8q",null,re,{hidden:c(n)!=="security"}),vt=kt(wt,1,"page-wrap svelte-1n46o8q",null,vt,{hidden:c(n)!=="db"}),Ii=kt(It,1,"page-wrap svelte-1n46o8q",null,Ii,{hidden:c(n)!=="config"}),oe=kt(Q,1,"page-wrap svelte-1n46o8q",null,oe,{hidden:c(n)!=="logs"})}),z("click",Xe,()=>Oe("scripts")),z("click",wi,()=>Oe("packages")),z("click",Xt,()=>Oe("mqtt")),z("click",Ai,()=>Oe("security")),z("click",$i,()=>Oe("matter")),z("click",_i,()=>Oe("db")),z("click",Li,()=>{Oe("logs"),v(dt,!1),v(we,!1)}),z("click",Qe,A=>{A.stopPropagation(),v(a,!c(a)),v(r,!1)}),z("click",ze,A=>{A.stopPropagation(),v(r,!c(r)),v(a,!1)}),z("click",ae,()=>Oe("config")),I(ft,ht)};O(et,ft=>{c(k)&&!c(p)&&ft(ct)})}var Nt=m(et,2);{var ti=ft=>{var ht=tte(),he=b(ht),Xe=m(b(he),4),Ut=m(b(Xe),2),wi=m(Xe,2);{var Ri=Xt=>{var pt=ete(),Bi=b(pt);H(()=>N(Bi,c(y))),I(Xt,pt)};O(wi,Xt=>{c(y)&&Xt(Ri)})}var ci=m(wi,2),Bt=b(ci);H(()=>{Ut.disabled=c(x),ci.disabled=c(x)||!c(w),N(Bt,c(x)?"Signing in…":"Sign in")}),ds("submit",he,Xt=>{Xt.preventDefault(),D()}),Ht(Ut,()=>c(w),Xt=>v(w,Xt)),I(ft,ht)};O(Nt,ft=>{c(p)&&ft(ti)})}var ri=m(Nt,2);{var Vt=ft=>{var ht=ite();I(ft,ht)};O(ri,ft=>{c(K)&&ft(Vt)})}var Me=m(ri,2);{var jt=ft=>{var ht=nte();I(ft,ht)};O(Me,ft=>{c(u)&&ft(jt)})}I(o,Mt),Ps()}zs(["click"]);UH(ote,{target:document.getElementById("app")});export{fM as t};
230
+ *[stopped]*`,toolEvents:c(ue).length>0?[...c(ue)]:void 0}],!0)}else v(d,Q.message,!0)}finally{D=null,v(s,null),v(ue,[],!0),v(a,!1)}}}function Di(){D==null||D.abort()}function $i(W){W.key==="Enter"&&!W.shiftKey&&(W.preventDefault(),Ai())}function Gi(){v(n,[],!0),v(d,"")}const Ui=["Write a view to list all document IDs","Write a view to sum a numeric property across all documents","Write a view that filters to a specific prefix and emits a field","Write a reduce that returns the maximum value","Explain how the current view works"];function mn(W){v(r,W,!0),dt==null||dt.focus()}var rt=oY(),Kt=xt(rt),_i=b(Kt),Pi=m(b(_i),2);{var Li=W=>{var Q=CZ(),oe=b(Q);{var $=G=>{var ie=po();H(()=>N(ie,`${c(u).provider??""} · ${(c(g)||c(u).model)??""}`)),I(G,ie)},A=G=>{var ie=po("Not configured");I(G,ie)};O(oe,G=>{c(ot)?G($):G(A,-1)})}H(()=>ln(Q,"title",`Provider: ${c(u).provider??""}`)),I(W,Q)};O(Pi,W=>{c(u)&&W(Li)})}var Si=m(Pi,2);{var Oi=W=>{var Q=xZ();z("click",Q,Gi),I(W,Q)};O(Si,W=>{c(n).length>0&&W(Oi)})}var qi=m(_i,2),mi=b(qi);{var Ue=W=>{var Q=kZ();I(W,Q)},J=W=>{var Q=EZ(),oe=b(Q),$=b(oe);{var A=fe=>{var Y=LZ(),le=m(xt(Y)),Re=b(le);H(()=>N(Re,t().id)),I(fe,Y)},G=fe=>{var Y=po("No view selected. Ask a general sheDB view question.");I(fe,Y)};O($,fe=>{t()?fe(A):fe(G,-1)})}var ie=m(oe,2);ni(ie,17,()=>Ui,Vi,(fe,Y)=>{var le=IZ(),Re=b(le);H(()=>N(Re,c(Y))),z("click",le,()=>mn(c(Y))),I(fe,le)}),I(W,Q)};O(mi,W=>{c(ot)?c(n).length===0&&c(s)===null&&W(J,1):W(Ue)})}var Qe=m(mi,2);ni(Qe,17,()=>c(n),Vi,(W,Q,oe)=>{var $=NZ(),A=b($);{var G=fe=>{var Y=DZ(),le=b(Y);H(()=>N(le,c(Q).content)),I(fe,Y)},ie=fe=>{const Y=Ct(()=>et(c(Q).content)),le=Ct(()=>Nt(c(Y)));var Re=RZ(),_e=xt(Re);{var ge=De=>{var Ie=vD();ni(Ie,21,()=>c(Q).toolEvents,Vi,(St,mt)=>{var qe=As(),Tt=xt(qe);{var it=Ne=>{var Ee=_D(),Se=m(b(Ee)),nt=b(Se);H(de=>N(nt,de),[()=>c(mt).name.replace(/_/g," ")]),I(Ne,Ee)},ye=Ne=>{var Ee=mD(),Se=m(b(Ee)),nt=b(Se);H(de=>N(nt,de),[()=>c(mt).name.replace(/_/g," ")]),I(Ne,Ee)};O(Tt,Ne=>{c(mt).type==="tool_call"?Ne(it):Ne(ye,-1)})}I(St,qe)}),I(De,Ie)};O(_e,De=>{var Ie;(Ie=c(Q).toolEvents)!=null&&Ie.length&&De(ge)})}var tt=m(_e,2),U=b(tt);ni(U,17,()=>c(Y),Vi,(De,Ie,St)=>{var mt=As(),qe=xt(mt);{var Tt=ye=>{var Ne=bD();rc(Ne,()=>ht(c(Ie).text),!0),I(ye,Ne)},it=ye=>{const Ne=Ct(()=>`${oe}:${St}`),Ee=Ct(()=>Me(c(Ie).text)),Se=Ct(()=>c(p).has(c(Ne))),nt=Ct(()=>c(Ie).lang==="filter");var de=PZ(),Pe=b(de),at=b(Pe),ut=b(at),Je=m(at,2),$t=b(Je),Jt=m(Pe,2);let Mi;var ii=b(Jt),xi=b(ii);rc(xi,()=>ft(c(Ie).text,c(Ie).lang??""),!0);var Ji=m(ii,2);{var Hi=li=>{var un=TZ(),rn=b(un);H(()=>N(rn,c(Se)?"▲ collapse":"▼ expand")),z("click",un,()=>jt(c(Ne))),I(li,un)};O(Ji,li=>{c(Ee)&&li(Hi)})}H(()=>{N(ut,c(nt)?"filter":c(Ie).lang),Mi=kt(Jt,1,"code-body svelte-1twuiul",null,Mi,{collapsed:c(Ee)&&!c(Se)})}),z("click",$t,()=>Xe(c(Ie).text)),I(ye,de)};O(qe,ye=>{c(Ie).type==="text"?ye(Tt):ye(it,-1)})}I(De,mt)});var ne=m(U,2);{var Le=De=>{var Ie=MZ(),St=b(Ie),mt=b(St);H(qe=>N(mt,qe),[()=>ri(c(le))]),z("click",St,()=>e.onApplyView(c(le))),I(De,Ie)},Ve=Ct(()=>ti(c(le))&&e.onApplyView);O(ne,De=>{c(Ve)&&De(Le)})}I(fe,Re)};O(A,fe=>{c(Q).role==="user"?fe(G):fe(ie,-1)})}H(()=>kt($,1,`message ${c(Q).role??""}`,"svelte-1twuiul")),I(W,$)});var _t=m(Qe,2);{var yt=W=>{var Q=vD();ni(Q,21,()=>c(ue),Vi,(oe,$)=>{var A=As(),G=xt(A);{var ie=Y=>{var le=_D(),Re=m(b(le)),_e=b(Re);H(ge=>N(_e,ge),[()=>c($).name.replace(/_/g," ")]),I(Y,le)},fe=Y=>{var le=mD(),Re=m(b(le)),_e=b(Re);H(ge=>N(_e,ge),[()=>c($).name.replace(/_/g," ")]),I(Y,le)};O(G,Y=>{c($).type==="tool_call"?Y(ie):Y(fe,-1)})}I(oe,A)}),I(W,Q)};O(_t,W=>{c(ue).length>0&&W(yt)})}var Ot=m(_t,2);{var j=W=>{var Q=AZ(),oe=b(Q),$=b(oe),A=b($);H(()=>N(A,F[c(M)])),I(W,Q)};O(Ot,W=>{c(a)&&c(s)===null&&c(ue).length===0&&W(j)})}var ce=m(Ot,2);{var ke=W=>{var Q=FZ(),oe=b(Q);ni(oe,21,()=>ct(c(s)),Vi,($,A)=>{var G=As(),ie=xt(G);{var fe=le=>{var Re=bD();rc(Re,()=>ht(c(A).text),!0),I(le,Re)},Y=le=>{var Re=OZ(),_e=b(Re),ge=b(_e),tt=b(ge),U=m(_e,2),ne=b(U);rc(ne,()=>ft(c(A).text,c(A).lang??""),!0),H(()=>N(tt,c(A).lang)),I(le,Re)};O(ie,le=>{c(A).type==="text"?le(fe):le(Y,-1)})}I($,G)}),I(W,Q)};O(ce,W=>{c(s)!==null&&W(ke)})}vs(qi,W=>we=W,()=>we);var ze=m(qi,2);{var st=W=>{var Q=HZ(),oe=b(Q);H(()=>N(oe,c(d))),I(W,Q)};O(ze,W=>{c(d)&&W(st)})}var X=m(ze,2),ae=b(X),me=b(ae),Ze=m(ae,2),Zt=b(Ze),bt=m(Ze,2),We=b(bt),At=m(bt,2),ai=b(At),zt=m(X,2),vi=b(zt);{var hi=W=>{var Q=WZ();let oe;var $=m(b(Q),2),A=b($),G=m($,2),ie=b(G);H(()=>{oe=kt(Q,1,"file-chip svelte-1twuiul",null,oe,{inactive:!c(pe)}),N(A,t().id),ln(G,"title",c(pe)?"Remove from context":"Re-add to context"),N(ie,c(pe)?"×":"+")}),z("click",G,()=>v(pe,!c(pe))),I(W,Q)};O(vi,W=>{t()&&W(hi)})}var Ci=m(vi,2);ni(Ci,17,()=>c(te),Vi,(W,Q,oe)=>{const $=Ct(()=>Ri(c(Q).name));var A=BZ(),G=b(A),ie=b(G),fe=m(G,2),Y=b(fe),le=m(fe,2);H((Re,_e)=>{kt(G,1,`badge badge-${Re??""}`,"svelte-1twuiul"),N(ie,_e),N(Y,c(Q).name)},[()=>c($).toLowerCase(),()=>ci(c($))]),z("click",le,()=>Bt(oe)),I(W,A)});var zi=m(Ci,2),$e=m(zi,2);vs($e,W=>Ke=W,()=>Ke);var Fe=m(zt,2);let Ft;var Yt=b(Fe);let qt;var Qt=b(Yt);vs(Qt,W=>dt=W,()=>dt);var re=m(Yt,2);{var Ge=W=>{var Q=zZ();z("click",Q,Di),I(W,Q)},wt=W=>{var Q=VZ();H(oe=>Q.disabled=oe,[()=>!c(r).trim()||!c(ot)]),z("click",Q,Ai),I(W,Q)};O(re,W=>{c(a)?W(Ge):W(wt,-1)})}var vt=m(Fe,2);{var di=W=>{var Q=GZ(),oe=b(Q),$=b(oe),A=m(oe,2);{var G=le=>{var Re=$Z();ni(Re,21,()=>c(f),Vi,(_e,ge)=>{var tt=jZ(),U=b(tt),ne={};H(()=>{N(U,c(ge)),ne!==(ne=c(ge))&&(tt.value=(tt.__value=c(ge))??"")}),I(_e,tt)}),H(()=>Re.disabled=c(a)),ys(Re,()=>c(g),_e=>v(g,_e)),I(le,Re)},ie=le=>{var Re=UZ(),_e=b(Re);H(()=>N(_e,c(g)||c(u).model)),I(le,Re)};O(A,le=>{c(f).length>0?le(G):le(ie,-1)})}var fe=m(A,2);{var Y=le=>{var Re=qZ();z("click",Re,Ut),I(le,Re)};O(fe,le=>{c(u).provider==="ollama"&&le(Y)})}H(()=>N($,c(u).provider)),I(W,Q)};O(vt,W=>{c(ot)&&c(u)&&W(di)})}var It=m(Kt,2);{var Ii=W=>{var Q=sY(),oe=b(Q),$=b(oe),A=b($),G=b(A),ie=m(A,2),fe=m($,2),Y=b(fe);{var le=ge=>{var tt=KZ();I(ge,tt)},Re=ge=>{var tt=ZZ(),U=b(tt);H(()=>N(U,c(k))),I(ge,tt)},_e=ge=>{var tt=nY(),U=b(tt);{var ne=ye=>{var Ne=YZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).version)),I(ye,Ne)};O(U,ye=>{c(y).version&&ye(ne)})}var Le=m(U,2);{var Ve=ye=>{var Ne=XZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).details.family)),I(ye,Ne)};O(Le,ye=>{var Ne;(Ne=c(y).details)!=null&&Ne.family&&ye(Ve)})}var De=m(Le,2);{var Ie=ye=>{var Ne=QZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).details.parameter_size)),I(ye,Ne)};O(De,ye=>{var Ne;(Ne=c(y).details)!=null&&Ne.parameter_size&&ye(Ie)})}var St=m(De,2);{var mt=ye=>{var Ne=JZ(),Ee=m(xt(Ne)),Se=b(Ee);H(()=>N(Se,c(y).details.quantization_level)),I(ye,Ne)};O(St,ye=>{var Ne;(Ne=c(y).details)!=null&&Ne.quantization_level&&ye(mt)})}var qe=m(St,2);{var Tt=ye=>{var Ne=tY(),Ee=m(xt(Ne),2);ni(Ee,21,()=>c(y).running,Vi,(Se,nt)=>{var de=eY(),Pe=b(de);H(at=>N(Pe,`${c(nt).name??""} · ${at??""} VRAM`),[()=>wi(c(nt).size_vram)]),I(Se,de)}),I(ye,Ne)},it=ye=>{var Ne=iY();I(ye,Ne)};O(qe,ye=>{c(y).running&&c(y).running.length>0?ye(Tt):c(y).running!==null&&ye(it,1)})}I(ge,tt)};O(Y,ge=>{c(x)?ge(le):c(k)?ge(Re,1):c(y)&&ge(_e,2)})}H(()=>{var ge;return N(G,`Ollama · ${(c(g)||((ge=c(u))==null?void 0:ge.model))??""}`)}),z("click",Q,()=>v(w,!1)),z("click",oe,ge=>ge.stopPropagation()),z("click",ie,()=>v(w,!1)),I(W,Q)};O(It,W=>{c(w)&&W(Ii)})}H(W=>{N(ai,W),Ft=kt(Fe,1,"input-row svelte-1twuiul",null,Ft,{"drag-over":c(je)}),qt=kt(Yt,1,"textarea-wrap svelte-1twuiul",null,qt,{loading:c(a)}),ln(Qt,"placeholder",c(ot)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),Qt.disabled=c(a)||!c(ot)},[()=>wi(c(Pt))]),ms(me,()=>c(K),W=>v(K,W)),ms(Zt,()=>c(V),W=>v(V,W)),ms(We,()=>c(se),W=>v(se,W)),z("click",zi,Xt),z("change",$e,Bi),ds("dragover",Fe,Ni),ds("dragleave",Fe,Ki),ds("drop",Fe,Ti),z("keydown",Qt,$i),Ht(Qt,()=>c(r),W=>v(r,W)),I(o,rt),Ps()}zs(["click","change","keydown"]);var aY=T('<div class="me svelte-1pxdb1"></div>');function vS(o,e){Ts(e,!0);let t=Su(e,"value",15,""),i=Su(e,"language",3,"javascript"),n,s,r=!1;Bs(()=>{const d=i()==="json"?{formatOnPaste:!0,autoIndent:"full"}:{};s=mr.create(n,{value:t(),language:i(),theme:"vs-dark",minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', monospace",automaticLayout:!0,wordWrap:"on",lineNumbers:"on",renderLineHighlight:"none",overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:6,horizontalScrollbarSize:6},...d}),s.onDidChangeModelContent(()=>{r||t(s.getValue())})}),x_(()=>s==null?void 0:s.dispose()),Vn(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=aY();vs(a,d=>n=d,()=>n),I(o,a),Ps()}var lY=T('<!> <div class="welcome svelte-rrt0o"><div class="welcome-inner svelte-rrt0o"><div class="welcome-logo svelte-rrt0o">db</div> <p class="welcome-sub svelte-rrt0o">sheDB — embedded JSON document store with MapReduce views</p> <div class="welcome-hint svelte-rrt0o"><strong>In scripts:</strong> use <code class="svelte-rrt0o">she.db.get(id)</code>, <code class="svelte-rrt0o">she.db.set(id, doc)</code>, <code class="svelte-rrt0o">she.db.extend(id, partial)</code>, <code class="svelte-rrt0o">she.db.sub(pattern, cb)</code>.<br/> <strong>Views:</strong> <code class="svelte-rrt0o">this</code> = current document &mdash; call <code class="svelte-rrt0o">emit(value)</code> to add to result.</div> <div class="welcome-links svelte-rrt0o"><a href="https://github.com/hobbyquaker/she/blob/main/doc/db/README.md" target="_blank" rel="noopener" class="svelte-rrt0o">sheDB docs</a> <span class="svelte-rrt0o">·</span> <a href="https://github.com/hobbyquaker/she/blob/main/doc/db/view-examples.md" target="_blank" rel="noopener" class="svelte-rrt0o">View examples</a> <span class="svelte-rrt0o">·</span> <a href="https://github.com/hobbyquaker/she" target="_blank" rel="noopener" class="svelte-rrt0o">GitHub</a></div></div></div>',1),cY=T('<button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><line x1="5.5" y1="5" x2="4" y2="2.5"></line><line x1="10.5" y1="5" x2="12" y2="2.5"></line><path d="M3 11 V7 A5 3.5 0 0 0 13 7 V11 Z" stroke-linejoin="round"></path><circle cx="6" cy="8.2" r="0.7" fill="currentColor" stroke="none"></circle><circle cx="10" cy="8.2" r="0.7" fill="currentColor" stroke="none"></circle></svg> AI</button>'),yD=T('<div class="form-error svelte-rrt0o"> </div>'),dY=T('<div class="new-item-form svelte-rrt0o"><input placeholder="device/lamp1" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),wD=T("<li> </li>"),SD=T('<div class="error-bar svelte-rrt0o"> </div>'),CD=T('<div class="loading svelte-rrt0o">Loading…</div>'),uY=T('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),hY=T('<div class="editor-toolbar svelte-rrt0o"><span class="editor-title svelte-rrt0o"> </span> <button class="svelte-rrt0o">Save</button> <button class="btn-danger svelte-rrt0o">Delete</button></div> <!> <!>',1),fY=T('<div class="panel svelte-rrt0o"><aside class="sidebar svelte-rrt0o"><div class="toolbar svelte-rrt0o"><button class="svelte-rrt0o">+ Doc</button></div> <!> <div class="sidebar-search svelte-rrt0o"><input type="search" placeholder="Filter…" class="svelte-rrt0o"/></div> <ul class="flat-list svelte-rrt0o"></ul></aside> <div class="resize-handle svelte-rrt0o" role="separator"></div> <main class="editor-area svelte-rrt0o"><!></main></div>'),gY=T('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),pY=T('<label class="opt-check svelte-rrt0o"><input type="checkbox" class="svelte-rrt0o"/> <span class="checkmark svelte-rrt0o"></span> Retain <span class="section-hint svelte-rrt0o">— send as retained MQTT message</span></label>'),_Y=T('<span class="badge-error svelte-rrt0o">error</span>'),mY=T('<span class="badge-ok svelte-rrt0o"> </span>'),vY=T('<pre class="result-error svelte-rrt0o"> </pre>'),bY=T('<pre class="result-json svelte-rrt0o"> </pre>'),yY=T('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),wY=T('<div class="view-sections svelte-rrt0o"><div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Description <span class="section-hint svelte-rrt0o">— optional, shown in sidebar</span></div> <div class="section-body svelte-rrt0o"><input class="filter-input svelte-rrt0o" placeholder="(optional description)"/></div></div> <div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Filter <span class="section-hint svelte-rrt0o">— MQTT wildcard, optional</span></div> <div class="section-body svelte-rrt0o"><input class="filter-input svelte-rrt0o" placeholder="#"/></div></div> <div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Map <span class="section-hint svelte-rrt0o">— <code>this</code> = document &nbsp;·&nbsp; call <code>emit(this)</code> to include in result</span></div> <div class="monaco-view-wrap monaco-view-wrap--map svelte-rrt0o"><!></div></div> <div class="view-section svelte-rrt0o"><div class="section-title svelte-rrt0o">Reduce <span class="section-hint svelte-rrt0o">— receives <code>result</code> array, must <code>return</code> new value (optional)</span></div> <div class="monaco-view-wrap monaco-view-wrap--reduce svelte-rrt0o"><!></div></div> <div class="view-section view-section--options svelte-rrt0o"><label class="opt-check svelte-rrt0o"><input type="checkbox" class="svelte-rrt0o"/> <span class="checkmark svelte-rrt0o"></span> Publish to MQTT <span class="section-hint svelte-rrt0o">— publish view to MQTT topic <code> </code></span></label> <!></div> <!></div>'),SY=T('<div class="editor-toolbar svelte-rrt0o"><span class="editor-title svelte-rrt0o"> </span> <button class="svelte-rrt0o">Save</button> <button title="Re-run view" class="svelte-rrt0o">Refresh</button> <button class="btn-danger svelte-rrt0o">Delete</button></div> <!> <!>',1),CY=T('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),xY=T('<div class="panel svelte-rrt0o"><aside class="sidebar svelte-rrt0o"><div class="toolbar svelte-rrt0o"><button class="svelte-rrt0o">+ View</button></div> <!> <div class="sidebar-search svelte-rrt0o"><input type="search" placeholder="Filter…" class="svelte-rrt0o"/></div> <ul class="flat-list svelte-rrt0o"></ul></aside> <div class="resize-handle svelte-rrt0o" role="separator"></div> <main class="editor-area svelte-rrt0o"><!></main> <!></div>'),kY=T('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function LY(o,e){Ts(e,!0);const t=Ue=>{var J=lY(),Qe=xt(J);vs(Uc(Qe,{}),_t=>ci=_t,()=>ci),I(Ue,J)};let i=P(yi([])),n=P(null),s=P("{}"),r=P(!1),a=P(null);const d="she-db-selected-view";let u=P(yi([])),f=P(yi(localStorage.getItem(d))),g=P("#"),p=P("// emit(this.someProperty)"),w=P(""),y=P(""),x=P(!1),k=P(!1),D=P(null),M=P(!1),F=P(null),K=P("she/db/view/");const V="she-db-panel";let se=P(yi(localStorage.getItem(V)??"docs")),te=P(""),pe=P(!1),je=P(null),Ke=P(""),ue=P(!1),He=P(null);const dt="she-db-sidebar-width";let we=P(yi(parseInt(localStorage.getItem(dt)??"220",10))),gt=!1,ot=0,Pt=0;const Oe="she-db-chat-width",Mt="she-db-chat-open";let et=P(localStorage.getItem(Mt)==="true"),ct=P(yi(parseInt(localStorage.getItem(Oe)??"320",10))),Nt=!1,ti=0,ri=0;const Vt=Ct(()=>c(f)?{id:c(f),filter:c(g),map:c(p),reduce:c(w)}:null);function Me(Ue){Ue.filter!==void 0&&v(g,Ue.filter,!0),Ue.map!==void 0&&v(p,Ue.map,!0),Ue.reduce!==void 0&&v(w,Ue.reduce,!0)}Vn(()=>{localStorage.setItem(Mt,String(c(et)))}),Vn(()=>{localStorage.setItem(V,c(se))}),Vn(()=>{c(f)?localStorage.setItem(d,c(f)):localStorage.removeItem(d)});function jt(Ue){gt=!0,ot=Ue.clientX,Pt=c(we),Ue.preventDefault()}function ft(Ue){gt&&v(we,Math.max(140,Math.min(500,Pt+Ue.clientX-ot)),!0),Nt&&v(ct,Math.max(240,Math.min(600,ri-(Ue.clientX-ti))),!0)}function ht(){gt&&(gt=!1,localStorage.setItem(dt,String(c(we)))),Nt&&(Nt=!1,localStorage.setItem(Oe,String(c(ct))))}function he(Ue){Nt=!0,ti=Ue.clientX,ri=c(ct),Ue.preventDefault()}async function Xe(){try{v(i,await qN(),!0)}catch{}}async function Ut(){try{v(u,await GN(),!0)}catch{}}async function wi(Ue){v(n,Ue,!0),v(a,null),v(r,!0);try{const J=await WU(Ue);v(s,JSON.stringify(J,null,2),!0)}catch(J){v(a,J instanceof Error?J.message:String(J),!0)}finally{v(r,!1)}}async function Ri(){if(c(n)){v(a,null);try{const Ue=JSON.parse(c(s));await VE(c(n),Ue)}catch(Ue){v(a,Ue instanceof Error?Ue.message:String(Ue),!0)}}}let ci;async function Bt(){if(c(n)&&await ci.show(`Delete document "${c(n)}"?`,{confirm:"Delete",danger:!0}))try{await BU(c(n)),v(n,null),v(s,"{}")}catch(Ue){v(a,Ue instanceof Error?Ue.message:String(Ue),!0)}}async function Xt(){const Ue=c(te).trim();if(Ue){v(je,null);try{await VE(Ue,{}),v(pe,!1),v(te,""),await wi(Ue)}catch(J){v(je,J instanceof Error?J.message:String(J),!0)}}}async function pt(Ue){v(f,Ue,!0),v(F,null),v(M,!0),v(D,null);try{const J=await zU(Ue);v(g,J.filter??"",!0),v(p,J.map,!0),v(w,J.reduce??"",!0),v(y,J.description??"",!0),v(x,J.mqttpub??!1,!0),v(k,J.retain??!1,!0),v(D,await pS(Ue).catch(()=>null),!0)}catch(J){v(F,J instanceof Error?J.message:String(J),!0)}finally{v(M,!1)}}async function Bi(){if(c(f)){v(F,null);try{const Ue={map:c(p)};c(g).trim()&&(Ue.filter=c(g).trim()),c(w).trim()&&(Ue.reduce=c(w).trim()),c(y).trim()&&(Ue.description=c(y).trim()),c(x)&&(Ue.mqttpub=!0),c(k)&&(Ue.retain=!0),await jE(c(f),Ue)}catch(Ue){v(F,Ue instanceof Error?Ue.message:String(Ue),!0)}}}async function Ti(){if(c(f))try{v(D,await pS(c(f)),!0)}catch(Ue){v(F,Ue instanceof Error?Ue.message:String(Ue),!0)}}async function Ni(){if(c(f)&&await ci.show(`Delete view "${c(f)}"?`,{confirm:"Delete",danger:!0}))try{await VU(c(f)),v(f,null),v(g,""),v(p,"// emit(this.someProperty)"),v(w,""),v(y,""),v(x,!1),v(k,!1),v(D,null)}catch(Ue){v(F,Ue instanceof Error?Ue.message:String(Ue),!0)}}async function Ki(){if(!c(Ke).trim())return;const Ue=c(Ke).trim();v(He,null);try{await jE(Ue,{map:"// emit(this.someProperty)"}),v(ue,!1),v(Ke,""),await Ut(),await pt(Ue)}catch(J){v(He,J instanceof Error?J.message:String(J),!0)}}let Ai=P(""),Di=P(""),$i=Ct(()=>[...c(i)].filter(Ue=>!c(Ai)||Ue.toLowerCase().includes(c(Ai).toLowerCase())).sort()),Gi=Ct(()=>[...c(u)].filter(Ue=>!c(Di)||Ue.toLowerCase().includes(c(Di).toLowerCase())).sort());Bs(()=>{Xe(),Ut().then(()=>{c(f)&&c(u).includes(c(f))?pt(c(f)):v(f,null)}),Pl().then(yt=>{const Ot=yt.dbPrefix||"she/db/",j=Ot.endsWith("/")?Ot:Ot+"/";v(K,j+"view/")}).catch(()=>{});const Ue=cr("db:ids",yt=>{v(i,yt.ids??[],!0)}),J=cr("db:viewIds",yt=>{v(u,yt.ids??[],!0)}),Qe=cr("db:change",async yt=>{const Ot=yt.id;c(n)===Ot&&(yt.doc===null?(v(n,null),v(s,"{}")):v(s,JSON.stringify(yt.doc,null,2),!0))}),_t=cr("db:viewUpdate",async yt=>{const Ot=yt.id;c(f)===Ot&&v(D,await pS(Ot).catch(()=>null),!0)});return()=>{Ue(),J(),Qe(),_t()}});var Ui=kY(),mn=b(Ui),rt=b(mn);let Kt;var _i=m(rt,2);let Pi;var Li=m(_i,2);{var Si=Ue=>{var J=cY();let Qe;H(()=>{Qe=kt(J,1,"ai-toggle svelte-rrt0o",null,Qe,{"ai-open":c(et)}),ln(J,"title",c(et)?"Close AI assistant":"Open AI assistant")}),z("click",J,()=>v(et,!c(et))),I(Ue,J)};O(Li,Ue=>{c(se)==="views"&&Ue(Si)})}var Oi=m(mn,2);{var qi=Ue=>{var J=fY(),Qe=b(J);let _t;var yt=b(Qe),Ot=b(yt),j=m(yt,2);{var ce=bt=>{var We=dY(),At=xt(We),ai=b(At),zt=m(ai,2),vi=m(At,2);{var hi=Ci=>{var zi=yD(),$e=b(zi);H(()=>N($e,c(je))),I(Ci,zi)};O(vi,Ci=>{c(je)&&Ci(hi)})}z("keydown",ai,Ci=>Ci.key==="Enter"&&Xt()),Ht(ai,()=>c(te),Ci=>v(te,Ci)),z("click",zt,Xt),I(bt,We)};O(j,bt=>{c(pe)&&bt(ce)})}var ke=m(j,2),ze=b(ke),st=m(ke,2);ni(st,20,()=>c($i),bt=>bt,(bt,We)=>{var At=wD();let ai;var zt=b(At);H(()=>{ai=kt(At,1,"flat-item svelte-rrt0o",null,ai,{"active-item":c(n)===We}),N(zt,We)}),z("click",At,()=>wi(We)),I(bt,At)});var X=m(Qe,2),ae=m(X,2),me=b(ae);{var Ze=bt=>{var We=hY(),At=xt(We),ai=b(At),zt=b(ai),vi=m(ai,2),hi=m(vi,2),Ci=m(At,2);{var zi=Yt=>{var qt=SD(),Qt=b(qt);H(()=>N(Qt,c(a))),I(Yt,qt)};O(Ci,Yt=>{c(a)&&Yt(zi)})}var $e=m(Ci,2);{var Fe=Yt=>{var qt=CD();I(Yt,qt)},Ft=Yt=>{var qt=uY(),Qt=b(qt);vS(Qt,{language:"json",get value(){return c(s)},set value(re){v(s,re,!0)}}),I(Yt,qt)};O($e,Yt=>{c(r)?Yt(Fe):Yt(Ft,-1)})}H(()=>N(zt,c(n))),z("click",vi,Ri),z("click",hi,Bt),I(bt,We)},Zt=bt=>{t(bt)};O(me,bt=>{c(n)?bt(Ze):bt(Zt,-1)})}H(()=>_t=zo(Qe,"",_t,{width:`${c(we)??""}px`})),z("click",Ot,()=>{v(pe,!c(pe)),v(je,null)}),Ht(ze,()=>c(Ai),bt=>v(Ai,bt)),z("mousedown",X,jt),I(Ue,J)},mi=Ue=>{var J=xY(),Qe=b(J);let _t;var yt=b(Qe),Ot=b(yt),j=m(yt,2);{var ce=At=>{var ai=gY(),zt=xt(ai),vi=b(zt),hi=m(vi,2),Ci=m(zt,2);{var zi=$e=>{var Fe=yD(),Ft=b(Fe);H(()=>N(Ft,c(He))),I($e,Fe)};O(Ci,$e=>{c(He)&&$e(zi)})}z("keydown",vi,$e=>$e.key==="Enter"&&Ki()),Ht(vi,()=>c(Ke),$e=>v(Ke,$e)),z("click",hi,Ki),I(At,ai)};O(j,At=>{c(ue)&&At(ce)})}var ke=m(j,2),ze=b(ke),st=m(ke,2);ni(st,20,()=>c(Gi),At=>At,(At,ai)=>{var zt=wD();let vi;var hi=b(zt);H(()=>{vi=kt(zt,1,"flat-item svelte-rrt0o",null,vi,{"active-item":c(f)===ai}),N(hi,ai)}),z("click",zt,()=>pt(ai)),I(At,zt)});var X=m(Qe,2),ae=m(X,2),me=b(ae);{var Ze=At=>{var ai=SY(),zt=xt(ai),vi=b(zt),hi=b(vi),Ci=m(vi,2),zi=m(Ci,2),$e=m(zi,2),Fe=m(zt,2);{var Ft=re=>{var Ge=SD(),wt=b(Ge);H(()=>N(wt,c(F))),I(re,Ge)};O(Fe,re=>{c(F)&&re(Ft)})}var Yt=m(Fe,2);{var qt=re=>{var Ge=CD();I(re,Ge)},Qt=re=>{var Ge=wY(),wt=b(Ge),vt=m(b(wt),2),di=b(vt),It=m(wt,2),Ii=m(b(It),2),W=b(Ii),Q=m(It,2),oe=m(b(Q),2),$=b(oe);vS($,{language:"javascript",get value(){return c(p)},set value(Ve){v(p,Ve,!0)}});var A=m(Q,2),G=m(b(A),2),ie=b(G);vS(ie,{language:"javascript",get value(){return c(w)},set value(Ve){v(w,Ve,!0)}});var fe=m(A,2),Y=b(fe),le=b(Y),Re=m(le,4),_e=m(b(Re)),ge=b(_e),tt=m(Y,2);{var U=Ve=>{var De=pY(),Ie=b(De);ms(Ie,()=>c(k),St=>v(k,St)),I(Ve,De)};O(tt,Ve=>{c(x)&&Ve(U)})}var ne=m(fe,2);{var Le=Ve=>{var De=yY(),Ie=b(De),St=m(b(Ie));{var mt=Ne=>{var Ee=_Y();I(Ne,Ee)},qe=Ne=>{var Ee=mY(),Se=b(Ee);H(()=>N(Se,`${c(D).length??0??""} items · rev ${c(D)._rev??""}`)),I(Ne,Ee)};O(St,Ne=>{c(D).error?Ne(mt):Ne(qe,-1)})}var Tt=m(Ie,2);{var it=Ne=>{var Ee=vY(),Se=b(Ee);H(()=>N(Se,c(D).error)),I(Ne,Ee)},ye=Ne=>{var Ee=bY(),Se=b(Ee);H(nt=>N(Se,nt),[()=>JSON.stringify(c(D).result,null,2)]),I(Ne,Ee)};O(Tt,Ne=>{c(D).error?Ne(it):Ne(ye,-1)})}I(Ve,De)};O(ne,Ve=>{c(D)&&Ve(Le)})}H(()=>N(ge,`${c(K)??""}${c(f)??""} on every update`)),Ht(di,()=>c(y),Ve=>v(y,Ve)),Ht(W,()=>c(g),Ve=>v(g,Ve)),ms(le,()=>c(x),Ve=>v(x,Ve)),I(re,Ge)};O(Yt,re=>{c(M)?re(qt):re(Qt,-1)})}H(()=>N(hi,c(f))),z("click",Ci,Bi),z("click",zi,Ti),z("click",$e,Ni),I(At,ai)},Zt=At=>{t(At)};O(me,At=>{c(f)?At(Ze):At(Zt,-1)})}var bt=m(ae,2);{var We=At=>{var ai=CY(),zt=xt(ai),vi=m(zt,2);let hi;var Ci=b(vi);rY(Ci,{get currentView(){return c(Vt)},onApplyView:Me}),H(()=>hi=zo(vi,"",hi,{width:`${c(ct)??""}px`})),z("mousedown",zt,he),I(At,ai)};O(bt,At=>{c(et)&&At(We)})}H(()=>_t=zo(Qe,"",_t,{width:`${c(we)??""}px`})),z("click",Ot,()=>{v(ue,!c(ue)),v(He,null)}),Ht(ze,()=>c(Di),At=>v(Di,At)),z("mousedown",X,jt),I(Ue,J)};O(Oi,Ue=>{c(se)==="docs"?Ue(qi):Ue(mi,-1)})}H(()=>{Kt=kt(rt,1,"svelte-rrt0o",null,Kt,{active:c(se)==="docs"}),Pi=kt(_i,1,"svelte-rrt0o",null,Pi,{active:c(se)==="views"})}),z("mousemove",Ui,ft),z("mouseup",Ui,ht),ds("mouseleave",Ui,ht),z("click",rt,()=>v(se,"docs")),z("click",_i,()=>v(se,"views")),I(o,Ui),Ps()}zs(["mousemove","mouseup","click","keydown","mousedown"]);var IY=T('<label class="svelte-1ua3isv">Passcode <input type="number" placeholder="20202021" class="svelte-1ua3isv"/></label> <label class="svelte-1ua3isv">Discriminator (optional) <input type="number" placeholder="3840" class="svelte-1ua3isv"/></label>',1),EY=T('<label class="svelte-1ua3isv">Pairing Code / QR <input type="text" placeholder="MT:..." class="svelte-1ua3isv"/></label>'),xD=T('<p class="err svelte-1ua3isv"> </p>'),DY=T('<div class="wizard svelte-1ua3isv"><div class="wizard-tabs svelte-1ua3isv"><button>Passcode</button> <button>QR / Code</button></div> <!> <label class="svelte-1ua3isv">IP Address (optional, bypasses mDNS) <input type="text" placeholder="192.168.1.100 or 192.168.1.100:5540" class="svelte-1ua3isv"/></label> <!> <button class="commission-btn svelte-1ua3isv"> </button></div>'),TY=T('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),PY=T('<span class="device-name svelte-1ua3isv"> </span>'),MY=T('<li><button class="device-select-btn svelte-1ua3isv"><span></span> <span class="device-label svelte-1ua3isv"><!></span></button> <button class="unpair-btn svelte-1ua3isv" title="Unpair">✕</button></li>'),RY=T('<li class="empty svelte-1ua3isv">No paired devices</li>'),NY=T('<p class="info svelte-1ua3isv">Loading…</p>'),AY=T('<p class="device-subtitle svelte-1ua3isv"> </p>'),OY=T('<span class="ep-chip svelte-1ua3isv"> </span>'),FY=T('<span class="attr-id svelte-1ua3isv"> </span>'),HY=T('<button class="attr-action-btn svelte-1ua3isv"> </button>'),WY=T('<div class="attr-actions svelte-1ua3isv"></div>'),BY=T('<span class="cmd-sep svelte-1ua3isv">,</span>'),zY=T('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),VY=T('<span class="cmd-id svelte-1ua3isv"> </span>'),jY=T("<!> <!>",1),$Y=T('<span class="cmd-list svelte-1ua3isv"></span>'),UY=T(' <span class="cmd-id svelte-1ua3isv"> </span>',1),qY=T('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),GY=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"><th class="svelte-1ua3isv">deviceType</th><th class="svelte-1ua3isv">revision</th></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),KY=T('<th class="svelte-1ua3isv"> </th>'),ZY=T('<td class="svelte-1ua3isv"> </td>'),YY=T('<tr class="svelte-1ua3isv"></tr>'),XY=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),QY=T('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),JY=T('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),eX=T('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),tX=T('<span class="attr-val svelte-1ua3isv"> </span>'),iX=T('<tr class="svelte-1ua3isv"><td class="attr-name-cell svelte-1ua3isv"><span class="attr-key svelte-1ua3isv"> </span><!></td><td class="attr-actions-cell svelte-1ua3isv"><!></td><td class="attr-val-cell svelte-1ua3isv"><!></td></tr>'),nX=T('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),sX=T('<table class="cluster-table svelte-1ua3isv"><colgroup><col class="col-attr-name svelte-1ua3isv"/><col class="col-attr-actions svelte-1ua3isv"/><col class="col-attr-val"/></colgroup><tbody class="svelte-1ua3isv"></tbody></table>'),oX=T('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),rX=T('<details class="svelte-1ua3isv"><summary class="svelte-1ua3isv"> <span class="ep-id svelte-1ua3isv"> </span> <span class="ep-chips svelte-1ua3isv"></span></summary> <!></details>'),aX=T('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),lX=T('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),cX=T('<span class="stream-badge svelte-1ua3isv"> </span>'),dX=T('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),bS=T('&nbsp;<span class="e-sub svelte-1ua3isv"> </span>',1),uX=T('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),hX=T('<span class="e-badge e-badge-attr svelte-1ua3isv">attr</span> <span class="e-node svelte-1ua3isv"> <!></span> <span class="e-ep svelte-1ua3isv"> <!></span> <span class="e-cluster svelte-1ua3isv"> </span> <span class="e-attr svelte-1ua3isv"> </span> <span class="e-val svelte-1ua3isv"> </span>',1),fX=T('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),gX=T('<div class="stream-body svelte-1ua3isv"><!></div>'),pX=T('<!> <div class="matter-page svelte-1ua3isv"><div class="matter-main svelte-1ua3isv"><div class="sidebar svelte-1ua3isv"><div class="sidebar-header svelte-1ua3isv"><span class="sidebar-title svelte-1ua3isv">Matter Devices</span> <button class="add-btn svelte-1ua3isv" title="Commission new device">+</button></div> <!> <ul class="device-list svelte-1ua3isv"><!> <!></ul></div> <div class="detail svelte-1ua3isv"><!></div></div> <div class="stream-panel svelte-1ua3isv"><div class="stream-resize svelte-1ua3isv"></div> <div class="stream-hdr-row svelte-1ua3isv"><span class="stream-title svelte-1ua3isv">Matter Events</span> <!> <button class="stream-toggle svelte-1ua3isv" title="Toggle event feed"> </button></div> <!></div></div>',1);function _X(o,e){Ts(e,!0);const t={onOff:{onOff:[{label:"On",command:"on"},{label:"Off",command:"off"},{label:"Toggle",command:"toggle"}]},levelControl:{currentLevel:[{label:"Step ▲",command:"stepWithOnOff",args:{stepMode:0,stepSize:25,transitionTime:5}},{label:"Step ▼",command:"stepWithOnOff",args:{stepMode:1,stepSize:25,transitionTime:5}}]},windowCovering:{currentPositionLiftPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}],currentPositionTiltPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}]}};async function i(J,Qe,_t,yt,Ot){try{await eq(J,Qe,_t,yt,Ot)}catch(j){console.error("matter command failed",j)}}const n={identify:{0:"identify",1:"triggerEffect"},groups:{0:"addGroup",1:"viewGroup",2:"getGroupMembership",3:"removeGroup",4:"removeAllGroups",5:"addGroupIfIdentifying"},scenes:{0:"addScene",1:"viewScene",2:"removeScene",3:"removeAllScenes",4:"storeScene",5:"recallScene",6:"getSceneMembership",64:"enhancedAddScene",65:"enhancedViewScene",66:"copyScene"},onOff:{0:"off",1:"on",2:"toggle",64:"offWithEffect",65:"onWithRecallGlobalScene",66:"onWithTimedOff"},levelControl:{0:"moveToLevel",1:"move",2:"step",3:"stop",4:"moveToLevelWithOnOff",5:"moveWithOnOff",6:"stepWithOnOff",7:"stopWithOnOff",8:"moveToClosestFrequency"},colorControl:{0:"moveToHue",1:"moveHue",2:"stepHue",3:"moveToSaturation",4:"moveSaturation",5:"stepSaturation",6:"moveToHueAndSaturation",7:"moveToColor",8:"moveColor",9:"stepColor",10:"moveToColorTemperature",64:"enhancedMoveToHue",65:"enhancedMoveHue",66:"enhancedStepHue",67:"enhancedMoveToHueAndSaturation",68:"colorLoopSet",71:"stopMoveStep",75:"moveColorTemperature",76:"stepColorTemperature"},thermostat:{0:"setpointRaiseLower",1:"setWeeklySchedule",2:"getWeeklySchedule",3:"clearWeeklySchedule"},doorLock:{0:"lockDoor",1:"unlockDoor",3:"unlockWithTimeout",11:"setWeekDaySchedule",12:"getWeekDaySchedule",13:"clearWeekDaySchedule",14:"setYearDaySchedule",15:"getYearDaySchedule",16:"clearYearDaySchedule",17:"setHolidaySchedule",18:"getHolidaySchedule",19:"clearHolidaySchedule",26:"setUser",27:"getUser",28:"clearUser",34:"setCredential",36:"getCredential",38:"clearCredential"},windowCovering:{0:"upOrOpen",1:"downOrClose",2:"stopMotion",4:"goToLiftValue",5:"goToLiftPercentage",7:"goToTiltValue",8:"goToTiltPercentage"},fanControl:{0:"step"}};function s(J,Qe){const _t=n[J];return Qe.map(yt=>{const Ot=typeof yt=="number"?yt:Number(yt);return{id:Ot,name:(_t==null?void 0:_t[Ot])??null}})}const r={10:"Door Lock",11:"Door Lock Controller",14:"Aggregator",15:"Generic Switch",17:"On/Off Plug-In Unit",18:"Dimmable Plug-In Unit",19:"Pump",20:"On/Off Light Switch",21:"Dimmer Switch",22:"Color Dimmer Switch",23:"Control Bridge",24:"Pump Controller",256:"On/Off Light",257:"Dimmable Light",268:"Extended Color Light",269:"Color Temperature Light",262:"Light Sensor",263:"Occupancy Sensor",514:"Window Covering",515:"Window Covering Controller",768:"Heating/Cooling Unit",769:"Thermostat",770:"Temperature Sensor",771:"Pressure Sensor",772:"Flow Sensor",773:"Humidity Sensor",774:"On/Off Sensor",2112:"Air Quality Sensor"},a={generatedCommandList:65528,acceptedCommandList:65529,eventList:65530,attributeList:65531,featureMap:65532,clusterRevision:65533},d={descriptor:{deviceTypeList:0,serverList:1,clientList:2,partsList:3,tagList:4},basicInformation:{dataModelRevision:0,vendorName:1,vendorID:2,vendorId:2,productName:3,productID:4,productId:4,nodeLabel:5,location:6,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,localConfigDisabled:16,reachable:17,uniqueID:18,uniqueId:18,capabilityMinima:19,productAppearance:20,specificationVersion:21,maxPathsPerInvoke:22},bridgedDeviceBasicInformation:{vendorName:1,vendorID:2,vendorId:2,productName:3,productId:4,nodeLabel:5,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,reachable:17,uniqueID:18,uniqueId:18,productAppearance:20},identify:{identifyTime:0,identifyType:1},groups:{nameSupport:0},onOff:{onOff:0,globalSceneControl:16384,onTime:16385,offWaitTime:16386,startUpOnOff:16387},levelControl:{currentLevel:0,remainingTime:1,minLevel:2,maxLevel:3,currentFrequency:4,minFrequency:5,maxFrequency:6,options:15,onOffTransitionTime:16,onLevel:17,onTransitionTime:18,offTransitionTime:19,defaultMoveRate:20,startUpCurrentLevel:16384},colorControl:{currentHue:0,currentSaturation:1,remainingTime:2,currentX:3,currentY:4,colorTemperatureMireds:7,colorMode:8,options:15,enhancedCurrentHue:16384,enhancedColorMode:16385,colorLoopActive:16386,colorLoopDirection:16387,colorLoopTime:16388,colorCapabilities:16394,colorTempPhysicalMinMireds:16395,colorTempPhysicalMaxMireds:16396,coupleColorTempToLevelMinMireds:16397,startUpColorTemperatureMireds:16400},thermostat:{localTemperature:0,outdoorTemperature:1,occupancy:2,absMinHeatSetpointLimit:3,absMaxHeatSetpointLimit:4,absMinCoolSetpointLimit:5,absMaxCoolSetpointLimit:6,piCoolingDemand:7,piHeatingDemand:8,localTemperatureCalibration:16,occupiedCoolingSetpoint:17,occupiedHeatingSetpoint:18,unoccupiedCoolingSetpoint:19,unoccupiedHeatingSetpoint:20,minHeatSetpointLimit:21,maxHeatSetpointLimit:22,minCoolSetpointLimit:23,maxCoolSetpointLimit:24,minSetpointDeadBand:25,remoteSensing:26,controlSequenceOfOperation:27,systemMode:28,thermostatRunningMode:30,startOfWeek:32,numberOfWeeklyTransitions:33,numberOfDailyTransitions:34,temperatureSetpointHold:35,temperatureSetpointHoldDuration:36,thermostatProgrammingOperationMode:37,thermostatRunningState:41,setpointChangeSource:48,setpointChangeAmount:49,setpointChangeSourceTimestamp:50,occupiedSetback:52,unoccupiedSetback:55,emergencyHeatDelta:58},windowCovering:{type:0,physicalClosedLimitLift:1,physicalClosedLimitTilt:2,currentPositionLift:3,currentPositionTilt:4,numberOfActuationsLift:5,numberOfActuationsTilt:6,configStatus:7,currentPositionLiftPercentage:8,currentPositionTiltPercentage:9,operationalStatus:10,targetPositionLiftPercent100ths:11,targetPositionTiltPercent100ths:12,endProductType:13,currentPositionLiftPercent100ths:14,currentPositionTiltPercent100ths:15,installedOpenLimitLift:16,installedClosedLimitLift:17,installedOpenLimitTilt:18,installedClosedLimitTilt:19,mode:23,safetyStatus:26},doorLock:{lockState:0,lockType:1,actuatorEnabled:2,doorState:3,numberOfTotalUsersSupported:17,numberOfPINUsersSupported:18,maxPINCodeLength:23,minPINCodeLength:24,language:33,autoRelockTime:35,soundVolume:36,operatingMode:37,supportedOperatingModes:38,wrongCodeEntryLimit:48},fanControl:{fanMode:0,fanModeSequence:1,percentSetting:2,percentCurrent:3,speedMax:4,speedSetting:5,speedCurrent:6,rockSupport:7,rockSetting:8,windSupport:9,windSetting:10,airflowDirectionSupport:11,airflowDirection:12},occupancySensing:{occupancy:0,occupancySensorType:1,occupancySensorTypeBitmap:2,holdTime:3,pirOccupiedToUnoccupiedDelay:16,pirUnoccupiedToOccupiedDelay:17},illuminanceMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,lightSensorType:4},temperatureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},pressureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,scaledValue:16,minScaledValue:17,maxScaledValue:18,scale:20},flowMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},relativeHumidityMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},powerSource:{status:0,order:1,description:2,batVoltage:11,batPercentRemaining:12,batTimeRemaining:13,batChargeLevel:14,batReplacementNeeded:15,batReplaceability:16,batPresent:17,activeBatFaults:18,batChargeState:26}};function u(J){return"0x"+J.toString(16).toUpperCase().padStart(4,"0")}let f=P(yi([])),g=yi(new Map);function p(J){if(J==null)return"—";if(typeof J=="boolean"||typeof J=="number")return String(J);if(typeof J=="string")return J.length>50?J.slice(0,47)+"…":J;const Qe=JSON.stringify(J);return Qe.length>60?Qe.slice(0,57)+"…":Qe}function w(J){return J==null?"—":typeof J=="boolean"||typeof J=="number"?String(J):typeof J=="string"?J:JSON.stringify(J)}function y(J){return J!==null&&typeof J=="object"&&!Array.isArray(J)}function x(J){return Array.isArray(J)&&J.length>0&&J.every(y)}function k(J,Qe){return!!(Qe==="attributeList"||Array.isArray(J)&&J.length===0||y(J)&&Object.keys(J).length===0)}function D(J){return new Date(J).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const M=500,F=20,K=32;let V=0,se=P(yi([])),te=P(!0),pe=P(180),je=Ct(()=>{const J=Math.max(1,Math.floor((c(pe)-K)/F)+1);return c(se).slice(0,J)});function Ke(J){J.preventDefault();const Qe=J.clientY,_t=c(pe);function yt(j){v(pe,Math.max(60,Math.min(600,_t+Qe-j.clientY)),!0)}function Ot(){document.removeEventListener("mousemove",yt),document.removeEventListener("mouseup",Ot)}document.addEventListener("mousemove",yt),document.addEventListener("mouseup",Ot)}let ue=P(null),He=P(!1),dt=P(null),we=P(!1),gt=P("passcode"),ot=P(""),Pt=P(""),Oe=P(""),Mt=P(!1),et=P(null),ct=P("");const Nt="she:matter:selectedNodeId";async function ti(){try{v(f,await ZN(),!0);for(const J of c(f))Jm(J.nodeId).then(Qe=>{g.set(J.nodeId,Qe)}).catch(()=>{});if(c(f).length>0&&!c(ue)){const J=localStorage.getItem(Nt),Qe=J&&c(f).find(_t=>_t.nodeId===J)?J:c(f)[0].nodeId;ri(Qe)}}catch{v(f,[],!0)}}async function ri(J){v(He,!0),v(dt,null);try{v(ue,await Jm(J),!0),g.set(J,c(ue)),localStorage.setItem(Nt,J)}catch(Qe){v(dt,Qe instanceof Error?Qe.message:String(Qe),!0)}finally{v(He,!1)}}let Vt;async function Me(J){var Qe;if(await Vt.show(`Unpair device ${J}?`,{confirm:"Unpair",danger:!0}))try{await JU(J),((Qe=c(ue))==null?void 0:Qe.nodeId)===J&&v(ue,null),await ti()}catch(_t){v(dt,_t instanceof Error?_t.message:String(_t),!0)}}async function jt(){v(Mt,!0),v(et,null);try{let J;c(gt)==="passcode"?(J={passcode:Number(c(ot))},c(Pt)&&(J={...J,discriminator:Number(c(Pt))})):J={pairingCode:c(Oe).trim()},c(ct).trim()&&(J={...J,discoveryAddress:c(ct).trim()}),await QU(J),v(we,!1),v(ot,""),v(Pt,""),v(Oe,""),v(ct,""),await ti()}catch(J){v(et,J instanceof Error?J.message:String(J),!0)}finally{v(Mt,!1)}}Bs(()=>{ti()});const ft=cr("matter:deviceList",J=>{if(!Array.isArray(J.devices))return;const Qe=J.devices;for(const _t of Qe)g.has(_t.nodeId)||Jm(_t.nodeId).then(yt=>{g.set(_t.nodeId,yt)}).catch(()=>{});v(f,Qe,!0)}),ht=cr("matter:deviceStatus",J=>{if(J.nodeId===void 0)return;const Qe=String(J.nodeId),_t=!!J.online;v(f,c(f).map(yt=>yt.nodeId===Qe?{...yt,online:_t}:yt),!0),v(se,[{id:V++,kind:"status",nodeId:Qe,online:_t,ts:Date.now()},...c(se).slice(0,M-1)],!0)}),he=cr("matter:attr",J=>{const Qe=String(J.nodeId),_t=J.endpointId,yt=String(J.clusterName),Ot=String(J.attrName),j=J.value;if(c(ue)&&c(ue).nodeId===Qe){const ke=c(ue).endpoints.find(st=>st.endpointId===_t),ze=ke==null?void 0:ke.clusters.find(st=>st.name===yt);ze&&(ze.attrs[Ot]=j)}const ce=g.get(Qe);if(ce){const ke=ce.endpoints.find(st=>st.endpointId===_t),ze=ke==null?void 0:ke.clusters.find(st=>st.name===yt);ze&&(ze.attrs[Ot]=j)}v(se,[{id:V++,kind:"attr",nodeId:Qe,endpointId:_t,clusterName:yt,attrName:Ot,value:j,ts:J.ts??Date.now()},...c(se).slice(0,M-1)],!0)});x_(()=>{ft(),ht(),he()});var Xe=pX(),Ut=xt(Xe);vs(Uc(Ut,{}),J=>Vt=J,()=>Vt);var wi=m(Ut,2),Ri=b(wi),ci=b(Ri),Bt=b(ci),Xt=m(b(Bt),2),pt=m(Bt,2);{var Bi=J=>{var Qe=DY(),_t=b(Qe),yt=b(_t);let Ot;var j=m(yt,2);let ce;var ke=m(_t,2);{var ze=We=>{var At=IY(),ai=xt(At),zt=m(b(ai)),vi=m(ai,2),hi=m(b(vi));Ht(zt,()=>c(ot),Ci=>v(ot,Ci)),Ht(hi,()=>c(Pt),Ci=>v(Pt,Ci)),I(We,At)},st=We=>{var At=EY(),ai=m(b(At));Ht(ai,()=>c(Oe),zt=>v(Oe,zt)),I(We,At)};O(ke,We=>{c(gt)==="passcode"?We(ze):We(st,-1)})}var X=m(ke,2),ae=m(b(X)),me=m(X,2);{var Ze=We=>{var At=xD(),ai=b(At);H(()=>N(ai,c(et))),I(We,At)};O(me,We=>{c(et)&&We(Ze)})}var Zt=m(me,2),bt=b(Zt);H(()=>{Ot=kt(yt,1,"svelte-1ua3isv",null,Ot,{active:c(gt)==="passcode"}),ce=kt(j,1,"svelte-1ua3isv",null,ce,{active:c(gt)==="pairingCode"}),Zt.disabled=c(Mt),N(bt,c(Mt)?"Commissioning…":"Commission")}),z("click",yt,()=>v(gt,"passcode")),z("click",j,()=>v(gt,"pairingCode")),Ht(ae,()=>c(ct),We=>v(ct,We)),z("click",Zt,jt),I(J,Qe)};O(pt,J=>{c(we)&&J(Bi)})}var Ti=m(pt,2),Ni=b(Ti);ni(Ni,17,()=>c(f),J=>J.nodeId,(J,Qe)=>{var _t=MY();let yt;var Ot=b(_t),j=b(Ot);let ce;var ke=m(j,2),ze=b(ke);{var st=me=>{var Ze=TY(),Zt=xt(Ze),bt=b(Zt),We=m(Zt,2),At=b(We);H(()=>{N(bt,c(Qe).name),N(At,`#${c(Qe).nodeId??""}`)}),I(me,Ze)},X=me=>{var Ze=PY(),Zt=b(Ze);H(()=>N(Zt,`Node ${c(Qe).nodeId??""}`)),I(me,Ze)};O(ze,me=>{c(Qe).name?me(st):me(X,-1)})}var ae=m(Ot,2);H(()=>{var me;yt=kt(_t,1,"svelte-1ua3isv",null,yt,{selected:((me=c(ue))==null?void 0:me.nodeId)===c(Qe).nodeId}),ce=kt(j,1,"status-dot svelte-1ua3isv",null,ce,{online:c(Qe).online})}),z("click",Ot,()=>ri(c(Qe).nodeId)),z("click",ae,()=>Me(c(Qe).nodeId)),I(J,_t)});var Ki=m(Ni,2);{var Ai=J=>{var Qe=RY();I(J,Qe)};O(Ki,J=>{c(f).length===0&&J(Ai)})}var Di=m(ci,2),$i=b(Di);{var Gi=J=>{var Qe=NY();I(J,Qe)},Ui=J=>{var Qe=xD(),_t=b(Qe);H(()=>N(_t,c(dt))),I(J,Qe)},mn=J=>{var Qe=aX(),_t=xt(Qe),yt=b(_t),Ot=b(yt),j=m(yt,2);{var ce=X=>{var ae=AY(),me=b(ae);H(()=>N(me,c(ue).subtitle)),I(X,ae)};O(j,X=>{c(ue).subtitle&&X(ce)})}var ke=m(j,2),ze=b(ke),st=m(_t,2);ni(st,17,()=>c(ue).endpoints,X=>X.endpointId,(X,ae)=>{var me=rX(),Ze=b(me),Zt=b(Ze),bt=m(Zt),We=b(bt),At=m(bt,2);ni(At,21,()=>c(ae).clusters,Vi,(hi,Ci)=>{var zi=OY(),$e=b(zi);H(()=>N($e,c(Ci).name)),I(hi,zi)});var ai=m(Ze,2);{var zt=hi=>{var Ci=sX(),zi=m(b(Ci));ni(zi,21,()=>c(ae).clusters,Vi,($e,Fe)=>{var Ft=nX(),Yt=xt(Ft),qt=b(Yt),Qt=b(qt),re=m(Yt,2);ni(re,17,()=>Object.entries(c(Fe).attrs),Vi,(Ge,wt)=>{var vt=Ct(()=>zL(c(wt),2));let di=()=>c(vt)[0],It=()=>c(vt)[1];var Ii=As(),W=xt(Ii);{var Q=$=>{const A=Ct(()=>{var Ee;return(Ee=t[c(Fe).name])==null?void 0:Ee[di()]}),G=Ct(()=>(di()==="acceptedCommandList"||di()==="generatedCommandList")&&Array.isArray(It())),ie=Ct(()=>{var Ee;return((Ee=d[c(Fe).name])==null?void 0:Ee[di()])??a[di()]});var fe=iX(),Y=b(fe),le=b(Y),Re=b(le),_e=m(le);{var ge=Ee=>{var Se=FY(),nt=b(Se);H(de=>N(nt,`(${de??""})`),[()=>u(c(ie))]),I(Ee,Se)};O(_e,Ee=>{c(ie)!==void 0&&Ee(ge)})}var tt=m(Y),U=b(tt);{var ne=Ee=>{var Se=WY();ni(Se,21,()=>c(A),Vi,(nt,de)=>{var Pe=HY(),at=b(Pe);H(()=>N(at,c(de).label)),z("click",Pe,()=>i(c(ue).nodeId,c(ae).endpointId,c(Fe).name,c(de).command,c(de).args)),I(nt,Pe)}),I(Ee,Se)};O(U,Ee=>{c(A)&&Ee(ne)})}var Le=m(tt),Ve=b(Le);{var De=Ee=>{var Se=$Y();ni(Se,21,()=>s(c(Fe).name,It()),Vi,(nt,de,Pe)=>{var at=jY(),ut=xt(at);{var Je=ii=>{var xi=BY();I(ii,xi)};O(ut,ii=>{Pe>0&&ii(Je)})}var $t=m(ut,2);{var Jt=ii=>{var xi=zY(),Ji=xt(xi),Hi=b(Ji),li=m(Ji),un=b(li);H(()=>{N(Hi,c(de).name),N(un,`(${c(de).id??""})`)}),I(ii,xi)},Mi=ii=>{var xi=VY(),Ji=b(xi);H(()=>N(Ji,c(de).id)),I(ii,xi)};O($t,ii=>{c(de).name?ii(Jt):ii(Mi,-1)})}I(nt,at)}),I(Ee,Se)},Ie=Ee=>{var Se=GY(),nt=m(b(Se));ni(nt,21,It,Vi,(de,Pe)=>{const at=Ct(()=>c(Pe)),ut=Ct(()=>c(at).deviceType),Je=Ct(()=>r[c(ut)]);var $t=qY(),Jt=b($t),Mi=b(Jt);{var ii=li=>{var un=UY(),rn=xt(un),es=m(rn),js=b(es);H(fo=>{N(rn,`${c(Je)??""} `),N(js,`(${fo??""})`)},[()=>u(c(ut))]),I(li,un)},xi=li=>{var un=po();H(rn=>N(un,rn),[()=>u(c(ut))]),I(li,un)};O(Mi,li=>{c(Je)?li(ii):li(xi,-1)})}var Ji=m(Jt),Hi=b(Ji);H(li=>N(Hi,li),[()=>w(c(at).revision)]),I(de,$t)}),I(Ee,Se)},St=Ct(()=>di()==="deviceTypeList"&&Array.isArray(It())),mt=Ee=>{const Se=Ct(()=>[...new Set(It().flatMap(ut=>Object.keys(ut)))]);var nt=XY(),de=b(nt),Pe=b(de);ni(Pe,21,()=>c(Se),Vi,(ut,Je)=>{var $t=KY(),Jt=b($t);H(()=>N(Jt,c(Je))),I(ut,$t)});var at=m(de);ni(at,21,It,Vi,(ut,Je)=>{var $t=YY();ni($t,21,()=>c(Se),Vi,(Jt,Mi)=>{var ii=ZY(),xi=b(ii);H(Ji=>N(xi,Ji),[()=>w(c(Je)[c(Mi)])]),I(Jt,ii)}),I(ut,$t)}),I(Ee,nt)},qe=Ct(()=>x(It())),Tt=Ee=>{var Se=JY(),nt=b(Se);ni(nt,21,()=>Object.entries(It()),Vi,(de,Pe)=>{var at=Ct(()=>zL(c(Pe),2));let ut=()=>c(at)[0],Je=()=>c(at)[1];var $t=QY(),Jt=b($t),Mi=b(Jt),ii=m(Jt),xi=b(ii);H(Ji=>{N(Mi,ut()),N(xi,Ji)},[()=>w(Je())]),I(de,$t)}),I(Ee,Se)},it=Ct(()=>y(It())),ye=Ee=>{var Se=eX(),nt=b(Se);H(()=>{ln(Se,"href",It()),N(nt,It())}),I(Ee,Se)},Ne=Ee=>{var Se=tX(),nt=b(Se);H(de=>N(nt,de),[()=>w(It())]),I(Ee,Se)};O(Ve,Ee=>{c(G)?Ee(De):c(St)?Ee(Ie,1):c(qe)?Ee(mt,2):c(it)?Ee(Tt,3):(di()==="productUrl"||di()==="productURL")&&typeof It()=="string"?Ee(ye,4):Ee(Ne,-1)})}H(()=>{ln(Y,"title",di()),N(Re,di())}),I($,fe)},oe=Ct(()=>!k(It(),di()));O(W,$=>{c(oe)&&$(Q)})}I(Ge,Ii)}),H(()=>N(Qt,c(Fe).name)),I($e,Ft)}),I(hi,Ci)},vi=hi=>{var Ci=oX();I(hi,Ci)};O(ai,hi=>{c(ae).clusters.length>0?hi(zt):hi(vi,-1)})}H(()=>{N(Zt,`${c(ae).name??`Endpoint ${c(ae).endpointId}`??""} `),N(We,`ep${c(ae).endpointId??""}`)}),I(X,me)}),H(()=>{N(Ot,c(ue).name??`Node ${c(ue).nodeId}`),N(ze,`Node ID: ${c(ue).nodeId??""}`)}),I(J,Qe)},rt=J=>{var Qe=lX();I(J,Qe)};O($i,J=>{c(He)?J(Gi):c(dt)?J(Ui,1):c(ue)?J(mn,2):J(rt,-1)})}var Kt=m(Ri,2),_i=b(Kt),Pi=m(_i,2),Li=m(b(Pi),2);{var Si=J=>{var Qe=cX(),_t=b(Qe);H(()=>N(_t,c(se).length)),I(J,Qe)};O(Li,J=>{!c(te)&&c(se).length>0&&J(Si)})}var Oi=m(Li,2),qi=b(Oi),mi=m(Pi,2);{var Ue=J=>{var Qe=gX(),_t=b(Qe);{var yt=j=>{var ce=dX();I(j,ce)},Ot=j=>{var ce=As(),ke=xt(ce);ni(ke,17,()=>c(je),ze=>ze.id,(ze,st)=>{const X=Ct(()=>{var zt,vi;return((zt=g.get(c(st).nodeId))==null?void 0:zt.name)??((vi=c(f).find(hi=>hi.nodeId===c(st).nodeId))==null?void 0:vi.name)??null}),ae=Ct(()=>{var zt,vi;return c(st).endpointId!==void 0?((vi=(zt=g.get(c(st).nodeId))==null?void 0:zt.endpoints.find(hi=>hi.endpointId===c(st).endpointId))==null?void 0:vi.name)??null:null}),me=Ct(()=>c(st).attrName??c(st).clusterName);var Ze=fX(),Zt=b(Ze),bt=b(Zt),We=m(Zt,2);{var At=zt=>{var vi=uX(),hi=m(xt(vi),2),Ci=b(hi),zi=m(Ci);{var $e=qt=>{var Qt=bS(),re=m(xt(Qt)),Ge=b(re);H(()=>N(Ge,`(#${c(st).nodeId??""})`)),I(qt,Qt)};O(zi,qt=>{c(X)&&qt($e)})}var Fe=m(hi,2);let Ft;var Yt=b(Fe);H(()=>{N(Ci,c(X)??`#${c(st).nodeId}`),Ft=kt(Fe,1,"e-val svelte-1ua3isv",null,Ft,{"e-online":c(st).online,"e-offline":!c(st).online}),N(Yt,c(st).online?"online":"offline")}),I(zt,vi)},ai=zt=>{var vi=hX(),hi=m(xt(vi),2),Ci=b(hi),zi=m(Ci);{var $e=It=>{var Ii=bS(),W=m(xt(Ii)),Q=b(W);H(()=>N(Q,`(#${c(st).nodeId??""})`)),I(It,Ii)};O(zi,It=>{c(X)&&It($e)})}var Fe=m(hi,2),Ft=b(Fe),Yt=m(Ft);{var qt=It=>{var Ii=bS(),W=m(xt(Ii)),Q=b(W);H(()=>N(Q,`(ep ${c(st).endpointId??""})`)),I(It,Ii)};O(Yt,It=>{c(ae)&&It(qt)})}var Qt=m(Fe,2),re=b(Qt),Ge=m(Qt,2),wt=b(Ge),vt=m(Ge,2),di=b(vt);H(It=>{N(Ci,c(X)??`#${c(st).nodeId}`),N(Ft,c(ae)??`ep${c(st).endpointId}`),N(re,c(st).clusterName),N(wt,c(me)),N(di,It)},[()=>p(c(st).value)]),I(zt,vi)};O(We,zt=>{c(st).kind==="status"?zt(At):zt(ai,-1)})}H(zt=>N(bt,zt),[()=>D(c(st).ts)]),I(ze,Ze)}),I(j,ce)};O(_t,j=>{c(je).length===0?j(yt):j(Ot,-1)})}I(J,Qe)};O(mi,J=>{c(te)&&J(Ue)})}H(()=>{zo(Kt,c(te)?`height: ${c(pe)}px;`:""),N(qi,c(te)?"▾":"▸")}),z("click",Xt,()=>v(we,!c(we))),z("mousedown",_i,Ke),z("click",Oi,()=>{v(te,!c(te))}),I(o,Xe),Ps()}zs(["click","mousedown"]);var mX=T("<button>›</button>"),vX=T('<span class="chev-ph svelte-1vejtrc"></span>'),bX=T('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),yX=T("<button>🔒</button>"),wX=T("<span> </span>"),SX=T('<span class="acl-dyn svelte-1vejtrc" title="per-user/client pattern — cannot evaluate statically">⚠%u/%c</span>'),CX=T('<span class="acl-members svelte-1vejtrc"> </span>'),xX=T('<span class="acl-group svelte-1vejtrc"> </span>'),kX=T('<span> <strong class="svelte-1vejtrc"> </strong> <!> <!> <!></span>'),LX=T('<div class="acl-sec svelte-1vejtrc"><span class="acl-sec-hdr svelte-1vejtrc"> </span> <!></div>'),IX=T('<div class="acl-panel svelte-1vejtrc"></div>'),EX=T('<div class="tc svelte-1vejtrc"></div>'),DX=T('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!> <!></div> <!> <!></div>'),TX=T('<button class="acl-refresh svelte-1vejtrc" title="Refresh ACL data">↺</button>'),PX=T('<button title="Show ACL coverage for topics"><svg width="11" height="11" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="7" width="10" height="8" rx="1.5"></rect><path d="M5 7V5a3 3 0 0 1 6 0v2" fill="none" stroke="currentColor" stroke-width="1.8"></path></svg> ACL<!></button> <!>',1),MX=T("<option></option>"),RX=T('<span class="pub-ok svelte-1vejtrc">✓</span>'),NX=T('<span class="pub-err svelte-1vejtrc"> </span>'),AX=T('<div class="info svelte-1vejtrc">Loading…</div>'),OX=T('<div class="info err svelte-1vejtrc"> </div>'),FX=T('<div class="info svelte-1vejtrc">No topics match.</div>'),HX=T('<div class="vr svelte-1vejtrc"><span class="v-topic svelte-1vejtrc"> </span> <span class="v-val svelte-1vejtrc"> </span> <span class="v-ts svelte-1vejtrc"> </span></div>'),WX=T('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),BX=T('<div class="info svelte-1vejtrc">No topics yet.</div>'),zX=T('<div class="tree-wrap svelte-1vejtrc"><!></div>'),VX=T('<span class="stream-badge"> </span>'),jX=T('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),$X=T('<span class="s-ret svelte-1vejtrc" title="retained snapshot">&#x229B;</span>'),UX=T('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),qX=T('<div class="stream-body svelte-1vejtrc"><!></div>'),GX=T('<div class="ctx-bd svelte-1vejtrc"></div> <div class="ctx-menu svelte-1vejtrc"><button class="svelte-1vejtrc">Copy topic</button> <button class="svelte-1vejtrc">Clear retained</button></div>',1),KX=T('<label class="modal-check svelte-1vejtrc"><input type="checkbox" class="svelte-1vejtrc"/> <span class="checkmark svelte-1vejtrc"></span> Recursive — also clear all child topics</label>'),ZX=T('<div class="modal-bd svelte-1vejtrc"></div> <div class="modal svelte-1vejtrc"><div class="modal-title svelte-1vejtrc">Clear retained</div> <div class="modal-body svelte-1vejtrc"><p class="svelte-1vejtrc">Clear retained value for <code class="svelte-1vejtrc"> </code>?</p> <!></div> <div class="modal-footer svelte-1vejtrc"><button class="btn-cancel svelte-1vejtrc">Cancel</button> <button class="btn-confirm svelte-1vejtrc">Clear</button></div></div>',1),YX=T('<div class="page svelte-1vejtrc"><div class="toolbar svelte-1vejtrc"><h2 class="svelte-1vejtrc">MQTT</h2> <!></div> <div class="main-group svelte-1vejtrc"><div class="pub-bar svelte-1vejtrc"><input class="pt svelte-1vejtrc" type="text" placeholder="topic" list="pub-topic-list" autocomplete="off"/> <datalist id="pub-topic-list"></datalist> <input class="pp svelte-1vejtrc" type="text" placeholder="payload"/> <label class="rl svelte-1vejtrc"><input type="checkbox" class="svelte-1vejtrc"/> <span class="checkmark svelte-1vejtrc"></span> retain</label> <select class="svelte-1vejtrc"><option>QoS 0</option><option>QoS 1</option><option>QoS 2</option></select> <button class="svelte-1vejtrc">Publish</button> <!> <!></div> <div class="tree-filter-bar svelte-1vejtrc"><input class="filter-in svelte-1vejtrc" type="search" placeholder="Filter topics…"/> <span class="count svelte-1vejtrc"><!> </span></div> <!></div> <div class="stream-panel svelte-1vejtrc"><div class="stream-resize svelte-1vejtrc"></div> <div class="stream-hdr-row svelte-1vejtrc"><input class="filter-in stream-filter-in svelte-1vejtrc" type="search" placeholder="Live stream filter (MQTT wildcard, default: #)"/> <!> <button class="stream-toggle svelte-1vejtrc" title="Toggle live stream"> </button></div> <!></div> <!> <!></div>');function XX(o,e){Ts(e,!0);const t=($,A=Hy)=>{const G=Ct(()=>c(g).has(A().path)),ie=Ct(()=>c(a)>=0&&A().children.size>0),fe=Ct(()=>c(a)>=0&&A().isLeaf&&!n.has(A().path));var Y=DX(),le=b(Y);let Re;var _e=b(le);{var ge=ye=>{var Ne=mX();let Ee;H(()=>{Ee=kt(Ne,1,"chev svelte-1vejtrc",null,Ee,{open:c(G)}),ln(Ne,"aria-label",c(G)?"Collapse":"Expand")}),z("click",Ne,()=>p(A().path)),I(ye,Ne)},tt=ye=>{var Ne=vX();I(ye,Ne)};O(_e,ye=>{c(ie)?ye(ge):ye(tt,-1)})}var U=m(_e,2),ne=b(U),Le=m(U,2);{var Ve=ye=>{var Ne=bX(),Ee=xt(Ne),Se=b(Ee),nt=m(Ee,2),de=b(nt);H((Pe,at,ut)=>{ln(Ee,"title",Pe),N(Se,at),N(de,ut)},[()=>{var Pe;return wi((Pe=Bt(A().path))==null?void 0:Pe.val)},()=>{var Pe;return wi((Pe=Bt(A().path))==null?void 0:Pe.val)},()=>{var Pe;return((Pe=Bt(A().path))==null?void 0:Pe.ts)!=null?Ri(Bt(A().path).ts):""}]),I(ye,Ne)},De=Ct(()=>A().isLeaf&&i.has(A().path));O(Le,ye=>{c(De)&&ye(Ve)})}var Ie=m(Le,2);{var St=ye=>{const Ne=Ct(()=>!!c($i)&&mn(A().path));var Ee=yX();let Se;H(()=>{Se=kt(Ee,1,"acl-badge svelte-1vejtrc",null,Se,{matched:c(Ne)}),ln(Ee,"title",c(Ne)?"Has explicit ACL — click to inspect":"No explicit ACL — uses defaults")}),z("click",Ee,nt=>{nt.stopPropagation(),v(Gi,c(Gi)===A().path?null:A().path,!0)}),I(ye,Ee)};O(Ie,ye=>{c(Ai)&&A().isLeaf&&ye(St)})}var mt=m(le,2);{var qe=ye=>{const Ne=Ct(()=>rt(A().path,Bi)),Ee=Ct(()=>rt(A().path,Ti)),Se=Ct(()=>rt(A().path,Ni));var nt=IX();ni(nt,21,()=>[{label:"Send",roles:c(Ne),defType:"publishClientSend"},{label:"Subscribe",roles:c(Ee),defType:"subscribePattern"},{label:"Receive",roles:c(Se),defType:"publishClientReceive"}],Vi,(de,Pe)=>{var at=LX(),ut=b(at),Je=b(ut),$t=m(ut,2);{var Jt=ii=>{var xi=wX();let Ji;var Hi=b(xi);H((li,un)=>{Ji=kt(xi,1,"acl-def svelte-1vejtrc",null,Ji,li),N(Hi,`${un??""} (default)`)},[()=>({allow:_i(c(Pe).defType),deny:!_i(c(Pe).defType)}),()=>_i(c(Pe).defType)?"allow":"deny"]),I(ii,xi)},Mi=ii=>{var xi=As(),Ji=xt(xi);ni(Ji,17,()=>c(Pe).roles,Vi,(Hi,li)=>{const un=Ct(()=>Kt(c(li).rolename));var rn=kX();let es;var js=b(rn),fo=m(js),Zo=b(fo),hr=m(fo,2);{var Yn=Ms=>{var fs=SX();I(Ms,fs)};O(hr,Ms=>{c(li).dynamic&&Ms(Yn)})}var Yo=m(hr,2);{var fr=Ms=>{var fs=CX(),ns=b(fs);H(Rs=>N(ns,Rs),[()=>c(un).direct.join(", ")]),I(Ms,fs)};O(Yo,Ms=>{c(un).direct.length>0&&Ms(fr)})}var vn=m(Yo,2);ni(vn,17,()=>c(un).viaGroup,Vi,(Ms,fs)=>{var ns=xX(),Rs=b(ns);H(()=>N(Rs,c(fs).groupname)),I(Ms,ns)}),H(()=>{es=kt(rn,1,"acl-role svelte-1vejtrc",null,es,{allow:c(li).allow,deny:!c(li).allow}),N(js,`${c(li).allow?"✓":"✗"} `),N(Zo,c(li).rolename)}),I(Hi,rn)}),I(ii,xi)};O($t,ii=>{c(Pe).roles.length===0?ii(Jt):ii(Mi,-1)})}H(()=>N(Je,c(Pe).label)),I(de,at)}),I(ye,nt)};O(mt,ye=>{c(Ai)&&A().isLeaf&&c(Gi)===A().path&&c($i)&&ye(qe)})}var Tt=m(mt,2);{var it=ye=>{var Ne=EX();ni(Ne,21,()=>[...A().children.values()].sort((Ee,Se)=>Ee.seg.localeCompare(Se.seg)),Ee=>Ee.path,(Ee,Se)=>{t(Ee,()=>c(Se))}),I(ye,Ne)};O(Tt,ye=>{c(ie)&&c(G)&&ye(it)})}H(()=>{Re=kt(le,1,"tr svelte-1vejtrc",null,Re,{stale:c(fe)}),N(ne,A().seg)}),z("click",le,()=>{v(He,A().path+"/#")}),z("contextmenu",le,ye=>{ye.preventDefault(),v(ct,{x:ye.clientX,y:ye.clientY,topic:A().path},!0)}),I($,Y)},i=new Map,n=new Set,s=new Set;let r=null,a=P(0);function d(){r===null&&(r=requestAnimationFrame(()=>{r=null;for(const $ of s)f($);s.clear(),$L(a)}))}const u=new Map;function f($){const A=$.split("/");let G=u,ie="";for(let fe=0;fe<A.length;fe++){const Y=A[fe];ie=fe===0?Y:`${ie}/${Y}`,G.has(Y)||G.set(Y,{seg:Y,path:ie,children:new Map,isLeaf:!1});const le=G.get(Y);fe===A.length-1&&(le.isLeaf=!0),G=le.children}}let g=P(yi(new Set));function p($){const A=new Set(c(g));A.has($)?A.delete($):A.add($),v(g,A,!0)}let w=P("");const y=24,x=5;let k=P(0),D=P(300),M=Ct(()=>{if(c(a),!c(w))return[];const $=c(w).toLowerCase().split(/\s+/).filter(Boolean),A=[];for(const[G,ie]of i){const fe=G.toLowerCase();$.every(Y=>fe.includes(Y))&&A.push({topic:G,...ie})}return A.sort((G,ie)=>G.topic.localeCompare(ie.topic))}),F=Ct(()=>{const $=c(M).length,A=Math.max(0,Math.floor(c(k)/y)-x),G=Math.min($,Math.ceil((c(k)+c(D))/y)+x);return{start:A,end:G,totalH:$*y,top:A*y}});const K=1e3,V=200,se=20,te=36;let pe=0,je=P(yi([])),Ke=P(yi([])),ue=P(!0),He=P("#"),dt=P(200);Vn(()=>{const $=c(He).trim(),A=Fl(()=>c(je)),G=!$||$==="#"?A.slice(0,V):A.filter(ie=>we($,ie.topic)).slice(0,V);if($&&$!=="#"){const ie=new Set(G.map(Y=>Y.topic)),fe=[];for(const[Y,le]of i)ie.has(Y)||we($,Y)&&fe.push({id:-(fe.length+1),topic:Y,val:le.val,ts:le.ts,retained:!0});fe.sort((Y,le)=>Y.topic.localeCompare(le.topic)),v(Ke,[...G,...fe],!0)}else v(Ke,G,!0)});function we($,A){if($==="#")return!0;const G=$.split("/"),ie=A.split("/");for(let fe=0;fe<G.length;fe++){if(G[fe]==="#")return!0;if(fe>=ie.length||G[fe]!=="+"&&G[fe]!==ie[fe])return!1}return G.length===ie.length}function gt($){$.preventDefault();const A=$.clientY,G=c(dt);function ie(Y){v(dt,Math.max(60,Math.min(800,G+A-Y.clientY)),!0)}function fe(){document.removeEventListener("mousemove",ie),document.removeEventListener("mouseup",fe)}document.addEventListener("mousemove",ie),document.addEventListener("mouseup",fe)}let ot=Ct(()=>{const $=Math.max(1,Math.floor((c(dt)-te)/se)+1);return c(Ke).slice(0,$)}),Pt=P(!0),Oe=P(null);async function Mt(){v(Pt,!0),v(Oe,null);try{const $=await YN();for(const A of $)i.set(A.topic,{val:A.val,ts:A.ts}),f(A.topic)}catch($){v(Oe,$ instanceof Error?$.message:String($),!0)}finally{v(Pt,!1),$L(a)}}const et=cr("mqtt",$=>{const{topic:A,val:G,ts:ie}=$;i.set(A,{val:G,ts:ie}),n.add(A),s.add(A),d();const fe={id:pe++,topic:A,val:G,ts:ie};v(je,[fe,...c(je).slice(0,K-1)],!0);const Y=c(He).trim();(!Y||Y==="#"||we(Y,A))&&v(Ke,[fe,...c(Ke).filter(le=>!(le.retained&&le.topic===A)).slice(0,V-1)],!0)});let ct=P(null),Nt=P(null);async function ti($,A){const G=[$];if(A){const ie=$+"/";for(const fe of i.keys())fe.startsWith(ie)&&G.push(fe)}for(const ie of G)await UE(ie,"",!0,0)}let ri=Ct(()=>(c(a),[...i.keys()].sort())),Vt=P(""),Me=P(""),jt=P(!1),ft=P(0),ht=P(!1),he=P(null),Xe=P(!1);async function Ut(){if(c(Vt)){v(ht,!0),v(he,null),v(Xe,!1);try{await UE(c(Vt),c(Me),c(jt),c(ft)),v(Xe,!0),setTimeout(()=>{v(Xe,!1)},2e3)}catch($){v(he,$ instanceof Error?$.message:String($),!0)}finally{v(ht,!1)}}}function wi($){return $==null?"":typeof $=="object"?JSON.stringify($):String($)}function Ri($){return new Date($).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function ci($){return new Date($).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Bt($){return c(a),i.get($)}let Xt=Ct(()=>(c(a),[...u.values()].sort(($,A)=>$.seg.localeCompare(A.seg)))),pt=Ct(()=>(c(a),i.size));const Bi=new Set(["publishClientSend"]),Ti=new Set(["subscribePattern","subscribeLiteral"]),Ni=new Set(["publishClientReceive"]);let Ki=P(!1),Ai=P(!1),Di=P(!1),$i=P(null),Gi=P(null);function Ui($,A,G){return A.includes("%u")||A.includes("%c")?"dynamic":$==="subscribeLiteral"||$==="unsubscribeLiteral"?A===G?"match":"no-match":we(A,G)?"match":"no-match"}function mn($){if(!c($i))return!1;for(const A of c($i).roles)if(A.acls){for(const G of A.acls)if(Ui(G.acltype,G.topic,$)!=="no-match")return!0}return!1}function rt($,A){if(!c($i))return[];const G=[];for(const ie of c($i).roles)if(ie.acls)for(const fe of ie.acls){if(!A.has(fe.acltype))continue;const Y=Ui(fe.acltype,fe.topic,$);if(Y!=="no-match"){G.push({rolename:ie.rolename,allow:fe.allow,dynamic:Y==="dynamic"});break}}return G}function Kt($){if(!c($i))return{direct:[],viaGroup:[]};const A=c($i).users.filter(ie=>{var fe;return(fe=ie.roles)==null?void 0:fe.some(Y=>Y.rolename===$)}).map(ie=>ie.username),G=c($i).groups.filter(ie=>{var fe;return(fe=ie.roles)==null?void 0:fe.some(Y=>Y.rolename===$)}).map(ie=>({groupname:ie.groupname,members:(ie.clients??[]).map(fe=>fe.username)}));return{direct:A,viaGroup:G}}function _i($){if(!c($i))return!1;const A=c($i).defaults.find(G=>G.acltype===$);return(A==null?void 0:A.allow)??!1}async function Pi(){v(Di,!0);try{const[$,A,G,ie]=await Promise.all([sA(),nA(),oA(),rA()]);v($i,{roles:$.roles,users:A.users,groups:G.groups,defaults:ie.acls},!0)}catch{v($i,null),v(Ai,!1)}finally{v(Di,!1)}}async function Li(){c(Ai)?(v(Ai,!1),v(Gi,null)):(v(Ai,!0),v(Gi,null),c($i)||await Pi())}Bs(Mt),Bs(async()=>{var $;try{const A=await Tk();v(Ki,!!(($=A.dynsec)!=null&&$.dynsecReady),!0)}catch{v(Ki,!1)}}),x_(()=>{et(),r!==null&&cancelAnimationFrame(r)});var Si=YX(),Oi=b(Si),qi=m(b(Oi),2);{var mi=$=>{var A=PX(),G=xt(A);let ie;var fe=m(b(G),2);{var Y=_e=>{var ge=po("…");I(_e,ge)};O(fe,_e=>{c(Di)&&_e(Y)})}var le=m(G,2);{var Re=_e=>{var ge=TX();H(()=>ge.disabled=c(Di)),z("click",ge,Pi),I(_e,ge)};O(le,_e=>{c(Ai)&&_e(Re)})}H(()=>{ie=kt(G,1,"acl-btn svelte-1vejtrc",null,ie,{active:c(Ai)}),G.disabled=c(Di)}),z("click",G,Li),I($,A)};O(qi,$=>{c(Ki)&&$(mi)})}var Ue=m(Oi,2),J=b(Ue),Qe=b(J),_t=m(Qe,2);ni(_t,20,()=>c(ri),$=>$,($,A)=>{var G=MX(),ie={};H(()=>{ie!==(ie=A)&&(G.value=(G.__value=A)??"")}),I($,G)});var yt=m(_t,2),Ot=m(yt,2),j=b(Ot),ce=m(Ot,2),ke=b(ce);ke.value=ke.__value=0;var ze=m(ke);ze.value=ze.__value=1;var st=m(ze);st.value=st.__value=2;var X=m(ce,2),ae=m(X,2);{var me=$=>{var A=RX();I($,A)};O(ae,$=>{c(Xe)&&$(me)})}var Ze=m(ae,2);{var Zt=$=>{var A=NX(),G=b(A);H(()=>N(G,c(he))),I($,A)};O(Ze,$=>{c(he)&&$(Zt)})}var bt=m(J,2),We=b(bt),At=m(We,2),ai=b(At);{var zt=$=>{var A=po();H(()=>N(A,`${c(M).length??""} /`)),I($,A)};O(ai,$=>{c(w)&&$(zt)})}var vi=m(ai),hi=m(bt,2);{var Ci=$=>{var A=AX();I($,A)},zi=$=>{var A=OX(),G=b(A);H(()=>N(G,c(Oe))),I($,A)},$e=$=>{var A=As(),G=xt(A);{var ie=Y=>{var le=FX();I(Y,le)},fe=Y=>{var le=WX(),Re=b(le),_e=b(Re);ni(_e,21,()=>c(M).slice(c(F).start,c(F).end),ge=>ge.topic,(ge,tt)=>{var U=HX(),ne=b(U),Le=b(ne),Ve=m(ne,2),De=b(Ve),Ie=m(Ve,2),St=b(Ie);H((mt,qe,Tt)=>{N(Le,c(tt).topic),ln(Ve,"title",mt),N(De,qe),N(St,Tt)},[()=>wi(c(tt).val),()=>wi(c(tt).val),()=>Ri(c(tt).ts)]),I(ge,U)}),H(()=>{zo(Re,`height: ${c(F).totalH??""}px; position: relative;`),zo(_e,`top: ${c(F).top??""}px;`)}),ds("scroll",le,ge=>{v(k,ge.currentTarget.scrollTop,!0)}),rW(le,"clientHeight",ge=>v(D,ge)),I(Y,le)};O(G,Y=>{c(M).length===0?Y(ie):Y(fe,-1)})}I($,A)},Fe=$=>{var A=zX(),G=b(A);{var ie=Y=>{var le=BX();I(Y,le)},fe=Y=>{var le=As(),Re=xt(le);ni(Re,17,()=>c(Xt),_e=>_e.path,(_e,ge)=>{t(_e,()=>c(ge))}),I(Y,le)};O(G,Y=>{c(Xt).length===0?Y(ie):Y(fe,-1)})}I($,A)};O(hi,$=>{c(Pt)?$(Ci):c(Oe)?$(zi,1):c(w)?$($e,2):$(Fe,-1)})}var Ft=m(Ue,2),Yt=b(Ft),qt=m(Yt,2),Qt=b(qt),re=m(Qt,2);{var Ge=$=>{var A=VX(),G=b(A);H(()=>N(G,c(Ke).length)),I($,A)};O(re,$=>{!c(ue)&&c(Ke).length>0&&$(Ge)})}var wt=m(re,2),vt=b(wt),di=m(qt,2);{var It=$=>{var A=qX(),G=b(A);{var ie=Y=>{var le=jX();I(Y,le)},fe=Y=>{var le=As(),Re=xt(le);ni(Re,17,()=>c(ot),_e=>_e.id,(_e,ge)=>{var tt=UX();let U;var ne=b(tt),Le=b(ne),Ve=m(ne,2);{var De=Tt=>{var it=$X();I(Tt,it)};O(Ve,Tt=>{c(ge).retained&&Tt(De)})}var Ie=m(Ve,2),St=b(Ie),mt=m(Ie,2),qe=b(mt);H((Tt,it,ye)=>{U=kt(tt,1,"sr svelte-1vejtrc",null,U,{retained:c(ge).retained}),N(Le,Tt),N(St,c(ge).topic),ln(mt,"title",it),N(qe,ye)},[()=>ci(c(ge).ts),()=>wi(c(ge).val),()=>wi(c(ge).val)]),I(_e,tt)}),I(Y,le)};O(G,Y=>{c(ot).length===0?Y(ie):Y(fe,-1)})}I($,A)};O(di,$=>{c(ue)&&$(It)})}var Ii=m(Ft,2);{var W=$=>{var A=GX(),G=xt(A),ie=m(G,2);let fe;var Y=b(ie),le=m(Y,2);H(()=>fe=zo(ie,"",fe,{left:`${c(ct).x??""}px`,top:`${c(ct).y??""}px`})),z("click",G,()=>v(ct,null)),z("contextmenu",G,Re=>{Re.preventDefault(),v(ct,null)}),z("click",Y,()=>{navigator.clipboard.writeText(c(ct).topic),v(ct,null)}),z("click",le,()=>{const Re=c(ct).topic,_e=Re+"/",ge=[...i.keys()].some(tt=>tt.startsWith(_e));v(Nt,{topic:Re,hasChildren:ge,recursive:!1},!0),v(ct,null)}),I($,A)};O(Ii,$=>{c(ct)&&$(W)})}var Q=m(Ii,2);{var oe=$=>{var A=ZX(),G=xt(A),ie=m(G,2),fe=m(b(ie),2),Y=b(fe),le=m(b(Y)),Re=b(le),_e=m(Y,2);{var ge=Le=>{var Ve=KX(),De=b(Ve);ms(De,()=>c(Nt).recursive,Ie=>c(Nt).recursive=Ie),I(Le,Ve)};O(_e,Le=>{c(Nt).hasChildren&&Le(ge)})}var tt=m(fe,2),U=b(tt),ne=m(U,2);H(()=>N(Re,c(Nt).topic)),z("click",G,()=>v(Nt,null)),z("click",U,()=>v(Nt,null)),z("click",ne,()=>{const{topic:Le,recursive:Ve}=c(Nt);v(Nt,null),ti(Le,Ve)}),I($,A)};O(Q,$=>{c(Nt)&&$(oe)})}H(()=>{X.disabled=c(ht)||!c(Vt),N(vi,` ${c(pt)??""}`),zo(Ft,c(ue)?`height: ${c(dt)}px;`:""),N(vt,c(ue)?"▾":"▸")}),Ht(Qe,()=>c(Vt),$=>v(Vt,$)),Ht(yt,()=>c(Me),$=>v(Me,$)),ms(j,()=>c(jt),$=>v(jt,$)),ys(ce,()=>c(ft),$=>v(ft,$)),z("click",X,Ut),Ht(We,()=>c(w),$=>v(w,$)),z("mousedown",Yt,gt),Ht(Qt,()=>c(He),$=>v(He,$)),z("click",wt,()=>{v(ue,!c(ue))}),I(o,Si),Ps()}zs(["click","contextmenu","mousedown"]);var QX=T('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),JX=T('<div class="restart-banner svelte-twakcj">⚠ Package changes require a daemon restart to take effect. <button class="restart-btn svelte-twakcj">Restart now</button></div>'),eQ=T('<div class="err svelte-twakcj"> </div>'),tQ=T('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),iQ=T('<p class="empty svelte-twakcj">No packages installed.</p>'),nQ=T('<p class="empty svelte-twakcj">No match.</p>'),sQ=T("<span> </span>"),oQ=tM('<svg width="12" height="12" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="8" cy="8" r="6" stroke-dasharray="18" stroke-dashoffset="4"></circle></svg>'),rQ=tM('<svg width="12" height="12" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 8A5 5 0 1 1 10.5 3.67"></path><polyline points="10.5,1.5 10.5,4 13,4"></polyline></svg>'),aQ=T('<div><div class="dep-info svelte-twakcj"><a class="dep-name svelte-twakcj" target="_blank" rel="noopener noreferrer"> </a> <span class="dep-ver svelte-twakcj"> </span> <!></div> <div class="dep-btns svelte-twakcj"><button><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4"></path><line x1="9" y1="15" x2="4.5" y2="19.5"></line><line x1="14.5" y1="4" x2="20" y2="9.5"></line></svg></button> <button><!></button> <button class="icon-btn icon-btn--danger svelte-twakcj" title="Uninstall"><svg width="11" height="11" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><line x1="2" y1="2" x2="14" y2="14"></line><line x1="14" y1="2" x2="2" y2="14"></line></svg></button></div></div>'),lQ=T('<span class="result-author svelte-twakcj"> </span>'),cQ=T('<span class="result-date svelte-twakcj"> </span>'),dQ=T('<span class="result-desc svelte-twakcj"> </span>'),uQ=T('<div class="result-row svelte-twakcj"><div class="result-info svelte-twakcj"><a class="result-name svelte-twakcj" target="_blank" rel="noopener noreferrer"> </a> <span class="result-ver svelte-twakcj"> </span> <!> <!> <!></div> <button class="install-btn svelte-twakcj"> </button></div>'),hQ=T('<div class="results-list svelte-twakcj"></div>'),fQ=T('<pre class="npm-output svelte-twakcj"> </pre>'),gQ=T(`<p class="hint svelte-twakcj">Install npm packages into <code class="svelte-twakcj">~/.she/</code>. Scripts can then <code class="svelte-twakcj">require('package-name')</code> directly.</p>`),pQ=T('<!> <div class="pkg-shell svelte-twakcj"><!> <!> <div class="pkg-body svelte-twakcj"><div class="pkg-left svelte-twakcj"><div class="pane-hdr svelte-twakcj"><span class="pane-title svelte-twakcj">Installed</span> <span class="pane-count svelte-twakcj"> </span> <!> <button class="icon-btn check-outdated-btn svelte-twakcj" title="Check for package updates"><svg width="12" height="12" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 8A5 5 0 1 1 10.5 3.67"></path><polyline points="10.5,1.5 10.5,4 13,4"></polyline></svg></button></div> <div class="filter-row svelte-twakcj"><input class="filter-in svelte-twakcj" type="search" placeholder="Filter…"/></div> <div class="installed-list svelte-twakcj"><!></div></div> <div class="pkg-right svelte-twakcj"><div class="pane-hdr svelte-twakcj"><span class="pane-title svelte-twakcj">Search npm</span></div> <div class="search-row svelte-twakcj"><input class="search-in svelte-twakcj" type="text" placeholder="Package name, e.g. axios, lodash…"/> <button class="search-btn svelte-twakcj"> </button></div> <!> <!> <!></div></div></div>',1);function _Q(o,e){Ts(e,!0);let t=P(yi([])),i=P(""),n=P(yi({})),s=P(yi([])),r=P(!1),a=P(""),d=P(yi([])),u=P(!1),f=P(!1),g=P(!1),p=P(""),w=P(""),y=yi({});const x=Ct(()=>c(i).trim()?c(t).filter(rt=>rt.name.toLowerCase().includes(c(i).toLowerCase())):c(t)),k=Ct(()=>Object.keys(c(n)).filter(rt=>!c(s).includes(rt)).length);Bs(async()=>{await Promise.all([D(),M(),F()])});async function D(){try{v(t,await jU(),!0),v(p,"")}catch(rt){v(p,rt.message,!0)}}async function M(){try{v(n,await KN(),!0)}catch{}}async function F(){try{const rt=await Pl();v(s,Array.isArray(rt.pinnedPackages)?rt.pinnedPackages:[],!0)}catch{}}async function K(rt){const Kt=c(s).includes(rt)?c(s).filter(_i=>_i!==rt):[...c(s),rt];v(s,Kt,!0);try{const _i=await Pl();await Xp({..._i,pinnedPackages:Kt})}catch{}}async function V(){v(r,!0);try{v(n,await KU(),!0)}catch{}finally{v(r,!1)}}async function se(){const rt=c(a).trim();if(!rt){v(d,[],!0);return}v(g,!0),v(p,"");try{v(d,await $U(rt),!0)}catch(Kt){v(p,Kt.message,!0)}finally{v(g,!1)}}function te(rt){if(!rt)return"";try{return new Date(rt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function pe(rt,Kt){y[rt]=!0,v(p,""),v(w,"");try{const _i=await UU(rt,Kt);v(w,_i.stdout||_i.stderr||"Done.",!0),v(u,!0),await D()}catch(_i){v(p,_i.message,!0)}finally{y[rt]=!1}}async function je(rt){y[rt]=!0,v(p,""),v(w,"");try{const Kt=await qU(rt);v(w,Kt.stdout||Kt.stderr||"Done.",!0),v(u,!0);const _i={...c(n)};delete _i[rt],v(n,_i,!0),await D()}catch(Kt){v(p,Kt.message,!0)}finally{y[rt]=!1}}async function Ke(rt){y[rt]=!0,v(p,""),v(w,"");try{const Kt=await GU(rt);v(w,Kt.stdout||Kt.stderr||"Done.",!0),v(u,!0);const _i={...c(n)};delete _i[rt],v(n,_i,!0),await D()}catch(Kt){v(p,Kt.message,!0)}finally{y[rt]=!1}}let ue;async function He(){if(await ue.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){v(f,!0);try{await UN()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var dt=pQ(),we=xt(dt);vs(Uc(we,{}),rt=>ue=rt,()=>ue);var gt=m(we,2),ot=b(gt);{var Pt=rt=>{var Kt=QX();I(rt,Kt)},Oe=rt=>{var Kt=JX(),_i=m(b(Kt));z("click",_i,He),I(rt,Kt)};O(ot,rt=>{c(f)?rt(Pt):c(u)&&rt(Oe,1)})}var Mt=m(ot,2);{var et=rt=>{var Kt=eQ(),_i=b(Kt);H(()=>N(_i,c(p))),I(rt,Kt)};O(Mt,rt=>{c(p)&&rt(et)})}var ct=m(Mt,2),Nt=b(ct),ti=b(Nt),ri=m(b(ti),2),Vt=b(ri),Me=m(ri,2);{var jt=rt=>{var Kt=tQ(),_i=b(Kt);H(()=>N(_i,`${c(k)??""} outdated`)),I(rt,Kt)};O(Me,rt=>{c(k)>0&&rt(jt)})}var ft=m(Me,2),ht=b(ft);let he;var Xe=m(ti,2),Ut=b(Xe),wi=m(Xe,2),Ri=b(wi);{var ci=rt=>{var Kt=iQ();I(rt,Kt)},Bt=rt=>{var Kt=nQ();I(rt,Kt)},Xt=rt=>{var Kt=As(),_i=xt(Kt);ni(_i,17,()=>c(x),Pi=>Pi.name,(Pi,Li)=>{var Si=aQ();let Oi;var qi=b(Si),mi=b(qi),Ue=b(mi),J=m(mi,2),Qe=b(J),_t=m(J,2);{var yt=Ze=>{var Zt=sQ();let bt;var We=b(Zt);H(At=>{bt=kt(Zt,1,"dep-latest svelte-twakcj",null,bt,At),N(We,`→ v${c(n)[c(Li).name].latest??""}`)},[()=>({"dep-latest--pinned":c(s).includes(c(Li).name)})]),I(Ze,Zt)};O(_t,Ze=>{c(n)[c(Li).name]&&Ze(yt)})}var Ot=m(qi,2),j=b(Ot);let ce;var ke=m(j,2);let ze;var st=b(ke);{var X=Ze=>{var Zt=oQ();I(Ze,Zt)},ae=Ze=>{var Zt=rQ();I(Ze,Zt)};O(st,Ze=>{y[c(Li).name]?Ze(X):Ze(ae,-1)})}var me=m(ke,2);H((Ze,Zt,bt)=>{Oi=kt(Si,1,"dep-row svelte-twakcj",null,Oi,{"dep-busy":!!y[c(Li).name]}),ln(mi,"href",c(Li).url??`https://www.npmjs.com/package/${c(Li).name}`),N(Ue,c(Li).name),N(Qe,c(Li).installedVersion??c(Li).version),ce=kt(j,1,"icon-btn svelte-twakcj",null,ce,Ze),ln(j,"title",Zt),ze=kt(ke,1,"icon-btn svelte-twakcj",null,ze,bt),ke.disabled=!!y[c(Li).name],ln(ke,"title",c(n)[c(Li).name]?`Update to v${c(n)[c(Li).name].latest}`:"Update to latest"),me.disabled=!!y[c(Li).name]},[()=>({"icon-btn--pinned":c(s).includes(c(Li).name)}),()=>c(s).includes(c(Li).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!c(n)[c(Li).name]&&!c(s).includes(c(Li).name)})]),z("click",j,()=>K(c(Li).name)),z("click",ke,()=>Ke(c(Li).name)),z("click",me,()=>je(c(Li).name)),I(Pi,Si)}),I(rt,Kt)};O(Ri,rt=>{c(t).length===0?rt(ci):c(x).length===0?rt(Bt,1):rt(Xt,-1)})}var pt=m(Nt,2),Bi=m(b(pt),2),Ti=b(Bi),Ni=m(Ti,2),Ki=b(Ni),Ai=m(Bi,2);{var Di=rt=>{var Kt=hQ();ni(Kt,21,()=>c(d),_i=>_i.name,(_i,Pi)=>{var Li=uQ(),Si=b(Li),Oi=b(Si),qi=b(Oi),mi=m(Oi,2),Ue=b(mi),J=m(mi,2);{var Qe=ze=>{var st=lQ(),X=b(st);H(()=>N(X,c(Pi).author)),I(ze,st)};O(J,ze=>{c(Pi).author&&ze(Qe)})}var _t=m(J,2);{var yt=ze=>{var st=cQ(),X=b(st);H(ae=>{ln(st,"title",c(Pi).date),N(X,ae)},[()=>te(c(Pi).date)]),I(ze,st)};O(_t,ze=>{c(Pi).date&&ze(yt)})}var Ot=m(_t,2);{var j=ze=>{var st=dQ(),X=b(st);H(()=>N(X,c(Pi).description)),I(ze,st)};O(Ot,ze=>{c(Pi).description&&ze(j)})}var ce=m(Si,2),ke=b(ce);H(()=>{ln(Oi,"href",c(Pi).url??`https://www.npmjs.com/package/${c(Pi).name}`),N(qi,c(Pi).name),N(Ue,c(Pi).version),ce.disabled=!!y[c(Pi).name],N(ke,y[c(Pi).name]?"Installing…":"Install")}),z("click",ce,()=>pe(c(Pi).name)),I(_i,Li)}),I(rt,Kt)};O(Ai,rt=>{c(d).length>0&&rt(Di)})}var $i=m(Ai,2);{var Gi=rt=>{var Kt=fQ(),_i=b(Kt);H(()=>N(_i,c(w))),I(rt,Kt)};O($i,rt=>{c(w)&&rt(Gi)})}var Ui=m($i,2);{var mn=rt=>{var Kt=gQ();I(rt,Kt)};O(Ui,rt=>{!c(d).length&&!c(w)&&rt(mn)})}H(()=>{N(Vt,c(t).length),ft.disabled=c(r),he=kt(ht,0,"svelte-twakcj",null,he,{spinning:c(r)}),Ni.disabled=c(g),N(Ki,c(g)?"Searching…":"Search")}),z("click",ft,V),Ht(Ut,()=>c(i),rt=>v(i,rt)),z("keydown",Ti,rt=>rt.key==="Enter"&&se()),Ht(Ti,()=>c(a),rt=>v(a,rt)),z("click",Ni,se),I(o,dt),Ps()}zs(["click","keydown"]);var mQ=T('<div class="plugin-warning svelte-3itf14">⚠ The dynamic-security plugin is not responding. Add <code class="svelte-3itf14">plugin …/mosquitto_dynamic_security.so</code> and <code class="svelte-3itf14">plugin_opt_config_file …/dynamic-security.json</code> to your mosquitto.conf and restart mosquitto. Operations below will time out until the plugin is active.</div>'),ya=T('<div class="err svelte-3itf14"> </div>'),vQ=T('<div class="empty svelte-3itf14">No users found.</div>'),bQ=T('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),_h=T("<option> </option>"),Lm=T('<div class="inline-err svelte-3itf14"> </div>'),kD=T('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— role —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),yQ=T('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove from group">×</button></span>'),wQ=T('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— group —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),SQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add to group">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Set password" class="svelte-3itf14">🔑</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),CQ=T('<table class="svelte-3itf14"><thead><tr><th class="svelte-3itf14">Username</th><th class="svelte-3itf14">Roles</th><th class="svelte-3itf14">Groups</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),xQ=T('<div class="panel svelte-3itf14"><div class="panel-header svelte-3itf14"><h3 class="svelte-3itf14">Users</h3> <button class="btn-add svelte-3itf14">+ Add user</button></div> <!> <!></div>'),kQ=T('<div class="empty svelte-3itf14">No roles found.</div>'),LQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Edit ACLs" class="svelte-3itf14">Edit ACLs</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),IQ=T('<table class="svelte-3itf14"><thead><tr><th class="svelte-3itf14">Role</th><th class="svelte-3itf14">ACLs</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),EQ=T('<div class="panel svelte-3itf14"><div class="panel-header svelte-3itf14"><h3 class="svelte-3itf14">Roles</h3> <button class="btn-add svelte-3itf14">+ Add role</button></div> <!> <!></div>'),DQ=T('<div class="empty svelte-3itf14">No groups found.</div>'),TQ=T('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove member">×</button></span>'),PQ=T('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— user —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),MQ=T('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),RQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add member">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),NQ=T('<table class="svelte-3itf14"><thead><tr><th class="svelte-3itf14">Group</th><th class="svelte-3itf14">Members</th><th class="svelte-3itf14">Roles</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),AQ=T('<div class="panel svelte-3itf14"><div class="panel-header svelte-3itf14"><h3 class="svelte-3itf14">Groups</h3> <button class="btn-add svelte-3itf14">+ Add group</button></div> <!> <!></div>'),LD=T('<div class="empty svelte-3itf14">Loading…</div>'),OQ=T('<tr><td class="mono small svelte-3itf14"> </td><td class="acl-radio svelte-3itf14"><input type="radio" value="allow"/></td><td class="acl-radio svelte-3itf14"><input type="radio" value="deny"/></td></tr>'),FQ=T('<table class="acl-defaults-table svelte-3itf14"><thead><tr><th class="svelte-3itf14">Operation</th><th class="svelte-3itf14">Allow</th><th class="svelte-3itf14">Deny</th></tr></thead><tbody></tbody></table>'),HQ=T('<div class="anon-current svelte-3itf14">Current: <span class="mono svelte-3itf14"> </span></div>'),WQ=T('<div class="anon-current muted svelte-3itf14">No anonymous group configured.</div>'),BQ=T('<div class="anon-row svelte-3itf14"><select class="svelte-3itf14"><option>— none —</option><!></select> <button class="svelte-3itf14"> </button></div> <!>',1),zQ=T('<div class="panel svelte-3itf14"><div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Default ACL Access</h3> <p class="settings-hint svelte-3itf14">Broker-wide defaults applied when no role ACL matches. Role ACLs always take precedence over these defaults.</p> <!> <!></div> <div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Anonymous Group</h3> <p class="settings-hint svelte-3itf14">Clients connecting without credentials are treated as members of this group. Requires <code class="svelte-3itf14">allow_anonymous true</code> in mosquitto.conf.</p> <!> <!></div></div>'),VQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Add user</h3> <label class="svelte-3itf14">Username<input autocomplete="off" class="svelte-3itf14"/></label> <label class="svelte-3itf14">Password <div class="pw-row svelte-3itf14"><input autocomplete="new-password" class="svelte-3itf14"/> <button class="toggle-pw svelte-3itf14"> </button></div></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),jQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Set password for <em class="svelte-3itf14"> </em></h3> <label class="svelte-3itf14">New password <input type="password" autocomplete="new-password" class="svelte-3itf14"/></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),$Q=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Add role</h3> <label class="svelte-3itf14">Role name<input autocomplete="off" class="svelte-3itf14"/></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),UQ=T('<tr class="svelte-3itf14"><td class="mono small svelte-3itf14"> </td><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="svelte-3itf14"><button class="danger">✕</button></td></tr>'),qQ=T('<table class="acl-table svelte-3itf14"><thead><tr><th class="svelte-3itf14">Type</th><th class="svelte-3itf14">Topic</th><th class="svelte-3itf14">Allow</th><th class="svelte-3itf14"></th></tr></thead><tbody></tbody></table>'),GQ=T('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),KQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-3itf14"><h3 class="svelte-3itf14">ACLs for role <em class="svelte-3itf14"> </em></h3> <!> <div class="acl-add-row svelte-3itf14"><select class="svelte-3itf14"></select> <input placeholder="topic or pattern" class="svelte-3itf14"/> <label class="allow-toggle svelte-3itf14"><input type="checkbox" class="svelte-3itf14"/> Allow</label> <button class="svelte-3itf14">Add</button></div> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Close</button></div></div></div>'),ZQ=T('<div class="modal-backdrop svelte-3itf14" role="dialog" aria-modal="true"><div class="modal svelte-3itf14"><h3 class="svelte-3itf14">Add group</h3> <label class="svelte-3itf14">Group name<input autocomplete="off" class="svelte-3itf14"/></label> <!> <div class="modal-actions svelte-3itf14"><button class="svelte-3itf14">Cancel</button> <button class="btn-primary svelte-3itf14"> </button></div></div></div>'),YQ=T('<div class="users-page svelte-3itf14"><!> <div class="panel-tabs svelte-3itf14"><button>Users</button> <button>Roles</button> <button>Groups</button> <button>Settings</button> <button class="reload-btn svelte-3itf14" title="Refresh">↺</button></div> <!> <!> <!> <!></div> <!> <!> <!> <!> <!> <!>',1);function XQ(o,e){Ts(e,!0);let t=Su(e,"dynsecReady",3,!1),i,n=P(yi([])),s=P(yi([])),r=P(yi([])),a=P(""),d=P(""),u=P(""),f=P("users"),g=P(null),p=P(""),w=P(""),y=P(!1);const x=Ct(()=>c(g)?c(g).kind==="user-roles"?c(s).map(re=>re.rolename).filter(re=>{var Ge,wt;return!((wt=(Ge=c(n).find(vt=>vt.username===c(g).target))==null?void 0:Ge.roles)!=null&&wt.some(vt=>vt.rolename===re))}):c(g).kind==="user-groups"?c(r).map(re=>re.groupname).filter(re=>{var Ge,wt;return!((wt=(Ge=c(n).find(vt=>vt.username===c(g).target))==null?void 0:Ge.groups)!=null&&wt.some(vt=>vt.groupname===re))}):c(g).kind==="group-members"?c(n).map(re=>re.username).filter(re=>{var Ge,wt;return!((wt=(Ge=c(r).find(vt=>vt.groupname===c(g).target))==null?void 0:Ge.clients)!=null&&wt.some(vt=>vt.username===re))}):c(s).map(re=>re.rolename).filter(re=>{var Ge,wt;return!((wt=(Ge=c(r).find(vt=>vt.groupname===c(g).target))==null?void 0:Ge.roles)!=null&&wt.some(vt=>vt.rolename===re))}):[]);function k(re,Ge){v(g,{kind:re,target:Ge},!0),v(p,""),v(w,"")}async function D(){if(!(!c(g)||!c(p))){v(y,!0),v(w,"");try{const{kind:re,target:Ge}=c(g);re==="user-roles"?await dq(Ge,c(p)):re==="user-groups"?await qE(c(p),Ge):re==="group-members"?await qE(Ge,c(p)):await vq(Ge,c(p)),v(g,null),v(p,""),await Di()}catch(re){v(w,re.message,!0)}finally{v(y,!1)}}}async function M(re,Ge){try{await uq(re,Ge),await Di()}catch(wt){v(a,wt.message,!0)}}async function F(re,Ge){try{await GE(Ge,re),await Di()}catch(wt){v(a,wt.message,!0)}}async function K(re,Ge){try{await GE(re,Ge),await Di()}catch(wt){v(u,wt.message,!0)}}async function V(re,Ge){try{await bq(re,Ge),await Di()}catch(wt){v(u,wt.message,!0)}}let se=P(!1),te=P(""),pe=P(""),je=P(!1),Ke=P(""),ue=P(!1),He=P(!1),dt=P(""),we=P(""),gt=P(""),ot=P(!1),Pt=P(!1),Oe=P(""),Mt=P(""),et=P(!1),ct=P(null),Nt=P(!1),ti=P("publishClientSend"),ri=P(""),Vt=P(!0),Me=P(""),jt=P(!1),ft=P(""),ht=P(""),he=P(!1),Xe=P(yi([])),Ut=P(""),wi=P(!1),Ri=P(null),ci=P(""),Bt=P(""),Xt=P(!1),pt=P(!1);const Bi=[{acltype:"publishClientSend",label:"Publish (send)"},{acltype:"publishClientReceive",label:"Publish (receive)"},{acltype:"subscribe",label:"Subscribe"},{acltype:"unsubscribe",label:"Unsubscribe"}];async function Ti(){var re,Ge;v(pt,!1),v(Ut,""),v(Bt,"");try{const[wt,vt]=await Promise.allSettled([rA(),wq()]);if(wt.status==="fulfilled"){const di=Object.fromEntries(wt.value.acls.map(It=>[It.acltype,It.allow]));v(Xe,Bi.map(({acltype:It})=>({acltype:It,allow:di[It]??(It==="publishClientReceive"||It==="unsubscribe")})),!0)}else v(Ut,((re=wt.reason)==null?void 0:re.message)??"Failed to load default ACLs",!0);vt.status==="fulfilled"?(v(Ri,vt.value.group,!0),v(ci,vt.value.group??"",!0)):v(Bt,((Ge=vt.reason)==null?void 0:Ge.message)??"Failed to load anonymous group",!0)}finally{v(pt,!0)}}async function Ni(re,Ge){v(Xe,c(Xe).map(wt=>wt.acltype===re?{...wt,allow:Ge}:wt),!0),v(wi,!0),v(Ut,"");try{await yq(c(Xe))}catch(wt){v(Ut,wt.message,!0)}finally{v(wi,!1)}}async function Ki(){v(Xt,!0),v(Bt,"");try{await Sq(c(ci)||null),v(Ri,c(ci)||null,!0)}catch(re){v(Bt,re.message,!0)}finally{v(Xt,!1)}}const Ai=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function Di(){var re,Ge,wt;try{const[vt,di,It]=await Promise.allSettled([nA(),sA(),oA()]);vt.status==="fulfilled"?(v(n,vt.value.users,!0),v(a,"")):v(a,((re=vt.reason)==null?void 0:re.message)??"Failed to load users",!0),di.status==="fulfilled"?(v(s,di.value.roles,!0),v(d,"")):v(d,((Ge=di.reason)==null?void 0:Ge.message)??"Failed to load roles",!0),It.status==="fulfilled"?(v(r,It.value.groups,!0),v(u,"")):v(u,((wt=It.reason)==null?void 0:wt.message)??"Failed to load groups",!0)}catch{}}Bs(()=>{Di()});async function $i(){v(Ke,""),v(ue,!0);try{await aq(c(te),c(pe)),v(te,""),v(pe,""),v(se,!1),await Di()}catch(re){v(Ke,re.message??"Failed to create user",!0)}finally{v(ue,!1)}}async function Gi(re){if(await i.show(`Delete user “${re}”?`,{confirm:"Delete",danger:!0}))try{await lq(re),await Di()}catch(Ge){v(a,Ge.message,!0)}}async function Ui(re){v(dt,re,!0),v(we,""),v(gt,""),v(He,!0)}async function mn(){v(gt,""),v(ot,!0);try{await cq(c(dt),c(we)),v(He,!1)}catch(re){v(gt,re.message,!0)}finally{v(ot,!1)}}async function rt(){v(Mt,""),v(et,!0);try{await hq(c(Oe)),v(Oe,""),v(Pt,!1),await Di()}catch(re){v(Mt,re.message??"Failed to create role",!0)}finally{v(et,!1)}}async function Kt(re){var Ge;if(await i.show(`Delete role “${re}”?`,{confirm:"Delete",danger:!0}))try{await fq(re),((Ge=c(ct))==null?void 0:Ge.rolename)===re&&(v(ct,null),v(Nt,!1)),await Di()}catch(wt){v(d,wt.message,!0)}}function _i(re){v(ct,re,!0),v(Nt,!0),v(ti,"publishClientSend"),v(ri,""),v(Vt,!0),v(Me,"")}async function Pi(){if(c(ct)){v(Me,"");try{await gq(c(ct).rolename,{acltype:c(ti),topic:c(ri),allow:c(Vt)}),v(ri,""),await Di(),v(ct,c(s).find(re=>re.rolename===c(ct).rolename)??c(ct),!0)}catch(re){v(Me,re.message,!0)}}}async function Li(re,Ge,wt){try{await pq(re,Ge,wt),await Di(),v(ct,c(s).find(vt=>vt.rolename===re)??c(ct),!0)}catch(vt){v(Me,vt.message,!0)}}async function Si(){v(ht,""),v(he,!0);try{await _q(c(ft)),v(ft,""),v(jt,!1),await Di()}catch(re){v(ht,re.message??"Failed to create group",!0)}finally{v(he,!1)}}async function Oi(re){if(await i.show(`Delete group “${re}”?`,{confirm:"Delete",danger:!0}))try{await mq(re),await Di()}catch(Ge){v(u,Ge.message,!0)}}var qi=YQ(),mi=xt(qi),Ue=b(mi);{var J=re=>{var Ge=mQ();I(re,Ge)};O(Ue,re=>{t()||re(J)})}var Qe=m(Ue,2),_t=b(Qe);let yt;var Ot=m(_t,2);let j;var ce=m(Ot,2);let ke;var ze=m(ce,2);let st;var X=m(ze,2),ae=m(Qe,2);{var me=re=>{var Ge=xQ(),wt=b(Ge),vt=m(b(wt),2),di=m(wt,2);{var It=oe=>{var $=ya(),A=b($);H(()=>N(A,c(a))),I(oe,$)};O(di,oe=>{c(a)&&oe(It)})}var Ii=m(di,2);{var W=oe=>{var $=vQ();I(oe,$)},Q=oe=>{var $=CQ(),A=m(b($));ni(A,21,()=>c(n),Vi,(G,ie)=>{var fe=SQ(),Y=b(fe),le=b(Y),Re=m(Y),_e=b(Re),ge=b(_e),tt=b(ge);ni(tt,17,()=>c(ie).roles??[],Vi,(Se,nt)=>{var de=bQ(),Pe=b(de),at=m(Pe);H(()=>N(Pe,c(nt).rolename)),z("click",at,()=>M(c(ie).username,c(nt).rolename)),I(Se,de)});var U=m(tt,2),ne=m(ge,2);{var Le=Se=>{var nt=kD(),de=xt(nt),Pe=b(de),at=b(Pe);at.value=at.__value="";var ut=m(at);ni(ut,17,()=>c(x),Vi,(ii,xi)=>{var Ji=_h(),Hi=b(Ji),li={};H(()=>{N(Hi,c(xi)),li!==(li=c(xi))&&(Ji.value=(Ji.__value=c(xi))??"")}),I(ii,Ji)});var Je=m(Pe,2),$t=m(Je,2),Jt=m(de,2);{var Mi=ii=>{var xi=Lm(),Ji=b(xi);H(()=>N(Ji,c(w))),I(ii,xi)};O(Jt,ii=>{c(w)&&ii(Mi)})}H(()=>Je.disabled=!c(p)||c(y)),ys(Pe,()=>c(p),ii=>v(p,ii)),z("click",Je,D),z("click",$t,()=>v(g,null)),I(Se,nt)};O(ne,Se=>{var nt;((nt=c(g))==null?void 0:nt.kind)==="user-roles"&&c(g).target===c(ie).username&&Se(Le)})}var Ve=m(Re),De=b(Ve),Ie=b(De),St=b(Ie);ni(St,17,()=>c(ie).groups??[],Vi,(Se,nt)=>{var de=yQ(),Pe=b(de),at=m(Pe);H(()=>N(Pe,c(nt).groupname)),z("click",at,()=>F(c(ie).username,c(nt).groupname)),I(Se,de)});var mt=m(St,2),qe=m(Ie,2);{var Tt=Se=>{var nt=wQ(),de=xt(nt),Pe=b(de),at=b(Pe);at.value=at.__value="";var ut=m(at);ni(ut,17,()=>c(x),Vi,(ii,xi)=>{var Ji=_h(),Hi=b(Ji),li={};H(()=>{N(Hi,c(xi)),li!==(li=c(xi))&&(Ji.value=(Ji.__value=c(xi))??"")}),I(ii,Ji)});var Je=m(Pe,2),$t=m(Je,2),Jt=m(de,2);{var Mi=ii=>{var xi=Lm(),Ji=b(xi);H(()=>N(Ji,c(w))),I(ii,xi)};O(Jt,ii=>{c(w)&&ii(Mi)})}H(()=>Je.disabled=!c(p)||c(y)),ys(Pe,()=>c(p),ii=>v(p,ii)),z("click",Je,D),z("click",$t,()=>v(g,null)),I(Se,nt)};O(qe,Se=>{var nt;((nt=c(g))==null?void 0:nt.kind)==="user-groups"&&c(g).target===c(ie).username&&Se(Tt)})}var it=m(Ve),ye=b(it),Ne=b(ye),Ee=m(Ne,2);H(()=>N(le,c(ie).username)),z("click",U,()=>k("user-roles",c(ie).username)),z("click",mt,()=>k("user-groups",c(ie).username)),z("click",Ne,()=>Ui(c(ie).username)),z("click",Ee,()=>Gi(c(ie).username)),I(G,fe)}),I(oe,$)};O(Ii,oe=>{c(n).length===0?oe(W):oe(Q,-1)})}z("click",vt,()=>{v(se,!0),v(Ke,"")}),I(re,Ge)};O(ae,re=>{c(f)==="users"&&re(me)})}var Ze=m(ae,2);{var Zt=re=>{var Ge=EQ(),wt=b(Ge),vt=m(b(wt),2),di=m(wt,2);{var It=oe=>{var $=ya(),A=b($);H(()=>N(A,c(d))),I(oe,$)};O(di,oe=>{c(d)&&oe(It)})}var Ii=m(di,2);{var W=oe=>{var $=kQ();I(oe,$)},Q=oe=>{var $=IQ(),A=m(b($));ni(A,21,()=>c(s),Vi,(G,ie)=>{var fe=LQ(),Y=b(fe),le=b(Y),Re=m(Y),_e=b(Re),ge=m(Re),tt=b(ge),U=b(tt),ne=m(U,2);H(()=>{var Le;N(le,c(ie).rolename),N(_e,((Le=c(ie).acls)==null?void 0:Le.length)??0)}),z("click",U,()=>_i(c(ie))),z("click",ne,()=>Kt(c(ie).rolename)),I(G,fe)}),I(oe,$)};O(Ii,oe=>{c(s).length===0?oe(W):oe(Q,-1)})}z("click",vt,()=>{v(Pt,!0),v(Mt,""),v(Oe,"")}),I(re,Ge)};O(Ze,re=>{c(f)==="roles"&&re(Zt)})}var bt=m(Ze,2);{var We=re=>{var Ge=AQ(),wt=b(Ge),vt=m(b(wt),2),di=m(wt,2);{var It=oe=>{var $=ya(),A=b($);H(()=>N(A,c(u))),I(oe,$)};O(di,oe=>{c(u)&&oe(It)})}var Ii=m(di,2);{var W=oe=>{var $=DQ();I(oe,$)},Q=oe=>{var $=NQ(),A=m(b($));ni(A,21,()=>c(r),Vi,(G,ie)=>{var fe=RQ(),Y=b(fe),le=b(Y),Re=m(Y),_e=b(Re),ge=b(_e),tt=b(ge);ni(tt,17,()=>c(ie).clients??[],Vi,(Ee,Se)=>{var nt=TQ(),de=b(nt),Pe=m(de);H(()=>N(de,c(Se).username)),z("click",Pe,()=>K(c(ie).groupname,c(Se).username)),I(Ee,nt)});var U=m(tt,2),ne=m(ge,2);{var Le=Ee=>{var Se=PQ(),nt=xt(Se),de=b(nt),Pe=b(de);Pe.value=Pe.__value="";var at=m(Pe);ni(at,17,()=>c(x),Vi,(Mi,ii)=>{var xi=_h(),Ji=b(xi),Hi={};H(()=>{N(Ji,c(ii)),Hi!==(Hi=c(ii))&&(xi.value=(xi.__value=c(ii))??"")}),I(Mi,xi)});var ut=m(de,2),Je=m(ut,2),$t=m(nt,2);{var Jt=Mi=>{var ii=Lm(),xi=b(ii);H(()=>N(xi,c(w))),I(Mi,ii)};O($t,Mi=>{c(w)&&Mi(Jt)})}H(()=>ut.disabled=!c(p)||c(y)),ys(de,()=>c(p),Mi=>v(p,Mi)),z("click",ut,D),z("click",Je,()=>v(g,null)),I(Ee,Se)};O(ne,Ee=>{var Se;((Se=c(g))==null?void 0:Se.kind)==="group-members"&&c(g).target===c(ie).groupname&&Ee(Le)})}var Ve=m(Re),De=b(Ve),Ie=b(De),St=b(Ie);ni(St,17,()=>c(ie).roles??[],Vi,(Ee,Se)=>{var nt=MQ(),de=b(nt),Pe=m(de);H(()=>N(de,c(Se).rolename)),z("click",Pe,()=>V(c(ie).groupname,c(Se).rolename)),I(Ee,nt)});var mt=m(St,2),qe=m(Ie,2);{var Tt=Ee=>{var Se=kD(),nt=xt(Se),de=b(nt),Pe=b(de);Pe.value=Pe.__value="";var at=m(Pe);ni(at,17,()=>c(x),Vi,(Mi,ii)=>{var xi=_h(),Ji=b(xi),Hi={};H(()=>{N(Ji,c(ii)),Hi!==(Hi=c(ii))&&(xi.value=(xi.__value=c(ii))??"")}),I(Mi,xi)});var ut=m(de,2),Je=m(ut,2),$t=m(nt,2);{var Jt=Mi=>{var ii=Lm(),xi=b(ii);H(()=>N(xi,c(w))),I(Mi,ii)};O($t,Mi=>{c(w)&&Mi(Jt)})}H(()=>ut.disabled=!c(p)||c(y)),ys(de,()=>c(p),Mi=>v(p,Mi)),z("click",ut,D),z("click",Je,()=>v(g,null)),I(Ee,Se)};O(qe,Ee=>{var Se;((Se=c(g))==null?void 0:Se.kind)==="group-roles"&&c(g).target===c(ie).groupname&&Ee(Tt)})}var it=m(Ve),ye=b(it),Ne=b(ye);H(()=>N(le,c(ie).groupname)),z("click",U,()=>k("group-members",c(ie).groupname)),z("click",mt,()=>k("group-roles",c(ie).groupname)),z("click",Ne,()=>Oi(c(ie).groupname)),I(G,fe)}),I(oe,$)};O(Ii,oe=>{c(r).length===0?oe(W):oe(Q,-1)})}z("click",vt,()=>{v(jt,!0),v(ht,""),v(ft,"")}),I(re,Ge)};O(bt,re=>{c(f)==="groups"&&re(We)})}var At=m(bt,2);{var ai=re=>{var Ge=zQ(),wt=b(Ge),vt=m(b(wt),4);{var di=fe=>{var Y=ya(),le=b(Y);H(()=>N(le,c(Ut))),I(fe,Y)};O(vt,fe=>{c(Ut)&&fe(di)})}var It=m(vt,2);{var Ii=fe=>{var Y=LD();I(fe,Y)},W=fe=>{var Y=FQ(),le=m(b(Y));ni(le,21,()=>Bi,Vi,(Re,_e)=>{let ge=()=>c(_e).acltype,tt=()=>c(_e).label;const U=Ct(()=>c(Xe).find(Tt=>Tt.acltype===ge()));var ne=OQ();let Le;var Ve=b(ne),De=b(Ve),Ie=m(Ve),St=b(Ie),mt=m(Ie),qe=b(mt);H(()=>{var Tt,it;Le=kt(ne,1,"svelte-3itf14",null,Le,{saving:c(wi)}),N(De,tt()),ln(St,"name",ge()),hl(St,((Tt=c(U))==null?void 0:Tt.allow)===!0),ln(qe,"name",ge()),hl(qe,((it=c(U))==null?void 0:it.allow)===!1)}),z("change",St,()=>Ni(ge(),!0)),z("change",qe,()=>Ni(ge(),!1)),I(Re,ne)}),I(fe,Y)};O(It,fe=>{c(pt)?fe(W,-1):fe(Ii)})}var Q=m(wt,2),oe=m(b(Q),4);{var $=fe=>{var Y=ya(),le=b(Y);H(()=>N(le,c(Bt))),I(fe,Y)};O(oe,fe=>{c(Bt)&&fe($)})}var A=m(oe,2);{var G=fe=>{var Y=LD();I(fe,Y)},ie=fe=>{var Y=BQ(),le=xt(Y),Re=b(le),_e=b(Re);_e.value=_e.__value="";var ge=m(_e);ni(ge,17,()=>c(r),Vi,(De,Ie)=>{var St=_h(),mt=b(St),qe={};H(()=>{N(mt,c(Ie).groupname),qe!==(qe=c(Ie).groupname)&&(St.value=(St.__value=c(Ie).groupname)??"")}),I(De,St)});var tt=m(Re,2),U=b(tt),ne=m(le,2);{var Le=De=>{var Ie=HQ(),St=m(b(Ie)),mt=b(St);H(()=>N(mt,c(Ri))),I(De,Ie)},Ve=De=>{var Ie=WQ();I(De,Ie)};O(ne,De=>{c(Ri)?De(Le):De(Ve,-1)})}H(()=>{tt.disabled=c(Xt)||c(ci)===(c(Ri)??""),N(U,c(Xt)?"Saving…":"Save")}),ys(Re,()=>c(ci),De=>v(ci,De)),z("click",tt,Ki),I(fe,Y)};O(A,fe=>{c(pt)?fe(ie,-1):fe(G)})}I(re,Ge)};O(At,re=>{c(f)==="settings"&&re(ai)})}var zt=m(mi,2);{var vi=re=>{var Ge=VQ(),wt=b(Ge),vt=m(b(wt),2),di=m(b(vt)),It=m(vt,2),Ii=m(b(It)),W=b(Ii),Q=m(W,2),oe=b(Q),$=m(It,2);{var A=le=>{var Re=ya(),_e=b(Re);H(()=>N(_e,c(Ke))),I(le,Re)};O($,le=>{c(Ke)&&le(A)})}var G=m($,2),ie=b(G),fe=m(ie,2),Y=b(fe);H(()=>{ln(W,"type",c(je)?"text":"password"),N(oe,c(je)?"Hide":"Show"),fe.disabled=c(ue)||!c(te)||!c(pe),N(Y,c(ue)?"Creating…":"Create")}),Ht(di,()=>c(te),le=>v(te,le)),Ht(W,()=>c(pe),le=>v(pe,le)),z("click",Q,()=>v(je,!c(je))),z("click",ie,()=>v(se,!1)),z("click",fe,$i),I(re,Ge)};O(zt,re=>{c(se)&&re(vi)})}var hi=m(zt,2);{var Ci=re=>{var Ge=jQ(),wt=b(Ge),vt=b(wt),di=m(b(vt)),It=b(di),Ii=m(vt,2),W=m(b(Ii)),Q=m(Ii,2);{var oe=fe=>{var Y=ya(),le=b(Y);H(()=>N(le,c(gt))),I(fe,Y)};O(Q,fe=>{c(gt)&&fe(oe)})}var $=m(Q,2),A=b($),G=m(A,2),ie=b(G);H(()=>{N(It,c(dt)),G.disabled=c(ot)||!c(we),N(ie,c(ot)?"Saving…":"Set password")}),Ht(W,()=>c(we),fe=>v(we,fe)),z("click",A,()=>v(He,!1)),z("click",G,mn),I(re,Ge)};O(hi,re=>{c(He)&&re(Ci)})}var zi=m(hi,2);{var $e=re=>{var Ge=$Q(),wt=b(Ge),vt=m(b(wt),2),di=m(b(vt)),It=m(vt,2);{var Ii=A=>{var G=ya(),ie=b(G);H(()=>N(ie,c(Mt))),I(A,G)};O(It,A=>{c(Mt)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2),$=b(oe);H(()=>{oe.disabled=c(et)||!c(Oe),N($,c(et)?"Creating…":"Create")}),Ht(di,()=>c(Oe),A=>v(Oe,A)),z("click",Q,()=>v(Pt,!1)),z("click",oe,rt),I(re,Ge)};O(zi,re=>{c(Pt)&&re($e)})}var Fe=m(zi,2);{var Ft=re=>{var Ge=KQ(),wt=b(Ge),vt=b(wt),di=m(b(vt)),It=b(di),Ii=m(vt,2);{var W=ge=>{var tt=qQ(),U=m(b(tt));ni(U,21,()=>c(ct).acls??[],Vi,(ne,Le)=>{var Ve=UQ(),De=b(Ve),Ie=b(De),St=m(De),mt=b(St),qe=m(St),Tt=b(qe),it=m(qe),ye=b(it);H(()=>{N(Ie,c(Le).acltype),N(mt,c(Le).topic),N(Tt,c(Le).allow?"✓":"✗")}),z("click",ye,()=>Li(c(ct).rolename,c(Le).acltype,c(Le).topic)),I(ne,Ve)}),I(ge,tt)},Q=ge=>{var tt=GQ();I(ge,tt)};O(Ii,ge=>{var tt;(((tt=c(ct).acls)==null?void 0:tt.length)??0)>0?ge(W):ge(Q,-1)})}var oe=m(Ii,2),$=b(oe);ni($,21,()=>Ai,Vi,(ge,tt)=>{var U=_h(),ne=b(U),Le={};H(()=>{N(ne,c(tt)),Le!==(Le=c(tt))&&(U.value=(U.__value=c(tt))??"")}),I(ge,U)});var A=m($,2),G=m(A,2),ie=b(G),fe=m(G,2),Y=m(oe,2);{var le=ge=>{var tt=ya(),U=b(tt);H(()=>N(U,c(Me))),I(ge,tt)};O(Y,ge=>{c(Me)&&ge(le)})}var Re=m(Y,2),_e=b(Re);H(()=>{N(It,c(ct).rolename),fe.disabled=!c(ri)}),ys($,()=>c(ti),ge=>v(ti,ge)),Ht(A,()=>c(ri),ge=>v(ri,ge)),ms(ie,()=>c(Vt),ge=>v(Vt,ge)),z("click",fe,Pi),z("click",_e,()=>v(Nt,!1)),I(re,Ge)};O(Fe,re=>{c(Nt)&&c(ct)&&re(Ft)})}var Yt=m(Fe,2);{var qt=re=>{var Ge=ZQ(),wt=b(Ge),vt=m(b(wt),2),di=m(b(vt)),It=m(vt,2);{var Ii=A=>{var G=ya(),ie=b(G);H(()=>N(ie,c(ht))),I(A,G)};O(It,A=>{c(ht)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2),$=b(oe);H(()=>{oe.disabled=c(he)||!c(ft),N($,c(he)?"Creating…":"Create")}),Ht(di,()=>c(ft),A=>v(ft,A)),z("click",Q,()=>v(jt,!1)),z("click",oe,Si),I(re,Ge)};O(Yt,re=>{c(jt)&&re(qt)})}var Qt=m(Yt,2);vs(Uc(Qt,{}),re=>i=re,()=>i),H(()=>{yt=kt(_t,1,"svelte-3itf14",null,yt,{active:c(f)==="users"}),j=kt(Ot,1,"svelte-3itf14",null,j,{active:c(f)==="roles"}),ke=kt(ce,1,"svelte-3itf14",null,ke,{active:c(f)==="groups"}),st=kt(ze,1,"svelte-3itf14",null,st,{active:c(f)==="settings"})}),z("click",_t,()=>v(f,"users")),z("click",Ot,()=>v(f,"roles")),z("click",ce,()=>v(f,"groups")),z("click",ze,()=>{v(f,"settings"),c(pt)||Ti()}),z("click",X,Di),I(o,qi),Ps()}zs(["click","change"]);var ID=T('<div class="err svelte-9i68x"> </div>'),QQ=T('<div class="ok svelte-9i68x">Saved.</div>'),JQ=T('<div class="reload-msg svelte-9i68x"> </div>'),eJ=T('<div class="loading svelte-9i68x">Loading…</div>'),tJ=T('<div class="anon-row svelte-9i68x"><span class="field-label svelte-9i68x"><code class="svelte-9i68x">allow_anonymous</code></span> <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated clients</option><option>false — require authentication</option></select></div>'),iJ=T("<option></option>"),nJ=T('<div class="tls-section svelte-9i68x"><div class="field-row svelte-9i68x"><label class="svelte-9i68x">Certificate file (certfile) <input placeholder="/etc/mosquitto/certs/server.crt" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Key file (keyfile) <input placeholder="/etc/mosquitto/certs/server.key" class="svelte-9i68x"/></label></div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">CA file (cafile) — single CA cert <input placeholder="/etc/mosquitto/ca.crt" class="svelte-9i68x"/></label> <label class="svelte-9i68x">CA path (capath) — CA cert directory <input placeholder="/etc/mosquitto/ca-certs/" class="svelte-9i68x"/></label></div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">CRL file (crlfile) <input placeholder="/etc/mosquitto/crl.pem" class="svelte-9i68x"/></label> <label class="svelte-9i68x">TLS version <select class="svelte-9i68x"><option>Default</option><option>tlsv1.3</option><option>tlsv1.2</option></select></label></div> <div class="field-row svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> Require client certificate (require_certificate)</label> <label class="toggle-label svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> Use cert CN as username (use_identity_as_username)</label></div></div>'),sJ=T('<div class="field-row svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> Use cert Subject as username (use_subject_as_username)</label></div>'),oJ=T('<div class="advanced-section svelte-9i68x"><div class="field-row svelte-9i68x"><label class="svelte-9i68x">Mount point <input placeholder="(none)" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Max connections <input type="number" min="-1" placeholder="-1 (unlimited)" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Max QoS <select class="svelte-9i68x"><option>default</option><option>0 — fire and forget</option><option>1 — at least once</option><option>2 — exactly once</option></select></label></div> <!></div>'),rJ=T('<div class="auth-section svelte-9i68x"><div class="auth-section-title svelte-9i68x">Authentication</div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">allow_anonymous <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated</option><option>false — require auth</option></select></label> <label class="svelte-9i68x">password_file <input placeholder="/etc/mosquitto/passwd" class="svelte-9i68x"/></label> <label class="svelte-9i68x">acl_file <input placeholder="/etc/mosquitto/acl" class="svelte-9i68x"/></label></div></div>'),aJ=T('<div class="listener-card svelte-9i68x"><div class="card-title svelte-9i68x"><span> </span> <button class="remove-btn svelte-9i68x" title="Remove listener">✕</button></div> <div class="field-row svelte-9i68x"><label class="svelte-9i68x">Port <input type="number" min="1" max="65535" class="svelte-9i68x"/></label> <label class="svelte-9i68x">Protocol <select class="svelte-9i68x"><option>mqtt</option><option>websockets</option></select></label> <label class="svelte-9i68x">Bind address <input placeholder="(all interfaces)" class="svelte-9i68x"/></label> <label class="toggle-label tls-inline svelte-9i68x"><input type="checkbox" class="svelte-9i68x"/> TLS</label></div> <datalist></datalist> <!> <button class="advanced-btn svelte-9i68x"> </button> <!> <!></div>'),lJ=T('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),cJ=T('<div class="global-settings svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox"/> <span><code>per_listener_settings</code> — independent auth per listener</span> <span class="info-icon svelte-9i68x" title="Not recommended when using the dynamic-security plugin — dynsec credentials only apply to the default listener. See mosquitto documentation.">ℹ</span></label> <!></div> <div class="cards svelte-9i68x"><!> <!></div>',1),dJ=T('<div class="listeners-page svelte-9i68x"><div class="page-header svelte-9i68x"><h3 class="svelte-9i68x">Listeners</h3> <div class="header-actions svelte-9i68x"><button class="svelte-9i68x">+ Add listener</button> <button class="btn-save svelte-9i68x"> </button> <button class="btn-reload svelte-9i68x" title="Apply &amp; Reload mosquitto"> </button></div></div> <!> <!> <!> <!> <!></div>');function uJ(o,e){Ts(e,!0);let t=P(null),i=P(""),n=P(!1),s=P(""),r=P(!1),a=P(!1),d=P(""),u=P(yi([])),f=P(null),g=P(!1),p=P(""),w=P(yi([])),y=P(yi(new Set));Bs(()=>{x(),iq().then(Me=>{v(w,Me.addresses,!0)}).catch(()=>{})});async function x(){try{v(t,await Pk(),!0),v(u,JSON.parse(JSON.stringify(c(t).listeners)),!0),v(f,c(t).checksum,!0);const Me=c(t).managed.allow_anonymous;v(p,Me==="true"||Me==="false"?Me:"",!0),v(g,c(t).managed.per_listener_settings==="true"),v(i,"")}catch(Me){v(i,Me.message??"Failed to load broker config",!0)}}function k(){v(u,[...c(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0),v(y,new Set(c(y)),!0)}function D(Me){const jt=new Set(c(y));jt.has(Me)?jt.delete(Me):jt.add(Me),v(y,jt,!0)}function M(Me){v(u,c(u).filter((jt,ft)=>ft!==Me),!0)}async function F(){if(c(t)){v(n,!0),v(s,""),v(r,!1);try{const Me={...c(t).managed};c(g)?(Me.per_listener_settings="true",delete Me.allow_anonymous):(delete Me.per_listener_settings,c(p)?Me.allow_anonymous=c(p):delete Me.allow_anonymous),await tA({listeners:c(u),managed:Me,passthrough:c(t).passthrough,checksum:c(f)}),v(r,!0),setTimeout(()=>v(r,!1),3e3),await x()}catch(Me){v(s,Me.message??"Save failed",!0)}finally{v(n,!1)}}}async function K(){v(a,!0),v(d,"");try{const Me=await iA();v(d,Me.stderr||Me.stdout||"Reloaded",!0)}catch(Me){v(d,"Error: "+(Me.message??"reload failed"))}finally{v(a,!1)}}function V(Me){var jt,ft,ht,he;return!!((jt=Me.tls)!=null&&jt.certfile||(ft=Me.tls)!=null&&ft.keyfile||(ht=Me.tls)!=null&&ht.capath||(he=Me.tls)!=null&&he.cafile)}function se(Me,jt){jt||(Me.tls={}),v(u,[...c(u)],!0)}var te=dJ(),pe=b(te),je=m(b(pe),2),Ke=b(je),ue=m(Ke,2),He=b(ue),dt=m(ue,2),we=b(dt),gt=m(pe,2);{var ot=Me=>{var jt=ID(),ft=b(jt);H(()=>N(ft,c(i))),I(Me,jt)};O(gt,Me=>{c(i)&&Me(ot)})}var Pt=m(gt,2);{var Oe=Me=>{var jt=ID(),ft=b(jt);H(()=>N(ft,c(s))),I(Me,jt)};O(Pt,Me=>{c(s)&&Me(Oe)})}var Mt=m(Pt,2);{var et=Me=>{var jt=QQ();I(Me,jt)};O(Mt,Me=>{c(r)&&Me(et)})}var ct=m(Mt,2);{var Nt=Me=>{var jt=JQ(),ft=b(jt);H(()=>N(ft,c(d))),I(Me,jt)};O(ct,Me=>{c(d)&&Me(Nt)})}var ti=m(ct,2);{var ri=Me=>{var jt=eJ();I(Me,jt)},Vt=Me=>{var jt=cJ(),ft=xt(jt),ht=b(ft),he=b(ht),Xe=m(ht,2);{var Ut=Xt=>{var pt=tJ(),Bi=m(b(pt),2),Ti=b(Bi);Ti.value=Ti.__value="";var Ni=m(Ti);Ni.value=Ni.__value="true";var Ki=m(Ni);Ki.value=Ki.__value="false",ys(Bi,()=>c(p),Ai=>v(p,Ai)),I(Xt,pt)};O(Xe,Xt=>{c(g)||Xt(Ut)})}var wi=m(ft,2),Ri=b(wi);ni(Ri,17,()=>c(u),Vi,(Xt,pt,Bi)=>{var Ti=aJ(),Ni=b(Ti),Ki=b(Ni),Ai=b(Ki),Di=m(Ki,2),$i=m(Ni,2),Gi=b($i),Ui=m(b(Gi)),mn=m(Gi,2),rt=m(b(mn)),Kt=b(rt);Kt.value=Kt.__value="mqtt";var _i=m(Kt);_i.value=_i.__value="websockets";var Pi=m(mn,2),Li=m(b(Pi));ln(Li,"list",`bind-addr-list-${Bi}`);var Si=m(Pi,2),Oi=b(Si),qi=m($i,2);ln(qi,"id",`bind-addr-list-${Bi}`),ni(qi,21,()=>c(w),Vi,(ze,st)=>{var X=iJ(),ae={};H(()=>{ae!==(ae=c(st))&&(X.value=(X.__value=c(st))??"")}),I(ze,X)});var mi=m(qi,2);{var Ue=ze=>{var st=nJ(),X=b(st),ae=b(X),me=m(b(ae)),Ze=m(ae,2),Zt=m(b(Ze)),bt=m(X,2),We=b(bt),At=m(b(We)),ai=m(We,2),zt=m(b(ai)),vi=m(bt,2),hi=b(vi),Ci=m(b(hi)),zi=m(hi,2),$e=m(b(zi)),Fe=b($e);Fe.value=Fe.__value="";var Ft=m(Fe);Ft.value=Ft.__value="tlsv1.3";var Yt=m(Ft);Yt.value=Yt.__value="tlsv1.2";var qt=m(vi,2),Qt=b(qt),re=b(Qt),Ge=m(Qt,2),wt=b(Ge);Ht(me,()=>c(pt).tls.certfile,vt=>c(pt).tls.certfile=vt),Ht(Zt,()=>c(pt).tls.keyfile,vt=>c(pt).tls.keyfile=vt),Ht(At,()=>c(pt).tls.cafile,vt=>c(pt).tls.cafile=vt),Ht(zt,()=>c(pt).tls.capath,vt=>c(pt).tls.capath=vt),Ht(Ci,()=>c(pt).tls.crlfile,vt=>c(pt).tls.crlfile=vt),ys($e,()=>c(pt).tls.tls_version,vt=>c(pt).tls.tls_version=vt),ms(re,()=>c(pt).tls.require_certificate,vt=>c(pt).tls.require_certificate=vt),ms(wt,()=>c(pt).tls.use_identity_as_username,vt=>c(pt).tls.use_identity_as_username=vt),I(ze,st)},J=Ct(()=>V(c(pt)));O(mi,ze=>{c(J)&&ze(Ue)})}var Qe=m(mi,2),_t=b(Qe),yt=m(Qe,2);{var Ot=ze=>{var st=oJ(),X=b(st),ae=b(X),me=m(b(ae)),Ze=m(ae,2),Zt=m(b(Ze)),bt=m(Ze,2),We=m(b(bt)),At=b(We);At.value=At.__value="";var ai=m(At);ai.value=ai.__value="0";var zt=m(ai);zt.value=zt.__value="1";var vi=m(zt);vi.value=vi.__value="2";var hi;ZS(We);var Ci=m(X,2);{var zi=Fe=>{var Ft=sJ(),Yt=b(Ft),qt=b(Yt);ms(qt,()=>c(pt).tls.use_subject_as_username,Qt=>c(pt).tls.use_subject_as_username=Qt),I(Fe,Ft)},$e=Ct(()=>V(c(pt)));O(Ci,Fe=>{c($e)&&Fe(zi)})}H(Fe=>{hi!==(hi=Fe)&&(We.value=(We.__value=Fe)??"",mv(We,Fe))},[()=>c(pt).max_qos!==void 0?String(c(pt).max_qos):""]),Ht(me,()=>c(pt).mount_point,Fe=>c(pt).mount_point=Fe),Ht(Zt,()=>c(pt).max_connections,Fe=>c(pt).max_connections=Fe),z("change",We,Fe=>{const Ft=Fe.target.value;c(pt).max_qos=Ft===""?void 0:Number(Ft),v(u,[...c(u)],!0)}),I(ze,st)},j=Ct(()=>c(y).has(Bi));O(yt,ze=>{c(j)&&ze(Ot)})}var ce=m(yt,2);{var ke=ze=>{var st=rJ(),X=m(b(st),2),ae=b(X),me=m(b(ae)),Ze=b(me);Ze.value=Ze.__value="";var Zt=m(Ze);Zt.value=Zt.__value="true";var bt=m(Zt);bt.value=bt.__value="false";var We;ZS(me);var At=m(ae,2),ai=m(b(At)),zt=m(At,2),vi=m(b(zt));H(()=>{We!==(We=c(pt).allow_anonymous===void 0?"":c(pt).allow_anonymous?"true":"false")&&(me.value=me.__value=c(pt).allow_anonymous===void 0?"":c(pt).allow_anonymous?"true":"false",mv(me,c(pt).allow_anonymous===void 0?"":c(pt).allow_anonymous?"true":"false"))}),z("change",me,hi=>{const Ci=hi.target.value;c(pt).allow_anonymous=Ci===""?void 0:Ci==="true",v(u,[...c(u)],!0)}),Ht(ai,()=>c(pt).password_file,hi=>c(pt).password_file=hi),Ht(vi,()=>c(pt).acl_file,hi=>c(pt).acl_file=hi),I(ze,st)};O(ce,ze=>{c(g)&&ze(ke)})}H((ze,st)=>{N(Ai,`Port ${c(pt).port??""}`),hl(Oi,ze),N(_t,`${st??""} Advanced`)},[()=>V(c(pt)),()=>c(y).has(Bi)?"▾":"▸"]),z("click",Di,()=>M(Bi)),Ht(Ui,()=>c(pt).port,ze=>c(pt).port=ze),ys(rt,()=>c(pt).protocol,ze=>c(pt).protocol=ze),Ht(Li,()=>c(pt).bindAddress,ze=>c(pt).bindAddress=ze),z("change",Oi,ze=>se(c(pt),ze.target.checked)),z("click",Qe,()=>D(Bi)),I(Xt,Ti)});var ci=m(Ri,2);{var Bt=Xt=>{var pt=lJ();I(Xt,pt)};O(ci,Xt=>{c(u).length===0&&Xt(Bt)})}ms(he,()=>c(g),Xt=>v(g,Xt)),I(Me,jt)};O(ti,Me=>{c(t)===null&&!c(i)?Me(ri):Me(Vt,-1)})}H(()=>{ue.disabled=c(n),N(He,c(n)?"Saving…":"Save"),dt.disabled=c(a),N(we,c(a)?"Reloading…":"Apply & Reload")}),z("click",Ke,k),z("click",ue,F),z("click",dt,K),I(o,te),Ps()}zs(["click","change"]);var ED=T('<div class="err svelte-1by6o5t"> </div>'),hJ=T('<div class="ok svelte-1by6o5t">Saved.</div>'),fJ=T('<div class="reload-msg svelte-1by6o5t"> </div>'),DD=T('<label class="check-label svelte-1by6o5t"><input type="checkbox" class="svelte-1by6o5t"/> </label>'),gJ=T(`<div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Connection limits</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_connections</span> <input placeholder="−1 (unlimited)" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum simultaneous client connections. <code class="svelte-1by6o5t">-1</code> = unlimited.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_keepalive</span> <input placeholder="65535" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum keepalive value (seconds) a client may request. <code class="svelte-1by6o5t">0</code> = unlimited.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_inflight_messages</span> <input placeholder="20" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Max simultaneous unacknowledged QoS 1/2 messages per client.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_queued_messages</span> <input placeholder="100" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Max messages queued for a disconnected persistent client.</p></div></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Packet &amp; payload size</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">max_packet_size</span> <input placeholder="0 (no limit)" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum MQTT packet size in bytes (MQTT v5 only). <code class="svelte-1by6o5t">0</code> = no limit.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">message_size_limit</span> <input placeholder="0 (no limit)" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Maximum payload size in bytes for published messages. <code class="svelte-1by6o5t">0</code> = no limit.</p></div></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Sessions &amp; persistence</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">persistent_client_expiration</span> <input placeholder="e.g. 7d, 2h, 30m" class="svelte-1by6o5t"/></label> <p class="hint svelte-1by6o5t">Expire persistent sessions after this duration. Suffix: <code class="svelte-1by6o5t">d</code>/<code class="svelte-1by6o5t">h</code>/<code class="svelte-1by6o5t">m</code>/<code class="svelte-1by6o5t">s</code>. Empty = never expire.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">retain_available</span> <select class="svelte-1by6o5t"><option>auto (broker default)</option><option>true — allow retained messages</option><option>false — disable retained messages globally</option></select></label> <p class="hint svelte-1by6o5t">Disable retained messages broker-wide.</p></div></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Logging</h4> <div class="field svelte-1by6o5t"><span class="field-key svelte-1by6o5t">log_dest</span> <div class="checkbox-group svelte-1by6o5t"></div> <p class="hint svelte-1by6o5t">Log destinations. Enable <code class="svelte-1by6o5t">topic</code> to stream logs to <code class="svelte-1by6o5t">$SYS/broker/log/*</code> and view them in the Logs tab.</p></div> <div class="field svelte-1by6o5t"><span class="field-key svelte-1by6o5t">log_type</span> <div class="checkbox-group svelte-1by6o5t"></div> <p class="hint svelte-1by6o5t">Types of messages to log. Leave empty to use the broker default.</p></div></div> <div class="section svelte-1by6o5t"><h4 class="svelte-1by6o5t">Performance</h4> <div class="field-grid svelte-1by6o5t"><div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">set_tcp_nodelay</span> <select class="svelte-1by6o5t"><option>auto (broker default)</option><option>true — disable Nagle (lower latency)</option><option>false — enable Nagle</option></select></label> <p class="hint svelte-1by6o5t">Disable Nagle's algorithm to reduce latency at the cost of slightly more packets.</p></div> <div class="field svelte-1by6o5t"><label class="svelte-1by6o5t"><span class="svelte-1by6o5t">connection_messages</span> <select class="svelte-1by6o5t"><option>auto (broker default)</option><option>true — log connect/disconnect</option><option>false — suppress</option></select></label> <p class="hint svelte-1by6o5t">Log a message on every client connect and disconnect.</p></div></div></div>`,1),pJ=T('<div class="config-page svelte-1by6o5t"><div class="page-header svelte-1by6o5t"><h3 class="svelte-1by6o5t">Global config</h3> <div class="header-actions svelte-1by6o5t"><button class="btn-save svelte-1by6o5t"> </button> <button class="btn-reload svelte-1by6o5t"> </button></div></div> <!> <!> <!> <!> <!></div>');function _J(o,e){Ts(e,!0);let t=P(null),i=P(""),n=P(!1),s=P(""),r=P(!1),a=P(!1),d=P(""),u=P(null),f=P(""),g=P(""),p=P(""),w=P(""),y=P(""),x=P(""),k=P(""),D=P(""),M=P(""),F=P("");const K=["file","stdout","stderr","syslog","topic","none"],V=["debug","error","warning","notice","information","subscribe","unsubscribe","websockets","connect","disconnect","publish","receive","all"];let se=P(yi(new Set)),te=P(yi(new Set));function pe(he){if(!c(t))return"";const Xe=c(t).managed[he];return Array.isArray(Xe)?Xe[0]:Xe??""}function je(he){if(!c(t))return new Set;const Xe=c(t).managed[he];return Xe?new Set(Array.isArray(Xe)?Xe:[Xe]):new Set}Bs(()=>Ke());async function Ke(){try{v(t,await Pk(),!0),v(u,c(t).checksum,!0),v(f,pe("max_connections"),!0),v(g,pe("max_inflight_messages"),!0),v(p,pe("max_queued_messages"),!0),v(w,pe("max_packet_size"),!0),v(y,pe("message_size_limit"),!0),v(x,pe("max_keepalive"),!0),v(k,pe("persistent_client_expiration"),!0),v(D,pe("retain_available"),!0),v(M,pe("set_tcp_nodelay"),!0),v(F,pe("connection_messages"),!0),v(se,je("log_dest"),!0),v(te,je("log_type"),!0),v(i,"")}catch(he){v(i,he.message??"Failed to load config",!0)}}async function ue(){if(c(t)){v(n,!0),v(s,""),v(r,!1);try{let Xe=function(Ut,wi){wi!==""?he[Ut]=wi:delete he[Ut]};const he={...c(t).managed};Xe("max_connections",c(f)),Xe("max_inflight_messages",c(g)),Xe("max_queued_messages",c(p)),Xe("max_packet_size",c(w)),Xe("message_size_limit",c(y)),Xe("max_keepalive",c(x)),Xe("persistent_client_expiration",c(k)),Xe("retain_available",c(D)),Xe("set_tcp_nodelay",c(M)),Xe("connection_messages",c(F)),c(se).size>0?he.log_dest=c(se).size===1?[...c(se)][0]:[...c(se)]:delete he.log_dest,c(te).size>0?he.log_type=c(te).size===1?[...c(te)][0]:[...c(te)]:delete he.log_type,await tA({listeners:c(t).listeners,managed:he,passthrough:c(t).passthrough,checksum:c(u)}),v(r,!0),setTimeout(()=>v(r,!1),3e3),await Ke()}catch(he){v(s,he.message??"Save failed",!0)}finally{v(n,!1)}}}async function He(){v(a,!0),v(d,"");try{const he=await iA();v(d,he.stderr||he.stdout||"Reloaded",!0)}catch(he){v(d,"Error: "+(he.message??"reload failed"))}finally{v(a,!1)}}var dt=pJ(),we=b(dt),gt=m(b(we),2),ot=b(gt),Pt=b(ot),Oe=m(ot,2),Mt=b(Oe),et=m(we,2);{var ct=he=>{var Xe=ED(),Ut=b(Xe);H(()=>N(Ut,c(i))),I(he,Xe)};O(et,he=>{c(i)&&he(ct)})}var Nt=m(et,2);{var ti=he=>{var Xe=ED(),Ut=b(Xe);H(()=>N(Ut,c(s))),I(he,Xe)};O(Nt,he=>{c(s)&&he(ti)})}var ri=m(Nt,2);{var Vt=he=>{var Xe=hJ();I(he,Xe)};O(ri,he=>{c(r)&&he(Vt)})}var Me=m(ri,2);{var jt=he=>{var Xe=fJ(),Ut=b(Xe);H(()=>N(Ut,c(d))),I(he,Xe)};O(Me,he=>{c(d)&&he(jt)})}var ft=m(Me,2);{var ht=he=>{var Xe=gJ(),Ut=xt(Xe),wi=m(b(Ut),2),Ri=b(wi),ci=b(Ri),Bt=m(b(ci),2),Xt=m(Ri,2),pt=b(Xt),Bi=m(b(pt),2),Ti=m(Xt,2),Ni=b(Ti),Ki=m(b(Ni),2),Ai=m(Ti,2),Di=b(Ai),$i=m(b(Di),2),Gi=m(Ut,2),Ui=m(b(Gi),2),mn=b(Ui),rt=b(mn),Kt=m(b(rt),2),_i=m(mn,2),Pi=b(_i),Li=m(b(Pi),2),Si=m(Gi,2),Oi=m(b(Si),2),qi=b(Oi),mi=b(qi),Ue=m(b(mi),2),J=m(qi,2),Qe=b(J),_t=m(b(Qe),2),yt=b(_t);yt.value=yt.__value="";var Ot=m(yt);Ot.value=Ot.__value="true";var j=m(Ot);j.value=j.__value="false";var ce=m(Si,2),ke=m(b(ce),2),ze=m(b(ke),2);ni(ze,21,()=>K,Vi,(Fe,Ft)=>{var Yt=DD(),qt=b(Yt),Qt=m(qt);H(re=>{hl(qt,re),N(Qt,` ${c(Ft)??""}`)},[()=>c(se).has(c(Ft))]),z("change",qt,()=>{const re=new Set(c(se));re.has(c(Ft))?re.delete(c(Ft)):re.add(c(Ft)),v(se,re,!0)}),I(Fe,Yt)});var st=m(ke,2),X=m(b(st),2);ni(X,21,()=>V,Vi,(Fe,Ft)=>{var Yt=DD(),qt=b(Yt),Qt=m(qt);H(re=>{hl(qt,re),N(Qt,` ${c(Ft)??""}`)},[()=>c(te).has(c(Ft))]),z("change",qt,()=>{const re=new Set(c(te));re.has(c(Ft))?re.delete(c(Ft)):re.add(c(Ft)),v(te,re,!0)}),I(Fe,Yt)});var ae=m(ce,2),me=m(b(ae),2),Ze=b(me),Zt=b(Ze),bt=m(b(Zt),2),We=b(bt);We.value=We.__value="";var At=m(We);At.value=At.__value="true";var ai=m(At);ai.value=ai.__value="false";var zt=m(Ze,2),vi=b(zt),hi=m(b(vi),2),Ci=b(hi);Ci.value=Ci.__value="";var zi=m(Ci);zi.value=zi.__value="true";var $e=m(zi);$e.value=$e.__value="false",Ht(Bt,()=>c(f),Fe=>v(f,Fe)),Ht(Bi,()=>c(x),Fe=>v(x,Fe)),Ht(Ki,()=>c(g),Fe=>v(g,Fe)),Ht($i,()=>c(p),Fe=>v(p,Fe)),Ht(Kt,()=>c(w),Fe=>v(w,Fe)),Ht(Li,()=>c(y),Fe=>v(y,Fe)),Ht(Ue,()=>c(k),Fe=>v(k,Fe)),ys(_t,()=>c(D),Fe=>v(D,Fe)),ys(bt,()=>c(M),Fe=>v(M,Fe)),ys(hi,()=>c(F),Fe=>v(F,Fe)),I(he,Xe)};O(ft,he=>{c(t)&&he(ht)})}H(()=>{ot.disabled=c(n),N(Pt,c(n)?"Saving…":"Save"),Oe.disabled=c(a),N(Mt,c(a)?"Reloading…":"Apply & Reload")}),z("click",ot,ue),z("click",Oe,He),I(o,dt),Ps()}zs(["click","change"]);var tl=T('<div class="err svelte-9auejo"> </div>'),mJ=T('<div class="info-card svelte-9auejo"><dl class="svelte-9auejo"><dt class="svelte-9auejo">CN</dt><dd class="svelte-9auejo"> </dd> <dt class="svelte-9auejo">Fingerprint (SHA-256)</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Expires</dt><dd> </dd></dl></div>'),vJ=T('<div class="empty svelte-9auejo">No managed server certificate. Use one of the options above, or configure <code>certfile</code>/<code>keyfile</code> manually in the Listeners tab.</div>'),bJ=T('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),yJ=T('<tr><td class="mono svelte-9auejo"> </td><td class="mono small svelte-9auejo"> </td><td> </td><td class="actions svelte-9auejo"><button class="danger svelte-9auejo">✕</button></td></tr>'),wJ=T('<table class="svelte-9auejo"><thead><tr><th class="svelte-9auejo">CN</th><th class="svelte-9auejo">Fingerprint</th><th class="svelte-9auejo">Expires</th><th class="svelte-9auejo"></th></tr></thead><tbody></tbody></table>'),SJ=T('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Certificate installed.</p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd><dt class="svelte-9auejo">Expires</dt><dd class="svelte-9auejo"> </dd></dl></div>'),TD=T('<button class="btn-primary svelte-9auejo"> </button>'),CJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate self-signed server certificate</h3> <label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Validity (days)<input type="number" min="1" max="3650" class="svelte-9auejo"/></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div></div></div>'),xJ=T('<label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <p class="hint svelte-9auejo">A private key and CSR are generated on the server. Copy the CSR, have it signed by your CA, then paste the signed cert below.</p> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),kJ=T('<div class="ok svelte-9auejo">✓ Certificate installed.</div>'),LJ=T('<p class="hint svelte-9auejo">Key stored on server. Copy the CSR, get it signed, then paste the signed certificate to complete installation.</p> <label class="svelte-9auejo">Certificate Signing Request<textarea readonly="" rows="8" class="svelte-9auejo"></textarea></label> <div class="csr-actions svelte-9auejo"><button class="svelte-9auejo">Copy CSR</button> <a class="btn-download svelte-9auejo" download="server.csr">Download .csr</a></div> <hr class="svelte-9auejo"/> <label class="svelte-9auejo">Upload signed certificate (PEM)<textarea rows="6" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div>',1),IJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Generate key + CSR for server certificate</h3> <!></div></div>'),EJ=T('<label class="svelte-9auejo">Certificate (PEM)<textarea rows="5" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <label class="svelte-9auejo">Private key (PEM — leave blank if key is already on disk from a prior CSR)<textarea rows="4" placeholder="-----BEGIN PRIVATE KEY----- … -----END PRIVATE KEY-----" class="svelte-9auejo"></textarea></label>',1),DJ=T('<span class="file-name mono small svelte-9auejo"> </span>'),TJ=T('<label class="svelte-9auejo">PKCS#12 file <div class="file-row svelte-9auejo"><input type="file" accept=".p12,.pfx" class="svelte-9auejo"/> <!></div></label> <label class="svelte-9auejo">Passphrase <div class="pw-row svelte-9auejo"><input autocomplete="off" class="svelte-9auejo"/> <button class="toggle-pw svelte-9auejo"> </button></div></label>',1),PJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Import server certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>PEM files</button> <button>PKCS#12 (.p12 / .pfx)</button></div> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),yS=T("<option></option>"),MJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Use existing certificate files</h3> <p class="hint svelte-9auejo">Enter absolute paths on the broker host. Tab-completion is available for paths starting with /.</p> <label class="svelte-9auejo">Certificate file path <input list="set-cert-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/fullchain.pem" class="svelte-9auejo"/> <datalist id="set-cert-path-list"></datalist></label> <label class="svelte-9auejo">Private key file path <input list="set-key-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/privkey.pem" class="svelte-9auejo"/> <datalist id="set-key-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),RJ=T('<label class="svelte-9auejo">CA certificate (PEM)<textarea rows="8" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),NJ=T('<p class="hint svelte-9auejo">Enter the absolute path to the CA certificate file on the broker host.</p> <label class="svelte-9auejo">CA certificate path <input list="trusted-path-list" placeholder="/etc/ssl/certs/my-ca.pem" class="svelte-9auejo"/> <datalist id="trusted-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),AJ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Add trusted CA certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>Paste PEM</button> <button>From path</button></div> <!></div></div>'),OJ=T('<div class="certs-page svelte-9auejo"><div class="page-toolbar svelte-9auejo"><button class="reload-btn svelte-9auejo" title="Refresh">↺</button></div> <!> <!> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Server Certificate</h3> <button class="svelte-9auejo">Self-signed</button> <button class="svelte-9auejo">Generate CSR</button> <button class="svelte-9auejo">Import cert</button> <button class="svelte-9auejo">Use path</button></div> <!></div> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Trusted CA Certificates</h3> <button class="svelte-9auejo">+ Add CA cert</button></div> <!></div></div> <!> <!> <!> <!> <!>',1);function FJ(o,e){Ts(e,!0);let t=P(null),i=P(yi([])),n=P(""),s=P(""),r=P(!1),a=P(""),d=P(""),u=P(365),f=P(!1),g=P(""),p=P(null),w=P(!1),y=P(""),x=P(""),k=P(!1),D=P(""),M=P(""),F=P(""),K=P(!1),V=P(""),se=P(!1),te=P(!1),pe=P("pem"),je=P(""),Ke=P(""),ue=P(""),He=P(""),dt=P(""),we=P(!1),gt=P(!1),ot=P(""),Pt=P(!1),Oe=P(""),Mt=P(""),et=P(!1),ct=P(""),Nt=P(yi([])),ti=P(yi([])),ri=P(!1),Vt=P("pem"),Me=P(""),jt=P(!1),ft=P(""),ht=P(""),he=P(yi([])),Xe=P(!1),Ut=P("");async function wi(){try{const[$e,Fe]=await Promise.allSettled([Cq(),Lq()]);$e.status==="fulfilled"&&v(t,$e.value.server,!0),Fe.status==="fulfilled"&&v(i,Fe.value.certs,!0),v(n,"")}catch($e){v(n,$e.message,!0)}}Bs(()=>{wi()});async function Ri(){v(g,""),v(f,!0),v(p,null);try{const $e=c(d).split(",").map(Ft=>Ft.trim()).filter(Boolean),Fe=await xq({cn:c(a),san:$e,days:c(u)});v(p,{fingerprint:Fe.fingerprint,expires:Fe.expires},!0),await wi()}catch($e){v(g,$e.message,!0)}finally{v(f,!1)}}async function ci(){v(D,""),v(k,!0),v(M,"");try{const $e=c(x).split(",").map(Ft=>Ft.trim()).filter(Boolean),Fe=await kq({cn:c(y),san:$e});v(M,Fe.csrPem,!0)}catch($e){v(D,$e.message,!0)}finally{v(k,!1)}}async function Bt(){v(V,""),v(K,!0),v(se,!1);try{if(!c(F).trim())throw new Error("Paste the signed certificate PEM");await _S({cert:c(F)}),v(se,!0),await wi()}catch($e){v(V,$e.message,!0)}finally{v(K,!1)}}function Xt(){navigator.clipboard.writeText(c(M)).catch(()=>{})}function pt($e){var Yt;const Fe=(Yt=$e.target.files)==null?void 0:Yt[0];if(!Fe)return;v(He,Fe.name,!0);const Ft=new FileReader;Ft.onload=()=>{const qt=Ft.result;v(ue,btoa(String.fromCharCode(...new Uint8Array(qt))),!0)},Ft.readAsArrayBuffer(Fe)}async function Bi(){v(ot,""),v(gt,!0);try{if(c(pe)==="p12"){if(!c(ue))throw new Error("Select a .p12 / .pfx file");await _S({p12base64:c(ue),passphrase:c(dt)})}else{if(!c(je).trim())throw new Error("Certificate PEM is required");await _S({cert:c(je),key:c(Ke)||void 0})}v(te,!1),await wi()}catch($e){v(ot,$e.message,!0)}finally{v(gt,!1)}}function Ti($e){let Fe;return Ft=>{const Yt=Ft.target.value;clearTimeout(Fe),Fe=setTimeout(async()=>{if(!Yt.startsWith("/")||Yt.length<2){$e([]);return}try{$e((await Dq(Yt)).suggestions)}catch{$e([])}},280)}}const Ni=Ti($e=>{v(Nt,$e,!0)}),Ki=Ti($e=>{v(ti,$e,!0)}),Ai=Ti($e=>{v(he,$e,!0)});async function Di(){v(ct,""),v(et,!0);try{await Tq({certPath:c(Oe),keyPath:c(Mt)}),v(Pt,!1),await wi()}catch($e){v(ct,$e.message,!0)}finally{v(et,!1)}}async function $i(){v(ft,""),v(jt,!0);try{await Iq(c(Me)),v(Me,""),v(ri,!1),await wi()}catch($e){v(ft,$e.message,!0)}finally{v(jt,!1)}}async function Gi(){v(Ut,""),v(Xe,!0);try{await Pq(c(ht)),v(ht,""),v(ri,!1),await wi()}catch($e){v(Ut,$e.message,!0)}finally{v(Xe,!1)}}async function Ui($e){if(confirm("Remove this trusted CA cert?"))try{await Eq($e),await wi()}catch(Fe){v(s,Fe.message,!0)}}function mn($e){const Fe=new Date($e).getTime()-Date.now();return Fe<0?"expired":Fe<30*864e5?"expiring":""}function rt($e){return new Date($e).toLocaleDateString()}var Kt=OJ(),_i=xt(Kt),Pi=b(_i),Li=b(Pi),Si=m(Pi,2);{var Oi=$e=>{var Fe=tl(),Ft=b(Fe);H(()=>N(Ft,c(n))),I($e,Fe)};O(Si,$e=>{c(n)&&$e(Oi)})}var qi=m(Si,2);{var mi=$e=>{var Fe=tl(),Ft=b(Fe);H(()=>N(Ft,c(s))),I($e,Fe)};O(qi,$e=>{c(s)&&$e(mi)})}var Ue=m(qi,2),J=b(Ue),Qe=m(b(J),2),_t=m(Qe,2),yt=m(_t,2),Ot=m(yt,2),j=m(J,2);{var ce=$e=>{var Fe=mJ(),Ft=b(Fe),Yt=m(b(Ft)),qt=b(Yt),Qt=m(Yt,3),re=b(Qt),Ge=m(Qt,3),wt=b(Ge);H((vt,di)=>{N(qt,c(t).cn),N(re,c(t).fingerprint),kt(Ge,1,vt,"svelte-9auejo"),N(wt,di)},[()=>Kg(mn(c(t).expires)),()=>rt(c(t).expires)]),I($e,Fe)},ke=$e=>{var Fe=vJ();I($e,Fe)};O(j,$e=>{c(t)?$e(ce):$e(ke,-1)})}var ze=m(Ue,2),st=b(ze),X=m(b(st),2),ae=m(st,2);{var me=$e=>{var Fe=bJ();I($e,Fe)},Ze=$e=>{var Fe=wJ(),Ft=m(b(Fe));ni(Ft,21,()=>c(i),Vi,(Yt,qt)=>{var Qt=yJ(),re=b(Qt),Ge=b(re),wt=m(re),vt=b(wt),di=m(wt),It=b(di),Ii=m(di),W=b(Ii);H((Q,oe,$)=>{N(Ge,c(qt).cn),N(vt,`${Q??""}…`),kt(di,1,oe,"svelte-9auejo"),N(It,$)},[()=>c(qt).fingerprint.slice(0,29),()=>Kg(mn(c(qt).expires)),()=>rt(c(qt).expires)]),z("click",W,()=>Ui(c(qt).fingerprint)),I(Yt,Qt)}),I($e,Fe)};O(ae,$e=>{c(i).length===0?$e(me):$e(Ze,-1)})}var Zt=m(_i,2);{var bt=$e=>{var Fe=CJ(),Ft=b(Fe),Yt=m(b(Ft),2),qt=m(b(Yt)),Qt=m(Yt,2),re=m(b(Qt)),Ge=m(Qt,2),wt=m(b(Ge)),vt=m(Ge,2);{var di=A=>{var G=tl(),ie=b(G);H(()=>N(ie,c(g))),I(A,G)};O(vt,A=>{c(g)&&A(di)})}var It=m(vt,2);{var Ii=A=>{var G=SJ(),ie=m(b(G),2),fe=m(b(ie)),Y=b(fe),le=m(fe,2),Re=b(le);H(_e=>{N(Y,c(p).fingerprint),N(Re,_e)},[()=>rt(c(p).expires)]),I(A,G)};O(It,A=>{c(p)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2);{var $=A=>{var G=TD(),ie=b(G);H(()=>{G.disabled=c(f),N(ie,c(f)?"Generating…":"Generate")}),z("click",G,Ri),I(A,G)};O(oe,A=>{c(p)||A($)})}Ht(qt,()=>c(a),A=>v(a,A)),Ht(re,()=>c(d),A=>v(d,A)),Ht(wt,()=>c(u),A=>v(u,A)),z("click",Q,()=>v(r,!1)),I($e,Fe)};O(Zt,$e=>{c(r)&&$e(bt)})}var We=m(Zt,2);{var At=$e=>{var Fe=IJ(),Ft=b(Fe),Yt=m(b(Ft),2);{var qt=re=>{var Ge=xJ(),wt=xt(Ge),vt=m(b(wt)),di=m(wt,2),It=m(b(di)),Ii=m(di,4);{var W=G=>{var ie=tl(),fe=b(ie);H(()=>N(fe,c(D))),I(G,ie)};O(Ii,G=>{c(D)&&G(W)})}var Q=m(Ii,2),oe=b(Q),$=m(oe,2),A=b($);H(()=>{$.disabled=c(k),N(A,c(k)?"Generating…":"Generate key + CSR")}),Ht(vt,()=>c(y),G=>v(y,G)),Ht(It,()=>c(x),G=>v(x,G)),z("click",oe,()=>v(w,!1)),z("click",$,ci),I(re,Ge)},Qt=re=>{var Ge=LJ(),wt=m(xt(Ge),2),vt=m(b(wt)),di=m(wt,2),It=b(di),Ii=m(It,2),W=m(di,4),Q=m(b(W)),oe=m(W,2);{var $=Re=>{var _e=tl(),ge=b(_e);H(()=>N(ge,c(V))),I(Re,_e)};O(oe,Re=>{c(V)&&Re($)})}var A=m(oe,2);{var G=Re=>{var _e=kJ();I(Re,_e)};O(A,Re=>{c(se)&&Re(G)})}var ie=m(A,2),fe=b(ie),Y=m(fe,2);{var le=Re=>{var _e=TD(),ge=b(_e);H(tt=>{_e.disabled=tt,N(ge,c(K)?"Uploading…":"Upload signed cert")},[()=>c(K)||!c(F).trim()]),z("click",_e,Bt),I(Re,_e)};O(Y,Re=>{c(se)||Re(le)})}H(Re=>{YS(vt,c(M)),ln(Ii,"href",`data:application/pkcs10;charset=utf-8,${Re??""}`)},[()=>encodeURIComponent(c(M))]),z("click",It,Xt),Ht(Q,()=>c(F),Re=>v(F,Re)),z("click",fe,()=>v(w,!1)),I(re,Ge)};O(Yt,re=>{c(M)?re(Qt,-1):re(qt)})}I($e,Fe)};O(We,$e=>{c(w)&&$e(At)})}var ai=m(We,2);{var zt=$e=>{var Fe=PJ(),Ft=b(Fe),Yt=m(b(Ft),2),qt=b(Yt);let Qt;var re=m(qt,2);let Ge;var wt=m(Yt,2);{var vt=A=>{var G=EJ(),ie=xt(G),fe=m(b(ie)),Y=m(ie,2),le=m(b(Y));Ht(fe,()=>c(je),Re=>v(je,Re)),Ht(le,()=>c(Ke),Re=>v(Ke,Re)),I(A,G)},di=A=>{var G=TJ(),ie=xt(G),fe=m(b(ie)),Y=b(fe),le=m(Y,2);{var Re=Le=>{var Ve=DJ(),De=b(Ve);H(()=>N(De,c(He))),I(Le,Ve)};O(le,Le=>{c(He)&&Le(Re)})}var _e=m(ie,2),ge=m(b(_e)),tt=b(ge),U=m(tt,2),ne=b(U);H(()=>{ln(tt,"type",c(we)?"text":"password"),N(ne,c(we)?"Hide":"Show")}),z("change",Y,pt),Ht(tt,()=>c(dt),Le=>v(dt,Le)),z("click",U,()=>v(we,!c(we))),I(A,G)};O(wt,A=>{c(pe)==="pem"?A(vt):A(di,-1)})}var It=m(wt,2);{var Ii=A=>{var G=tl(),ie=b(G);H(()=>N(ie,c(ot))),I(A,G)};O(It,A=>{c(ot)&&A(Ii)})}var W=m(It,2),Q=b(W),oe=m(Q,2),$=b(oe);H(()=>{Qt=kt(qt,1,"svelte-9auejo",null,Qt,{active:c(pe)==="pem"}),Ge=kt(re,1,"svelte-9auejo",null,Ge,{active:c(pe)==="p12"}),oe.disabled=c(gt),N($,c(gt)?"Importing…":"Import")}),z("click",qt,()=>v(pe,"pem")),z("click",re,()=>v(pe,"p12")),z("click",Q,()=>v(te,!1)),z("click",oe,Bi),I($e,Fe)};O(ai,$e=>{c(te)&&$e(zt)})}var vi=m(ai,2);{var hi=$e=>{var Fe=MJ(),Ft=b(Fe),Yt=m(b(Ft),4),qt=m(b(Yt)),Qt=m(qt,2);ni(Qt,21,()=>c(Nt),Vi,(oe,$)=>{var A=yS(),G={};H(()=>{G!==(G=c($))&&(A.value=(A.__value=c($))??"")}),I(oe,A)});var re=m(Yt,2),Ge=m(b(re)),wt=m(Ge,2);ni(wt,21,()=>c(ti),Vi,(oe,$)=>{var A=yS(),G={};H(()=>{G!==(G=c($))&&(A.value=(A.__value=c($))??"")}),I(oe,A)});var vt=m(re,2);{var di=oe=>{var $=tl(),A=b($);H(()=>N(A,c(ct))),I(oe,$)};O(vt,oe=>{c(ct)&&oe(di)})}var It=m(vt,2),Ii=b(It),W=m(Ii,2),Q=b(W);H(oe=>{W.disabled=oe,N(Q,c(et)?"Installing…":"Install")},[()=>c(et)||!c(Oe).trim()||!c(Mt).trim()]),z("input",qt,Ni),Ht(qt,()=>c(Oe),oe=>v(Oe,oe)),z("input",Ge,Ki),Ht(Ge,()=>c(Mt),oe=>v(Mt,oe)),z("click",Ii,()=>v(Pt,!1)),z("click",W,Di),I($e,Fe)};O(vi,$e=>{c(Pt)&&$e(hi)})}var Ci=m(vi,2);{var zi=$e=>{var Fe=AJ(),Ft=b(Fe),Yt=m(b(Ft),2),qt=b(Yt);let Qt;var re=m(qt,2);let Ge;var wt=m(Yt,2);{var vt=It=>{var Ii=RJ(),W=xt(Ii),Q=m(b(W)),oe=m(W,2);{var $=Y=>{var le=tl(),Re=b(le);H(()=>N(Re,c(ft))),I(Y,le)};O(oe,Y=>{c(ft)&&Y($)})}var A=m(oe,2),G=b(A),ie=m(G,2),fe=b(ie);H(Y=>{ie.disabled=Y,N(fe,c(jt)?"Adding…":"Add CA cert")},[()=>c(jt)||!c(Me).trim()]),Ht(Q,()=>c(Me),Y=>v(Me,Y)),z("click",G,()=>v(ri,!1)),z("click",ie,$i),I(It,Ii)},di=It=>{var Ii=NJ(),W=m(xt(Ii),2),Q=m(b(W)),oe=m(Q,2);ni(oe,21,()=>c(he),Vi,(le,Re)=>{var _e=yS(),ge={};H(()=>{ge!==(ge=c(Re))&&(_e.value=(_e.__value=c(Re))??"")}),I(le,_e)});var $=m(W,2);{var A=le=>{var Re=tl(),_e=b(Re);H(()=>N(_e,c(Ut))),I(le,Re)};O($,le=>{c(Ut)&&le(A)})}var G=m($,2),ie=b(G),fe=m(ie,2),Y=b(fe);H(le=>{fe.disabled=le,N(Y,c(Xe)?"Adding…":"Add CA cert")},[()=>c(Xe)||!c(ht).trim()]),z("input",Q,Ai),Ht(Q,()=>c(ht),le=>v(ht,le)),z("click",ie,()=>v(ri,!1)),z("click",fe,Gi),I(It,Ii)};O(wt,It=>{c(Vt)==="pem"?It(vt):It(di,-1)})}H(()=>{Qt=kt(qt,1,"svelte-9auejo",null,Qt,{active:c(Vt)==="pem"}),Ge=kt(re,1,"svelte-9auejo",null,Ge,{active:c(Vt)==="path"})}),z("click",qt,()=>v(Vt,"pem")),z("click",re,()=>v(Vt,"path")),I($e,Fe)};O(Ci,$e=>{c(ri)&&$e(zi)})}z("click",Li,wi),z("click",Qe,()=>{v(r,!0),v(g,""),v(p,null)}),z("click",_t,()=>{v(w,!0),v(D,""),v(M,""),v(F,""),v(se,!1),v(V,"")}),z("click",yt,()=>{v(te,!0),v(ot,""),v(pe,"pem"),v(je,""),v(Ke,""),v(ue,""),v(He,""),v(dt,""),v(we,!1)}),z("click",Ot,()=>{v(Pt,!0),v(ct,""),v(Oe,""),v(Mt,""),v(Nt,[],!0),v(ti,[],!0)}),z("click",X,()=>{v(ri,!0),v(ft,""),v(Me,""),v(Vt,"pem"),v(Ut,""),v(ht,""),v(he,[],!0)}),I(o,Kt),Ps()}zs(["click","change","input"]);var Im=T('<div class="err svelte-17yczfe"> </div>'),HJ=T('<div class="check-list svelte-17yczfe"><div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto_ctrl</code> <span> </span></div> <div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto</code> <span> </span></div></div>'),WJ=T('<div class="checking svelte-17yczfe">Checking…</div>'),BJ=T('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Tool availability</h3> <p class="hint svelte-17yczfe">These tools must be installed and in the PATH of the she process. They are used by the Setup Wizard and cert installation.</p> <!> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div></div>'),zJ=T('<label class="svelte-17yczfe">Install command (run locally) <div class="pubkey-row svelte-17yczfe"><input readonly="" class="svelte-17yczfe"/> <button class="copy-btn svelte-17yczfe">Copy</button></div></label>'),VJ=T('<label class="svelte-17yczfe">Public key <div class="pubkey-row svelte-17yczfe"><textarea readonly="" rows="3" class="svelte-17yczfe"></textarea> <button class="copy-btn svelte-17yczfe">Copy</button></div></label> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>',1),jJ=T('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),$J=T("<span> </span>"),UJ=T('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH connection</h3> <p class="hint svelte-17yczfe">Used for file operations: reading/writing mosquitto.conf and installing certificates on the broker host. User/ACL management always uses the MQTT port directly.</p> <div class="fields svelte-17yczfe"><label class="svelte-17yczfe">Host<input placeholder="192.168.1.10 or broker.local" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Port<input type="number" min="1" max="65535" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">SSH user<input placeholder="root" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Identity file (private key)<input class="svelte-17yczfe"/></label></div></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH keypair</h3> <p class="hint svelte-17yczfe">Dedicated Ed25519 keypair for she to authenticate to the broker host. Private key stored at <code class="svelte-17yczfe"> </code>.</p> <!> <!></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Test connection</h3> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button> <!></div></div>',1),qJ=T('<div class="ok svelte-17yczfe">Saved.</div>'),GJ=T('<div class="mosquitto-page svelte-17yczfe"><!> <div class="mode-bar svelte-17yczfe"><span class="mode-label svelte-17yczfe">Connection mode</span> <div class="mode-toggle svelte-17yczfe"><button>Local</button> <button>SSH / Remote</button></div> <span class="mode-desc svelte-17yczfe"> </span></div> <!> <!> <!> <!> <div class="row svelte-17yczfe"><button class="btn-primary svelte-17yczfe"> </button></div></div>');function KJ(o,e){Ts(e,!0);let t=P(yi({})),i=P(""),n=P(!1),s=P(!1),r=P(""),a=P("~/.she/ssh/broker_id_ed25519"),d=P("local"),u=P(null),f=P(!1),g=P(""),p=P(""),w=P(!1),y=P(""),x=P(!1),k=P(""),D=P(yi({}));Bs(async()=>{try{const[he,Xe,Ut]=await Promise.all([Pl(),Tk(),fetch("/she/broker/ssh/pubkey").then(Ri=>Ri.json()).catch(()=>({publicKey:null}))]);v(D,he,!0),Xe.sshKeyDefault&&v(a,Xe.sshKeyDefault,!0);const wi=c(D).broker??{};v(t,wi.ssh??{},!0),c(t).port||(c(t).port=22),c(t).identityFile||(c(t).identityFile=c(a)),Ut.publicKey&&v(p,Ut.publicKey,!0),v(d,c(t).host?"ssh":"local",!0),c(d)==="local"&&M()}catch(he){v(i,he.message,!0)}});async function M(){v(f,!0),v(g,"");try{v(u,await tq(),!0)}catch(he){v(g,he.message??"Check failed",!0)}finally{v(f,!1)}}async function F(){v(n,!0),v(r,""),v(s,!1);try{const he=c(D).broker??{},Xe=c(d)==="local"?{...c(t),host:""}:c(t),Ut={...c(D),broker:{...he,ssh:Xe}};await Xp(Ut),v(s,!0),setTimeout(()=>v(s,!1),3e3)}catch(he){v(r,he.message,!0)}finally{v(n,!1)}}async function K(){v(w,!0),v(y,"");try{const he=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Xe=await he.json();if(!he.ok)throw new Error(Xe.error??he.statusText);v(p,Xe.publicKey,!0)}catch(he){v(y,he.message,!0)}finally{v(w,!1)}}async function V(){v(x,!0),v(k,"");try{const he=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Xe=await he.json();if(!he.ok)throw new Error(Xe.error??he.statusText);v(k,Xe.ok?"✓ Connection successful":"✗ "+(Xe.error??"Failed"),!0)}catch(he){v(k,"✗ "+he.message)}finally{v(x,!1)}}function se(he){navigator.clipboard.writeText(he).catch(()=>{})}const te=Ct(()=>c(t).identityFile&&c(t).user&&c(t).host?`ssh-copy-id -i ${c(t).identityFile}.pub ${c(t).user}@${c(t).host}`:"");var pe=GJ(),je=b(pe);{var Ke=he=>{var Xe=Im(),Ut=b(Xe);H(()=>N(Ut,c(i))),I(he,Xe)};O(je,he=>{c(i)&&he(Ke)})}var ue=m(je,2),He=m(b(ue),2),dt=b(He);let we;var gt=m(dt,2);let ot;var Pt=m(He,2),Oe=b(Pt),Mt=m(ue,2);{var et=he=>{var Xe=BJ(),Ut=m(b(Xe),4);{var wi=Ti=>{var Ni=Im(),Ki=b(Ni);H(()=>N(Ki,c(g))),I(Ti,Ni)};O(Ut,Ti=>{c(g)&&Ti(wi)})}var Ri=m(Ut,2);{var ci=Ti=>{var Ni=HJ(),Ki=b(Ni),Ai=b(Ki);let Di;var $i=b(Ai),Gi=m(Ai,4);let Ui;var mn=b(Gi),rt=m(Ki,2),Kt=b(rt);let _i;var Pi=b(Kt),Li=m(Kt,4);let Si;var Oi=b(Li);H(()=>{Di=kt(Ai,1,"check-icon svelte-17yczfe",null,Di,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),N($i,c(u).mosquittoCtrl?"✓":"✗"),Ui=kt(Gi,1,"check-note svelte-17yczfe",null,Ui,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),N(mn,c(u).mosquittoCtrl?"found in PATH":"not found — install the mosquitto or mosquitto-clients package"),_i=kt(Kt,1,"check-icon svelte-17yczfe",null,_i,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),N(Pi,c(u).mosquitto?"✓":"✗"),Si=kt(Li,1,"check-note svelte-17yczfe",null,Si,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),N(Oi,c(u).mosquitto?"found in PATH":"not found — install the mosquitto package")}),I(Ti,Ni)},Bt=Ti=>{var Ni=WJ();I(Ti,Ni)};O(Ri,Ti=>{c(u)?Ti(ci):c(f)&&Ti(Bt,1)})}var Xt=m(Ri,2),pt=b(Xt),Bi=b(pt);H(()=>{pt.disabled=c(f),N(Bi,c(f)?"Checking…":c(u)?"Re-check":"Check tools")}),z("click",pt,M),I(he,Xe)};O(Mt,he=>{c(d)==="local"&&he(et)})}var ct=m(Mt,2);{var Nt=he=>{var Xe=UJ(),Ut=xt(Xe),wi=m(b(Ut),4),Ri=b(wi),ci=m(b(Ri)),Bt=m(Ri,2),Xt=m(b(Bt)),pt=m(Bt,2),Bi=m(b(pt)),Ti=m(pt,2),Ni=m(b(Ti)),Ki=m(Ut,2),Ai=m(b(Ki),2),Di=m(b(Ai)),$i=b(Di),Gi=m(Ai,2);{var Ui=mi=>{var Ue=VJ(),J=xt(Ue),Qe=m(b(J)),_t=b(Qe),yt=m(_t,2),Ot=m(J,2);{var j=st=>{var X=zJ(),ae=m(b(X)),me=b(ae),Ze=m(me,2);H(()=>YS(me,c(te))),z("click",Ze,()=>se(c(te))),I(st,X)};O(Ot,st=>{c(te)&&st(j)})}var ce=m(Ot,2),ke=b(ce),ze=b(ke);H(()=>{YS(_t,c(p)),ke.disabled=c(w),N(ze,c(w)?"Generating…":"Regenerate keypair")}),z("click",yt,()=>se(c(p))),z("click",ke,K),I(mi,Ue)},mn=mi=>{var Ue=jJ(),J=b(Ue),Qe=b(J);H(()=>{J.disabled=c(w),N(Qe,c(w)?"Generating…":"Generate keypair")}),z("click",J,K),I(mi,Ue)};O(Gi,mi=>{c(p)?mi(Ui):mi(mn,-1)})}var rt=m(Gi,2);{var Kt=mi=>{var Ue=Im(),J=b(Ue);H(()=>N(J,c(y))),I(mi,Ue)};O(rt,mi=>{c(y)&&mi(Kt)})}var _i=m(Ki,2),Pi=m(b(_i),2),Li=b(Pi),Si=b(Li),Oi=m(Li,2);{var qi=mi=>{var Ue=$J();let J;var Qe=b(Ue);H(_t=>{J=kt(Ue,1,"test-result svelte-17yczfe",null,J,_t),N(Qe,c(k))},[()=>({ok:c(k).startsWith("✓"),fail:c(k).startsWith("✗")})]),I(mi,Ue)};O(Oi,mi=>{c(k)&&mi(qi)})}H(()=>{ln(Ni,"placeholder",c(a)),N($i,c(t).identityFile||c(a)),Li.disabled=c(x)||!c(t).host,N(Si,c(x)?"Testing…":"Test SSH connection")}),Ht(ci,()=>c(t).host,mi=>c(t).host=mi),Ht(Xt,()=>c(t).port,mi=>c(t).port=mi),Ht(Bi,()=>c(t).user,mi=>c(t).user=mi),Ht(Ni,()=>c(t).identityFile,mi=>c(t).identityFile=mi),z("click",Li,V),I(he,Xe)};O(ct,he=>{c(d)==="ssh"&&he(Nt)})}var ti=m(ct,2);{var ri=he=>{var Xe=Im(),Ut=b(Xe);H(()=>N(Ut,c(r))),I(he,Xe)};O(ti,he=>{c(r)&&he(ri)})}var Vt=m(ti,2);{var Me=he=>{var Xe=qJ();I(he,Xe)};O(Vt,he=>{c(s)&&he(Me)})}var jt=m(Vt,2),ft=b(jt),ht=b(ft);H(()=>{we=kt(dt,1,"svelte-17yczfe",null,we,{active:c(d)==="local"}),ot=kt(gt,1,"svelte-17yczfe",null,ot,{active:c(d)==="ssh"}),N(Oe,c(d)==="local"?"she and mosquitto run on the same machine — local filesystem access":"mosquitto runs on a remote host — file operations go through SSH"),ft.disabled=c(n),N(ht,c(n)?"Saving…":"Save")}),z("click",dt,()=>{v(d,"local"),c(u)||M()}),z("click",gt,()=>v(d,"ssh")),z("click",ft,F),I(o,pe),Ps()}zs(["click"]);var ZJ=T("<button> </button>"),YJ=T('<code>log_dest topic</code> is not enabled in mosquitto.conf.<br/> <span class="hint svelte-1yc29ow">Enable it in the <strong>Config</strong> tab, then click <em>Apply &amp; Reload</em>.</span>',1),XJ=T('<code>log_dest topic</code> is configured — waiting for messages&hellip;<br/> <span class="hint svelte-1yc29ow">If nothing appears, mosquitto may need a full restart for the change to take effect.</span>',1),QJ=T('Waiting for log messages&hellip;<br/> <span class="hint svelte-1yc29ow">Make sure <code class="svelte-1yc29ow">log_dest topic</code> is set in mosquitto.conf.</span>',1),JJ=T('<div class="empty svelte-1yc29ow"><!></div>'),eee=T('<div class="entry svelte-1yc29ow"><span class="ts svelte-1yc29ow"> </span> <span> </span> <span class="msg svelte-1yc29ow"> </span></div>'),tee=T('<div class="logs-page svelte-1yc29ow"><div class="toolbar svelte-1yc29ow"><div class="level-filters svelte-1yc29ow"></div> <div class="spacer svelte-1yc29ow"></div> <label class="autoscroll-label svelte-1yc29ow"><input type="checkbox"/> Auto-scroll</label> <button class="btn-clear svelte-1yc29ow">Clear</button></div> <div class="log-container svelte-1yc29ow"><!></div></div>');function iee(o,e){Ts(e,!0);const t={D:"DBG",I:"INF",N:"NTC",W:"WRN",E:"ERR"},i={D:"lvl-d",I:"lvl-i",N:"lvl-n",W:"lvl-w",E:"lvl-e"};function n(ue){const He=ue.slice(16);return He==="D"?"D":He==="I"?"I":He==="N"?"N":He==="W"?"W":He==="E"?"E":null}let s=P(yi([])),r=P(!0),a=P(yi(new Set(["D","I","N","W","E"]))),d=P(void 0),u=P(!1),f=P(null),g=null;Bs(()=>{g=cr("mqtt",ue=>{if(!ue.topic.startsWith("$SYS/broker/log/"))return;const He=n(ue.topic);He&&(v(u,!0),v(s,[...c(s).slice(-499),{ts:ue.ts,level:He,msg:ue.val}],!0),c(r)&&Gg().then(p))}),Pk().then(ue=>{const He=ue.managed.log_dest,dt=Array.isArray(He)?He:He?[He]:[];v(f,dt.includes("topic"),!0)}).catch(()=>{v(f,null)})}),x_(()=>{g==null||g()});function p(){c(d)&&(c(d).scrollTop=c(d).scrollHeight)}function w(ue){const He=new Set(c(a));He.has(ue)?He.delete(ue):He.add(ue),v(a,He,!0)}function y(){v(s,[],!0),v(u,!1)}let x=Ct(()=>c(s).filter(ue=>c(a).has(ue.level)));function k(ue){const He=new Date(ue);return He.toTimeString().slice(0,8)+"."+String(He.getMilliseconds()).padStart(3,"0")}var D=tee(),M=b(D),F=b(M);ni(F,20,()=>["D","I","N","W","E"],Vi,(ue,He)=>{var dt=ZJ();let we;var gt=b(dt);H(ot=>{we=kt(dt,1,`lvl-btn ${i[He]??""}`,"svelte-1yc29ow",we,ot),ln(dt,"title",`Toggle ${He??""} messages`),N(gt,t[He])},[()=>({active:c(a).has(He)})]),z("click",dt,()=>w(He)),I(ue,dt)});var K=m(F,4),V=b(K),se=m(K,2),te=m(M,2),pe=b(te);{var je=ue=>{var He=JJ(),dt=b(He);{var we=ot=>{var Pt=As(),Oe=xt(Pt);{var Mt=Nt=>{var ti=YJ();I(Nt,ti)},et=Nt=>{var ti=XJ();I(Nt,ti)},ct=Nt=>{var ti=QJ();I(Nt,ti)};O(Oe,Nt=>{c(f)===!1?Nt(Mt):c(f)===!0?Nt(et,1):Nt(ct,-1)})}I(ot,Pt)},gt=ot=>{var Pt=po("No messages match the current filter.");I(ot,Pt)};O(dt,ot=>{c(u)?ot(gt,-1):ot(we)})}I(ue,He)},Ke=ue=>{var He=As(),dt=xt(He);ni(dt,17,()=>c(x),we=>we.ts+we.msg,(we,gt)=>{var ot=eee(),Pt=b(ot),Oe=b(Pt),Mt=m(Pt,2),et=b(Mt),ct=m(Mt,2),Nt=b(ct);H(ti=>{N(Oe,ti),kt(Mt,1,`badge ${i[c(gt).level]??""}`,"svelte-1yc29ow"),N(et,t[c(gt).level]),N(Nt,c(gt).msg)},[()=>k(c(gt).ts)]),I(we,ot)}),I(ue,He)};O(pe,ue=>{c(x).length===0?ue(je):ue(Ke,-1)})}vs(te,ue=>v(d,ue),()=>c(d)),ms(V,()=>c(r),ue=>v(r,ue)),z("click",se,y),I(o,D),Ps()}zs(["click"]);var nee=T('<div class="err svelte-d31be1"> </div>'),see=T('<div class="step svelte-d31be1"><p class="svelte-d31be1">This wizard will configure the <strong>Mosquitto Dynamic Security plugin</strong> for use with she. It will:</p> <ul class="svelte-d31be1"><li>Create a <code class="svelte-d31be1">she-admin</code> service account with a random strong password.</li> <li>Write <code class="svelte-d31be1">dynamic-security.json</code> to your mosquitto config directory.</li> <li>Add the <code class="svelte-d31be1">plugin</code> line to <code class="svelte-d31be1">mosquitto.conf</code>.</li> <li>Ask you to restart mosquitto to activate the plugin.</li></ul> <p class="hint svelte-d31be1">In <strong>remote mode</strong> (SSH host configured), <code class="svelte-d31be1">mosquitto_ctrl</code> is invoked on the broker host via SSH. In local mode, it must be installed on this machine. <code class="svelte-d31be1">mosquitto_ctrl</code> is part of the <code class="svelte-d31be1">mosquitto</code> package.</p> <div class="actions svelte-d31be1"><button class="svelte-d31be1">Start</button></div></div>'),oee=T('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),ree=T('<div class="step svelte-d31be1"><p class="svelte-d31be1">dynsec is not yet active. Configure bootstrap settings:</p> <label class="svelte-d31be1">Admin username<input class="svelte-d31be1"/></label> <label class="svelte-d31be1">Admin password<input type="password" placeholder="(leave blank to auto-generate)" class="svelte-d31be1"/></label> <label class="svelte-d31be1">Mosquitto config directory<input class="svelte-d31be1"/></label> <div class="actions svelte-d31be1"><button class="svelte-d31be1"> </button></div></div>'),aee=T('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),lee=T(`<div class="step svelte-d31be1"><div class="ok-banner svelte-d31be1">✓ dynsec files written and credentials saved.</div> <p class="svelte-d31be1">The <code class="svelte-d31be1">plugin</code> line has been added to <code class="svelte-d31be1"> </code>.</p> <p class="svelte-d31be1">Enabling a new plugin requires a <strong>full mosquitto restart</strong> (not just SIGHUP):</p> <div class="actions svelte-d31be1"><button class="btn-warn svelte-d31be1"> </button> <button class="skip-step svelte-d31be1">Skip (I'll restart manually)</button></div> <!></div>`),cee=T('<div class="step svelte-d31be1"><div class="ok-banner svelte-d31be1">✓ dynsec is configured and connected.</div> <p class="svelte-d31be1">she is now managing broker users and ACLs via the Dynamic Security plugin. You can use the <strong>Users & Roles</strong> tab to add users, create roles, and define ACL rules.</p> <div class="actions svelte-d31be1"><button class="btn-primary svelte-d31be1">Done</button></div></div>'),dee=T('<div class="step svelte-d31be1"><p class="svelte-d31be1">Enter the credentials of an existing dynsec admin account:</p> <label class="svelte-d31be1">Admin username<input class="svelte-d31be1"/></label> <label class="svelte-d31be1">Admin password<input type="password" class="svelte-d31be1"/></label> <div class="actions svelte-d31be1"><button class="svelte-d31be1">Back</button> <button class="btn-primary svelte-d31be1"> </button></div></div>'),uee=T('<div class="wizard svelte-d31be1"><div class="wizard-header svelte-d31be1"><h3 class="svelte-d31be1">dynsec Setup Wizard</h3> <button class="skip-btn svelte-d31be1">Manual setup instead</button></div> <!> <!></div>');function hee(o,e){Ts(e,!0);let t=P("intro"),i=P(""),n=P(!1),s=P("she-admin"),r=P(""),a=P("/etc/mosquitto"),d=P(null),u=P(!1),f=P(!1),g=P("she-admin"),p=P(""),w=P(!1);async function y(){v(n,!0),v(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?v(t,"done"):v(t,"config")}catch(we){v(i,we.message,!0)}finally{v(n,!1)}}async function x(){v(n,!0),v(i,"");try{const we=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:c(s),adminPassword:c(r)||void 0,configDir:c(a)})}),gt=await we.json();if(!we.ok||!gt.ok)throw new Error(gt.error??"Bootstrap failed");v(d,gt,!0);const ot=await Pl(),Pt=ot.broker??{};await Xp({...ot,broker:{...Pt,dynsec:{adminUsername:gt.adminUsername,adminPassword:gt.adminPassword}}}),await oq().catch(()=>{}),v(t,"restart")}catch(we){v(i,we.message,!0)}finally{v(n,!1)}}async function k(){v(f,!0),v(i,"");try{await nq(),await new Promise(we=>setTimeout(we,2e3)),v(u,!0),v(t,"done")}catch(we){v(i,we.message,!0)}finally{v(f,!1)}}async function D(){v(w,!0),v(i,"");try{const we=await Pl(),gt=we.broker??{};await Xp({...we,broker:{...gt,dynsec:{adminUsername:c(g),adminPassword:c(p)}}}),v(t,"done")}catch(we){v(i,we.message,!0)}finally{v(w,!1)}}var M=uee(),F=b(M),K=m(b(F),2),V=m(F,2);{var se=we=>{var gt=nee(),ot=b(gt);H(()=>N(ot,c(i))),I(we,gt)};O(V,we=>{c(i)&&we(se)})}var te=m(V,2);{var pe=we=>{var gt=see(),ot=m(b(gt),6),Pt=b(ot);H(()=>Pt.disabled=c(n)),z("click",Pt,()=>{v(t,"probe"),y()}),I(we,gt)},je=we=>{var gt=oee(),ot=b(gt),Pt=b(ot);H(()=>N(Pt,c(n)?"Probing dynsec…":"Checking dynsec status…")),I(we,gt)},Ke=we=>{var gt=ree(),ot=m(b(gt),2),Pt=m(b(ot)),Oe=m(ot,2),Mt=m(b(Oe)),et=m(Oe,2),ct=m(b(et)),Nt=m(et,2),ti=b(Nt),ri=b(ti);H(()=>{ti.disabled=c(n)||!c(s),N(ri,c(n)?"Bootstrapping…":"Bootstrap dynsec")}),Ht(Pt,()=>c(s),Vt=>v(s,Vt)),Ht(Mt,()=>c(r),Vt=>v(r,Vt)),Ht(ct,()=>c(a),Vt=>v(a,Vt)),z("click",ti,x),I(we,gt)},ue=we=>{var gt=lee(),ot=m(b(gt),2),Pt=m(b(ot),3),Oe=b(Pt),Mt=m(ot,4),et=b(Mt),ct=b(et),Nt=m(et,2),ti=m(Mt,2);{var ri=Vt=>{var Me=aee();I(Vt,Me)};O(ti,Vt=>{c(f)&&Vt(ri)})}H(()=>{N(Oe,c(d).confFilePath),et.disabled=c(f),N(ct,c(f)?"Restarting…":"Restart mosquitto now")}),z("click",et,k),z("click",Nt,()=>{v(t,"done")}),I(we,gt)},He=we=>{var gt=cee(),ot=m(b(gt),4),Pt=b(ot);z("click",Pt,function(...Oe){var Mt;(Mt=e.onDone)==null||Mt.apply(this,Oe)}),I(we,gt)},dt=we=>{var gt=dee(),ot=m(b(gt),2),Pt=m(b(ot)),Oe=m(ot,2),Mt=m(b(Oe)),et=m(Oe,2),ct=b(et),Nt=m(ct,2),ti=b(Nt);H(()=>{Nt.disabled=c(w)||!c(g)||!c(p),N(ti,c(w)?"Saving…":"Save credentials")}),Ht(Pt,()=>c(g),ri=>v(g,ri)),Ht(Mt,()=>c(p),ri=>v(p,ri)),z("click",ct,()=>v(t,"intro")),z("click",Nt,D),I(we,gt)};O(te,we=>{c(t)==="intro"?we(pe):c(t)==="probe"?we(je,1):c(t)==="config"?we(Ke,2):c(t)==="restart"&&c(d)?we(ue,3):c(t)==="done"?we(He,4):c(t)==="manual"&&we(dt,5)})}z("click",K,()=>v(t,"manual")),I(o,M),Ps()}zs(["click"]);var fee=T('<div class="loading svelte-zuhcpo">Loading…</div>'),gee=T('<div class="error-banner svelte-zuhcpo"> </div>'),pee=T('<div class="conn-row svelte-zuhcpo"><span></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span><!></span> <button class="btn-deactivate svelte-zuhcpo"> </button></div>'),_ee=T('<button class="btn-wizard-inline svelte-zuhcpo">Setup Wizard ↗</button>'),mee=T('<div class="conn-row svelte-zuhcpo"><span class="dot dot-off svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span class="conn-detail muted svelte-zuhcpo">not configured</span> <!></div>'),vee=T('<div class="error-inline svelte-zuhcpo"> </div>'),bee=T('<button class="diag-btn svelte-zuhcpo"> </button>'),PD=T('<p class="diag-issue svelte-zuhcpo"> </p>'),yee=T('<p class="diag-ok-msg svelte-zuhcpo">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),wee=T('<p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">File</span><code class="svelte-zuhcpo"> </code></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Admin user exists</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Has admin role</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">$CONTROL publish ACL</span><span> </span></p> <!> <!>',1),See=T('<div><!></div> <button class="diag-btn svelte-zuhcpo" style="margin-top:6px"> </button>',1),Cee=T('<button class="wizard-btn svelte-zuhcpo">Run Setup Wizard</button>'),xee=T('<div class="diag-area svelte-zuhcpo"><!> <!></div>'),kee=T('<div class="stats-block svelte-zuhcpo"><dl class="svelte-zuhcpo"><dt class="svelte-zuhcpo">Version</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Uptime</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Clients</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Messages</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Topics</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Traffic</dt><dd class="svelte-zuhcpo"> </dd></dl></div>'),Lee=T('<div style="margin-top: 20px;"><!></div>'),Iee=T('<div class="status-layout svelte-zuhcpo"><div class="conn-block svelte-zuhcpo"><div class="conn-row svelte-zuhcpo"><span class="dot ok svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">mosquitto</span> <span class="conn-detail svelte-zuhcpo"> </span></div> <!> <!></div> <!> <!></div> <!>',1),Eee=T('<div class="tab-content svelte-zuhcpo"><!></div>'),Dee=T('<div class="broker-page svelte-zuhcpo"><div class="sub-nav svelte-zuhcpo"><button>Status</button> <button>Directory</button> <button>Config</button> <button>Listeners</button> <button>Certificates</button> <button>Connection</button> <button>Logs</button></div> <!></div> <!>',1);function Tee(o,e){Ts(e,!0);let t=P(!1),i,n=P(!1),s=P(""),r=P(!1),a=P(null);const d="she-broker-tab";let u=P(yi(localStorage.getItem(d)??"status"));Vn(()=>{localStorage.setItem(d,c(u))});let f=P(null),g=P(""),p=P(!0);async function w(){try{v(f,await Tk(),!0),v(g,"")}catch(ht){v(g,ht.message??"Failed to load broker status",!0)}finally{v(p,!1)}}Bs(()=>{w();const ht=setInterval(w,1e4);return()=>clearInterval(ht)});async function y(){v(r,!0),v(a,null);try{v(a,await rq(),!0)}catch(ht){v(a,{ok:!1,dynSecPath:"",issues:[ht.message??"Diagnose request failed"]},!0)}finally{v(r,!1)}}async function x(){if(await i.show("Remove dynsec plugin lines from mosquitto.conf and clear credentials? You will need to restart mosquitto afterwards.",{confirm:"Deactivate",danger:!0})){v(n,!0),v(s,"");try{await sq(),await w()}catch(ht){v(s,ht.message??"Deactivate failed",!0)}finally{v(n,!1)}}}function k(ht){var Xe;if(!((Xe=c(f))!=null&&Xe.sys))return"—";const he=c(f).sys[ht];return he?String(he.val??"—"):"—"}function D(ht){if(ht==="—")return ht;const he=ht.match(/^(\d+)/),Xe=he?parseInt(he[1]):NaN;if(isNaN(Xe))return ht;const Ut=Math.floor(Xe/86400),wi=Math.floor(Xe%86400/3600),Ri=Math.floor(Xe%3600/60),ci=Xe%60,Bt=Xt=>String(Xt).padStart(2,"0");return Ut>0?`${Ut}d ${Bt(wi)}:${Bt(Ri)}:${Bt(ci)}`:`${Bt(wi)}:${Bt(Ri)}:${Bt(ci)}`}function M(ht){if(ht==="—")return ht;const he=parseInt(ht);return isNaN(he)?ht:he<1024?`${he} B`:he<1048576?`${(he/1024).toFixed(1)} KB`:he<1073741824?`${(he/1048576).toFixed(1)} MB`:`${(he/1073741824).toFixed(1)} GB`}var F=Dee(),K=xt(F),V=b(K),se=b(V);let te;var pe=m(se,2);let je;var Ke=m(pe,2);let ue;var He=m(Ke,2);let dt;var we=m(He,2);let gt;var ot=m(we,2);let Pt;var Oe=m(ot,2);let Mt;var et=m(V,2);{var ct=ht=>{var he=Eee(),Xe=b(he);{var Ut=ci=>{var Bt=fee();I(ci,Bt)},wi=ci=>{var Bt=gee(),Xt=b(Bt);H(()=>N(Xt,c(g))),I(ci,Bt)},Ri=ci=>{var Bt=Iee(),Xt=xt(Bt),pt=b(Xt),Bi=b(pt),Ti=m(b(Bi),4),Ni=b(Ti),Ki=m(Bi,2);{var Ai=Si=>{var Oi=pee(),qi=b(Oi);let mi;var Ue=m(qi,4);let J;var Qe=b(Ue);{var _t=ke=>{var ze=po("plugin active");I(ke,ze)},yt=ke=>{var ze=po("connected — plugin not responding");I(ke,ze)},Ot=ke=>{var ze=po("disconnected");I(ke,ze)};O(Qe,ke=>{c(f).dynsec.dynsecReady?ke(_t):c(f).dynsec.connected?ke(yt,1):ke(Ot,-1)})}var j=m(Ue,2),ce=b(j);H(()=>{mi=kt(qi,1,"dot svelte-zuhcpo",null,mi,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,"dot-err":!c(f).dynsec.connected}),J=kt(Ue,1,"conn-detail svelte-zuhcpo",null,J,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,err:!c(f).dynsec.connected}),j.disabled=c(n),N(ce,c(n)?"…":"deactivate")}),z("click",j,x),I(Si,Oi)},Di=Si=>{var Oi=mee(),qi=m(b(Oi),6);{var mi=Ue=>{var J=_ee();z("click",J,()=>v(t,!0)),I(Ue,J)};O(qi,Ue=>{c(t)||Ue(mi)})}I(Si,Oi)};O(Ki,Si=>{c(f).dynsec.configured?Si(Ai):Si(Di,-1)})}var $i=m(Ki,2);{var Gi=Si=>{var Oi=vee(),qi=b(Oi);H(()=>N(qi,c(s))),I(Si,Oi)};O($i,Si=>{c(s)&&Si(Gi)})}var Ui=m(pt,2);{var mn=Si=>{var Oi=xee(),qi=b(Oi);{var mi=_t=>{var yt=bee(),Ot=b(yt);H(()=>{yt.disabled=c(r),N(Ot,c(r)?"Running diagnostics…":"Run diagnostics")}),z("click",yt,y),I(_t,yt)},Ue=_t=>{var yt=See(),Ot=xt(yt);let j;var ce=b(Ot);{var ke=ae=>{var me=PD(),Ze=b(me);H(()=>N(Ze,`⚠ ${c(a).error??""}`)),I(ae,me)},ze=ae=>{var me=wee(),Ze=xt(me),Zt=m(b(Ze)),bt=b(Zt),We=m(Ze,2),At=m(b(We)),ai=b(At),zt=m(We,2),vi=m(b(zt)),hi=b(vi),Ci=m(zt,2),zi=m(b(Ci)),$e=b(zi),Fe=m(Ci,2);ni(Fe,17,()=>c(a).issues,Vi,(qt,Qt)=>{var re=PD(),Ge=b(re);H(()=>N(Ge,`⚠ ${c(Qt)??""}`)),I(qt,re)});var Ft=m(Fe,2);{var Yt=qt=>{var Qt=yee();I(qt,Qt)};O(Ft,qt=>{c(a).ok&&qt(Yt)})}H(()=>{N(bt,c(a).dynSecPath),kt(At,1,Kg(c(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),N(ai,c(a).adminClientExists?"✓ yes":"✗ no"),kt(vi,1,Kg(c(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),N(hi,c(a).hasAdminRole?"✓ yes":"✗ no"),kt(zi,1,Kg(c(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),N($e,c(a).hasControlSendAcl?"✓ present":"✗ missing")}),I(ae,me)};O(ce,ae=>{c(a).error?ae(ke):ae(ze,-1)})}var st=m(Ot,2),X=b(st);H(()=>{j=kt(Ot,1,"diag-card svelte-zuhcpo",null,j,{"diag-ok":c(a).ok,"diag-fail":!c(a).ok}),st.disabled=c(r),N(X,c(r)?"Running…":"Re-run")}),z("click",st,y),I(_t,yt)};O(qi,_t=>{c(a)?_t(Ue,-1):_t(mi)})}var J=m(qi,2);{var Qe=_t=>{var yt=Cee();z("click",yt,()=>v(t,!0)),I(_t,yt)};O(J,_t=>{c(t)||_t(Qe)})}I(Si,Oi)};O(Ui,Si=>{c(f).dynsec.configured&&c(f).dynsec.connected&&!c(f).dynsec.dynsecReady&&Si(mn)})}var rt=m(Ui,2);{var Kt=Si=>{var Oi=kee(),qi=b(Oi),mi=m(b(qi)),Ue=b(mi),J=m(mi,3),Qe=b(J),_t=m(J,3),yt=b(_t),Ot=m(_t,3),j=b(Ot),ce=m(Ot,3),ke=b(ce),ze=m(ce,3),st=b(ze);H((X,ae,me,Ze,Zt,bt,We,At,ai,zt,vi,hi)=>{N(Ue,X),N(Qe,ae),N(yt,`${me??""} connected · ${Ze??""} max · ${Zt??""} total`),N(j,`${bt??""} rcv · ${We??""} sent · ${At??""} stored`),N(ke,`${ai??""} retained · ${zt??""} subscriptions`),N(st,`${vi??""} in · ${hi??""} out`)},[()=>k("$SYS/broker/version"),()=>D(k("$SYS/broker/uptime")),()=>k("$SYS/broker/clients/connected"),()=>k("$SYS/broker/clients/maximum"),()=>k("$SYS/broker/clients/total"),()=>k("$SYS/broker/messages/received"),()=>k("$SYS/broker/messages/sent"),()=>k("$SYS/broker/messages/stored"),()=>k("$SYS/broker/retained messages/count"),()=>k("$SYS/broker/subscriptions/count"),()=>M(k("$SYS/broker/bytes/received")),()=>M(k("$SYS/broker/bytes/sent"))]),I(Si,Oi)},_i=Ct(()=>Object.keys(c(f).sys).length>0);O(rt,Si=>{c(_i)&&Si(Kt)})}var Pi=m(Xt,2);{var Li=Si=>{var Oi=Lee(),qi=b(Oi);hee(qi,{onDone:()=>{v(t,!1),w()}}),I(Si,Oi)};O(Pi,Si=>{c(t)&&(!c(f).dynsec.configured||!c(f).dynsec.dynsecReady)&&Si(Li)})}H(()=>N(Ni,c(f).sshConfigured?`ssh — ${c(f).sshHost}`:"local")),I(ci,Bt)};O(Xe,ci=>{c(p)?ci(Ut):c(g)?ci(wi,1):c(f)&&ci(Ri,2)})}I(ht,he)},Nt=ht=>{{let he=Ct(()=>{var Xe;return((Xe=c(f))==null?void 0:Xe.dynsec.dynsecReady)??!1});XQ(ht,{get dynsecReady(){return c(he)}})}},ti=ht=>{_J(ht,{})},ri=ht=>{uJ(ht,{})},Vt=ht=>{FJ(ht,{})},Me=ht=>{KJ(ht,{})},jt=ht=>{iee(ht,{})};O(et,ht=>{c(u)==="status"?ht(ct):c(u)==="users"?ht(Nt,1):c(u)==="brokerconfig"?ht(ti,2):c(u)==="listeners"?ht(ri,3):c(u)==="certs"?ht(Vt,4):c(u)==="ssh"?ht(Me,5):c(u)==="logs"&&ht(jt,6)})}var ft=m(K,2);vs(Uc(ft,{}),ht=>i=ht,()=>i),H(()=>{te=kt(se,1,"svelte-zuhcpo",null,te,{active:c(u)==="status"}),je=kt(pe,1,"svelte-zuhcpo",null,je,{active:c(u)==="users"}),ue=kt(Ke,1,"svelte-zuhcpo",null,ue,{active:c(u)==="brokerconfig"}),dt=kt(He,1,"svelte-zuhcpo",null,dt,{active:c(u)==="listeners"}),gt=kt(we,1,"svelte-zuhcpo",null,gt,{active:c(u)==="certs"}),Pt=kt(ot,1,"svelte-zuhcpo",null,Pt,{active:c(u)==="ssh"}),Mt=kt(Oe,1,"svelte-zuhcpo",null,Mt,{active:c(u)==="logs"})}),z("click",se,()=>v(u,"status")),z("click",pe,()=>v(u,"users")),z("click",Ke,()=>v(u,"brokerconfig")),z("click",He,()=>v(u,"listeners")),z("click",we,()=>v(u,"certs")),z("click",ot,()=>v(u,"ssh")),z("click",Oe,()=>v(u,"logs")),I(o,F),Ps()}zs(["click"]);var Pee=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),Mee=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),Ree=T('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),Nee=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),Aee=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),Oee=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),Fee=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),Hee=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),Wee=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),Bee=T('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),zee=T('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),Vee=T('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),jee=T('<button class="svelte-1n46o8q"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> </button>'),$ee=T('<div class="version-popup svelte-1n46o8q"><dl class="svelte-1n46o8q"><dt class="svelte-1n46o8q">Installed</dt><dd class="svelte-1n46o8q"></dd> <!></dl> <div class="version-actions svelte-1n46o8q"><!> <button class="check-btn svelte-1n46o8q" title="Check for updates now"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> </button></div></div>'),Uee=T('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),qee=T('<dt class="svelte-1n46o8q">Matter nodes</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">Matter endpoints</dt><dd class="svelte-1n46o8q"> </dd>',1),Gee=T('<dt class="svelte-1n46o8q">DB docs</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">DB views</dt><dd class="svelte-1n46o8q"> </dd>',1),Kee=T('<dl class="svelte-1n46o8q"><!> <dt class="svelte-1n46o8q">Scripts</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">MQTT topics</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">MQTT msg/s</dt><dd class="svelte-1n46o8q"> </dd> <!> <!> <dt class="svelte-1n46o8q">Handlers</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">Memory</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">CPU</dt><dd class="svelte-1n46o8q"> </dd></dl>'),Zee=T('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),Yee=T('<button class="svelte-1n46o8q"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M18.36 6.64a9 9 0 1 1-12.73 0" class="svelte-1n46o8q"></path><line x1="12" y1="2" x2="12" y2="12" class="svelte-1n46o8q"></line></svg> Restart daemon</button>'),Xee=T('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),Qee=T('<button class="nav-logout svelte-1n46o8q" title="Logout"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" class="svelte-1n46o8q"></path><polyline points="16 17 21 12 16 7" class="svelte-1n46o8q"></polyline><line x1="21" y1="12" x2="9" y2="12" class="svelte-1n46o8q"></line></svg></button>'),Jee=T('<div class="shell svelte-1n46o8q"><nav class="svelte-1n46o8q"><span class="brand svelte-1n46o8q">she</span> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="5,3 1,8 5,13" class="svelte-1n46o8q"></polyline><polyline points="11,3 15,8 11,13" class="svelte-1n46o8q"></polyline></svg> Scripts</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter" class="svelte-1n46o8q"><rect x="0.75" y="0.75" width="14.5" height="14.5" rx="1" class="svelte-1n46o8q"></rect><path d="M2,11 V5 H5 V11" class="svelte-1n46o8q"></path><path d="M6,12 V5 H9 V8 H6" class="svelte-1n46o8q"></path><path d="M10,11 V5 H15 V11" class="svelte-1n46o8q"></path><line x1="12.5" y1="5" x2="12.5" y2="11" class="svelte-1n46o8q"></line></svg> Packages <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" stroke="none" style="vertical-align: middle" class="svelte-1n46o8q"><path fill-rule="evenodd" d="M2,0 H14 A2,2 0 0,1 16,2 V14 A2,2 0 0,1 14,16 H0 V2 A2,2 0 0,1 2,0 Z M0,16 L0,12 A4,4 0 0,1 4,16 Z M0,10.5 A5.5,5.5 0 0,1 5.5,16 L9,16 A9,9 0 0,0 0,7 Z M0,5.5 A10.5,10.5 0 0,1 10.5,16 L13.5,16 A13.5,13.5 0 0,0 0,2.5 Z" class="svelte-1n46o8q"></path></svg> MQTT <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><circle cx="8" cy="10" r="2" class="svelte-1n46o8q"></circle><path d="M5,7 A4,4 0,0,1 11,7" class="svelte-1n46o8q"></path><path d="M3,5 A6.5,6.5 0,0,1 13,5" class="svelte-1n46o8q"></path><line x1="8" y1="12" x2="8" y2="15" class="svelte-1n46o8q"></line></svg> Broker</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M8,2 L8,7" class="svelte-1n46o8q"></path><path d="M6,5 L8,7.5 L10,5" class="svelte-1n46o8q"></path><path d="M2.5,14 L6,10" class="svelte-1n46o8q"></path><path d="M6.2,12.8 L6,10 L3.2,10.2" class="svelte-1n46o8q"></path><path d="M13.5,14 L10,10" class="svelte-1n46o8q"></path><path d="M9.8,12.8 L10,10 L12.8,10.2" class="svelte-1n46o8q"></path></svg> Matter <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><ellipse cx="8" cy="4.5" rx="5" ry="1.8" class="svelte-1n46o8q"></ellipse><path d="M3,4.5 v7 a5,1.8 0,0,0 10,0 v-7" class="svelte-1n46o8q"></path><path d="M3,8 a5,1.8 0,0,0 10,0" class="svelte-1n46o8q"></path></svg> DB</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-1n46o8q"><line x1="2" y1="5" x2="14" y2="5" class="svelte-1n46o8q"></line><line x1="2" y1="8" x2="14" y2="8" class="svelte-1n46o8q"></line><line x1="2" y1="11" x2="9" y2="11" class="svelte-1n46o8q"></line></svg> Logs <!></button> <div class="nav-spacer svelte-1n46o8q"></div> <div class="nav-right svelte-1n46o8q"><a class="nav-icon svelte-1n46o8q" href="https://github.com/hobbyquaker/she" target="_blank" rel="noopener" title="GitHub"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" class="svelte-1n46o8q"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" class="svelte-1n46o8q"></path></svg></a> <div class="version-wrap svelte-1n46o8q"><button class="version svelte-1n46o8q"> <!></button> <!></div> <div class="stats-wrap svelte-1n46o8q"><button class="nav-icon svelte-1n46o8q" title="Daemon status"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><line x1="18" y1="20" x2="18" y2="10" class="svelte-1n46o8q"></line><line x1="12" y1="20" x2="12" y2="4" class="svelte-1n46o8q"></line><line x1="6" y1="20" x2="6" y2="14" class="svelte-1n46o8q"></line></svg></button> <!></div> <button title="Settings"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" class="svelte-1n46o8q"></path><circle cx="12" cy="12" r="3" class="svelte-1n46o8q"></circle></svg></button> <!></div></nav> <main class="svelte-1n46o8q"><!> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div></main></div>'),ete=T('<div class="login-error svelte-1n46o8q"> </div>'),tte=T('<div class="login-overlay svelte-1n46o8q"><form class="login-box svelte-1n46o8q"><div class="login-brand svelte-1n46o8q">she</div> <h2 class="svelte-1n46o8q">Sign in</h2> <div class="login-field svelte-1n46o8q"><label for="she-password" class="svelte-1n46o8q">Password</label> <input id="she-password" type="password" placeholder="Enter password" autocomplete="current-password" class="svelte-1n46o8q"/></div> <!> <button type="submit" class="login-btn svelte-1n46o8q"> </button></form></div>'),ite=T('<div class="updating-overlay svelte-1n46o8q"><div class="updating-box svelte-1n46o8q"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> Restarting smart-home-engine…</div></div>'),nte=T('<div class="updating-overlay svelte-1n46o8q"><div class="updating-box svelte-1n46o8q"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="4 4 4 10 10 10" class="svelte-1n46o8q"></polyline><path d="M4 10A9 9 0 1 0 6.5 5" class="svelte-1n46o8q"></path></svg> Updating smart-home-engine…</div></div>'),ste=T("<!> <!> <!> <!>",1);function ote(o,e){Ts(e,!0);const t=["scripts","mqtt","matter","security","db","logs","config","packages"];function i(){const ft=location.hash.slice(1);return t.includes(ft)?ft:"scripts"}let n=P(yi(i())),s=P(null),r=P(!1),a=P(!1),d=P(!1),u=P(!1),f=P("none"),g=P(""),p=P(!1),w=P(""),y=P(""),x=P(!1),k=P(!1);kU(()=>{v(p,!0)});async function D(){v(y,""),v(x,!0);try{await EU(c(w)),v(w,""),v(p,!1)}catch(ft){v(y,ft.message??"Login failed",!0)}finally{v(x,!1)}}async function M(){if(c(f)==="proxy"&&c(g)){window.location.href=c(g);return}await DU(),v(p,!0)}let F=P(null),K=P(!1),V=P(!1),se=P(!1),te=P(!1),pe=P(yi([])),je=P(0),Ke=P(yi([]));const ue=Ct(()=>c(Ke).filter(ft=>ft.online).length),He=Ct(()=>c(Ke).length===0?"none":c(ue)===c(Ke).length?"all":c(ue)>0?"some":"offline");let dt=P(!1),we=P(!1);async function gt(){if(!await c(F).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;v(K,!0);let ft;try{ft=(await Wg()).startedAt}catch{}try{await UN()}catch{}const ht=Date.now()+6e4;for(;Date.now()<ht;){await new Promise(he=>setTimeout(he,250));try{const he=await Wg();if(ft===void 0||he.startedAt!==ft){location.reload();return}}catch{}}location.reload()}async function ot(){v(d,!0);try{const ft=await AU();c(s)&&v(s,{...c(s),latestVersion:ft.latestVersion??void 0},!0)}catch{}finally{v(d,!1)}}async function Pt(){var he,Xe;if(!await c(F).show(`Update to v${(he=c(s))==null?void 0:he.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;v(a,!1),v(u,!0);const ft=(Xe=c(s))==null?void 0:Xe.startedAt;try{await NU()}catch{}const ht=Date.now()+18e4;for(;Date.now()<ht;){await new Promise(Ut=>setTimeout(Ut,1e3));try{const Ut=await Wg();if(ft===void 0||Ut.startedAt!==ft){location.reload();return}}catch{v(u,!1),v(K,!0)}}location.reload()}function Oe(ft){v(n,ft,!0),location.hash=ft}Bs(async()=>{location.hash||(location.hash=c(n));const ft=()=>{v(n,i(),!0)};window.addEventListener("hashchange",ft);try{const Bt=await IU();v(f,Bt.mode,!0),v(g,Bt.proxyLogoutUrl??"",!0),c(f)==="password"&&(await fetch("/she/scripts")).status===401&&v(p,!0)}catch{}v(k,!0);async function ht(){try{v(s,await Wg(),!0)}catch{}try{const[Bt,Xt]=await Promise.all([KN(),Pl()]);v(pe,Array.isArray(Xt.pinnedPackages)?Xt.pinnedPackages:[],!0),v(je,Object.keys(Bt).filter(pt=>!c(pe).includes(pt)).length,!0)}catch{}}ht();const he=setInterval(ht,5e3),Xe=cr("mqtt:status",Bt=>{Bt.connected===!1?(v(te,!0),v(V,!1),v(se,!1)):(v(te,!1),v(V,Bt.ready===!1),v(se,Bt.ready===!0))}),Ut=cr("matter:deviceList",Bt=>{Array.isArray(Bt.devices)&&v(Ke,Bt.devices.map(Xt=>({nodeId:String(Xt.nodeId),online:!!Xt.online})),!0)}),wi=cr("matter:deviceStatus",Bt=>{if(Bt.nodeId===void 0)return;const Xt=String(Bt.nodeId),pt=!!Bt.online;v(Ke,c(Ke).map(Bi=>Bi.nodeId===Xt?{...Bi,online:pt}:Bi),!0)}),Ri=aA();v(dt,Ri.some(Bt=>Bt.level==="error"),!0),v(we,!c(dt)&&Ri.some(Bt=>Bt.level==="warn"),!0);const ci=Rk(Bt=>{Bt.level==="error"?(v(dt,!0),v(we,!1)):Bt.level==="warn"&&!c(dt)&&v(we,!0)});return()=>{window.removeEventListener("hashchange",ft),clearInterval(he),Xe(),Ut(),wi(),ci()}});var Mt=ste();ds("click",NP,()=>{c(r)&&v(r,!1),c(a)&&v(a,!1)});var et=xt(Mt);{var ct=ft=>{var ht=Jee(),he=b(ht),Xe=m(b(he),2);let Ut;var wi=m(Xe,2);let Ri;var ci=m(b(wi),2);{var Bt=A=>{var G=Pee();H(()=>ln(G,"title",`${c(je)??""} package update${c(je)===1?"":"s"} available`)),I(A,G)};O(ci,A=>{c(je)>0&&A(Bt)})}var Xt=m(wi,2);let pt;var Bi=m(b(Xt),2);{var Ti=A=>{var G=Mee();I(A,G)},Ni=A=>{var G=Ree();I(A,G)},Ki=A=>{var G=Nee();I(A,G)};O(Bi,A=>{c(te)?A(Ti):c(V)?A(Ni,1):c(se)&&A(Ki,2)})}var Ai=m(Xt,2);let Di;var $i=m(Ai,2);let Gi;var Ui=m(b($i),2);{var mn=A=>{var G=Aee();I(A,G)},rt=A=>{var G=Oee();I(A,G)},Kt=A=>{var G=Fee();I(A,G)};O(Ui,A=>{c(He)==="all"?A(mn):c(He)==="some"?A(rt,1):c(He)==="offline"&&A(Kt,2)})}var _i=m($i,2);let Pi;var Li=m(_i,2);let Si;var Oi=m(b(Li),2);{var qi=A=>{var G=Hee();I(A,G)},mi=A=>{var G=Wee();I(A,G)};O(Oi,A=>{c(dt)?A(qi):c(we)&&A(mi,1)})}var Ue=m(Li,4),J=m(b(Ue),2),Qe=b(J),_t=b(Qe);_t.nodeValue="v1.8.1 ";var yt=m(_t);{var Ot=A=>{var G=Bee();I(A,G)};O(yt,A=>{var G,ie;(G=c(s))!=null&&G.latestVersion&&!((ie=c(s))!=null&&ie.docker)&&A(Ot)})}var j=m(Qe,2);{var ce=A=>{var G=$ee(),ie=b(G),fe=m(b(ie));fe.textContent="v1.8.1";var Y=m(fe,2);{var le=De=>{var Ie=zee(),St=m(xt(Ie)),mt=b(St);H(()=>N(mt,`v${c(s).latestVersion??""}`)),I(De,Ie)},Re=De=>{var Ie=Vee();I(De,Ie)};O(Y,De=>{var Ie;(Ie=c(s))!=null&&Ie.latestVersion?De(le):De(Re,-1)})}var _e=m(ie,2),ge=b(_e);{var tt=De=>{var Ie=jee(),St=m(b(Ie));H(()=>N(St,` Update to v${c(s).latestVersion??""}`)),z("click",Ie,Pt),I(De,Ie)};O(ge,De=>{var Ie;(Ie=c(s))!=null&&Ie.latestVersion&&De(tt)})}var U=m(ge,2),ne=b(U);let Le;var Ve=m(ne);H(()=>{U.disabled=c(d),Le=kt(ne,0,"svelte-1n46o8q",null,Le,{spinning:c(d)}),N(Ve,` ${c(d)?"Checking…":"Check for updates"}`)}),z("click",G,De=>De.stopPropagation()),z("click",U,ot),I(A,G)};O(j,A=>{var G;c(a)&&!((G=c(s))!=null&&G.docker)&&A(ce)})}var ke=m(J,2),ze=b(ke),st=m(ze,2);{var X=A=>{var G=Xee(),ie=b(G);{var fe=ge=>{var tt=Kee(),U=b(tt);{var ne=at=>{const ut=Ct(()=>Math.floor((Date.now()-c(s).startedAt)/1e3)),Je=Ct(()=>Math.floor(c(ut)/86400)),$t=Ct(()=>Math.floor(c(ut)%86400/3600)),Jt=Ct(()=>Math.floor(c(ut)%3600/60));var Mi=Uee(),ii=m(xt(Mi)),xi=b(ii);H(()=>N(xi,`${c(Je)>0?c(Je)+"d ":""}${c($t)>0||c(Je)>0?c($t)+"h ":""}${c(Jt)??""}m`)),I(at,Mi)};O(U,at=>{c(s).startedAt&&at(ne)})}var Le=m(U,3),Ve=b(Le),De=m(Le,3),Ie=b(De),St=m(De,3),mt=b(St),qe=m(St,2);{var Tt=at=>{var ut=qee(),Je=m(xt(ut)),$t=b(Je),Jt=m(Je,3),Mi=b(Jt);H(()=>{N($t,c(s).matterNodes??0),N(Mi,c(s).matterEndpoints??0)}),I(at,ut)};O(qe,at=>{c(s).matterEnabled&&at(Tt)})}var it=m(qe,2);{var ye=at=>{var ut=Gee(),Je=m(xt(ut)),$t=b(Je),Jt=m(Je,3),Mi=b(Jt);H(()=>{N($t,c(s).dbDocs??"—"),N(Mi,c(s).dbViews??"—")}),I(at,ut)};O(it,at=>{c(s).dbEnabled&&at(ye)})}var Ne=m(it,3),Ee=b(Ne),Se=m(Ne,3),nt=b(Se),de=m(Se,3),Pe=b(de);H(()=>{N(Ve,c(s).scripts),N(Ie,c(s).topics),N(mt,c(s).mqttMsgPerSec??"—"),N(Ee,c(s).handlers??"—"),N(nt,c(s).memMb!=null?c(s).memMb+" MB":"—"),N(Pe,c(s).cpuPercent!=null?c(s).cpuPercent+" %":"—")}),I(ge,tt)},Y=ge=>{var tt=Zee();I(ge,tt)};O(ie,ge=>{c(s)?ge(fe):ge(Y,-1)})}var le=m(ie,2),Re=b(le);{var _e=ge=>{var tt=Yee();z("click",tt,()=>{v(r,!1),gt()}),I(ge,tt)};O(Re,ge=>{var tt;(tt=c(s))!=null&&tt.docker||ge(_e)})}z("click",G,ge=>ge.stopPropagation()),I(A,G)};O(st,A=>{c(r)&&A(X)})}var ae=m(ke,2);let me;var Ze=m(ae,2);{var Zt=A=>{var G=Qee();z("click",G,M),I(A,G)};O(Ze,A=>{c(f)==="password"&&A(Zt)})}var bt=m(he,2),We=b(bt);vs(Uc(We,{}),A=>v(F,A,!0),()=>c(F));var At=m(We,2);let ai;var zt=b(At);{let A=Ct(()=>c(n)==="scripts");RK(zt,{get active(){return c(A)}})}var vi=m(At,2);let hi;var Ci=b(vi);_Q(Ci,{});var zi=m(vi,2);let $e;var Fe=b(zi);XX(Fe,{});var Ft=m(zi,2);let Yt;var qt=b(Ft);_X(qt,{});var Qt=m(Ft,2);let re;var Ge=b(Qt);Tee(Ge,{});var wt=m(Qt,2);let vt;var di=b(wt);LY(di,{});var It=m(wt,2);let Ii;var W=b(It);vZ(W,{});var Q=m(It,2);let oe;var $=b(Q);SZ($,{}),H(()=>{Ut=kt(Xe,1,"svelte-1n46o8q",null,Ut,{active:c(n)==="scripts"}),Ri=kt(wi,1,"svelte-1n46o8q",null,Ri,{active:c(n)==="packages"}),pt=kt(Xt,1,"svelte-1n46o8q",null,pt,{active:c(n)==="mqtt"}),Di=kt(Ai,1,"svelte-1n46o8q",null,Di,{active:c(n)==="security"}),Gi=kt($i,1,"svelte-1n46o8q",null,Gi,{active:c(n)==="matter"}),Pi=kt(_i,1,"svelte-1n46o8q",null,Pi,{active:c(n)==="db"}),Si=kt(Li,1,"svelte-1n46o8q",null,Si,{active:c(n)==="logs"}),me=kt(ae,1,"nav-settings svelte-1n46o8q",null,me,{active:c(n)==="config"}),ai=kt(At,1,"page-wrap svelte-1n46o8q",null,ai,{hidden:c(n)!=="scripts"}),hi=kt(vi,1,"page-wrap svelte-1n46o8q",null,hi,{hidden:c(n)!=="packages"}),$e=kt(zi,1,"page-wrap svelte-1n46o8q",null,$e,{hidden:c(n)!=="mqtt"}),Yt=kt(Ft,1,"page-wrap svelte-1n46o8q",null,Yt,{hidden:c(n)!=="matter"}),re=kt(Qt,1,"page-wrap svelte-1n46o8q",null,re,{hidden:c(n)!=="security"}),vt=kt(wt,1,"page-wrap svelte-1n46o8q",null,vt,{hidden:c(n)!=="db"}),Ii=kt(It,1,"page-wrap svelte-1n46o8q",null,Ii,{hidden:c(n)!=="config"}),oe=kt(Q,1,"page-wrap svelte-1n46o8q",null,oe,{hidden:c(n)!=="logs"})}),z("click",Xe,()=>Oe("scripts")),z("click",wi,()=>Oe("packages")),z("click",Xt,()=>Oe("mqtt")),z("click",Ai,()=>Oe("security")),z("click",$i,()=>Oe("matter")),z("click",_i,()=>Oe("db")),z("click",Li,()=>{Oe("logs"),v(dt,!1),v(we,!1)}),z("click",Qe,A=>{A.stopPropagation(),v(a,!c(a)),v(r,!1)}),z("click",ze,A=>{A.stopPropagation(),v(r,!c(r)),v(a,!1)}),z("click",ae,()=>Oe("config")),I(ft,ht)};O(et,ft=>{c(k)&&!c(p)&&ft(ct)})}var Nt=m(et,2);{var ti=ft=>{var ht=tte(),he=b(ht),Xe=m(b(he),4),Ut=m(b(Xe),2),wi=m(Xe,2);{var Ri=Xt=>{var pt=ete(),Bi=b(pt);H(()=>N(Bi,c(y))),I(Xt,pt)};O(wi,Xt=>{c(y)&&Xt(Ri)})}var ci=m(wi,2),Bt=b(ci);H(()=>{Ut.disabled=c(x),ci.disabled=c(x)||!c(w),N(Bt,c(x)?"Signing in…":"Sign in")}),ds("submit",he,Xt=>{Xt.preventDefault(),D()}),Ht(Ut,()=>c(w),Xt=>v(w,Xt)),I(ft,ht)};O(Nt,ft=>{c(p)&&ft(ti)})}var ri=m(Nt,2);{var Vt=ft=>{var ht=ite();I(ft,ht)};O(ri,ft=>{c(K)&&ft(Vt)})}var Me=m(ri,2);{var jt=ft=>{var ht=nte();I(ft,ht)};O(Me,ft=>{c(u)&&ft(jt)})}I(o,Mt),Ps()}zs(["click"]);UH(ote,{target:document.getElementById("app")});export{fM as t};