smart-home-engine 1.1.16 → 1.1.18
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-
|
|
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-BrUIFGM6.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var LA=Object.defineProperty;var eL=o=>{throw TypeError(o)};var IA=(o,e,t)=>e in o?LA(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var pn=(o,e,t)=>IA(o,typeof e!="symbol"?e+"":e,t),mw=(o,e,t)=>e.has(o)||eL("Cannot "+t);var ae=(o,e,t)=>(mw(o,e,"read from private field"),t?t.call(o):e.get(o)),on=(o,e,t)=>e.has(o)?eL("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),rn=(o,e,t,i)=>(mw(o,e,"write to private field"),i?i.call(o,t):e.set(o,t),t),Bn=(o,e,t)=>(mw(o,e,"access private method"),t);import{_ as xE,m as kE,l as Qt,A as _o,C as ye,I as $n,D as s_,a as os,g as LE,M as Ot,b as Li,E as ra,c as F,r as Dn,d as Dr,e as C,f as DA,h as Hn,R as an,S as wi,i as Ys,j as Er,k as mn,n as $i,o as ce,p as qe,K as ds,q as Kt,s as ft,t as ms,u as G,v as Qi,O as Oa,w as gs,P as ii,x as vw,y as o_,z as IE,B as hl,F as aa,G as mS,H as Ms,U as Tn,J as df,L as ni,N as vl,Q as EA,T as uo,V as vS,W as TA,X as DE,$ as Gt,Y as Sn,Z as _n,a0 as Kn,a1 as Mi,a2 as $o,a3 as cp,a4 as ct,a5 as km,a6 as PA,a7 as MA,a8 as _s,a9 as RA,aa as la,ab as mo,ac as oi,ad as EE,ae as Vn,af as NA,ag as AA,ah as fo,ai as Bf,aj as us,ak as fy,al as oo,am as Hc,an as jx,ao as gy,ap as Es,aq as uf,ar as Ts,as as py,at as _y,au as OA,av as r_,aw as zf,ax as El,ay as FA,az as Vf,aA as HA,aB as $x,aC as WA,aD as BA,aE as tL,aF as ss,aG as fl,aH as ro,aI as Wi,aJ as ll,aK as zA,aL as Ba,aM as zo,aN as Cs,aO as ca,aP as Ux,aQ as vs,aR as ts,aS as Qm,aT as Hi,aU as TE,aV as VA,aW as qx,aX as my,aY as Gx,aZ as Kx,a_ as vd,a$ as jA,b0 as Zx,b1 as $A,b2 as Xx,b3 as Tl,b4 as Pl,b5 as hf,b6 as dp,b7 as Do,b8 as a_,b9 as Jm,ba as bw,bb as Rn,bc as Yx,bd as l_,be as vy,bf as UA,bg as PE,bh as up,bi as ff,bj as hp,bk as c_,bl as by,bm as bn,bn as Wc,bo as d_,bp as qA,bq as GA,br as Qx,bs as KA,bt as ev,bu as rr,bv as Jx,bw as gf,bx as Ml,by as jf,bz as Yi,bA as pf,bB as ME,bC as u_,bD as ZA,bE as bd,bF as Ht,bG as iL,bH as Lm,bI as RE,bJ as Mr,bK as ta,bL as An,bM as _f,bN as wr,bO as mf,bP as Gn,bQ as fp,bR as Ou,bS,bT as NE,bU as AE,bV as OE,bW as e0,bX as So,bY as Ln,bZ as h_,b_ as FE,b$ as gl,c0 as yy,c1 as XA,c2 as Sh,c3 as nL,c4 as f_,c5 as HE,c6 as Ch,c7 as YA,c8 as gr,c9 as wy,ca as QA,cb as vo,cc as da,cd as g_,ce as gp,cf as WE,cg as nr,ch as p_,ci as Sy,cj as JA,ck as eO,cl as tO,cm as $f,cn as za,co as xs,cp as iO,cq as t0,cr as nO,cs as sO,ct as sL,cu as oO,cv as __,cw as bl,cx as yS,cy as _u,cz as yl,cA as rO,cB as Fa,cC as Sr,cD as Oo,cE as oL,cF as Js,cG as m_,cH as Ec,cI as Va,cJ as aO,cK as ua,cL as pp,cM as Cy,cN as BE,cO as lO,cP as cO,cQ as i0,cR as dO,cS as _p,cT as uO,cU as ic,cV as mp,cW as rL,cX as hO,cY as fO,cZ as Ua,c_ as gO,c$ as n0,d0 as zE,d1 as VE,d2 as jE,d3 as $E,d4 as pO,d5 as _O,d6 as UE,d7 as qE,d8 as mO,d9 as s0,da as vO,db as bO,dc as Xn,dd as yO,de as o0,df as wO,dg as xh,dh as aL,di as SO,dj as CO,dk as xO,dl as kO,dm as LO,dn as IO,dp as vf,dq as xy,dr as wS,ds as DO,dt as EO,du as lL,dv as SS,dw as TO,dx as cL,dy as yw,dz as PO,dA as GE,dB as MO,dC as KE,dD as CS,dE as RO,dF as NO,dG as AO,dH as ZE,dI as XE,dJ as OO,dK as tv,dL as YE,dM as ky,dN as FO,dO as HO,dP as Tc,dQ as r0,dR as WO,dS as dL,dT as uL,dU as BO,dV as kh,dW as QE,dX as zO,dY as VO,dZ as jO,d_ as $O,d$ as JE,e0 as eT,e1 as tT,e2 as iT,e3 as UO,e4 as Ha,e5 as hL,e6 as qO,e7 as v_,e8 as GO,e9 as xg,ea as nT,eb as fL,ec as vp,ed as sT,ee as iv,ef as KO,eg as oT,eh as ZO,ei as rT,ej as XO,ek as YO,el as aT,em as lT,en as wl,eo as Ly,ep as QO,eq as cT,er as Vo,es as yd,et as dT,eu as JO,ev as e2,ew as uT,ex as hT,ey as t2,ez as fT,eA as gT,eB as bp,eC as i2,eD as n2,eE as s2,eF as o2,eG as fg,eH as gL,eI as r2,eJ as a2,eK as l2,eL as nv,eM as zs,eN as c2,eO as xS,eP as Fu,eQ as d2,eR as al,eS as u2,eT as h2,eU as pT,eV as f2,eW as jg,eX as g2,eY as p2,eZ as _2,e_ as m2,e$ as pL,f0 as _L,f1 as mL,f2 as Hu,f3 as a0,f4 as _T,f5 as kS,f6 as Im,f7 as mT,f8 as sv,f9 as v2,fa as b2,fb as y2,fc as w2,fd as l0,fe as vT,ff as S2,fg as ov,fh as bT,fi as yT,fj as C2,fk as x2,fl as k2,fm as L2,fn as I2,fo as D2,fp as E2,fq as T2,fr as wT,fs as P2,ft as rv,fu as ST,fv as M2,fw as CT,fx as R2,fy as xT,fz as kT,fA as N2,fB as vL,fC as LT,fD as bL,fE as A2,fF as ww,fG as yL,fH as O2,fI as F2,fJ as H2,fK as Ea,fL as Pc,fM as W2,fN as wL,fO as Dm,fP as B2,fQ as cl,fR as Iy,fS as LS,fT as z2,fU as IT,fV as DT,fW as eo,fX as SL,fY as K_,fZ as c0,f_ as V2,f$ as j2,g0 as $2,g1 as U2,g2 as q2,g3 as G2,g4 as K2,g5 as Z2,g6 as CL,g7 as X2,g8 as Y2,g9 as Q2,ga as bf,gb as $g,gc as ET,gd as J2,ge as d0,gf as Em,gg as Z_,gh as Sw,gi as eF,gj as tF,gk as TT,gl as iF,gm as u0,gn as nF,go as sF,gp as PT,gq as Dy,gr as oF,gs as av,gt as h0,gu as f0,gv as g0,gw as MT,gx as RT,gy as NT,gz as AT,gA as OT,gB as FT,gC as HT,gD as xL,gE as WT,gF as Ju,gG as rF,gH as aF,gI as lF,gJ as cF,gK as BT,gL as dF,gM as uF,gN as kL,gO as IS,gP as cc,gQ as hF,gR as fF,gS as gF,gT as pF,gU as _F,gV as mF,gW as LL,gX as p0,gY as DS,gZ as vF,g_ as ES,g$ as bF,h0 as yF,h1 as wF,h2 as SF,h3 as _0,h4 as zT,h5 as IL,h6 as DL,h7 as CF,h8 as xF,h9 as kF,ha as EL,hb as Cw,hc as LF,hd as IF,he as DF,hf as xw,hg as VT,hh as jT,hi as $T,hj as UT,hk as Sl,hl as qT,hm as m0,hn as TL,ho as EF,hp as GT,hq as TF,hr as PF,hs as Ey,ht as Ty,hu as Wu,hv as Py,hw as b_,hx as MF,hy as My,hz as RF,hA as NF,hB as AF,hC as KT,hD as gg,hE as OF,hF as FF,hG as HF,hH as WF,hI as y_,hJ as BF,hK as ZT,hL as XT,hM as YT,hN as TS,hO as zF,hP as VF,hQ as jF,hR as $F,hS as UF,hT as PS,hU as qF,hV as GF,hW as KF,hX as ZF,hY as XF,hZ as YF,h_ as QF,h$ as JF,i0 as QT,i1 as e3,i2 as t3,i3,i4 as PL,i5 as n3,i6 as s3,i7 as nd,i8 as dr,i9 as o3,ia as r3}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 JT=!1;var v0=Array.isArray,a3=Array.prototype.indexOf,lv=Array.prototype.includes,Ry=Array.from,l3=Object.defineProperty,Bh=Object.getOwnPropertyDescriptor,c3=Object.getOwnPropertyDescriptors,d3=Object.prototype,u3=Array.prototype,eP=Object.getPrototypeOf,ML=Object.isExtensible;const Ny=()=>{};function h3(o){for(var e=0;e<o.length;e++)o[e]()}function tP(){var o,e,t=new Promise((i,n)=>{o=i,e=n});return{promise:t,resolve:o,reject:e}}function f3(o,e,t=!1){return o===void 0?t?e():e:o}function RL(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 no=2,yf=4,Ay=8,iP=1<<24,ia=16,oa=32,Mc=64,MS=128,Lr=512,Vs=1024,qs=2048,ja=4096,xo=8192,Ir=16384,Uf=32768,RS=1<<25,wf=65536,cv=1<<17,g3=1<<18,qf=1<<19,p3=1<<20,Ra=1<<25,mu=65536,dv=1<<21,zh=1<<22,dc=1<<23,wd=Symbol("$state"),_3=Symbol("legacy props"),m3=Symbol(""),Tm=Symbol("attributes"),NS=Symbol("class"),AS=Symbol("style"),kg=Symbol("text"),Pm=Symbol("form reset"),Oy=new class extends Error{constructor(){super(...arguments);pn(this,"name","StaleReactionError");pn(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var wE;const v3=!!((wE=globalThis.document)!=null&&wE.contentType)&&globalThis.document.contentType.includes("xml");function nP(o){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function b3(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function y3(o,e,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function w3(o){throw new Error("https://svelte.dev/e/effect_in_teardown")}function S3(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function C3(o){throw new Error("https://svelte.dev/e/effect_orphan")}function x3(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function k3(o){throw new Error("https://svelte.dev/e/props_invalid_value")}function L3(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function I3(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function D3(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function E3(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const T3=1,P3=2,sP=4,M3=8,R3=16,N3=1,A3=4,O3=8,F3=16,H3=1,W3=2,Bs=Symbol("uninitialized"),oP="http://www.w3.org/1999/xhtml",B3="http://www.w3.org/2000/svg",z3="http://www.w3.org/1998/Math/MathML";function V3(){console.warn("https://svelte.dev/e/derived_inert")}function j3(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function $3(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function rP(o){return o===this.v}function U3(o,e){return o!=o?e==e:o!==e||o!==null&&typeof o=="object"||typeof o=="function"}function aP(o){return!U3(o,this.v)}let q3=!1,io=null;function Sf(o){io=o}function Ns(o,e=!1,t){io={p:io,i:!1,c:null,e:null,s:o,x:null,r:In,l:null}}function As(o){var e=io,t=e.e;if(t!==null){e.e=null;for(var i of t)EP(i)}return o!==void 0&&(e.x=o),e.i=!0,io=e.p,o??{}}function lP(){return!0}let ld=[];function cP(){var o=ld;ld=[],h3(o)}function uc(o){if(ld.length===0&&!qg){var e=ld;queueMicrotask(()=>{e===ld&&cP()})}ld.push(o)}function G3(){for(;ld.length>0;)cP()}function dP(o){var e=In;if(e===null)return kn.f|=dc,o;if((e.f&Uf)===0&&(e.f&yf)===0)throw o;nc(o,e)}function nc(o,e){for(;e!==null;){if((e.f&MS)!==0){if((e.f&Uf)===0)throw o;try{e.b.error(o);return}catch(t){o=t}}e=e.parent}throw o}const K3=-7169;function ws(o,e){o.f=o.f&K3|e}function b0(o){(o.f&Lr)!==0||o.deps===null?ws(o,Vs):ws(o,ja)}function uP(o){if(o!==null)for(const e of o)(e.f&no)===0||(e.f&mu)===0||(e.f^=mu,uP(e.deps))}function hP(o,e,t){(o.f&qs)!==0?e.add(o):(o.f&ja)!==0&&t.add(o),uP(o.deps),ws(o,Vs)}let X_=!1;function Z3(o){var e=X_;try{return X_=!1,[o(),X_]}finally{X_=e}}let kw=null,eh=null,Oi=null,Ug=null,Qs=null,OS=null,qg=!1,Lw=!1,Lh=null,Mm=null;var NL=0;let X3=1;var Uh,Jl,fd,qh,Gh,Kh,nl,Zh,Ro,Qp,sl,qr,ka,Xh,gd,Yn,FS,Lg,HS,fP,gP,_h,Y3,Ig;const yb=class yb{constructor(){on(this,Yn);pn(this,"id",X3++);on(this,Uh,!1);pn(this,"linked",!0);on(this,Jl,null);on(this,fd,null);pn(this,"async_deriveds",new Map);pn(this,"current",new Map);pn(this,"previous",new Map);on(this,qh,new Set);on(this,Gh,new Set);on(this,Kh,0);on(this,nl,new Map);on(this,Zh,null);on(this,Ro,[]);on(this,Qp,[]);on(this,sl,new Set);on(this,qr,new Set);on(this,ka,new Map);on(this,Xh,new Set);pn(this,"is_fork",!1);on(this,gd,!1);eh===null?kw=eh=this:(rn(eh,fd,this),rn(this,Jl,eh)),eh=this}skip_effect(e){ae(this,ka).has(e)||ae(this,ka).set(e,{d:[],m:[]}),ae(this,Xh).delete(e)}unskip_effect(e,t=i=>this.schedule(i)){var i=ae(this,ka).get(e);if(i){ae(this,ka).delete(e);for(var n of i.d)ws(n,qs),t(n);for(n of i.m)ws(n,ja),t(n)}ae(this,Xh).add(e)}capture(e,t,i=!1){e.v!==Bs&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&dc)===0&&(this.current.set(e,[t,i]),Qs==null||Qs.set(e,t)),this.is_fork||(e.v=t)}activate(){Oi=this}deactivate(){Oi=null,Qs=null}flush(){try{Lw=!0,Oi=this,Bn(this,Yn,Lg).call(this)}finally{NL=0,OS=null,Lh=null,Mm=null,Lw=!1,Oi=null,Qs=null,Sd.clear()}}discard(){var e;for(const t of ae(this,Gh))t(this);ae(this,Gh).clear(),Bn(this,Yn,Ig).call(this),(e=ae(this,Zh))==null||e.resolve()}register_created_effect(e){ae(this,Qp).push(e)}increment(e,t){if(rn(this,Kh,ae(this,Kh)+1),e){let i=ae(this,nl).get(t)??0;ae(this,nl).set(t,i+1)}}decrement(e,t){if(rn(this,Kh,ae(this,Kh)-1),e){let i=ae(this,nl).get(t)??0;i===1?ae(this,nl).delete(t):ae(this,nl).set(t,i-1)}ae(this,gd)||(rn(this,gd,!0),uc(()=>{rn(this,gd,!1),this.linked&&this.flush()}))}transfer_effects(e,t){for(const i of e)ae(this,sl).add(i);for(const i of t)ae(this,qr).add(i);e.clear(),t.clear()}oncommit(e){ae(this,qh).add(e)}ondiscard(e){ae(this,Gh).add(e)}settled(){return(ae(this,Zh)??rn(this,Zh,tP())).promise}static ensure(){if(Oi===null){const e=Oi=new yb;!Lw&&!qg&&uc(()=>{ae(e,Uh)||e.flush()})}return Oi}apply(){{Qs=null;return}}schedule(e){var n;if(OS=e,(n=e.b)!=null&&n.is_pending&&(e.f&(yf|Ay|iP))!==0&&(e.f&Uf)===0){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var i=t.f;if(Lh!==null&&t===In&&(kn===null||(kn.f&no)===0))return;if((i&(Mc|oa))!==0){if((i&Vs)===0)return;t.f^=Vs}}ae(this,Ro).push(t)}};Uh=new WeakMap,Jl=new WeakMap,fd=new WeakMap,qh=new WeakMap,Gh=new WeakMap,Kh=new WeakMap,nl=new WeakMap,Zh=new WeakMap,Ro=new WeakMap,Qp=new WeakMap,sl=new WeakMap,qr=new WeakMap,ka=new WeakMap,Xh=new WeakMap,gd=new WeakMap,Yn=new WeakSet,FS=function(){if(this.is_fork)return!0;for(const i of ae(this,nl).keys()){for(var e=i,t=!1;e.parent!==null;){if(ae(this,ka).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1},Lg=function(){var c,u,f,g;rn(this,Uh,!0),NL++>1e3&&(Bn(this,Yn,Ig).call(this),J3());for(const p of ae(this,sl))ae(this,qr).delete(p),ws(p,qs),this.schedule(p);for(const p of ae(this,qr))ws(p,ja),this.schedule(p);const e=ae(this,Ro);rn(this,Ro,[]),this.apply();var t=Lh=[],i=[],n=Mm=[];for(const p of e)try{Bn(this,Yn,HS).call(this,p,t,i)}catch(w){throw mP(p),Bn(this,Yn,FS).call(this)||this.discard(),w}if(Oi=null,n.length>0){var s=yb.ensure();for(const p of n)s.schedule(p)}if(Lh=null,Mm=null,Bn(this,Yn,FS).call(this)){Bn(this,Yn,_h).call(this,i),Bn(this,Yn,_h).call(this,t);for(const[p,w]of ae(this,ka))_P(p,w);n.length>0&&Bn(c=Oi,Yn,Lg).call(c);return}const r=Bn(this,Yn,fP).call(this);if(r){Bn(this,Yn,_h).call(this,i),Bn(this,Yn,_h).call(this,t),Bn(u=r,Yn,gP).call(u,this);return}ae(this,sl).clear(),ae(this,qr).clear();for(const p of ae(this,qh))p(this);ae(this,qh).clear(),Ug=this,AL(i),AL(t),Ug=null,(f=ae(this,Zh))==null||f.resolve();var a=Oi;if(ae(this,Kh)===0&&(ae(this,Ro).length===0||a!==null)&&Bn(this,Yn,Ig).call(this),ae(this,Ro).length>0)if(a!==null){const p=a;ae(p,Ro).push(...ae(this,Ro).filter(w=>!ae(p,Ro).includes(w)))}else a=this;a!==null&&Bn(g=a,Yn,Lg).call(g)},HS=function(e,t,i){e.f^=Vs;for(var n=e.first;n!==null;){var s=n.f,r=(s&(oa|Mc))!==0,a=r&&(s&Vs)!==0,c=a||(s&xo)!==0||ae(this,ka).has(n);if(!c&&n.fn!==null){r?n.f^=Vs:(s&yf)!==0?t.push(n):S_(n)&&((s&ia)!==0&&ae(this,qr).add(n),xf(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}}},fP=function(){for(var e=ae(this,Jl);e!==null;){if(!e.is_fork){for(const[t,[,i]]of this.current)if(e.current.has(t)&&!i)return e}e=ae(e,Jl)}return null},gP=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(ae(e,sl),ae(e,qr));const t=n=>{var s=n.reactions;if(s!==null)for(const c of s){var r=c.f;if((r&no)!==0)t(c);else{var a=c;r&(zh|ia)&&!this.async_deriveds.has(a)&&(ae(this,qr).delete(a),ws(a,qs),this.schedule(a))}}};for(const n of this.current.keys())t(n);this.oncommit(()=>e.discard()),Bn(i=e,Yn,Ig).call(i),Oi=this,Bn(this,Yn,Lg).call(this)},_h=function(e){for(var t=0;t<e.length;t+=1)hP(e[t],ae(this,sl),ae(this,qr))},Y3=function(){var f;for(let g=kw;g!==null;g=ae(g,fd)){var e=g.id<this.id,t=[];for(const[p,[w,m]]of this.current){if(g.current.has(p)){var i=g.current.get(p)[0];if(e&&w!==i)g.current.set(p,[w,m]);else continue}t.push(p)}if(e)for(const[p,w]of this.async_deriveds){const m=g.async_deriveds.get(p);m&&w.promise.then(m.resolve).catch(m.reject)}if(ae(g,Uh)){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 ae(this,Xh))g.unskip_effect(p,w=>{var m;(w.f&(ia|zh))!==0?g.schedule(w):Bn(m=g,Yn,_h).call(m,[w])});g.activate();var s=new Set,r=new Map;for(var a of t)pP(a,n,s,r);r=new Map;var c=[...g.current].filter(([p,w])=>{const m=this.current.get(p);return m?m[0]!==w[0]||m[1]!==w[1]:!0}).map(([p])=>p);if(c.length>0)for(const p of ae(this,Qp))(p.f&(Ir|xo|cv))===0&&y0(p,c,r)&&((p.f&(zh|ia))!==0?(ws(p,qs),g.schedule(p)):ae(g,sl).add(p));if(ae(g,Ro).length>0&&!ae(g,gd)){g.apply();for(var u of ae(g,Ro))Bn(f=g,Yn,HS).call(f,u,[],[]);rn(g,Ro,[])}g.deactivate()}}}},Ig=function(){if(this.linked){var e=ae(this,Jl),t=ae(this,fd);e===null?kw=t:rn(e,fd,t),t===null?eh=e:rn(t,Jl,e),this.linked=!1}};let vu=yb;function Q3(o){var e=qg;qg=!0;try{for(var t;;){if(G3(),Oi===null)return t;Oi.flush()}}finally{qg=e}}function J3(){try{x3()}catch(o){nc(o,OS)}}let jr=null;function AL(o){var e=o.length;if(e!==0){for(var t=0;t<e;){var i=o[t++];if((i.f&(Ir|xo))===0&&S_(i)&&(jr=new Set,xf(i),i.deps===null&&i.first===null&&i.nodes===null&&i.teardown===null&&i.ac===null&&MP(i),(jr==null?void 0:jr.size)>0)){Sd.clear();for(const n of jr){if((n.f&(Ir|xo))!==0)continue;const s=[n];let r=n.parent;for(;r!==null;)jr.has(r)&&(jr.delete(r),s.push(r)),r=r.parent;for(let a=s.length-1;a>=0;a--){const c=s[a];(c.f&(Ir|xo))===0&&xf(c)}}jr.clear()}}jr=null}}function pP(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&no)!==0?pP(n,e,t,i):(s&(zh|ia))!==0&&(s&qs)===0&&y0(n,e,i)&&(ws(n,qs),w0(n))}}function y0(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(lv.call(e,n))return!0;if((n.f&no)!==0&&y0(n,e,t))return t.set(n,!0),!0}return t.set(o,!1),!1}function w0(o){Oi.schedule(o)}function _P(o,e){if(!((o.f&oa)!==0&&(o.f&Vs)!==0)){(o.f&qs)!==0?e.d.push(o):(o.f&ja)!==0&&e.m.push(o),ws(o,Vs);for(var t=o.first;t!==null;)_P(t,e),t=t.next}}function mP(o){ws(o,Vs);for(var e=o.first;e!==null;)mP(e),e=e.next}function eH(o){let e=0,t=bu(0),i;return()=>{k0()&&(d(t),Hy(()=>(e===0&&(i=Nl(()=>o(()=>Gg(t)))),e+=1,()=>{uc(()=>{e-=1,e===0&&(i==null||i(),i=void 0,Gg(t))})})))}}var tH=wf|qf;function iH(o,e,t,i){new nH(o,e,t,i)}var _r,Vx,mr,pd,No,vr,yo,Jo,ol,_d,ec,Yh,Jp,e_,rl,wb,Ss,sH,oH,rH,WS,Rm,Nm,BS,zS;class nH{constructor(e,t,i,n){on(this,Ss);pn(this,"parent");pn(this,"is_pending",!1);pn(this,"transform_error");on(this,_r);on(this,Vx,null);on(this,mr);on(this,pd);on(this,No);on(this,vr,null);on(this,yo,null);on(this,Jo,null);on(this,ol,null);on(this,_d,0);on(this,ec,0);on(this,Yh,!1);on(this,Jp,new Set);on(this,e_,new Set);on(this,rl,null);on(this,wb,eH(()=>(rn(this,rl,bu(ae(this,_d))),()=>{rn(this,rl,null)})));var s;rn(this,_r,e),rn(this,mr,t),rn(this,pd,r=>{var a=In;a.b=this,a.f|=MS,i(r)}),this.parent=In.b,this.transform_error=n??((s=this.parent)==null?void 0:s.transform_error)??(r=>r),rn(this,No,D0(()=>{Bn(this,Ss,WS).call(this)},tH))}defer_effect(e){hP(e,ae(this,Jp),ae(this,e_))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!ae(this,mr).pending}update_pending_count(e,t){Bn(this,Ss,BS).call(this,e,t),rn(this,_d,ae(this,_d)+e),!(!ae(this,rl)||ae(this,Yh))&&(rn(this,Yh,!0),uc(()=>{rn(this,Yh,!1),ae(this,rl)&&Cf(ae(this,rl),ae(this,_d))}))}get_effect_pending(){return ae(this,wb).call(this),d(ae(this,rl))}error(e){if(!ae(this,mr).onerror&&!ae(this,mr).failed)throw e;Oi!=null&&Oi.is_fork?(ae(this,vr)&&Oi.skip_effect(ae(this,vr)),ae(this,yo)&&Oi.skip_effect(ae(this,yo)),ae(this,Jo)&&Oi.skip_effect(ae(this,Jo)),Oi.oncommit(()=>{Bn(this,Ss,zS).call(this,e)})):Bn(this,Ss,zS).call(this,e)}}_r=new WeakMap,Vx=new WeakMap,mr=new WeakMap,pd=new WeakMap,No=new WeakMap,vr=new WeakMap,yo=new WeakMap,Jo=new WeakMap,ol=new WeakMap,_d=new WeakMap,ec=new WeakMap,Yh=new WeakMap,Jp=new WeakMap,e_=new WeakMap,rl=new WeakMap,wb=new WeakMap,Ss=new WeakSet,sH=function(){try{rn(this,vr,br(()=>ae(this,pd).call(this,ae(this,_r))))}catch(e){this.error(e)}},oH=function(e){const t=ae(this,mr).failed;t&&rn(this,Jo,br(()=>{t(ae(this,_r),()=>e,()=>()=>{})}))},rH=function(){const e=ae(this,mr).pending;e&&(this.is_pending=!0,rn(this,yo,br(()=>e(ae(this,_r)))),uc(()=>{var t=rn(this,ol,document.createDocumentFragment()),i=pl();t.append(i),rn(this,vr,Bn(this,Ss,Nm).call(this,()=>br(()=>ae(this,pd).call(this,i)))),ae(this,ec)===0&&(ae(this,_r).before(t),rn(this,ol,null),xd(ae(this,yo),()=>{rn(this,yo,null)}),Bn(this,Ss,Rm).call(this,Oi))}))},WS=function(){try{if(this.is_pending=this.has_pending_snippet(),rn(this,ec,0),rn(this,_d,0),rn(this,vr,br(()=>{ae(this,pd).call(this,ae(this,_r))})),ae(this,ec)>0){var e=rn(this,ol,document.createDocumentFragment());T0(ae(this,vr),e);const t=ae(this,mr).pending;rn(this,yo,br(()=>t(ae(this,_r))))}else Bn(this,Ss,Rm).call(this,Oi)}catch(t){this.error(t)}},Rm=function(e){this.is_pending=!1,e.transfer_effects(ae(this,Jp),ae(this,e_))},Nm=function(e){var t=In,i=kn,n=io;$a(ae(this,No)),Tr(ae(this,No)),Sf(ae(this,No).ctx);try{return vu.ensure(),e()}catch(s){return dP(s),null}finally{$a(t),Tr(i),Sf(n)}},BS=function(e,t){var i;if(!this.has_pending_snippet()){this.parent&&Bn(i=this.parent,Ss,BS).call(i,e,t);return}rn(this,ec,ae(this,ec)+e),ae(this,ec)===0&&(Bn(this,Ss,Rm).call(this,t),ae(this,yo)&&xd(ae(this,yo),()=>{rn(this,yo,null)}),ae(this,ol)&&(ae(this,_r).before(ae(this,ol)),rn(this,ol,null)))},zS=function(e){ae(this,vr)&&(jo(ae(this,vr)),rn(this,vr,null)),ae(this,yo)&&(jo(ae(this,yo)),rn(this,yo,null)),ae(this,Jo)&&(jo(ae(this,Jo)),rn(this,Jo,null));var t=ae(this,mr).onerror;let i=ae(this,mr).failed;var n=!1,s=!1;const r=()=>{if(n){$3();return}n=!0,s&&E3(),ae(this,Jo)!==null&&xd(ae(this,Jo),()=>{rn(this,Jo,null)}),Bn(this,Ss,Nm).call(this,()=>{Bn(this,Ss,WS).call(this)})},a=c=>{try{s=!0,t==null||t(c,r),s=!1}catch(u){nc(u,ae(this,No)&&ae(this,No).parent)}i&&rn(this,Jo,Bn(this,Ss,Nm).call(this,()=>{try{return br(()=>{var u=In;u.b=this,u.f|=MS,i(ae(this,_r),()=>c,()=>r)})}catch(u){return nc(u,ae(this,No).parent),null}}))};uc(()=>{var c;try{c=this.transform_error(e)}catch(u){nc(u,ae(this,No)&&ae(this,No).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(a,u=>nc(u,ae(this,No)&&ae(this,No).parent)):a(c)})};function aH(o,e,t,i){const n=yp;var s=o.filter(p=>!p.settled);if(t.length===0&&s.length===0){i(e.map(n));return}var r=In,a=lH(),c=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(p=>p.promise)):null;function u(p){if((r.f&Ir)===0){a();try{i(p)}catch(w){nc(w,r)}uv()}}var f=vP();if(t.length===0){c.then(()=>u(e.map(n))).finally(f);return}function g(){Promise.all(t.map(p=>cH(p))).then(p=>u([...e.map(n),...p])).catch(p=>nc(p,r)).finally(f)}c?c.then(()=>{a(),g(),uv()}):g()}function lH(){var o=In,e=kn,t=io,i=Oi;return function(s=!0){$a(o),Tr(e),Sf(t),s&&(o.f&Ir)===0&&(i==null||i.activate(),i==null||i.apply())}}function uv(o=!0){$a(null),Tr(null),Sf(null),o&&(Oi==null||Oi.deactivate())}function vP(){var o=In,e=o.b,t=Oi,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 yp(o){var e=no|qs;return In!==null&&(In.f|=qf),{ctx:io,deps:null,effects:null,equals:rP,f:e,fn:o,reactions:null,rv:0,v:Bs,wv:0,parent:In,ac:null}}const Y_=Symbol("obsolete");function cH(o,e,t){let i=In;i===null&&b3();var n=void 0,s=bu(Bs),r=!kn,a=new Set;return wH(()=>{var w,m;var c=In,u=tP();n=u.promise;try{Promise.resolve(o()).then(u.resolve,x=>{x!==Oy&&u.reject(x)}).finally(uv)}catch(x){u.reject(x),uv()}var f=Oi;if(r){if((c.f&Uf)!==0)var g=vP();if((w=i.b)!=null&&w.is_rendered())(m=f.async_deriveds.get(c))==null||m.reject(Y_);else for(const x of a.values())x.reject(Y_);a.add(u),f.async_deriveds.set(c,u)}const p=(x,k=void 0)=>{g==null||g(),a.delete(u),k!==Y_&&(f.activate(),k?(s.f|=dc,Cf(s,k)):((s.f&dc)!==0&&(s.f^=dc),Cf(s,x)),f.deactivate())};u.promise.then(p,x=>p(null,x||"unknown"))}),L0(()=>{for(const c of a)c.reject(Y_)}),new Promise(c=>{function u(f){function g(){f===n?c(s):u(n)}f.then(g,g)}u(n)})}function wt(o){const e=yp(o);return AP(e),e}function S0(o){const e=yp(o);return e.equals=aP,e}function dH(o){var e=o.effects;if(e!==null){o.effects=null;for(var t=0;t<e.length;t+=1)jo(e[t])}}function C0(o){var e,t=In,i=o.parent;if(!Cl&&i!==null&&o.v!==Bs&&(i.f&(Ir|xo))!==0)return V3(),o.v;$a(i);try{o.f&=~mu,dH(o),e=WP(o)}finally{$a(t)}return e}function bP(o){var e=C0(o);if(!o.equals(e)&&(o.wv=FP(),(!(Oi!=null&&Oi.is_fork)||o.deps===null)&&(Oi!==null?(Oi.capture(o,e,!0),Ug==null||Ug.capture(o,e,!0)):o.v=e,o.deps===null))){ws(o,Vs);return}Cl||(Qs!==null?(k0()||Oi!=null&&Oi.is_fork)&&Qs.set(o,e):b0(o))}function uH(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(Oy),i.fn!==null&&(i.teardown=Ny),i.ac=null,wp(i,0),E0(i))}function yP(o){if(o.effects!==null)for(const e of o.effects)e.teardown&&e.fn!==null&&xf(e)}let hv=new Set;const Sd=new Map;let wP=!1;function bu(o,e){var t={f:0,v:o,reactions:null,equals:rP,rv:0,wv:0};return t}function M(o,e){const t=bu(o);return AP(t),t}function hH(o,e=!1,t=!0){const i=bu(o);return e||(i.equals=aP),i}function y(o,e,t=!1){kn!==null&&(!na||(kn.f&cv)!==0)&&lP()&&(kn.f&(no|ia|zh|cv))!==0&&(Wa===null||!Wa.has(o))&&D3();let i=t?yi(e):e;return Cf(o,i,Mm)}function Cf(o,e,t=null){if(!o.equals(e)){Sd.set(o,Cl?e:o.v);var i=vu.ensure();if(i.capture(o,e),(o.f&no)!==0){const n=o;(o.f&qs)!==0&&C0(n),Qs===null&&b0(n)}o.wv=FP(),SP(o,qs,t),In!==null&&(In.f&Vs)!==0&&(In.f&(oa|Mc))===0&&(pr===null?CH([o]):pr.push(o)),!i.is_fork&&hv.size>0&&!wP&&fH()}return e}function fH(){wP=!1;for(const o of hv){(o.f&Vs)!==0&&ws(o,ja);let e;try{e=S_(o)}catch{e=!0}e&&xf(o)}hv.clear()}function OL(o,e=1){var t=d(o),i=e===1?t++:t--;return y(o,t),i}function Gg(o){y(o,o.v+1)}function SP(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,c=(a&qs)===0;if(c&&ws(r,e),(a&cv)!==0)hv.add(r);else if((a&no)!==0){var u=r;Qs==null||Qs.delete(u),(a&mu)===0&&(a&Lr&&(In===null||(In.f&dv)===0)&&(r.f|=mu),SP(u,ja,t))}else if(c){var f=r;(a&ia)!==0&&jr!==null&&jr.add(f),t!==null?t.push(f):w0(f)}}}function yi(o){if(typeof o!="object"||o===null||wd in o)return o;const e=eP(o);if(e!==d3&&e!==u3)return o;var t=new Map,i=v0(o),n=M(0),s=kd,r=a=>{if(kd===s)return a();var c=kn,u=kd;Tr(null),BL(s);var f=a();return Tr(c),BL(u),f};return i&&t.set("length",M(o.length)),new Proxy(o,{defineProperty(a,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&L3();var f=t.get(c);return f===void 0?r(()=>{var g=M(u.value);return t.set(c,g),g}):y(f,u.value,!0),!0},deleteProperty(a,c){var u=t.get(c);if(u===void 0){if(c in a){const f=r(()=>M(Bs));t.set(c,f),Gg(n)}}else y(u,Bs),Gg(n);return!0},get(a,c,u){var w;if(c===wd)return o;var f=t.get(c),g=c in a;if(f===void 0&&(!g||(w=Bh(a,c))!=null&&w.writable)&&(f=r(()=>{var m=yi(g?a[c]:Bs),x=M(m);return x}),t.set(c,f)),f!==void 0){var p=d(f);return p===Bs?void 0:p}return Reflect.get(a,c,u)},getOwnPropertyDescriptor(a,c){var u=Reflect.getOwnPropertyDescriptor(a,c);if(u&&"value"in u){var f=t.get(c);f&&(u.value=d(f))}else if(u===void 0){var g=t.get(c),p=g==null?void 0:g.v;if(g!==void 0&&p!==Bs)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(a,c){var p;if(c===wd)return!0;var u=t.get(c),f=u!==void 0&&u.v!==Bs||Reflect.has(a,c);if(u!==void 0||In!==null&&(!f||(p=Bh(a,c))!=null&&p.writable)){u===void 0&&(u=r(()=>{var w=f?yi(a[c]):Bs,m=M(w);return m}),t.set(c,u));var g=d(u);if(g===Bs)return!1}return f},set(a,c,u,f){var A;var g=t.get(c),p=c in a;if(i&&c==="length")for(var w=u;w<g.v;w+=1){var m=t.get(w+"");m!==void 0?y(m,Bs):w in a&&(m=r(()=>M(Bs)),t.set(w+"",m))}if(g===void 0)(!p||(A=Bh(a,c))!=null&&A.writable)&&(g=r(()=>M(void 0)),y(g,yi(u)),t.set(c,g));else{p=g.v!==Bs;var x=r(()=>yi(u));y(g,x)}var k=Reflect.getOwnPropertyDescriptor(a,c);if(k!=null&&k.set&&k.set.call(f,u),!p){if(i&&typeof c=="string"){var E=t.get("length"),P=Number(c);Number.isInteger(P)&&P>=E.v&&y(E,P+1)}Gg(n)}return!0},ownKeys(a){d(n);var c=Reflect.ownKeys(a).filter(g=>{var p=t.get(g);return p===void 0||p.v!==Bs});for(var[u,f]of t)f.v!==Bs&&!(u in a)&&c.push(u);return c},setPrototypeOf(){I3()}})}function FL(o){try{if(o!==null&&typeof o=="object"&&wd in o)return o[wd]}catch{}return o}function gH(o,e){return Object.is(FL(o),FL(e))}var Cd,CP,xP,kP,LP;function pH(){if(Cd===void 0){Cd=window,CP=document,xP=/Firefox/.test(navigator.userAgent);var o=Element.prototype,e=Node.prototype,t=Text.prototype;kP=Bh(e,"firstChild").get,LP=Bh(e,"nextSibling").get,ML(o)&&(o[NS]=void 0,o[Tm]=null,o[AS]=void 0,o.__e=void 0),ML(t)&&(t[kg]=void 0)}}function pl(o=""){return document.createTextNode(o)}function Na(o){return kP.call(o)}function w_(o){return LP.call(o)}function v(o,e){return Na(o)}function Ct(o,e=!1){{var t=Na(o);return t instanceof Comment&&t.data===""?w_(t):t}}function b(o,e=1,t=!1){let i=o;for(;e--;)i=w_(i);return i}function _H(o){o.textContent=""}function IP(){return!1}function DP(o,e,t){return e==null||e===oP?t?document.createElement(o,{is:t}):document.createElement(o):t?document.createElementNS(e,o,{is:t}):document.createElementNS(e,o)}let HL=!1;function mH(){HL||(HL=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{var e;if(!o.defaultPrevented)for(const t of o.target.elements)(e=t[Pm])==null||e.call(t)})},{capture:!0}))}function Fy(o){var e=kn,t=In;Tr(null),$a(null);try{return o()}finally{Tr(e),$a(t)}}function x0(o,e,t,i=t){o.addEventListener(e,()=>Fy(t));const n=o[Pm];n?o[Pm]=()=>{n(),i(!0)}:o[Pm]=()=>i(!0),mH()}function vH(o){In===null&&(kn===null&&C3(),S3()),Cl&&w3()}function bH(o,e){var t=e.last;t===null?e.last=e.first=o:(t.next=o,o.prev=t,e.last=o)}function Rl(o,e){var t=In;t!==null&&(t.f&xo)!==0&&(o|=xo);var i={ctx:io,deps:null,nodes:null,f:o|qs|Lr,first:null,fn:e,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null};Oi==null||Oi.register_created_effect(i);var n=i;if((o&yf)!==0)Lh!==null?Lh.push(i):vu.ensure().schedule(i);else if(e!==null){try{xf(i)}catch(r){throw jo(i),r}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&(n.f&qf)===0&&(n=n.first,(o&ia)!==0&&(o&wf)!==0&&n!==null&&(n.f|=wf))}if(n!==null&&(n.parent=t,t!==null&&bH(n,t),kn!==null&&(kn.f&no)!==0&&(o&Mc)===0)){var s=kn;(s.effects??(s.effects=[])).push(n)}return i}function k0(){return kn!==null&&!na}function L0(o){const e=Rl(Ay,null);return ws(e,Vs),e.teardown=o,e}function zn(o){vH();var e=In.f,t=!kn&&(e&oa)!==0&&io!==null&&!io.i;if(t){var i=io;(i.e??(i.e=[])).push(o)}else return EP(o)}function EP(o){return Rl(yf|p3,o)}function yH(o){vu.ensure();const e=Rl(Mc|qf,o);return(t={})=>new Promise(i=>{t.outro?xd(e,()=>{jo(e),i(void 0)}):(jo(e),i(void 0))})}function I0(o){return Rl(yf,o)}function wH(o){return Rl(zh|qf,o)}function Hy(o,e=0){return Rl(Ay|e,o)}function j(o,e=[],t=[],i=[]){aH(i,e,t,n=>{Rl(Ay,()=>o(...n.map(d)))})}function D0(o,e=0){var t=Rl(ia|e,o);return t}function br(o){return Rl(oa|qf,o)}function TP(o){var e=o.teardown;if(e!==null){const t=Cl,i=kn;WL(!0),Tr(null);try{e.call(null)}finally{WL(t),Tr(i)}}}function E0(o,e=!1){var t=o.first;for(o.first=o.last=null;t!==null;){const n=t.ac;n!==null&&Fy(()=>{n.abort(Oy)});var i=t.next;(t.f&Mc)!==0?t.parent=null:jo(t,e),t=i}}function SH(o){for(var e=o.first;e!==null;){var t=e.next;(e.f&oa)===0&&jo(e),e=t}}function jo(o,e=!0){var t=!1;(e||(o.f&g3)!==0)&&o.nodes!==null&&o.nodes.end!==null&&(PP(o.nodes.start,o.nodes.end),t=!0),ws(o,RS),E0(o,e&&!t),wp(o,0);var i=o.nodes&&o.nodes.t;if(i!==null)for(const s of i)s.stop();TP(o),o.f^=RS,o.f|=Ir;var n=o.parent;n!==null&&n.first!==null&&MP(o),o.next=o.prev=o.teardown=o.ctx=o.deps=o.fn=o.nodes=o.ac=o.b=null}function PP(o,e){for(;o!==null;){var t=o===e?null:w_(o);o.remove(),o=t}}function MP(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 xd(o,e,t=!0){var i=[];RP(o,i,!0);var n=()=>{t&&jo(o),e&&e()},s=i.length;if(s>0){var r=()=>--s||n();for(var a of i)a.out(r)}else n()}function RP(o,e,t){if((o.f&xo)===0){o.f^=xo;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&Mc)===0){var r=(n.f&wf)!==0||(n.f&oa)!==0&&(o.f&ia)!==0;RP(n,e,r?t:!1)}n=s}}}function fv(o){NP(o,!0)}function NP(o,e){if((o.f&xo)!==0){o.f^=xo,(o.f&Vs)===0&&(ws(o,qs),vu.ensure().schedule(o));for(var t=o.first;t!==null;){var i=t.next,n=(t.f&wf)!==0||(t.f&oa)!==0;NP(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 T0(o,e){if(o.nodes)for(var t=o.nodes.start,i=o.nodes.end;t!==null;){var n=t===i?null:w_(t);e.append(t),t=n}}let Am=!1,Cl=!1;function WL(o){Cl=o}let kn=null,na=!1;function Tr(o){kn=o}let In=null;function $a(o){In=o}let Wa=null;function AP(o){kn!==null&&(Wa??(Wa=new Set)).add(o)}let Ao=null,Yo=0,pr=null;function CH(o){pr=o}let OP=1,cd=0,kd=cd;function BL(o){kd=o}function FP(){return++OP}function S_(o){var e=o.f;if((e&qs)!==0)return!0;if(e&no&&(o.f&=~mu),(e&ja)!==0){for(var t=o.deps,i=t.length,n=0;n<i;n++){var s=t[n];if(S_(s)&&bP(s),s.wv>o.wv)return!0}(e&Lr)!==0&&Qs===null&&ws(o,Vs)}return!1}function HP(o,e,t=!0){var i=o.reactions;if(i!==null&&!(Wa!==null&&Wa.has(o)))for(var n=0;n<i.length;n++){var s=i[n];(s.f&no)!==0?HP(s,e,!1):e===s&&(t?ws(s,qs):(s.f&Vs)!==0&&ws(s,ja),w0(s))}}function WP(o){var x;var e=Ao,t=Yo,i=pr,n=kn,s=Wa,r=io,a=na,c=kd,u=o.f;Ao=null,Yo=0,pr=null,kn=(u&(oa|Mc))===0?o:null,Wa=null,Sf(o.ctx),na=!1,kd=++cd,o.ac!==null&&(Fy(()=>{o.ac.abort(Oy)}),o.ac=null);try{o.f|=dv;var f=o.fn,g=f();o.f|=Uf;var p=o.deps,w=Oi==null?void 0:Oi.is_fork;if(Ao!==null){var m;if(w||wp(o,Yo),p!==null&&Yo>0)for(p.length=Yo+Ao.length,m=0;m<Ao.length;m++)p[Yo+m]=Ao[m];else o.deps=p=Ao;if(k0()&&(o.f&Lr)!==0)for(m=Yo;m<p.length;m++)((x=p[m]).reactions??(x.reactions=[])).push(o)}else!w&&p!==null&&Yo<p.length&&(wp(o,Yo),p.length=Yo);if(lP()&&pr!==null&&!na&&p!==null&&(o.f&(no|ja|qs))===0)for(m=0;m<pr.length;m++)HP(pr[m],o);if(n!==null&&n!==o){if(cd++,n.deps!==null)for(let k=0;k<t;k+=1)n.deps[k].rv=cd;if(e!==null)for(const k of e)k.rv=cd;pr!==null&&(i===null?i=pr:i.push(...pr))}return(o.f&dc)!==0&&(o.f^=dc),g}catch(k){return dP(k)}finally{o.f^=dv,Ao=e,Yo=t,pr=i,kn=n,Wa=s,Sf(r),na=a,kd=c}}function xH(o,e){let t=e.reactions;if(t!==null){var i=a3.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&no)!==0&&(Ao===null||!lv.call(Ao,e))){var s=e;(s.f&Lr)!==0&&(s.f^=Lr,s.f&=~mu),s.v!==Bs&&b0(s),uH(s),wp(s,0)}}function wp(o,e){var t=o.deps;if(t!==null)for(var i=e;i<t.length;i++)xH(o,t[i])}function xf(o){var e=o.f;if((e&Ir)===0){ws(o,Vs);var t=In,i=Am;In=o,Am=!0;try{(e&(ia|iP))!==0?SH(o):E0(o),TP(o);var n=WP(o);o.teardown=typeof n=="function"?n:null,o.wv=OP;var s;JT&&q3&&(o.f&qs)!==0&&o.deps}finally{Am=i,In=t}}}async function Om(){await Promise.resolve(),Q3()}function d(o){var e=o.f,t=(e&no)!==0;if(kn!==null&&!na){var i=In!==null&&(In.f&Ir)!==0;if(!i&&(Wa===null||!Wa.has(o))){var n=kn.deps;if((kn.f&dv)!==0)o.rv<cd&&(o.rv=cd,Ao===null&&n!==null&&n[Yo]===o?Yo++:Ao===null?Ao=[o]:Ao.push(o));else{kn.deps??(kn.deps=[]),lv.call(kn.deps,o)||kn.deps.push(o);var s=o.reactions;s===null?o.reactions=[kn]:lv.call(s,kn)||s.push(kn)}}}if(Cl&&Sd.has(o))return Sd.get(o);if(t){var r=o;if(Cl){var a=r.v;return((r.f&Vs)===0&&r.reactions!==null||zP(r))&&(a=C0(r)),Sd.set(r,a),a}var c=(r.f&Lr)===0&&!na&&kn!==null&&(Am||(kn.f&Lr)!==0),u=(r.f&Uf)===0;S_(r)&&(c&&(r.f|=Lr),bP(r)),c&&!u&&(yP(r),BP(r))}if(Qs!=null&&Qs.has(o))return Qs.get(o);if((o.f&dc)!==0)throw o.v;return o.v}function BP(o){if(o.f|=Lr,o.deps!==null)for(const e of o.deps)(e.reactions??(e.reactions=[])).push(o),(e.f&no)!==0&&(e.f&Lr)===0&&(yP(e),BP(e))}function zP(o){if(o.v===Bs)return!0;if(o.deps===null)return!1;for(const e of o.deps)if(Sd.has(e)||(e.f&no)!==0&&zP(e))return!0;return!1}function Nl(o){var e=na;try{return na=!0,o()}finally{na=e}}const kH=["touchstart","touchmove"];function LH(o){return kH.includes(o)}const dd=Symbol("events"),VP=new Set,VS=new Set;function IH(o,e,t,i={}){function n(s){if(i.capture||jS.call(e,s),!s.cancelBubble)return Fy(()=>t==null?void 0:t.call(this,s))}return o.startsWith("pointer")||o.startsWith("touch")||o==="wheel"?uc(()=>{e.addEventListener(o,n,i)}):e.addEventListener(o,n,i),n}function cs(o,e,t,i,n){var s={capture:i,passive:n},r=IH(o,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&L0(()=>{e.removeEventListener(o,r,s)})}function U(o,e,t){(e[dd]??(e[dd]={}))[o]=t}function Ks(o){for(var e=0;e<o.length;e++)VP.add(o[e]);for(var t of VS)t(o)}let zL=null;function jS(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[dd];if(a){var c=n.indexOf(a);if(c!==-1&&(e===document||e===window)){o[dd]=e;return}var u=n.indexOf(e);if(u===-1)return;c<=u&&(r=c)}if(s=n[r]||o.target,s!==e){l3(o,"currentTarget",{configurable:!0,get(){return s||t}});var f=kn,g=In;Tr(null),$a(null);try{for(var p,w=[];s!==null&&s!==e;){try{var m=(k=s[dd])==null?void 0:k[i];m!=null&&(!s.disabled||o.target===s)&&m.call(s,o)}catch(E){p?w.push(E):p=E}if(o.cancelBubble)break;r++,s=r<n.length?n[r]:null}if(p){for(let E of w)queueMicrotask(()=>{throw E});throw p}}finally{o[dd]=e,delete o.currentTarget,Tr(f),$a(g)}}}var SE;const Iw=((SE=globalThis==null?void 0:globalThis.window)==null?void 0:SE.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:o=>o});function DH(o){return(Iw==null?void 0:Iw.createHTML(o))??o}function jP(o){var e=DP("template");return e.innerHTML=DH(o.replaceAll("<!>","<!---->")),e.content}function yu(o,e){var t=In;t.nodes===null&&(t.nodes={start:o,end:e,a:null,t:null})}function T(o,e){var t=(e&H3)!==0,i=(e&W3)!==0,n,s=!o.startsWith("<!>");return()=>{n===void 0&&(n=jP(s?o:"<!>"+o),t||(n=Na(n)));var r=i||xP?document.importNode(n,!0):n.cloneNode(!0);if(t){var a=Na(r),c=r.lastChild;yu(a,c)}else yu(r,r);return r}}function EH(o,e,t="svg"){var i=!o.startsWith("<!>"),n=`<${t}>${i?o:"<!>"+o}</${t}>`,s;return()=>{if(!s){var r=jP(n),a=Na(r);s=Na(a)}var c=s.cloneNode(!0);return yu(c,c),c}}function $P(o,e){return EH(o,e,"svg")}function sa(o=""){{var e=pl(o+"");return yu(e,e),e}}function Rs(){var o=document.createDocumentFragment(),e=document.createComment(""),t=pl();return o.append(e,t),yu(e,t),o}function D(o,e){o!==null&&o.before(e)}function O(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 TH(o,e){return PH(o,e)}const Q_=new Map;function PH(o,{target:e,anchor:t,props:i={},events:n,context:s,intro:r=!0,transformError:a}){pH();var c=void 0,u=yH(()=>{var f=t??e.appendChild(pl());iH(f,{pending:()=>{}},w=>{Ns({});var m=io;s&&(m.c=s),n&&(i.$$events=n),c=o(w,i)||{},As()},a);var g=new Set,p=w=>{for(var m=0;m<w.length;m++){var x=w[m];if(!g.has(x)){g.add(x);var k=LH(x);for(const A of[e,document]){var E=Q_.get(A);E===void 0&&(E=new Map,Q_.set(A,E));var P=E.get(x);P===void 0?(A.addEventListener(x,jS,{passive:k}),E.set(x,1)):E.set(x,P+1)}}}};return p(Ry(VP)),VS.add(p),()=>{var k;for(var w of g)for(const E of[e,document]){var m=Q_.get(E),x=m.get(w);--x==0?(E.removeEventListener(w,jS),m.delete(w),m.size===0&&Q_.delete(E)):m.set(w,x)}VS.delete(p),f!==t&&((k=f.parentNode)==null||k.removeChild(f))}});return MH.set(c,u),c}let MH=new WeakMap;var Gr,La,er,md,t_,i_,Sb;class RH{constructor(e,t=!0){pn(this,"anchor");on(this,Gr,new Map);on(this,La,new Map);on(this,er,new Map);on(this,md,new Set);on(this,t_,!0);on(this,i_,e=>{if(ae(this,Gr).has(e)){var t=ae(this,Gr).get(e),i=ae(this,La).get(t);if(i)fv(i),ae(this,md).delete(t);else{var n=ae(this,er).get(t);n&&(fv(n.effect),ae(this,La).set(t,n.effect),ae(this,er).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[s,r]of ae(this,Gr)){if(ae(this,Gr).delete(s),s===e)break;const a=ae(this,er).get(r);a&&(jo(a.effect),ae(this,er).delete(r))}for(const[s,r]of ae(this,La)){if(s===t||ae(this,md).has(s))continue;const a=()=>{if(Array.from(ae(this,Gr).values()).includes(s)){var u=document.createDocumentFragment();T0(r,u),u.append(pl()),ae(this,er).set(s,{effect:r,fragment:u})}else jo(r);ae(this,md).delete(s),ae(this,La).delete(s)};ae(this,t_)||!i?(ae(this,md).add(s),xd(r,a,!1)):a()}}});on(this,Sb,e=>{ae(this,Gr).delete(e);const t=Array.from(ae(this,Gr).values());for(const[i,n]of ae(this,er))t.includes(i)||(jo(n.effect),ae(this,er).delete(i))});this.anchor=e,rn(this,t_,t)}ensure(e,t){var i=Oi,n=IP();if(t&&!ae(this,La).has(e)&&!ae(this,er).has(e))if(n){var s=document.createDocumentFragment(),r=pl();s.append(r),ae(this,er).set(e,{effect:br(()=>t(r)),fragment:s})}else ae(this,La).set(e,br(()=>t(this.anchor)));if(ae(this,Gr).set(i,e),n){for(const[a,c]of ae(this,La))a===e?i.unskip_effect(c):i.skip_effect(c);for(const[a,c]of ae(this,er))a===e?i.unskip_effect(c.effect):i.skip_effect(c.effect);i.oncommit(ae(this,i_)),i.ondiscard(ae(this,Sb))}else ae(this,i_).call(this,i)}}Gr=new WeakMap,La=new WeakMap,er=new WeakMap,md=new WeakMap,t_=new WeakMap,i_=new WeakMap,Sb=new WeakMap;function W(o,e,t=!1){var i=new RH(o),n=t?wf:0;function s(r,a){i.ensure(r,a)}D0(()=>{var r=!1;e((a,c=0)=>{r=!0,s(c,a)}),r||s(-1,null)},n)}function Ji(o,e){return e}function NH(o,e,t){for(var i=[],n=e.length,s,r=e.length,a=0;a<n;a++){let g=e[a];xd(g,()=>{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var p=o.outrogroups;$S(o,Ry(s.done)),p.delete(s),p.size===0&&(o.outrogroups=null)}}else r-=1},!1)}if(r===0){var c=i.length===0&&t!==null;if(c){var u=t,f=u.parentNode;_H(f),f.append(u),o.items.clear()}$S(o,e,!c)}else s={pending:new Set(e),done:new Set},(o.outrogroups??(o.outrogroups=new Set)).add(s)}function $S(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|=Ra;const r=document.createDocumentFragment();T0(s,r)}else jo(e[n],t)}}var VL;function mi(o,e,t,i,n,s=null){var r=o,a=new Map,c=(e&sP)!==0;if(c){var u=o;r=u.appendChild(pl())}var f=null,g=S0(()=>{var A=t();return v0(A)?A:A==null?[]:Ry(A)}),p,w=new Map,m=!0;function x(A){(P.effect.f&Ir)===0&&(P.pending.delete(A),P.fallback=f,AH(P,p,r,e,i),f!==null&&(p.length===0?(f.f&Ra)===0?fv(f):(f.f^=Ra,Dg(f,null,r)):xd(f,()=>{f=null})))}function k(A){P.pending.delete(A)}var E=D0(()=>{p=d(g);for(var A=p.length,$=new Set,H=Oi,ie=IP(),J=0;J<A;J+=1){var ue=p[J],he=i(ue,J),We=m?null:a.get(he);We?(We.v&&Cf(We.v,ue),We.i&&Cf(We.i,J),ie&&H.unskip_effect(We.e)):(We=OH(a,m?r:VL??(VL=pl()),ue,he,J,n,e,t),m||(We.e.f|=Ra),a.set(he,We)),$.add(he)}if(A===0&&s&&!f&&(m?f=br(()=>s(r)):(f=br(()=>s(VL??(VL=pl()))),f.f|=Ra)),A>$.size&&y3(),!m)if(w.set(H,$),ie){for(const[xe,rt]of a)$.has(xe)||H.skip_effect(rt.e);H.oncommit(x),H.ondiscard(k)}else x(H);d(g)}),P={effect:E,items:a,pending:w,outrogroups:null,fallback:f};m=!1}function pg(o){for(;o!==null&&(o.f&oa)===0;)o=o.next;return o}function AH(o,e,t,i,n){var We,xe,rt,pt,ve,dt,gt,Pt,fe;var s=(i&M3)!==0,r=e.length,a=o.items,c=pg(o.effect.first),u,f=null,g,p=[],w=[],m,x,k,E;if(s)for(E=0;E<r;E+=1)m=e[E],x=n(m,E),k=a.get(x).e,(k.f&Ra)===0&&((xe=(We=k.nodes)==null?void 0:We.a)==null||xe.measure(),(g??(g=new Set)).add(k));for(E=0;E<r;E+=1){if(m=e[E],x=n(m,E),k=a.get(x).e,o.outrogroups!==null)for(const Et of o.outrogroups)Et.pending.delete(k),Et.done.delete(k);if((k.f&xo)!==0&&(fv(k),s&&((pt=(rt=k.nodes)==null?void 0:rt.a)==null||pt.unfix(),(g??(g=new Set)).delete(k))),(k.f&Ra)!==0)if(k.f^=Ra,k===c)Dg(k,null,t);else{var P=f?f.next:c;k===o.effect.last&&(o.effect.last=k.prev),k.prev&&(k.prev.next=k.next),k.next&&(k.next.prev=k.prev),Bl(o,f,k),Bl(o,k,P),Dg(k,P,t),f=k,p=[],w=[],c=pg(f.next);continue}if(k!==c){if(u!==void 0&&u.has(k)){if(p.length<w.length){var A=w[0],$;f=A.prev;var H=p[0],ie=p[p.length-1];for($=0;$<p.length;$+=1)Dg(p[$],A,t);for($=0;$<w.length;$+=1)u.delete(w[$]);Bl(o,H.prev,ie.next),Bl(o,f,H),Bl(o,ie,A),c=A,f=ie,E-=1,p=[],w=[]}else u.delete(k),Dg(k,c,t),Bl(o,k.prev,k.next),Bl(o,k,f===null?o.effect.first:f.next),Bl(o,f,k),f=k;continue}for(p=[],w=[];c!==null&&c!==k;)(u??(u=new Set)).add(c),w.push(c),c=pg(c.next);if(c===null)continue}(k.f&Ra)===0&&p.push(k),f=k,c=pg(k.next)}if(o.outrogroups!==null){for(const Et of o.outrogroups)Et.pending.size===0&&($S(o,Ry(Et.done)),(ve=o.outrogroups)==null||ve.delete(Et));o.outrogroups.size===0&&(o.outrogroups=null)}if(c!==null||u!==void 0){var J=[];if(u!==void 0)for(k of u)(k.f&xo)===0&&J.push(k);for(;c!==null;)(c.f&xo)===0&&c!==o.fallback&&J.push(c),c=pg(c.next);var ue=J.length;if(ue>0){var he=(i&sP)!==0&&r===0?t:null;if(s){for(E=0;E<ue;E+=1)(gt=(dt=J[E].nodes)==null?void 0:dt.a)==null||gt.measure();for(E=0;E<ue;E+=1)(fe=(Pt=J[E].nodes)==null?void 0:Pt.a)==null||fe.fix()}NH(o,J,he)}}s&&uc(()=>{var Et,Oe;if(g!==void 0)for(k of g)(Oe=(Et=k.nodes)==null?void 0:Et.a)==null||Oe.apply()})}function OH(o,e,t,i,n,s,r,a){var c=(r&T3)!==0?(r&R3)===0?hH(t,!1,!1):bu(t):null,u=(r&P3)!==0?bu(n):null;return{v:c,i:u,e:br(()=>(s(e,c??t,u??n,a),()=>{o.delete(i)}))}}function Dg(o,e,t){if(o.nodes)for(var i=o.nodes.start,n=o.nodes.end,s=e&&(e.f&Ra)===0?e.nodes.start:t;i!==null;){var r=w_(i);if(s.before(i),i===n)return;i=r}}function Bl(o,e,t){e===null?o.effect.first=t:e.next=t,t===null?o.effect.last=e:t.prev=e}function sc(o,e,t=!1,i=!1,n=!1,s=!1){var r=o,a="";if(t)var c=o;j(()=>{var u=In;if(a!==(a=e()??"")){if(t){u.nodes=null,c.innerHTML=a,a!==""&&yu(Na(c),c.lastChild);return}if(u.nodes!==null&&(PP(u.nodes.start,u.nodes.end),u.nodes=null),a!==""){var f=i?B3:n?z3:void 0,g=DP(i?"svg":n?"math":"template",f);g.innerHTML=a;var p=i||n?g:g.content;if(yu(Na(p),p.lastChild),i||n)for(;Na(p);)r.before(Na(p));else r.before(p)}}})}function UP(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=UP(o[e]))&&(i&&(i+=" "),i+=t)}else for(t in o)o[t]&&(i&&(i+=" "),i+=t);return i}function FH(){for(var o,e,t=0,i="",n=arguments.length;t<n;t++)(o=arguments[t])&&(e=UP(o))&&(i&&(i+=" "),i+=e);return i}function ud(o){return typeof o=="object"?FH(o):o??""}const jL=[...`
|
|
3
3
|
\r\f \v\uFEFF`];function HH(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||jL.includes(i[r-1]))&&(a===i.length||jL.includes(i[a]))?i=(r===0?"":i.substring(0,r))+i.substring(a+1):r=a}}return i===""?null:i}function $L(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 Dw(o){return o[0]!=="-"||o[1]!=="-"?o.toLowerCase():o}function WH(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,c=[];i&&c.push(...Object.keys(i).map(Dw)),n&&c.push(...Object.keys(n).map(Dw));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=Dw(o.substring(u,f).trim());if(!c.includes(w)){p!==";"&&g++;var m=o.substring(u,g).trim();t+=" "+m+";"}}u=g+1,f=-1}}}}return i&&(t+=$L(i)),n&&(t+=$L(n,!0)),t=t.trim(),t===""?null:t}return o==null?null:String(o)}function Tt(o,e,t,i,n,s){var r=o[NS];if(r!==t||r===void 0){var a=HH(t,i,s);a==null?o.removeAttribute("class"):e?o.className=a:o.setAttribute("class",a),o[NS]=t}else if(s&&n!==s)for(var c in s){var u=!!s[c];(n==null||u!==!!n[c])&&o.classList.toggle(c,u)}return s}function Ew(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 Fo(o,e,t,i){var n=o[AS];if(n!==e){var s=WH(e,i);s==null?o.removeAttribute("style"):o.style.cssText=s,o[AS]=e}else i&&(Array.isArray(i)?(Ew(o,t==null?void 0:t[0],i[0]),Ew(o,t==null?void 0:t[1],i[1],"important")):Ew(o,t,i));return i}function qP(o,e,t=!1){if(o.multiple){if(e==null)return;if(!v0(e))return j3();for(var i of o.options)i.selected=e.includes(Kg(i));return}for(i of o.options){var n=Kg(i);if(gH(n,e)){i.selected=!0;return}}(!t||e!==void 0)&&(o.selectedIndex=-1)}function BH(o){var e=new MutationObserver(()=>{qP(o,o.__value)});e.observe(o,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),L0(()=>{e.disconnect()})}function Ho(o,e,t=e){var i=new WeakSet,n=!0;x0(o,"change",s=>{var r=s?"[selected]":":checked",a;if(o.multiple)a=[].map.call(o.querySelectorAll(r),Kg);else{var c=o.querySelector(r)??o.querySelector("option:not([disabled])");a=c&&Kg(c)}t(a),o.__value=a,Oi!==null&&i.add(Oi)}),I0(()=>{var s=e();if(o===document.activeElement){var r=Oi;if(i.has(r))return}if(qP(o,s,n),n&&s===void 0){var a=o.querySelector(":checked");a!==null&&(s=Kg(a),t(s))}o.__value=s,n=!1}),BH(o)}function Kg(o){return"__value"in o?o.__value:o.value}const zH=Symbol("is custom element"),VH=Symbol("is html"),jH=v3?"progress":"PROGRESS";function UL(o,e){var t=P0(o);t.value===(t.value=e??void 0)||o.value===e&&(e!==0||o.nodeName!==jH)||(o.value=e??"")}function Eg(o,e){var t=P0(o);t.checked!==(t.checked=e??void 0)&&(o.checked=e)}function Ai(o,e,t,i){var n=P0(o);n[e]!==(n[e]=t)&&(e==="loading"&&(o[m3]=t),t==null?o.removeAttribute(e):typeof t!="string"&&$H(o).includes(e)?o[e]=t:o.setAttribute(e,t))}function P0(o){return o[Tm]??(o[Tm]={[zH]:o.nodeName.includes("-"),[VH]:o.namespaceURI===oP})}var qL=new Map;function $H(o){var e=o.getAttribute("is")||o.nodeName,t=qL.get(e);if(t)return t;qL.set(e,t=[]);for(var i,n=o,s=Element.prototype;s!==n;){i=c3(n);for(var r in i)i[r].set&&r!=="innerHTML"&&r!=="textContent"&&r!=="innerText"&&t.push(r);n=eP(n)}return t}function ti(o,e,t=e){var i=new WeakSet;x0(o,"input",async n=>{var s=n?o.defaultValue:o.value;if(s=Tw(o)?Pw(s):s,t(s),Oi!==null&&i.add(Oi),await Om(),s!==(s=e())){var r=o.selectionStart,a=o.selectionEnd,c=o.value.length;if(o.value=s??"",a!==null){var u=o.value.length;r===a&&a===c&&u>c?(o.selectionStart=u,o.selectionEnd=u):(o.selectionStart=r,o.selectionEnd=Math.min(a,u))}}}),Nl(e)==null&&o.value&&(t(Tw(o)?Pw(o.value):o.value),Oi!==null&&i.add(Oi)),Hy(()=>{var n=e();if(o===document.activeElement){var s=Oi;if(i.has(s))return}Tw(o)&&n===Pw(o.value)||o.type==="date"&&!n&&!o.value||n!==o.value&&(o.value=n??"")})}function Is(o,e,t=e){x0(o,"change",i=>{var n=i?o.defaultChecked:o.checked;t(n)}),Nl(e)==null&&t(o.checked),Hy(()=>{var i=e();o.checked=!!i})}function Tw(o){var e=o.type;return e==="number"||e==="range"}function Pw(o){return o===""?null:+o}var tc,Qh,n_,Cb,GP;const xb=class xb{constructor(e){on(this,Cb);on(this,tc,new WeakMap);on(this,Qh);on(this,n_);rn(this,n_,e)}observe(e,t){var i=ae(this,tc).get(e)||new Set;return i.add(t),ae(this,tc).set(e,i),Bn(this,Cb,GP).call(this).observe(e,ae(this,n_)),()=>{var n=ae(this,tc).get(e);n.delete(t),n.size===0&&(ae(this,tc).delete(e),ae(this,Qh).unobserve(e))}}};tc=new WeakMap,Qh=new WeakMap,n_=new WeakMap,Cb=new WeakSet,GP=function(){return ae(this,Qh)??rn(this,Qh,new ResizeObserver(e=>{for(var t of e){xb.entries.set(t.target,t);for(var i of ae(this,tc).get(t.target)||[])i(t)}}))},pn(xb,"entries",new WeakMap);let US=xb;var UH=new US({box:"border-box"});function qH(o,e,t){var i=UH.observe(o,()=>t(o[e]));I0(()=>(Nl(()=>t(o[e])),i))}function Mw(o,e){return o===e||(o==null?void 0:o[wd])===e}function Ds(o={},e,t,i){var n=io.r,s=In;return I0(()=>{var r,a;return Hy(()=>{r=a,a=[],Nl(()=>{Mw(t(...a),o)||(e(o,...a),r&&Mw(t(...r),o)&&e(null,...r))})}),()=>{let c=s;for(;c!==n&&c.parent!==null&&c.parent.f&RS;)c=c.parent;const u=()=>{a&&Mw(t(...a),o)&&e(null,...a)},f=c.teardown;c.teardown=()=>{u(),f==null||f()}}}),o}function wu(o,e,t,i){var $;var n=!0,s=(t&O3)!==0,r=(t&F3)!==0,a=i,c=!0,u=void 0,f=()=>r&&n?(u??(u=yp(i)),d(u)):(c&&(c=!1,a=r?Nl(i):i),a);let g;if(s){var p=wd in o||_3 in o;g=(($=Bh(o,e))==null?void 0:$.set)??(p&&e in o?H=>o[e]=H:void 0)}var w,m=!1;s?[w,m]=Z3(()=>o[e]):w=o[e],w===void 0&&i!==void 0&&(w=f(),g&&(k3(),g(w)));var x;if(x=()=>{var H=o[e];return H===void 0?f():(c=!0,H)},(t&A3)===0)return x;if(g){var k=o.$$legacy;return(function(H,ie){return arguments.length>0?((!ie||k||m)&&g(ie?x():H),H):x()})}var E=!1,P=((t&N3)!==0?yp:S0)(()=>(E=!1,x()));s&&d(P);var A=In;return(function(H,ie){if(arguments.length>0){const J=ie?d(P):s?yi(H):H;return y(P,J),E=!0,a!==void 0&&(a=J),H}return Cl&&E||(A.f&Ir)!==0?P.v:d(P)})}function ao(o){io===null&&nP(),zn(()=>{const e=Nl(o);if(typeof e=="function")return e})}function Wy(o){io===null&&nP(),ao(()=>()=>Nl(o))}const GH="5";var CE;typeof window<"u"&&((CE=window.__svelte??(window.__svelte={})).v??(CE.v=new Set)).add(GH);/*!-----------------------------------------------------------------------------
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -10,7 +10,7 @@ var LA=Object.defineProperty;var eL=o=>{throw TypeError(o)};var IA=(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 sW=Object.defineProperty,oW=Object.getOwnPropertyDescriptor,rW=Object.getOwnPropertyNames,aW=Object.prototype.hasOwnProperty,lW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of rW(e))!aW.call(o,n)&&n!==t&&sW(o,n,{get:()=>e[n],enumerable:!(i=oW(e,n))||i.enumerable});return o},cW=(o,e,t)=>(lW(o,e,"default"),t),dW="5.4.5",kf={};cW(kf,kE);var XP=(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))(XP||{}),YP=(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))(YP||{}),QP=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(QP||{}),JP=(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))(JP||{}),eM=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(eM||{}),tM=class{constructor(o,e,t,i,n){this._onDidChange=new kf.Emitter,this._onDidExtraLibsChange=new kf.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)}},uW=dW,iM={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},nM=new tM({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},iM),sM=new tM({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},iM),hW=()=>By().then(o=>o.getTypeScriptWorker()),fW=()=>By().then(o=>o.getJavaScriptWorker());kf.languages.typescript={ModuleKind:XP,JsxEmit:YP,NewLineKind:QP,ScriptTarget:JP,ModuleResolutionKind:eM,typescriptVersion:uW,typescriptDefaults:nM,javascriptDefaults:sM,getTypeScriptWorker:hW,getJavaScriptWorker:fW};function By(){return xE(()=>import("./tsMode-B79Y_ksb.js"),__vite__mapDeps([3,1,2]))}kf.languages.onLanguage("typescript",()=>By().then(o=>o.setupTypeScript(nM)));kf.languages.onLanguage("javascript",()=>By().then(o=>o.setupJavaScript(sM)));class gW extends _o{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Qt("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Li.map,toggled:ye.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ye.has("isInDiffEditor"),menu:{when:ye.has("isInDiffEditor"),id:Ot.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get($n),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class oM extends _o{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Qt("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:ye.has("isInDiffEditor")})}run(e,...t){const i=e.get($n),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class rM extends _o{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Qt("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:ye.has("isInDiffEditor")})}run(e,...t){const i=e.get($n),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const x_=Qt("diffEditor","Diff Editor");class pW extends ra{constructor(){super({id:"diffEditor.switchSide",title:Qt("switchSide","Switch Side"),icon:Li.arrowSwap,precondition:ye.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,i){const n=Gf(e);if(n instanceof s_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class _W extends ra{constructor(){super({id:"diffEditor.exitCompareMove",title:Qt("exitCompareMove","Exit Compare Move"),icon:Li.close,precondition:F.comparingMovedCode,f1:!1,category:x_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Gf(e);n instanceof s_&&n.exitCompareMove()}}class mW extends ra{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Qt("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Li.fold,precondition:ye.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Gf(e);n instanceof s_&&n.collapseAllUnchangedRegions()}}class vW extends ra{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Qt("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Li.unfold,precondition:ye.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Gf(e);n instanceof s_&&n.showAllUnchangedRegions()}}class qS extends _o{constructor(){super({id:"diffEditor.revert",title:Qt("revert","Revert"),f1:!1,category:x_})}run(e,t){const i=bW(e,t.originalUri,t.modifiedUri);i instanceof s_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const aM=Qt("accessibleDiffViewer","Accessible Diff Viewer"),kb=class kb extends _o{constructor(){super({id:kb.id,title:Qt("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:aM,precondition:ye.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Gf(e);t==null||t.accessibleDiffViewerNext()}};kb.id="editor.action.accessibleDiffViewer.next";let Sp=kb;const Lb=class Lb extends _o{constructor(){super({id:Lb.id,title:Qt("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:aM,precondition:ye.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Gf(e);t==null||t.accessibleDiffViewerPrev()}};Lb.id="editor.action.accessibleDiffViewer.prev";let gv=Lb;function bW(o,e,t){return o.get(os).listDiffEditors().find(s=>{var c,u;const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&((c=r.getModel())==null?void 0:c.uri.toString())===t.toString()&&a&&((u=a.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function Gf(o){const t=o.get(os).listDiffEditors(),i=LE();if(i)for(const n of t){const s=n.getContainerDomNode();if(yW(s,i))return n}return null}function yW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Dn(gW);Dn(oM);Dn(rM);Dr.appendMenuItem(Ot.EditorTitle,{command:{id:new rM().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ye.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ye.has("isInDiffEditor")},order:11,group:"1_diff",when:ye.and(F.diffEditorRenderSideBySideInlineBreakpointReached,ye.has("isInDiffEditor"))});Dr.appendMenuItem(Ot.EditorTitle,{command:{id:new oM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:Li.move,toggled:DA.create("config.diffEditor.experimental.showMoves",!0),precondition:ye.has("isInDiffEditor")},order:10,group:"1_diff",when:ye.has("isInDiffEditor")});Dn(qS);for(const o of[{icon:Li.arrowRight,key:F.diffEditorInlineMode.toNegated()},{icon:Li.discard,key:F.diffEditorInlineMode}])Dr.appendMenuItem(Ot.DiffEditorHunkToolbar,{command:{id:new qS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:ye.and(F.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Dr.appendMenuItem(Ot.DiffEditorSelectionToolbar,{command:{id:new qS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:ye.and(F.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Dn(pW);Dn(_W);Dn(mW);Dn(vW);Dr.appendMenuItem(Ot.EditorTitle,{command:{id:Sp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ye.has("isInDiffEditor")},order:10,group:"2_diff",when:ye.and(F.accessibleDiffViewerVisible.negate(),ye.has("isInDiffEditor"))});Hn.registerCommandAlias("editor.action.diffReview.next",Sp.id);Dn(Sp);Hn.registerCommandAlias("editor.action.diffReview.prev",gv.id);Dn(gv);var wW=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},SW=function(o,e){return function(t,i){e(t,i,o)}},GS;const zy=new an("selectionAnchorSet",!1);var Ed;let Rc=(Ed=class{static get(e){return e.getContribution(GS.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=zy.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(wi.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new Ys().appendText(C("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Er(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(wi.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()}},GS=Ed,Ed.ID="editor.contrib.selectionAnchorController",Ed);Rc=GS=wW([SW(1,mn)],Rc);class CW extends qe{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:F.editorTextFocus,primary:ds(2089,2080),weight:100}})}async run(e,t){var i;(i=Rc.get(t))==null||i.setSelectionAnchor()}}class xW extends qe{constructor(){super({id:"editor.action.goToSelectionAnchor",label:C("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:zy})}async run(e,t){var i;(i=Rc.get(t))==null||i.goToSelectionAnchor()}}class kW extends qe{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:zy,kbOpts:{kbExpr:F.editorTextFocus,primary:ds(2089,2089),weight:100}})}async run(e,t){var i;(i=Rc.get(t))==null||i.selectFromAnchorToCursor()}}class LW extends qe{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:zy,kbOpts:{kbExpr:F.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Rc.get(t))==null||i.cancelSelectionAnchor()}}$i(Rc.ID,Rc,4);ce(CW);ce(xW);ce(kW);ce(LW);const IW=Kt("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class DW extends qe{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:F.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Su.get(t))==null||i.jumpToBracket()}}class EW extends qe{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Qt("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=Su.get(t))==null||s.selectToBracket(n)}}class TW extends qe{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:F.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Su.get(t))==null||i.removeBrackets(this.id)}}class PW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Kl=class Kl extends ft{static get(e){return e.getContribution(Kl.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new ms(()=>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 c=e.bracketPairs.findNextBracket(n);c&&c.range&&(r=c.range.getStartPosition())}}return r?new wi(r.lineNumber,r.column,r.lineNumber,r.column):new wi(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,c=null;if(r){r.sort(G.compareRangesUsingStarts);const[u,f]=r;if(a=e?u.getStartPosition():u.getEndPosition(),c=e?f.getEndPosition():f.getStartPosition(),f.containsPosition(s)){const g=a;a=c,c=g}}a&&c&&i.push(new wi(a.lineNumber,a.column,c.lineNumber,c.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(ii.compare);const a=[];let c=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[c++]=n[u];else{let m=t.bracketPairs.matchBracket(w,20),x=Kl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!m&&this._matchBrackets==="always"&&(m=t.bracketPairs.findEnclosingBrackets(w,20),x=Kl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[c++]=new PW(w,m,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Kl.ID="editor.contrib.bracketMatchingController",Kl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Qi.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:gs(IW),position:Oa.Center}}),Kl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Qi.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Su=Kl;$i(Su.ID,Su,1);ce(EW);ce(DW);ce(TW);Dr.appendMenuItem(Ot.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class MW{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 G(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new G(i,s,i,s),a)}else{const r=new G(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new G(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new wi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new wi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class lM extends qe{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 MW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class RW extends lM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:F.writable})}}class NW extends lM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:F.writable})}}ce(RW);ce(NW);class AW extends qe{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:F.writable,kbOpts:{kbExpr:F.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,c=r.startColumn,u=i.getLineMaxColumn(a);if(a===1&&(c===1||c===2&&u===2))continue;const f=c===u?r.getPosition():vw.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=vw.leftPosition(i,f),p=vw.leftPosition(i,g),w=i.getValueInRange(G.fromPositions(p,g)),m=i.getValueInRange(G.fromPositions(g,f)),x=G.fromPositions(p,f);n.push(new o_(x,m+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}ce(AW);const Vy=(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 M0(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function OW(o,e,t){const i={id:Vy(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class cM{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 hl.some(this,([i,n])=>n.asFile())&&t.push("files"),uM(pv(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 pv(e)}}function pv(o){return o.toLowerCase()}function dM(o,e){return uM(pv(o),e.map(pv))}function uM(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 jy=Object.freeze({create:o=>IE(o.map(e=>e.toString())).join(`\r
|
|
13
|
+
*-----------------------------------------------------------------------------*/var sW=Object.defineProperty,oW=Object.getOwnPropertyDescriptor,rW=Object.getOwnPropertyNames,aW=Object.prototype.hasOwnProperty,lW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of rW(e))!aW.call(o,n)&&n!==t&&sW(o,n,{get:()=>e[n],enumerable:!(i=oW(e,n))||i.enumerable});return o},cW=(o,e,t)=>(lW(o,e,"default"),t),dW="5.4.5",kf={};cW(kf,kE);var XP=(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))(XP||{}),YP=(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))(YP||{}),QP=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(QP||{}),JP=(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))(JP||{}),eM=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(eM||{}),tM=class{constructor(o,e,t,i,n){this._onDidChange=new kf.Emitter,this._onDidExtraLibsChange=new kf.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)}},uW=dW,iM={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},nM=new tM({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},iM),sM=new tM({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},iM),hW=()=>By().then(o=>o.getTypeScriptWorker()),fW=()=>By().then(o=>o.getJavaScriptWorker());kf.languages.typescript={ModuleKind:XP,JsxEmit:YP,NewLineKind:QP,ScriptTarget:JP,ModuleResolutionKind:eM,typescriptVersion:uW,typescriptDefaults:nM,javascriptDefaults:sM,getTypeScriptWorker:hW,getJavaScriptWorker:fW};function By(){return xE(()=>import("./tsMode-BrUIFGM6.js"),__vite__mapDeps([3,1,2]))}kf.languages.onLanguage("typescript",()=>By().then(o=>o.setupTypeScript(nM)));kf.languages.onLanguage("javascript",()=>By().then(o=>o.setupJavaScript(sM)));class gW extends _o{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Qt("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Li.map,toggled:ye.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ye.has("isInDiffEditor"),menu:{when:ye.has("isInDiffEditor"),id:Ot.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get($n),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class oM extends _o{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Qt("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:ye.has("isInDiffEditor")})}run(e,...t){const i=e.get($n),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class rM extends _o{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Qt("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:ye.has("isInDiffEditor")})}run(e,...t){const i=e.get($n),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const x_=Qt("diffEditor","Diff Editor");class pW extends ra{constructor(){super({id:"diffEditor.switchSide",title:Qt("switchSide","Switch Side"),icon:Li.arrowSwap,precondition:ye.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,i){const n=Gf(e);if(n instanceof s_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class _W extends ra{constructor(){super({id:"diffEditor.exitCompareMove",title:Qt("exitCompareMove","Exit Compare Move"),icon:Li.close,precondition:F.comparingMovedCode,f1:!1,category:x_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Gf(e);n instanceof s_&&n.exitCompareMove()}}class mW extends ra{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Qt("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Li.fold,precondition:ye.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Gf(e);n instanceof s_&&n.collapseAllUnchangedRegions()}}class vW extends ra{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Qt("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Li.unfold,precondition:ye.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Gf(e);n instanceof s_&&n.showAllUnchangedRegions()}}class qS extends _o{constructor(){super({id:"diffEditor.revert",title:Qt("revert","Revert"),f1:!1,category:x_})}run(e,t){const i=bW(e,t.originalUri,t.modifiedUri);i instanceof s_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const aM=Qt("accessibleDiffViewer","Accessible Diff Viewer"),kb=class kb extends _o{constructor(){super({id:kb.id,title:Qt("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:aM,precondition:ye.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Gf(e);t==null||t.accessibleDiffViewerNext()}};kb.id="editor.action.accessibleDiffViewer.next";let Sp=kb;const Lb=class Lb extends _o{constructor(){super({id:Lb.id,title:Qt("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:aM,precondition:ye.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Gf(e);t==null||t.accessibleDiffViewerPrev()}};Lb.id="editor.action.accessibleDiffViewer.prev";let gv=Lb;function bW(o,e,t){return o.get(os).listDiffEditors().find(s=>{var c,u;const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&((c=r.getModel())==null?void 0:c.uri.toString())===t.toString()&&a&&((u=a.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function Gf(o){const t=o.get(os).listDiffEditors(),i=LE();if(i)for(const n of t){const s=n.getContainerDomNode();if(yW(s,i))return n}return null}function yW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Dn(gW);Dn(oM);Dn(rM);Dr.appendMenuItem(Ot.EditorTitle,{command:{id:new rM().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ye.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ye.has("isInDiffEditor")},order:11,group:"1_diff",when:ye.and(F.diffEditorRenderSideBySideInlineBreakpointReached,ye.has("isInDiffEditor"))});Dr.appendMenuItem(Ot.EditorTitle,{command:{id:new oM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:Li.move,toggled:DA.create("config.diffEditor.experimental.showMoves",!0),precondition:ye.has("isInDiffEditor")},order:10,group:"1_diff",when:ye.has("isInDiffEditor")});Dn(qS);for(const o of[{icon:Li.arrowRight,key:F.diffEditorInlineMode.toNegated()},{icon:Li.discard,key:F.diffEditorInlineMode}])Dr.appendMenuItem(Ot.DiffEditorHunkToolbar,{command:{id:new qS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:ye.and(F.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Dr.appendMenuItem(Ot.DiffEditorSelectionToolbar,{command:{id:new qS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:ye.and(F.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Dn(pW);Dn(_W);Dn(mW);Dn(vW);Dr.appendMenuItem(Ot.EditorTitle,{command:{id:Sp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ye.has("isInDiffEditor")},order:10,group:"2_diff",when:ye.and(F.accessibleDiffViewerVisible.negate(),ye.has("isInDiffEditor"))});Hn.registerCommandAlias("editor.action.diffReview.next",Sp.id);Dn(Sp);Hn.registerCommandAlias("editor.action.diffReview.prev",gv.id);Dn(gv);var wW=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},SW=function(o,e){return function(t,i){e(t,i,o)}},GS;const zy=new an("selectionAnchorSet",!1);var Ed;let Rc=(Ed=class{static get(e){return e.getContribution(GS.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=zy.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(wi.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new Ys().appendText(C("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Er(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(wi.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()}},GS=Ed,Ed.ID="editor.contrib.selectionAnchorController",Ed);Rc=GS=wW([SW(1,mn)],Rc);class CW extends qe{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:F.editorTextFocus,primary:ds(2089,2080),weight:100}})}async run(e,t){var i;(i=Rc.get(t))==null||i.setSelectionAnchor()}}class xW extends qe{constructor(){super({id:"editor.action.goToSelectionAnchor",label:C("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:zy})}async run(e,t){var i;(i=Rc.get(t))==null||i.goToSelectionAnchor()}}class kW extends qe{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:zy,kbOpts:{kbExpr:F.editorTextFocus,primary:ds(2089,2089),weight:100}})}async run(e,t){var i;(i=Rc.get(t))==null||i.selectFromAnchorToCursor()}}class LW extends qe{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:zy,kbOpts:{kbExpr:F.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Rc.get(t))==null||i.cancelSelectionAnchor()}}$i(Rc.ID,Rc,4);ce(CW);ce(xW);ce(kW);ce(LW);const IW=Kt("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class DW extends qe{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:F.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Su.get(t))==null||i.jumpToBracket()}}class EW extends qe{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Qt("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=Su.get(t))==null||s.selectToBracket(n)}}class TW extends qe{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:F.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Su.get(t))==null||i.removeBrackets(this.id)}}class PW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Kl=class Kl extends ft{static get(e){return e.getContribution(Kl.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new ms(()=>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 c=e.bracketPairs.findNextBracket(n);c&&c.range&&(r=c.range.getStartPosition())}}return r?new wi(r.lineNumber,r.column,r.lineNumber,r.column):new wi(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,c=null;if(r){r.sort(G.compareRangesUsingStarts);const[u,f]=r;if(a=e?u.getStartPosition():u.getEndPosition(),c=e?f.getEndPosition():f.getStartPosition(),f.containsPosition(s)){const g=a;a=c,c=g}}a&&c&&i.push(new wi(a.lineNumber,a.column,c.lineNumber,c.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(ii.compare);const a=[];let c=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[c++]=n[u];else{let m=t.bracketPairs.matchBracket(w,20),x=Kl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!m&&this._matchBrackets==="always"&&(m=t.bracketPairs.findEnclosingBrackets(w,20),x=Kl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[c++]=new PW(w,m,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Kl.ID="editor.contrib.bracketMatchingController",Kl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Qi.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:gs(IW),position:Oa.Center}}),Kl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Qi.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Su=Kl;$i(Su.ID,Su,1);ce(EW);ce(DW);ce(TW);Dr.appendMenuItem(Ot.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class MW{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 G(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new G(i,s,i,s),a)}else{const r=new G(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new G(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new wi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new wi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class lM extends qe{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 MW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class RW extends lM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:F.writable})}}class NW extends lM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:F.writable})}}ce(RW);ce(NW);class AW extends qe{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:F.writable,kbOpts:{kbExpr:F.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,c=r.startColumn,u=i.getLineMaxColumn(a);if(a===1&&(c===1||c===2&&u===2))continue;const f=c===u?r.getPosition():vw.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=vw.leftPosition(i,f),p=vw.leftPosition(i,g),w=i.getValueInRange(G.fromPositions(p,g)),m=i.getValueInRange(G.fromPositions(g,f)),x=G.fromPositions(p,f);n.push(new o_(x,m+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}ce(AW);const Vy=(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 M0(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function OW(o,e,t){const i={id:Vy(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class cM{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 hl.some(this,([i,n])=>n.asFile())&&t.push("files"),uM(pv(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 pv(e)}}function pv(o){return o.toLowerCase()}function dM(o,e){return uM(pv(o),e.map(pv))}function uM(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 jy=Object.freeze({create:o=>IE(o.map(e=>e.toString())).join(`\r
|
|
14
14
|
`),split:o=>o.split(`\r
|
|
15
15
|
`),parse:o=>jy.split(o).filter(e=>!e.startsWith("#"))}),wa=class wa{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+wa.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new wa((this.value?[this.value,...e]:e).join(wa.sep))}};wa.sep=".",wa.None=new wa("@@none@@"),wa.Empty=new wa("");let jn=wa;const GL={EDITORS:"CodeEditors",FILES:"CodeFiles"};class FW{}const HW={DragAndDropContribution:"workbench.contributions.dragAndDrop"};aa.add(HW.DragAndDropContribution,new FW);const op=class op{constructor(){}static getInstance(){return op.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};op.INSTANCE=new op;let KS=op;function hM(o){const e=new cM;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,M0(n))}else if(t.kind==="file"){const n=t.getAsFile();n&&e.append(i,WW(n))}}return e}function WW(o){const e=o.path?Tn.parse(o.path):void 0;return OW(o.name,e,async()=>new Uint8Array(await o.arrayBuffer()))}const BW=Object.freeze([GL.EDITORS,GL.FILES,mS.RESOURCES,mS.INTERNAL_URI_LIST]);function fM(o,e=!1){const t=hM(o),i=t.get(mS.INTERNAL_URI_LIST);if(i)t.replace(Ms.uriList,i);else if(e||!t.has(Ms.uriList)){const n=[];for(const s of o.items){const r=s.getAsFile();if(r){const a=r.path;try{a?n.push(Tn.file(a).toString()):n.push(Tn.parse(r.name,!0).toString())}catch{}}}n.length&&t.replace(Ms.uriList,M0(jy.create(n)))}for(const n of BW)t.delete(n);return t}var R0=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},Cp=function(o,e){return function(t,i){e(t,i,o)}};class N0{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 rp=class rp extends N0{constructor(){super(...arguments),this.kind=rp.kind,this.dropMimeTypes=[Ms.text],this.pasteMimeTypes=[Ms.text]}async getEdit(e,t){const i=e.get(Ms.text);if(!i||e.has(Ms.uriList))return;const n=await i.asString();return{handledMimeType:Ms.text,title:C("text.label","Insert Plain Text"),insertText:n,kind:this.kind}}};rp.id="text",rp.kind=new jn("text.plain");let Cu=rp;class gM extends N0{constructor(){super(...arguments),this.kind=new jn("uri.absolute"),this.dropMimeTypes=[Ms.uriList],this.pasteMimeTypes=[Ms.uriList]}async getEdit(e,t){const i=await pM(e);if(!i.length||t.isCancellationRequested)return;let n=0;const s=i.map(({uri:a,originalText:c})=>a.scheme===uo.file?a.fsPath:(n++,c)).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:Ms.uriList,insertText:s,title:r,kind:this.kind}}}let _v=class extends N0{constructor(e){super(),this._workspaceContextService=e,this.kind=new jn("uri.relative"),this.dropMimeTypes=[Ms.uriList],this.pasteMimeTypes=[Ms.uriList]}async getEdit(e,t){const i=await pM(e);if(!i.length||t.isCancellationRequested)return;const n=vl(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?EA(r.uri,s):void 0}));if(n.length)return{handledMimeType:Ms.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}}};_v=R0([Cp(0,df)],_v);class zW{constructor(){this.kind=new jn("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Ms.text}]}async provideDocumentPasteEdits(e,t,i,n,s){var c;if(n.triggerKind!==vS.PasteAs&&!((c=n.only)!=null&&c.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 pM(o){const e=o.get(Ms.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const n of jy.parse(t))try{i.push({uri:Tn.parse(n),originalText:n})}catch{}return i}let ZS=class extends ft{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new Cu)),this._register(e.documentDropEditProvider.register("*",new gM)),this._register(e.documentDropEditProvider.register("*",new _v(t)))}};ZS=R0([Cp(0,ni),Cp(1,df)],ZS);let XS=class extends ft{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new Cu)),this._register(e.documentPasteEditProvider.register("*",new gM)),this._register(e.documentPasteEditProvider.register("*",new _v(t))),this._register(e.documentPasteEditProvider.register("*",new zW))}};XS=R0([Cp(0,ni),Cp(1,df)],XS);const ur=class ur{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=ur._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(ur.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(ur.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(ur.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(ur.isVariableCharacter(i)||ur.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 ur._table[i]>"u"&&!ur.isDigitCharacter(i)&&!ur.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}};ur._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let YS=ur;class Kf{constructor(){this._children=[]}appendChild(e){return e instanceof Co&&this._children[this._children.length-1]instanceof Co?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,c){for(const u of a)u.parent=c,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 k_)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}let Co=class _M extends Kf{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new _M(this.value)}};class mM extends Kf{}class sr extends mM{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 Zf?this._children[0]:void 0}clone(){const e=new sr(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Zf extends Kf{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Co&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Zf;return this.options.forEach(e.appendChild,e),e}}class A0 extends Kf{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 Kr&&!!s.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof Kr){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new A0;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 Kr extends Kf{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 Kr(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class xp extends mM{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 Co(t)],!0):!1}clone(){const e=new xp(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function KL(o,e){const t=[...o];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class k_ extends Kf{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof sr&&(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 KL([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof sr&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof xp&&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 k_;return this._children=this.children.map(t=>t.clone()),e}walk(e){KL(this.children,e)}}class xu{constructor(){this._scanner=new YS,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 k_;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(c=>(c instanceof sr&&(c.isFinalTabstop?n.set(0,void 0):!n.has(c.index)&&c.children.length>0?n.set(c.index,c.children):s.push(c)),!0));const r=(c,u)=>{const f=n.get(c.index);if(!f)return;const g=new sr(c.index);g.transform=c.transform;for(const p of f){const w=p.clone();g.appendChild(w),w instanceof sr&&n.has(w.index)&&!u.has(w.index)&&(u.add(w.index),r(w,u),u.delete(w.index))}t.replace(c,[g])},a=new Set;for(const c of s)r(c,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 sr(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 Co(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 sr(Number(t)):new xp(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 sr(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Co("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else if(s.index>0&&this._accept(7)){const r=new Zf;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 Co(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 xp(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Co("${"+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 A0;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 Co(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 Kr(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Kr(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 Kr(Number(n),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return e.appendChild(new Kr(Number(n),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return e.appendChild(new Kr(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 Kr(Number(n),void 0,s,r)),!0}}else{const s=this._until(4);if(s)return e.appendChild(new Kr(Number(n),void 0,void 0,s)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Co(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function vM(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 TA(o,{range:s,text:typeof t.insertText=="string"?xu.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...((n=t.additionalEdit)==null?void 0:n.edits)??[]]}}function bM(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 c of o)if(c!==r&&e(a,c)){let u=t.get(r);u||(u=[],t.set(r,u)),u.push(c)}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 c=[];const u=t.get(a);return u&&(n.push(a),c=s(u),n.pop()),i.add(a),[...c,a,...s(r.slice(1))]}return s(Array.from(o))}var VW=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},jW=function(o,e){return function(t,i){e(t,i,o)}};const $W=Qi.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:DE,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),Ib=class Ib extends ft{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=Gt(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=Gt("span.icon");this.domNode.append(t),t.classList.add(...Sn.asClassNameArray(Li.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(_n(this.domNode,Kn.CLICK,n=>{this.delegate.cancel()}))}getId(){return Ib.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)}};Ib.baseId="editor.widget.inlineProgressWidget";let QS=Ib,mv=class extends ft{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new $o),this._currentWidget=this._register(new $o),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=cp(()=>{const a=G.fromPositions(e);this._currentDecorations.set([{range:a,options:$W}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(QS,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()}};mv=VW([jW(2,Mi)],mv);var UW=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},ZL=function(o,e){return function(t,i){e(t,i,o)}},Fm,fc;let ko=(fc=class{static get(e){return e.getContribution(Fm.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new $o,this._messageListeners=new ct,this._mouseOverMessage=!1,this._editor=e,this._visible=Fm.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){Er(km(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=km(e)?PA(e,{actionHandler:{callback:n=>{this.closeMessage(),MA(this._openerService,n,km(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new XL(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(_s.debounce(this._editor.onDidBlurEditorText,(n,s)=>s,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&RA(LE(),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(_n(this._messageWidget.value.getDomNode(),Kn.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(_n(this._messageWidget.value.getDomNode(),Kn.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 G(t.lineNumber-3,1,n.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(XL.fadeOut(this._messageWidget.value))}},Fm=fc,fc.ID="editor.contrib.messageController",fc.MESSAGE_VISIBLE=new an("messageVisible",!1,C("messageVisible","Whether the editor is currently showing an inline message")),fc);ko=Fm=UW([ZL(1,mn),ZL(2,la)],ko);const qW=mo.bindToContribution(ko.get);oi(new qW({id:"leaveEditorMessage",precondition:ko.MESSAGE_VISIBLE,handler:o=>o.closeMessage(),kbOpts:{weight:130,primary:9}}));let XL=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)}};$i(ko.ID,ko,4);function Rw(o,e){return e&&(o.stack||o.stacktrace)?C("stackTrace.format","{0}: {1}",QL(o),YL(o.stack)||YL(o.stacktrace)):QL(o)}function YL(o){return Array.isArray(o)?o.join(`
|
|
16
16
|
`):o}function QL(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 vv(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=vl(o),i=vv(t[0],e);return t.length>1?C("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(EE(o))return o;if(o.detail){const t=o.detail;if(t.error)return Rw(t.error,e);if(t.exception)return Rw(t.exception,e)}return o.stack?Rw(o,e):o.message?o.message:C("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var yM=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},Vh=function(o,e){return function(t,i){e(t,i,o)}},JS,Td;let eC=(Td=class extends ft{constructor(e,t,i,n,s,r,a,c,u,f){super(),this.typeId=e,this.editor=t,this.showCommand=n,this.range=s,this.edits=r,this.onSelectNewEdit=a,this._contextMenuService=c,this._keybindingService=f,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(u),this.visibleContext.set(!0),this._register(Vn(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(Vn((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(g=>{s.containsPosition(g.position)||this.dispose()})),this._register(_s.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=Gt(".post-edit-widget"),this.button=this._register(new NA(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(_n(this.domNode,Kn.CLICK,()=>this.showSelector()))}getId(){return JS.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=fo(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>AA({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}},JS=Td,Td.baseId="editor.widget.postEditWidget",Td);eC=JS=yM([Vh(7,Bf),Vh(8,mn),Vh(9,us)],eC);let bv=class extends ft{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 $o),this._register(_s.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 c=async k=>{const E=this._editor.getModel();E&&(await E.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:k,allEdits:t.allEdits},i,n,s))},u=(k,E)=>{Hc(k)||(this._notificationService.error(E),i&&this.show(e[0],t,c))};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 te}function Wt(z){return z.filter!==void 0||z.map!==void 0||z.reduce!==void 0}function Zt(z){const te=[];return z.filter!==void 0&&te.push("filter"),z.map!==void 0&&te.push("map"),z.reduce!==void 0&&te.push("reduce"),`Apply ${te.join(" + ")}`}const Mt=15;function Lt(z){return z.split(`
|
|
228
228
|
`).length>Mt}function At(z){const te=new Set(d(p));te.has(z)?te.delete(z):te.add(z),y(p,te,!0)}function kt(z,te){if(hi(te))try{return pb.highlight(z,{language:"javascript"}).value}catch{}return z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function Si(z){return Un.parse(z)}function hi(z){return!z||z==="js"||z==="javascript"}function Di(z){navigator.clipboard.writeText(z).catch(()=>{})}async function Fi(){if(y(w,!0),!(d(m)||d(x))){y(x,!0),y(k,"");try{y(m,await Mx(d(g)||d(u).model),!0)}catch(z){y(k,z.message,!0)}y(x,!1)}}function Ri(z){return z>=1e9?`${(z/1e9).toFixed(1)} GB`:z>=1e6?`${(z/1e6).toFixed(0)} MB`:`${z} B`}function Ni(z){const te=z.match(/\.([^.]+)$/);return te?te[1].toUpperCase():"?"}function Ii(z){switch(z){case"SH":case"BASH":return"$";case"MD":case"MARKDOWN":return"↓";case"JSON":case"JSONC":return"{}";default:return z}}function ci(z){y(J,d(J).filter((te,Ge)=>Ge!==z),!0)}function vi(){We.click()}async function it(z){if(!(!z||z.length===0))for(const te of Array.from(z)){const Ge=await te.text();y(J,[...d(J),{name:te.name,content:Ge}],!0)}}function zt(z){const te=z.target;it(te.files),te.value=""}function gi(z){var te;z.preventDefault(),y(he,!1),it(((te=z.dataTransfer)==null?void 0:te.files)??null)}function Ti(z){var te;(te=z.dataTransfer)!=null&&te.types.includes("Files")&&(z.preventDefault(),y(he,!0))}function Zi(){y(he,!1)}async function Bi(){const z=d(r).trim();if(!(!z||d(a))){y(r,""),y(c,""),y(a,!0),y(n,[...d(n),{role:"user",content:z}],!0),E=new AbortController,y(xe,[],!0);try{await $N({messages:d(n),currentView:d(fe),context:d(dt),modelOverride:d(g)||void 0,extraFiles:d(J).length>0?d(J):void 0},te=>{y(s,(d(s)??"")+te)},E.signal,te=>{y(xe,[...d(xe),te],!0)}),y(n,[...d(n),{role:"assistant",content:d(s)??"",toolEvents:d(xe).length>0?[...d(xe)]:void 0}],!0),y(xe,[],!0)}catch(te){if(te.name==="AbortError"){const Ge=d(s);Ge!=null&&Ge.trim()&&y(n,[...d(n),{role:"assistant",content:Ge+`
|
|
229
229
|
|
|
230
|
-
*[stopped]*`,toolEvents:d(xe).length>0?[...d(xe)]:void 0}],!0)}else y(c,te.message,!0)}finally{E=null,y(s,null),y(xe,[],!0),y(a,!1)}}}function zi(){E==null||E.abort()}function vn(z){z.key==="Enter"&&!z.shiftKey&&(z.preventDefault(),Bi())}function ln(){y(n,[],!0),y(c,"")}const Pi=["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 yn(z){y(r,z,!0),pt==null||pt.focus()}var Re=jZ(),jt=Ct(Re),di=v(jt),qt=b(v(di),2);{var Le=z=>{var te=aZ(),Ge=v(te);{var Je=be=>{var vt=sa();j(()=>O(vt,`${d(u).provider??""} · ${(d(g)||d(u).model)??""}`)),D(be,vt)},ge=be=>{var vt=sa("Not configured");D(be,vt)};W(Ge,be=>{d(gt)?be(Je):be(ge,-1)})}j(()=>Ai(te,"title",`Provider: ${d(u).provider??""}`)),D(z,te)};W(qt,z=>{d(u)&&z(Le)})}var It=b(qt,2);{var ai=z=>{var te=lZ();U("click",te,ln),D(z,te)};W(It,z=>{d(n).length>0&&z(ai)})}var pi=b(di,2),_i=v(pi);{var Fe=z=>{var te=cZ();D(z,te)},X=z=>{var te=hZ(),Ge=v(te),Je=v(Ge);{var ge=Ei=>{var Ne=dZ(),Ke=b(Ct(Ne)),Vt=v(Ke);j(()=>O(Vt,t().id)),D(Ei,Ne)},be=Ei=>{var Ne=sa("No view selected. Ask a general sheDB view question.");D(Ei,Ne)};W(Je,Ei=>{t()?Ei(ge):Ei(be,-1)})}var vt=b(Ge,2);mi(vt,17,()=>Pi,Ji,(Ei,Ne)=>{var Ke=uZ(),Vt=v(Ke);j(()=>O(Vt,d(Ne))),U("click",Ke,()=>yn(d(Ne))),D(Ei,Ke)}),D(z,te)};W(_i,z=>{d(gt)?d(n).length===0&&d(s)===null&&z(X,1):z(Fe)})}var ee=b(_i,2);mi(ee,17,()=>d(n),Ji,(z,te,Ge)=>{var Je=vZ(),ge=v(Je);{var be=Ei=>{var Ne=fZ(),Ke=v(Ne);j(()=>O(Ke,d(te).content)),D(Ei,Ne)},vt=Ei=>{const Ne=wt(()=>Oe(d(te).content)),Ke=wt(()=>ut(d(Ne)));var Vt=mZ(),et=Ct(Vt);{var bt=He=>{var Pe=cE();mi(Pe,21,()=>d(te).toolEvents,Ji,($t,xt)=>{var Ze=Rs(),Ut=Ct(Ze);{var st=ze=>{var Ve=aE(),je=b(v(Ve)),Nt=v(je);j(we=>O(Nt,we),[()=>d(xt).name.replace(/_/g," ")]),D(ze,Ve)},Me=ze=>{var Ve=lE(),je=b(v(Ve)),Nt=v(je);j(we=>O(Nt,we),[()=>d(xt).name.replace(/_/g," ")]),D(ze,Ve)};W(Ut,ze=>{d(xt).type==="tool_call"?ze(st):ze(Me,-1)})}D($t,Ze)}),D(He,Pe)};W(et,He=>{var Pe;(Pe=d(te).toolEvents)!=null&&Pe.length&&He(bt)})}var Jt=b(et,2),K=v(Jt);mi(K,17,()=>d(Ne),Ji,(He,Pe,$t)=>{var xt=Rs(),Ze=Ct(xt);{var Ut=Me=>{var ze=dE();sc(ze,()=>Si(d(Pe).text),!0),D(Me,ze)},st=Me=>{const ze=wt(()=>`${Ge}:${$t}`),Ve=wt(()=>Lt(d(Pe).text)),je=wt(()=>d(p).has(d(ze))),Nt=wt(()=>d(Pe).lang==="filter");var we=pZ(),ot=v(we),_t=v(ot),mt=v(_t),Xe=b(_t,2),Yt=v(Xe),si=b(ot,2);let un;var tn=v(si),En=v(tn);sc(En,()=>kt(d(Pe).text,d(Pe).lang??""),!0);var Qn=b(tn,2);{var Ui=bi=>{var wn=gZ(),dn=v(wn);j(()=>O(dn,d(je)?"▲ collapse":"▼ expand")),U("click",wn,()=>At(d(ze))),D(bi,wn)};W(Qn,bi=>{d(Ve)&&bi(Ui)})}j(()=>{O(mt,d(Nt)?"filter":d(Pe).lang),un=Tt(si,1,"code-body svelte-1twuiul",null,un,{collapsed:d(Ve)&&!d(je)})}),U("click",Yt,()=>Di(d(Pe).text)),D(Me,we)};W(Ze,Me=>{d(Pe).type==="text"?Me(Ut):Me(st,-1)})}D(He,xt)});var se=b(K,2);{var Ue=He=>{var Pe=_Z(),$t=v(Pe),xt=v($t);j(Ze=>O(xt,Ze),[()=>Zt(d(Ke))]),U("click",$t,()=>e.onApplyView(d(Ke))),D(He,Pe)},tt=wt(()=>Wt(d(Ke))&&e.onApplyView);W(se,He=>{d(tt)&&He(Ue)})}D(Ei,Vt)};W(ge,Ei=>{d(te).role==="user"?Ei(be):Ei(vt,-1)})}j(()=>Tt(Je,1,`message ${d(te).role??""}`,"svelte-1twuiul")),D(z,Je)});var de=b(ee,2);{var ke=z=>{var te=cE();mi(te,21,()=>d(xe),Ji,(Ge,Je)=>{var ge=Rs(),be=Ct(ge);{var vt=Ne=>{var Ke=aE(),Vt=b(v(Ke)),et=v(Vt);j(bt=>O(et,bt),[()=>d(Je).name.replace(/_/g," ")]),D(Ne,Ke)},Ei=Ne=>{var Ke=lE(),Vt=b(v(Ke)),et=v(Vt);j(bt=>O(et,bt),[()=>d(Je).name.replace(/_/g," ")]),D(Ne,Ke)};W(be,Ne=>{d(Je).type==="tool_call"?Ne(vt):Ne(Ei,-1)})}D(Ge,ge)}),D(z,te)};W(de,z=>{d(xe).length>0&&z(ke)})}var $e=b(de,2);{var N=z=>{var te=bZ(),Ge=v(te),Je=v(Ge),ge=v(Je);j(()=>O(ge,A[d(P)])),D(z,te)};W($e,z=>{d(a)&&d(s)===null&&d(xe).length===0&&z(N)})}var Q=b($e,2);{var oe=z=>{var te=wZ(),Ge=v(te);mi(Ge,21,()=>Te(d(s)),Ji,(Je,ge)=>{var be=Rs(),vt=Ct(be);{var Ei=Ke=>{var Vt=dE();sc(Vt,()=>Si(d(ge).text),!0),D(Ke,Vt)},Ne=Ke=>{var Vt=yZ(),et=v(Vt),bt=v(et),Jt=v(bt),K=b(et,2),se=v(K);sc(se,()=>kt(d(ge).text,d(ge).lang??""),!0),j(()=>O(Jt,d(ge).lang)),D(Ke,Vt)};W(vt,Ke=>{d(ge).type==="text"?Ke(Ei):Ke(Ne,-1)})}D(Je,be)}),D(z,te)};W(Q,z=>{d(s)!==null&&z(oe)})}Ds(pi,z=>ve=z,()=>ve);var Ie=b(pi,2);{var De=z=>{var te=SZ(),Ge=v(te);j(()=>O(Ge,d(c))),D(z,te)};W(Ie,z=>{d(c)&&z(De)})}var B=b(Ie,2),q=v(B),Y=v(q),me=b(q,2),Qe=v(me),Ee=b(me,2),Se=v(Ee),lt=b(Ee,2),Bt=v(lt),St=b(B,2),Dt=v(St);{var Ft=z=>{var te=CZ();let Ge;var Je=b(v(te),2),ge=v(Je),be=b(Je,2),vt=v(be);j(()=>{Ge=Tt(te,1,"file-chip svelte-1twuiul",null,Ge,{inactive:!d(ue)}),O(ge,t().id),Ai(be,"title",d(ue)?"Remove from context":"Re-add to context"),O(vt,d(ue)?"×":"+")}),U("click",be,()=>y(ue,!d(ue))),D(z,te)};W(Dt,z=>{t()&&z(Ft)})}var ne=b(Dt,2);mi(ne,17,()=>d(J),Ji,(z,te,Ge)=>{const Je=wt(()=>Ni(d(te).name));var ge=xZ(),be=v(ge),vt=v(be),Ei=b(be,2),Ne=v(Ei),Ke=b(Ei,2);j((Vt,et)=>{Tt(be,1,`badge badge-${Vt??""}`,"svelte-1twuiul"),O(vt,et),O(Ne,d(te).name)},[()=>d(Je).toLowerCase(),()=>Ii(d(Je))]),U("click",Ke,()=>ci(Ge)),D(z,ge)});var _e=b(ne,2),Be=b(_e,2);Ds(Be,z=>We=z,()=>We);var at=b(St,2);let nt;var Ye=v(at);let Rt;var ri=v(Ye);Ds(ri,z=>pt=z,()=>pt);var fi=b(Ye,2);{var Ci=z=>{var te=kZ();U("click",te,zi),D(z,te)},en=z=>{var te=LZ();j(Ge=>te.disabled=Ge,[()=>!d(r).trim()||!d(gt)]),U("click",te,Bi),D(z,te)};W(fi,z=>{d(a)?z(Ci):z(en,-1)})}var fn=b(at,2);{var cn=z=>{var te=PZ(),Ge=v(te),Je=v(Ge),ge=b(Ge,2);{var be=Ke=>{var Vt=DZ();mi(Vt,21,()=>d(f),Ji,(et,bt)=>{var Jt=IZ(),K=v(Jt),se={};j(()=>{O(K,d(bt)),se!==(se=d(bt))&&(Jt.value=(Jt.__value=d(bt))??"")}),D(et,Jt)}),j(()=>Vt.disabled=d(a)),Ho(Vt,()=>d(g),et=>y(g,et)),D(Ke,Vt)},vt=Ke=>{var Vt=EZ(),et=v(Vt);j(()=>O(et,d(g)||d(u).model)),D(Ke,Vt)};W(ge,Ke=>{d(f).length>0?Ke(be):Ke(vt,-1)})}var Ei=b(ge,2);{var Ne=Ke=>{var Vt=TZ();U("click",Vt,Fi),D(Ke,Vt)};W(Ei,Ke=>{d(u).provider==="ollama"&&Ke(Ne)})}j(()=>O(Je,d(u).provider)),D(z,te)};W(fn,z=>{d(gt)&&d(u)&&z(cn)})}var ki=b(jt,2);{var Xi=z=>{var te=VZ(),Ge=v(te),Je=v(Ge),ge=v(Je),be=v(ge),vt=b(ge,2),Ei=b(Je,2),Ne=v(Ei);{var Ke=bt=>{var Jt=MZ();D(bt,Jt)},Vt=bt=>{var Jt=RZ(),K=v(Jt);j(()=>O(K,d(k))),D(bt,Jt)},et=bt=>{var Jt=zZ(),K=v(Jt);{var se=Me=>{var ze=NZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).version)),D(Me,ze)};W(K,Me=>{d(m).version&&Me(se)})}var Ue=b(K,2);{var tt=Me=>{var ze=AZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).details.family)),D(Me,ze)};W(Ue,Me=>{var ze;(ze=d(m).details)!=null&&ze.family&&Me(tt)})}var He=b(Ue,2);{var Pe=Me=>{var ze=OZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).details.parameter_size)),D(Me,ze)};W(He,Me=>{var ze;(ze=d(m).details)!=null&&ze.parameter_size&&Me(Pe)})}var $t=b(He,2);{var xt=Me=>{var ze=FZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).details.quantization_level)),D(Me,ze)};W($t,Me=>{var ze;(ze=d(m).details)!=null&&ze.quantization_level&&Me(xt)})}var Ze=b($t,2);{var Ut=Me=>{var ze=WZ(),Ve=b(Ct(ze),2);mi(Ve,21,()=>d(m).running,Ji,(je,Nt)=>{var we=HZ(),ot=v(we);j(_t=>O(ot,`${d(Nt).name??""} · ${_t??""} VRAM`),[()=>Ri(d(Nt).size_vram)]),D(je,we)}),D(Me,ze)},st=Me=>{var ze=BZ();D(Me,ze)};W(Ze,Me=>{d(m).running&&d(m).running.length>0?Me(Ut):d(m).running!==null&&Me(st,1)})}D(bt,Jt)};W(Ne,bt=>{d(x)?bt(Ke):d(k)?bt(Vt,1):d(m)&&bt(et,2)})}j(()=>{var bt;return O(be,`Ollama · ${(d(g)||((bt=d(u))==null?void 0:bt.model))??""}`)}),U("click",te,()=>y(w,!1)),U("click",Ge,bt=>bt.stopPropagation()),U("click",vt,()=>y(w,!1)),D(z,te)};W(ki,z=>{d(w)&&z(Xi)})}j(z=>{O(Bt,z),nt=Tt(at,1,"input-row svelte-1twuiul",null,nt,{"drag-over":d(he)}),Rt=Tt(Ye,1,"textarea-wrap svelte-1twuiul",null,Rt,{loading:d(a)}),Ai(ri,"placeholder",d(gt)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),ri.disabled=d(a)||!d(gt)},[()=>Ri(d(Pt))]),Is(Y,()=>d($),z=>y($,z)),Is(Qe,()=>d(H),z=>y(H,z)),Is(Se,()=>d(ie),z=>y(ie,z)),U("click",_e,vi),U("change",Be,zt),cs("dragover",at,Ti),cs("dragleave",at,Zi),cs("drop",at,gi),U("keydown",ri,vn),ti(ri,()=>d(r),z=>y(r,z)),D(o,Re),As()}Ks(["click","change","keydown"]);var UZ=T('<div class="me svelte-1pxdb1"></div>');function gS(o,e){Ns(e,!0);let t=wu(e,"value",15,""),i=wu(e,"language",3,"javascript"),n,s,r=!1;ao(()=>{const c=i()==="json"?{formatOnPaste:!0,autoIndent:"full"}:{};s=dr.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},...c}),s.onDidChangeModelContent(()=>{r||t(s.getValue())})}),Wy(()=>s==null?void 0:s.dispose()),zn(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=UZ();Ds(a,c=>n=c,()=>n),D(o,a),As()}var qZ=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 — 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),GZ=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>'),uE=T('<div class="form-error svelte-rrt0o"> </div>'),KZ=T('<div class="new-item-form svelte-rrt0o"><input placeholder="device/lamp1" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),hE=T("<li> </li>"),fE=T('<div class="error-bar svelte-rrt0o"> </div>'),gE=T('<div class="loading svelte-rrt0o">Loading…</div>'),ZZ=T('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),XZ=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),YZ=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>'),QZ=T('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),JZ=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>'),eX=T('<span class="badge-error svelte-rrt0o">error</span>'),tX=T('<span class="badge-ok svelte-rrt0o"> </span>'),iX=T('<pre class="result-error svelte-rrt0o"> </pre>'),nX=T('<pre class="result-json svelte-rrt0o"> </pre>'),sX=T('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),oX=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 · 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>'),rX=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),aX=T('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),lX=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>'),cX=T('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function dX(o,e){Ns(e,!0);const t=Fe=>{var X=qZ(),ee=Ct(X);Ds(Jf(ee,{}),de=>Ii=de,()=>Ii),D(Fe,X)};let i=M(yi([])),n=M(null),s=M("{}"),r=M(!1),a=M(null);const c="she-db-selected-view";let u=M(yi([])),f=M(yi(localStorage.getItem(c))),g=M("#"),p=M("// emit(this.someProperty)"),w=M(""),m=M(""),x=M(!1),k=M(!1),E=M(null),P=M(!1),A=M(null),$=M("she/db/view/");const H="she-db-panel";let ie=M(yi(localStorage.getItem(H)??"docs")),J=M(""),ue=M(!1),he=M(null),We=M(""),xe=M(!1),rt=M(null);const pt="she-db-sidebar-width";let ve=M(yi(parseInt(localStorage.getItem(pt)??"220",10))),dt=!1,gt=0,Pt=0;const fe="she-db-chat-width",Et="she-db-chat-open";let Oe=M(localStorage.getItem(Et)==="true"),Te=M(yi(parseInt(localStorage.getItem(fe)??"320",10))),ut=!1,Wt=0,Zt=0;const Mt=wt(()=>d(f)?{id:d(f),filter:d(g),map:d(p),reduce:d(w)}:null);function Lt(Fe){Fe.filter!==void 0&&y(g,Fe.filter,!0),Fe.map!==void 0&&y(p,Fe.map,!0),Fe.reduce!==void 0&&y(w,Fe.reduce,!0)}zn(()=>{localStorage.setItem(Et,String(d(Oe)))}),zn(()=>{localStorage.setItem(H,d(ie))}),zn(()=>{d(f)?localStorage.setItem(c,d(f)):localStorage.removeItem(c)});function At(Fe){dt=!0,gt=Fe.clientX,Pt=d(ve),Fe.preventDefault()}function kt(Fe){dt&&y(ve,Math.max(140,Math.min(500,Pt+Fe.clientX-gt)),!0),ut&&y(Te,Math.max(240,Math.min(600,Zt-(Fe.clientX-Wt))),!0)}function Si(){dt&&(dt=!1,localStorage.setItem(pt,String(d(ve)))),ut&&(ut=!1,localStorage.setItem(fe,String(d(Te))))}function hi(Fe){ut=!0,Wt=Fe.clientX,Zt=d(Te),Fe.preventDefault()}async function Di(){try{y(i,await ON(),!0)}catch{}}async function Fi(){try{y(u,await FN(),!0)}catch{}}async function Ri(Fe){y(n,Fe,!0),y(a,null),y(r,!0);try{const X=await k7(Fe);y(s,JSON.stringify(X,null,2),!0)}catch(X){y(a,X instanceof Error?X.message:String(X),!0)}finally{y(r,!1)}}async function Ni(){if(d(n)){y(a,null);try{const Fe=JSON.parse(d(s));await AD(d(n),Fe)}catch(Fe){y(a,Fe instanceof Error?Fe.message:String(Fe),!0)}}}let Ii;async function ci(){if(d(n)&&await Ii.show(`Delete document "${d(n)}"?`,{confirm:"Delete",danger:!0}))try{await L7(d(n)),y(n,null),y(s,"{}")}catch(Fe){y(a,Fe instanceof Error?Fe.message:String(Fe),!0)}}async function vi(){const Fe=d(J).trim();if(Fe){y(he,null);try{await AD(Fe,{}),y(ue,!1),y(J,""),await Ri(Fe)}catch(X){y(he,X instanceof Error?X.message:String(X),!0)}}}async function it(Fe){y(f,Fe,!0),y(A,null),y(P,!0),y(E,null);try{const X=await I7(Fe);y(g,X.filter??"",!0),y(p,X.map,!0),y(w,X.reduce??"",!0),y(m,X.description??"",!0),y(x,X.mqttpub??!1,!0),y(k,X.retain??!1,!0),y(E,await hS(Fe).catch(()=>null),!0)}catch(X){y(A,X instanceof Error?X.message:String(X),!0)}finally{y(P,!1)}}async function zt(){if(d(f)){y(A,null);try{const Fe={map:d(p)};d(g).trim()&&(Fe.filter=d(g).trim()),d(w).trim()&&(Fe.reduce=d(w).trim()),d(m).trim()&&(Fe.description=d(m).trim()),d(x)&&(Fe.mqttpub=!0),d(k)&&(Fe.retain=!0),await OD(d(f),Fe)}catch(Fe){y(A,Fe instanceof Error?Fe.message:String(Fe),!0)}}}async function gi(){if(d(f))try{y(E,await hS(d(f)),!0)}catch(Fe){y(A,Fe instanceof Error?Fe.message:String(Fe),!0)}}async function Ti(){if(d(f)&&await Ii.show(`Delete view "${d(f)}"?`,{confirm:"Delete",danger:!0}))try{await D7(d(f)),y(f,null),y(g,""),y(p,"// emit(this.someProperty)"),y(w,""),y(m,""),y(x,!1),y(k,!1),y(E,null)}catch(Fe){y(A,Fe instanceof Error?Fe.message:String(Fe),!0)}}async function Zi(){if(!d(We).trim())return;const Fe=d(We).trim();y(rt,null);try{await OD(Fe,{map:"// emit(this.someProperty)"}),y(xe,!1),y(We,""),await Fi(),await it(Fe)}catch(X){y(rt,X instanceof Error?X.message:String(X),!0)}}let Bi=M(""),zi=M(""),vn=wt(()=>[...d(i)].filter(Fe=>!d(Bi)||Fe.toLowerCase().includes(d(Bi).toLowerCase())).sort()),ln=wt(()=>[...d(u)].filter(Fe=>!d(zi)||Fe.toLowerCase().includes(d(zi).toLowerCase())).sort());ao(()=>{Di(),Fi().then(()=>{d(f)&&d(u).includes(d(f))?it(d(f)):y(f,null)}),Dl().then(ke=>{const $e=ke.dbPrefix||"she/db/",N=$e.endsWith("/")?$e:$e+"/";y($,N+"view/")}).catch(()=>{});const Fe=kr("db:ids",ke=>{y(i,ke.ids??[],!0)}),X=kr("db:viewIds",ke=>{y(u,ke.ids??[],!0)}),ee=kr("db:change",async ke=>{const $e=ke.id;d(n)===$e&&(ke.doc===null?(y(n,null),y(s,"{}")):y(s,JSON.stringify(ke.doc,null,2),!0))}),de=kr("db:viewUpdate",async ke=>{const $e=ke.id;d(f)===$e&&y(E,await hS($e).catch(()=>null),!0)});return()=>{Fe(),X(),ee(),de()}});var Pi=cX(),yn=v(Pi),Re=v(yn);let jt;var di=b(Re,2);let qt;var Le=b(di,2);{var It=Fe=>{var X=GZ();let ee;j(()=>{ee=Tt(X,1,"ai-toggle svelte-rrt0o",null,ee,{"ai-open":d(Oe)}),Ai(X,"title",d(Oe)?"Close AI assistant":"Open AI assistant")}),U("click",X,()=>y(Oe,!d(Oe))),D(Fe,X)};W(Le,Fe=>{d(ie)==="views"&&Fe(It)})}var ai=b(yn,2);{var pi=Fe=>{var X=YZ(),ee=v(X);let de;var ke=v(ee),$e=v(ke),N=b(ke,2);{var Q=Ee=>{var Se=KZ(),lt=Ct(Se),Bt=v(lt),St=b(Bt,2),Dt=b(lt,2);{var Ft=ne=>{var _e=uE(),Be=v(_e);j(()=>O(Be,d(he))),D(ne,_e)};W(Dt,ne=>{d(he)&&ne(Ft)})}U("keydown",Bt,ne=>ne.key==="Enter"&&vi()),ti(Bt,()=>d(J),ne=>y(J,ne)),U("click",St,vi),D(Ee,Se)};W(N,Ee=>{d(ue)&&Ee(Q)})}var oe=b(N,2),Ie=v(oe),De=b(oe,2);mi(De,20,()=>d(vn),Ee=>Ee,(Ee,Se)=>{var lt=hE();let Bt;var St=v(lt);j(()=>{Bt=Tt(lt,1,"flat-item svelte-rrt0o",null,Bt,{"active-item":d(n)===Se}),O(St,Se)}),U("click",lt,()=>Ri(Se)),D(Ee,lt)});var B=b(ee,2),q=b(B,2),Y=v(q);{var me=Ee=>{var Se=XZ(),lt=Ct(Se),Bt=v(lt),St=v(Bt),Dt=b(Bt,2),Ft=b(Dt,2),ne=b(lt,2);{var _e=Ye=>{var Rt=fE(),ri=v(Rt);j(()=>O(ri,d(a))),D(Ye,Rt)};W(ne,Ye=>{d(a)&&Ye(_e)})}var Be=b(ne,2);{var at=Ye=>{var Rt=gE();D(Ye,Rt)},nt=Ye=>{var Rt=ZZ(),ri=v(Rt);gS(ri,{language:"json",get value(){return d(s)},set value(fi){y(s,fi,!0)}}),D(Ye,Rt)};W(Be,Ye=>{d(r)?Ye(at):Ye(nt,-1)})}j(()=>O(St,d(n))),U("click",Dt,Ni),U("click",Ft,ci),D(Ee,Se)},Qe=Ee=>{t(Ee)};W(Y,Ee=>{d(n)?Ee(me):Ee(Qe,-1)})}j(()=>de=Fo(ee,"",de,{width:`${d(ve)??""}px`})),U("click",$e,()=>{y(ue,!d(ue)),y(he,null)}),ti(Ie,()=>d(Bi),Ee=>y(Bi,Ee)),U("mousedown",B,At),D(Fe,X)},_i=Fe=>{var X=lX(),ee=v(X);let de;var ke=v(ee),$e=v(ke),N=b(ke,2);{var Q=lt=>{var Bt=QZ(),St=Ct(Bt),Dt=v(St),Ft=b(Dt,2),ne=b(St,2);{var _e=Be=>{var at=uE(),nt=v(at);j(()=>O(nt,d(rt))),D(Be,at)};W(ne,Be=>{d(rt)&&Be(_e)})}U("keydown",Dt,Be=>Be.key==="Enter"&&Zi()),ti(Dt,()=>d(We),Be=>y(We,Be)),U("click",Ft,Zi),D(lt,Bt)};W(N,lt=>{d(xe)&<(Q)})}var oe=b(N,2),Ie=v(oe),De=b(oe,2);mi(De,20,()=>d(ln),lt=>lt,(lt,Bt)=>{var St=hE();let Dt;var Ft=v(St);j(()=>{Dt=Tt(St,1,"flat-item svelte-rrt0o",null,Dt,{"active-item":d(f)===Bt}),O(Ft,Bt)}),U("click",St,()=>it(Bt)),D(lt,St)});var B=b(ee,2),q=b(B,2),Y=v(q);{var me=lt=>{var Bt=rX(),St=Ct(Bt),Dt=v(St),Ft=v(Dt),ne=b(Dt,2),_e=b(ne,2),Be=b(_e,2),at=b(St,2);{var nt=fi=>{var Ci=fE(),en=v(Ci);j(()=>O(en,d(A))),D(fi,Ci)};W(at,fi=>{d(A)&&fi(nt)})}var Ye=b(at,2);{var Rt=fi=>{var Ci=gE();D(fi,Ci)},ri=fi=>{var Ci=oX(),en=v(Ci),fn=b(v(en),2),cn=v(fn),ki=b(en,2),Xi=b(v(ki),2),z=v(Xi),te=b(ki,2),Ge=b(v(te),2),Je=v(Ge);gS(Je,{language:"javascript",get value(){return d(p)},set value(tt){y(p,tt,!0)}});var ge=b(te,2),be=b(v(ge),2),vt=v(be);gS(vt,{language:"javascript",get value(){return d(w)},set value(tt){y(w,tt,!0)}});var Ei=b(ge,2),Ne=v(Ei),Ke=v(Ne),Vt=b(Ke,4),et=b(v(Vt)),bt=v(et),Jt=b(Ne,2);{var K=tt=>{var He=JZ(),Pe=v(He);Is(Pe,()=>d(k),$t=>y(k,$t)),D(tt,He)};W(Jt,tt=>{d(x)&&tt(K)})}var se=b(Ei,2);{var Ue=tt=>{var He=sX(),Pe=v(He),$t=b(v(Pe));{var xt=ze=>{var Ve=eX();D(ze,Ve)},Ze=ze=>{var Ve=tX(),je=v(Ve);j(()=>O(je,`${d(E).length??0??""} items · rev ${d(E)._rev??""}`)),D(ze,Ve)};W($t,ze=>{d(E).error?ze(xt):ze(Ze,-1)})}var Ut=b(Pe,2);{var st=ze=>{var Ve=iX(),je=v(Ve);j(()=>O(je,d(E).error)),D(ze,Ve)},Me=ze=>{var Ve=nX(),je=v(Ve);j(Nt=>O(je,Nt),[()=>JSON.stringify(d(E).result,null,2)]),D(ze,Ve)};W(Ut,ze=>{d(E).error?ze(st):ze(Me,-1)})}D(tt,He)};W(se,tt=>{d(E)&&tt(Ue)})}j(()=>O(bt,`${d($)??""}${d(f)??""} on every update`)),ti(cn,()=>d(m),tt=>y(m,tt)),ti(z,()=>d(g),tt=>y(g,tt)),Is(Ke,()=>d(x),tt=>y(x,tt)),D(fi,Ci)};W(Ye,fi=>{d(P)?fi(Rt):fi(ri,-1)})}j(()=>O(Ft,d(f))),U("click",ne,zt),U("click",_e,gi),U("click",Be,Ti),D(lt,Bt)},Qe=lt=>{t(lt)};W(Y,lt=>{d(f)?lt(me):lt(Qe,-1)})}var Ee=b(q,2);{var Se=lt=>{var Bt=aX(),St=Ct(Bt),Dt=b(St,2);let Ft;var ne=v(Dt);$Z(ne,{get currentView(){return d(Mt)},onApplyView:Lt}),j(()=>Ft=Fo(Dt,"",Ft,{width:`${d(Te)??""}px`})),U("mousedown",St,hi),D(lt,Bt)};W(Ee,lt=>{d(Oe)&<(Se)})}j(()=>de=Fo(ee,"",de,{width:`${d(ve)??""}px`})),U("click",$e,()=>{y(xe,!d(xe)),y(rt,null)}),ti(Ie,()=>d(zi),lt=>y(zi,lt)),U("mousedown",B,At),D(Fe,X)};W(ai,Fe=>{d(ie)==="docs"?Fe(pi):Fe(_i,-1)})}j(()=>{jt=Tt(Re,1,"svelte-rrt0o",null,jt,{active:d(ie)==="docs"}),qt=Tt(di,1,"svelte-rrt0o",null,qt,{active:d(ie)==="views"})}),U("mousemove",Pi,kt),U("mouseup",Pi,Si),cs("mouseleave",Pi,Si),U("click",Re,()=>y(ie,"docs")),U("click",di,()=>y(ie,"views")),D(o,Pi),As()}Ks(["mousemove","mouseup","click","keydown","mousedown"]);var uX=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),hX=T('<label class="svelte-1ua3isv">Pairing Code / QR <input type="text" placeholder="MT:..." class="svelte-1ua3isv"/></label>'),pE=T('<p class="err svelte-1ua3isv"> </p>'),fX=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>'),gX=T('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),pX=T('<span class="device-name svelte-1ua3isv"> </span>'),_X=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>'),mX=T('<li class="empty svelte-1ua3isv">No paired devices</li>'),vX=T('<p class="info svelte-1ua3isv">Loading…</p>'),bX=T('<p class="device-subtitle svelte-1ua3isv"> </p>'),yX=T('<span class="ep-chip svelte-1ua3isv"> </span>'),wX=T('<span class="attr-id svelte-1ua3isv"> </span>'),SX=T('<button class="attr-action-btn svelte-1ua3isv"> </button>'),CX=T('<div class="attr-actions svelte-1ua3isv"></div>'),xX=T('<span class="cmd-sep svelte-1ua3isv">,</span>'),kX=T('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),LX=T('<span class="cmd-id svelte-1ua3isv"> </span>'),IX=T("<!> <!>",1),DX=T('<span class="cmd-list svelte-1ua3isv"></span>'),EX=T(' <span class="cmd-id svelte-1ua3isv"> </span>',1),TX=T('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),PX=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>'),MX=T('<th class="svelte-1ua3isv"> </th>'),RX=T('<td class="svelte-1ua3isv"> </td>'),NX=T('<tr class="svelte-1ua3isv"></tr>'),AX=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),OX=T('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),FX=T('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),HX=T('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),WX=T('<span class="attr-val svelte-1ua3isv"> </span>'),BX=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>'),zX=T('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),VX=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>'),jX=T('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),$X=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>'),UX=T('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),qX=T('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),GX=T('<span class="stream-badge svelte-1ua3isv"> </span>'),KX=T('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),pS=T(' <span class="e-sub svelte-1ua3isv"> </span>',1),ZX=T('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),XX=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),YX=T('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),QX=T('<div class="stream-body svelte-1ua3isv"><!></div>'),JX=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 eY(o,e){Ns(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(X,ee,de,ke,$e){try{await B7(X,ee,de,ke,$e)}catch(N){console.error("matter command failed",N)}}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(X,ee){const de=n[X];return ee.map(ke=>{const $e=typeof ke=="number"?ke:Number(ke);return{id:$e,name:(de==null?void 0:de[$e])??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},c={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(X){return"0x"+X.toString(16).toUpperCase().padStart(4,"0")}let f=M(yi([])),g=yi(new Map);function p(X){if(X==null)return"—";if(typeof X=="boolean"||typeof X=="number")return String(X);if(typeof X=="string")return X.length>50?X.slice(0,47)+"…":X;const ee=JSON.stringify(X);return ee.length>60?ee.slice(0,57)+"…":ee}function w(X){return X==null?"—":typeof X=="boolean"||typeof X=="number"?String(X):typeof X=="string"?X:JSON.stringify(X)}function m(X){return X!==null&&typeof X=="object"&&!Array.isArray(X)}function x(X){return Array.isArray(X)&&X.length>0&&X.every(m)}function k(X,ee){return!!(ee==="attributeList"||Array.isArray(X)&&X.length===0||m(X)&&Object.keys(X).length===0)}function E(X){return new Date(X).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const P=500,A=20,$=32;let H=0,ie=M(yi([])),J=M(!0),ue=M(180),he=wt(()=>{const X=Math.max(1,Math.floor((d(ue)-$)/A)+1);return d(ie).slice(0,X)});function We(X){X.preventDefault();const ee=X.clientY,de=d(ue);function ke(N){y(ue,Math.max(60,Math.min(600,de+ee-N.clientY)),!0)}function $e(){document.removeEventListener("mousemove",ke),document.removeEventListener("mouseup",$e)}document.addEventListener("mousemove",ke),document.addEventListener("mouseup",$e)}let xe=M(null),rt=M(!1),pt=M(null),ve=M(!1),dt=M("passcode"),gt=M(""),Pt=M(""),fe=M(""),Et=M(!1),Oe=M(null),Te=M("");const ut="she:matter:selectedNodeId";async function Wt(){try{y(f,await WN(),!0);for(const X of d(f))Xm(X.nodeId).then(ee=>{g.set(X.nodeId,ee)}).catch(()=>{});if(d(f).length>0&&!d(xe)){const X=localStorage.getItem(ut),ee=X&&d(f).find(de=>de.nodeId===X)?X:d(f)[0].nodeId;Zt(ee)}}catch{y(f,[],!0)}}async function Zt(X){y(rt,!0),y(pt,null);try{y(xe,await Xm(X),!0),g.set(X,d(xe)),localStorage.setItem(ut,X)}catch(ee){y(pt,ee instanceof Error?ee.message:String(ee),!0)}finally{y(rt,!1)}}let Mt;async function Lt(X){var ee;if(await Mt.show(`Unpair device ${X}?`,{confirm:"Unpair",danger:!0}))try{await W7(X),((ee=d(xe))==null?void 0:ee.nodeId)===X&&y(xe,null),await Wt()}catch(de){y(pt,de instanceof Error?de.message:String(de),!0)}}async function At(){y(Et,!0),y(Oe,null);try{let X;d(dt)==="passcode"?(X={passcode:Number(d(gt))},d(Pt)&&(X={...X,discriminator:Number(d(Pt))})):X={pairingCode:d(fe).trim()},d(Te).trim()&&(X={...X,discoveryAddress:d(Te).trim()}),await H7(X),y(ve,!1),y(gt,""),y(Pt,""),y(fe,""),y(Te,""),await Wt()}catch(X){y(Oe,X instanceof Error?X.message:String(X),!0)}finally{y(Et,!1)}}ao(()=>{Wt()});const kt=kr("matter:deviceList",X=>{if(!Array.isArray(X.devices))return;const ee=X.devices;for(const de of ee)g.has(de.nodeId)||Xm(de.nodeId).then(ke=>{g.set(de.nodeId,ke)}).catch(()=>{});y(f,ee,!0)}),Si=kr("matter:deviceStatus",X=>{if(X.nodeId===void 0)return;const ee=String(X.nodeId),de=!!X.online;y(f,d(f).map(ke=>ke.nodeId===ee?{...ke,online:de}:ke),!0),y(ie,[{id:H++,kind:"status",nodeId:ee,online:de,ts:Date.now()},...d(ie).slice(0,P-1)],!0)}),hi=kr("matter:attr",X=>{const ee=String(X.nodeId),de=X.endpointId,ke=String(X.clusterName),$e=String(X.attrName),N=X.value;if(d(xe)&&d(xe).nodeId===ee){const oe=d(xe).endpoints.find(De=>De.endpointId===de),Ie=oe==null?void 0:oe.clusters.find(De=>De.name===ke);Ie&&(Ie.attrs[$e]=N)}const Q=g.get(ee);if(Q){const oe=Q.endpoints.find(De=>De.endpointId===de),Ie=oe==null?void 0:oe.clusters.find(De=>De.name===ke);Ie&&(Ie.attrs[$e]=N)}y(ie,[{id:H++,kind:"attr",nodeId:ee,endpointId:de,clusterName:ke,attrName:$e,value:N,ts:X.ts??Date.now()},...d(ie).slice(0,P-1)],!0)});Wy(()=>{kt(),Si(),hi()});var Di=JX(),Fi=Ct(Di);Ds(Jf(Fi,{}),X=>Mt=X,()=>Mt);var Ri=b(Fi,2),Ni=v(Ri),Ii=v(Ni),ci=v(Ii),vi=b(v(ci),2),it=b(ci,2);{var zt=X=>{var ee=fX(),de=v(ee),ke=v(de);let $e;var N=b(ke,2);let Q;var oe=b(de,2);{var Ie=Se=>{var lt=uX(),Bt=Ct(lt),St=b(v(Bt)),Dt=b(Bt,2),Ft=b(v(Dt));ti(St,()=>d(gt),ne=>y(gt,ne)),ti(Ft,()=>d(Pt),ne=>y(Pt,ne)),D(Se,lt)},De=Se=>{var lt=hX(),Bt=b(v(lt));ti(Bt,()=>d(fe),St=>y(fe,St)),D(Se,lt)};W(oe,Se=>{d(dt)==="passcode"?Se(Ie):Se(De,-1)})}var B=b(oe,2),q=b(v(B)),Y=b(B,2);{var me=Se=>{var lt=pE(),Bt=v(lt);j(()=>O(Bt,d(Oe))),D(Se,lt)};W(Y,Se=>{d(Oe)&&Se(me)})}var Qe=b(Y,2),Ee=v(Qe);j(()=>{$e=Tt(ke,1,"svelte-1ua3isv",null,$e,{active:d(dt)==="passcode"}),Q=Tt(N,1,"svelte-1ua3isv",null,Q,{active:d(dt)==="pairingCode"}),Qe.disabled=d(Et),O(Ee,d(Et)?"Commissioning…":"Commission")}),U("click",ke,()=>y(dt,"passcode")),U("click",N,()=>y(dt,"pairingCode")),ti(q,()=>d(Te),Se=>y(Te,Se)),U("click",Qe,At),D(X,ee)};W(it,X=>{d(ve)&&X(zt)})}var gi=b(it,2),Ti=v(gi);mi(Ti,17,()=>d(f),X=>X.nodeId,(X,ee)=>{var de=_X();let ke;var $e=v(de),N=v($e);let Q;var oe=b(N,2),Ie=v(oe);{var De=Y=>{var me=gX(),Qe=Ct(me),Ee=v(Qe),Se=b(Qe,2),lt=v(Se);j(()=>{O(Ee,d(ee).name),O(lt,`#${d(ee).nodeId??""}`)}),D(Y,me)},B=Y=>{var me=pX(),Qe=v(me);j(()=>O(Qe,`Node ${d(ee).nodeId??""}`)),D(Y,me)};W(Ie,Y=>{d(ee).name?Y(De):Y(B,-1)})}var q=b($e,2);j(()=>{var Y;ke=Tt(de,1,"svelte-1ua3isv",null,ke,{selected:((Y=d(xe))==null?void 0:Y.nodeId)===d(ee).nodeId}),Q=Tt(N,1,"status-dot svelte-1ua3isv",null,Q,{online:d(ee).online})}),U("click",$e,()=>Zt(d(ee).nodeId)),U("click",q,()=>Lt(d(ee).nodeId)),D(X,de)});var Zi=b(Ti,2);{var Bi=X=>{var ee=mX();D(X,ee)};W(Zi,X=>{d(f).length===0&&X(Bi)})}var zi=b(Ii,2),vn=v(zi);{var ln=X=>{var ee=vX();D(X,ee)},Pi=X=>{var ee=pE(),de=v(ee);j(()=>O(de,d(pt))),D(X,ee)},yn=X=>{var ee=UX(),de=Ct(ee),ke=v(de),$e=v(ke),N=b(ke,2);{var Q=B=>{var q=bX(),Y=v(q);j(()=>O(Y,d(xe).subtitle)),D(B,q)};W(N,B=>{d(xe).subtitle&&B(Q)})}var oe=b(N,2),Ie=v(oe),De=b(de,2);mi(De,17,()=>d(xe).endpoints,B=>B.endpointId,(B,q)=>{var Y=$X(),me=v(Y),Qe=v(me),Ee=b(Qe),Se=v(Ee),lt=b(Ee,2);mi(lt,21,()=>d(q).clusters,Ji,(Ft,ne)=>{var _e=yX(),Be=v(_e);j(()=>O(Be,d(ne).name)),D(Ft,_e)});var Bt=b(me,2);{var St=Ft=>{var ne=VX(),_e=b(v(ne));mi(_e,21,()=>d(q).clusters,Ji,(Be,at)=>{var nt=zX(),Ye=Ct(nt),Rt=v(Ye),ri=v(Rt),fi=b(Ye,2);mi(fi,17,()=>Object.entries(d(at).attrs),Ji,(Ci,en)=>{var fn=wt(()=>RL(d(en),2));let cn=()=>d(fn)[0],ki=()=>d(fn)[1];var Xi=Rs(),z=Ct(Xi);{var te=Je=>{const ge=wt(()=>{var Ve;return(Ve=t[d(at).name])==null?void 0:Ve[cn()]}),be=wt(()=>(cn()==="acceptedCommandList"||cn()==="generatedCommandList")&&Array.isArray(ki())),vt=wt(()=>{var Ve;return((Ve=c[d(at).name])==null?void 0:Ve[cn()])??a[cn()]});var Ei=BX(),Ne=v(Ei),Ke=v(Ne),Vt=v(Ke),et=b(Ke);{var bt=Ve=>{var je=wX(),Nt=v(je);j(we=>O(Nt,`(${we??""})`),[()=>u(d(vt))]),D(Ve,je)};W(et,Ve=>{d(vt)!==void 0&&Ve(bt)})}var Jt=b(Ne),K=v(Jt);{var se=Ve=>{var je=CX();mi(je,21,()=>d(ge),Ji,(Nt,we)=>{var ot=SX(),_t=v(ot);j(()=>O(_t,d(we).label)),U("click",ot,()=>i(d(xe).nodeId,d(q).endpointId,d(at).name,d(we).command,d(we).args)),D(Nt,ot)}),D(Ve,je)};W(K,Ve=>{d(ge)&&Ve(se)})}var Ue=b(Jt),tt=v(Ue);{var He=Ve=>{var je=DX();mi(je,21,()=>s(d(at).name,ki()),Ji,(Nt,we,ot)=>{var _t=IX(),mt=Ct(_t);{var Xe=tn=>{var En=xX();D(tn,En)};W(mt,tn=>{ot>0&&tn(Xe)})}var Yt=b(mt,2);{var si=tn=>{var En=kX(),Qn=Ct(En),Ui=v(Qn),bi=b(Qn),wn=v(bi);j(()=>{O(Ui,d(we).name),O(wn,`(${d(we).id??""})`)}),D(tn,En)},un=tn=>{var En=LX(),Qn=v(En);j(()=>O(Qn,d(we).id)),D(tn,En)};W(Yt,tn=>{d(we).name?tn(si):tn(un,-1)})}D(Nt,_t)}),D(Ve,je)},Pe=Ve=>{var je=PX(),Nt=b(v(je));mi(Nt,21,ki,Ji,(we,ot)=>{const _t=wt(()=>d(ot)),mt=wt(()=>d(_t).deviceType),Xe=wt(()=>r[d(mt)]);var Yt=TX(),si=v(Yt),un=v(si);{var tn=bi=>{var wn=EX(),dn=Ct(wn),rs=b(dn),co=v(rs);j(qo=>{O(dn,`${d(Xe)??""} `),O(co,`(${qo??""})`)},[()=>u(d(mt))]),D(bi,wn)},En=bi=>{var wn=sa();j(dn=>O(wn,dn),[()=>u(d(mt))]),D(bi,wn)};W(un,bi=>{d(Xe)?bi(tn):bi(En,-1)})}var Qn=b(si),Ui=v(Qn);j(bi=>O(Ui,bi),[()=>w(d(_t).revision)]),D(we,Yt)}),D(Ve,je)},$t=wt(()=>cn()==="deviceTypeList"&&Array.isArray(ki())),xt=Ve=>{const je=wt(()=>[...new Set(ki().flatMap(mt=>Object.keys(mt)))]);var Nt=AX(),we=v(Nt),ot=v(we);mi(ot,21,()=>d(je),Ji,(mt,Xe)=>{var Yt=MX(),si=v(Yt);j(()=>O(si,d(Xe))),D(mt,Yt)});var _t=b(we);mi(_t,21,ki,Ji,(mt,Xe)=>{var Yt=NX();mi(Yt,21,()=>d(je),Ji,(si,un)=>{var tn=RX(),En=v(tn);j(Qn=>O(En,Qn),[()=>w(d(Xe)[d(un)])]),D(si,tn)}),D(mt,Yt)}),D(Ve,Nt)},Ze=wt(()=>x(ki())),Ut=Ve=>{var je=FX(),Nt=v(je);mi(Nt,21,()=>Object.entries(ki()),Ji,(we,ot)=>{var _t=wt(()=>RL(d(ot),2));let mt=()=>d(_t)[0],Xe=()=>d(_t)[1];var Yt=OX(),si=v(Yt),un=v(si),tn=b(si),En=v(tn);j(Qn=>{O(un,mt()),O(En,Qn)},[()=>w(Xe())]),D(we,Yt)}),D(Ve,je)},st=wt(()=>m(ki())),Me=Ve=>{var je=HX(),Nt=v(je);j(()=>{Ai(je,"href",ki()),O(Nt,ki())}),D(Ve,je)},ze=Ve=>{var je=WX(),Nt=v(je);j(we=>O(Nt,we),[()=>w(ki())]),D(Ve,je)};W(tt,Ve=>{d(be)?Ve(He):d($t)?Ve(Pe,1):d(Ze)?Ve(xt,2):d(st)?Ve(Ut,3):(cn()==="productUrl"||cn()==="productURL")&&typeof ki()=="string"?Ve(Me,4):Ve(ze,-1)})}j(()=>{Ai(Ne,"title",cn()),O(Vt,cn())}),D(Je,Ei)},Ge=wt(()=>!k(ki(),cn()));W(z,Je=>{d(Ge)&&Je(te)})}D(Ci,Xi)}),j(()=>O(ri,d(at).name)),D(Be,nt)}),D(Ft,ne)},Dt=Ft=>{var ne=jX();D(Ft,ne)};W(Bt,Ft=>{d(q).clusters.length>0?Ft(St):Ft(Dt,-1)})}j(()=>{O(Qe,`${d(q).name??`Endpoint ${d(q).endpointId}`??""} `),O(Se,`ep${d(q).endpointId??""}`)}),D(B,Y)}),j(()=>{O($e,d(xe).name??`Node ${d(xe).nodeId}`),O(Ie,`Node ID: ${d(xe).nodeId??""}`)}),D(X,ee)},Re=X=>{var ee=qX();D(X,ee)};W(vn,X=>{d(rt)?X(ln):d(pt)?X(Pi,1):d(xe)?X(yn,2):X(Re,-1)})}var jt=b(Ni,2),di=v(jt),qt=b(di,2),Le=b(v(qt),2);{var It=X=>{var ee=GX(),de=v(ee);j(()=>O(de,d(ie).length)),D(X,ee)};W(Le,X=>{!d(J)&&d(ie).length>0&&X(It)})}var ai=b(Le,2),pi=v(ai),_i=b(qt,2);{var Fe=X=>{var ee=QX(),de=v(ee);{var ke=N=>{var Q=KX();D(N,Q)},$e=N=>{var Q=Rs(),oe=Ct(Q);mi(oe,17,()=>d(he),Ie=>Ie.id,(Ie,De)=>{const B=wt(()=>{var St,Dt;return((St=g.get(d(De).nodeId))==null?void 0:St.name)??((Dt=d(f).find(Ft=>Ft.nodeId===d(De).nodeId))==null?void 0:Dt.name)??null}),q=wt(()=>{var St,Dt;return d(De).endpointId!==void 0?((Dt=(St=g.get(d(De).nodeId))==null?void 0:St.endpoints.find(Ft=>Ft.endpointId===d(De).endpointId))==null?void 0:Dt.name)??null:null}),Y=wt(()=>d(De).attrName??d(De).clusterName);var me=YX(),Qe=v(me),Ee=v(Qe),Se=b(Qe,2);{var lt=St=>{var Dt=ZX(),Ft=b(Ct(Dt),2),ne=v(Ft),_e=b(ne);{var Be=Rt=>{var ri=pS(),fi=b(Ct(ri)),Ci=v(fi);j(()=>O(Ci,`(#${d(De).nodeId??""})`)),D(Rt,ri)};W(_e,Rt=>{d(B)&&Rt(Be)})}var at=b(Ft,2);let nt;var Ye=v(at);j(()=>{O(ne,d(B)??`#${d(De).nodeId}`),nt=Tt(at,1,"e-val svelte-1ua3isv",null,nt,{"e-online":d(De).online,"e-offline":!d(De).online}),O(Ye,d(De).online?"online":"offline")}),D(St,Dt)},Bt=St=>{var Dt=XX(),Ft=b(Ct(Dt),2),ne=v(Ft),_e=b(ne);{var Be=ki=>{var Xi=pS(),z=b(Ct(Xi)),te=v(z);j(()=>O(te,`(#${d(De).nodeId??""})`)),D(ki,Xi)};W(_e,ki=>{d(B)&&ki(Be)})}var at=b(Ft,2),nt=v(at),Ye=b(nt);{var Rt=ki=>{var Xi=pS(),z=b(Ct(Xi)),te=v(z);j(()=>O(te,`(ep ${d(De).endpointId??""})`)),D(ki,Xi)};W(Ye,ki=>{d(q)&&ki(Rt)})}var ri=b(at,2),fi=v(ri),Ci=b(ri,2),en=v(Ci),fn=b(Ci,2),cn=v(fn);j(ki=>{O(ne,d(B)??`#${d(De).nodeId}`),O(nt,d(q)??`ep${d(De).endpointId}`),O(fi,d(De).clusterName),O(en,d(Y)),O(cn,ki)},[()=>p(d(De).value)]),D(St,Dt)};W(Se,St=>{d(De).kind==="status"?St(lt):St(Bt,-1)})}j(St=>O(Ee,St),[()=>E(d(De).ts)]),D(Ie,me)}),D(N,Q)};W(de,N=>{d(he).length===0?N(ke):N($e,-1)})}D(X,ee)};W(_i,X=>{d(J)&&X(Fe)})}j(()=>{Fo(jt,d(J)?`height: ${d(ue)}px;`:""),O(pi,d(J)?"▾":"▸")}),U("click",vi,()=>y(ve,!d(ve))),U("mousedown",di,We),U("click",ai,()=>{y(J,!d(J))}),D(o,Di),As()}Ks(["click","mousedown"]);var tY=T("<button>›</button>"),iY=T('<span class="chev-ph svelte-1vejtrc"></span>'),nY=T('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),sY=T('<div class="tc svelte-1vejtrc"></div>'),oY=T('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!></div> <!></div>'),rY=T("<option></option>"),aY=T('<span class="pub-ok svelte-1vejtrc">✓</span>'),lY=T('<span class="pub-err svelte-1vejtrc"> </span>'),cY=T('<div class="info svelte-1vejtrc">Loading…</div>'),dY=T('<div class="info err svelte-1vejtrc"> </div>'),uY=T('<div class="info svelte-1vejtrc">No topics match.</div>'),hY=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>'),fY=T('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),gY=T('<div class="info svelte-1vejtrc">No topics yet.</div>'),pY=T('<div class="tree-wrap svelte-1vejtrc"><!></div>'),_Y=T('<span class="stream-badge"> </span>'),mY=T('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),vY=T('<span class="s-ret svelte-1vejtrc" title="retained snapshot">⊛</span>'),bY=T('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),yY=T('<div class="stream-body svelte-1vejtrc"><!></div>'),wY=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),SY=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>'),CY=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),xY=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 kY(o,e){Ns(e,!0);const t=(ne,_e=Ny)=>{const Be=wt(()=>d(g).has(_e().path)),at=wt(()=>d(a)>=0&&_e().children.size>0),nt=wt(()=>d(a)>=0&&_e().isLeaf&&!n.has(_e().path));var Ye=oY(),Rt=v(Ye);let ri;var fi=v(Rt);{var Ci=Je=>{var ge=tY();let be;j(()=>{be=Tt(ge,1,"chev svelte-1vejtrc",null,be,{open:d(Be)}),Ai(ge,"aria-label",d(Be)?"Collapse":"Expand")}),U("click",ge,()=>p(_e().path)),D(Je,ge)},en=Je=>{var ge=iY();D(Je,ge)};W(fi,Je=>{d(at)?Je(Ci):Je(en,-1)})}var fn=b(fi,2),cn=v(fn),ki=b(fn,2);{var Xi=Je=>{var ge=nY(),be=Ct(ge),vt=v(be),Ei=b(be,2),Ne=v(Ei);j((Ke,Vt,et)=>{Ai(be,"title",Ke),O(vt,Vt),O(Ne,et)},[()=>{var Ke;return Ri((Ke=ci(_e().path))==null?void 0:Ke.val)},()=>{var Ke;return Ri((Ke=ci(_e().path))==null?void 0:Ke.val)},()=>{var Ke;return((Ke=ci(_e().path))==null?void 0:Ke.ts)!=null?Ni(ci(_e().path).ts):""}]),D(Je,ge)},z=wt(()=>_e().isLeaf&&i.has(_e().path));W(ki,Je=>{d(z)&&Je(Xi)})}var te=b(Rt,2);{var Ge=Je=>{var ge=sY();mi(ge,21,()=>[..._e().children.values()].sort((be,vt)=>be.seg.localeCompare(vt.seg)),be=>be.path,(be,vt)=>{t(be,()=>d(vt))}),D(Je,ge)};W(te,Je=>{d(at)&&d(Be)&&Je(Ge)})}j(()=>{ri=Tt(Rt,1,"tr svelte-1vejtrc",null,ri,{stale:d(nt)}),O(cn,_e().seg)}),U("click",Rt,()=>{y(rt,_e().path+"/#")}),U("contextmenu",Rt,Je=>{Je.preventDefault(),y(Te,{x:Je.clientX,y:Je.clientY,topic:_e().path},!0)}),D(ne,Ye)},i=new Map,n=new Set,s=new Set;let r=null,a=M(0);function c(){r===null&&(r=requestAnimationFrame(()=>{r=null;for(const ne of s)f(ne);s.clear(),OL(a)}))}const u=new Map;function f(ne){const _e=ne.split("/");let Be=u,at="";for(let nt=0;nt<_e.length;nt++){const Ye=_e[nt];at=nt===0?Ye:`${at}/${Ye}`,Be.has(Ye)||Be.set(Ye,{seg:Ye,path:at,children:new Map,isLeaf:!1});const Rt=Be.get(Ye);nt===_e.length-1&&(Rt.isLeaf=!0),Be=Rt.children}}let g=M(yi(new Set));function p(ne){const _e=new Set(d(g));_e.has(ne)?_e.delete(ne):_e.add(ne),y(g,_e,!0)}let w=M("");const m=24,x=5;let k=M(0),E=M(300),P=wt(()=>{if(d(a),!d(w))return[];const ne=d(w).toLowerCase().split(/\s+/).filter(Boolean),_e=[];for(const[Be,at]of i){const nt=Be.toLowerCase();ne.every(Ye=>nt.includes(Ye))&&_e.push({topic:Be,...at})}return _e.sort((Be,at)=>Be.topic.localeCompare(at.topic))}),A=wt(()=>{const ne=d(P).length,_e=Math.max(0,Math.floor(d(k)/m)-x),Be=Math.min(ne,Math.ceil((d(k)+d(E))/m)+x);return{start:_e,end:Be,totalH:ne*m,top:_e*m}});const $=1e3,H=200,ie=20,J=36;let ue=0,he=M(yi([])),We=M(yi([])),xe=M(!0),rt=M("#"),pt=M(200);zn(()=>{const ne=d(rt).trim(),_e=Nl(()=>d(he)),Be=!ne||ne==="#"?_e.slice(0,H):_e.filter(at=>ve(ne,at.topic)).slice(0,H);if(ne&&ne!=="#"){const at=new Set(Be.map(Ye=>Ye.topic)),nt=[];for(const[Ye,Rt]of i)at.has(Ye)||ve(ne,Ye)&&nt.push({id:-(nt.length+1),topic:Ye,val:Rt.val,ts:Rt.ts,retained:!0});nt.sort((Ye,Rt)=>Ye.topic.localeCompare(Rt.topic)),y(We,[...Be,...nt],!0)}else y(We,Be,!0)});function ve(ne,_e){if(ne==="#")return!0;const Be=ne.split("/"),at=_e.split("/");for(let nt=0;nt<Be.length;nt++){if(Be[nt]==="#")return!0;if(nt>=at.length||Be[nt]!=="+"&&Be[nt]!==at[nt])return!1}return Be.length===at.length}function dt(ne){ne.preventDefault();const _e=ne.clientY,Be=d(pt);function at(Ye){y(pt,Math.max(60,Math.min(800,Be+_e-Ye.clientY)),!0)}function nt(){document.removeEventListener("mousemove",at),document.removeEventListener("mouseup",nt)}document.addEventListener("mousemove",at),document.addEventListener("mouseup",nt)}let gt=wt(()=>{const ne=Math.max(1,Math.floor((d(pt)-J)/ie)+1);return d(We).slice(0,ne)}),Pt=M(!0),fe=M(null);async function Et(){y(Pt,!0),y(fe,null);try{const ne=await BN();for(const _e of ne)i.set(_e.topic,{val:_e.val,ts:_e.ts}),f(_e.topic)}catch(ne){y(fe,ne instanceof Error?ne.message:String(ne),!0)}finally{y(Pt,!1),OL(a)}}const Oe=kr("mqtt",ne=>{const{topic:_e,val:Be,ts:at}=ne;i.set(_e,{val:Be,ts:at}),n.add(_e),s.add(_e),c();const nt={id:ue++,topic:_e,val:Be,ts:at};y(he,[nt,...d(he).slice(0,$-1)],!0);const Ye=d(rt).trim();(!Ye||Ye==="#"||ve(Ye,_e))&&y(We,[nt,...d(We).filter(Rt=>!(Rt.retained&&Rt.topic===_e)).slice(0,H-1)],!0)});let Te=M(null),ut=M(null);async function Wt(ne,_e){const Be=[ne];if(_e){const at=ne+"/";for(const nt of i.keys())nt.startsWith(at)&&Be.push(nt)}for(const at of Be)await HD(at,"",!0,0)}let Zt=wt(()=>(d(a),[...i.keys()].sort())),Mt=M(""),Lt=M(""),At=M(!1),kt=M(0),Si=M(!1),hi=M(null),Di=M(!1);async function Fi(){if(d(Mt)){y(Si,!0),y(hi,null),y(Di,!1);try{await HD(d(Mt),d(Lt),d(At),d(kt)),y(Di,!0),setTimeout(()=>{y(Di,!1)},2e3)}catch(ne){y(hi,ne instanceof Error?ne.message:String(ne),!0)}finally{y(Si,!1)}}}function Ri(ne){return ne==null?"":typeof ne=="object"?JSON.stringify(ne):String(ne)}function Ni(ne){return new Date(ne).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ii(ne){return new Date(ne).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function ci(ne){return d(a),i.get(ne)}let vi=wt(()=>(d(a),[...u.values()].sort((ne,_e)=>ne.seg.localeCompare(_e.seg)))),it=wt(()=>(d(a),i.size));ao(Et),Wy(()=>{Oe(),r!==null&&cancelAnimationFrame(r)});var zt=xY(),gi=b(v(zt),2),Ti=v(gi),Zi=v(Ti),Bi=b(Zi,2);mi(Bi,20,()=>d(Zt),ne=>ne,(ne,_e)=>{var Be=rY(),at={};j(()=>{at!==(at=_e)&&(Be.value=(Be.__value=_e)??"")}),D(ne,Be)});var zi=b(Bi,2),vn=b(zi,2),ln=v(vn),Pi=b(vn,2),yn=v(Pi);yn.value=yn.__value=0;var Re=b(yn);Re.value=Re.__value=1;var jt=b(Re);jt.value=jt.__value=2;var di=b(Pi,2),qt=b(di,2);{var Le=ne=>{var _e=aY();D(ne,_e)};W(qt,ne=>{d(Di)&&ne(Le)})}var It=b(qt,2);{var ai=ne=>{var _e=lY(),Be=v(_e);j(()=>O(Be,d(hi))),D(ne,_e)};W(It,ne=>{d(hi)&&ne(ai)})}var pi=b(Ti,2),_i=v(pi),Fe=b(_i,2),X=v(Fe);{var ee=ne=>{var _e=sa();j(()=>O(_e,`${d(P).length??""} /`)),D(ne,_e)};W(X,ne=>{d(w)&&ne(ee)})}var de=b(X),ke=b(pi,2);{var $e=ne=>{var _e=cY();D(ne,_e)},N=ne=>{var _e=dY(),Be=v(_e);j(()=>O(Be,d(fe))),D(ne,_e)},Q=ne=>{var _e=Rs(),Be=Ct(_e);{var at=Ye=>{var Rt=uY();D(Ye,Rt)},nt=Ye=>{var Rt=fY(),ri=v(Rt),fi=v(ri);mi(fi,21,()=>d(P).slice(d(A).start,d(A).end),Ci=>Ci.topic,(Ci,en)=>{var fn=hY(),cn=v(fn),ki=v(cn),Xi=b(cn,2),z=v(Xi),te=b(Xi,2),Ge=v(te);j((Je,ge,be)=>{O(ki,d(en).topic),Ai(Xi,"title",Je),O(z,ge),O(Ge,be)},[()=>Ri(d(en).val),()=>Ri(d(en).val),()=>Ni(d(en).ts)]),D(Ci,fn)}),j(()=>{Fo(ri,`height: ${d(A).totalH??""}px; position: relative;`),Fo(fi,`top: ${d(A).top??""}px;`)}),cs("scroll",Rt,Ci=>{y(k,Ci.currentTarget.scrollTop,!0)}),qH(Rt,"clientHeight",Ci=>y(E,Ci)),D(Ye,Rt)};W(Be,Ye=>{d(P).length===0?Ye(at):Ye(nt,-1)})}D(ne,_e)},oe=ne=>{var _e=pY(),Be=v(_e);{var at=Ye=>{var Rt=gY();D(Ye,Rt)},nt=Ye=>{var Rt=Rs(),ri=Ct(Rt);mi(ri,17,()=>d(vi),fi=>fi.path,(fi,Ci)=>{t(fi,()=>d(Ci))}),D(Ye,Rt)};W(Be,Ye=>{d(vi).length===0?Ye(at):Ye(nt,-1)})}D(ne,_e)};W(ke,ne=>{d(Pt)?ne($e):d(fe)?ne(N,1):d(w)?ne(Q,2):ne(oe,-1)})}var Ie=b(gi,2),De=v(Ie),B=b(De,2),q=v(B),Y=b(q,2);{var me=ne=>{var _e=_Y(),Be=v(_e);j(()=>O(Be,d(We).length)),D(ne,_e)};W(Y,ne=>{!d(xe)&&d(We).length>0&&ne(me)})}var Qe=b(Y,2),Ee=v(Qe),Se=b(B,2);{var lt=ne=>{var _e=yY(),Be=v(_e);{var at=Ye=>{var Rt=mY();D(Ye,Rt)},nt=Ye=>{var Rt=Rs(),ri=Ct(Rt);mi(ri,17,()=>d(gt),fi=>fi.id,(fi,Ci)=>{var en=bY();let fn;var cn=v(en),ki=v(cn),Xi=b(cn,2);{var z=be=>{var vt=vY();D(be,vt)};W(Xi,be=>{d(Ci).retained&&be(z)})}var te=b(Xi,2),Ge=v(te),Je=b(te,2),ge=v(Je);j((be,vt,Ei)=>{fn=Tt(en,1,"sr svelte-1vejtrc",null,fn,{retained:d(Ci).retained}),O(ki,be),O(Ge,d(Ci).topic),Ai(Je,"title",vt),O(ge,Ei)},[()=>Ii(d(Ci).ts),()=>Ri(d(Ci).val),()=>Ri(d(Ci).val)]),D(fi,en)}),D(Ye,Rt)};W(Be,Ye=>{d(gt).length===0?Ye(at):Ye(nt,-1)})}D(ne,_e)};W(Se,ne=>{d(xe)&&ne(lt)})}var Bt=b(Ie,2);{var St=ne=>{var _e=wY(),Be=Ct(_e),at=b(Be,2);let nt;var Ye=v(at),Rt=b(Ye,2);j(()=>nt=Fo(at,"",nt,{left:`${d(Te).x??""}px`,top:`${d(Te).y??""}px`})),U("click",Be,()=>y(Te,null)),U("contextmenu",Be,ri=>{ri.preventDefault(),y(Te,null)}),U("click",Ye,()=>{navigator.clipboard.writeText(d(Te).topic),y(Te,null)}),U("click",Rt,()=>{const ri=d(Te).topic,fi=ri+"/",Ci=[...i.keys()].some(en=>en.startsWith(fi));y(ut,{topic:ri,hasChildren:Ci,recursive:!1},!0),y(Te,null)}),D(ne,_e)};W(Bt,ne=>{d(Te)&&ne(St)})}var Dt=b(Bt,2);{var Ft=ne=>{var _e=CY(),Be=Ct(_e),at=b(Be,2),nt=b(v(at),2),Ye=v(nt),Rt=b(v(Ye)),ri=v(Rt),fi=b(Ye,2);{var Ci=ki=>{var Xi=SY(),z=v(Xi);Is(z,()=>d(ut).recursive,te=>d(ut).recursive=te),D(ki,Xi)};W(fi,ki=>{d(ut).hasChildren&&ki(Ci)})}var en=b(nt,2),fn=v(en),cn=b(fn,2);j(()=>O(ri,d(ut).topic)),U("click",Be,()=>y(ut,null)),U("click",fn,()=>y(ut,null)),U("click",cn,()=>{const{topic:ki,recursive:Xi}=d(ut);y(ut,null),Wt(ki,Xi)}),D(ne,_e)};W(Dt,ne=>{d(ut)&&ne(Ft)})}j(()=>{di.disabled=d(Si)||!d(Mt),O(de,` ${d(it)??""}`),Fo(Ie,d(xe)?`height: ${d(pt)}px;`:""),O(Ee,d(xe)?"▾":"▸")}),ti(Zi,()=>d(Mt),ne=>y(Mt,ne)),ti(zi,()=>d(Lt),ne=>y(Lt,ne)),Is(ln,()=>d(At),ne=>y(At,ne)),Ho(Pi,()=>d(kt),ne=>y(kt,ne)),U("click",di,Fi),ti(_i,()=>d(w),ne=>y(w,ne)),U("mousedown",De,dt),ti(q,()=>d(rt),ne=>y(rt,ne)),U("click",Qe,()=>{y(xe,!d(xe))}),D(o,zt),As()}Ks(["click","contextmenu","mousedown"]);var LY=T('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),IY=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>'),DY=T('<div class="err svelte-twakcj"> </div>'),EY=T('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),TY=T('<p class="empty svelte-twakcj">No packages installed.</p>'),PY=T('<p class="empty svelte-twakcj">No match.</p>'),MY=T("<span> </span>"),RY=$P('<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>'),NY=$P('<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>'),AY=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>'),OY=T('<span class="result-author svelte-twakcj"> </span>'),FY=T('<span class="result-date svelte-twakcj"> </span>'),HY=T('<span class="result-desc svelte-twakcj"> </span>'),WY=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>'),BY=T('<div class="results-list svelte-twakcj"></div>'),zY=T('<pre class="npm-output svelte-twakcj"> </pre>'),VY=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>`),jY=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 $Y(o,e){Ns(e,!0);let t=M(yi([])),i=M(""),n=M(yi({})),s=M(yi([])),r=M(!1),a=M(""),c=M(yi([])),u=M(!1),f=M(!1),g=M(!1),p=M(""),w=M(""),m=yi({});const x=wt(()=>d(i).trim()?d(t).filter(Re=>Re.name.toLowerCase().includes(d(i).toLowerCase())):d(t)),k=wt(()=>Object.keys(d(n)).filter(Re=>!d(s).includes(Re)).length);ao(async()=>{await Promise.all([E(),P(),A()])});async function E(){try{y(t,await E7(),!0),y(p,"")}catch(Re){y(p,Re.message,!0)}}async function P(){try{y(n,await HN(),!0)}catch{}}async function A(){try{const Re=await Dl();y(s,Array.isArray(Re.pinnedPackages)?Re.pinnedPackages:[],!0)}catch{}}async function $(Re){const jt=d(s).includes(Re)?d(s).filter(di=>di!==Re):[...d(s),Re];y(s,jt,!0);try{const di=await Dl();await Xp({...di,pinnedPackages:jt})}catch{}}async function H(){y(r,!0);try{y(n,await N7(),!0)}catch{}finally{y(r,!1)}}async function ie(){const Re=d(a).trim();if(!Re){y(c,[],!0);return}y(g,!0),y(p,"");try{y(c,await T7(Re),!0)}catch(jt){y(p,jt.message,!0)}finally{y(g,!1)}}function J(Re){if(!Re)return"";try{return new Date(Re).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function ue(Re,jt){m[Re]=!0,y(p,""),y(w,"");try{const di=await P7(Re,jt);y(w,di.stdout||di.stderr||"Done.",!0),y(u,!0),await E()}catch(di){y(p,di.message,!0)}finally{m[Re]=!1}}async function he(Re){m[Re]=!0,y(p,""),y(w,"");try{const jt=await M7(Re);y(w,jt.stdout||jt.stderr||"Done.",!0),y(u,!0);const di={...d(n)};delete di[Re],y(n,di,!0),await E()}catch(jt){y(p,jt.message,!0)}finally{m[Re]=!1}}async function We(Re){m[Re]=!0,y(p,""),y(w,"");try{const jt=await R7(Re);y(w,jt.stdout||jt.stderr||"Done.",!0),y(u,!0);const di={...d(n)};delete di[Re],y(n,di,!0),await E()}catch(jt){y(p,jt.message,!0)}finally{m[Re]=!1}}let xe;async function rt(){if(await xe.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){y(f,!0);try{await AN()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var pt=jY(),ve=Ct(pt);Ds(Jf(ve,{}),Re=>xe=Re,()=>xe);var dt=b(ve,2),gt=v(dt);{var Pt=Re=>{var jt=LY();D(Re,jt)},fe=Re=>{var jt=IY(),di=b(v(jt));U("click",di,rt),D(Re,jt)};W(gt,Re=>{d(f)?Re(Pt):d(u)&&Re(fe,1)})}var Et=b(gt,2);{var Oe=Re=>{var jt=DY(),di=v(jt);j(()=>O(di,d(p))),D(Re,jt)};W(Et,Re=>{d(p)&&Re(Oe)})}var Te=b(Et,2),ut=v(Te),Wt=v(ut),Zt=b(v(Wt),2),Mt=v(Zt),Lt=b(Zt,2);{var At=Re=>{var jt=EY(),di=v(jt);j(()=>O(di,`${d(k)??""} outdated`)),D(Re,jt)};W(Lt,Re=>{d(k)>0&&Re(At)})}var kt=b(Lt,2),Si=v(kt);let hi;var Di=b(Wt,2),Fi=v(Di),Ri=b(Di,2),Ni=v(Ri);{var Ii=Re=>{var jt=TY();D(Re,jt)},ci=Re=>{var jt=PY();D(Re,jt)},vi=Re=>{var jt=Rs(),di=Ct(jt);mi(di,17,()=>d(x),qt=>qt.name,(qt,Le)=>{var It=AY();let ai;var pi=v(It),_i=v(pi),Fe=v(_i),X=b(_i,2),ee=v(X),de=b(X,2);{var ke=me=>{var Qe=MY();let Ee;var Se=v(Qe);j(lt=>{Ee=Tt(Qe,1,"dep-latest svelte-twakcj",null,Ee,lt),O(Se,`→ v${d(n)[d(Le).name].latest??""}`)},[()=>({"dep-latest--pinned":d(s).includes(d(Le).name)})]),D(me,Qe)};W(de,me=>{d(n)[d(Le).name]&&me(ke)})}var $e=b(pi,2),N=v($e);let Q;var oe=b(N,2);let Ie;var De=v(oe);{var B=me=>{var Qe=RY();D(me,Qe)},q=me=>{var Qe=NY();D(me,Qe)};W(De,me=>{m[d(Le).name]?me(B):me(q,-1)})}var Y=b(oe,2);j((me,Qe,Ee)=>{ai=Tt(It,1,"dep-row svelte-twakcj",null,ai,{"dep-busy":!!m[d(Le).name]}),Ai(_i,"href",d(Le).url??`https://www.npmjs.com/package/${d(Le).name}`),O(Fe,d(Le).name),O(ee,d(Le).installedVersion??d(Le).version),Q=Tt(N,1,"icon-btn svelte-twakcj",null,Q,me),Ai(N,"title",Qe),Ie=Tt(oe,1,"icon-btn svelte-twakcj",null,Ie,Ee),oe.disabled=!!m[d(Le).name],Ai(oe,"title",d(n)[d(Le).name]?`Update to v${d(n)[d(Le).name].latest}`:"Update to latest"),Y.disabled=!!m[d(Le).name]},[()=>({"icon-btn--pinned":d(s).includes(d(Le).name)}),()=>d(s).includes(d(Le).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!d(n)[d(Le).name]&&!d(s).includes(d(Le).name)})]),U("click",N,()=>$(d(Le).name)),U("click",oe,()=>We(d(Le).name)),U("click",Y,()=>he(d(Le).name)),D(qt,It)}),D(Re,jt)};W(Ni,Re=>{d(t).length===0?Re(Ii):d(x).length===0?Re(ci,1):Re(vi,-1)})}var it=b(ut,2),zt=b(v(it),2),gi=v(zt),Ti=b(gi,2),Zi=v(Ti),Bi=b(zt,2);{var zi=Re=>{var jt=BY();mi(jt,21,()=>d(c),di=>di.name,(di,qt)=>{var Le=WY(),It=v(Le),ai=v(It),pi=v(ai),_i=b(ai,2),Fe=v(_i),X=b(_i,2);{var ee=Ie=>{var De=OY(),B=v(De);j(()=>O(B,d(qt).author)),D(Ie,De)};W(X,Ie=>{d(qt).author&&Ie(ee)})}var de=b(X,2);{var ke=Ie=>{var De=FY(),B=v(De);j(q=>{Ai(De,"title",d(qt).date),O(B,q)},[()=>J(d(qt).date)]),D(Ie,De)};W(de,Ie=>{d(qt).date&&Ie(ke)})}var $e=b(de,2);{var N=Ie=>{var De=HY(),B=v(De);j(()=>O(B,d(qt).description)),D(Ie,De)};W($e,Ie=>{d(qt).description&&Ie(N)})}var Q=b(It,2),oe=v(Q);j(()=>{Ai(ai,"href",d(qt).url??`https://www.npmjs.com/package/${d(qt).name}`),O(pi,d(qt).name),O(Fe,d(qt).version),Q.disabled=!!m[d(qt).name],O(oe,m[d(qt).name]?"Installing…":"Install")}),U("click",Q,()=>ue(d(qt).name)),D(di,Le)}),D(Re,jt)};W(Bi,Re=>{d(c).length>0&&Re(zi)})}var vn=b(Bi,2);{var ln=Re=>{var jt=zY(),di=v(jt);j(()=>O(di,d(w))),D(Re,jt)};W(vn,Re=>{d(w)&&Re(ln)})}var Pi=b(vn,2);{var yn=Re=>{var jt=VY();D(Re,jt)};W(Pi,Re=>{!d(c).length&&!d(w)&&Re(yn)})}j(()=>{O(Mt,d(t).length),kt.disabled=d(r),hi=Tt(Si,0,"svelte-twakcj",null,hi,{spinning:d(r)}),Ti.disabled=d(g),O(Zi,d(g)?"Searching…":"Search")}),U("click",kt,H),ti(Fi,()=>d(i),Re=>y(i,Re)),U("keydown",gi,Re=>Re.key==="Enter"&&ie()),ti(gi,()=>d(a),Re=>y(a,Re)),U("click",Ti,ie),D(o,pt),As()}Ks(["click","keydown"]);var UY=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>'),Ul=T('<div class="err svelte-3itf14"> </div>'),qY=T('<div class="empty svelte-3itf14">No users found.</div>'),_E=T('<span class="tag svelte-3itf14"> </span>'),mE=T('<span class="tag tag--group svelte-3itf14"> </span>'),GY=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="tags svelte-3itf14"></td><td class="tags svelte-3itf14"></td><td class="actions svelte-3itf14"><button title="Set password" class="svelte-3itf14">🔑</button> <button class="danger svelte-3itf14" title="Delete">✕</button></td></tr>'),KY=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>'),ZY=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>'),XY=T('<div class="empty svelte-3itf14">No roles found.</div>'),YY=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="actions svelte-3itf14"><button title="Edit ACLs" class="svelte-3itf14">Edit ACLs</button> <button class="danger svelte-3itf14" title="Delete">✕</button></td></tr>'),QY=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>'),JY=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>'),eQ=T('<div class="empty svelte-3itf14">No groups found.</div>'),tQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="tags svelte-3itf14"></td><td class="tags svelte-3itf14"></td><td class="actions svelte-3itf14"><button class="danger svelte-3itf14" title="Delete">✕</button></td></tr>'),iQ=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>'),nQ=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>'),sQ=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>'),oQ=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>'),rQ=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>'),aQ=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>'),lQ=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>'),cQ=T('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),dQ=T("<option> </option>"),uQ=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>'),hQ=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>'),fQ=T('<div class="users-page svelte-3itf14"><!> <div class="panel-tabs svelte-3itf14"><button>Users</button> <button>Roles</button> <button>Groups</button> <button class="reload-btn svelte-3itf14" title="Refresh">↺</button></div> <!> <!> <!></div> <!> <!> <!> <!> <!>',1);function gQ(o,e){Ns(e,!0);let t=wu(e,"dynsecReady",3,!1),i=M(yi([])),n=M(yi([])),s=M(yi([])),r=M(""),a=M(""),c=M(""),u=M("users"),f=M(!1),g=M(""),p=M(""),w=M(!1),m=M(""),x=M(!1),k=M(!1),E=M(""),P=M(""),A=M(""),$=M(!1),H=M(!1),ie=M(""),J=M(""),ue=M(!1),he=M(null),We=M(!1),xe=M("publishClientSend"),rt=M(""),pt=M(!0),ve=M(""),dt=M(!1),gt=M(""),Pt=M(""),fe=M(!1);const Et=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function Oe(){var ee,de,ke;try{const[$e,N,Q]=await Promise.allSettled([K7(),Q7(),nq()]);$e.status==="fulfilled"?(y(i,$e.value.users,!0),y(r,"")):y(r,((ee=$e.reason)==null?void 0:ee.message)??"Failed to load users",!0),N.status==="fulfilled"?(y(n,N.value.roles,!0),y(a,"")):y(a,((de=N.reason)==null?void 0:de.message)??"Failed to load roles",!0),Q.status==="fulfilled"?(y(s,Q.value.groups,!0),y(c,"")):y(c,((ke=Q.reason)==null?void 0:ke.message)??"Failed to load groups",!0)}catch{}}ao(()=>{Oe()});async function Te(){y(m,""),y(x,!0);try{await Z7(d(g),d(p)),y(g,""),y(p,""),y(f,!1),await Oe()}catch(ee){y(m,ee.message??"Failed to create user",!0)}finally{y(x,!1)}}async function ut(ee){if(confirm(`Delete user "${ee}"?`))try{await X7(ee),await Oe()}catch(de){y(r,de.message,!0)}}async function Wt(ee){y(E,ee,!0),y(P,""),y(A,""),y(k,!0)}async function Zt(){y(A,""),y($,!0);try{await Y7(d(E),d(P)),y(k,!1)}catch(ee){y(A,ee.message,!0)}finally{y($,!1)}}async function Mt(){y(J,""),y(ue,!0);try{await J7(d(ie)),y(ie,""),y(H,!1),await Oe()}catch(ee){y(J,ee.message??"Failed to create role",!0)}finally{y(ue,!1)}}async function Lt(ee){var de;if(confirm(`Delete role "${ee}"?`))try{await eq(ee),((de=d(he))==null?void 0:de.rolename)===ee&&(y(he,null),y(We,!1)),await Oe()}catch(ke){y(a,ke.message,!0)}}function At(ee){y(he,ee,!0),y(We,!0),y(xe,"publishClientSend"),y(rt,""),y(pt,!0),y(ve,"")}async function kt(){if(d(he)){y(ve,"");try{await tq(d(he).rolename,{acltype:d(xe),topic:d(rt),allow:d(pt)}),y(rt,""),await Oe(),y(he,d(n).find(ee=>ee.rolename===d(he).rolename)??d(he),!0)}catch(ee){y(ve,ee.message,!0)}}}async function Si(ee,de,ke){try{await iq(ee,de,ke),await Oe(),y(he,d(n).find($e=>$e.rolename===ee)??d(he),!0)}catch($e){y(ve,$e.message,!0)}}async function hi(){y(Pt,""),y(fe,!0);try{await sq(d(gt)),y(gt,""),y(dt,!1),await Oe()}catch(ee){y(Pt,ee.message??"Failed to create group",!0)}finally{y(fe,!1)}}async function Di(ee){if(confirm(`Delete group "${ee}"?`))try{await oq(ee),await Oe()}catch(de){y(c,de.message,!0)}}var Fi=fQ(),Ri=Ct(Fi),Ni=v(Ri);{var Ii=ee=>{var de=UY();D(ee,de)};W(Ni,ee=>{t()||ee(Ii)})}var ci=b(Ni,2),vi=v(ci);let it;var zt=b(vi,2);let gi;var Ti=b(zt,2);let Zi;var Bi=b(Ti,2),zi=b(ci,2);{var vn=ee=>{var de=ZY(),ke=v(de),$e=b(v(ke),2),N=b(ke,2);{var Q=B=>{var q=Ul(),Y=v(q);j(()=>O(Y,d(r))),D(B,q)};W(N,B=>{d(r)&&B(Q)})}var oe=b(N,2);{var Ie=B=>{var q=qY();D(B,q)},De=B=>{var q=KY(),Y=b(v(q));mi(Y,21,()=>d(i),Ji,(me,Qe)=>{var Ee=GY(),Se=v(Ee),lt=v(Se),Bt=b(Se);mi(Bt,21,()=>d(Qe).roles??[],Ji,(_e,Be)=>{var at=_E(),nt=v(at);j(()=>O(nt,d(Be).rolename)),D(_e,at)});var St=b(Bt);mi(St,21,()=>d(Qe).groups??[],Ji,(_e,Be)=>{var at=mE(),nt=v(at);j(()=>O(nt,d(Be).groupname)),D(_e,at)});var Dt=b(St),Ft=v(Dt),ne=b(Ft,2);j(()=>O(lt,d(Qe).username)),U("click",Ft,()=>Wt(d(Qe).username)),U("click",ne,()=>ut(d(Qe).username)),D(me,Ee)}),D(B,q)};W(oe,B=>{d(i).length===0?B(Ie):B(De,-1)})}U("click",$e,()=>{y(f,!0),y(m,"")}),D(ee,de)};W(zi,ee=>{d(u)==="users"&&ee(vn)})}var ln=b(zi,2);{var Pi=ee=>{var de=JY(),ke=v(de),$e=b(v(ke),2),N=b(ke,2);{var Q=B=>{var q=Ul(),Y=v(q);j(()=>O(Y,d(a))),D(B,q)};W(N,B=>{d(a)&&B(Q)})}var oe=b(N,2);{var Ie=B=>{var q=XY();D(B,q)},De=B=>{var q=QY(),Y=b(v(q));mi(Y,21,()=>d(n),Ji,(me,Qe)=>{var Ee=YY(),Se=v(Ee),lt=v(Se),Bt=b(Se),St=v(Bt),Dt=b(Bt),Ft=v(Dt),ne=b(Ft,2);j(()=>{var _e;O(lt,d(Qe).rolename),O(St,((_e=d(Qe).acls)==null?void 0:_e.length)??0)}),U("click",Ft,()=>At(d(Qe))),U("click",ne,()=>Lt(d(Qe).rolename)),D(me,Ee)}),D(B,q)};W(oe,B=>{d(n).length===0?B(Ie):B(De,-1)})}U("click",$e,()=>{y(H,!0),y(J,""),y(ie,"")}),D(ee,de)};W(ln,ee=>{d(u)==="roles"&&ee(Pi)})}var yn=b(ln,2);{var Re=ee=>{var de=nQ(),ke=v(de),$e=b(v(ke),2),N=b(ke,2);{var Q=B=>{var q=Ul(),Y=v(q);j(()=>O(Y,d(c))),D(B,q)};W(N,B=>{d(c)&&B(Q)})}var oe=b(N,2);{var Ie=B=>{var q=eQ();D(B,q)},De=B=>{var q=iQ(),Y=b(v(q));mi(Y,21,()=>d(s),Ji,(me,Qe)=>{var Ee=tQ(),Se=v(Ee),lt=v(Se),Bt=b(Se);mi(Bt,21,()=>d(Qe).clients??[],Ji,(ne,_e)=>{var Be=_E(),at=v(Be);j(()=>O(at,d(_e).username)),D(ne,Be)});var St=b(Bt);mi(St,21,()=>d(Qe).roles??[],Ji,(ne,_e)=>{var Be=mE(),at=v(Be);j(()=>O(at,d(_e).rolename)),D(ne,Be)});var Dt=b(St),Ft=v(Dt);j(()=>O(lt,d(Qe).groupname)),U("click",Ft,()=>Di(d(Qe).groupname)),D(me,Ee)}),D(B,q)};W(oe,B=>{d(s).length===0?B(Ie):B(De,-1)})}U("click",$e,()=>{y(dt,!0),y(Pt,""),y(gt,"")}),D(ee,de)};W(yn,ee=>{d(u)==="groups"&&ee(Re)})}var jt=b(Ri,2);{var di=ee=>{var de=sQ(),ke=v(de),$e=b(v(ke),2),N=b(v($e)),Q=b($e,2),oe=b(v(Q)),Ie=v(oe),De=b(Ie,2),B=v(De),q=b(Q,2);{var Y=lt=>{var Bt=Ul(),St=v(Bt);j(()=>O(St,d(m))),D(lt,Bt)};W(q,lt=>{d(m)&<(Y)})}var me=b(q,2),Qe=v(me),Ee=b(Qe,2),Se=v(Ee);j(()=>{Ai(Ie,"type",d(w)?"text":"password"),O(B,d(w)?"Hide":"Show"),Ee.disabled=d(x)||!d(g)||!d(p),O(Se,d(x)?"Creating…":"Create")}),ti(N,()=>d(g),lt=>y(g,lt)),ti(Ie,()=>d(p),lt=>y(p,lt)),U("click",De,()=>y(w,!d(w))),U("click",Qe,()=>y(f,!1)),U("click",Ee,Te),D(ee,de)};W(jt,ee=>{d(f)&&ee(di)})}var qt=b(jt,2);{var Le=ee=>{var de=oQ(),ke=v(de),$e=v(ke),N=b(v($e)),Q=v(N),oe=b($e,2),Ie=b(v(oe)),De=b(oe,2);{var B=Ee=>{var Se=Ul(),lt=v(Se);j(()=>O(lt,d(A))),D(Ee,Se)};W(De,Ee=>{d(A)&&Ee(B)})}var q=b(De,2),Y=v(q),me=b(Y,2),Qe=v(me);j(()=>{O(Q,d(E)),me.disabled=d($)||!d(P),O(Qe,d($)?"Saving…":"Set password")}),ti(Ie,()=>d(P),Ee=>y(P,Ee)),U("click",Y,()=>y(k,!1)),U("click",me,Zt),D(ee,de)};W(qt,ee=>{d(k)&&ee(Le)})}var It=b(qt,2);{var ai=ee=>{var de=rQ(),ke=v(de),$e=b(v(ke),2),N=b(v($e)),Q=b($e,2);{var oe=Y=>{var me=Ul(),Qe=v(me);j(()=>O(Qe,d(J))),D(Y,me)};W(Q,Y=>{d(J)&&Y(oe)})}var Ie=b(Q,2),De=v(Ie),B=b(De,2),q=v(B);j(()=>{B.disabled=d(ue)||!d(ie),O(q,d(ue)?"Creating…":"Create")}),ti(N,()=>d(ie),Y=>y(ie,Y)),U("click",De,()=>y(H,!1)),U("click",B,Mt),D(ee,de)};W(It,ee=>{d(H)&&ee(ai)})}var pi=b(It,2);{var _i=ee=>{var de=uQ(),ke=v(de),$e=v(ke),N=b(v($e)),Q=v(N),oe=b($e,2);{var Ie=Dt=>{var Ft=lQ(),ne=b(v(Ft));mi(ne,21,()=>d(he).acls??[],Ji,(_e,Be)=>{var at=aQ(),nt=v(at),Ye=v(nt),Rt=b(nt),ri=v(Rt),fi=b(Rt),Ci=v(fi),en=b(fi),fn=v(en);j(()=>{O(Ye,d(Be).acltype),O(ri,d(Be).topic),O(Ci,d(Be).allow?"✓":"✗")}),U("click",fn,()=>Si(d(he).rolename,d(Be).acltype,d(Be).topic)),D(_e,at)}),D(Dt,Ft)},De=Dt=>{var Ft=cQ();D(Dt,Ft)};W(oe,Dt=>{var Ft;(((Ft=d(he).acls)==null?void 0:Ft.length)??0)>0?Dt(Ie):Dt(De,-1)})}var B=b(oe,2),q=v(B);mi(q,21,()=>Et,Ji,(Dt,Ft)=>{var ne=dQ(),_e=v(ne),Be={};j(()=>{O(_e,d(Ft)),Be!==(Be=d(Ft))&&(ne.value=(ne.__value=d(Ft))??"")}),D(Dt,ne)});var Y=b(q,2),me=b(Y,2),Qe=v(me),Ee=b(me,2),Se=b(B,2);{var lt=Dt=>{var Ft=Ul(),ne=v(Ft);j(()=>O(ne,d(ve))),D(Dt,Ft)};W(Se,Dt=>{d(ve)&&Dt(lt)})}var Bt=b(Se,2),St=v(Bt);j(()=>{O(Q,d(he).rolename),Ee.disabled=!d(rt)}),Ho(q,()=>d(xe),Dt=>y(xe,Dt)),ti(Y,()=>d(rt),Dt=>y(rt,Dt)),Is(Qe,()=>d(pt),Dt=>y(pt,Dt)),U("click",Ee,kt),U("click",St,()=>y(We,!1)),D(ee,de)};W(pi,ee=>{d(We)&&d(he)&&ee(_i)})}var Fe=b(pi,2);{var X=ee=>{var de=hQ(),ke=v(de),$e=b(v(ke),2),N=b(v($e)),Q=b($e,2);{var oe=Y=>{var me=Ul(),Qe=v(me);j(()=>O(Qe,d(Pt))),D(Y,me)};W(Q,Y=>{d(Pt)&&Y(oe)})}var Ie=b(Q,2),De=v(Ie),B=b(De,2),q=v(B);j(()=>{B.disabled=d(fe)||!d(gt),O(q,d(fe)?"Creating…":"Create")}),ti(N,()=>d(gt),Y=>y(gt,Y)),U("click",De,()=>y(dt,!1)),U("click",B,hi),D(ee,de)};W(Fe,ee=>{d(dt)&&ee(X)})}j(()=>{it=Tt(vi,1,"svelte-3itf14",null,it,{active:d(u)==="users"}),gi=Tt(zt,1,"svelte-3itf14",null,gi,{active:d(u)==="roles"}),Zi=Tt(Ti,1,"svelte-3itf14",null,Zi,{active:d(u)==="groups"})}),U("click",vi,()=>y(u,"users")),U("click",zt,()=>y(u,"roles")),U("click",Ti,()=>y(u,"groups")),U("click",Bi,Oe),D(o,Fi),As()}Ks(["click"]);var vE=T('<div class="err svelte-9i68x"> </div>'),pQ=T('<div class="ok svelte-9i68x">Saved.</div>'),_Q=T('<div class="reload-msg svelte-9i68x"> </div>'),mQ=T('<div class="loading svelte-9i68x">Loading…</div>'),vQ=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>'),bQ=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></div> <div class="tls-toggle-row svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox"/> TLS</label></div> <!></div>'),yQ=T('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),wQ=T('<div class="cards svelte-9i68x"><!> <!></div>'),SQ=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 & Reload mosquitto"> </button></div></div> <!> <!> <!> <!> <!></div>');function CQ(o,e){Ns(e,!0);let t=M(null),i=M(""),n=M(!1),s=M(""),r=M(!1),a=M(!1),c=M(""),u=M(yi([])),f=M(null);ao(()=>{g()});async function g(){try{y(t,await z7(),!0),y(u,JSON.parse(JSON.stringify(d(t).listeners)),!0),y(f,d(t).checksum,!0),y(i,"")}catch(Te){y(i,Te.message??"Failed to load broker config",!0)}}function p(){y(u,[...d(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0)}function w(Te){y(u,d(u).filter((ut,Wt)=>Wt!==Te),!0)}async function m(){if(d(t)){y(n,!0),y(s,""),y(r,!1);try{await V7({listeners:d(u),managed:d(t).managed,passthrough:d(t).passthrough,checksum:d(f)}),y(r,!0),setTimeout(()=>y(r,!1),3e3),await g()}catch(Te){y(s,Te.message??"Save failed",!0)}finally{y(n,!1)}}}async function x(){y(a,!0),y(c,"");try{const Te=await j7();y(c,Te.stderr||Te.stdout||"Reloaded",!0)}catch(Te){y(c,"Error: "+(Te.message??"reload failed"))}finally{y(a,!1)}}function k(Te){var ut,Wt,Zt,Mt;return!!((ut=Te.tls)!=null&&ut.certfile||(Wt=Te.tls)!=null&&Wt.keyfile||(Zt=Te.tls)!=null&&Zt.capath||(Mt=Te.tls)!=null&&Mt.cafile)}function E(Te,ut){ut||(Te.tls={}),y(u,[...d(u)],!0)}var P=SQ(),A=v(P),$=b(v(A),2),H=v($),ie=b(H,2),J=v(ie),ue=b(ie,2),he=v(ue),We=b(A,2);{var xe=Te=>{var ut=vE(),Wt=v(ut);j(()=>O(Wt,d(i))),D(Te,ut)};W(We,Te=>{d(i)&&Te(xe)})}var rt=b(We,2);{var pt=Te=>{var ut=vE(),Wt=v(ut);j(()=>O(Wt,d(s))),D(Te,ut)};W(rt,Te=>{d(s)&&Te(pt)})}var ve=b(rt,2);{var dt=Te=>{var ut=pQ();D(Te,ut)};W(ve,Te=>{d(r)&&Te(dt)})}var gt=b(ve,2);{var Pt=Te=>{var ut=_Q(),Wt=v(ut);j(()=>O(Wt,d(c))),D(Te,ut)};W(gt,Te=>{d(c)&&Te(Pt)})}var fe=b(gt,2);{var Et=Te=>{var ut=mQ();D(Te,ut)},Oe=Te=>{var ut=wQ(),Wt=v(ut);mi(Wt,17,()=>d(u),Ji,(Lt,At,kt)=>{var Si=bQ(),hi=v(Si),Di=v(hi),Fi=v(Di),Ri=b(Di,2),Ni=b(hi,2),Ii=v(Ni),ci=b(v(Ii)),vi=b(Ii,2),it=b(v(vi)),zt=v(it);zt.value=zt.__value="mqtt";var gi=b(zt);gi.value=gi.__value="websockets";var Ti=b(vi,2),Zi=b(v(Ti)),Bi=b(Ni,2),zi=v(Bi),vn=v(zi),ln=b(Bi,2);{var Pi=Re=>{var jt=vQ(),di=v(jt),qt=v(di),Le=b(v(qt)),It=b(qt,2),ai=b(v(It)),pi=b(di,2),_i=v(pi),Fe=b(v(_i)),X=b(_i,2),ee=b(v(X)),de=b(pi,2),ke=v(de),$e=b(v(ke)),N=b(ke,2),Q=b(v(N)),oe=v(Q);oe.value=oe.__value="";var Ie=b(oe);Ie.value=Ie.__value="tlsv1.3";var De=b(Ie);De.value=De.__value="tlsv1.2";var B=b(de,2),q=v(B),Y=v(q),me=b(q,2),Qe=v(me);ti(Le,()=>d(At).tls.certfile,Ee=>d(At).tls.certfile=Ee),ti(ai,()=>d(At).tls.keyfile,Ee=>d(At).tls.keyfile=Ee),ti(Fe,()=>d(At).tls.cafile,Ee=>d(At).tls.cafile=Ee),ti(ee,()=>d(At).tls.capath,Ee=>d(At).tls.capath=Ee),ti($e,()=>d(At).tls.crlfile,Ee=>d(At).tls.crlfile=Ee),Ho(Q,()=>d(At).tls.tls_version,Ee=>d(At).tls.tls_version=Ee),Is(Y,()=>d(At).tls.require_certificate,Ee=>d(At).tls.require_certificate=Ee),Is(Qe,()=>d(At).tls.use_identity_as_username,Ee=>d(At).tls.use_identity_as_username=Ee),D(Re,jt)},yn=wt(()=>k(d(At)));W(ln,Re=>{d(yn)&&Re(Pi)})}j(Re=>{O(Fi,`Port ${d(At).port??""}`),Eg(vn,Re)},[()=>k(d(At))]),U("click",Ri,()=>w(kt)),ti(ci,()=>d(At).port,Re=>d(At).port=Re),Ho(it,()=>d(At).protocol,Re=>d(At).protocol=Re),ti(Zi,()=>d(At).bindAddress,Re=>d(At).bindAddress=Re),U("change",vn,Re=>E(d(At),Re.target.checked)),D(Lt,Si)});var Zt=b(Wt,2);{var Mt=Lt=>{var At=yQ();D(Lt,At)};W(Zt,Lt=>{d(u).length===0&&Lt(Mt)})}D(Te,ut)};W(fe,Te=>{d(t)===null&&!d(i)?Te(Et):Te(Oe,-1)})}j(()=>{ie.disabled=d(n),O(J,d(n)?"Saving…":"Save"),ue.disabled=d(a),O(he,d(a)?"Reloading…":"Apply & Reload")}),U("click",H,p),U("click",ie,m),U("click",ue,x),D(o,P),As()}Ks(["click","change"]);var ph=T('<div class="err svelte-9auejo"> </div>'),xQ=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 class="card-actions svelte-9auejo"><a class="btn-download svelte-9auejo" download="ca.crt">Download ca.crt</a></div></div>'),kQ=T('<div class="empty svelte-9auejo">No local CA generated yet.</div>'),LQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Local Certificate Authority</h3> <button class="svelte-9auejo"> </button></div> <!></div>'),IQ=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>'),DQ=T('<div class="empty svelte-9auejo">No managed server certificate yet. Generate one or configure paths manually in Listeners.</div>'),EQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Server Certificate</h3> <button class="svelte-9auejo"> </button></div> <!></div>'),TQ=T('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),PQ=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>'),MQ=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>'),RQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Trusted CA Certificates (capath)</h3> <button class="svelte-9auejo">+ Add CA cert</button></div> <!></div>'),NQ=T('<div class="empty svelte-9auejo">No client certificates issued yet.</div>'),AQ=T('<span class="badge-revoked svelte-9auejo">Revoked</span>'),OQ=T('<span class="badge-expired svelte-9auejo">Expired</span>'),FQ=T('<span class="badge-expiring svelte-9auejo">Expiring soon</span>'),HQ=T('<span class="badge-ok svelte-9auejo">Valid</span>'),WQ=T('<a class="btn-dl svelte-9auejo">.p12</a> <a class="btn-dl svelte-9auejo">.crt</a> <a class="btn-dl svelte-9auejo">.key</a> <button class="danger svelte-9auejo">Revoke</button>',1),BQ=T('<tr><td class="mono svelte-9auejo"> </td><td class="mono small svelte-9auejo"> </td><td class="svelte-9auejo"> </td><td> </td><td class="svelte-9auejo"><!></td><td class="actions svelte-9auejo"><!></td></tr>'),zQ=T('<table class="svelte-9auejo"><thead><tr><th class="svelte-9auejo">CN</th><th class="svelte-9auejo">Serial</th><th class="svelte-9auejo">Issued</th><th class="svelte-9auejo">Expires</th><th class="svelte-9auejo">Status</th><th class="svelte-9auejo"></th></tr></thead><tbody></tbody></table>'),VQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Issued Client Certificates</h3> <button class="svelte-9auejo">+ Issue cert</button></div> <!></div>'),jQ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate Local CA</h3> <label class="svelte-9auejo">Common Name<input 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">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),$Q=T('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Server cert generated</p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Cert path</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Key path</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd></dl> <p class="hint svelte-9auejo">Update your Listeners config to use these paths, then Apply & Reload.</p></div>'),UQ=T('<button class="btn-primary svelte-9auejo"> </button>'),qQ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate Server Certificate</h3> <label class="svelte-9auejo">Common Name (hostname)<input placeholder="mybroker.local" class="svelte-9auejo"/></label> <label class="svelte-9auejo">SANs (comma-separated IPs/hostnames)<input placeholder="192.168.1.10, mybroker.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>'),GQ=T('<label class="svelte-9auejo">Common Name (device ID)<input placeholder="esp32-bedroom" 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">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),KQ=T('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Certificate issued for <strong> </strong></p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Serial</dt><dd class="mono svelte-9auejo"> </dd> <dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Expires</dt><dd class="svelte-9auejo"> </dd> <dt class="svelte-9auejo">PKCS#12 passphrase</dt> <dd class="svelte-9auejo"><code class="passphrase svelte-9auejo"> </code> <small>(shown once — save it now)</small></dd></dl> <div class="download-row svelte-9auejo"><a class="btn-dl svelte-9auejo">Download .p12</a> <a class="btn-dl svelte-9auejo">Download .crt</a> <a class="btn-dl svelte-9auejo">Download .key</a> <a class="btn-dl svelte-9auejo" download="ca.crt">Download CA</a></div></div> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button></div>',1),ZQ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Issue Client Certificate</h3> <!></div></div>'),XQ=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> <label class="svelte-9auejo">PEM certificate <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></div></div>'),YQ=T('<div class="certs-page svelte-9auejo"><div class="panel-tabs svelte-9auejo"><button>Local CA</button> <button>Server Cert</button> <button>Trusted CAs</button> <button>Client Certs</button> <button class="reload-btn svelte-9auejo" title="Refresh">↺</button></div> <!> <!> <!></div> <!> <!> <!> <!>',1);function QQ(o,e){Ns(e,!0);let t=M("ca"),i=M(null),n=M(null),s=M(yi([])),r=M(yi([])),a=M(""),c=M(!1),u=M("she-broker-ca"),f=M(365),g=M(!1),p=M(""),w=M(!1),m=M(""),x=M(""),k=M(365),E=M(!1),P=M(""),A=M(null),$=M(!1),H=M(""),ie=M(365),J=M(!1),ue=M(""),he=M(null),We=M(!1),xe=M(""),rt=M(!1),pt=M(""),ve=M("");async function dt(){try{const[Le,It,ai,pi]=await Promise.allSettled([rq(),lq(),dq(),fq()]);Le.status==="fulfilled"&&y(i,Le.value.ca,!0),It.status==="fulfilled"&&y(n,It.value.server,!0),ai.status==="fulfilled"&&y(s,ai.value.certs,!0),pi.status==="fulfilled"&&y(r,pi.value.certs,!0),y(a,"")}catch(Le){y(a,Le.message,!0)}}ao(()=>{dt()});async function gt(){y(p,""),y(g,!0);try{await aq({cn:d(u),days:d(f)}),y(c,!1),await dt()}catch(Le){y(p,Le.message,!0)}finally{y(g,!1)}}async function Pt(){y(P,""),y(E,!0),y(A,null);try{const Le=d(x).split(",").map(ai=>ai.trim()).filter(Boolean),It=await cq({cn:d(m),san:Le,days:d(k)});y(A,It,!0),await dt()}catch(Le){y(P,Le.message,!0)}finally{y(E,!1)}}async function fe(){y(ue,""),y(J,!0),y(he,null);try{const Le=await uq({cn:d(H),days:d(ie)});y(he,Le,!0),y(H,""),await dt()}catch(Le){y(ue,Le.message,!0)}finally{y(J,!1)}}async function Et(Le){if(confirm(`Revoke certificate for "${Le.cn}" (serial ${Le.serial})?`))try{await hq(Le.serial),await dt()}catch(It){y(ve,It.message,!0)}}async function Oe(){y(pt,""),y(rt,!0);try{await gq(d(xe)),y(xe,""),y(We,!1),await dt()}catch(Le){y(pt,Le.message,!0)}finally{y(rt,!1)}}async function Te(Le){if(confirm("Remove this trusted CA cert?"))try{await pq(Le),await dt()}catch(It){y(ve,It.message,!0)}}function ut(Le){const It=new Date(Le).getTime()-Date.now();return It<0?"expired":It<30*864e5?"expiring":""}function Wt(Le){return new Date(Le).toLocaleDateString()}var Zt=YQ(),Mt=Ct(Zt),Lt=v(Mt),At=v(Lt);let kt;var Si=b(At,2);let hi;var Di=b(Si,2);let Fi;var Ri=b(Di,2);let Ni;var Ii=b(Ri,2),ci=b(Lt,2);{var vi=Le=>{var It=ph(),ai=v(It);j(()=>O(ai,d(a))),D(Le,It)};W(ci,Le=>{d(a)&&Le(vi)})}var it=b(ci,2);{var zt=Le=>{var It=ph(),ai=v(It);j(()=>O(ai,d(ve))),D(Le,It)};W(it,Le=>{d(ve)&&Le(zt)})}var gi=b(it,2);{var Ti=Le=>{var It=LQ(),ai=v(It),pi=b(v(ai),2),_i=v(pi),Fe=b(ai,2);{var X=de=>{var ke=xQ(),$e=v(ke),N=b(v($e)),Q=v(N),oe=b(N,3),Ie=v(oe),De=b(oe,3),B=v(De),q=b($e,2),Y=v(q);j((me,Qe,Ee)=>{O(Q,d(i).cn),O(Ie,d(i).fingerprint),Tt(De,1,me,"svelte-9auejo"),O(B,Qe),Ai(Y,"href",`data:application/x-pem-file;charset=utf-8,${Ee??""}`)},[()=>ud(ut(d(i).expires)),()=>Wt(d(i).expires),()=>encodeURIComponent(d(i).crt)]),D(de,ke)},ee=de=>{var ke=kQ();D(de,ke)};W(Fe,de=>{d(i)?de(X):de(ee,-1)})}j(()=>O(_i,d(i)?"Regenerate CA":"Generate CA")),U("click",pi,()=>{y(c,!0),y(p,"")}),D(Le,It)},Zi=Le=>{var It=EQ(),ai=v(It),pi=b(v(ai),2),_i=v(pi),Fe=b(ai,2);{var X=de=>{var ke=IQ(),$e=v(ke),N=b(v($e)),Q=v(N),oe=b(N,3),Ie=v(oe),De=b(oe,3),B=v(De);j((q,Y)=>{O(Q,d(n).cn),O(Ie,d(n).fingerprint),Tt(De,1,q,"svelte-9auejo"),O(B,Y)},[()=>ud(ut(d(n).expires)),()=>Wt(d(n).expires)]),D(de,ke)},ee=de=>{var ke=DQ();D(de,ke)};W(Fe,de=>{d(n)?de(X):de(ee,-1)})}j(()=>O(_i,d(n)?"Regenerate":"Generate server cert")),U("click",pi,()=>{y(w,!0),y(P,""),y(A,null)}),D(Le,It)},Bi=Le=>{var It=RQ(),ai=v(It),pi=b(v(ai),2),_i=b(ai,2);{var Fe=ee=>{var de=TQ();D(ee,de)},X=ee=>{var de=MQ(),ke=b(v(de));mi(ke,21,()=>d(r),Ji,($e,N)=>{var Q=PQ(),oe=v(Q),Ie=v(oe),De=b(oe),B=v(De),q=b(De),Y=v(q),me=b(q),Qe=v(me);j((Ee,Se,lt)=>{O(Ie,d(N).cn),O(B,`${Ee??""}…`),Tt(q,1,Se,"svelte-9auejo"),O(Y,lt)},[()=>d(N).fingerprint.slice(0,29),()=>ud(ut(d(N).expires)),()=>Wt(d(N).expires)]),U("click",Qe,()=>Te(d(N).fingerprint)),D($e,Q)}),D(ee,de)};W(_i,ee=>{d(r).length===0?ee(Fe):ee(X,-1)})}U("click",pi,()=>{y(We,!0),y(pt,""),y(xe,"")}),D(Le,It)},zi=Le=>{var It=VQ(),ai=v(It),pi=b(v(ai),2),_i=b(ai,2);{var Fe=ee=>{var de=NQ();D(ee,de)},X=ee=>{var de=zQ(),ke=b(v(de));mi(ke,21,()=>d(s),Ji,($e,N)=>{var Q=BQ(),oe=v(Q),Ie=v(oe),De=b(oe),B=v(De),q=b(De),Y=v(q),me=b(q),Qe=v(me),Ee=b(me),Se=v(Ee);{var lt=nt=>{var Ye=AQ();D(nt,Ye)},Bt=nt=>{var Ye=OQ();D(nt,Ye)},St=wt(()=>ut(d(N).expires)==="expired"),Dt=nt=>{var Ye=FQ();D(nt,Ye)},Ft=wt(()=>ut(d(N).expires)==="expiring"),ne=nt=>{var Ye=HQ();D(nt,Ye)};W(Se,nt=>{d(N).revoked?nt(lt):d(St)?nt(Bt,1):d(Ft)?nt(Dt,2):nt(ne,-1)})}var _e=b(Ee),Be=v(_e);{var at=nt=>{var Ye=WQ(),Rt=Ct(Ye),ri=b(Rt,2),fi=b(ri,2),Ci=b(fi,2);j((en,fn,cn)=>{Ai(Rt,"href",en),Ai(Rt,"download",`${d(N).cn??""}.p12`),Ai(ri,"href",fn),Ai(ri,"download",`${d(N).cn??""}.crt`),Ai(fi,"href",cn),Ai(fi,"download",`${d(N).cn??""}.key`)},[()=>Jc(d(N).serial,"p12"),()=>Jc(d(N).serial,"crt"),()=>Jc(d(N).serial,"key")]),U("click",Ci,()=>Et(d(N))),D(nt,Ye)};W(Be,nt=>{d(N).revoked||nt(at)})}j((nt,Ye,Rt)=>{O(Ie,d(N).cn),O(B,d(N).serial),O(Y,nt),Tt(me,1,Ye,"svelte-9auejo"),O(Qe,Rt)},[()=>new Date(d(N).issued).toLocaleDateString(),()=>ud(d(N).revoked?"":ut(d(N).expires)),()=>Wt(d(N).expires)]),D($e,Q)}),D(ee,de)};W(_i,ee=>{d(s).length===0?ee(Fe):ee(X,-1)})}U("click",pi,()=>{y($,!0),y(ue,""),y(he,null),y(H,""),y(ie,365)}),D(Le,It)};W(gi,Le=>{d(t)==="ca"?Le(Ti):d(t)==="server"?Le(Zi,1):d(t)==="trusted"?Le(Bi,2):d(t)==="clients"&&Le(zi,3)})}var vn=b(Mt,2);{var ln=Le=>{var It=jQ(),ai=v(It),pi=b(v(ai),2),_i=b(v(pi)),Fe=b(pi,2),X=b(v(Fe)),ee=b(Fe,2);{var de=oe=>{var Ie=ph(),De=v(Ie);j(()=>O(De,d(p))),D(oe,Ie)};W(ee,oe=>{d(p)&&oe(de)})}var ke=b(ee,2),$e=v(ke),N=b($e,2),Q=v(N);j(()=>{N.disabled=d(g)||!d(u),O(Q,d(g)?"Generating…":"Generate")}),ti(_i,()=>d(u),oe=>y(u,oe)),ti(X,()=>d(f),oe=>y(f,oe)),U("click",$e,()=>y(c,!1)),U("click",N,gt),D(Le,It)};W(vn,Le=>{d(c)&&Le(ln)})}var Pi=b(vn,2);{var yn=Le=>{var It=qQ(),ai=v(It),pi=b(v(ai),2),_i=b(v(pi)),Fe=b(pi,2),X=b(v(Fe)),ee=b(Fe,2),de=b(v(ee)),ke=b(ee,2);{var $e=q=>{var Y=ph(),me=v(Y);j(()=>O(me,d(P))),D(q,Y)};W(ke,q=>{d(P)&&q($e)})}var N=b(ke,2);{var Q=q=>{var Y=$Q(),me=b(v(Y),2),Qe=b(v(me)),Ee=v(Qe),Se=b(Qe,3),lt=v(Se),Bt=b(Se,3),St=v(Bt);j(()=>{O(Ee,d(A).certPath),O(lt,d(A).keyPath),O(St,d(A).fingerprint)}),D(q,Y)};W(N,q=>{d(A)&&q(Q)})}var oe=b(N,2),Ie=v(oe),De=b(Ie,2);{var B=q=>{var Y=UQ(),me=v(Y);j(()=>{Y.disabled=d(E)||!d(m),O(me,d(E)?"Generating…":"Generate")}),U("click",Y,Pt),D(q,Y)};W(De,q=>{d(A)||q(B)})}ti(_i,()=>d(m),q=>y(m,q)),ti(X,()=>d(x),q=>y(x,q)),ti(de,()=>d(k),q=>y(k,q)),U("click",Ie,()=>y(w,!1)),D(Le,It)};W(Pi,Le=>{d(w)&&Le(yn)})}var Re=b(Pi,2);{var jt=Le=>{var It=ZQ(),ai=v(It),pi=b(v(ai),2);{var _i=X=>{var ee=GQ(),de=Ct(ee),ke=b(v(de)),$e=b(de,2),N=b(v($e)),Q=b($e,2);{var oe=Y=>{var me=ph(),Qe=v(me);j(()=>O(Qe,d(ue))),D(Y,me)};W(Q,Y=>{d(ue)&&Y(oe)})}var Ie=b(Q,2),De=v(Ie),B=b(De,2),q=v(B);j(()=>{B.disabled=d(J)||!d(H),O(q,d(J)?"Issuing…":"Issue")}),ti(ke,()=>d(H),Y=>y(H,Y)),ti(N,()=>d(ie),Y=>y(ie,Y)),U("click",De,()=>y($,!1)),U("click",B,fe),D(X,ee)},Fe=X=>{var ee=KQ(),de=Ct(ee),ke=v(de),$e=b(v(ke)),N=v($e),Q=b(ke,2),oe=b(v(Q)),Ie=v(oe),De=b(oe,3),B=v(De),q=b(De,3),Y=v(q),me=b(q,4),Qe=v(me),Ee=v(Qe),Se=b(Q,2),lt=v(Se),Bt=b(lt,2),St=b(Bt,2),Dt=b(St,2),Ft=b(de,2),ne=v(Ft);j((_e,Be,at,nt,Ye)=>{O(N,d(he).cn),O(Ie,d(he).serial),O(B,d(he).fingerprint),O(Y,_e),O(Ee,d(he).passphrase),Ai(lt,"href",Be),Ai(lt,"download",`${d(he).cn??""}.p12`),Ai(Bt,"href",at),Ai(Bt,"download",`${d(he).cn??""}.crt`),Ai(St,"href",nt),Ai(St,"download",`${d(he).cn??""}.key`),Ai(Dt,"href",Ye)},[()=>Wt(d(he).expires),()=>Jc(d(he).serial,"p12"),()=>Jc(d(he).serial,"crt"),()=>Jc(d(he).serial,"key"),()=>Jc(d(he).serial,"ca")]),U("click",ne,()=>y($,!1)),D(X,ee)};W(pi,X=>{d(he)?X(Fe,-1):X(_i)})}D(Le,It)};W(Re,Le=>{d($)&&Le(jt)})}var di=b(Re,2);{var qt=Le=>{var It=XQ(),ai=v(It),pi=b(v(ai),2),_i=b(v(pi)),Fe=b(pi,2);{var X=N=>{var Q=ph(),oe=v(Q);j(()=>O(oe,d(pt))),D(N,Q)};W(Fe,N=>{d(pt)&&N(X)})}var ee=b(Fe,2),de=v(ee),ke=b(de,2),$e=v(ke);j(()=>{ke.disabled=d(rt)||!d(xe),O($e,d(rt)?"Adding…":"Add")}),ti(_i,()=>d(xe),N=>y(xe,N)),U("click",de,()=>y(We,!1)),U("click",ke,Oe),D(Le,It)};W(di,Le=>{d(We)&&Le(qt)})}j(()=>{kt=Tt(At,1,"svelte-9auejo",null,kt,{active:d(t)==="ca"}),hi=Tt(Si,1,"svelte-9auejo",null,hi,{active:d(t)==="server"}),Fi=Tt(Di,1,"svelte-9auejo",null,Fi,{active:d(t)==="trusted"}),Ni=Tt(Ri,1,"svelte-9auejo",null,Ni,{active:d(t)==="clients"})}),U("click",At,()=>y(t,"ca")),U("click",Si,()=>y(t,"server")),U("click",Di,()=>y(t,"trusted")),U("click",Ri,()=>y(t,"clients")),U("click",Ii,dt),D(o,Zt),As()}Ks(["click"]);var _S=T('<div class="err svelte-17yczfe"> </div>'),JQ=T('<div class="ok svelte-17yczfe">Saved.</div>'),eJ=T('<label class="svelte-17yczfe">Install command (run on your local machine) <div class="pubkey-row svelte-17yczfe"><input readonly="" class="svelte-17yczfe"/> <button class="copy-btn svelte-17yczfe">Copy</button></div></label>'),tJ=T('<label class="svelte-17yczfe">Public key (copy and install on the broker host) <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),iJ=T('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),nJ=T("<span> </span>"),sJ=T(`<div class="ssh-page svelte-17yczfe"><!> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH / Remote Mode</h3> <p class="hint svelte-17yczfe">SSH is used only for file operations (mosquitto.conf, certificates). User/ACL management works without SSH as long as she is connected to the broker's MQTT port.</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 class="row svelte-17yczfe"><button class="btn-primary svelte-17yczfe"> </button></div></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH Keypair</h3> <p class="hint svelte-17yczfe">Generate a dedicated Ed25519 keypair for she to authenticate to the broker host. The private key is stored at <code class="svelte-17yczfe"> </code>.</p> <!> <!></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Test SSH Connection</h3> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button> <!></div></div></div>`);function oJ(o,e){Ns(e,!0);let t=M(yi({})),i=M(""),n=M(!1),s=M(!1),r=M(""),a=M("~/.she/ssh/broker_id_ed25519"),c=M(""),u=M(!1),f=M(""),g=M(!1),p=M(""),w=M(yi({}));ao(async()=>{try{const[it,zt,gi]=await Promise.all([Dl(),UN(),fetch("/she/broker/ssh/pubkey").then(Zi=>Zi.json()).catch(()=>({publicKey:null}))]);y(w,it,!0),zt.sshKeyDefault&&y(a,zt.sshKeyDefault,!0);const Ti=d(w).broker??{};y(t,Ti.ssh??{},!0),d(t).port||(d(t).port=22),d(t).identityFile||(d(t).identityFile=d(a)),gi.publicKey&&y(c,gi.publicKey,!0)}catch(it){y(i,it.message,!0)}});async function m(){y(n,!0),y(r,""),y(s,!1);try{const it=d(w).broker??{},zt={...d(w),broker:{...it,ssh:d(t)}};await Xp(zt),y(s,!0),setTimeout(()=>y(s,!1),3e3)}catch(it){y(r,it.message,!0)}finally{y(n,!1)}}async function x(){y(u,!0),y(f,"");try{const it=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),zt=await it.json();if(!it.ok)throw new Error(zt.error??it.statusText);y(c,zt.publicKey,!0)}catch(it){y(f,it.message,!0)}finally{y(u,!1)}}async function k(){y(g,!0),y(p,"");try{const it=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),zt=await it.json();if(!it.ok)throw new Error(zt.error??it.statusText);y(p,zt.ok?"✓ Connection successful":"✗ "+(zt.error??"Failed"),!0)}catch(it){y(p,"✗ "+it.message)}finally{y(g,!1)}}function E(it){navigator.clipboard.writeText(it).catch(()=>{})}const P=wt(()=>d(t).identityFile&&d(t).user&&d(t).host?`ssh-copy-id -i ${d(t).identityFile}.pub ${d(t).user}@${d(t).host}`:"");var A=sJ(),$=v(A);{var H=it=>{var zt=_S(),gi=v(zt);j(()=>O(gi,d(i))),D(it,zt)};W($,it=>{d(i)&&it(H)})}var ie=b($,2),J=b(v(ie),4),ue=v(J),he=b(v(ue)),We=b(ue,2),xe=b(v(We)),rt=b(We,2),pt=b(v(rt)),ve=b(rt,2),dt=b(v(ve)),gt=b(J,2);{var Pt=it=>{var zt=_S(),gi=v(zt);j(()=>O(gi,d(r))),D(it,zt)};W(gt,it=>{d(r)&&it(Pt)})}var fe=b(gt,2);{var Et=it=>{var zt=JQ();D(it,zt)};W(fe,it=>{d(s)&&it(Et)})}var Oe=b(fe,2),Te=v(Oe),ut=v(Te),Wt=b(ie,2),Zt=b(v(Wt),2),Mt=b(v(Zt)),Lt=v(Mt),At=b(Zt,2);{var kt=it=>{var zt=tJ(),gi=Ct(zt),Ti=b(v(gi)),Zi=v(Ti),Bi=b(Zi,2),zi=b(gi,2);{var vn=Re=>{var jt=eJ(),di=b(v(jt)),qt=v(di),Le=b(qt,2);j(()=>UL(qt,d(P))),U("click",Le,()=>E(d(P))),D(Re,jt)};W(zi,Re=>{d(P)&&Re(vn)})}var ln=b(zi,2),Pi=v(ln),yn=v(Pi);j(()=>{UL(Zi,d(c)),Pi.disabled=d(u),O(yn,d(u)?"Generating…":"Regenerate keypair")}),U("click",Bi,()=>E(d(c))),U("click",Pi,x),D(it,zt)},Si=it=>{var zt=iJ(),gi=v(zt),Ti=v(gi);j(()=>{gi.disabled=d(u),O(Ti,d(u)?"Generating…":"Generate keypair")}),U("click",gi,x),D(it,zt)};W(At,it=>{d(c)?it(kt):it(Si,-1)})}var hi=b(At,2);{var Di=it=>{var zt=_S(),gi=v(zt);j(()=>O(gi,d(f))),D(it,zt)};W(hi,it=>{d(f)&&it(Di)})}var Fi=b(Wt,2),Ri=b(v(Fi),2),Ni=v(Ri),Ii=v(Ni),ci=b(Ni,2);{var vi=it=>{var zt=nJ();let gi;var Ti=v(zt);j(Zi=>{gi=Tt(zt,1,"test-result svelte-17yczfe",null,gi,Zi),O(Ti,d(p))},[()=>({ok:d(p).startsWith("✓"),fail:d(p).startsWith("✗")})]),D(it,zt)};W(ci,it=>{d(p)&&it(vi)})}j(()=>{Ai(dt,"placeholder",d(a)),Te.disabled=d(n),O(ut,d(n)?"Saving…":"Save"),O(Lt,d(t).identityFile||d(a)),Ni.disabled=d(g)||!d(t).host,O(Ii,d(g)?"Testing…":"Test SSH connection")}),ti(he,()=>d(t).host,it=>d(t).host=it),ti(xe,()=>d(t).port,it=>d(t).port=it),ti(pt,()=>d(t).user,it=>d(t).user=it),ti(dt,()=>d(t).identityFile,it=>d(t).identityFile=it),U("click",Te,m),U("click",Ni,k),D(o,A),As()}Ks(["click"]);var rJ=T('<div class="err svelte-d31be1"> </div>'),aJ=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>'),lJ=T('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),cJ=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>'),dJ=T('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),uJ=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>`),hJ=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>'),fJ=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>'),gJ=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 pJ(o,e){Ns(e,!0);let t=M("intro"),i=M(""),n=M(!1),s=M("she-admin"),r=M(""),a=M("/etc/mosquitto"),c=M(null),u=M(!1),f=M(!1),g=M("she-admin"),p=M(""),w=M(!1);async function m(){y(n,!0),y(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?y(t,"done"):y(t,"config")}catch(ve){y(i,ve.message,!0)}finally{y(n,!1)}}async function x(){y(n,!0),y(i,"");try{const ve=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:d(s),adminPassword:d(r)||void 0,configDir:d(a)})}),dt=await ve.json();if(!ve.ok||!dt.ok)throw new Error(dt.error??"Bootstrap failed");y(c,dt,!0);const gt=await Dl(),Pt=gt.broker??{};await Xp({...gt,broker:{...Pt,dynsec:{adminUsername:dt.adminUsername,adminPassword:dt.adminPassword}}}),await q7().catch(()=>{}),y(t,"restart")}catch(ve){y(i,ve.message,!0)}finally{y(n,!1)}}async function k(){y(f,!0),y(i,"");try{await $7(),await new Promise(ve=>setTimeout(ve,2e3)),y(u,!0),y(t,"done")}catch(ve){y(i,ve.message,!0)}finally{y(f,!1)}}async function E(){y(w,!0),y(i,"");try{const ve=await Dl(),dt=ve.broker??{};await Xp({...ve,broker:{...dt,dynsec:{adminUsername:d(g),adminPassword:d(p)}}}),y(t,"done")}catch(ve){y(i,ve.message,!0)}finally{y(w,!1)}}var P=gJ(),A=v(P),$=b(v(A),2),H=b(A,2);{var ie=ve=>{var dt=rJ(),gt=v(dt);j(()=>O(gt,d(i))),D(ve,dt)};W(H,ve=>{d(i)&&ve(ie)})}var J=b(H,2);{var ue=ve=>{var dt=aJ(),gt=b(v(dt),6),Pt=v(gt);j(()=>Pt.disabled=d(n)),U("click",Pt,()=>{y(t,"probe"),m()}),D(ve,dt)},he=ve=>{var dt=lJ(),gt=v(dt),Pt=v(gt);j(()=>O(Pt,d(n)?"Probing dynsec…":"Checking dynsec status…")),D(ve,dt)},We=ve=>{var dt=cJ(),gt=b(v(dt),2),Pt=b(v(gt)),fe=b(gt,2),Et=b(v(fe)),Oe=b(fe,2),Te=b(v(Oe)),ut=b(Oe,2),Wt=v(ut),Zt=v(Wt);j(()=>{Wt.disabled=d(n)||!d(s),O(Zt,d(n)?"Bootstrapping…":"Bootstrap dynsec")}),ti(Pt,()=>d(s),Mt=>y(s,Mt)),ti(Et,()=>d(r),Mt=>y(r,Mt)),ti(Te,()=>d(a),Mt=>y(a,Mt)),U("click",Wt,x),D(ve,dt)},xe=ve=>{var dt=uJ(),gt=b(v(dt),2),Pt=b(v(gt),3),fe=v(Pt),Et=b(gt,4),Oe=v(Et),Te=v(Oe),ut=b(Oe,2),Wt=b(Et,2);{var Zt=Mt=>{var Lt=dJ();D(Mt,Lt)};W(Wt,Mt=>{d(f)&&Mt(Zt)})}j(()=>{O(fe,d(c).confFilePath),Oe.disabled=d(f),O(Te,d(f)?"Restarting…":"Restart mosquitto now")}),U("click",Oe,k),U("click",ut,()=>{y(t,"done")}),D(ve,dt)},rt=ve=>{var dt=hJ(),gt=b(v(dt),4),Pt=v(gt);U("click",Pt,function(...fe){var Et;(Et=e.onDone)==null||Et.apply(this,fe)}),D(ve,dt)},pt=ve=>{var dt=fJ(),gt=b(v(dt),2),Pt=b(v(gt)),fe=b(gt,2),Et=b(v(fe)),Oe=b(fe,2),Te=v(Oe),ut=b(Te,2),Wt=v(ut);j(()=>{ut.disabled=d(w)||!d(g)||!d(p),O(Wt,d(w)?"Saving…":"Save credentials")}),ti(Pt,()=>d(g),Zt=>y(g,Zt)),ti(Et,()=>d(p),Zt=>y(p,Zt)),U("click",Te,()=>y(t,"intro")),U("click",ut,E),D(ve,dt)};W(J,ve=>{d(t)==="intro"?ve(ue):d(t)==="probe"?ve(he,1):d(t)==="config"?ve(We,2):d(t)==="restart"&&d(c)?ve(xe,3):d(t)==="done"?ve(rt,4):d(t)==="manual"&&ve(pt,5)})}U("click",$,()=>y(t,"manual")),D(o,P),As()}Ks(["click"]);var _J=T('<div class="loading svelte-zeztkb">Loading…</div>'),mJ=T('<div class="error-banner svelte-zeztkb"> </div>'),vJ=T('<button class="deactivate-btn svelte-zeztkb"> </button>'),bJ=T('<div class="error-inline svelte-zeztkb"> </div>'),yJ=T('<div class="status-badge ok svelte-zeztkb">Connected</div>'),wJ=T('<button class="diag-btn svelte-zeztkb"> </button>'),bE=T('<p class="diag-issue svelte-zeztkb"> </p>'),SJ=T('<p class="diag-ok-msg svelte-zeztkb">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),CJ=T('<p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">File</span><code class="svelte-zeztkb"> </code></p> <p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">Admin user exists</span><span> </span></p> <p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">Has admin role</span><span> </span></p> <p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">$CONTROL publish ACL</span><span> </span></p> <!> <!>',1),xJ=T('<div><!></div> <button class="diag-btn svelte-zeztkb" style="margin-top:6px"> </button>',1),yE=T('<button class="wizard-btn svelte-zeztkb">Run Setup Wizard</button>'),kJ=T('<div class="status-badge warn svelte-zeztkb">Connected — plugin not responding</div> <p class="hint svelte-zeztkb">The MQTT connection is up but the dynamic-security plugin is not responding.</p> <!> <!>',1),LJ=T('<div class="status-badge err svelte-zeztkb">Disconnected</div>'),IJ=T('<div class="status-badge warn svelte-zeztkb">Not configured</div> <p class="hint svelte-zeztkb">Set <code class="svelte-zeztkb">broker.dynsec.adminUsername</code> and <code class="svelte-zeztkb">broker.dynsec.adminPassword</code> in Config to enable dynsec management.</p> <!>',1),DJ=T('<div style="margin-top: 20px;"><!></div>'),EJ=T('<div class="status-grid svelte-zeztkb"><div class="status-card svelte-zeztkb"><div class="card-header svelte-zeztkb"><h3 class="svelte-zeztkb">Dynamic Security</h3> <!></div> <!> <!></div> <div class="status-card svelte-zeztkb"><h3 class="svelte-zeztkb">Broker</h3> <dl class="svelte-zeztkb"><dt class="svelte-zeztkb">Version</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Uptime</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Clients connected</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Clients total</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Messages received</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Messages sent</dt> <dd class="svelte-zeztkb"> </dd></dl></div></div> <!>',1),TJ=T('<div class="tab-content svelte-zeztkb"><!></div>'),PJ=T('<div class="broker-page svelte-zeztkb"><div class="sub-nav svelte-zeztkb"><button>Status</button> <button>Users & Roles</button> <button>Listeners</button> <button>Certificates</button> <button>SSH / Remote</button></div> <!></div>');function MJ(o,e){Ns(e,!0);let t=M(!1),i=M(!1),n=M(""),s=M(!1),r=M(null);const a="she-broker-tab";let c=M(yi(localStorage.getItem(a)??"status"));zn(()=>{localStorage.setItem(a,d(c))});let u=M(null),f=M(""),g=M(!0);async function p(){try{y(u,await UN(),!0),y(f,"")}catch(fe){y(f,fe.message??"Failed to load broker status",!0)}finally{y(g,!1)}}ao(()=>{p();const fe=setInterval(p,1e4);return()=>clearInterval(fe)});async function w(){y(s,!0),y(r,null);try{y(r,await G7(),!0)}catch(fe){y(r,{ok:!1,dynSecPath:"",issues:[fe.message??"Diagnose request failed"]},!0)}finally{y(s,!1)}}async function m(){if(confirm("Remove dynsec plugin lines from mosquitto.conf and clear credentials? You will need to restart mosquitto afterwards.")){y(i,!0),y(n,"");try{await U7(),await p()}catch(fe){y(n,fe.message??"Deactivate failed",!0)}finally{y(i,!1)}}}function x(fe){var Oe;if(!((Oe=d(u))!=null&&Oe.sys))return"—";const Et=d(u).sys[fe];return Et?String(Et.val??"—"):"—"}var k=PJ(),E=v(k),P=v(E);let A;var $=b(P,2);let H;var ie=b($,2);let J;var ue=b(ie,2);let he;var We=b(ue,2);let xe;var rt=b(E,2);{var pt=fe=>{var Et=TJ(),Oe=v(Et);{var Te=Zt=>{var Mt=_J();D(Zt,Mt)},ut=Zt=>{var Mt=mJ(),Lt=v(Mt);j(()=>O(Lt,d(f))),D(Zt,Mt)},Wt=Zt=>{var Mt=EJ(),Lt=Ct(Mt),At=v(Lt),kt=v(At),Si=b(v(kt),2);{var hi=qt=>{var Le=vJ(),It=v(Le);j(()=>{Le.disabled=d(i),O(It,d(i)?"Deactivating…":"Deactivate")}),U("click",Le,m),D(qt,Le)};W(Si,qt=>{d(u).dynsec.configured&&qt(hi)})}var Di=b(kt,2);{var Fi=qt=>{var Le=bJ(),It=v(Le);j(()=>O(It,d(n))),D(qt,Le)};W(Di,qt=>{d(n)&&qt(Fi)})}var Ri=b(Di,2);{var Ni=qt=>{var Le=Rs(),It=Ct(Le);{var ai=_i=>{var Fe=Rs(),X=Ct(Fe);{var ee=ke=>{var $e=yJ();D(ke,$e)},de=ke=>{var $e=kJ(),N=b(Ct($e),4);{var Q=B=>{var q=wJ(),Y=v(q);j(()=>{q.disabled=d(s),O(Y,d(s)?"Running diagnostics…":"Run diagnostics")}),U("click",q,w),D(B,q)},oe=B=>{var q=xJ(),Y=Ct(q);let me;var Qe=v(Y);{var Ee=St=>{var Dt=bE(),Ft=v(Dt);j(()=>O(Ft,`⚠ ${d(r).error??""}`)),D(St,Dt)},Se=St=>{var Dt=CJ(),Ft=Ct(Dt),ne=b(v(Ft)),_e=v(ne),Be=b(Ft,2),at=b(v(Be)),nt=v(at),Ye=b(Be,2),Rt=b(v(Ye)),ri=v(Rt),fi=b(Ye,2),Ci=b(v(fi)),en=v(Ci),fn=b(fi,2);mi(fn,17,()=>d(r).issues,Ji,(Xi,z)=>{var te=bE(),Ge=v(te);j(()=>O(Ge,`⚠ ${d(z)??""}`)),D(Xi,te)});var cn=b(fn,2);{var ki=Xi=>{var z=SJ();D(Xi,z)};W(cn,Xi=>{d(r).ok&&Xi(ki)})}j(()=>{O(_e,d(r).dynSecPath),Tt(at,1,ud(d(r).adminClientExists?"ok":"fail"),"svelte-zeztkb"),O(nt,d(r).adminClientExists?"✓ yes":"✗ no"),Tt(Rt,1,ud(d(r).hasAdminRole?"ok":"fail"),"svelte-zeztkb"),O(ri,d(r).hasAdminRole?"✓ yes":"✗ no"),Tt(Ci,1,ud(d(r).hasControlSendAcl?"ok":"fail"),"svelte-zeztkb"),O(en,d(r).hasControlSendAcl?"✓ present":"✗ missing")}),D(St,Dt)};W(Qe,St=>{d(r).error?St(Ee):St(Se,-1)})}var lt=b(Y,2),Bt=v(lt);j(()=>{me=Tt(Y,1,"diag-card svelte-zeztkb",null,me,{"diag-ok":d(r).ok,"diag-fail":!d(r).ok}),lt.disabled=d(s),O(Bt,d(s)?"Running…":"Re-run")}),U("click",lt,w),D(B,q)};W(N,B=>{d(r)?B(oe,-1):B(Q)})}var Ie=b(N,2);{var De=B=>{var q=yE();U("click",q,()=>y(t,!0)),D(B,q)};W(Ie,B=>{d(t)||B(De)})}D(ke,$e)};W(X,ke=>{d(u).dynsec.dynsecReady?ke(ee):ke(de,-1)})}D(_i,Fe)},pi=_i=>{var Fe=LJ();D(_i,Fe)};W(It,_i=>{d(u).dynsec.connected?_i(ai):_i(pi,-1)})}D(qt,Le)},Ii=qt=>{var Le=IJ(),It=b(Ct(Le),4);{var ai=pi=>{var _i=yE();U("click",_i,()=>y(t,!0)),D(pi,_i)};W(It,pi=>{d(t)||pi(ai)})}D(qt,Le)};W(Ri,qt=>{d(u).dynsec.configured?qt(Ni):qt(Ii,-1)})}var ci=b(At,2),vi=b(v(ci),2),it=b(v(vi),2),zt=v(it),gi=b(it,4),Ti=v(gi),Zi=b(gi,4),Bi=v(Zi),zi=b(Zi,4),vn=v(zi),ln=b(zi,4),Pi=v(ln),yn=b(ln,4),Re=v(yn),jt=b(Lt,2);{var di=qt=>{var Le=DJ(),It=v(Le);pJ(It,{onDone:()=>{y(t,!1),p()}}),D(qt,Le)};W(jt,qt=>{d(t)&&(!d(u).dynsec.configured||!d(u).dynsec.dynsecReady)&&qt(di)})}j((qt,Le,It,ai,pi,_i)=>{O(zt,qt),O(Ti,Le),O(Bi,It),O(vn,ai),O(Pi,pi),O(Re,_i)},[()=>x("$SYS/broker/version"),()=>x("$SYS/broker/uptime"),()=>x("$SYS/broker/clients/connected"),()=>x("$SYS/broker/clients/total"),()=>x("$SYS/broker/messages/received"),()=>x("$SYS/broker/messages/sent")]),D(Zt,Mt)};W(Oe,Zt=>{d(g)?Zt(Te):d(f)?Zt(ut,1):d(u)&&Zt(Wt,2)})}D(fe,Et)},ve=fe=>{{let Et=wt(()=>{var Oe;return((Oe=d(u))==null?void 0:Oe.dynsec.dynsecReady)??!1});gQ(fe,{get dynsecReady(){return d(Et)}})}},dt=fe=>{CQ(fe,{})},gt=fe=>{QQ(fe,{})},Pt=fe=>{oJ(fe,{})};W(rt,fe=>{d(c)==="status"?fe(pt):d(c)==="users"?fe(ve,1):d(c)==="listeners"?fe(dt,2):d(c)==="certs"?fe(gt,3):d(c)==="ssh"&&fe(Pt,4)})}j(()=>{A=Tt(P,1,"svelte-zeztkb",null,A,{active:d(c)==="status"}),H=Tt($,1,"svelte-zeztkb",null,H,{active:d(c)==="users"}),J=Tt(ie,1,"svelte-zeztkb",null,J,{active:d(c)==="listeners"}),he=Tt(ue,1,"svelte-zeztkb",null,he,{active:d(c)==="certs"}),xe=Tt(We,1,"svelte-zeztkb",null,xe,{active:d(c)==="ssh"})}),U("click",P,()=>y(c,"status")),U("click",$,()=>y(c,"users")),U("click",ie,()=>y(c,"listeners")),U("click",ue,()=>y(c,"certs")),U("click",We,()=>y(c,"ssh")),D(o,k),As()}Ks(["click"]);var RJ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),NJ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),AJ=T('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),OJ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),FJ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),HJ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),WJ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),BJ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),zJ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),VJ=T('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),jJ=T('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),$J=T('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),UJ=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>'),qJ=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>'),GJ=T('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),KJ=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),ZJ=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),XJ=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>'),YJ=T('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),QJ=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>'),JJ=T('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),eee=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>'),tee=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.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"><rect x="1" y="2" width="14" height="4" rx="1" class="svelte-1n46o8q"></rect><rect x="1" y="8" width="14" height="4" rx="1" class="svelte-1n46o8q"></rect><line x1="4" y1="4" x2="4" y2="4" class="svelte-1n46o8q"></line><circle cx="4" cy="4" r="0.8" fill="currentColor" stroke="none" class="svelte-1n46o8q"></circle><circle cx="4" cy="10" r="0.8" fill="currentColor" stroke="none" class="svelte-1n46o8q"></circle></svg> Broker</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>'),iee=T('<div class="login-error svelte-1n46o8q"> </div>'),nee=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>'),see=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>'),oee=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>'),ree=T("<!> <!> <!> <!>",1);function aee(o,e){Ns(e,!0);const t=["scripts","mqtt","matter","broker","db","logs","config","packages"];function i(){const kt=location.hash.slice(1);return t.includes(kt)?kt:"scripts"}let n=M(yi(i())),s=M(null),r=M(!1),a=M(!1),c=M(!1),u=M(!1),f=M("none"),g=M(""),p=M(!1),w=M(""),m=M(""),x=M(!1),k=M(!1);u7(()=>{y(p,!0)});async function E(){y(m,""),y(x,!0);try{await g7(d(w)),y(w,""),y(p,!1)}catch(kt){y(m,kt.message??"Login failed",!0)}finally{y(x,!1)}}async function P(){if(d(f)==="proxy"&&d(g)){window.location.href=d(g);return}await p7(),y(p,!0)}let A=M(null),$=M(!1),H=M(!1),ie=M(!1),J=M(!1),ue=M(yi([])),he=M(0),We=M(yi([]));const xe=wt(()=>d(We).filter(kt=>kt.online).length),rt=wt(()=>d(We).length===0?"none":d(xe)===d(We).length?"all":d(xe)>0?"some":"offline");let pt=M(!1),ve=M(!1);async function dt(){if(!await d(A).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;y($,!0);let kt;try{kt=(await Bg()).startedAt}catch{}try{await AN()}catch{}const Si=Date.now()+6e4;for(;Date.now()<Si;){await new Promise(hi=>setTimeout(hi,250));try{const hi=await Bg();if(kt===void 0||hi.startedAt!==kt){location.reload();return}}catch{}}location.reload()}async function gt(){y(c,!0);try{const kt=await w7();d(s)&&y(s,{...d(s),latestVersion:kt.latestVersion??void 0},!0)}catch{}finally{y(c,!1)}}async function Pt(){var hi,Di;if(!await d(A).show(`Update to v${(hi=d(s))==null?void 0:hi.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;y(a,!1),y(u,!0);const kt=(Di=d(s))==null?void 0:Di.startedAt;try{await y7()}catch{}const Si=Date.now()+18e4;for(;Date.now()<Si;){await new Promise(Fi=>setTimeout(Fi,1e3));try{const Fi=await Bg();if(kt===void 0||Fi.startedAt!==kt){location.reload();return}}catch{y(u,!1),y($,!0)}}location.reload()}function fe(kt){y(n,kt,!0),location.hash=kt}ao(async()=>{location.hash||(location.hash=d(n));const kt=()=>{y(n,i(),!0)};window.addEventListener("hashchange",kt);try{const ci=await f7();y(f,ci.mode,!0),y(g,ci.proxyLogoutUrl??"",!0),d(f)==="password"&&(await fetch("/she/scripts")).status===401&&y(p,!0)}catch{}y(k,!0);async function Si(){try{y(s,await Bg(),!0)}catch{}try{const[ci,vi]=await Promise.all([HN(),Dl()]);y(ue,Array.isArray(vi.pinnedPackages)?vi.pinnedPackages:[],!0),y(he,Object.keys(ci).filter(it=>!d(ue).includes(it)).length,!0)}catch{}}Si();const hi=setInterval(Si,5e3),Di=kr("mqtt:status",ci=>{ci.connected===!1?(y(J,!0),y(H,!1),y(ie,!1)):(y(J,!1),y(H,ci.ready===!1),y(ie,ci.ready===!0))}),Fi=kr("matter:deviceList",ci=>{Array.isArray(ci.devices)&&y(We,ci.devices.map(vi=>({nodeId:String(vi.nodeId),online:!!vi.online})),!0)}),Ri=kr("matter:deviceStatus",ci=>{if(ci.nodeId===void 0)return;const vi=String(ci.nodeId),it=!!ci.online;y(We,d(We).map(zt=>zt.nodeId===vi?{...zt,online:it}:zt),!0)}),Ni=qN();y(pt,Ni.some(ci=>ci.level==="error"),!0),y(ve,!d(pt)&&Ni.some(ci=>ci.level==="warn"),!0);const Ii=kk(ci=>{ci.level==="error"?(y(pt,!0),y(ve,!1)):ci.level==="warn"&&!d(pt)&&y(ve,!0)});return()=>{window.removeEventListener("hashchange",kt),clearInterval(hi),Di(),Fi(),Ri(),Ii()}});var Et=ree();cs("click",CP,()=>{d(r)&&y(r,!1),d(a)&&y(a,!1)});var Oe=Ct(Et);{var Te=kt=>{var Si=tee(),hi=v(Si),Di=b(v(hi),2);let Fi;var Ri=b(Di,2);let Ni;var Ii=b(v(Ri),2);{var ci=ge=>{var be=RJ();j(()=>Ai(be,"title",`${d(he)??""} package update${d(he)===1?"":"s"} available`)),D(ge,be)};W(Ii,ge=>{d(he)>0&&ge(ci)})}var vi=b(Ri,2);let it;var zt=b(v(vi),2);{var gi=ge=>{var be=NJ();D(ge,be)},Ti=ge=>{var be=AJ();D(ge,be)},Zi=ge=>{var be=OJ();D(ge,be)};W(zt,ge=>{d(J)?ge(gi):d(H)?ge(Ti,1):d(ie)&&ge(Zi,2)})}var Bi=b(vi,2);let zi;var vn=b(v(Bi),2);{var ln=ge=>{var be=FJ();D(ge,be)},Pi=ge=>{var be=HJ();D(ge,be)},yn=ge=>{var be=WJ();D(ge,be)};W(vn,ge=>{d(rt)==="all"?ge(ln):d(rt)==="some"?ge(Pi,1):d(rt)==="offline"&&ge(yn,2)})}var Re=b(Bi,2);let jt;var di=b(Re,2);let qt;var Le=b(di,2);let It;var ai=b(v(Le),2);{var pi=ge=>{var be=BJ();D(ge,be)},_i=ge=>{var be=zJ();D(ge,be)};W(ai,ge=>{d(pt)?ge(pi):d(ve)&&ge(_i,1)})}var Fe=b(Le,4),X=b(v(Fe),2),ee=v(X),de=v(ee);de.nodeValue="v1.1.16 ";var ke=b(de);{var $e=ge=>{var be=VJ();D(ge,be)};W(ke,ge=>{var be,vt;(be=d(s))!=null&&be.latestVersion&&!((vt=d(s))!=null&&vt.docker)&&ge($e)})}var N=b(ee,2);{var Q=ge=>{var be=qJ(),vt=v(be),Ei=b(v(vt));Ei.textContent="v1.1.16";var Ne=b(Ei,2);{var Ke=He=>{var Pe=jJ(),$t=b(Ct(Pe)),xt=v($t);j(()=>O(xt,`v${d(s).latestVersion??""}`)),D(He,Pe)},Vt=He=>{var Pe=$J();D(He,Pe)};W(Ne,He=>{var Pe;(Pe=d(s))!=null&&Pe.latestVersion?He(Ke):He(Vt,-1)})}var et=b(vt,2),bt=v(et);{var Jt=He=>{var Pe=UJ(),$t=b(v(Pe));j(()=>O($t,` Update to v${d(s).latestVersion??""}`)),U("click",Pe,Pt),D(He,Pe)};W(bt,He=>{var Pe;(Pe=d(s))!=null&&Pe.latestVersion&&He(Jt)})}var K=b(bt,2),se=v(K);let Ue;var tt=b(se);j(()=>{K.disabled=d(c),Ue=Tt(se,0,"svelte-1n46o8q",null,Ue,{spinning:d(c)}),O(tt,` ${d(c)?"Checking…":"Check for updates"}`)}),U("click",be,He=>He.stopPropagation()),U("click",K,gt),D(ge,be)};W(N,ge=>{var be;d(a)&&!((be=d(s))!=null&&be.docker)&&ge(Q)})}var oe=b(X,2),Ie=v(oe),De=b(Ie,2);{var B=ge=>{var be=JJ(),vt=v(be);{var Ei=bt=>{var Jt=XJ(),K=v(Jt);{var se=_t=>{const mt=wt(()=>Math.floor((Date.now()-d(s).startedAt)/1e3)),Xe=wt(()=>Math.floor(d(mt)/86400)),Yt=wt(()=>Math.floor(d(mt)%86400/3600)),si=wt(()=>Math.floor(d(mt)%3600/60));var un=GJ(),tn=b(Ct(un)),En=v(tn);j(()=>O(En,`${d(Xe)>0?d(Xe)+"d ":""}${d(Yt)>0||d(Xe)>0?d(Yt)+"h ":""}${d(si)??""}m`)),D(_t,un)};W(K,_t=>{d(s).startedAt&&_t(se)})}var Ue=b(K,3),tt=v(Ue),He=b(Ue,3),Pe=v(He),$t=b(He,3),xt=v($t),Ze=b($t,2);{var Ut=_t=>{var mt=KJ(),Xe=b(Ct(mt)),Yt=v(Xe),si=b(Xe,3),un=v(si);j(()=>{O(Yt,d(s).matterNodes??0),O(un,d(s).matterEndpoints??0)}),D(_t,mt)};W(Ze,_t=>{d(s).matterEnabled&&_t(Ut)})}var st=b(Ze,2);{var Me=_t=>{var mt=ZJ(),Xe=b(Ct(mt)),Yt=v(Xe),si=b(Xe,3),un=v(si);j(()=>{O(Yt,d(s).dbDocs??"—"),O(un,d(s).dbViews??"—")}),D(_t,mt)};W(st,_t=>{d(s).dbEnabled&&_t(Me)})}var ze=b(st,3),Ve=v(ze),je=b(ze,3),Nt=v(je),we=b(je,3),ot=v(we);j(()=>{O(tt,d(s).scripts),O(Pe,d(s).topics),O(xt,d(s).mqttMsgPerSec??"—"),O(Ve,d(s).handlers??"—"),O(Nt,d(s).memMb!=null?d(s).memMb+" MB":"—"),O(ot,d(s).cpuPercent!=null?d(s).cpuPercent+" %":"—")}),D(bt,Jt)},Ne=bt=>{var Jt=YJ();D(bt,Jt)};W(vt,bt=>{d(s)?bt(Ei):bt(Ne,-1)})}var Ke=b(vt,2),Vt=v(Ke);{var et=bt=>{var Jt=QJ();U("click",Jt,()=>{y(r,!1),dt()}),D(bt,Jt)};W(Vt,bt=>{var Jt;(Jt=d(s))!=null&&Jt.docker||bt(et)})}U("click",be,bt=>bt.stopPropagation()),D(ge,be)};W(De,ge=>{d(r)&&ge(B)})}var q=b(oe,2);let Y;var me=b(q,2);{var Qe=ge=>{var be=eee();U("click",be,P),D(ge,be)};W(me,ge=>{d(f)==="password"&&ge(Qe)})}var Ee=b(hi,2),Se=v(Ee);Ds(Jf(Se,{}),ge=>y(A,ge,!0),()=>d(A));var lt=b(Se,2);let Bt;var St=v(lt);{let ge=wt(()=>d(n)==="scripts");mK(St,{get active(){return d(ge)}})}var Dt=b(lt,2);let Ft;var ne=v(Dt);$Y(ne,{});var _e=b(Dt,2);let Be;var at=v(_e);kY(at,{});var nt=b(_e,2);let Ye;var Rt=v(nt);eY(Rt,{});var ri=b(nt,2);let fi;var Ci=v(ri);MJ(Ci,{});var en=b(ri,2);let fn;var cn=v(en);dX(cn,{});var ki=b(en,2);let Xi;var z=v(ki);iZ(z,{});var te=b(ki,2);let Ge;var Je=v(te);rZ(Je,{}),j(()=>{Fi=Tt(Di,1,"svelte-1n46o8q",null,Fi,{active:d(n)==="scripts"}),Ni=Tt(Ri,1,"svelte-1n46o8q",null,Ni,{active:d(n)==="packages"}),it=Tt(vi,1,"svelte-1n46o8q",null,it,{active:d(n)==="mqtt"}),zi=Tt(Bi,1,"svelte-1n46o8q",null,zi,{active:d(n)==="matter"}),jt=Tt(Re,1,"svelte-1n46o8q",null,jt,{active:d(n)==="broker"}),qt=Tt(di,1,"svelte-1n46o8q",null,qt,{active:d(n)==="db"}),It=Tt(Le,1,"svelte-1n46o8q",null,It,{active:d(n)==="logs"}),Y=Tt(q,1,"nav-settings svelte-1n46o8q",null,Y,{active:d(n)==="config"}),Bt=Tt(lt,1,"page-wrap svelte-1n46o8q",null,Bt,{hidden:d(n)!=="scripts"}),Ft=Tt(Dt,1,"page-wrap svelte-1n46o8q",null,Ft,{hidden:d(n)!=="packages"}),Be=Tt(_e,1,"page-wrap svelte-1n46o8q",null,Be,{hidden:d(n)!=="mqtt"}),Ye=Tt(nt,1,"page-wrap svelte-1n46o8q",null,Ye,{hidden:d(n)!=="matter"}),fi=Tt(ri,1,"page-wrap svelte-1n46o8q",null,fi,{hidden:d(n)!=="broker"}),fn=Tt(en,1,"page-wrap svelte-1n46o8q",null,fn,{hidden:d(n)!=="db"}),Xi=Tt(ki,1,"page-wrap svelte-1n46o8q",null,Xi,{hidden:d(n)!=="config"}),Ge=Tt(te,1,"page-wrap svelte-1n46o8q",null,Ge,{hidden:d(n)!=="logs"})}),U("click",Di,()=>fe("scripts")),U("click",Ri,()=>fe("packages")),U("click",vi,()=>fe("mqtt")),U("click",Bi,()=>fe("matter")),U("click",Re,()=>fe("broker")),U("click",di,()=>fe("db")),U("click",Le,()=>{fe("logs"),y(pt,!1),y(ve,!1)}),U("click",ee,ge=>{ge.stopPropagation(),y(a,!d(a)),y(r,!1)}),U("click",Ie,ge=>{ge.stopPropagation(),y(r,!d(r)),y(a,!1)}),U("click",q,()=>fe("config")),D(kt,Si)};W(Oe,kt=>{d(k)&&!d(p)&&kt(Te)})}var ut=b(Oe,2);{var Wt=kt=>{var Si=nee(),hi=v(Si),Di=b(v(hi),4),Fi=b(v(Di),2),Ri=b(Di,2);{var Ni=vi=>{var it=iee(),zt=v(it);j(()=>O(zt,d(m))),D(vi,it)};W(Ri,vi=>{d(m)&&vi(Ni)})}var Ii=b(Ri,2),ci=v(Ii);j(()=>{Fi.disabled=d(x),Ii.disabled=d(x)||!d(w),O(ci,d(x)?"Signing in…":"Sign in")}),cs("submit",hi,vi=>{vi.preventDefault(),E()}),ti(Fi,()=>d(w),vi=>y(w,vi)),D(kt,Si)};W(ut,kt=>{d(p)&&kt(Wt)})}var Zt=b(ut,2);{var Mt=kt=>{var Si=see();D(kt,Si)};W(Zt,kt=>{d($)&&kt(Mt)})}var Lt=b(Zt,2);{var At=kt=>{var Si=oee();D(kt,Si)};W(Lt,kt=>{d(u)&&kt(At)})}D(o,Et),As()}Ks(["click"]);TH(aee,{target:document.getElementById("app")});export{nM as t};
|
|
230
|
+
*[stopped]*`,toolEvents:d(xe).length>0?[...d(xe)]:void 0}],!0)}else y(c,te.message,!0)}finally{E=null,y(s,null),y(xe,[],!0),y(a,!1)}}}function zi(){E==null||E.abort()}function vn(z){z.key==="Enter"&&!z.shiftKey&&(z.preventDefault(),Bi())}function ln(){y(n,[],!0),y(c,"")}const Pi=["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 yn(z){y(r,z,!0),pt==null||pt.focus()}var Re=jZ(),jt=Ct(Re),di=v(jt),qt=b(v(di),2);{var Le=z=>{var te=aZ(),Ge=v(te);{var Je=be=>{var vt=sa();j(()=>O(vt,`${d(u).provider??""} · ${(d(g)||d(u).model)??""}`)),D(be,vt)},ge=be=>{var vt=sa("Not configured");D(be,vt)};W(Ge,be=>{d(gt)?be(Je):be(ge,-1)})}j(()=>Ai(te,"title",`Provider: ${d(u).provider??""}`)),D(z,te)};W(qt,z=>{d(u)&&z(Le)})}var It=b(qt,2);{var ai=z=>{var te=lZ();U("click",te,ln),D(z,te)};W(It,z=>{d(n).length>0&&z(ai)})}var pi=b(di,2),_i=v(pi);{var Fe=z=>{var te=cZ();D(z,te)},X=z=>{var te=hZ(),Ge=v(te),Je=v(Ge);{var ge=Ei=>{var Ne=dZ(),Ke=b(Ct(Ne)),Vt=v(Ke);j(()=>O(Vt,t().id)),D(Ei,Ne)},be=Ei=>{var Ne=sa("No view selected. Ask a general sheDB view question.");D(Ei,Ne)};W(Je,Ei=>{t()?Ei(ge):Ei(be,-1)})}var vt=b(Ge,2);mi(vt,17,()=>Pi,Ji,(Ei,Ne)=>{var Ke=uZ(),Vt=v(Ke);j(()=>O(Vt,d(Ne))),U("click",Ke,()=>yn(d(Ne))),D(Ei,Ke)}),D(z,te)};W(_i,z=>{d(gt)?d(n).length===0&&d(s)===null&&z(X,1):z(Fe)})}var ee=b(_i,2);mi(ee,17,()=>d(n),Ji,(z,te,Ge)=>{var Je=vZ(),ge=v(Je);{var be=Ei=>{var Ne=fZ(),Ke=v(Ne);j(()=>O(Ke,d(te).content)),D(Ei,Ne)},vt=Ei=>{const Ne=wt(()=>Oe(d(te).content)),Ke=wt(()=>ut(d(Ne)));var Vt=mZ(),et=Ct(Vt);{var bt=He=>{var Pe=cE();mi(Pe,21,()=>d(te).toolEvents,Ji,($t,xt)=>{var Ze=Rs(),Ut=Ct(Ze);{var st=ze=>{var Ve=aE(),je=b(v(Ve)),Nt=v(je);j(we=>O(Nt,we),[()=>d(xt).name.replace(/_/g," ")]),D(ze,Ve)},Me=ze=>{var Ve=lE(),je=b(v(Ve)),Nt=v(je);j(we=>O(Nt,we),[()=>d(xt).name.replace(/_/g," ")]),D(ze,Ve)};W(Ut,ze=>{d(xt).type==="tool_call"?ze(st):ze(Me,-1)})}D($t,Ze)}),D(He,Pe)};W(et,He=>{var Pe;(Pe=d(te).toolEvents)!=null&&Pe.length&&He(bt)})}var Jt=b(et,2),K=v(Jt);mi(K,17,()=>d(Ne),Ji,(He,Pe,$t)=>{var xt=Rs(),Ze=Ct(xt);{var Ut=Me=>{var ze=dE();sc(ze,()=>Si(d(Pe).text),!0),D(Me,ze)},st=Me=>{const ze=wt(()=>`${Ge}:${$t}`),Ve=wt(()=>Lt(d(Pe).text)),je=wt(()=>d(p).has(d(ze))),Nt=wt(()=>d(Pe).lang==="filter");var we=pZ(),ot=v(we),_t=v(ot),mt=v(_t),Xe=b(_t,2),Yt=v(Xe),si=b(ot,2);let un;var tn=v(si),En=v(tn);sc(En,()=>kt(d(Pe).text,d(Pe).lang??""),!0);var Qn=b(tn,2);{var Ui=bi=>{var wn=gZ(),dn=v(wn);j(()=>O(dn,d(je)?"▲ collapse":"▼ expand")),U("click",wn,()=>At(d(ze))),D(bi,wn)};W(Qn,bi=>{d(Ve)&&bi(Ui)})}j(()=>{O(mt,d(Nt)?"filter":d(Pe).lang),un=Tt(si,1,"code-body svelte-1twuiul",null,un,{collapsed:d(Ve)&&!d(je)})}),U("click",Yt,()=>Di(d(Pe).text)),D(Me,we)};W(Ze,Me=>{d(Pe).type==="text"?Me(Ut):Me(st,-1)})}D(He,xt)});var se=b(K,2);{var Ue=He=>{var Pe=_Z(),$t=v(Pe),xt=v($t);j(Ze=>O(xt,Ze),[()=>Zt(d(Ke))]),U("click",$t,()=>e.onApplyView(d(Ke))),D(He,Pe)},tt=wt(()=>Wt(d(Ke))&&e.onApplyView);W(se,He=>{d(tt)&&He(Ue)})}D(Ei,Vt)};W(ge,Ei=>{d(te).role==="user"?Ei(be):Ei(vt,-1)})}j(()=>Tt(Je,1,`message ${d(te).role??""}`,"svelte-1twuiul")),D(z,Je)});var de=b(ee,2);{var ke=z=>{var te=cE();mi(te,21,()=>d(xe),Ji,(Ge,Je)=>{var ge=Rs(),be=Ct(ge);{var vt=Ne=>{var Ke=aE(),Vt=b(v(Ke)),et=v(Vt);j(bt=>O(et,bt),[()=>d(Je).name.replace(/_/g," ")]),D(Ne,Ke)},Ei=Ne=>{var Ke=lE(),Vt=b(v(Ke)),et=v(Vt);j(bt=>O(et,bt),[()=>d(Je).name.replace(/_/g," ")]),D(Ne,Ke)};W(be,Ne=>{d(Je).type==="tool_call"?Ne(vt):Ne(Ei,-1)})}D(Ge,ge)}),D(z,te)};W(de,z=>{d(xe).length>0&&z(ke)})}var $e=b(de,2);{var N=z=>{var te=bZ(),Ge=v(te),Je=v(Ge),ge=v(Je);j(()=>O(ge,A[d(P)])),D(z,te)};W($e,z=>{d(a)&&d(s)===null&&d(xe).length===0&&z(N)})}var Q=b($e,2);{var oe=z=>{var te=wZ(),Ge=v(te);mi(Ge,21,()=>Te(d(s)),Ji,(Je,ge)=>{var be=Rs(),vt=Ct(be);{var Ei=Ke=>{var Vt=dE();sc(Vt,()=>Si(d(ge).text),!0),D(Ke,Vt)},Ne=Ke=>{var Vt=yZ(),et=v(Vt),bt=v(et),Jt=v(bt),K=b(et,2),se=v(K);sc(se,()=>kt(d(ge).text,d(ge).lang??""),!0),j(()=>O(Jt,d(ge).lang)),D(Ke,Vt)};W(vt,Ke=>{d(ge).type==="text"?Ke(Ei):Ke(Ne,-1)})}D(Je,be)}),D(z,te)};W(Q,z=>{d(s)!==null&&z(oe)})}Ds(pi,z=>ve=z,()=>ve);var Ie=b(pi,2);{var De=z=>{var te=SZ(),Ge=v(te);j(()=>O(Ge,d(c))),D(z,te)};W(Ie,z=>{d(c)&&z(De)})}var B=b(Ie,2),q=v(B),Y=v(q),me=b(q,2),Qe=v(me),Ee=b(me,2),Se=v(Ee),lt=b(Ee,2),Bt=v(lt),St=b(B,2),Dt=v(St);{var Ft=z=>{var te=CZ();let Ge;var Je=b(v(te),2),ge=v(Je),be=b(Je,2),vt=v(be);j(()=>{Ge=Tt(te,1,"file-chip svelte-1twuiul",null,Ge,{inactive:!d(ue)}),O(ge,t().id),Ai(be,"title",d(ue)?"Remove from context":"Re-add to context"),O(vt,d(ue)?"×":"+")}),U("click",be,()=>y(ue,!d(ue))),D(z,te)};W(Dt,z=>{t()&&z(Ft)})}var ne=b(Dt,2);mi(ne,17,()=>d(J),Ji,(z,te,Ge)=>{const Je=wt(()=>Ni(d(te).name));var ge=xZ(),be=v(ge),vt=v(be),Ei=b(be,2),Ne=v(Ei),Ke=b(Ei,2);j((Vt,et)=>{Tt(be,1,`badge badge-${Vt??""}`,"svelte-1twuiul"),O(vt,et),O(Ne,d(te).name)},[()=>d(Je).toLowerCase(),()=>Ii(d(Je))]),U("click",Ke,()=>ci(Ge)),D(z,ge)});var _e=b(ne,2),Be=b(_e,2);Ds(Be,z=>We=z,()=>We);var at=b(St,2);let nt;var Ye=v(at);let Rt;var ri=v(Ye);Ds(ri,z=>pt=z,()=>pt);var fi=b(Ye,2);{var Ci=z=>{var te=kZ();U("click",te,zi),D(z,te)},en=z=>{var te=LZ();j(Ge=>te.disabled=Ge,[()=>!d(r).trim()||!d(gt)]),U("click",te,Bi),D(z,te)};W(fi,z=>{d(a)?z(Ci):z(en,-1)})}var fn=b(at,2);{var cn=z=>{var te=PZ(),Ge=v(te),Je=v(Ge),ge=b(Ge,2);{var be=Ke=>{var Vt=DZ();mi(Vt,21,()=>d(f),Ji,(et,bt)=>{var Jt=IZ(),K=v(Jt),se={};j(()=>{O(K,d(bt)),se!==(se=d(bt))&&(Jt.value=(Jt.__value=d(bt))??"")}),D(et,Jt)}),j(()=>Vt.disabled=d(a)),Ho(Vt,()=>d(g),et=>y(g,et)),D(Ke,Vt)},vt=Ke=>{var Vt=EZ(),et=v(Vt);j(()=>O(et,d(g)||d(u).model)),D(Ke,Vt)};W(ge,Ke=>{d(f).length>0?Ke(be):Ke(vt,-1)})}var Ei=b(ge,2);{var Ne=Ke=>{var Vt=TZ();U("click",Vt,Fi),D(Ke,Vt)};W(Ei,Ke=>{d(u).provider==="ollama"&&Ke(Ne)})}j(()=>O(Je,d(u).provider)),D(z,te)};W(fn,z=>{d(gt)&&d(u)&&z(cn)})}var ki=b(jt,2);{var Xi=z=>{var te=VZ(),Ge=v(te),Je=v(Ge),ge=v(Je),be=v(ge),vt=b(ge,2),Ei=b(Je,2),Ne=v(Ei);{var Ke=bt=>{var Jt=MZ();D(bt,Jt)},Vt=bt=>{var Jt=RZ(),K=v(Jt);j(()=>O(K,d(k))),D(bt,Jt)},et=bt=>{var Jt=zZ(),K=v(Jt);{var se=Me=>{var ze=NZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).version)),D(Me,ze)};W(K,Me=>{d(m).version&&Me(se)})}var Ue=b(K,2);{var tt=Me=>{var ze=AZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).details.family)),D(Me,ze)};W(Ue,Me=>{var ze;(ze=d(m).details)!=null&&ze.family&&Me(tt)})}var He=b(Ue,2);{var Pe=Me=>{var ze=OZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).details.parameter_size)),D(Me,ze)};W(He,Me=>{var ze;(ze=d(m).details)!=null&&ze.parameter_size&&Me(Pe)})}var $t=b(He,2);{var xt=Me=>{var ze=FZ(),Ve=b(Ct(ze)),je=v(Ve);j(()=>O(je,d(m).details.quantization_level)),D(Me,ze)};W($t,Me=>{var ze;(ze=d(m).details)!=null&&ze.quantization_level&&Me(xt)})}var Ze=b($t,2);{var Ut=Me=>{var ze=WZ(),Ve=b(Ct(ze),2);mi(Ve,21,()=>d(m).running,Ji,(je,Nt)=>{var we=HZ(),ot=v(we);j(_t=>O(ot,`${d(Nt).name??""} · ${_t??""} VRAM`),[()=>Ri(d(Nt).size_vram)]),D(je,we)}),D(Me,ze)},st=Me=>{var ze=BZ();D(Me,ze)};W(Ze,Me=>{d(m).running&&d(m).running.length>0?Me(Ut):d(m).running!==null&&Me(st,1)})}D(bt,Jt)};W(Ne,bt=>{d(x)?bt(Ke):d(k)?bt(Vt,1):d(m)&&bt(et,2)})}j(()=>{var bt;return O(be,`Ollama · ${(d(g)||((bt=d(u))==null?void 0:bt.model))??""}`)}),U("click",te,()=>y(w,!1)),U("click",Ge,bt=>bt.stopPropagation()),U("click",vt,()=>y(w,!1)),D(z,te)};W(ki,z=>{d(w)&&z(Xi)})}j(z=>{O(Bt,z),nt=Tt(at,1,"input-row svelte-1twuiul",null,nt,{"drag-over":d(he)}),Rt=Tt(Ye,1,"textarea-wrap svelte-1twuiul",null,Rt,{loading:d(a)}),Ai(ri,"placeholder",d(gt)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),ri.disabled=d(a)||!d(gt)},[()=>Ri(d(Pt))]),Is(Y,()=>d($),z=>y($,z)),Is(Qe,()=>d(H),z=>y(H,z)),Is(Se,()=>d(ie),z=>y(ie,z)),U("click",_e,vi),U("change",Be,zt),cs("dragover",at,Ti),cs("dragleave",at,Zi),cs("drop",at,gi),U("keydown",ri,vn),ti(ri,()=>d(r),z=>y(r,z)),D(o,Re),As()}Ks(["click","change","keydown"]);var UZ=T('<div class="me svelte-1pxdb1"></div>');function gS(o,e){Ns(e,!0);let t=wu(e,"value",15,""),i=wu(e,"language",3,"javascript"),n,s,r=!1;ao(()=>{const c=i()==="json"?{formatOnPaste:!0,autoIndent:"full"}:{};s=dr.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},...c}),s.onDidChangeModelContent(()=>{r||t(s.getValue())})}),Wy(()=>s==null?void 0:s.dispose()),zn(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=UZ();Ds(a,c=>n=c,()=>n),D(o,a),As()}var qZ=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 — 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),GZ=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>'),uE=T('<div class="form-error svelte-rrt0o"> </div>'),KZ=T('<div class="new-item-form svelte-rrt0o"><input placeholder="device/lamp1" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),hE=T("<li> </li>"),fE=T('<div class="error-bar svelte-rrt0o"> </div>'),gE=T('<div class="loading svelte-rrt0o">Loading…</div>'),ZZ=T('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),XZ=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),YZ=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>'),QZ=T('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),JZ=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>'),eX=T('<span class="badge-error svelte-rrt0o">error</span>'),tX=T('<span class="badge-ok svelte-rrt0o"> </span>'),iX=T('<pre class="result-error svelte-rrt0o"> </pre>'),nX=T('<pre class="result-json svelte-rrt0o"> </pre>'),sX=T('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),oX=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 · 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>'),rX=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),aX=T('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),lX=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>'),cX=T('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function dX(o,e){Ns(e,!0);const t=Fe=>{var X=qZ(),ee=Ct(X);Ds(Jf(ee,{}),de=>Ii=de,()=>Ii),D(Fe,X)};let i=M(yi([])),n=M(null),s=M("{}"),r=M(!1),a=M(null);const c="she-db-selected-view";let u=M(yi([])),f=M(yi(localStorage.getItem(c))),g=M("#"),p=M("// emit(this.someProperty)"),w=M(""),m=M(""),x=M(!1),k=M(!1),E=M(null),P=M(!1),A=M(null),$=M("she/db/view/");const H="she-db-panel";let ie=M(yi(localStorage.getItem(H)??"docs")),J=M(""),ue=M(!1),he=M(null),We=M(""),xe=M(!1),rt=M(null);const pt="she-db-sidebar-width";let ve=M(yi(parseInt(localStorage.getItem(pt)??"220",10))),dt=!1,gt=0,Pt=0;const fe="she-db-chat-width",Et="she-db-chat-open";let Oe=M(localStorage.getItem(Et)==="true"),Te=M(yi(parseInt(localStorage.getItem(fe)??"320",10))),ut=!1,Wt=0,Zt=0;const Mt=wt(()=>d(f)?{id:d(f),filter:d(g),map:d(p),reduce:d(w)}:null);function Lt(Fe){Fe.filter!==void 0&&y(g,Fe.filter,!0),Fe.map!==void 0&&y(p,Fe.map,!0),Fe.reduce!==void 0&&y(w,Fe.reduce,!0)}zn(()=>{localStorage.setItem(Et,String(d(Oe)))}),zn(()=>{localStorage.setItem(H,d(ie))}),zn(()=>{d(f)?localStorage.setItem(c,d(f)):localStorage.removeItem(c)});function At(Fe){dt=!0,gt=Fe.clientX,Pt=d(ve),Fe.preventDefault()}function kt(Fe){dt&&y(ve,Math.max(140,Math.min(500,Pt+Fe.clientX-gt)),!0),ut&&y(Te,Math.max(240,Math.min(600,Zt-(Fe.clientX-Wt))),!0)}function Si(){dt&&(dt=!1,localStorage.setItem(pt,String(d(ve)))),ut&&(ut=!1,localStorage.setItem(fe,String(d(Te))))}function hi(Fe){ut=!0,Wt=Fe.clientX,Zt=d(Te),Fe.preventDefault()}async function Di(){try{y(i,await ON(),!0)}catch{}}async function Fi(){try{y(u,await FN(),!0)}catch{}}async function Ri(Fe){y(n,Fe,!0),y(a,null),y(r,!0);try{const X=await k7(Fe);y(s,JSON.stringify(X,null,2),!0)}catch(X){y(a,X instanceof Error?X.message:String(X),!0)}finally{y(r,!1)}}async function Ni(){if(d(n)){y(a,null);try{const Fe=JSON.parse(d(s));await AD(d(n),Fe)}catch(Fe){y(a,Fe instanceof Error?Fe.message:String(Fe),!0)}}}let Ii;async function ci(){if(d(n)&&await Ii.show(`Delete document "${d(n)}"?`,{confirm:"Delete",danger:!0}))try{await L7(d(n)),y(n,null),y(s,"{}")}catch(Fe){y(a,Fe instanceof Error?Fe.message:String(Fe),!0)}}async function vi(){const Fe=d(J).trim();if(Fe){y(he,null);try{await AD(Fe,{}),y(ue,!1),y(J,""),await Ri(Fe)}catch(X){y(he,X instanceof Error?X.message:String(X),!0)}}}async function it(Fe){y(f,Fe,!0),y(A,null),y(P,!0),y(E,null);try{const X=await I7(Fe);y(g,X.filter??"",!0),y(p,X.map,!0),y(w,X.reduce??"",!0),y(m,X.description??"",!0),y(x,X.mqttpub??!1,!0),y(k,X.retain??!1,!0),y(E,await hS(Fe).catch(()=>null),!0)}catch(X){y(A,X instanceof Error?X.message:String(X),!0)}finally{y(P,!1)}}async function zt(){if(d(f)){y(A,null);try{const Fe={map:d(p)};d(g).trim()&&(Fe.filter=d(g).trim()),d(w).trim()&&(Fe.reduce=d(w).trim()),d(m).trim()&&(Fe.description=d(m).trim()),d(x)&&(Fe.mqttpub=!0),d(k)&&(Fe.retain=!0),await OD(d(f),Fe)}catch(Fe){y(A,Fe instanceof Error?Fe.message:String(Fe),!0)}}}async function gi(){if(d(f))try{y(E,await hS(d(f)),!0)}catch(Fe){y(A,Fe instanceof Error?Fe.message:String(Fe),!0)}}async function Ti(){if(d(f)&&await Ii.show(`Delete view "${d(f)}"?`,{confirm:"Delete",danger:!0}))try{await D7(d(f)),y(f,null),y(g,""),y(p,"// emit(this.someProperty)"),y(w,""),y(m,""),y(x,!1),y(k,!1),y(E,null)}catch(Fe){y(A,Fe instanceof Error?Fe.message:String(Fe),!0)}}async function Zi(){if(!d(We).trim())return;const Fe=d(We).trim();y(rt,null);try{await OD(Fe,{map:"// emit(this.someProperty)"}),y(xe,!1),y(We,""),await Fi(),await it(Fe)}catch(X){y(rt,X instanceof Error?X.message:String(X),!0)}}let Bi=M(""),zi=M(""),vn=wt(()=>[...d(i)].filter(Fe=>!d(Bi)||Fe.toLowerCase().includes(d(Bi).toLowerCase())).sort()),ln=wt(()=>[...d(u)].filter(Fe=>!d(zi)||Fe.toLowerCase().includes(d(zi).toLowerCase())).sort());ao(()=>{Di(),Fi().then(()=>{d(f)&&d(u).includes(d(f))?it(d(f)):y(f,null)}),Dl().then(ke=>{const $e=ke.dbPrefix||"she/db/",N=$e.endsWith("/")?$e:$e+"/";y($,N+"view/")}).catch(()=>{});const Fe=kr("db:ids",ke=>{y(i,ke.ids??[],!0)}),X=kr("db:viewIds",ke=>{y(u,ke.ids??[],!0)}),ee=kr("db:change",async ke=>{const $e=ke.id;d(n)===$e&&(ke.doc===null?(y(n,null),y(s,"{}")):y(s,JSON.stringify(ke.doc,null,2),!0))}),de=kr("db:viewUpdate",async ke=>{const $e=ke.id;d(f)===$e&&y(E,await hS($e).catch(()=>null),!0)});return()=>{Fe(),X(),ee(),de()}});var Pi=cX(),yn=v(Pi),Re=v(yn);let jt;var di=b(Re,2);let qt;var Le=b(di,2);{var It=Fe=>{var X=GZ();let ee;j(()=>{ee=Tt(X,1,"ai-toggle svelte-rrt0o",null,ee,{"ai-open":d(Oe)}),Ai(X,"title",d(Oe)?"Close AI assistant":"Open AI assistant")}),U("click",X,()=>y(Oe,!d(Oe))),D(Fe,X)};W(Le,Fe=>{d(ie)==="views"&&Fe(It)})}var ai=b(yn,2);{var pi=Fe=>{var X=YZ(),ee=v(X);let de;var ke=v(ee),$e=v(ke),N=b(ke,2);{var Q=Ee=>{var Se=KZ(),lt=Ct(Se),Bt=v(lt),St=b(Bt,2),Dt=b(lt,2);{var Ft=ne=>{var _e=uE(),Be=v(_e);j(()=>O(Be,d(he))),D(ne,_e)};W(Dt,ne=>{d(he)&&ne(Ft)})}U("keydown",Bt,ne=>ne.key==="Enter"&&vi()),ti(Bt,()=>d(J),ne=>y(J,ne)),U("click",St,vi),D(Ee,Se)};W(N,Ee=>{d(ue)&&Ee(Q)})}var oe=b(N,2),Ie=v(oe),De=b(oe,2);mi(De,20,()=>d(vn),Ee=>Ee,(Ee,Se)=>{var lt=hE();let Bt;var St=v(lt);j(()=>{Bt=Tt(lt,1,"flat-item svelte-rrt0o",null,Bt,{"active-item":d(n)===Se}),O(St,Se)}),U("click",lt,()=>Ri(Se)),D(Ee,lt)});var B=b(ee,2),q=b(B,2),Y=v(q);{var me=Ee=>{var Se=XZ(),lt=Ct(Se),Bt=v(lt),St=v(Bt),Dt=b(Bt,2),Ft=b(Dt,2),ne=b(lt,2);{var _e=Ye=>{var Rt=fE(),ri=v(Rt);j(()=>O(ri,d(a))),D(Ye,Rt)};W(ne,Ye=>{d(a)&&Ye(_e)})}var Be=b(ne,2);{var at=Ye=>{var Rt=gE();D(Ye,Rt)},nt=Ye=>{var Rt=ZZ(),ri=v(Rt);gS(ri,{language:"json",get value(){return d(s)},set value(fi){y(s,fi,!0)}}),D(Ye,Rt)};W(Be,Ye=>{d(r)?Ye(at):Ye(nt,-1)})}j(()=>O(St,d(n))),U("click",Dt,Ni),U("click",Ft,ci),D(Ee,Se)},Qe=Ee=>{t(Ee)};W(Y,Ee=>{d(n)?Ee(me):Ee(Qe,-1)})}j(()=>de=Fo(ee,"",de,{width:`${d(ve)??""}px`})),U("click",$e,()=>{y(ue,!d(ue)),y(he,null)}),ti(Ie,()=>d(Bi),Ee=>y(Bi,Ee)),U("mousedown",B,At),D(Fe,X)},_i=Fe=>{var X=lX(),ee=v(X);let de;var ke=v(ee),$e=v(ke),N=b(ke,2);{var Q=lt=>{var Bt=QZ(),St=Ct(Bt),Dt=v(St),Ft=b(Dt,2),ne=b(St,2);{var _e=Be=>{var at=uE(),nt=v(at);j(()=>O(nt,d(rt))),D(Be,at)};W(ne,Be=>{d(rt)&&Be(_e)})}U("keydown",Dt,Be=>Be.key==="Enter"&&Zi()),ti(Dt,()=>d(We),Be=>y(We,Be)),U("click",Ft,Zi),D(lt,Bt)};W(N,lt=>{d(xe)&<(Q)})}var oe=b(N,2),Ie=v(oe),De=b(oe,2);mi(De,20,()=>d(ln),lt=>lt,(lt,Bt)=>{var St=hE();let Dt;var Ft=v(St);j(()=>{Dt=Tt(St,1,"flat-item svelte-rrt0o",null,Dt,{"active-item":d(f)===Bt}),O(Ft,Bt)}),U("click",St,()=>it(Bt)),D(lt,St)});var B=b(ee,2),q=b(B,2),Y=v(q);{var me=lt=>{var Bt=rX(),St=Ct(Bt),Dt=v(St),Ft=v(Dt),ne=b(Dt,2),_e=b(ne,2),Be=b(_e,2),at=b(St,2);{var nt=fi=>{var Ci=fE(),en=v(Ci);j(()=>O(en,d(A))),D(fi,Ci)};W(at,fi=>{d(A)&&fi(nt)})}var Ye=b(at,2);{var Rt=fi=>{var Ci=gE();D(fi,Ci)},ri=fi=>{var Ci=oX(),en=v(Ci),fn=b(v(en),2),cn=v(fn),ki=b(en,2),Xi=b(v(ki),2),z=v(Xi),te=b(ki,2),Ge=b(v(te),2),Je=v(Ge);gS(Je,{language:"javascript",get value(){return d(p)},set value(tt){y(p,tt,!0)}});var ge=b(te,2),be=b(v(ge),2),vt=v(be);gS(vt,{language:"javascript",get value(){return d(w)},set value(tt){y(w,tt,!0)}});var Ei=b(ge,2),Ne=v(Ei),Ke=v(Ne),Vt=b(Ke,4),et=b(v(Vt)),bt=v(et),Jt=b(Ne,2);{var K=tt=>{var He=JZ(),Pe=v(He);Is(Pe,()=>d(k),$t=>y(k,$t)),D(tt,He)};W(Jt,tt=>{d(x)&&tt(K)})}var se=b(Ei,2);{var Ue=tt=>{var He=sX(),Pe=v(He),$t=b(v(Pe));{var xt=ze=>{var Ve=eX();D(ze,Ve)},Ze=ze=>{var Ve=tX(),je=v(Ve);j(()=>O(je,`${d(E).length??0??""} items · rev ${d(E)._rev??""}`)),D(ze,Ve)};W($t,ze=>{d(E).error?ze(xt):ze(Ze,-1)})}var Ut=b(Pe,2);{var st=ze=>{var Ve=iX(),je=v(Ve);j(()=>O(je,d(E).error)),D(ze,Ve)},Me=ze=>{var Ve=nX(),je=v(Ve);j(Nt=>O(je,Nt),[()=>JSON.stringify(d(E).result,null,2)]),D(ze,Ve)};W(Ut,ze=>{d(E).error?ze(st):ze(Me,-1)})}D(tt,He)};W(se,tt=>{d(E)&&tt(Ue)})}j(()=>O(bt,`${d($)??""}${d(f)??""} on every update`)),ti(cn,()=>d(m),tt=>y(m,tt)),ti(z,()=>d(g),tt=>y(g,tt)),Is(Ke,()=>d(x),tt=>y(x,tt)),D(fi,Ci)};W(Ye,fi=>{d(P)?fi(Rt):fi(ri,-1)})}j(()=>O(Ft,d(f))),U("click",ne,zt),U("click",_e,gi),U("click",Be,Ti),D(lt,Bt)},Qe=lt=>{t(lt)};W(Y,lt=>{d(f)?lt(me):lt(Qe,-1)})}var Ee=b(q,2);{var Se=lt=>{var Bt=aX(),St=Ct(Bt),Dt=b(St,2);let Ft;var ne=v(Dt);$Z(ne,{get currentView(){return d(Mt)},onApplyView:Lt}),j(()=>Ft=Fo(Dt,"",Ft,{width:`${d(Te)??""}px`})),U("mousedown",St,hi),D(lt,Bt)};W(Ee,lt=>{d(Oe)&<(Se)})}j(()=>de=Fo(ee,"",de,{width:`${d(ve)??""}px`})),U("click",$e,()=>{y(xe,!d(xe)),y(rt,null)}),ti(Ie,()=>d(zi),lt=>y(zi,lt)),U("mousedown",B,At),D(Fe,X)};W(ai,Fe=>{d(ie)==="docs"?Fe(pi):Fe(_i,-1)})}j(()=>{jt=Tt(Re,1,"svelte-rrt0o",null,jt,{active:d(ie)==="docs"}),qt=Tt(di,1,"svelte-rrt0o",null,qt,{active:d(ie)==="views"})}),U("mousemove",Pi,kt),U("mouseup",Pi,Si),cs("mouseleave",Pi,Si),U("click",Re,()=>y(ie,"docs")),U("click",di,()=>y(ie,"views")),D(o,Pi),As()}Ks(["mousemove","mouseup","click","keydown","mousedown"]);var uX=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),hX=T('<label class="svelte-1ua3isv">Pairing Code / QR <input type="text" placeholder="MT:..." class="svelte-1ua3isv"/></label>'),pE=T('<p class="err svelte-1ua3isv"> </p>'),fX=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>'),gX=T('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),pX=T('<span class="device-name svelte-1ua3isv"> </span>'),_X=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>'),mX=T('<li class="empty svelte-1ua3isv">No paired devices</li>'),vX=T('<p class="info svelte-1ua3isv">Loading…</p>'),bX=T('<p class="device-subtitle svelte-1ua3isv"> </p>'),yX=T('<span class="ep-chip svelte-1ua3isv"> </span>'),wX=T('<span class="attr-id svelte-1ua3isv"> </span>'),SX=T('<button class="attr-action-btn svelte-1ua3isv"> </button>'),CX=T('<div class="attr-actions svelte-1ua3isv"></div>'),xX=T('<span class="cmd-sep svelte-1ua3isv">,</span>'),kX=T('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),LX=T('<span class="cmd-id svelte-1ua3isv"> </span>'),IX=T("<!> <!>",1),DX=T('<span class="cmd-list svelte-1ua3isv"></span>'),EX=T(' <span class="cmd-id svelte-1ua3isv"> </span>',1),TX=T('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),PX=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>'),MX=T('<th class="svelte-1ua3isv"> </th>'),RX=T('<td class="svelte-1ua3isv"> </td>'),NX=T('<tr class="svelte-1ua3isv"></tr>'),AX=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),OX=T('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),FX=T('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),HX=T('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),WX=T('<span class="attr-val svelte-1ua3isv"> </span>'),BX=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>'),zX=T('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),VX=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>'),jX=T('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),$X=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>'),UX=T('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),qX=T('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),GX=T('<span class="stream-badge svelte-1ua3isv"> </span>'),KX=T('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),pS=T(' <span class="e-sub svelte-1ua3isv"> </span>',1),ZX=T('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),XX=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),YX=T('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),QX=T('<div class="stream-body svelte-1ua3isv"><!></div>'),JX=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 eY(o,e){Ns(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(X,ee,de,ke,$e){try{await B7(X,ee,de,ke,$e)}catch(N){console.error("matter command failed",N)}}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(X,ee){const de=n[X];return ee.map(ke=>{const $e=typeof ke=="number"?ke:Number(ke);return{id:$e,name:(de==null?void 0:de[$e])??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},c={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(X){return"0x"+X.toString(16).toUpperCase().padStart(4,"0")}let f=M(yi([])),g=yi(new Map);function p(X){if(X==null)return"—";if(typeof X=="boolean"||typeof X=="number")return String(X);if(typeof X=="string")return X.length>50?X.slice(0,47)+"…":X;const ee=JSON.stringify(X);return ee.length>60?ee.slice(0,57)+"…":ee}function w(X){return X==null?"—":typeof X=="boolean"||typeof X=="number"?String(X):typeof X=="string"?X:JSON.stringify(X)}function m(X){return X!==null&&typeof X=="object"&&!Array.isArray(X)}function x(X){return Array.isArray(X)&&X.length>0&&X.every(m)}function k(X,ee){return!!(ee==="attributeList"||Array.isArray(X)&&X.length===0||m(X)&&Object.keys(X).length===0)}function E(X){return new Date(X).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const P=500,A=20,$=32;let H=0,ie=M(yi([])),J=M(!0),ue=M(180),he=wt(()=>{const X=Math.max(1,Math.floor((d(ue)-$)/A)+1);return d(ie).slice(0,X)});function We(X){X.preventDefault();const ee=X.clientY,de=d(ue);function ke(N){y(ue,Math.max(60,Math.min(600,de+ee-N.clientY)),!0)}function $e(){document.removeEventListener("mousemove",ke),document.removeEventListener("mouseup",$e)}document.addEventListener("mousemove",ke),document.addEventListener("mouseup",$e)}let xe=M(null),rt=M(!1),pt=M(null),ve=M(!1),dt=M("passcode"),gt=M(""),Pt=M(""),fe=M(""),Et=M(!1),Oe=M(null),Te=M("");const ut="she:matter:selectedNodeId";async function Wt(){try{y(f,await WN(),!0);for(const X of d(f))Xm(X.nodeId).then(ee=>{g.set(X.nodeId,ee)}).catch(()=>{});if(d(f).length>0&&!d(xe)){const X=localStorage.getItem(ut),ee=X&&d(f).find(de=>de.nodeId===X)?X:d(f)[0].nodeId;Zt(ee)}}catch{y(f,[],!0)}}async function Zt(X){y(rt,!0),y(pt,null);try{y(xe,await Xm(X),!0),g.set(X,d(xe)),localStorage.setItem(ut,X)}catch(ee){y(pt,ee instanceof Error?ee.message:String(ee),!0)}finally{y(rt,!1)}}let Mt;async function Lt(X){var ee;if(await Mt.show(`Unpair device ${X}?`,{confirm:"Unpair",danger:!0}))try{await W7(X),((ee=d(xe))==null?void 0:ee.nodeId)===X&&y(xe,null),await Wt()}catch(de){y(pt,de instanceof Error?de.message:String(de),!0)}}async function At(){y(Et,!0),y(Oe,null);try{let X;d(dt)==="passcode"?(X={passcode:Number(d(gt))},d(Pt)&&(X={...X,discriminator:Number(d(Pt))})):X={pairingCode:d(fe).trim()},d(Te).trim()&&(X={...X,discoveryAddress:d(Te).trim()}),await H7(X),y(ve,!1),y(gt,""),y(Pt,""),y(fe,""),y(Te,""),await Wt()}catch(X){y(Oe,X instanceof Error?X.message:String(X),!0)}finally{y(Et,!1)}}ao(()=>{Wt()});const kt=kr("matter:deviceList",X=>{if(!Array.isArray(X.devices))return;const ee=X.devices;for(const de of ee)g.has(de.nodeId)||Xm(de.nodeId).then(ke=>{g.set(de.nodeId,ke)}).catch(()=>{});y(f,ee,!0)}),Si=kr("matter:deviceStatus",X=>{if(X.nodeId===void 0)return;const ee=String(X.nodeId),de=!!X.online;y(f,d(f).map(ke=>ke.nodeId===ee?{...ke,online:de}:ke),!0),y(ie,[{id:H++,kind:"status",nodeId:ee,online:de,ts:Date.now()},...d(ie).slice(0,P-1)],!0)}),hi=kr("matter:attr",X=>{const ee=String(X.nodeId),de=X.endpointId,ke=String(X.clusterName),$e=String(X.attrName),N=X.value;if(d(xe)&&d(xe).nodeId===ee){const oe=d(xe).endpoints.find(De=>De.endpointId===de),Ie=oe==null?void 0:oe.clusters.find(De=>De.name===ke);Ie&&(Ie.attrs[$e]=N)}const Q=g.get(ee);if(Q){const oe=Q.endpoints.find(De=>De.endpointId===de),Ie=oe==null?void 0:oe.clusters.find(De=>De.name===ke);Ie&&(Ie.attrs[$e]=N)}y(ie,[{id:H++,kind:"attr",nodeId:ee,endpointId:de,clusterName:ke,attrName:$e,value:N,ts:X.ts??Date.now()},...d(ie).slice(0,P-1)],!0)});Wy(()=>{kt(),Si(),hi()});var Di=JX(),Fi=Ct(Di);Ds(Jf(Fi,{}),X=>Mt=X,()=>Mt);var Ri=b(Fi,2),Ni=v(Ri),Ii=v(Ni),ci=v(Ii),vi=b(v(ci),2),it=b(ci,2);{var zt=X=>{var ee=fX(),de=v(ee),ke=v(de);let $e;var N=b(ke,2);let Q;var oe=b(de,2);{var Ie=Se=>{var lt=uX(),Bt=Ct(lt),St=b(v(Bt)),Dt=b(Bt,2),Ft=b(v(Dt));ti(St,()=>d(gt),ne=>y(gt,ne)),ti(Ft,()=>d(Pt),ne=>y(Pt,ne)),D(Se,lt)},De=Se=>{var lt=hX(),Bt=b(v(lt));ti(Bt,()=>d(fe),St=>y(fe,St)),D(Se,lt)};W(oe,Se=>{d(dt)==="passcode"?Se(Ie):Se(De,-1)})}var B=b(oe,2),q=b(v(B)),Y=b(B,2);{var me=Se=>{var lt=pE(),Bt=v(lt);j(()=>O(Bt,d(Oe))),D(Se,lt)};W(Y,Se=>{d(Oe)&&Se(me)})}var Qe=b(Y,2),Ee=v(Qe);j(()=>{$e=Tt(ke,1,"svelte-1ua3isv",null,$e,{active:d(dt)==="passcode"}),Q=Tt(N,1,"svelte-1ua3isv",null,Q,{active:d(dt)==="pairingCode"}),Qe.disabled=d(Et),O(Ee,d(Et)?"Commissioning…":"Commission")}),U("click",ke,()=>y(dt,"passcode")),U("click",N,()=>y(dt,"pairingCode")),ti(q,()=>d(Te),Se=>y(Te,Se)),U("click",Qe,At),D(X,ee)};W(it,X=>{d(ve)&&X(zt)})}var gi=b(it,2),Ti=v(gi);mi(Ti,17,()=>d(f),X=>X.nodeId,(X,ee)=>{var de=_X();let ke;var $e=v(de),N=v($e);let Q;var oe=b(N,2),Ie=v(oe);{var De=Y=>{var me=gX(),Qe=Ct(me),Ee=v(Qe),Se=b(Qe,2),lt=v(Se);j(()=>{O(Ee,d(ee).name),O(lt,`#${d(ee).nodeId??""}`)}),D(Y,me)},B=Y=>{var me=pX(),Qe=v(me);j(()=>O(Qe,`Node ${d(ee).nodeId??""}`)),D(Y,me)};W(Ie,Y=>{d(ee).name?Y(De):Y(B,-1)})}var q=b($e,2);j(()=>{var Y;ke=Tt(de,1,"svelte-1ua3isv",null,ke,{selected:((Y=d(xe))==null?void 0:Y.nodeId)===d(ee).nodeId}),Q=Tt(N,1,"status-dot svelte-1ua3isv",null,Q,{online:d(ee).online})}),U("click",$e,()=>Zt(d(ee).nodeId)),U("click",q,()=>Lt(d(ee).nodeId)),D(X,de)});var Zi=b(Ti,2);{var Bi=X=>{var ee=mX();D(X,ee)};W(Zi,X=>{d(f).length===0&&X(Bi)})}var zi=b(Ii,2),vn=v(zi);{var ln=X=>{var ee=vX();D(X,ee)},Pi=X=>{var ee=pE(),de=v(ee);j(()=>O(de,d(pt))),D(X,ee)},yn=X=>{var ee=UX(),de=Ct(ee),ke=v(de),$e=v(ke),N=b(ke,2);{var Q=B=>{var q=bX(),Y=v(q);j(()=>O(Y,d(xe).subtitle)),D(B,q)};W(N,B=>{d(xe).subtitle&&B(Q)})}var oe=b(N,2),Ie=v(oe),De=b(de,2);mi(De,17,()=>d(xe).endpoints,B=>B.endpointId,(B,q)=>{var Y=$X(),me=v(Y),Qe=v(me),Ee=b(Qe),Se=v(Ee),lt=b(Ee,2);mi(lt,21,()=>d(q).clusters,Ji,(Ft,ne)=>{var _e=yX(),Be=v(_e);j(()=>O(Be,d(ne).name)),D(Ft,_e)});var Bt=b(me,2);{var St=Ft=>{var ne=VX(),_e=b(v(ne));mi(_e,21,()=>d(q).clusters,Ji,(Be,at)=>{var nt=zX(),Ye=Ct(nt),Rt=v(Ye),ri=v(Rt),fi=b(Ye,2);mi(fi,17,()=>Object.entries(d(at).attrs),Ji,(Ci,en)=>{var fn=wt(()=>RL(d(en),2));let cn=()=>d(fn)[0],ki=()=>d(fn)[1];var Xi=Rs(),z=Ct(Xi);{var te=Je=>{const ge=wt(()=>{var Ve;return(Ve=t[d(at).name])==null?void 0:Ve[cn()]}),be=wt(()=>(cn()==="acceptedCommandList"||cn()==="generatedCommandList")&&Array.isArray(ki())),vt=wt(()=>{var Ve;return((Ve=c[d(at).name])==null?void 0:Ve[cn()])??a[cn()]});var Ei=BX(),Ne=v(Ei),Ke=v(Ne),Vt=v(Ke),et=b(Ke);{var bt=Ve=>{var je=wX(),Nt=v(je);j(we=>O(Nt,`(${we??""})`),[()=>u(d(vt))]),D(Ve,je)};W(et,Ve=>{d(vt)!==void 0&&Ve(bt)})}var Jt=b(Ne),K=v(Jt);{var se=Ve=>{var je=CX();mi(je,21,()=>d(ge),Ji,(Nt,we)=>{var ot=SX(),_t=v(ot);j(()=>O(_t,d(we).label)),U("click",ot,()=>i(d(xe).nodeId,d(q).endpointId,d(at).name,d(we).command,d(we).args)),D(Nt,ot)}),D(Ve,je)};W(K,Ve=>{d(ge)&&Ve(se)})}var Ue=b(Jt),tt=v(Ue);{var He=Ve=>{var je=DX();mi(je,21,()=>s(d(at).name,ki()),Ji,(Nt,we,ot)=>{var _t=IX(),mt=Ct(_t);{var Xe=tn=>{var En=xX();D(tn,En)};W(mt,tn=>{ot>0&&tn(Xe)})}var Yt=b(mt,2);{var si=tn=>{var En=kX(),Qn=Ct(En),Ui=v(Qn),bi=b(Qn),wn=v(bi);j(()=>{O(Ui,d(we).name),O(wn,`(${d(we).id??""})`)}),D(tn,En)},un=tn=>{var En=LX(),Qn=v(En);j(()=>O(Qn,d(we).id)),D(tn,En)};W(Yt,tn=>{d(we).name?tn(si):tn(un,-1)})}D(Nt,_t)}),D(Ve,je)},Pe=Ve=>{var je=PX(),Nt=b(v(je));mi(Nt,21,ki,Ji,(we,ot)=>{const _t=wt(()=>d(ot)),mt=wt(()=>d(_t).deviceType),Xe=wt(()=>r[d(mt)]);var Yt=TX(),si=v(Yt),un=v(si);{var tn=bi=>{var wn=EX(),dn=Ct(wn),rs=b(dn),co=v(rs);j(qo=>{O(dn,`${d(Xe)??""} `),O(co,`(${qo??""})`)},[()=>u(d(mt))]),D(bi,wn)},En=bi=>{var wn=sa();j(dn=>O(wn,dn),[()=>u(d(mt))]),D(bi,wn)};W(un,bi=>{d(Xe)?bi(tn):bi(En,-1)})}var Qn=b(si),Ui=v(Qn);j(bi=>O(Ui,bi),[()=>w(d(_t).revision)]),D(we,Yt)}),D(Ve,je)},$t=wt(()=>cn()==="deviceTypeList"&&Array.isArray(ki())),xt=Ve=>{const je=wt(()=>[...new Set(ki().flatMap(mt=>Object.keys(mt)))]);var Nt=AX(),we=v(Nt),ot=v(we);mi(ot,21,()=>d(je),Ji,(mt,Xe)=>{var Yt=MX(),si=v(Yt);j(()=>O(si,d(Xe))),D(mt,Yt)});var _t=b(we);mi(_t,21,ki,Ji,(mt,Xe)=>{var Yt=NX();mi(Yt,21,()=>d(je),Ji,(si,un)=>{var tn=RX(),En=v(tn);j(Qn=>O(En,Qn),[()=>w(d(Xe)[d(un)])]),D(si,tn)}),D(mt,Yt)}),D(Ve,Nt)},Ze=wt(()=>x(ki())),Ut=Ve=>{var je=FX(),Nt=v(je);mi(Nt,21,()=>Object.entries(ki()),Ji,(we,ot)=>{var _t=wt(()=>RL(d(ot),2));let mt=()=>d(_t)[0],Xe=()=>d(_t)[1];var Yt=OX(),si=v(Yt),un=v(si),tn=b(si),En=v(tn);j(Qn=>{O(un,mt()),O(En,Qn)},[()=>w(Xe())]),D(we,Yt)}),D(Ve,je)},st=wt(()=>m(ki())),Me=Ve=>{var je=HX(),Nt=v(je);j(()=>{Ai(je,"href",ki()),O(Nt,ki())}),D(Ve,je)},ze=Ve=>{var je=WX(),Nt=v(je);j(we=>O(Nt,we),[()=>w(ki())]),D(Ve,je)};W(tt,Ve=>{d(be)?Ve(He):d($t)?Ve(Pe,1):d(Ze)?Ve(xt,2):d(st)?Ve(Ut,3):(cn()==="productUrl"||cn()==="productURL")&&typeof ki()=="string"?Ve(Me,4):Ve(ze,-1)})}j(()=>{Ai(Ne,"title",cn()),O(Vt,cn())}),D(Je,Ei)},Ge=wt(()=>!k(ki(),cn()));W(z,Je=>{d(Ge)&&Je(te)})}D(Ci,Xi)}),j(()=>O(ri,d(at).name)),D(Be,nt)}),D(Ft,ne)},Dt=Ft=>{var ne=jX();D(Ft,ne)};W(Bt,Ft=>{d(q).clusters.length>0?Ft(St):Ft(Dt,-1)})}j(()=>{O(Qe,`${d(q).name??`Endpoint ${d(q).endpointId}`??""} `),O(Se,`ep${d(q).endpointId??""}`)}),D(B,Y)}),j(()=>{O($e,d(xe).name??`Node ${d(xe).nodeId}`),O(Ie,`Node ID: ${d(xe).nodeId??""}`)}),D(X,ee)},Re=X=>{var ee=qX();D(X,ee)};W(vn,X=>{d(rt)?X(ln):d(pt)?X(Pi,1):d(xe)?X(yn,2):X(Re,-1)})}var jt=b(Ni,2),di=v(jt),qt=b(di,2),Le=b(v(qt),2);{var It=X=>{var ee=GX(),de=v(ee);j(()=>O(de,d(ie).length)),D(X,ee)};W(Le,X=>{!d(J)&&d(ie).length>0&&X(It)})}var ai=b(Le,2),pi=v(ai),_i=b(qt,2);{var Fe=X=>{var ee=QX(),de=v(ee);{var ke=N=>{var Q=KX();D(N,Q)},$e=N=>{var Q=Rs(),oe=Ct(Q);mi(oe,17,()=>d(he),Ie=>Ie.id,(Ie,De)=>{const B=wt(()=>{var St,Dt;return((St=g.get(d(De).nodeId))==null?void 0:St.name)??((Dt=d(f).find(Ft=>Ft.nodeId===d(De).nodeId))==null?void 0:Dt.name)??null}),q=wt(()=>{var St,Dt;return d(De).endpointId!==void 0?((Dt=(St=g.get(d(De).nodeId))==null?void 0:St.endpoints.find(Ft=>Ft.endpointId===d(De).endpointId))==null?void 0:Dt.name)??null:null}),Y=wt(()=>d(De).attrName??d(De).clusterName);var me=YX(),Qe=v(me),Ee=v(Qe),Se=b(Qe,2);{var lt=St=>{var Dt=ZX(),Ft=b(Ct(Dt),2),ne=v(Ft),_e=b(ne);{var Be=Rt=>{var ri=pS(),fi=b(Ct(ri)),Ci=v(fi);j(()=>O(Ci,`(#${d(De).nodeId??""})`)),D(Rt,ri)};W(_e,Rt=>{d(B)&&Rt(Be)})}var at=b(Ft,2);let nt;var Ye=v(at);j(()=>{O(ne,d(B)??`#${d(De).nodeId}`),nt=Tt(at,1,"e-val svelte-1ua3isv",null,nt,{"e-online":d(De).online,"e-offline":!d(De).online}),O(Ye,d(De).online?"online":"offline")}),D(St,Dt)},Bt=St=>{var Dt=XX(),Ft=b(Ct(Dt),2),ne=v(Ft),_e=b(ne);{var Be=ki=>{var Xi=pS(),z=b(Ct(Xi)),te=v(z);j(()=>O(te,`(#${d(De).nodeId??""})`)),D(ki,Xi)};W(_e,ki=>{d(B)&&ki(Be)})}var at=b(Ft,2),nt=v(at),Ye=b(nt);{var Rt=ki=>{var Xi=pS(),z=b(Ct(Xi)),te=v(z);j(()=>O(te,`(ep ${d(De).endpointId??""})`)),D(ki,Xi)};W(Ye,ki=>{d(q)&&ki(Rt)})}var ri=b(at,2),fi=v(ri),Ci=b(ri,2),en=v(Ci),fn=b(Ci,2),cn=v(fn);j(ki=>{O(ne,d(B)??`#${d(De).nodeId}`),O(nt,d(q)??`ep${d(De).endpointId}`),O(fi,d(De).clusterName),O(en,d(Y)),O(cn,ki)},[()=>p(d(De).value)]),D(St,Dt)};W(Se,St=>{d(De).kind==="status"?St(lt):St(Bt,-1)})}j(St=>O(Ee,St),[()=>E(d(De).ts)]),D(Ie,me)}),D(N,Q)};W(de,N=>{d(he).length===0?N(ke):N($e,-1)})}D(X,ee)};W(_i,X=>{d(J)&&X(Fe)})}j(()=>{Fo(jt,d(J)?`height: ${d(ue)}px;`:""),O(pi,d(J)?"▾":"▸")}),U("click",vi,()=>y(ve,!d(ve))),U("mousedown",di,We),U("click",ai,()=>{y(J,!d(J))}),D(o,Di),As()}Ks(["click","mousedown"]);var tY=T("<button>›</button>"),iY=T('<span class="chev-ph svelte-1vejtrc"></span>'),nY=T('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),sY=T('<div class="tc svelte-1vejtrc"></div>'),oY=T('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!></div> <!></div>'),rY=T("<option></option>"),aY=T('<span class="pub-ok svelte-1vejtrc">✓</span>'),lY=T('<span class="pub-err svelte-1vejtrc"> </span>'),cY=T('<div class="info svelte-1vejtrc">Loading…</div>'),dY=T('<div class="info err svelte-1vejtrc"> </div>'),uY=T('<div class="info svelte-1vejtrc">No topics match.</div>'),hY=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>'),fY=T('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),gY=T('<div class="info svelte-1vejtrc">No topics yet.</div>'),pY=T('<div class="tree-wrap svelte-1vejtrc"><!></div>'),_Y=T('<span class="stream-badge"> </span>'),mY=T('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),vY=T('<span class="s-ret svelte-1vejtrc" title="retained snapshot">⊛</span>'),bY=T('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),yY=T('<div class="stream-body svelte-1vejtrc"><!></div>'),wY=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),SY=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>'),CY=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),xY=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 kY(o,e){Ns(e,!0);const t=(ne,_e=Ny)=>{const Be=wt(()=>d(g).has(_e().path)),at=wt(()=>d(a)>=0&&_e().children.size>0),nt=wt(()=>d(a)>=0&&_e().isLeaf&&!n.has(_e().path));var Ye=oY(),Rt=v(Ye);let ri;var fi=v(Rt);{var Ci=Je=>{var ge=tY();let be;j(()=>{be=Tt(ge,1,"chev svelte-1vejtrc",null,be,{open:d(Be)}),Ai(ge,"aria-label",d(Be)?"Collapse":"Expand")}),U("click",ge,()=>p(_e().path)),D(Je,ge)},en=Je=>{var ge=iY();D(Je,ge)};W(fi,Je=>{d(at)?Je(Ci):Je(en,-1)})}var fn=b(fi,2),cn=v(fn),ki=b(fn,2);{var Xi=Je=>{var ge=nY(),be=Ct(ge),vt=v(be),Ei=b(be,2),Ne=v(Ei);j((Ke,Vt,et)=>{Ai(be,"title",Ke),O(vt,Vt),O(Ne,et)},[()=>{var Ke;return Ri((Ke=ci(_e().path))==null?void 0:Ke.val)},()=>{var Ke;return Ri((Ke=ci(_e().path))==null?void 0:Ke.val)},()=>{var Ke;return((Ke=ci(_e().path))==null?void 0:Ke.ts)!=null?Ni(ci(_e().path).ts):""}]),D(Je,ge)},z=wt(()=>_e().isLeaf&&i.has(_e().path));W(ki,Je=>{d(z)&&Je(Xi)})}var te=b(Rt,2);{var Ge=Je=>{var ge=sY();mi(ge,21,()=>[..._e().children.values()].sort((be,vt)=>be.seg.localeCompare(vt.seg)),be=>be.path,(be,vt)=>{t(be,()=>d(vt))}),D(Je,ge)};W(te,Je=>{d(at)&&d(Be)&&Je(Ge)})}j(()=>{ri=Tt(Rt,1,"tr svelte-1vejtrc",null,ri,{stale:d(nt)}),O(cn,_e().seg)}),U("click",Rt,()=>{y(rt,_e().path+"/#")}),U("contextmenu",Rt,Je=>{Je.preventDefault(),y(Te,{x:Je.clientX,y:Je.clientY,topic:_e().path},!0)}),D(ne,Ye)},i=new Map,n=new Set,s=new Set;let r=null,a=M(0);function c(){r===null&&(r=requestAnimationFrame(()=>{r=null;for(const ne of s)f(ne);s.clear(),OL(a)}))}const u=new Map;function f(ne){const _e=ne.split("/");let Be=u,at="";for(let nt=0;nt<_e.length;nt++){const Ye=_e[nt];at=nt===0?Ye:`${at}/${Ye}`,Be.has(Ye)||Be.set(Ye,{seg:Ye,path:at,children:new Map,isLeaf:!1});const Rt=Be.get(Ye);nt===_e.length-1&&(Rt.isLeaf=!0),Be=Rt.children}}let g=M(yi(new Set));function p(ne){const _e=new Set(d(g));_e.has(ne)?_e.delete(ne):_e.add(ne),y(g,_e,!0)}let w=M("");const m=24,x=5;let k=M(0),E=M(300),P=wt(()=>{if(d(a),!d(w))return[];const ne=d(w).toLowerCase().split(/\s+/).filter(Boolean),_e=[];for(const[Be,at]of i){const nt=Be.toLowerCase();ne.every(Ye=>nt.includes(Ye))&&_e.push({topic:Be,...at})}return _e.sort((Be,at)=>Be.topic.localeCompare(at.topic))}),A=wt(()=>{const ne=d(P).length,_e=Math.max(0,Math.floor(d(k)/m)-x),Be=Math.min(ne,Math.ceil((d(k)+d(E))/m)+x);return{start:_e,end:Be,totalH:ne*m,top:_e*m}});const $=1e3,H=200,ie=20,J=36;let ue=0,he=M(yi([])),We=M(yi([])),xe=M(!0),rt=M("#"),pt=M(200);zn(()=>{const ne=d(rt).trim(),_e=Nl(()=>d(he)),Be=!ne||ne==="#"?_e.slice(0,H):_e.filter(at=>ve(ne,at.topic)).slice(0,H);if(ne&&ne!=="#"){const at=new Set(Be.map(Ye=>Ye.topic)),nt=[];for(const[Ye,Rt]of i)at.has(Ye)||ve(ne,Ye)&&nt.push({id:-(nt.length+1),topic:Ye,val:Rt.val,ts:Rt.ts,retained:!0});nt.sort((Ye,Rt)=>Ye.topic.localeCompare(Rt.topic)),y(We,[...Be,...nt],!0)}else y(We,Be,!0)});function ve(ne,_e){if(ne==="#")return!0;const Be=ne.split("/"),at=_e.split("/");for(let nt=0;nt<Be.length;nt++){if(Be[nt]==="#")return!0;if(nt>=at.length||Be[nt]!=="+"&&Be[nt]!==at[nt])return!1}return Be.length===at.length}function dt(ne){ne.preventDefault();const _e=ne.clientY,Be=d(pt);function at(Ye){y(pt,Math.max(60,Math.min(800,Be+_e-Ye.clientY)),!0)}function nt(){document.removeEventListener("mousemove",at),document.removeEventListener("mouseup",nt)}document.addEventListener("mousemove",at),document.addEventListener("mouseup",nt)}let gt=wt(()=>{const ne=Math.max(1,Math.floor((d(pt)-J)/ie)+1);return d(We).slice(0,ne)}),Pt=M(!0),fe=M(null);async function Et(){y(Pt,!0),y(fe,null);try{const ne=await BN();for(const _e of ne)i.set(_e.topic,{val:_e.val,ts:_e.ts}),f(_e.topic)}catch(ne){y(fe,ne instanceof Error?ne.message:String(ne),!0)}finally{y(Pt,!1),OL(a)}}const Oe=kr("mqtt",ne=>{const{topic:_e,val:Be,ts:at}=ne;i.set(_e,{val:Be,ts:at}),n.add(_e),s.add(_e),c();const nt={id:ue++,topic:_e,val:Be,ts:at};y(he,[nt,...d(he).slice(0,$-1)],!0);const Ye=d(rt).trim();(!Ye||Ye==="#"||ve(Ye,_e))&&y(We,[nt,...d(We).filter(Rt=>!(Rt.retained&&Rt.topic===_e)).slice(0,H-1)],!0)});let Te=M(null),ut=M(null);async function Wt(ne,_e){const Be=[ne];if(_e){const at=ne+"/";for(const nt of i.keys())nt.startsWith(at)&&Be.push(nt)}for(const at of Be)await HD(at,"",!0,0)}let Zt=wt(()=>(d(a),[...i.keys()].sort())),Mt=M(""),Lt=M(""),At=M(!1),kt=M(0),Si=M(!1),hi=M(null),Di=M(!1);async function Fi(){if(d(Mt)){y(Si,!0),y(hi,null),y(Di,!1);try{await HD(d(Mt),d(Lt),d(At),d(kt)),y(Di,!0),setTimeout(()=>{y(Di,!1)},2e3)}catch(ne){y(hi,ne instanceof Error?ne.message:String(ne),!0)}finally{y(Si,!1)}}}function Ri(ne){return ne==null?"":typeof ne=="object"?JSON.stringify(ne):String(ne)}function Ni(ne){return new Date(ne).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ii(ne){return new Date(ne).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function ci(ne){return d(a),i.get(ne)}let vi=wt(()=>(d(a),[...u.values()].sort((ne,_e)=>ne.seg.localeCompare(_e.seg)))),it=wt(()=>(d(a),i.size));ao(Et),Wy(()=>{Oe(),r!==null&&cancelAnimationFrame(r)});var zt=xY(),gi=b(v(zt),2),Ti=v(gi),Zi=v(Ti),Bi=b(Zi,2);mi(Bi,20,()=>d(Zt),ne=>ne,(ne,_e)=>{var Be=rY(),at={};j(()=>{at!==(at=_e)&&(Be.value=(Be.__value=_e)??"")}),D(ne,Be)});var zi=b(Bi,2),vn=b(zi,2),ln=v(vn),Pi=b(vn,2),yn=v(Pi);yn.value=yn.__value=0;var Re=b(yn);Re.value=Re.__value=1;var jt=b(Re);jt.value=jt.__value=2;var di=b(Pi,2),qt=b(di,2);{var Le=ne=>{var _e=aY();D(ne,_e)};W(qt,ne=>{d(Di)&&ne(Le)})}var It=b(qt,2);{var ai=ne=>{var _e=lY(),Be=v(_e);j(()=>O(Be,d(hi))),D(ne,_e)};W(It,ne=>{d(hi)&&ne(ai)})}var pi=b(Ti,2),_i=v(pi),Fe=b(_i,2),X=v(Fe);{var ee=ne=>{var _e=sa();j(()=>O(_e,`${d(P).length??""} /`)),D(ne,_e)};W(X,ne=>{d(w)&&ne(ee)})}var de=b(X),ke=b(pi,2);{var $e=ne=>{var _e=cY();D(ne,_e)},N=ne=>{var _e=dY(),Be=v(_e);j(()=>O(Be,d(fe))),D(ne,_e)},Q=ne=>{var _e=Rs(),Be=Ct(_e);{var at=Ye=>{var Rt=uY();D(Ye,Rt)},nt=Ye=>{var Rt=fY(),ri=v(Rt),fi=v(ri);mi(fi,21,()=>d(P).slice(d(A).start,d(A).end),Ci=>Ci.topic,(Ci,en)=>{var fn=hY(),cn=v(fn),ki=v(cn),Xi=b(cn,2),z=v(Xi),te=b(Xi,2),Ge=v(te);j((Je,ge,be)=>{O(ki,d(en).topic),Ai(Xi,"title",Je),O(z,ge),O(Ge,be)},[()=>Ri(d(en).val),()=>Ri(d(en).val),()=>Ni(d(en).ts)]),D(Ci,fn)}),j(()=>{Fo(ri,`height: ${d(A).totalH??""}px; position: relative;`),Fo(fi,`top: ${d(A).top??""}px;`)}),cs("scroll",Rt,Ci=>{y(k,Ci.currentTarget.scrollTop,!0)}),qH(Rt,"clientHeight",Ci=>y(E,Ci)),D(Ye,Rt)};W(Be,Ye=>{d(P).length===0?Ye(at):Ye(nt,-1)})}D(ne,_e)},oe=ne=>{var _e=pY(),Be=v(_e);{var at=Ye=>{var Rt=gY();D(Ye,Rt)},nt=Ye=>{var Rt=Rs(),ri=Ct(Rt);mi(ri,17,()=>d(vi),fi=>fi.path,(fi,Ci)=>{t(fi,()=>d(Ci))}),D(Ye,Rt)};W(Be,Ye=>{d(vi).length===0?Ye(at):Ye(nt,-1)})}D(ne,_e)};W(ke,ne=>{d(Pt)?ne($e):d(fe)?ne(N,1):d(w)?ne(Q,2):ne(oe,-1)})}var Ie=b(gi,2),De=v(Ie),B=b(De,2),q=v(B),Y=b(q,2);{var me=ne=>{var _e=_Y(),Be=v(_e);j(()=>O(Be,d(We).length)),D(ne,_e)};W(Y,ne=>{!d(xe)&&d(We).length>0&&ne(me)})}var Qe=b(Y,2),Ee=v(Qe),Se=b(B,2);{var lt=ne=>{var _e=yY(),Be=v(_e);{var at=Ye=>{var Rt=mY();D(Ye,Rt)},nt=Ye=>{var Rt=Rs(),ri=Ct(Rt);mi(ri,17,()=>d(gt),fi=>fi.id,(fi,Ci)=>{var en=bY();let fn;var cn=v(en),ki=v(cn),Xi=b(cn,2);{var z=be=>{var vt=vY();D(be,vt)};W(Xi,be=>{d(Ci).retained&&be(z)})}var te=b(Xi,2),Ge=v(te),Je=b(te,2),ge=v(Je);j((be,vt,Ei)=>{fn=Tt(en,1,"sr svelte-1vejtrc",null,fn,{retained:d(Ci).retained}),O(ki,be),O(Ge,d(Ci).topic),Ai(Je,"title",vt),O(ge,Ei)},[()=>Ii(d(Ci).ts),()=>Ri(d(Ci).val),()=>Ri(d(Ci).val)]),D(fi,en)}),D(Ye,Rt)};W(Be,Ye=>{d(gt).length===0?Ye(at):Ye(nt,-1)})}D(ne,_e)};W(Se,ne=>{d(xe)&&ne(lt)})}var Bt=b(Ie,2);{var St=ne=>{var _e=wY(),Be=Ct(_e),at=b(Be,2);let nt;var Ye=v(at),Rt=b(Ye,2);j(()=>nt=Fo(at,"",nt,{left:`${d(Te).x??""}px`,top:`${d(Te).y??""}px`})),U("click",Be,()=>y(Te,null)),U("contextmenu",Be,ri=>{ri.preventDefault(),y(Te,null)}),U("click",Ye,()=>{navigator.clipboard.writeText(d(Te).topic),y(Te,null)}),U("click",Rt,()=>{const ri=d(Te).topic,fi=ri+"/",Ci=[...i.keys()].some(en=>en.startsWith(fi));y(ut,{topic:ri,hasChildren:Ci,recursive:!1},!0),y(Te,null)}),D(ne,_e)};W(Bt,ne=>{d(Te)&&ne(St)})}var Dt=b(Bt,2);{var Ft=ne=>{var _e=CY(),Be=Ct(_e),at=b(Be,2),nt=b(v(at),2),Ye=v(nt),Rt=b(v(Ye)),ri=v(Rt),fi=b(Ye,2);{var Ci=ki=>{var Xi=SY(),z=v(Xi);Is(z,()=>d(ut).recursive,te=>d(ut).recursive=te),D(ki,Xi)};W(fi,ki=>{d(ut).hasChildren&&ki(Ci)})}var en=b(nt,2),fn=v(en),cn=b(fn,2);j(()=>O(ri,d(ut).topic)),U("click",Be,()=>y(ut,null)),U("click",fn,()=>y(ut,null)),U("click",cn,()=>{const{topic:ki,recursive:Xi}=d(ut);y(ut,null),Wt(ki,Xi)}),D(ne,_e)};W(Dt,ne=>{d(ut)&&ne(Ft)})}j(()=>{di.disabled=d(Si)||!d(Mt),O(de,` ${d(it)??""}`),Fo(Ie,d(xe)?`height: ${d(pt)}px;`:""),O(Ee,d(xe)?"▾":"▸")}),ti(Zi,()=>d(Mt),ne=>y(Mt,ne)),ti(zi,()=>d(Lt),ne=>y(Lt,ne)),Is(ln,()=>d(At),ne=>y(At,ne)),Ho(Pi,()=>d(kt),ne=>y(kt,ne)),U("click",di,Fi),ti(_i,()=>d(w),ne=>y(w,ne)),U("mousedown",De,dt),ti(q,()=>d(rt),ne=>y(rt,ne)),U("click",Qe,()=>{y(xe,!d(xe))}),D(o,zt),As()}Ks(["click","contextmenu","mousedown"]);var LY=T('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),IY=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>'),DY=T('<div class="err svelte-twakcj"> </div>'),EY=T('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),TY=T('<p class="empty svelte-twakcj">No packages installed.</p>'),PY=T('<p class="empty svelte-twakcj">No match.</p>'),MY=T("<span> </span>"),RY=$P('<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>'),NY=$P('<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>'),AY=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>'),OY=T('<span class="result-author svelte-twakcj"> </span>'),FY=T('<span class="result-date svelte-twakcj"> </span>'),HY=T('<span class="result-desc svelte-twakcj"> </span>'),WY=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>'),BY=T('<div class="results-list svelte-twakcj"></div>'),zY=T('<pre class="npm-output svelte-twakcj"> </pre>'),VY=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>`),jY=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 $Y(o,e){Ns(e,!0);let t=M(yi([])),i=M(""),n=M(yi({})),s=M(yi([])),r=M(!1),a=M(""),c=M(yi([])),u=M(!1),f=M(!1),g=M(!1),p=M(""),w=M(""),m=yi({});const x=wt(()=>d(i).trim()?d(t).filter(Re=>Re.name.toLowerCase().includes(d(i).toLowerCase())):d(t)),k=wt(()=>Object.keys(d(n)).filter(Re=>!d(s).includes(Re)).length);ao(async()=>{await Promise.all([E(),P(),A()])});async function E(){try{y(t,await E7(),!0),y(p,"")}catch(Re){y(p,Re.message,!0)}}async function P(){try{y(n,await HN(),!0)}catch{}}async function A(){try{const Re=await Dl();y(s,Array.isArray(Re.pinnedPackages)?Re.pinnedPackages:[],!0)}catch{}}async function $(Re){const jt=d(s).includes(Re)?d(s).filter(di=>di!==Re):[...d(s),Re];y(s,jt,!0);try{const di=await Dl();await Xp({...di,pinnedPackages:jt})}catch{}}async function H(){y(r,!0);try{y(n,await N7(),!0)}catch{}finally{y(r,!1)}}async function ie(){const Re=d(a).trim();if(!Re){y(c,[],!0);return}y(g,!0),y(p,"");try{y(c,await T7(Re),!0)}catch(jt){y(p,jt.message,!0)}finally{y(g,!1)}}function J(Re){if(!Re)return"";try{return new Date(Re).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function ue(Re,jt){m[Re]=!0,y(p,""),y(w,"");try{const di=await P7(Re,jt);y(w,di.stdout||di.stderr||"Done.",!0),y(u,!0),await E()}catch(di){y(p,di.message,!0)}finally{m[Re]=!1}}async function he(Re){m[Re]=!0,y(p,""),y(w,"");try{const jt=await M7(Re);y(w,jt.stdout||jt.stderr||"Done.",!0),y(u,!0);const di={...d(n)};delete di[Re],y(n,di,!0),await E()}catch(jt){y(p,jt.message,!0)}finally{m[Re]=!1}}async function We(Re){m[Re]=!0,y(p,""),y(w,"");try{const jt=await R7(Re);y(w,jt.stdout||jt.stderr||"Done.",!0),y(u,!0);const di={...d(n)};delete di[Re],y(n,di,!0),await E()}catch(jt){y(p,jt.message,!0)}finally{m[Re]=!1}}let xe;async function rt(){if(await xe.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){y(f,!0);try{await AN()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var pt=jY(),ve=Ct(pt);Ds(Jf(ve,{}),Re=>xe=Re,()=>xe);var dt=b(ve,2),gt=v(dt);{var Pt=Re=>{var jt=LY();D(Re,jt)},fe=Re=>{var jt=IY(),di=b(v(jt));U("click",di,rt),D(Re,jt)};W(gt,Re=>{d(f)?Re(Pt):d(u)&&Re(fe,1)})}var Et=b(gt,2);{var Oe=Re=>{var jt=DY(),di=v(jt);j(()=>O(di,d(p))),D(Re,jt)};W(Et,Re=>{d(p)&&Re(Oe)})}var Te=b(Et,2),ut=v(Te),Wt=v(ut),Zt=b(v(Wt),2),Mt=v(Zt),Lt=b(Zt,2);{var At=Re=>{var jt=EY(),di=v(jt);j(()=>O(di,`${d(k)??""} outdated`)),D(Re,jt)};W(Lt,Re=>{d(k)>0&&Re(At)})}var kt=b(Lt,2),Si=v(kt);let hi;var Di=b(Wt,2),Fi=v(Di),Ri=b(Di,2),Ni=v(Ri);{var Ii=Re=>{var jt=TY();D(Re,jt)},ci=Re=>{var jt=PY();D(Re,jt)},vi=Re=>{var jt=Rs(),di=Ct(jt);mi(di,17,()=>d(x),qt=>qt.name,(qt,Le)=>{var It=AY();let ai;var pi=v(It),_i=v(pi),Fe=v(_i),X=b(_i,2),ee=v(X),de=b(X,2);{var ke=me=>{var Qe=MY();let Ee;var Se=v(Qe);j(lt=>{Ee=Tt(Qe,1,"dep-latest svelte-twakcj",null,Ee,lt),O(Se,`→ v${d(n)[d(Le).name].latest??""}`)},[()=>({"dep-latest--pinned":d(s).includes(d(Le).name)})]),D(me,Qe)};W(de,me=>{d(n)[d(Le).name]&&me(ke)})}var $e=b(pi,2),N=v($e);let Q;var oe=b(N,2);let Ie;var De=v(oe);{var B=me=>{var Qe=RY();D(me,Qe)},q=me=>{var Qe=NY();D(me,Qe)};W(De,me=>{m[d(Le).name]?me(B):me(q,-1)})}var Y=b(oe,2);j((me,Qe,Ee)=>{ai=Tt(It,1,"dep-row svelte-twakcj",null,ai,{"dep-busy":!!m[d(Le).name]}),Ai(_i,"href",d(Le).url??`https://www.npmjs.com/package/${d(Le).name}`),O(Fe,d(Le).name),O(ee,d(Le).installedVersion??d(Le).version),Q=Tt(N,1,"icon-btn svelte-twakcj",null,Q,me),Ai(N,"title",Qe),Ie=Tt(oe,1,"icon-btn svelte-twakcj",null,Ie,Ee),oe.disabled=!!m[d(Le).name],Ai(oe,"title",d(n)[d(Le).name]?`Update to v${d(n)[d(Le).name].latest}`:"Update to latest"),Y.disabled=!!m[d(Le).name]},[()=>({"icon-btn--pinned":d(s).includes(d(Le).name)}),()=>d(s).includes(d(Le).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!d(n)[d(Le).name]&&!d(s).includes(d(Le).name)})]),U("click",N,()=>$(d(Le).name)),U("click",oe,()=>We(d(Le).name)),U("click",Y,()=>he(d(Le).name)),D(qt,It)}),D(Re,jt)};W(Ni,Re=>{d(t).length===0?Re(Ii):d(x).length===0?Re(ci,1):Re(vi,-1)})}var it=b(ut,2),zt=b(v(it),2),gi=v(zt),Ti=b(gi,2),Zi=v(Ti),Bi=b(zt,2);{var zi=Re=>{var jt=BY();mi(jt,21,()=>d(c),di=>di.name,(di,qt)=>{var Le=WY(),It=v(Le),ai=v(It),pi=v(ai),_i=b(ai,2),Fe=v(_i),X=b(_i,2);{var ee=Ie=>{var De=OY(),B=v(De);j(()=>O(B,d(qt).author)),D(Ie,De)};W(X,Ie=>{d(qt).author&&Ie(ee)})}var de=b(X,2);{var ke=Ie=>{var De=FY(),B=v(De);j(q=>{Ai(De,"title",d(qt).date),O(B,q)},[()=>J(d(qt).date)]),D(Ie,De)};W(de,Ie=>{d(qt).date&&Ie(ke)})}var $e=b(de,2);{var N=Ie=>{var De=HY(),B=v(De);j(()=>O(B,d(qt).description)),D(Ie,De)};W($e,Ie=>{d(qt).description&&Ie(N)})}var Q=b(It,2),oe=v(Q);j(()=>{Ai(ai,"href",d(qt).url??`https://www.npmjs.com/package/${d(qt).name}`),O(pi,d(qt).name),O(Fe,d(qt).version),Q.disabled=!!m[d(qt).name],O(oe,m[d(qt).name]?"Installing…":"Install")}),U("click",Q,()=>ue(d(qt).name)),D(di,Le)}),D(Re,jt)};W(Bi,Re=>{d(c).length>0&&Re(zi)})}var vn=b(Bi,2);{var ln=Re=>{var jt=zY(),di=v(jt);j(()=>O(di,d(w))),D(Re,jt)};W(vn,Re=>{d(w)&&Re(ln)})}var Pi=b(vn,2);{var yn=Re=>{var jt=VY();D(Re,jt)};W(Pi,Re=>{!d(c).length&&!d(w)&&Re(yn)})}j(()=>{O(Mt,d(t).length),kt.disabled=d(r),hi=Tt(Si,0,"svelte-twakcj",null,hi,{spinning:d(r)}),Ti.disabled=d(g),O(Zi,d(g)?"Searching…":"Search")}),U("click",kt,H),ti(Fi,()=>d(i),Re=>y(i,Re)),U("keydown",gi,Re=>Re.key==="Enter"&&ie()),ti(gi,()=>d(a),Re=>y(a,Re)),U("click",Ti,ie),D(o,pt),As()}Ks(["click","keydown"]);var UY=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>'),Ul=T('<div class="err svelte-3itf14"> </div>'),qY=T('<div class="empty svelte-3itf14">No users found.</div>'),_E=T('<span class="tag svelte-3itf14"> </span>'),mE=T('<span class="tag tag--group svelte-3itf14"> </span>'),GY=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="tags svelte-3itf14"></td><td class="tags svelte-3itf14"></td><td class="actions svelte-3itf14"><button title="Set password" class="svelte-3itf14">🔑</button> <button class="danger svelte-3itf14" title="Delete">✕</button></td></tr>'),KY=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>'),ZY=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>'),XY=T('<div class="empty svelte-3itf14">No roles found.</div>'),YY=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="actions svelte-3itf14"><button title="Edit ACLs" class="svelte-3itf14">Edit ACLs</button> <button class="danger svelte-3itf14" title="Delete">✕</button></td></tr>'),QY=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>'),JY=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>'),eQ=T('<div class="empty svelte-3itf14">No groups found.</div>'),tQ=T('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="tags svelte-3itf14"></td><td class="tags svelte-3itf14"></td><td class="actions svelte-3itf14"><button class="danger svelte-3itf14" title="Delete">✕</button></td></tr>'),iQ=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>'),nQ=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>'),sQ=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>'),oQ=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>'),rQ=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>'),aQ=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>'),lQ=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>'),cQ=T('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),dQ=T("<option> </option>"),uQ=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>'),hQ=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>'),fQ=T('<div class="users-page svelte-3itf14"><!> <div class="panel-tabs svelte-3itf14"><button>Users</button> <button>Roles</button> <button>Groups</button> <button class="reload-btn svelte-3itf14" title="Refresh">↺</button></div> <!> <!> <!></div> <!> <!> <!> <!> <!>',1);function gQ(o,e){Ns(e,!0);let t=wu(e,"dynsecReady",3,!1),i=M(yi([])),n=M(yi([])),s=M(yi([])),r=M(""),a=M(""),c=M(""),u=M("users"),f=M(!1),g=M(""),p=M(""),w=M(!1),m=M(""),x=M(!1),k=M(!1),E=M(""),P=M(""),A=M(""),$=M(!1),H=M(!1),ie=M(""),J=M(""),ue=M(!1),he=M(null),We=M(!1),xe=M("publishClientSend"),rt=M(""),pt=M(!0),ve=M(""),dt=M(!1),gt=M(""),Pt=M(""),fe=M(!1);const Et=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function Oe(){var ee,de,ke;try{const[$e,N,Q]=await Promise.allSettled([K7(),Q7(),nq()]);$e.status==="fulfilled"?(y(i,$e.value.users,!0),y(r,"")):y(r,((ee=$e.reason)==null?void 0:ee.message)??"Failed to load users",!0),N.status==="fulfilled"?(y(n,N.value.roles,!0),y(a,"")):y(a,((de=N.reason)==null?void 0:de.message)??"Failed to load roles",!0),Q.status==="fulfilled"?(y(s,Q.value.groups,!0),y(c,"")):y(c,((ke=Q.reason)==null?void 0:ke.message)??"Failed to load groups",!0)}catch{}}ao(()=>{Oe()});async function Te(){y(m,""),y(x,!0);try{await Z7(d(g),d(p)),y(g,""),y(p,""),y(f,!1),await Oe()}catch(ee){y(m,ee.message??"Failed to create user",!0)}finally{y(x,!1)}}async function ut(ee){if(confirm(`Delete user "${ee}"?`))try{await X7(ee),await Oe()}catch(de){y(r,de.message,!0)}}async function Wt(ee){y(E,ee,!0),y(P,""),y(A,""),y(k,!0)}async function Zt(){y(A,""),y($,!0);try{await Y7(d(E),d(P)),y(k,!1)}catch(ee){y(A,ee.message,!0)}finally{y($,!1)}}async function Mt(){y(J,""),y(ue,!0);try{await J7(d(ie)),y(ie,""),y(H,!1),await Oe()}catch(ee){y(J,ee.message??"Failed to create role",!0)}finally{y(ue,!1)}}async function Lt(ee){var de;if(confirm(`Delete role "${ee}"?`))try{await eq(ee),((de=d(he))==null?void 0:de.rolename)===ee&&(y(he,null),y(We,!1)),await Oe()}catch(ke){y(a,ke.message,!0)}}function At(ee){y(he,ee,!0),y(We,!0),y(xe,"publishClientSend"),y(rt,""),y(pt,!0),y(ve,"")}async function kt(){if(d(he)){y(ve,"");try{await tq(d(he).rolename,{acltype:d(xe),topic:d(rt),allow:d(pt)}),y(rt,""),await Oe(),y(he,d(n).find(ee=>ee.rolename===d(he).rolename)??d(he),!0)}catch(ee){y(ve,ee.message,!0)}}}async function Si(ee,de,ke){try{await iq(ee,de,ke),await Oe(),y(he,d(n).find($e=>$e.rolename===ee)??d(he),!0)}catch($e){y(ve,$e.message,!0)}}async function hi(){y(Pt,""),y(fe,!0);try{await sq(d(gt)),y(gt,""),y(dt,!1),await Oe()}catch(ee){y(Pt,ee.message??"Failed to create group",!0)}finally{y(fe,!1)}}async function Di(ee){if(confirm(`Delete group "${ee}"?`))try{await oq(ee),await Oe()}catch(de){y(c,de.message,!0)}}var Fi=fQ(),Ri=Ct(Fi),Ni=v(Ri);{var Ii=ee=>{var de=UY();D(ee,de)};W(Ni,ee=>{t()||ee(Ii)})}var ci=b(Ni,2),vi=v(ci);let it;var zt=b(vi,2);let gi;var Ti=b(zt,2);let Zi;var Bi=b(Ti,2),zi=b(ci,2);{var vn=ee=>{var de=ZY(),ke=v(de),$e=b(v(ke),2),N=b(ke,2);{var Q=B=>{var q=Ul(),Y=v(q);j(()=>O(Y,d(r))),D(B,q)};W(N,B=>{d(r)&&B(Q)})}var oe=b(N,2);{var Ie=B=>{var q=qY();D(B,q)},De=B=>{var q=KY(),Y=b(v(q));mi(Y,21,()=>d(i),Ji,(me,Qe)=>{var Ee=GY(),Se=v(Ee),lt=v(Se),Bt=b(Se);mi(Bt,21,()=>d(Qe).roles??[],Ji,(_e,Be)=>{var at=_E(),nt=v(at);j(()=>O(nt,d(Be).rolename)),D(_e,at)});var St=b(Bt);mi(St,21,()=>d(Qe).groups??[],Ji,(_e,Be)=>{var at=mE(),nt=v(at);j(()=>O(nt,d(Be).groupname)),D(_e,at)});var Dt=b(St),Ft=v(Dt),ne=b(Ft,2);j(()=>O(lt,d(Qe).username)),U("click",Ft,()=>Wt(d(Qe).username)),U("click",ne,()=>ut(d(Qe).username)),D(me,Ee)}),D(B,q)};W(oe,B=>{d(i).length===0?B(Ie):B(De,-1)})}U("click",$e,()=>{y(f,!0),y(m,"")}),D(ee,de)};W(zi,ee=>{d(u)==="users"&&ee(vn)})}var ln=b(zi,2);{var Pi=ee=>{var de=JY(),ke=v(de),$e=b(v(ke),2),N=b(ke,2);{var Q=B=>{var q=Ul(),Y=v(q);j(()=>O(Y,d(a))),D(B,q)};W(N,B=>{d(a)&&B(Q)})}var oe=b(N,2);{var Ie=B=>{var q=XY();D(B,q)},De=B=>{var q=QY(),Y=b(v(q));mi(Y,21,()=>d(n),Ji,(me,Qe)=>{var Ee=YY(),Se=v(Ee),lt=v(Se),Bt=b(Se),St=v(Bt),Dt=b(Bt),Ft=v(Dt),ne=b(Ft,2);j(()=>{var _e;O(lt,d(Qe).rolename),O(St,((_e=d(Qe).acls)==null?void 0:_e.length)??0)}),U("click",Ft,()=>At(d(Qe))),U("click",ne,()=>Lt(d(Qe).rolename)),D(me,Ee)}),D(B,q)};W(oe,B=>{d(n).length===0?B(Ie):B(De,-1)})}U("click",$e,()=>{y(H,!0),y(J,""),y(ie,"")}),D(ee,de)};W(ln,ee=>{d(u)==="roles"&&ee(Pi)})}var yn=b(ln,2);{var Re=ee=>{var de=nQ(),ke=v(de),$e=b(v(ke),2),N=b(ke,2);{var Q=B=>{var q=Ul(),Y=v(q);j(()=>O(Y,d(c))),D(B,q)};W(N,B=>{d(c)&&B(Q)})}var oe=b(N,2);{var Ie=B=>{var q=eQ();D(B,q)},De=B=>{var q=iQ(),Y=b(v(q));mi(Y,21,()=>d(s),Ji,(me,Qe)=>{var Ee=tQ(),Se=v(Ee),lt=v(Se),Bt=b(Se);mi(Bt,21,()=>d(Qe).clients??[],Ji,(ne,_e)=>{var Be=_E(),at=v(Be);j(()=>O(at,d(_e).username)),D(ne,Be)});var St=b(Bt);mi(St,21,()=>d(Qe).roles??[],Ji,(ne,_e)=>{var Be=mE(),at=v(Be);j(()=>O(at,d(_e).rolename)),D(ne,Be)});var Dt=b(St),Ft=v(Dt);j(()=>O(lt,d(Qe).groupname)),U("click",Ft,()=>Di(d(Qe).groupname)),D(me,Ee)}),D(B,q)};W(oe,B=>{d(s).length===0?B(Ie):B(De,-1)})}U("click",$e,()=>{y(dt,!0),y(Pt,""),y(gt,"")}),D(ee,de)};W(yn,ee=>{d(u)==="groups"&&ee(Re)})}var jt=b(Ri,2);{var di=ee=>{var de=sQ(),ke=v(de),$e=b(v(ke),2),N=b(v($e)),Q=b($e,2),oe=b(v(Q)),Ie=v(oe),De=b(Ie,2),B=v(De),q=b(Q,2);{var Y=lt=>{var Bt=Ul(),St=v(Bt);j(()=>O(St,d(m))),D(lt,Bt)};W(q,lt=>{d(m)&<(Y)})}var me=b(q,2),Qe=v(me),Ee=b(Qe,2),Se=v(Ee);j(()=>{Ai(Ie,"type",d(w)?"text":"password"),O(B,d(w)?"Hide":"Show"),Ee.disabled=d(x)||!d(g)||!d(p),O(Se,d(x)?"Creating…":"Create")}),ti(N,()=>d(g),lt=>y(g,lt)),ti(Ie,()=>d(p),lt=>y(p,lt)),U("click",De,()=>y(w,!d(w))),U("click",Qe,()=>y(f,!1)),U("click",Ee,Te),D(ee,de)};W(jt,ee=>{d(f)&&ee(di)})}var qt=b(jt,2);{var Le=ee=>{var de=oQ(),ke=v(de),$e=v(ke),N=b(v($e)),Q=v(N),oe=b($e,2),Ie=b(v(oe)),De=b(oe,2);{var B=Ee=>{var Se=Ul(),lt=v(Se);j(()=>O(lt,d(A))),D(Ee,Se)};W(De,Ee=>{d(A)&&Ee(B)})}var q=b(De,2),Y=v(q),me=b(Y,2),Qe=v(me);j(()=>{O(Q,d(E)),me.disabled=d($)||!d(P),O(Qe,d($)?"Saving…":"Set password")}),ti(Ie,()=>d(P),Ee=>y(P,Ee)),U("click",Y,()=>y(k,!1)),U("click",me,Zt),D(ee,de)};W(qt,ee=>{d(k)&&ee(Le)})}var It=b(qt,2);{var ai=ee=>{var de=rQ(),ke=v(de),$e=b(v(ke),2),N=b(v($e)),Q=b($e,2);{var oe=Y=>{var me=Ul(),Qe=v(me);j(()=>O(Qe,d(J))),D(Y,me)};W(Q,Y=>{d(J)&&Y(oe)})}var Ie=b(Q,2),De=v(Ie),B=b(De,2),q=v(B);j(()=>{B.disabled=d(ue)||!d(ie),O(q,d(ue)?"Creating…":"Create")}),ti(N,()=>d(ie),Y=>y(ie,Y)),U("click",De,()=>y(H,!1)),U("click",B,Mt),D(ee,de)};W(It,ee=>{d(H)&&ee(ai)})}var pi=b(It,2);{var _i=ee=>{var de=uQ(),ke=v(de),$e=v(ke),N=b(v($e)),Q=v(N),oe=b($e,2);{var Ie=Dt=>{var Ft=lQ(),ne=b(v(Ft));mi(ne,21,()=>d(he).acls??[],Ji,(_e,Be)=>{var at=aQ(),nt=v(at),Ye=v(nt),Rt=b(nt),ri=v(Rt),fi=b(Rt),Ci=v(fi),en=b(fi),fn=v(en);j(()=>{O(Ye,d(Be).acltype),O(ri,d(Be).topic),O(Ci,d(Be).allow?"✓":"✗")}),U("click",fn,()=>Si(d(he).rolename,d(Be).acltype,d(Be).topic)),D(_e,at)}),D(Dt,Ft)},De=Dt=>{var Ft=cQ();D(Dt,Ft)};W(oe,Dt=>{var Ft;(((Ft=d(he).acls)==null?void 0:Ft.length)??0)>0?Dt(Ie):Dt(De,-1)})}var B=b(oe,2),q=v(B);mi(q,21,()=>Et,Ji,(Dt,Ft)=>{var ne=dQ(),_e=v(ne),Be={};j(()=>{O(_e,d(Ft)),Be!==(Be=d(Ft))&&(ne.value=(ne.__value=d(Ft))??"")}),D(Dt,ne)});var Y=b(q,2),me=b(Y,2),Qe=v(me),Ee=b(me,2),Se=b(B,2);{var lt=Dt=>{var Ft=Ul(),ne=v(Ft);j(()=>O(ne,d(ve))),D(Dt,Ft)};W(Se,Dt=>{d(ve)&&Dt(lt)})}var Bt=b(Se,2),St=v(Bt);j(()=>{O(Q,d(he).rolename),Ee.disabled=!d(rt)}),Ho(q,()=>d(xe),Dt=>y(xe,Dt)),ti(Y,()=>d(rt),Dt=>y(rt,Dt)),Is(Qe,()=>d(pt),Dt=>y(pt,Dt)),U("click",Ee,kt),U("click",St,()=>y(We,!1)),D(ee,de)};W(pi,ee=>{d(We)&&d(he)&&ee(_i)})}var Fe=b(pi,2);{var X=ee=>{var de=hQ(),ke=v(de),$e=b(v(ke),2),N=b(v($e)),Q=b($e,2);{var oe=Y=>{var me=Ul(),Qe=v(me);j(()=>O(Qe,d(Pt))),D(Y,me)};W(Q,Y=>{d(Pt)&&Y(oe)})}var Ie=b(Q,2),De=v(Ie),B=b(De,2),q=v(B);j(()=>{B.disabled=d(fe)||!d(gt),O(q,d(fe)?"Creating…":"Create")}),ti(N,()=>d(gt),Y=>y(gt,Y)),U("click",De,()=>y(dt,!1)),U("click",B,hi),D(ee,de)};W(Fe,ee=>{d(dt)&&ee(X)})}j(()=>{it=Tt(vi,1,"svelte-3itf14",null,it,{active:d(u)==="users"}),gi=Tt(zt,1,"svelte-3itf14",null,gi,{active:d(u)==="roles"}),Zi=Tt(Ti,1,"svelte-3itf14",null,Zi,{active:d(u)==="groups"})}),U("click",vi,()=>y(u,"users")),U("click",zt,()=>y(u,"roles")),U("click",Ti,()=>y(u,"groups")),U("click",Bi,Oe),D(o,Fi),As()}Ks(["click"]);var vE=T('<div class="err svelte-9i68x"> </div>'),pQ=T('<div class="ok svelte-9i68x">Saved.</div>'),_Q=T('<div class="reload-msg svelte-9i68x"> </div>'),mQ=T('<div class="loading svelte-9i68x">Loading…</div>'),vQ=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>'),bQ=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></div> <div class="tls-toggle-row svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox"/> TLS</label></div> <!></div>'),yQ=T('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),wQ=T('<div class="cards svelte-9i68x"><!> <!></div>'),SQ=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 & Reload mosquitto"> </button></div></div> <!> <!> <!> <!> <!></div>');function CQ(o,e){Ns(e,!0);let t=M(null),i=M(""),n=M(!1),s=M(""),r=M(!1),a=M(!1),c=M(""),u=M(yi([])),f=M(null);ao(()=>{g()});async function g(){try{y(t,await z7(),!0),y(u,JSON.parse(JSON.stringify(d(t).listeners)),!0),y(f,d(t).checksum,!0),y(i,"")}catch(Te){y(i,Te.message??"Failed to load broker config",!0)}}function p(){y(u,[...d(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0)}function w(Te){y(u,d(u).filter((ut,Wt)=>Wt!==Te),!0)}async function m(){if(d(t)){y(n,!0),y(s,""),y(r,!1);try{await V7({listeners:d(u),managed:d(t).managed,passthrough:d(t).passthrough,checksum:d(f)}),y(r,!0),setTimeout(()=>y(r,!1),3e3),await g()}catch(Te){y(s,Te.message??"Save failed",!0)}finally{y(n,!1)}}}async function x(){y(a,!0),y(c,"");try{const Te=await j7();y(c,Te.stderr||Te.stdout||"Reloaded",!0)}catch(Te){y(c,"Error: "+(Te.message??"reload failed"))}finally{y(a,!1)}}function k(Te){var ut,Wt,Zt,Mt;return!!((ut=Te.tls)!=null&&ut.certfile||(Wt=Te.tls)!=null&&Wt.keyfile||(Zt=Te.tls)!=null&&Zt.capath||(Mt=Te.tls)!=null&&Mt.cafile)}function E(Te,ut){ut||(Te.tls={}),y(u,[...d(u)],!0)}var P=SQ(),A=v(P),$=b(v(A),2),H=v($),ie=b(H,2),J=v(ie),ue=b(ie,2),he=v(ue),We=b(A,2);{var xe=Te=>{var ut=vE(),Wt=v(ut);j(()=>O(Wt,d(i))),D(Te,ut)};W(We,Te=>{d(i)&&Te(xe)})}var rt=b(We,2);{var pt=Te=>{var ut=vE(),Wt=v(ut);j(()=>O(Wt,d(s))),D(Te,ut)};W(rt,Te=>{d(s)&&Te(pt)})}var ve=b(rt,2);{var dt=Te=>{var ut=pQ();D(Te,ut)};W(ve,Te=>{d(r)&&Te(dt)})}var gt=b(ve,2);{var Pt=Te=>{var ut=_Q(),Wt=v(ut);j(()=>O(Wt,d(c))),D(Te,ut)};W(gt,Te=>{d(c)&&Te(Pt)})}var fe=b(gt,2);{var Et=Te=>{var ut=mQ();D(Te,ut)},Oe=Te=>{var ut=wQ(),Wt=v(ut);mi(Wt,17,()=>d(u),Ji,(Lt,At,kt)=>{var Si=bQ(),hi=v(Si),Di=v(hi),Fi=v(Di),Ri=b(Di,2),Ni=b(hi,2),Ii=v(Ni),ci=b(v(Ii)),vi=b(Ii,2),it=b(v(vi)),zt=v(it);zt.value=zt.__value="mqtt";var gi=b(zt);gi.value=gi.__value="websockets";var Ti=b(vi,2),Zi=b(v(Ti)),Bi=b(Ni,2),zi=v(Bi),vn=v(zi),ln=b(Bi,2);{var Pi=Re=>{var jt=vQ(),di=v(jt),qt=v(di),Le=b(v(qt)),It=b(qt,2),ai=b(v(It)),pi=b(di,2),_i=v(pi),Fe=b(v(_i)),X=b(_i,2),ee=b(v(X)),de=b(pi,2),ke=v(de),$e=b(v(ke)),N=b(ke,2),Q=b(v(N)),oe=v(Q);oe.value=oe.__value="";var Ie=b(oe);Ie.value=Ie.__value="tlsv1.3";var De=b(Ie);De.value=De.__value="tlsv1.2";var B=b(de,2),q=v(B),Y=v(q),me=b(q,2),Qe=v(me);ti(Le,()=>d(At).tls.certfile,Ee=>d(At).tls.certfile=Ee),ti(ai,()=>d(At).tls.keyfile,Ee=>d(At).tls.keyfile=Ee),ti(Fe,()=>d(At).tls.cafile,Ee=>d(At).tls.cafile=Ee),ti(ee,()=>d(At).tls.capath,Ee=>d(At).tls.capath=Ee),ti($e,()=>d(At).tls.crlfile,Ee=>d(At).tls.crlfile=Ee),Ho(Q,()=>d(At).tls.tls_version,Ee=>d(At).tls.tls_version=Ee),Is(Y,()=>d(At).tls.require_certificate,Ee=>d(At).tls.require_certificate=Ee),Is(Qe,()=>d(At).tls.use_identity_as_username,Ee=>d(At).tls.use_identity_as_username=Ee),D(Re,jt)},yn=wt(()=>k(d(At)));W(ln,Re=>{d(yn)&&Re(Pi)})}j(Re=>{O(Fi,`Port ${d(At).port??""}`),Eg(vn,Re)},[()=>k(d(At))]),U("click",Ri,()=>w(kt)),ti(ci,()=>d(At).port,Re=>d(At).port=Re),Ho(it,()=>d(At).protocol,Re=>d(At).protocol=Re),ti(Zi,()=>d(At).bindAddress,Re=>d(At).bindAddress=Re),U("change",vn,Re=>E(d(At),Re.target.checked)),D(Lt,Si)});var Zt=b(Wt,2);{var Mt=Lt=>{var At=yQ();D(Lt,At)};W(Zt,Lt=>{d(u).length===0&&Lt(Mt)})}D(Te,ut)};W(fe,Te=>{d(t)===null&&!d(i)?Te(Et):Te(Oe,-1)})}j(()=>{ie.disabled=d(n),O(J,d(n)?"Saving…":"Save"),ue.disabled=d(a),O(he,d(a)?"Reloading…":"Apply & Reload")}),U("click",H,p),U("click",ie,m),U("click",ue,x),D(o,P),As()}Ks(["click","change"]);var ph=T('<div class="err svelte-9auejo"> </div>'),xQ=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 class="card-actions svelte-9auejo"><a class="btn-download svelte-9auejo" download="ca.crt">Download ca.crt</a></div></div>'),kQ=T('<div class="empty svelte-9auejo">No local CA generated yet.</div>'),LQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Local Certificate Authority</h3> <button class="svelte-9auejo"> </button></div> <!></div>'),IQ=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>'),DQ=T('<div class="empty svelte-9auejo">No managed server certificate yet. Generate one or configure paths manually in Listeners.</div>'),EQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Server Certificate</h3> <button class="svelte-9auejo"> </button></div> <!></div>'),TQ=T('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),PQ=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>'),MQ=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>'),RQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Trusted CA Certificates (capath)</h3> <button class="svelte-9auejo">+ Add CA cert</button></div> <!></div>'),NQ=T('<div class="empty svelte-9auejo">No client certificates issued yet.</div>'),AQ=T('<span class="badge-revoked svelte-9auejo">Revoked</span>'),OQ=T('<span class="badge-expired svelte-9auejo">Expired</span>'),FQ=T('<span class="badge-expiring svelte-9auejo">Expiring soon</span>'),HQ=T('<span class="badge-ok svelte-9auejo">Valid</span>'),WQ=T('<a class="btn-dl svelte-9auejo">.p12</a> <a class="btn-dl svelte-9auejo">.crt</a> <a class="btn-dl svelte-9auejo">.key</a> <button class="danger svelte-9auejo">Revoke</button>',1),BQ=T('<tr><td class="mono svelte-9auejo"> </td><td class="mono small svelte-9auejo"> </td><td class="svelte-9auejo"> </td><td> </td><td class="svelte-9auejo"><!></td><td class="actions svelte-9auejo"><!></td></tr>'),zQ=T('<table class="svelte-9auejo"><thead><tr><th class="svelte-9auejo">CN</th><th class="svelte-9auejo">Serial</th><th class="svelte-9auejo">Issued</th><th class="svelte-9auejo">Expires</th><th class="svelte-9auejo">Status</th><th class="svelte-9auejo"></th></tr></thead><tbody></tbody></table>'),VQ=T('<div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Issued Client Certificates</h3> <button class="svelte-9auejo">+ Issue cert</button></div> <!></div>'),jQ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate Local CA</h3> <label class="svelte-9auejo">Common Name<input 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">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),$Q=T('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Server cert generated</p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Cert path</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Key path</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd></dl> <p class="hint svelte-9auejo">Update your Listeners config to use these paths, then Apply & Reload.</p></div>'),UQ=T('<button class="btn-primary svelte-9auejo"> </button>'),qQ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate Server Certificate</h3> <label class="svelte-9auejo">Common Name (hostname)<input placeholder="mybroker.local" class="svelte-9auejo"/></label> <label class="svelte-9auejo">SANs (comma-separated IPs/hostnames)<input placeholder="192.168.1.10, mybroker.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>'),GQ=T('<label class="svelte-9auejo">Common Name (device ID)<input placeholder="esp32-bedroom" 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">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),KQ=T('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Certificate issued for <strong> </strong></p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Serial</dt><dd class="mono svelte-9auejo"> </dd> <dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd> <dt class="svelte-9auejo">Expires</dt><dd class="svelte-9auejo"> </dd> <dt class="svelte-9auejo">PKCS#12 passphrase</dt> <dd class="svelte-9auejo"><code class="passphrase svelte-9auejo"> </code> <small>(shown once — save it now)</small></dd></dl> <div class="download-row svelte-9auejo"><a class="btn-dl svelte-9auejo">Download .p12</a> <a class="btn-dl svelte-9auejo">Download .crt</a> <a class="btn-dl svelte-9auejo">Download .key</a> <a class="btn-dl svelte-9auejo" download="ca.crt">Download CA</a></div></div> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button></div>',1),ZQ=T('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Issue Client Certificate</h3> <!></div></div>'),XQ=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> <label class="svelte-9auejo">PEM certificate <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></div></div>'),YQ=T('<div class="certs-page svelte-9auejo"><div class="panel-tabs svelte-9auejo"><button>Local CA</button> <button>Server Cert</button> <button>Trusted CAs</button> <button>Client Certs</button> <button class="reload-btn svelte-9auejo" title="Refresh">↺</button></div> <!> <!> <!></div> <!> <!> <!> <!>',1);function QQ(o,e){Ns(e,!0);let t=M("ca"),i=M(null),n=M(null),s=M(yi([])),r=M(yi([])),a=M(""),c=M(!1),u=M("she-broker-ca"),f=M(365),g=M(!1),p=M(""),w=M(!1),m=M(""),x=M(""),k=M(365),E=M(!1),P=M(""),A=M(null),$=M(!1),H=M(""),ie=M(365),J=M(!1),ue=M(""),he=M(null),We=M(!1),xe=M(""),rt=M(!1),pt=M(""),ve=M("");async function dt(){try{const[Le,It,ai,pi]=await Promise.allSettled([rq(),lq(),dq(),fq()]);Le.status==="fulfilled"&&y(i,Le.value.ca,!0),It.status==="fulfilled"&&y(n,It.value.server,!0),ai.status==="fulfilled"&&y(s,ai.value.certs,!0),pi.status==="fulfilled"&&y(r,pi.value.certs,!0),y(a,"")}catch(Le){y(a,Le.message,!0)}}ao(()=>{dt()});async function gt(){y(p,""),y(g,!0);try{await aq({cn:d(u),days:d(f)}),y(c,!1),await dt()}catch(Le){y(p,Le.message,!0)}finally{y(g,!1)}}async function Pt(){y(P,""),y(E,!0),y(A,null);try{const Le=d(x).split(",").map(ai=>ai.trim()).filter(Boolean),It=await cq({cn:d(m),san:Le,days:d(k)});y(A,It,!0),await dt()}catch(Le){y(P,Le.message,!0)}finally{y(E,!1)}}async function fe(){y(ue,""),y(J,!0),y(he,null);try{const Le=await uq({cn:d(H),days:d(ie)});y(he,Le,!0),y(H,""),await dt()}catch(Le){y(ue,Le.message,!0)}finally{y(J,!1)}}async function Et(Le){if(confirm(`Revoke certificate for "${Le.cn}" (serial ${Le.serial})?`))try{await hq(Le.serial),await dt()}catch(It){y(ve,It.message,!0)}}async function Oe(){y(pt,""),y(rt,!0);try{await gq(d(xe)),y(xe,""),y(We,!1),await dt()}catch(Le){y(pt,Le.message,!0)}finally{y(rt,!1)}}async function Te(Le){if(confirm("Remove this trusted CA cert?"))try{await pq(Le),await dt()}catch(It){y(ve,It.message,!0)}}function ut(Le){const It=new Date(Le).getTime()-Date.now();return It<0?"expired":It<30*864e5?"expiring":""}function Wt(Le){return new Date(Le).toLocaleDateString()}var Zt=YQ(),Mt=Ct(Zt),Lt=v(Mt),At=v(Lt);let kt;var Si=b(At,2);let hi;var Di=b(Si,2);let Fi;var Ri=b(Di,2);let Ni;var Ii=b(Ri,2),ci=b(Lt,2);{var vi=Le=>{var It=ph(),ai=v(It);j(()=>O(ai,d(a))),D(Le,It)};W(ci,Le=>{d(a)&&Le(vi)})}var it=b(ci,2);{var zt=Le=>{var It=ph(),ai=v(It);j(()=>O(ai,d(ve))),D(Le,It)};W(it,Le=>{d(ve)&&Le(zt)})}var gi=b(it,2);{var Ti=Le=>{var It=LQ(),ai=v(It),pi=b(v(ai),2),_i=v(pi),Fe=b(ai,2);{var X=de=>{var ke=xQ(),$e=v(ke),N=b(v($e)),Q=v(N),oe=b(N,3),Ie=v(oe),De=b(oe,3),B=v(De),q=b($e,2),Y=v(q);j((me,Qe,Ee)=>{O(Q,d(i).cn),O(Ie,d(i).fingerprint),Tt(De,1,me,"svelte-9auejo"),O(B,Qe),Ai(Y,"href",`data:application/x-pem-file;charset=utf-8,${Ee??""}`)},[()=>ud(ut(d(i).expires)),()=>Wt(d(i).expires),()=>encodeURIComponent(d(i).crt)]),D(de,ke)},ee=de=>{var ke=kQ();D(de,ke)};W(Fe,de=>{d(i)?de(X):de(ee,-1)})}j(()=>O(_i,d(i)?"Regenerate CA":"Generate CA")),U("click",pi,()=>{y(c,!0),y(p,"")}),D(Le,It)},Zi=Le=>{var It=EQ(),ai=v(It),pi=b(v(ai),2),_i=v(pi),Fe=b(ai,2);{var X=de=>{var ke=IQ(),$e=v(ke),N=b(v($e)),Q=v(N),oe=b(N,3),Ie=v(oe),De=b(oe,3),B=v(De);j((q,Y)=>{O(Q,d(n).cn),O(Ie,d(n).fingerprint),Tt(De,1,q,"svelte-9auejo"),O(B,Y)},[()=>ud(ut(d(n).expires)),()=>Wt(d(n).expires)]),D(de,ke)},ee=de=>{var ke=DQ();D(de,ke)};W(Fe,de=>{d(n)?de(X):de(ee,-1)})}j(()=>O(_i,d(n)?"Regenerate":"Generate server cert")),U("click",pi,()=>{y(w,!0),y(P,""),y(A,null)}),D(Le,It)},Bi=Le=>{var It=RQ(),ai=v(It),pi=b(v(ai),2),_i=b(ai,2);{var Fe=ee=>{var de=TQ();D(ee,de)},X=ee=>{var de=MQ(),ke=b(v(de));mi(ke,21,()=>d(r),Ji,($e,N)=>{var Q=PQ(),oe=v(Q),Ie=v(oe),De=b(oe),B=v(De),q=b(De),Y=v(q),me=b(q),Qe=v(me);j((Ee,Se,lt)=>{O(Ie,d(N).cn),O(B,`${Ee??""}…`),Tt(q,1,Se,"svelte-9auejo"),O(Y,lt)},[()=>d(N).fingerprint.slice(0,29),()=>ud(ut(d(N).expires)),()=>Wt(d(N).expires)]),U("click",Qe,()=>Te(d(N).fingerprint)),D($e,Q)}),D(ee,de)};W(_i,ee=>{d(r).length===0?ee(Fe):ee(X,-1)})}U("click",pi,()=>{y(We,!0),y(pt,""),y(xe,"")}),D(Le,It)},zi=Le=>{var It=VQ(),ai=v(It),pi=b(v(ai),2),_i=b(ai,2);{var Fe=ee=>{var de=NQ();D(ee,de)},X=ee=>{var de=zQ(),ke=b(v(de));mi(ke,21,()=>d(s),Ji,($e,N)=>{var Q=BQ(),oe=v(Q),Ie=v(oe),De=b(oe),B=v(De),q=b(De),Y=v(q),me=b(q),Qe=v(me),Ee=b(me),Se=v(Ee);{var lt=nt=>{var Ye=AQ();D(nt,Ye)},Bt=nt=>{var Ye=OQ();D(nt,Ye)},St=wt(()=>ut(d(N).expires)==="expired"),Dt=nt=>{var Ye=FQ();D(nt,Ye)},Ft=wt(()=>ut(d(N).expires)==="expiring"),ne=nt=>{var Ye=HQ();D(nt,Ye)};W(Se,nt=>{d(N).revoked?nt(lt):d(St)?nt(Bt,1):d(Ft)?nt(Dt,2):nt(ne,-1)})}var _e=b(Ee),Be=v(_e);{var at=nt=>{var Ye=WQ(),Rt=Ct(Ye),ri=b(Rt,2),fi=b(ri,2),Ci=b(fi,2);j((en,fn,cn)=>{Ai(Rt,"href",en),Ai(Rt,"download",`${d(N).cn??""}.p12`),Ai(ri,"href",fn),Ai(ri,"download",`${d(N).cn??""}.crt`),Ai(fi,"href",cn),Ai(fi,"download",`${d(N).cn??""}.key`)},[()=>Jc(d(N).serial,"p12"),()=>Jc(d(N).serial,"crt"),()=>Jc(d(N).serial,"key")]),U("click",Ci,()=>Et(d(N))),D(nt,Ye)};W(Be,nt=>{d(N).revoked||nt(at)})}j((nt,Ye,Rt)=>{O(Ie,d(N).cn),O(B,d(N).serial),O(Y,nt),Tt(me,1,Ye,"svelte-9auejo"),O(Qe,Rt)},[()=>new Date(d(N).issued).toLocaleDateString(),()=>ud(d(N).revoked?"":ut(d(N).expires)),()=>Wt(d(N).expires)]),D($e,Q)}),D(ee,de)};W(_i,ee=>{d(s).length===0?ee(Fe):ee(X,-1)})}U("click",pi,()=>{y($,!0),y(ue,""),y(he,null),y(H,""),y(ie,365)}),D(Le,It)};W(gi,Le=>{d(t)==="ca"?Le(Ti):d(t)==="server"?Le(Zi,1):d(t)==="trusted"?Le(Bi,2):d(t)==="clients"&&Le(zi,3)})}var vn=b(Mt,2);{var ln=Le=>{var It=jQ(),ai=v(It),pi=b(v(ai),2),_i=b(v(pi)),Fe=b(pi,2),X=b(v(Fe)),ee=b(Fe,2);{var de=oe=>{var Ie=ph(),De=v(Ie);j(()=>O(De,d(p))),D(oe,Ie)};W(ee,oe=>{d(p)&&oe(de)})}var ke=b(ee,2),$e=v(ke),N=b($e,2),Q=v(N);j(()=>{N.disabled=d(g)||!d(u),O(Q,d(g)?"Generating…":"Generate")}),ti(_i,()=>d(u),oe=>y(u,oe)),ti(X,()=>d(f),oe=>y(f,oe)),U("click",$e,()=>y(c,!1)),U("click",N,gt),D(Le,It)};W(vn,Le=>{d(c)&&Le(ln)})}var Pi=b(vn,2);{var yn=Le=>{var It=qQ(),ai=v(It),pi=b(v(ai),2),_i=b(v(pi)),Fe=b(pi,2),X=b(v(Fe)),ee=b(Fe,2),de=b(v(ee)),ke=b(ee,2);{var $e=q=>{var Y=ph(),me=v(Y);j(()=>O(me,d(P))),D(q,Y)};W(ke,q=>{d(P)&&q($e)})}var N=b(ke,2);{var Q=q=>{var Y=$Q(),me=b(v(Y),2),Qe=b(v(me)),Ee=v(Qe),Se=b(Qe,3),lt=v(Se),Bt=b(Se,3),St=v(Bt);j(()=>{O(Ee,d(A).certPath),O(lt,d(A).keyPath),O(St,d(A).fingerprint)}),D(q,Y)};W(N,q=>{d(A)&&q(Q)})}var oe=b(N,2),Ie=v(oe),De=b(Ie,2);{var B=q=>{var Y=UQ(),me=v(Y);j(()=>{Y.disabled=d(E)||!d(m),O(me,d(E)?"Generating…":"Generate")}),U("click",Y,Pt),D(q,Y)};W(De,q=>{d(A)||q(B)})}ti(_i,()=>d(m),q=>y(m,q)),ti(X,()=>d(x),q=>y(x,q)),ti(de,()=>d(k),q=>y(k,q)),U("click",Ie,()=>y(w,!1)),D(Le,It)};W(Pi,Le=>{d(w)&&Le(yn)})}var Re=b(Pi,2);{var jt=Le=>{var It=ZQ(),ai=v(It),pi=b(v(ai),2);{var _i=X=>{var ee=GQ(),de=Ct(ee),ke=b(v(de)),$e=b(de,2),N=b(v($e)),Q=b($e,2);{var oe=Y=>{var me=ph(),Qe=v(me);j(()=>O(Qe,d(ue))),D(Y,me)};W(Q,Y=>{d(ue)&&Y(oe)})}var Ie=b(Q,2),De=v(Ie),B=b(De,2),q=v(B);j(()=>{B.disabled=d(J)||!d(H),O(q,d(J)?"Issuing…":"Issue")}),ti(ke,()=>d(H),Y=>y(H,Y)),ti(N,()=>d(ie),Y=>y(ie,Y)),U("click",De,()=>y($,!1)),U("click",B,fe),D(X,ee)},Fe=X=>{var ee=KQ(),de=Ct(ee),ke=v(de),$e=b(v(ke)),N=v($e),Q=b(ke,2),oe=b(v(Q)),Ie=v(oe),De=b(oe,3),B=v(De),q=b(De,3),Y=v(q),me=b(q,4),Qe=v(me),Ee=v(Qe),Se=b(Q,2),lt=v(Se),Bt=b(lt,2),St=b(Bt,2),Dt=b(St,2),Ft=b(de,2),ne=v(Ft);j((_e,Be,at,nt,Ye)=>{O(N,d(he).cn),O(Ie,d(he).serial),O(B,d(he).fingerprint),O(Y,_e),O(Ee,d(he).passphrase),Ai(lt,"href",Be),Ai(lt,"download",`${d(he).cn??""}.p12`),Ai(Bt,"href",at),Ai(Bt,"download",`${d(he).cn??""}.crt`),Ai(St,"href",nt),Ai(St,"download",`${d(he).cn??""}.key`),Ai(Dt,"href",Ye)},[()=>Wt(d(he).expires),()=>Jc(d(he).serial,"p12"),()=>Jc(d(he).serial,"crt"),()=>Jc(d(he).serial,"key"),()=>Jc(d(he).serial,"ca")]),U("click",ne,()=>y($,!1)),D(X,ee)};W(pi,X=>{d(he)?X(Fe,-1):X(_i)})}D(Le,It)};W(Re,Le=>{d($)&&Le(jt)})}var di=b(Re,2);{var qt=Le=>{var It=XQ(),ai=v(It),pi=b(v(ai),2),_i=b(v(pi)),Fe=b(pi,2);{var X=N=>{var Q=ph(),oe=v(Q);j(()=>O(oe,d(pt))),D(N,Q)};W(Fe,N=>{d(pt)&&N(X)})}var ee=b(Fe,2),de=v(ee),ke=b(de,2),$e=v(ke);j(()=>{ke.disabled=d(rt)||!d(xe),O($e,d(rt)?"Adding…":"Add")}),ti(_i,()=>d(xe),N=>y(xe,N)),U("click",de,()=>y(We,!1)),U("click",ke,Oe),D(Le,It)};W(di,Le=>{d(We)&&Le(qt)})}j(()=>{kt=Tt(At,1,"svelte-9auejo",null,kt,{active:d(t)==="ca"}),hi=Tt(Si,1,"svelte-9auejo",null,hi,{active:d(t)==="server"}),Fi=Tt(Di,1,"svelte-9auejo",null,Fi,{active:d(t)==="trusted"}),Ni=Tt(Ri,1,"svelte-9auejo",null,Ni,{active:d(t)==="clients"})}),U("click",At,()=>y(t,"ca")),U("click",Si,()=>y(t,"server")),U("click",Di,()=>y(t,"trusted")),U("click",Ri,()=>y(t,"clients")),U("click",Ii,dt),D(o,Zt),As()}Ks(["click"]);var _S=T('<div class="err svelte-17yczfe"> </div>'),JQ=T('<div class="ok svelte-17yczfe">Saved.</div>'),eJ=T('<label class="svelte-17yczfe">Install command (run on your local machine) <div class="pubkey-row svelte-17yczfe"><input readonly="" class="svelte-17yczfe"/> <button class="copy-btn svelte-17yczfe">Copy</button></div></label>'),tJ=T('<label class="svelte-17yczfe">Public key (copy and install on the broker host) <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),iJ=T('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),nJ=T("<span> </span>"),sJ=T(`<div class="ssh-page svelte-17yczfe"><!> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH / Remote Mode</h3> <p class="hint svelte-17yczfe">SSH is used only for file operations (mosquitto.conf, certificates). User/ACL management works without SSH as long as she is connected to the broker's MQTT port.</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 class="row svelte-17yczfe"><button class="btn-primary svelte-17yczfe"> </button></div></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH Keypair</h3> <p class="hint svelte-17yczfe">Generate a dedicated Ed25519 keypair for she to authenticate to the broker host. The private key is stored at <code class="svelte-17yczfe"> </code>.</p> <!> <!></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Test SSH Connection</h3> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button> <!></div></div></div>`);function oJ(o,e){Ns(e,!0);let t=M(yi({})),i=M(""),n=M(!1),s=M(!1),r=M(""),a=M("~/.she/ssh/broker_id_ed25519"),c=M(""),u=M(!1),f=M(""),g=M(!1),p=M(""),w=M(yi({}));ao(async()=>{try{const[it,zt,gi]=await Promise.all([Dl(),UN(),fetch("/she/broker/ssh/pubkey").then(Zi=>Zi.json()).catch(()=>({publicKey:null}))]);y(w,it,!0),zt.sshKeyDefault&&y(a,zt.sshKeyDefault,!0);const Ti=d(w).broker??{};y(t,Ti.ssh??{},!0),d(t).port||(d(t).port=22),d(t).identityFile||(d(t).identityFile=d(a)),gi.publicKey&&y(c,gi.publicKey,!0)}catch(it){y(i,it.message,!0)}});async function m(){y(n,!0),y(r,""),y(s,!1);try{const it=d(w).broker??{},zt={...d(w),broker:{...it,ssh:d(t)}};await Xp(zt),y(s,!0),setTimeout(()=>y(s,!1),3e3)}catch(it){y(r,it.message,!0)}finally{y(n,!1)}}async function x(){y(u,!0),y(f,"");try{const it=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),zt=await it.json();if(!it.ok)throw new Error(zt.error??it.statusText);y(c,zt.publicKey,!0)}catch(it){y(f,it.message,!0)}finally{y(u,!1)}}async function k(){y(g,!0),y(p,"");try{const it=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),zt=await it.json();if(!it.ok)throw new Error(zt.error??it.statusText);y(p,zt.ok?"✓ Connection successful":"✗ "+(zt.error??"Failed"),!0)}catch(it){y(p,"✗ "+it.message)}finally{y(g,!1)}}function E(it){navigator.clipboard.writeText(it).catch(()=>{})}const P=wt(()=>d(t).identityFile&&d(t).user&&d(t).host?`ssh-copy-id -i ${d(t).identityFile}.pub ${d(t).user}@${d(t).host}`:"");var A=sJ(),$=v(A);{var H=it=>{var zt=_S(),gi=v(zt);j(()=>O(gi,d(i))),D(it,zt)};W($,it=>{d(i)&&it(H)})}var ie=b($,2),J=b(v(ie),4),ue=v(J),he=b(v(ue)),We=b(ue,2),xe=b(v(We)),rt=b(We,2),pt=b(v(rt)),ve=b(rt,2),dt=b(v(ve)),gt=b(J,2);{var Pt=it=>{var zt=_S(),gi=v(zt);j(()=>O(gi,d(r))),D(it,zt)};W(gt,it=>{d(r)&&it(Pt)})}var fe=b(gt,2);{var Et=it=>{var zt=JQ();D(it,zt)};W(fe,it=>{d(s)&&it(Et)})}var Oe=b(fe,2),Te=v(Oe),ut=v(Te),Wt=b(ie,2),Zt=b(v(Wt),2),Mt=b(v(Zt)),Lt=v(Mt),At=b(Zt,2);{var kt=it=>{var zt=tJ(),gi=Ct(zt),Ti=b(v(gi)),Zi=v(Ti),Bi=b(Zi,2),zi=b(gi,2);{var vn=Re=>{var jt=eJ(),di=b(v(jt)),qt=v(di),Le=b(qt,2);j(()=>UL(qt,d(P))),U("click",Le,()=>E(d(P))),D(Re,jt)};W(zi,Re=>{d(P)&&Re(vn)})}var ln=b(zi,2),Pi=v(ln),yn=v(Pi);j(()=>{UL(Zi,d(c)),Pi.disabled=d(u),O(yn,d(u)?"Generating…":"Regenerate keypair")}),U("click",Bi,()=>E(d(c))),U("click",Pi,x),D(it,zt)},Si=it=>{var zt=iJ(),gi=v(zt),Ti=v(gi);j(()=>{gi.disabled=d(u),O(Ti,d(u)?"Generating…":"Generate keypair")}),U("click",gi,x),D(it,zt)};W(At,it=>{d(c)?it(kt):it(Si,-1)})}var hi=b(At,2);{var Di=it=>{var zt=_S(),gi=v(zt);j(()=>O(gi,d(f))),D(it,zt)};W(hi,it=>{d(f)&&it(Di)})}var Fi=b(Wt,2),Ri=b(v(Fi),2),Ni=v(Ri),Ii=v(Ni),ci=b(Ni,2);{var vi=it=>{var zt=nJ();let gi;var Ti=v(zt);j(Zi=>{gi=Tt(zt,1,"test-result svelte-17yczfe",null,gi,Zi),O(Ti,d(p))},[()=>({ok:d(p).startsWith("✓"),fail:d(p).startsWith("✗")})]),D(it,zt)};W(ci,it=>{d(p)&&it(vi)})}j(()=>{Ai(dt,"placeholder",d(a)),Te.disabled=d(n),O(ut,d(n)?"Saving…":"Save"),O(Lt,d(t).identityFile||d(a)),Ni.disabled=d(g)||!d(t).host,O(Ii,d(g)?"Testing…":"Test SSH connection")}),ti(he,()=>d(t).host,it=>d(t).host=it),ti(xe,()=>d(t).port,it=>d(t).port=it),ti(pt,()=>d(t).user,it=>d(t).user=it),ti(dt,()=>d(t).identityFile,it=>d(t).identityFile=it),U("click",Te,m),U("click",Ni,k),D(o,A),As()}Ks(["click"]);var rJ=T('<div class="err svelte-d31be1"> </div>'),aJ=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>'),lJ=T('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),cJ=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>'),dJ=T('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),uJ=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>`),hJ=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>'),fJ=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>'),gJ=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 pJ(o,e){Ns(e,!0);let t=M("intro"),i=M(""),n=M(!1),s=M("she-admin"),r=M(""),a=M("/etc/mosquitto"),c=M(null),u=M(!1),f=M(!1),g=M("she-admin"),p=M(""),w=M(!1);async function m(){y(n,!0),y(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?y(t,"done"):y(t,"config")}catch(ve){y(i,ve.message,!0)}finally{y(n,!1)}}async function x(){y(n,!0),y(i,"");try{const ve=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:d(s),adminPassword:d(r)||void 0,configDir:d(a)})}),dt=await ve.json();if(!ve.ok||!dt.ok)throw new Error(dt.error??"Bootstrap failed");y(c,dt,!0);const gt=await Dl(),Pt=gt.broker??{};await Xp({...gt,broker:{...Pt,dynsec:{adminUsername:dt.adminUsername,adminPassword:dt.adminPassword}}}),await q7().catch(()=>{}),y(t,"restart")}catch(ve){y(i,ve.message,!0)}finally{y(n,!1)}}async function k(){y(f,!0),y(i,"");try{await $7(),await new Promise(ve=>setTimeout(ve,2e3)),y(u,!0),y(t,"done")}catch(ve){y(i,ve.message,!0)}finally{y(f,!1)}}async function E(){y(w,!0),y(i,"");try{const ve=await Dl(),dt=ve.broker??{};await Xp({...ve,broker:{...dt,dynsec:{adminUsername:d(g),adminPassword:d(p)}}}),y(t,"done")}catch(ve){y(i,ve.message,!0)}finally{y(w,!1)}}var P=gJ(),A=v(P),$=b(v(A),2),H=b(A,2);{var ie=ve=>{var dt=rJ(),gt=v(dt);j(()=>O(gt,d(i))),D(ve,dt)};W(H,ve=>{d(i)&&ve(ie)})}var J=b(H,2);{var ue=ve=>{var dt=aJ(),gt=b(v(dt),6),Pt=v(gt);j(()=>Pt.disabled=d(n)),U("click",Pt,()=>{y(t,"probe"),m()}),D(ve,dt)},he=ve=>{var dt=lJ(),gt=v(dt),Pt=v(gt);j(()=>O(Pt,d(n)?"Probing dynsec…":"Checking dynsec status…")),D(ve,dt)},We=ve=>{var dt=cJ(),gt=b(v(dt),2),Pt=b(v(gt)),fe=b(gt,2),Et=b(v(fe)),Oe=b(fe,2),Te=b(v(Oe)),ut=b(Oe,2),Wt=v(ut),Zt=v(Wt);j(()=>{Wt.disabled=d(n)||!d(s),O(Zt,d(n)?"Bootstrapping…":"Bootstrap dynsec")}),ti(Pt,()=>d(s),Mt=>y(s,Mt)),ti(Et,()=>d(r),Mt=>y(r,Mt)),ti(Te,()=>d(a),Mt=>y(a,Mt)),U("click",Wt,x),D(ve,dt)},xe=ve=>{var dt=uJ(),gt=b(v(dt),2),Pt=b(v(gt),3),fe=v(Pt),Et=b(gt,4),Oe=v(Et),Te=v(Oe),ut=b(Oe,2),Wt=b(Et,2);{var Zt=Mt=>{var Lt=dJ();D(Mt,Lt)};W(Wt,Mt=>{d(f)&&Mt(Zt)})}j(()=>{O(fe,d(c).confFilePath),Oe.disabled=d(f),O(Te,d(f)?"Restarting…":"Restart mosquitto now")}),U("click",Oe,k),U("click",ut,()=>{y(t,"done")}),D(ve,dt)},rt=ve=>{var dt=hJ(),gt=b(v(dt),4),Pt=v(gt);U("click",Pt,function(...fe){var Et;(Et=e.onDone)==null||Et.apply(this,fe)}),D(ve,dt)},pt=ve=>{var dt=fJ(),gt=b(v(dt),2),Pt=b(v(gt)),fe=b(gt,2),Et=b(v(fe)),Oe=b(fe,2),Te=v(Oe),ut=b(Te,2),Wt=v(ut);j(()=>{ut.disabled=d(w)||!d(g)||!d(p),O(Wt,d(w)?"Saving…":"Save credentials")}),ti(Pt,()=>d(g),Zt=>y(g,Zt)),ti(Et,()=>d(p),Zt=>y(p,Zt)),U("click",Te,()=>y(t,"intro")),U("click",ut,E),D(ve,dt)};W(J,ve=>{d(t)==="intro"?ve(ue):d(t)==="probe"?ve(he,1):d(t)==="config"?ve(We,2):d(t)==="restart"&&d(c)?ve(xe,3):d(t)==="done"?ve(rt,4):d(t)==="manual"&&ve(pt,5)})}U("click",$,()=>y(t,"manual")),D(o,P),As()}Ks(["click"]);var _J=T('<div class="loading svelte-zeztkb">Loading…</div>'),mJ=T('<div class="error-banner svelte-zeztkb"> </div>'),vJ=T('<button class="deactivate-btn svelte-zeztkb"> </button>'),bJ=T('<div class="error-inline svelte-zeztkb"> </div>'),yJ=T('<div class="status-badge ok svelte-zeztkb">Connected</div>'),wJ=T('<button class="diag-btn svelte-zeztkb"> </button>'),bE=T('<p class="diag-issue svelte-zeztkb"> </p>'),SJ=T('<p class="diag-ok-msg svelte-zeztkb">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),CJ=T('<p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">File</span><code class="svelte-zeztkb"> </code></p> <p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">Admin user exists</span><span> </span></p> <p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">Has admin role</span><span> </span></p> <p class="diag-row svelte-zeztkb"><span class="svelte-zeztkb">$CONTROL publish ACL</span><span> </span></p> <!> <!>',1),xJ=T('<div><!></div> <button class="diag-btn svelte-zeztkb" style="margin-top:6px"> </button>',1),yE=T('<button class="wizard-btn svelte-zeztkb">Run Setup Wizard</button>'),kJ=T('<div class="status-badge warn svelte-zeztkb">Connected — plugin not responding</div> <p class="hint svelte-zeztkb">The MQTT connection is up but the dynamic-security plugin is not responding.</p> <!> <!>',1),LJ=T('<div class="status-badge err svelte-zeztkb">Disconnected</div>'),IJ=T('<div class="status-badge warn svelte-zeztkb">Not configured</div> <p class="hint svelte-zeztkb">Set <code class="svelte-zeztkb">broker.dynsec.adminUsername</code> and <code class="svelte-zeztkb">broker.dynsec.adminPassword</code> in Config to enable dynsec management.</p> <!>',1),DJ=T('<div style="margin-top: 20px;"><!></div>'),EJ=T('<div class="status-grid svelte-zeztkb"><div class="status-card svelte-zeztkb"><div class="card-header svelte-zeztkb"><h3 class="svelte-zeztkb">Dynamic Security</h3> <!></div> <!> <!></div> <div class="status-card svelte-zeztkb"><h3 class="svelte-zeztkb">Broker</h3> <dl class="svelte-zeztkb"><dt class="svelte-zeztkb">Version</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Uptime</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Clients connected</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Clients total</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Messages received</dt> <dd class="svelte-zeztkb"> </dd> <dt class="svelte-zeztkb">Messages sent</dt> <dd class="svelte-zeztkb"> </dd></dl></div></div> <!>',1),TJ=T('<div class="tab-content svelte-zeztkb"><!></div>'),PJ=T('<div class="broker-page svelte-zeztkb"><div class="sub-nav svelte-zeztkb"><button>Status</button> <button>Users & Roles</button> <button>Listeners</button> <button>Certificates</button> <button>SSH / Remote</button></div> <!></div>');function MJ(o,e){Ns(e,!0);let t=M(!1),i=M(!1),n=M(""),s=M(!1),r=M(null);const a="she-broker-tab";let c=M(yi(localStorage.getItem(a)??"status"));zn(()=>{localStorage.setItem(a,d(c))});let u=M(null),f=M(""),g=M(!0);async function p(){try{y(u,await UN(),!0),y(f,"")}catch(fe){y(f,fe.message??"Failed to load broker status",!0)}finally{y(g,!1)}}ao(()=>{p();const fe=setInterval(p,1e4);return()=>clearInterval(fe)});async function w(){y(s,!0),y(r,null);try{y(r,await G7(),!0)}catch(fe){y(r,{ok:!1,dynSecPath:"",issues:[fe.message??"Diagnose request failed"]},!0)}finally{y(s,!1)}}async function m(){if(confirm("Remove dynsec plugin lines from mosquitto.conf and clear credentials? You will need to restart mosquitto afterwards.")){y(i,!0),y(n,"");try{await U7(),await p()}catch(fe){y(n,fe.message??"Deactivate failed",!0)}finally{y(i,!1)}}}function x(fe){var Oe;if(!((Oe=d(u))!=null&&Oe.sys))return"—";const Et=d(u).sys[fe];return Et?String(Et.val??"—"):"—"}var k=PJ(),E=v(k),P=v(E);let A;var $=b(P,2);let H;var ie=b($,2);let J;var ue=b(ie,2);let he;var We=b(ue,2);let xe;var rt=b(E,2);{var pt=fe=>{var Et=TJ(),Oe=v(Et);{var Te=Zt=>{var Mt=_J();D(Zt,Mt)},ut=Zt=>{var Mt=mJ(),Lt=v(Mt);j(()=>O(Lt,d(f))),D(Zt,Mt)},Wt=Zt=>{var Mt=EJ(),Lt=Ct(Mt),At=v(Lt),kt=v(At),Si=b(v(kt),2);{var hi=qt=>{var Le=vJ(),It=v(Le);j(()=>{Le.disabled=d(i),O(It,d(i)?"Deactivating…":"Deactivate")}),U("click",Le,m),D(qt,Le)};W(Si,qt=>{d(u).dynsec.configured&&qt(hi)})}var Di=b(kt,2);{var Fi=qt=>{var Le=bJ(),It=v(Le);j(()=>O(It,d(n))),D(qt,Le)};W(Di,qt=>{d(n)&&qt(Fi)})}var Ri=b(Di,2);{var Ni=qt=>{var Le=Rs(),It=Ct(Le);{var ai=_i=>{var Fe=Rs(),X=Ct(Fe);{var ee=ke=>{var $e=yJ();D(ke,$e)},de=ke=>{var $e=kJ(),N=b(Ct($e),4);{var Q=B=>{var q=wJ(),Y=v(q);j(()=>{q.disabled=d(s),O(Y,d(s)?"Running diagnostics…":"Run diagnostics")}),U("click",q,w),D(B,q)},oe=B=>{var q=xJ(),Y=Ct(q);let me;var Qe=v(Y);{var Ee=St=>{var Dt=bE(),Ft=v(Dt);j(()=>O(Ft,`⚠ ${d(r).error??""}`)),D(St,Dt)},Se=St=>{var Dt=CJ(),Ft=Ct(Dt),ne=b(v(Ft)),_e=v(ne),Be=b(Ft,2),at=b(v(Be)),nt=v(at),Ye=b(Be,2),Rt=b(v(Ye)),ri=v(Rt),fi=b(Ye,2),Ci=b(v(fi)),en=v(Ci),fn=b(fi,2);mi(fn,17,()=>d(r).issues,Ji,(Xi,z)=>{var te=bE(),Ge=v(te);j(()=>O(Ge,`⚠ ${d(z)??""}`)),D(Xi,te)});var cn=b(fn,2);{var ki=Xi=>{var z=SJ();D(Xi,z)};W(cn,Xi=>{d(r).ok&&Xi(ki)})}j(()=>{O(_e,d(r).dynSecPath),Tt(at,1,ud(d(r).adminClientExists?"ok":"fail"),"svelte-zeztkb"),O(nt,d(r).adminClientExists?"✓ yes":"✗ no"),Tt(Rt,1,ud(d(r).hasAdminRole?"ok":"fail"),"svelte-zeztkb"),O(ri,d(r).hasAdminRole?"✓ yes":"✗ no"),Tt(Ci,1,ud(d(r).hasControlSendAcl?"ok":"fail"),"svelte-zeztkb"),O(en,d(r).hasControlSendAcl?"✓ present":"✗ missing")}),D(St,Dt)};W(Qe,St=>{d(r).error?St(Ee):St(Se,-1)})}var lt=b(Y,2),Bt=v(lt);j(()=>{me=Tt(Y,1,"diag-card svelte-zeztkb",null,me,{"diag-ok":d(r).ok,"diag-fail":!d(r).ok}),lt.disabled=d(s),O(Bt,d(s)?"Running…":"Re-run")}),U("click",lt,w),D(B,q)};W(N,B=>{d(r)?B(oe,-1):B(Q)})}var Ie=b(N,2);{var De=B=>{var q=yE();U("click",q,()=>y(t,!0)),D(B,q)};W(Ie,B=>{d(t)||B(De)})}D(ke,$e)};W(X,ke=>{d(u).dynsec.dynsecReady?ke(ee):ke(de,-1)})}D(_i,Fe)},pi=_i=>{var Fe=LJ();D(_i,Fe)};W(It,_i=>{d(u).dynsec.connected?_i(ai):_i(pi,-1)})}D(qt,Le)},Ii=qt=>{var Le=IJ(),It=b(Ct(Le),4);{var ai=pi=>{var _i=yE();U("click",_i,()=>y(t,!0)),D(pi,_i)};W(It,pi=>{d(t)||pi(ai)})}D(qt,Le)};W(Ri,qt=>{d(u).dynsec.configured?qt(Ni):qt(Ii,-1)})}var ci=b(At,2),vi=b(v(ci),2),it=b(v(vi),2),zt=v(it),gi=b(it,4),Ti=v(gi),Zi=b(gi,4),Bi=v(Zi),zi=b(Zi,4),vn=v(zi),ln=b(zi,4),Pi=v(ln),yn=b(ln,4),Re=v(yn),jt=b(Lt,2);{var di=qt=>{var Le=DJ(),It=v(Le);pJ(It,{onDone:()=>{y(t,!1),p()}}),D(qt,Le)};W(jt,qt=>{d(t)&&(!d(u).dynsec.configured||!d(u).dynsec.dynsecReady)&&qt(di)})}j((qt,Le,It,ai,pi,_i)=>{O(zt,qt),O(Ti,Le),O(Bi,It),O(vn,ai),O(Pi,pi),O(Re,_i)},[()=>x("$SYS/broker/version"),()=>x("$SYS/broker/uptime"),()=>x("$SYS/broker/clients/connected"),()=>x("$SYS/broker/clients/total"),()=>x("$SYS/broker/messages/received"),()=>x("$SYS/broker/messages/sent")]),D(Zt,Mt)};W(Oe,Zt=>{d(g)?Zt(Te):d(f)?Zt(ut,1):d(u)&&Zt(Wt,2)})}D(fe,Et)},ve=fe=>{{let Et=wt(()=>{var Oe;return((Oe=d(u))==null?void 0:Oe.dynsec.dynsecReady)??!1});gQ(fe,{get dynsecReady(){return d(Et)}})}},dt=fe=>{CQ(fe,{})},gt=fe=>{QQ(fe,{})},Pt=fe=>{oJ(fe,{})};W(rt,fe=>{d(c)==="status"?fe(pt):d(c)==="users"?fe(ve,1):d(c)==="listeners"?fe(dt,2):d(c)==="certs"?fe(gt,3):d(c)==="ssh"&&fe(Pt,4)})}j(()=>{A=Tt(P,1,"svelte-zeztkb",null,A,{active:d(c)==="status"}),H=Tt($,1,"svelte-zeztkb",null,H,{active:d(c)==="users"}),J=Tt(ie,1,"svelte-zeztkb",null,J,{active:d(c)==="listeners"}),he=Tt(ue,1,"svelte-zeztkb",null,he,{active:d(c)==="certs"}),xe=Tt(We,1,"svelte-zeztkb",null,xe,{active:d(c)==="ssh"})}),U("click",P,()=>y(c,"status")),U("click",$,()=>y(c,"users")),U("click",ie,()=>y(c,"listeners")),U("click",ue,()=>y(c,"certs")),U("click",We,()=>y(c,"ssh")),D(o,k),As()}Ks(["click"]);var RJ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),NJ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),AJ=T('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),OJ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),FJ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),HJ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),WJ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),BJ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),zJ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),VJ=T('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),jJ=T('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),$J=T('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),UJ=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>'),qJ=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>'),GJ=T('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),KJ=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),ZJ=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),XJ=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>'),YJ=T('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),QJ=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>'),JJ=T('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),eee=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>'),tee=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.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"><rect x="1" y="2" width="14" height="4" rx="1" class="svelte-1n46o8q"></rect><rect x="1" y="8" width="14" height="4" rx="1" class="svelte-1n46o8q"></rect><line x1="4" y1="4" x2="4" y2="4" class="svelte-1n46o8q"></line><circle cx="4" cy="4" r="0.8" fill="currentColor" stroke="none" class="svelte-1n46o8q"></circle><circle cx="4" cy="10" r="0.8" fill="currentColor" stroke="none" class="svelte-1n46o8q"></circle></svg> Broker</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>'),iee=T('<div class="login-error svelte-1n46o8q"> </div>'),nee=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>'),see=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>'),oee=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>'),ree=T("<!> <!> <!> <!>",1);function aee(o,e){Ns(e,!0);const t=["scripts","mqtt","matter","broker","db","logs","config","packages"];function i(){const kt=location.hash.slice(1);return t.includes(kt)?kt:"scripts"}let n=M(yi(i())),s=M(null),r=M(!1),a=M(!1),c=M(!1),u=M(!1),f=M("none"),g=M(""),p=M(!1),w=M(""),m=M(""),x=M(!1),k=M(!1);u7(()=>{y(p,!0)});async function E(){y(m,""),y(x,!0);try{await g7(d(w)),y(w,""),y(p,!1)}catch(kt){y(m,kt.message??"Login failed",!0)}finally{y(x,!1)}}async function P(){if(d(f)==="proxy"&&d(g)){window.location.href=d(g);return}await p7(),y(p,!0)}let A=M(null),$=M(!1),H=M(!1),ie=M(!1),J=M(!1),ue=M(yi([])),he=M(0),We=M(yi([]));const xe=wt(()=>d(We).filter(kt=>kt.online).length),rt=wt(()=>d(We).length===0?"none":d(xe)===d(We).length?"all":d(xe)>0?"some":"offline");let pt=M(!1),ve=M(!1);async function dt(){if(!await d(A).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;y($,!0);let kt;try{kt=(await Bg()).startedAt}catch{}try{await AN()}catch{}const Si=Date.now()+6e4;for(;Date.now()<Si;){await new Promise(hi=>setTimeout(hi,250));try{const hi=await Bg();if(kt===void 0||hi.startedAt!==kt){location.reload();return}}catch{}}location.reload()}async function gt(){y(c,!0);try{const kt=await w7();d(s)&&y(s,{...d(s),latestVersion:kt.latestVersion??void 0},!0)}catch{}finally{y(c,!1)}}async function Pt(){var hi,Di;if(!await d(A).show(`Update to v${(hi=d(s))==null?void 0:hi.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;y(a,!1),y(u,!0);const kt=(Di=d(s))==null?void 0:Di.startedAt;try{await y7()}catch{}const Si=Date.now()+18e4;for(;Date.now()<Si;){await new Promise(Fi=>setTimeout(Fi,1e3));try{const Fi=await Bg();if(kt===void 0||Fi.startedAt!==kt){location.reload();return}}catch{y(u,!1),y($,!0)}}location.reload()}function fe(kt){y(n,kt,!0),location.hash=kt}ao(async()=>{location.hash||(location.hash=d(n));const kt=()=>{y(n,i(),!0)};window.addEventListener("hashchange",kt);try{const ci=await f7();y(f,ci.mode,!0),y(g,ci.proxyLogoutUrl??"",!0),d(f)==="password"&&(await fetch("/she/scripts")).status===401&&y(p,!0)}catch{}y(k,!0);async function Si(){try{y(s,await Bg(),!0)}catch{}try{const[ci,vi]=await Promise.all([HN(),Dl()]);y(ue,Array.isArray(vi.pinnedPackages)?vi.pinnedPackages:[],!0),y(he,Object.keys(ci).filter(it=>!d(ue).includes(it)).length,!0)}catch{}}Si();const hi=setInterval(Si,5e3),Di=kr("mqtt:status",ci=>{ci.connected===!1?(y(J,!0),y(H,!1),y(ie,!1)):(y(J,!1),y(H,ci.ready===!1),y(ie,ci.ready===!0))}),Fi=kr("matter:deviceList",ci=>{Array.isArray(ci.devices)&&y(We,ci.devices.map(vi=>({nodeId:String(vi.nodeId),online:!!vi.online})),!0)}),Ri=kr("matter:deviceStatus",ci=>{if(ci.nodeId===void 0)return;const vi=String(ci.nodeId),it=!!ci.online;y(We,d(We).map(zt=>zt.nodeId===vi?{...zt,online:it}:zt),!0)}),Ni=qN();y(pt,Ni.some(ci=>ci.level==="error"),!0),y(ve,!d(pt)&&Ni.some(ci=>ci.level==="warn"),!0);const Ii=kk(ci=>{ci.level==="error"?(y(pt,!0),y(ve,!1)):ci.level==="warn"&&!d(pt)&&y(ve,!0)});return()=>{window.removeEventListener("hashchange",kt),clearInterval(hi),Di(),Fi(),Ri(),Ii()}});var Et=ree();cs("click",CP,()=>{d(r)&&y(r,!1),d(a)&&y(a,!1)});var Oe=Ct(Et);{var Te=kt=>{var Si=tee(),hi=v(Si),Di=b(v(hi),2);let Fi;var Ri=b(Di,2);let Ni;var Ii=b(v(Ri),2);{var ci=ge=>{var be=RJ();j(()=>Ai(be,"title",`${d(he)??""} package update${d(he)===1?"":"s"} available`)),D(ge,be)};W(Ii,ge=>{d(he)>0&&ge(ci)})}var vi=b(Ri,2);let it;var zt=b(v(vi),2);{var gi=ge=>{var be=NJ();D(ge,be)},Ti=ge=>{var be=AJ();D(ge,be)},Zi=ge=>{var be=OJ();D(ge,be)};W(zt,ge=>{d(J)?ge(gi):d(H)?ge(Ti,1):d(ie)&&ge(Zi,2)})}var Bi=b(vi,2);let zi;var vn=b(v(Bi),2);{var ln=ge=>{var be=FJ();D(ge,be)},Pi=ge=>{var be=HJ();D(ge,be)},yn=ge=>{var be=WJ();D(ge,be)};W(vn,ge=>{d(rt)==="all"?ge(ln):d(rt)==="some"?ge(Pi,1):d(rt)==="offline"&&ge(yn,2)})}var Re=b(Bi,2);let jt;var di=b(Re,2);let qt;var Le=b(di,2);let It;var ai=b(v(Le),2);{var pi=ge=>{var be=BJ();D(ge,be)},_i=ge=>{var be=zJ();D(ge,be)};W(ai,ge=>{d(pt)?ge(pi):d(ve)&&ge(_i,1)})}var Fe=b(Le,4),X=b(v(Fe),2),ee=v(X),de=v(ee);de.nodeValue="v1.1.18 ";var ke=b(de);{var $e=ge=>{var be=VJ();D(ge,be)};W(ke,ge=>{var be,vt;(be=d(s))!=null&&be.latestVersion&&!((vt=d(s))!=null&&vt.docker)&&ge($e)})}var N=b(ee,2);{var Q=ge=>{var be=qJ(),vt=v(be),Ei=b(v(vt));Ei.textContent="v1.1.18";var Ne=b(Ei,2);{var Ke=He=>{var Pe=jJ(),$t=b(Ct(Pe)),xt=v($t);j(()=>O(xt,`v${d(s).latestVersion??""}`)),D(He,Pe)},Vt=He=>{var Pe=$J();D(He,Pe)};W(Ne,He=>{var Pe;(Pe=d(s))!=null&&Pe.latestVersion?He(Ke):He(Vt,-1)})}var et=b(vt,2),bt=v(et);{var Jt=He=>{var Pe=UJ(),$t=b(v(Pe));j(()=>O($t,` Update to v${d(s).latestVersion??""}`)),U("click",Pe,Pt),D(He,Pe)};W(bt,He=>{var Pe;(Pe=d(s))!=null&&Pe.latestVersion&&He(Jt)})}var K=b(bt,2),se=v(K);let Ue;var tt=b(se);j(()=>{K.disabled=d(c),Ue=Tt(se,0,"svelte-1n46o8q",null,Ue,{spinning:d(c)}),O(tt,` ${d(c)?"Checking…":"Check for updates"}`)}),U("click",be,He=>He.stopPropagation()),U("click",K,gt),D(ge,be)};W(N,ge=>{var be;d(a)&&!((be=d(s))!=null&&be.docker)&&ge(Q)})}var oe=b(X,2),Ie=v(oe),De=b(Ie,2);{var B=ge=>{var be=JJ(),vt=v(be);{var Ei=bt=>{var Jt=XJ(),K=v(Jt);{var se=_t=>{const mt=wt(()=>Math.floor((Date.now()-d(s).startedAt)/1e3)),Xe=wt(()=>Math.floor(d(mt)/86400)),Yt=wt(()=>Math.floor(d(mt)%86400/3600)),si=wt(()=>Math.floor(d(mt)%3600/60));var un=GJ(),tn=b(Ct(un)),En=v(tn);j(()=>O(En,`${d(Xe)>0?d(Xe)+"d ":""}${d(Yt)>0||d(Xe)>0?d(Yt)+"h ":""}${d(si)??""}m`)),D(_t,un)};W(K,_t=>{d(s).startedAt&&_t(se)})}var Ue=b(K,3),tt=v(Ue),He=b(Ue,3),Pe=v(He),$t=b(He,3),xt=v($t),Ze=b($t,2);{var Ut=_t=>{var mt=KJ(),Xe=b(Ct(mt)),Yt=v(Xe),si=b(Xe,3),un=v(si);j(()=>{O(Yt,d(s).matterNodes??0),O(un,d(s).matterEndpoints??0)}),D(_t,mt)};W(Ze,_t=>{d(s).matterEnabled&&_t(Ut)})}var st=b(Ze,2);{var Me=_t=>{var mt=ZJ(),Xe=b(Ct(mt)),Yt=v(Xe),si=b(Xe,3),un=v(si);j(()=>{O(Yt,d(s).dbDocs??"—"),O(un,d(s).dbViews??"—")}),D(_t,mt)};W(st,_t=>{d(s).dbEnabled&&_t(Me)})}var ze=b(st,3),Ve=v(ze),je=b(ze,3),Nt=v(je),we=b(je,3),ot=v(we);j(()=>{O(tt,d(s).scripts),O(Pe,d(s).topics),O(xt,d(s).mqttMsgPerSec??"—"),O(Ve,d(s).handlers??"—"),O(Nt,d(s).memMb!=null?d(s).memMb+" MB":"—"),O(ot,d(s).cpuPercent!=null?d(s).cpuPercent+" %":"—")}),D(bt,Jt)},Ne=bt=>{var Jt=YJ();D(bt,Jt)};W(vt,bt=>{d(s)?bt(Ei):bt(Ne,-1)})}var Ke=b(vt,2),Vt=v(Ke);{var et=bt=>{var Jt=QJ();U("click",Jt,()=>{y(r,!1),dt()}),D(bt,Jt)};W(Vt,bt=>{var Jt;(Jt=d(s))!=null&&Jt.docker||bt(et)})}U("click",be,bt=>bt.stopPropagation()),D(ge,be)};W(De,ge=>{d(r)&&ge(B)})}var q=b(oe,2);let Y;var me=b(q,2);{var Qe=ge=>{var be=eee();U("click",be,P),D(ge,be)};W(me,ge=>{d(f)==="password"&&ge(Qe)})}var Ee=b(hi,2),Se=v(Ee);Ds(Jf(Se,{}),ge=>y(A,ge,!0),()=>d(A));var lt=b(Se,2);let Bt;var St=v(lt);{let ge=wt(()=>d(n)==="scripts");mK(St,{get active(){return d(ge)}})}var Dt=b(lt,2);let Ft;var ne=v(Dt);$Y(ne,{});var _e=b(Dt,2);let Be;var at=v(_e);kY(at,{});var nt=b(_e,2);let Ye;var Rt=v(nt);eY(Rt,{});var ri=b(nt,2);let fi;var Ci=v(ri);MJ(Ci,{});var en=b(ri,2);let fn;var cn=v(en);dX(cn,{});var ki=b(en,2);let Xi;var z=v(ki);iZ(z,{});var te=b(ki,2);let Ge;var Je=v(te);rZ(Je,{}),j(()=>{Fi=Tt(Di,1,"svelte-1n46o8q",null,Fi,{active:d(n)==="scripts"}),Ni=Tt(Ri,1,"svelte-1n46o8q",null,Ni,{active:d(n)==="packages"}),it=Tt(vi,1,"svelte-1n46o8q",null,it,{active:d(n)==="mqtt"}),zi=Tt(Bi,1,"svelte-1n46o8q",null,zi,{active:d(n)==="matter"}),jt=Tt(Re,1,"svelte-1n46o8q",null,jt,{active:d(n)==="broker"}),qt=Tt(di,1,"svelte-1n46o8q",null,qt,{active:d(n)==="db"}),It=Tt(Le,1,"svelte-1n46o8q",null,It,{active:d(n)==="logs"}),Y=Tt(q,1,"nav-settings svelte-1n46o8q",null,Y,{active:d(n)==="config"}),Bt=Tt(lt,1,"page-wrap svelte-1n46o8q",null,Bt,{hidden:d(n)!=="scripts"}),Ft=Tt(Dt,1,"page-wrap svelte-1n46o8q",null,Ft,{hidden:d(n)!=="packages"}),Be=Tt(_e,1,"page-wrap svelte-1n46o8q",null,Be,{hidden:d(n)!=="mqtt"}),Ye=Tt(nt,1,"page-wrap svelte-1n46o8q",null,Ye,{hidden:d(n)!=="matter"}),fi=Tt(ri,1,"page-wrap svelte-1n46o8q",null,fi,{hidden:d(n)!=="broker"}),fn=Tt(en,1,"page-wrap svelte-1n46o8q",null,fn,{hidden:d(n)!=="db"}),Xi=Tt(ki,1,"page-wrap svelte-1n46o8q",null,Xi,{hidden:d(n)!=="config"}),Ge=Tt(te,1,"page-wrap svelte-1n46o8q",null,Ge,{hidden:d(n)!=="logs"})}),U("click",Di,()=>fe("scripts")),U("click",Ri,()=>fe("packages")),U("click",vi,()=>fe("mqtt")),U("click",Bi,()=>fe("matter")),U("click",Re,()=>fe("broker")),U("click",di,()=>fe("db")),U("click",Le,()=>{fe("logs"),y(pt,!1),y(ve,!1)}),U("click",ee,ge=>{ge.stopPropagation(),y(a,!d(a)),y(r,!1)}),U("click",Ie,ge=>{ge.stopPropagation(),y(r,!d(r)),y(a,!1)}),U("click",q,()=>fe("config")),D(kt,Si)};W(Oe,kt=>{d(k)&&!d(p)&&kt(Te)})}var ut=b(Oe,2);{var Wt=kt=>{var Si=nee(),hi=v(Si),Di=b(v(hi),4),Fi=b(v(Di),2),Ri=b(Di,2);{var Ni=vi=>{var it=iee(),zt=v(it);j(()=>O(zt,d(m))),D(vi,it)};W(Ri,vi=>{d(m)&&vi(Ni)})}var Ii=b(Ri,2),ci=v(Ii);j(()=>{Fi.disabled=d(x),Ii.disabled=d(x)||!d(w),O(ci,d(x)?"Signing in…":"Sign in")}),cs("submit",hi,vi=>{vi.preventDefault(),E()}),ti(Fi,()=>d(w),vi=>y(w,vi)),D(kt,Si)};W(ut,kt=>{d(p)&&kt(Wt)})}var Zt=b(ut,2);{var Mt=kt=>{var Si=see();D(kt,Si)};W(Zt,kt=>{d($)&&kt(Mt)})}var Lt=b(Zt,2);{var At=kt=>{var Si=oee();D(kt,Si)};W(Lt,kt=>{d(u)&&kt(At)})}D(o,Et),As()}Ks(["click"]);TH(aee,{target:document.getElementById("app")});export{nM as t};
|