smart-home-engine 1.1.6 → 1.1.9
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.
- package/dist/web/assets/{index-DRKYxwDj.js → index-CZNc_m6c.js} +3 -3
- package/dist/web/assets/{tsMode-CY_XZkxX.js → tsMode-Cnr_wxoV.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/src/index.js +2 -0
- package/src/lib/dynsec.js +14 -6
- package/src/web/broker-api.js +44 -12
|
@@ -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-Cnr_wxoV.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var xA=Object.defineProperty;var eL=o=>{throw TypeError(o)};var kA=(o,e,t)=>e in o?xA(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var pn=(o,e,t)=>kA(o,typeof e!="symbol"?e+"":e,t),mw=(o,e,t)=>e.has(o)||eL("Cannot "+t);var re=(o,e,t)=>(mw(o,e,"read from private field"),t?t.call(o):e.get(o)),nn=(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),sn=(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 SE,m as CE,l as Kt,A as _o,C as be,I as jn,D as n_,a as os,g as xE,M as Mt,b as xi,E as ra,c as O,r as Dn,d as Dr,e as C,f as LA,h as Hn,R as rn,S as vi,i as Ys,j as Er,k as mn,n as qi,o as de,p as je,K as ds,q as $t,s as ht,t as ms,u as U,v as Ji,O as Oa,w as gs,P as Jt,x as vw,y as s_,z as kE,B as hl,F as aa,G as mS,H as Ms,U as Tn,J as lf,L as Qt,N as vl,Q as IA,T as uo,V as vS,W as DA,X as LE,$ as jt,Y as yn,Z as _n,a0 as Kn,a1 as Ai,a2 as $o,a3 as lp,a4 as ct,a5 as km,a6 as EA,a7 as TA,a8 as _s,a9 as PA,aa as la,ab as mo,ac as si,ad as IE,ae as zn,af as MA,ag as NA,ah as fo,ai as Wf,aj as us,ak as fy,al as oo,am as Hc,an as jx,ao as gy,ap as Es,aq as cf,ar as Ts,as as py,at as _y,au as RA,av as o_,aw as Bf,ax as El,ay as AA,az as zf,aA as OA,aB as $x,aC as FA,aD as HA,aE as tL,aF as ss,aG as fl,aH as ro,aI as zi,aJ as ll,aK as WA,aL as Ba,aM as zo,aN as Cs,aO as ca,aP as Ux,aQ as vs,aR as ts,aS as Jm,aT as Bi,aU as DE,aV as BA,aW as qx,aX as my,aY as Gx,aZ as Kx,a_ as md,a$ as zA,b0 as Zx,b1 as VA,b2 as Xx,b3 as Tl,b4 as Pl,b5 as df,b6 as cp,b7 as Do,b8 as r_,b9 as Qm,ba as bw,bb as Nn,bc as Yx,bd as a_,be as vy,bf as jA,bg as EE,bh as dp,bi as uf,bj as up,bk as l_,bl as by,bm as vn,bn as Wc,bo as c_,bp as $A,bq as UA,br as Jx,bs as qA,bt as ev,bu as rr,bv as Qx,bw as hf,bx as Ml,by as Vf,bz as Yi,bA as ff,bB as TE,bC as d_,bD as GA,bE as vd,bF as At,bG as iL,bH as Lm,bI as PE,bJ as Mr,bK as ta,bL as An,bM as gf,bN as wr,bO as pf,bP as Gn,bQ as hp,bR as Ru,bS,bT as ME,bU as NE,bV as RE,bW as e0,bX as So,bY as Ln,bZ as u_,b_ as AE,b$ as gl,c0 as yy,c1 as KA,c2 as yh,c3 as nL,c4 as h_,c5 as OE,c6 as wh,c7 as ZA,c8 as gr,c9 as wy,ca as XA,cb as vo,cc as da,cd as f_,ce as fp,cf as FE,cg as nr,ch as g_,ci as Sy,cj as YA,ck as JA,cl as QA,cm as jf,cn as za,co as xs,cp as eO,cq as t0,cr as tO,cs as iO,ct as sL,cu as nO,cv as p_,cw as bl,cx as yS,cy as pu,cz as yl,cA as sO,cB as Fa,cC as Sr,cD as Oo,cE as oL,cF as Qs,cG as __,cH as Ec,cI as Va,cJ as oO,cK as ua,cL as gp,cM as Cy,cN as HE,cO as rO,cP as aO,cQ as i0,cR as lO,cS as pp,cT as cO,cU as ic,cV as _p,cW as rL,cX as dO,cY as uO,cZ as Ua,c_ as hO,c$ as n0,d0 as WE,d1 as BE,d2 as zE,d3 as VE,d4 as fO,d5 as gO,d6 as jE,d7 as $E,d8 as pO,d9 as s0,da as _O,db as mO,dc as Xn,dd as vO,de as o0,df as bO,dg as Sh,dh as aL,di as yO,dj as wO,dk as SO,dl as CO,dm as xO,dn as kO,dp as _f,dq as xy,dr as wS,ds as LO,dt as IO,du as lL,dv as SS,dw as DO,dx as cL,dy as yw,dz as EO,dA as UE,dB as TO,dC as qE,dD as CS,dE as PO,dF as MO,dG as NO,dH as GE,dI as KE,dJ as RO,dK as tv,dL as ZE,dM as ky,dN as AO,dO as OO,dP as Tc,dQ as r0,dR as FO,dS as dL,dT as uL,dU as HO,dV as Ch,dW as XE,dX as WO,dY as BO,dZ as zO,d_ as VO,d$ as YE,e0 as JE,e1 as QE,e2 as eT,e3 as jO,e4 as Ha,e5 as hL,e6 as $O,e7 as m_,e8 as UO,e9 as Cg,ea as tT,eb as fL,ec as mp,ed as iT,ee as iv,ef as qO,eg as nT,eh as GO,ei as sT,ej as KO,ek as ZO,el as oT,em as rT,en as wl,eo as Ly,ep as XO,eq as aT,er as Vo,es as bd,et as lT,eu as YO,ev as JO,ew as cT,ex as dT,ey as QO,ez as uT,eA as hT,eB as vp,eC as e2,eD as t2,eE as i2,eF as n2,eG as hg,eH as gL,eI as s2,eJ as o2,eK as r2,eL as nv,eM as Bs,eN as a2,eO as xS,eP as Au,eQ as l2,eR as al,eS as c2,eT as d2,eU as fT,eV as u2,eW as Vg,eX as h2,eY as f2,eZ as g2,e_ as p2,e$ as pL,f0 as _L,f1 as mL,f2 as Ou,f3 as a0,f4 as gT,f5 as kS,f6 as Im,f7 as pT,f8 as sv,f9 as _2,fa as m2,fb as v2,fc as b2,fd as l0,fe as _T,ff as y2,fg as ov,fh as mT,fi as vT,fj as w2,fk as S2,fl as C2,fm as x2,fn as k2,fo as L2,fp as I2,fq as D2,fr as bT,fs as E2,ft as rv,fu as yT,fv as T2,fw as wT,fx as P2,fy as ST,fz as CT,fA as M2,fB as vL,fC as xT,fD as bL,fE as N2,fF as ww,fG as yL,fH as R2,fI as A2,fJ as O2,fK as Ea,fL as Pc,fM as F2,fN as wL,fO as Dm,fP as H2,fQ as cl,fR as Iy,fS as LS,fT as W2,fU as kT,fV as LT,fW as eo,fX as SL,fY as G_,fZ as c0,f_ as B2,f$ as z2,g0 as V2,g1 as j2,g2 as $2,g3 as U2,g4 as q2,g5 as G2,g6 as CL,g7 as K2,g8 as Z2,g9 as X2,ga as mf,gb as jg,gc as IT,gd as Y2,ge as d0,gf as Em,gg as K_,gh as Sw,gi as J2,gj as Q2,gk as DT,gl as eF,gm as u0,gn as tF,go as iF,gp as ET,gq as Dy,gr as nF,gs as av,gt as h0,gu as f0,gv as g0,gw as TT,gx as PT,gy as MT,gz as NT,gA as RT,gB as AT,gC as OT,gD as xL,gE as FT,gF as Yu,gG as sF,gH as oF,gI as rF,gJ as aF,gK as HT,gL as lF,gM as cF,gN as kL,gO as IS,gP as cc,gQ as dF,gR as uF,gS as hF,gT as fF,gU as gF,gV as pF,gW as LL,gX as p0,gY as DS,gZ as _F,g_ as ES,g$ as mF,h0 as vF,h1 as bF,h2 as yF,h3 as _0,h4 as WT,h5 as IL,h6 as DL,h7 as wF,h8 as SF,h9 as CF,ha as EL,hb as Cw,hc as xF,hd as kF,he as LF,hf as xw,hg as BT,hh as zT,hi as VT,hj as jT,hk as Sl,hl as $T,hm as m0,hn as TL,ho as IF,hp as UT,hq as DF,hr as EF,hs as Ey,ht as Ty,hu as Fu,hv as Py,hw as v_,hx as TF,hy as My,hz as PF,hA as MF,hB as NF,hC as qT,hD as fg,hE as RF,hF as AF,hG as OF,hH as FF,hI as b_,hJ as HF,hK as GT,hL as KT,hM as ZT,hN as TS,hO as WF,hP as BF,hQ as zF,hR as VF,hS as jF,hT as PS,hU as $F,hV as UF,hW as qF,hX as GF,hY as KF,hZ as ZF,h_ as XF,h$ as YF,i0 as XT,i1 as JF,i2 as QF,i3 as e3,i4 as PL,i5 as t3,i6 as i3,i7 as nd,i8 as dr,i9 as n3,ia as s3}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 YT=!1;var v0=Array.isArray,o3=Array.prototype.indexOf,lv=Array.prototype.includes,Ny=Array.from,r3=Object.defineProperty,Hh=Object.getOwnPropertyDescriptor,a3=Object.getOwnPropertyDescriptors,l3=Object.prototype,c3=Array.prototype,JT=Object.getPrototypeOf,ML=Object.isExtensible;const Ry=()=>{};function d3(o){for(var e=0;e<o.length;e++)o[e]()}function QT(){var o,e,t=new Promise((i,n)=>{o=i,e=n});return{promise:t,resolve:o,reject:e}}function u3(o,e,t=!1){return o===void 0?t?e():e:o}function NL(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,vf=4,Ay=8,eP=1<<24,ia=16,oa=32,Mc=64,MS=128,Lr=512,zs=1024,qs=2048,ja=4096,xo=8192,Ir=16384,$f=32768,NS=1<<25,bf=65536,cv=1<<17,h3=1<<18,Uf=1<<19,f3=1<<20,Na=1<<25,_u=65536,dv=1<<21,Wh=1<<22,dc=1<<23,yd=Symbol("$state"),g3=Symbol("legacy props"),p3=Symbol(""),Tm=Symbol("attributes"),RS=Symbol("class"),AS=Symbol("style"),xg=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 bE;const _3=!!((bE=globalThis.document)!=null&&bE.contentType)&&globalThis.document.contentType.includes("xml");function tP(o){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function m3(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function v3(o,e,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function b3(o){throw new Error("https://svelte.dev/e/effect_in_teardown")}function y3(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function w3(o){throw new Error("https://svelte.dev/e/effect_orphan")}function S3(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function C3(o){throw new Error("https://svelte.dev/e/props_invalid_value")}function x3(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function k3(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function L3(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function I3(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const D3=1,E3=2,iP=4,T3=8,P3=16,M3=1,N3=4,R3=8,A3=16,O3=1,F3=2,Ws=Symbol("uninitialized"),nP="http://www.w3.org/1999/xhtml",H3="http://www.w3.org/2000/svg",W3="http://www.w3.org/1998/Math/MathML";function B3(){console.warn("https://svelte.dev/e/derived_inert")}function z3(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function V3(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function sP(o){return o===this.v}function j3(o,e){return o!=o?e==e:o!==e||o!==null&&typeof o=="object"||typeof o=="function"}function oP(o){return!j3(o,this.v)}let $3=!1,io=null;function yf(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 Rs(o){var e=io,t=e.e;if(t!==null){e.e=null;for(var i of t)IP(i)}return o!==void 0&&(e.x=o),e.i=!0,io=e.p,o??{}}function rP(){return!0}let ld=[];function aP(){var o=ld;ld=[],d3(o)}function uc(o){if(ld.length===0&&!Ug){var e=ld;queueMicrotask(()=>{e===ld&&aP()})}ld.push(o)}function U3(){for(;ld.length>0;)aP()}function lP(o){var e=In;if(e===null)return kn.f|=dc,o;if((e.f&$f)===0&&(e.f&vf)===0)throw o;nc(o,e)}function nc(o,e){for(;e!==null;){if((e.f&MS)!==0){if((e.f&$f)===0)throw o;try{e.b.error(o);return}catch(t){o=t}}e=e.parent}throw o}const q3=-7169;function ws(o,e){o.f=o.f&q3|e}function b0(o){(o.f&Lr)!==0||o.deps===null?ws(o,zs):ws(o,ja)}function cP(o){if(o!==null)for(const e of o)(e.f&no)===0||(e.f&_u)===0||(e.f^=_u,cP(e.deps))}function dP(o,e,t){(o.f&qs)!==0?e.add(o):(o.f&ja)!==0&&t.add(o),cP(o.deps),ws(o,zs)}let Z_=!1;function G3(o){var e=Z_;try{return Z_=!1,[o(),Z_]}finally{Z_=e}}let kw=null,Ju=null,Wi=null,$g=null,Js=null,OS=null,Ug=!1,Lw=!1,xh=null,Mm=null;var RL=0;let K3=1;var jh,Ql,hd,$h,Uh,qh,nl,Gh,No,Yp,sl,qr,ka,Kh,fd,Yn,FS,kg,HS,uP,hP,gh,Z3,Lg;const yb=class yb{constructor(){nn(this,Yn);pn(this,"id",K3++);nn(this,jh,!1);pn(this,"linked",!0);nn(this,Ql,null);nn(this,hd,null);pn(this,"async_deriveds",new Map);pn(this,"current",new Map);pn(this,"previous",new Map);nn(this,$h,new Set);nn(this,Uh,new Set);nn(this,qh,0);nn(this,nl,new Map);nn(this,Gh,null);nn(this,No,[]);nn(this,Yp,[]);nn(this,sl,new Set);nn(this,qr,new Set);nn(this,ka,new Map);nn(this,Kh,new Set);pn(this,"is_fork",!1);nn(this,fd,!1);Ju===null?kw=Ju=this:(sn(Ju,hd,this),sn(this,Ql,Ju)),Ju=this}skip_effect(e){re(this,ka).has(e)||re(this,ka).set(e,{d:[],m:[]}),re(this,Kh).delete(e)}unskip_effect(e,t=i=>this.schedule(i)){var i=re(this,ka).get(e);if(i){re(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)}re(this,Kh).add(e)}capture(e,t,i=!1){e.v!==Ws&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&dc)===0&&(this.current.set(e,[t,i]),Js==null||Js.set(e,t)),this.is_fork||(e.v=t)}activate(){Wi=this}deactivate(){Wi=null,Js=null}flush(){try{Lw=!0,Wi=this,Bn(this,Yn,kg).call(this)}finally{RL=0,OS=null,xh=null,Mm=null,Lw=!1,Wi=null,Js=null,wd.clear()}}discard(){var e;for(const t of re(this,Uh))t(this);re(this,Uh).clear(),Bn(this,Yn,Lg).call(this),(e=re(this,Gh))==null||e.resolve()}register_created_effect(e){re(this,Yp).push(e)}increment(e,t){if(sn(this,qh,re(this,qh)+1),e){let i=re(this,nl).get(t)??0;re(this,nl).set(t,i+1)}}decrement(e,t){if(sn(this,qh,re(this,qh)-1),e){let i=re(this,nl).get(t)??0;i===1?re(this,nl).delete(t):re(this,nl).set(t,i-1)}re(this,fd)||(sn(this,fd,!0),uc(()=>{sn(this,fd,!1),this.linked&&this.flush()}))}transfer_effects(e,t){for(const i of e)re(this,sl).add(i);for(const i of t)re(this,qr).add(i);e.clear(),t.clear()}oncommit(e){re(this,$h).add(e)}ondiscard(e){re(this,Uh).add(e)}settled(){return(re(this,Gh)??sn(this,Gh,QT())).promise}static ensure(){if(Wi===null){const e=Wi=new yb;!Lw&&!Ug&&uc(()=>{re(e,jh)||e.flush()})}return Wi}apply(){{Js=null;return}}schedule(e){var n;if(OS=e,(n=e.b)!=null&&n.is_pending&&(e.f&(vf|Ay|eP))!==0&&(e.f&$f)===0){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var i=t.f;if(xh!==null&&t===In&&(kn===null||(kn.f&no)===0))return;if((i&(Mc|oa))!==0){if((i&zs)===0)return;t.f^=zs}}re(this,No).push(t)}};jh=new WeakMap,Ql=new WeakMap,hd=new WeakMap,$h=new WeakMap,Uh=new WeakMap,qh=new WeakMap,nl=new WeakMap,Gh=new WeakMap,No=new WeakMap,Yp=new WeakMap,sl=new WeakMap,qr=new WeakMap,ka=new WeakMap,Kh=new WeakMap,fd=new WeakMap,Yn=new WeakSet,FS=function(){if(this.is_fork)return!0;for(const i of re(this,nl).keys()){for(var e=i,t=!1;e.parent!==null;){if(re(this,ka).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1},kg=function(){var c,u,f,g;sn(this,jh,!0),RL++>1e3&&(Bn(this,Yn,Lg).call(this),Y3());for(const p of re(this,sl))re(this,qr).delete(p),ws(p,qs),this.schedule(p);for(const p of re(this,qr))ws(p,ja),this.schedule(p);const e=re(this,No);sn(this,No,[]),this.apply();var t=xh=[],i=[],n=Mm=[];for(const p of e)try{Bn(this,Yn,HS).call(this,p,t,i)}catch(w){throw pP(p),Bn(this,Yn,FS).call(this)||this.discard(),w}if(Wi=null,n.length>0){var s=yb.ensure();for(const p of n)s.schedule(p)}if(xh=null,Mm=null,Bn(this,Yn,FS).call(this)){Bn(this,Yn,gh).call(this,i),Bn(this,Yn,gh).call(this,t);for(const[p,w]of re(this,ka))gP(p,w);n.length>0&&Bn(c=Wi,Yn,kg).call(c);return}const r=Bn(this,Yn,uP).call(this);if(r){Bn(this,Yn,gh).call(this,i),Bn(this,Yn,gh).call(this,t),Bn(u=r,Yn,hP).call(u,this);return}re(this,sl).clear(),re(this,qr).clear();for(const p of re(this,$h))p(this);re(this,$h).clear(),$g=this,AL(i),AL(t),$g=null,(f=re(this,Gh))==null||f.resolve();var a=Wi;if(re(this,qh)===0&&(re(this,No).length===0||a!==null)&&Bn(this,Yn,Lg).call(this),re(this,No).length>0)if(a!==null){const p=a;re(p,No).push(...re(this,No).filter(w=>!re(p,No).includes(w)))}else a=this;a!==null&&Bn(g=a,Yn,kg).call(g)},HS=function(e,t,i){e.f^=zs;for(var n=e.first;n!==null;){var s=n.f,r=(s&(oa|Mc))!==0,a=r&&(s&zs)!==0,c=a||(s&xo)!==0||re(this,ka).has(n);if(!c&&n.fn!==null){r?n.f^=zs:(s&vf)!==0?t.push(n):w_(n)&&((s&ia)!==0&&re(this,qr).add(n),Sf(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}}},uP=function(){for(var e=re(this,Ql);e!==null;){if(!e.is_fork){for(const[t,[,i]]of this.current)if(e.current.has(t)&&!i)return e}e=re(e,Ql)}return null},hP=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(re(e,sl),re(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&(Wh|ia)&&!this.async_deriveds.has(a)&&(re(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,Lg).call(i),Wi=this,Bn(this,Yn,kg).call(this)},gh=function(e){for(var t=0;t<e.length;t+=1)dP(e[t],re(this,sl),re(this,qr))},Z3=function(){var f;for(let g=kw;g!==null;g=re(g,hd)){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(re(g,jh)){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 re(this,Kh))g.unskip_effect(p,w=>{var m;(w.f&(ia|Wh))!==0?g.schedule(w):Bn(m=g,Yn,gh).call(m,[w])});g.activate();var s=new Set,r=new Map;for(var a of t)fP(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 re(this,Yp))(p.f&(Ir|xo|cv))===0&&y0(p,c,r)&&((p.f&(Wh|ia))!==0?(ws(p,qs),g.schedule(p)):re(g,sl).add(p));if(re(g,No).length>0&&!re(g,fd)){g.apply();for(var u of re(g,No))Bn(f=g,Yn,HS).call(f,u,[],[]);sn(g,No,[])}g.deactivate()}}}},Lg=function(){if(this.linked){var e=re(this,Ql),t=re(this,hd);e===null?kw=t:sn(e,hd,t),t===null?Ju=e:sn(t,Ql,e),this.linked=!1}};let mu=yb;function X3(o){var e=Ug;Ug=!0;try{for(var t;;){if(U3(),Wi===null)return t;Wi.flush()}}finally{Ug=e}}function Y3(){try{S3()}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&&w_(i)&&(jr=new Set,Sf(i),i.deps===null&&i.first===null&&i.nodes===null&&i.teardown===null&&i.ac===null&&TP(i),(jr==null?void 0:jr.size)>0)){wd.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&&Sf(c)}}jr.clear()}}jr=null}}function fP(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?fP(n,e,t,i):(s&(Wh|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){Wi.schedule(o)}function gP(o,e){if(!((o.f&oa)!==0&&(o.f&zs)!==0)){(o.f&qs)!==0?e.d.push(o):(o.f&ja)!==0&&e.m.push(o),ws(o,zs);for(var t=o.first;t!==null;)gP(t,e),t=t.next}}function pP(o){ws(o,zs);for(var e=o.first;e!==null;)pP(e),e=e.next}function J3(o){let e=0,t=vu(0),i;return()=>{k0()&&(d(t),Hy(()=>(e===0&&(i=Rl(()=>o(()=>qg(t)))),e+=1,()=>{uc(()=>{e-=1,e===0&&(i==null||i(),i=void 0,qg(t))})})))}}var Q3=bf|Uf;function eH(o,e,t,i){new tH(o,e,t,i)}var _r,Vx,mr,gd,Ro,vr,yo,Qo,ol,pd,ec,Zh,Jp,Qp,rl,wb,Ss,iH,nH,sH,WS,Nm,Rm,BS,zS;class tH{constructor(e,t,i,n){nn(this,Ss);pn(this,"parent");pn(this,"is_pending",!1);pn(this,"transform_error");nn(this,_r);nn(this,Vx,null);nn(this,mr);nn(this,gd);nn(this,Ro);nn(this,vr,null);nn(this,yo,null);nn(this,Qo,null);nn(this,ol,null);nn(this,pd,0);nn(this,ec,0);nn(this,Zh,!1);nn(this,Jp,new Set);nn(this,Qp,new Set);nn(this,rl,null);nn(this,wb,J3(()=>(sn(this,rl,vu(re(this,pd))),()=>{sn(this,rl,null)})));var s;sn(this,_r,e),sn(this,mr,t),sn(this,gd,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),sn(this,Ro,D0(()=>{Bn(this,Ss,WS).call(this)},Q3))}defer_effect(e){dP(e,re(this,Jp),re(this,Qp))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!re(this,mr).pending}update_pending_count(e,t){Bn(this,Ss,BS).call(this,e,t),sn(this,pd,re(this,pd)+e),!(!re(this,rl)||re(this,Zh))&&(sn(this,Zh,!0),uc(()=>{sn(this,Zh,!1),re(this,rl)&&wf(re(this,rl),re(this,pd))}))}get_effect_pending(){return re(this,wb).call(this),d(re(this,rl))}error(e){if(!re(this,mr).onerror&&!re(this,mr).failed)throw e;Wi!=null&&Wi.is_fork?(re(this,vr)&&Wi.skip_effect(re(this,vr)),re(this,yo)&&Wi.skip_effect(re(this,yo)),re(this,Qo)&&Wi.skip_effect(re(this,Qo)),Wi.oncommit(()=>{Bn(this,Ss,zS).call(this,e)})):Bn(this,Ss,zS).call(this,e)}}_r=new WeakMap,Vx=new WeakMap,mr=new WeakMap,gd=new WeakMap,Ro=new WeakMap,vr=new WeakMap,yo=new WeakMap,Qo=new WeakMap,ol=new WeakMap,pd=new WeakMap,ec=new WeakMap,Zh=new WeakMap,Jp=new WeakMap,Qp=new WeakMap,rl=new WeakMap,wb=new WeakMap,Ss=new WeakSet,iH=function(){try{sn(this,vr,br(()=>re(this,gd).call(this,re(this,_r))))}catch(e){this.error(e)}},nH=function(e){const t=re(this,mr).failed;t&&sn(this,Qo,br(()=>{t(re(this,_r),()=>e,()=>()=>{})}))},sH=function(){const e=re(this,mr).pending;e&&(this.is_pending=!0,sn(this,yo,br(()=>e(re(this,_r)))),uc(()=>{var t=sn(this,ol,document.createDocumentFragment()),i=pl();t.append(i),sn(this,vr,Bn(this,Ss,Rm).call(this,()=>br(()=>re(this,gd).call(this,i)))),re(this,ec)===0&&(re(this,_r).before(t),sn(this,ol,null),Cd(re(this,yo),()=>{sn(this,yo,null)}),Bn(this,Ss,Nm).call(this,Wi))}))},WS=function(){try{if(this.is_pending=this.has_pending_snippet(),sn(this,ec,0),sn(this,pd,0),sn(this,vr,br(()=>{re(this,gd).call(this,re(this,_r))})),re(this,ec)>0){var e=sn(this,ol,document.createDocumentFragment());T0(re(this,vr),e);const t=re(this,mr).pending;sn(this,yo,br(()=>t(re(this,_r))))}else Bn(this,Ss,Nm).call(this,Wi)}catch(t){this.error(t)}},Nm=function(e){this.is_pending=!1,e.transfer_effects(re(this,Jp),re(this,Qp))},Rm=function(e){var t=In,i=kn,n=io;$a(re(this,Ro)),Tr(re(this,Ro)),yf(re(this,Ro).ctx);try{return mu.ensure(),e()}catch(s){return lP(s),null}finally{$a(t),Tr(i),yf(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}sn(this,ec,re(this,ec)+e),re(this,ec)===0&&(Bn(this,Ss,Nm).call(this,t),re(this,yo)&&Cd(re(this,yo),()=>{sn(this,yo,null)}),re(this,ol)&&(re(this,_r).before(re(this,ol)),sn(this,ol,null)))},zS=function(e){re(this,vr)&&(jo(re(this,vr)),sn(this,vr,null)),re(this,yo)&&(jo(re(this,yo)),sn(this,yo,null)),re(this,Qo)&&(jo(re(this,Qo)),sn(this,Qo,null));var t=re(this,mr).onerror;let i=re(this,mr).failed;var n=!1,s=!1;const r=()=>{if(n){V3();return}n=!0,s&&I3(),re(this,Qo)!==null&&Cd(re(this,Qo),()=>{sn(this,Qo,null)}),Bn(this,Ss,Rm).call(this,()=>{Bn(this,Ss,WS).call(this)})},a=c=>{try{s=!0,t==null||t(c,r),s=!1}catch(u){nc(u,re(this,Ro)&&re(this,Ro).parent)}i&&sn(this,Qo,Bn(this,Ss,Rm).call(this,()=>{try{return br(()=>{var u=In;u.b=this,u.f|=MS,i(re(this,_r),()=>c,()=>r)})}catch(u){return nc(u,re(this,Ro).parent),null}}))};uc(()=>{var c;try{c=this.transform_error(e)}catch(u){nc(u,re(this,Ro)&&re(this,Ro).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(a,u=>nc(u,re(this,Ro)&&re(this,Ro).parent)):a(c)})};function oH(o,e,t,i){const n=bp;var s=o.filter(p=>!p.settled);if(t.length===0&&s.length===0){i(e.map(n));return}var r=In,a=rH(),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=_P();if(t.length===0){c.then(()=>u(e.map(n))).finally(f);return}function g(){Promise.all(t.map(p=>aH(p))).then(p=>u([...e.map(n),...p])).catch(p=>nc(p,r)).finally(f)}c?c.then(()=>{a(),g(),uv()}):g()}function rH(){var o=In,e=kn,t=io,i=Wi;return function(s=!0){$a(o),Tr(e),yf(t),s&&(o.f&Ir)===0&&(i==null||i.activate(),i==null||i.apply())}}function uv(o=!0){$a(null),Tr(null),yf(null),o&&(Wi==null||Wi.deactivate())}function _P(){var o=In,e=o.b,t=Wi,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 bp(o){var e=no|qs;return In!==null&&(In.f|=Uf),{ctx:io,deps:null,effects:null,equals:sP,f:e,fn:o,reactions:null,rv:0,v:Ws,wv:0,parent:In,ac:null}}const X_=Symbol("obsolete");function aH(o,e,t){let i=In;i===null&&m3();var n=void 0,s=vu(Ws),r=!kn,a=new Set;return bH(()=>{var w,m;var c=In,u=QT();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=Wi;if(r){if((c.f&$f)!==0)var g=_P();if((w=i.b)!=null&&w.is_rendered())(m=f.async_deriveds.get(c))==null||m.reject(X_);else for(const x of a.values())x.reject(X_);a.add(u),f.async_deriveds.set(c,u)}const p=(x,k=void 0)=>{g==null||g(),a.delete(u),k!==X_&&(f.activate(),k?(s.f|=dc,wf(s,k)):((s.f&dc)!==0&&(s.f^=dc),wf(s,x)),f.deactivate())};u.promise.then(p,x=>p(null,x||"unknown"))}),L0(()=>{for(const c of a)c.reject(X_)}),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=bp(o);return NP(e),e}function S0(o){const e=bp(o);return e.equals=oP,e}function lH(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!==Ws&&(i.f&(Ir|xo))!==0)return B3(),o.v;$a(i);try{o.f&=~_u,lH(o),e=FP(o)}finally{$a(t)}return e}function mP(o){var e=C0(o);if(!o.equals(e)&&(o.wv=AP(),(!(Wi!=null&&Wi.is_fork)||o.deps===null)&&(Wi!==null?(Wi.capture(o,e,!0),$g==null||$g.capture(o,e,!0)):o.v=e,o.deps===null))){ws(o,zs);return}Cl||(Js!==null?(k0()||Wi!=null&&Wi.is_fork)&&Js.set(o,e):b0(o))}function cH(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=Ry),i.ac=null,yp(i,0),E0(i))}function vP(o){if(o.effects!==null)for(const e of o.effects)e.teardown&&e.fn!==null&&Sf(e)}let hv=new Set;const wd=new Map;let bP=!1;function vu(o,e){var t={f:0,v:o,reactions:null,equals:sP,rv:0,wv:0};return t}function M(o,e){const t=vu(o);return NP(t),t}function dH(o,e=!1,t=!0){const i=vu(o);return e||(i.equals=oP),i}function y(o,e,t=!1){kn!==null&&(!na||(kn.f&cv)!==0)&&rP()&&(kn.f&(no|ia|Wh|cv))!==0&&(Wa===null||!Wa.has(o))&&L3();let i=t?wi(e):e;return wf(o,i,Mm)}function wf(o,e,t=null){if(!o.equals(e)){wd.set(o,Cl?e:o.v);var i=mu.ensure();if(i.capture(o,e),(o.f&no)!==0){const n=o;(o.f&qs)!==0&&C0(n),Js===null&&b0(n)}o.wv=AP(),yP(o,qs,t),In!==null&&(In.f&zs)!==0&&(In.f&(oa|Mc))===0&&(pr===null?wH([o]):pr.push(o)),!i.is_fork&&hv.size>0&&!bP&&uH()}return e}function uH(){bP=!1;for(const o of hv){(o.f&zs)!==0&&ws(o,ja);let e;try{e=w_(o)}catch{e=!0}e&&Sf(o)}hv.clear()}function OL(o,e=1){var t=d(o),i=e===1?t++:t--;return y(o,t),i}function qg(o){y(o,o.v+1)}function yP(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;Js==null||Js.delete(u),(a&_u)===0&&(a&Lr&&(In===null||(In.f&dv)===0)&&(r.f|=_u),yP(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 wi(o){if(typeof o!="object"||o===null||yd in o)return o;const e=JT(o);if(e!==l3&&e!==c3)return o;var t=new Map,i=v0(o),n=M(0),s=xd,r=a=>{if(xd===s)return a();var c=kn,u=xd;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)&&x3();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(Ws));t.set(c,f),qg(n)}}else y(u,Ws),qg(n);return!0},get(a,c,u){var w;if(c===yd)return o;var f=t.get(c),g=c in a;if(f===void 0&&(!g||(w=Hh(a,c))!=null&&w.writable)&&(f=r(()=>{var m=wi(g?a[c]:Ws),x=M(m);return x}),t.set(c,f)),f!==void 0){var p=d(f);return p===Ws?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!==Ws)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(a,c){var p;if(c===yd)return!0;var u=t.get(c),f=u!==void 0&&u.v!==Ws||Reflect.has(a,c);if(u!==void 0||In!==null&&(!f||(p=Hh(a,c))!=null&&p.writable)){u===void 0&&(u=r(()=>{var w=f?wi(a[c]):Ws,m=M(w);return m}),t.set(c,u));var g=d(u);if(g===Ws)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,Ws):w in a&&(m=r(()=>M(Ws)),t.set(w+"",m))}if(g===void 0)(!p||(A=Hh(a,c))!=null&&A.writable)&&(g=r(()=>M(void 0)),y(g,wi(u)),t.set(c,g));else{p=g.v!==Ws;var x=r(()=>wi(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 D=t.get("length"),P=Number(c);Number.isInteger(P)&&P>=D.v&&y(D,P+1)}qg(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!==Ws});for(var[u,f]of t)f.v!==Ws&&!(u in a)&&c.push(u);return c},setPrototypeOf(){k3()}})}function FL(o){try{if(o!==null&&typeof o=="object"&&yd in o)return o[yd]}catch{}return o}function hH(o,e){return Object.is(FL(o),FL(e))}var Sd,wP,SP,CP,xP;function fH(){if(Sd===void 0){Sd=window,wP=document,SP=/Firefox/.test(navigator.userAgent);var o=Element.prototype,e=Node.prototype,t=Text.prototype;CP=Hh(e,"firstChild").get,xP=Hh(e,"nextSibling").get,ML(o)&&(o[RS]=void 0,o[Tm]=null,o[AS]=void 0,o.__e=void 0),ML(t)&&(t[xg]=void 0)}}function pl(o=""){return document.createTextNode(o)}function Ra(o){return CP.call(o)}function y_(o){return xP.call(o)}function v(o,e){return Ra(o)}function Et(o,e=!1){{var t=Ra(o);return t instanceof Comment&&t.data===""?y_(t):t}}function b(o,e=1,t=!1){let i=o;for(;e--;)i=y_(i);return i}function gH(o){o.textContent=""}function kP(){return!1}function LP(o,e,t){return e==null||e===nP?t?document.createElement(o,{is:t}):document.createElement(o):t?document.createElementNS(e,o,{is:t}):document.createElementNS(e,o)}let HL=!1;function pH(){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),pH()}function _H(o){In===null&&(kn===null&&w3(),y3()),Cl&&b3()}function mH(o,e){var t=e.last;t===null?e.last=e.first=o:(t.next=o,o.prev=t,e.last=o)}function Nl(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};Wi==null||Wi.register_created_effect(i);var n=i;if((o&vf)!==0)xh!==null?xh.push(i):mu.ensure().schedule(i);else if(e!==null){try{Sf(i)}catch(r){throw jo(i),r}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&(n.f&Uf)===0&&(n=n.first,(o&ia)!==0&&(o&bf)!==0&&n!==null&&(n.f|=bf))}if(n!==null&&(n.parent=t,t!==null&&mH(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=Nl(Ay,null);return ws(e,zs),e.teardown=o,e}function $n(o){_H();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 IP(o)}function IP(o){return Nl(vf|f3,o)}function vH(o){mu.ensure();const e=Nl(Mc|Uf,o);return(t={})=>new Promise(i=>{t.outro?Cd(e,()=>{jo(e),i(void 0)}):(jo(e),i(void 0))})}function I0(o){return Nl(vf,o)}function bH(o){return Nl(Wh|Uf,o)}function Hy(o,e=0){return Nl(Ay|e,o)}function V(o,e=[],t=[],i=[]){oH(i,e,t,n=>{Nl(Ay,()=>o(...n.map(d)))})}function D0(o,e=0){var t=Nl(ia|e,o);return t}function br(o){return Nl(oa|Uf,o)}function DP(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 yH(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&h3)!==0)&&o.nodes!==null&&o.nodes.end!==null&&(EP(o.nodes.start,o.nodes.end),t=!0),ws(o,NS),E0(o,e&&!t),yp(o,0);var i=o.nodes&&o.nodes.t;if(i!==null)for(const s of i)s.stop();DP(o),o.f^=NS,o.f|=Ir;var n=o.parent;n!==null&&n.first!==null&&TP(o),o.next=o.prev=o.teardown=o.ctx=o.deps=o.fn=o.nodes=o.ac=o.b=null}function EP(o,e){for(;o!==null;){var t=o===e?null:y_(o);o.remove(),o=t}}function TP(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 Cd(o,e,t=!0){var i=[];PP(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 PP(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&bf)!==0||(n.f&oa)!==0&&(o.f&ia)!==0;PP(n,e,r?t:!1)}n=s}}}function fv(o){MP(o,!0)}function MP(o,e){if((o.f&xo)!==0){o.f^=xo,(o.f&zs)===0&&(ws(o,qs),mu.ensure().schedule(o));for(var t=o.first;t!==null;){var i=t.next,n=(t.f&bf)!==0||(t.f&oa)!==0;MP(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:y_(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 NP(o){kn!==null&&(Wa??(Wa=new Set)).add(o)}let Ao=null,Yo=0,pr=null;function wH(o){pr=o}let RP=1,cd=0,xd=cd;function BL(o){xd=o}function AP(){return++RP}function w_(o){var e=o.f;if((e&qs)!==0)return!0;if(e&no&&(o.f&=~_u),(e&ja)!==0){for(var t=o.deps,i=t.length,n=0;n<i;n++){var s=t[n];if(w_(s)&&mP(s),s.wv>o.wv)return!0}(e&Lr)!==0&&Js===null&&ws(o,zs)}return!1}function OP(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?OP(s,e,!1):e===s&&(t?ws(s,qs):(s.f&zs)!==0&&ws(s,ja),w0(s))}}function FP(o){var x;var e=Ao,t=Yo,i=pr,n=kn,s=Wa,r=io,a=na,c=xd,u=o.f;Ao=null,Yo=0,pr=null,kn=(u&(oa|Mc))===0?o:null,Wa=null,yf(o.ctx),na=!1,xd=++cd,o.ac!==null&&(Fy(()=>{o.ac.abort(Oy)}),o.ac=null);try{o.f|=dv;var f=o.fn,g=f();o.f|=$f;var p=o.deps,w=Wi==null?void 0:Wi.is_fork;if(Ao!==null){var m;if(w||yp(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&&(yp(o,Yo),p.length=Yo);if(rP()&&pr!==null&&!na&&p!==null&&(o.f&(no|ja|qs))===0)for(m=0;m<pr.length;m++)OP(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 lP(k)}finally{o.f^=dv,Ao=e,Yo=t,pr=i,kn=n,Wa=s,yf(r),na=a,xd=c}}function SH(o,e){let t=e.reactions;if(t!==null){var i=o3.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&=~_u),s.v!==Ws&&b0(s),cH(s),yp(s,0)}}function yp(o,e){var t=o.deps;if(t!==null)for(var i=e;i<t.length;i++)SH(o,t[i])}function Sf(o){var e=o.f;if((e&Ir)===0){ws(o,zs);var t=In,i=Am;In=o,Am=!0;try{(e&(ia|eP))!==0?yH(o):E0(o),DP(o);var n=FP(o);o.teardown=typeof n=="function"?n:null,o.wv=RP;var s;YT&&$3&&(o.f&qs)!==0&&o.deps}finally{Am=i,In=t}}}async function Om(){await Promise.resolve(),X3()}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&&wd.has(o))return wd.get(o);if(t){var r=o;if(Cl){var a=r.v;return((r.f&zs)===0&&r.reactions!==null||WP(r))&&(a=C0(r)),wd.set(r,a),a}var c=(r.f&Lr)===0&&!na&&kn!==null&&(Am||(kn.f&Lr)!==0),u=(r.f&$f)===0;w_(r)&&(c&&(r.f|=Lr),mP(r)),c&&!u&&(vP(r),HP(r))}if(Js!=null&&Js.has(o))return Js.get(o);if((o.f&dc)!==0)throw o.v;return o.v}function HP(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&&(vP(e),HP(e))}function WP(o){if(o.v===Ws)return!0;if(o.deps===null)return!1;for(const e of o.deps)if(wd.has(e)||(e.f&no)!==0&&WP(e))return!0;return!1}function Rl(o){var e=na;try{return na=!0,o()}finally{na=e}}const CH=["touchstart","touchmove"];function xH(o){return CH.includes(o)}const dd=Symbol("events"),BP=new Set,VS=new Set;function kH(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=kH(o,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&L0(()=>{e.removeEventListener(o,r,s)})}function q(o,e,t){(e[dd]??(e[dd]={}))[o]=t}function Ks(o){for(var e=0;e<o.length;e++)BP.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){r3(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(D){p?w.push(D):p=D}if(o.cancelBubble)break;r++,s=r<n.length?n[r]:null}if(p){for(let D of w)queueMicrotask(()=>{throw D});throw p}}finally{o[dd]=e,delete o.currentTarget,Tr(f),$a(g)}}}var yE;const Iw=((yE=globalThis==null?void 0:globalThis.window)==null?void 0:yE.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:o=>o});function LH(o){return(Iw==null?void 0:Iw.createHTML(o))??o}function zP(o){var e=LP("template");return e.innerHTML=LH(o.replaceAll("<!>","<!---->")),e.content}function bu(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&O3)!==0,i=(e&F3)!==0,n,s=!o.startsWith("<!>");return()=>{n===void 0&&(n=zP(s?o:"<!>"+o),t||(n=Ra(n)));var r=i||SP?document.importNode(n,!0):n.cloneNode(!0);if(t){var a=Ra(r),c=r.lastChild;bu(a,c)}else bu(r,r);return r}}function IH(o,e,t="svg"){var i=!o.startsWith("<!>"),n=`<${t}>${i?o:"<!>"+o}</${t}>`,s;return()=>{if(!s){var r=zP(n),a=Ra(r);s=Ra(a)}var c=s.cloneNode(!0);return bu(c,c),c}}function VP(o,e){return IH(o,e,"svg")}function sa(o=""){{var e=pl(o+"");return bu(e,e),e}}function Vs(){var o=document.createDocumentFragment(),e=document.createComment(""),t=pl();return o.append(e,t),bu(e,t),o}function E(o,e){o!==null&&o.before(e)}function F(o,e){var t=e==null?"":typeof e=="object"?`${e}`:e;t!==(o[xg]??(o[xg]=o.nodeValue))&&(o[xg]=t,o.nodeValue=`${t}`)}function DH(o,e){return EH(o,e)}const Y_=new Map;function EH(o,{target:e,anchor:t,props:i={},events:n,context:s,intro:r=!0,transformError:a}){fH();var c=void 0,u=vH(()=>{var f=t??e.appendChild(pl());eH(f,{pending:()=>{}},w=>{Ns({});var m=io;s&&(m.c=s),n&&(i.$$events=n),c=o(w,i)||{},Rs()},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=xH(x);for(const A of[e,document]){var D=Y_.get(A);D===void 0&&(D=new Map,Y_.set(A,D));var P=D.get(x);P===void 0?(A.addEventListener(x,jS,{passive:k}),D.set(x,1)):D.set(x,P+1)}}}};return p(Ny(BP)),VS.add(p),()=>{var k;for(var w of g)for(const D of[e,document]){var m=Y_.get(D),x=m.get(w);--x==0?(D.removeEventListener(w,jS),m.delete(w),m.size===0&&Y_.delete(D)):m.set(w,x)}VS.delete(p),f!==t&&((k=f.parentNode)==null||k.removeChild(f))}});return TH.set(c,u),c}let TH=new WeakMap;var Gr,La,er,_d,e_,t_,Sb;class PH{constructor(e,t=!0){pn(this,"anchor");nn(this,Gr,new Map);nn(this,La,new Map);nn(this,er,new Map);nn(this,_d,new Set);nn(this,e_,!0);nn(this,t_,e=>{if(re(this,Gr).has(e)){var t=re(this,Gr).get(e),i=re(this,La).get(t);if(i)fv(i),re(this,_d).delete(t);else{var n=re(this,er).get(t);n&&(fv(n.effect),re(this,La).set(t,n.effect),re(this,er).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[s,r]of re(this,Gr)){if(re(this,Gr).delete(s),s===e)break;const a=re(this,er).get(r);a&&(jo(a.effect),re(this,er).delete(r))}for(const[s,r]of re(this,La)){if(s===t||re(this,_d).has(s))continue;const a=()=>{if(Array.from(re(this,Gr).values()).includes(s)){var u=document.createDocumentFragment();T0(r,u),u.append(pl()),re(this,er).set(s,{effect:r,fragment:u})}else jo(r);re(this,_d).delete(s),re(this,La).delete(s)};re(this,e_)||!i?(re(this,_d).add(s),Cd(r,a,!1)):a()}}});nn(this,Sb,e=>{re(this,Gr).delete(e);const t=Array.from(re(this,Gr).values());for(const[i,n]of re(this,er))t.includes(i)||(jo(n.effect),re(this,er).delete(i))});this.anchor=e,sn(this,e_,t)}ensure(e,t){var i=Wi,n=kP();if(t&&!re(this,La).has(e)&&!re(this,er).has(e))if(n){var s=document.createDocumentFragment(),r=pl();s.append(r),re(this,er).set(e,{effect:br(()=>t(r)),fragment:s})}else re(this,La).set(e,br(()=>t(this.anchor)));if(re(this,Gr).set(i,e),n){for(const[a,c]of re(this,La))a===e?i.unskip_effect(c):i.skip_effect(c);for(const[a,c]of re(this,er))a===e?i.unskip_effect(c.effect):i.skip_effect(c.effect);i.oncommit(re(this,t_)),i.ondiscard(re(this,Sb))}else re(this,t_).call(this,i)}}Gr=new WeakMap,La=new WeakMap,er=new WeakMap,_d=new WeakMap,e_=new WeakMap,t_=new WeakMap,Sb=new WeakMap;function W(o,e,t=!1){var i=new PH(o),n=t?bf: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 on(o,e){return e}function MH(o,e,t){for(var i=[],n=e.length,s,r=e.length,a=0;a<n;a++){let g=e[a];Cd(g,()=>{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var p=o.outrogroups;$S(o,Ny(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;gH(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|=Na;const r=document.createDocumentFragment();T0(s,r)}else jo(e[n],t)}}var VL;function pi(o,e,t,i,n,s=null){var r=o,a=new Map,c=(e&iP)!==0;if(c){var u=o;r=u.appendChild(pl())}var f=null,g=S0(()=>{var A=t();return v0(A)?A:A==null?[]:Ny(A)}),p,w=new Map,m=!0;function x(A){(P.effect.f&Ir)===0&&(P.pending.delete(A),P.fallback=f,NH(P,p,r,e,i),f!==null&&(p.length===0?(f.f&Na)===0?fv(f):(f.f^=Na,Ig(f,null,r)):Cd(f,()=>{f=null})))}function k(A){P.pending.delete(A)}var D=D0(()=>{p=d(g);for(var A=p.length,j=new Set,H=Wi,te=kP(),J=0;J<A;J+=1){var le=p[J],we=i(le,J),He=m?null:a.get(we);He?(He.v&&wf(He.v,le),He.i&&wf(He.i,J),te&&H.unskip_effect(He.e)):(He=RH(a,m?r:VL??(VL=pl()),le,we,J,n,e,t),m||(He.e.f|=Na),a.set(we,He)),j.add(we)}if(A===0&&s&&!f&&(m?f=br(()=>s(r)):(f=br(()=>s(VL??(VL=pl()))),f.f|=Na)),A>j.size&&v3(),!m)if(w.set(H,j),te){for(const[ue,et]of a)j.has(ue)||H.skip_effect(et.e);H.oncommit(x),H.ondiscard(k)}else x(H);d(g)}),P={effect:D,items:a,pending:w,outrogroups:null,fallback:f};m=!1}function gg(o){for(;o!==null&&(o.f&oa)===0;)o=o.next;return o}function NH(o,e,t,i,n){var He,ue,et,at,me,lt,gt,Ct,Le;var s=(i&T3)!==0,r=e.length,a=o.items,c=gg(o.effect.first),u,f=null,g,p=[],w=[],m,x,k,D;if(s)for(D=0;D<r;D+=1)m=e[D],x=n(m,D),k=a.get(x).e,(k.f&Na)===0&&((ue=(He=k.nodes)==null?void 0:He.a)==null||ue.measure(),(g??(g=new Set)).add(k));for(D=0;D<r;D+=1){if(m=e[D],x=n(m,D),k=a.get(x).e,o.outrogroups!==null)for(const xt of o.outrogroups)xt.pending.delete(k),xt.done.delete(k);if((k.f&xo)!==0&&(fv(k),s&&((at=(et=k.nodes)==null?void 0:et.a)==null||at.unfix(),(g??(g=new Set)).delete(k))),(k.f&Na)!==0)if(k.f^=Na,k===c)Ig(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),Ig(k,P,t),f=k,p=[],w=[],c=gg(f.next);continue}if(k!==c){if(u!==void 0&&u.has(k)){if(p.length<w.length){var A=w[0],j;f=A.prev;var H=p[0],te=p[p.length-1];for(j=0;j<p.length;j+=1)Ig(p[j],A,t);for(j=0;j<w.length;j+=1)u.delete(w[j]);Bl(o,H.prev,te.next),Bl(o,f,H),Bl(o,te,A),c=A,f=te,D-=1,p=[],w=[]}else u.delete(k),Ig(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=gg(c.next);if(c===null)continue}(k.f&Na)===0&&p.push(k),f=k,c=gg(k.next)}if(o.outrogroups!==null){for(const xt of o.outrogroups)xt.pending.size===0&&($S(o,Ny(xt.done)),(me=o.outrogroups)==null||me.delete(xt));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=gg(c.next);var le=J.length;if(le>0){var we=(i&iP)!==0&&r===0?t:null;if(s){for(D=0;D<le;D+=1)(gt=(lt=J[D].nodes)==null?void 0:lt.a)==null||gt.measure();for(D=0;D<le;D+=1)(Le=(Ct=J[D].nodes)==null?void 0:Ct.a)==null||Le.fix()}MH(o,J,we)}}s&&uc(()=>{var xt,Ue;if(g!==void 0)for(k of g)(Ue=(xt=k.nodes)==null?void 0:xt.a)==null||Ue.apply()})}function RH(o,e,t,i,n,s,r,a){var c=(r&D3)!==0?(r&P3)===0?dH(t,!1,!1):vu(t):null,u=(r&E3)!==0?vu(n):null;return{v:c,i:u,e:br(()=>(s(e,c??t,u??n,a),()=>{o.delete(i)}))}}function Ig(o,e,t){if(o.nodes)for(var i=o.nodes.start,n=o.nodes.end,s=e&&(e.f&Na)===0?e.nodes.start:t;i!==null;){var r=y_(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;V(()=>{var u=In;if(a!==(a=e()??"")){if(t){u.nodes=null,c.innerHTML=a,a!==""&&bu(Ra(c),c.lastChild);return}if(u.nodes!==null&&(EP(u.nodes.start,u.nodes.end),u.nodes=null),a!==""){var f=i?H3:n?W3:void 0,g=LP(i?"svg":n?"math":"template",f);g.innerHTML=a;var p=i||n?g:g.content;if(bu(Ra(p),p.lastChild),i||n)for(;Ra(p);)r.before(Ra(p));else r.before(p)}}})}function jP(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=jP(o[e]))&&(i&&(i+=" "),i+=t)}else for(t in o)o[t]&&(i&&(i+=" "),i+=t);return i}function AH(){for(var o,e,t=0,i="",n=arguments.length;t<n;t++)(o=arguments[t])&&(e=jP(o))&&(i&&(i+=" "),i+=e);return i}function J_(o){return typeof o=="object"?AH(o):o??""}const jL=[...`
|
|
3
3
|
\r\f \v\uFEFF`];function OH(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 FH(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 Rt(o,e,t,i,n,s){var r=o[RS];if(r!==t||r===void 0){var a=OH(t,i,s);a==null?o.removeAttribute("class"):e?o.className=a:o.setAttribute("class",a),o[RS]=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=FH(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 $P(o,e,t=!1){if(o.multiple){if(e==null)return;if(!v0(e))return z3();for(var i of o.options)i.selected=e.includes(Gg(i));return}for(i of o.options){var n=Gg(i);if(hH(n,e)){i.selected=!0;return}}(!t||e!==void 0)&&(o.selectedIndex=-1)}function HH(o){var e=new MutationObserver(()=>{$P(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),Gg);else{var c=o.querySelector(r)??o.querySelector("option:not([disabled])");a=c&&Gg(c)}t(a),o.__value=a,Wi!==null&&i.add(Wi)}),I0(()=>{var s=e();if(o===document.activeElement){var r=Wi;if(i.has(r))return}if($P(o,s,n),n&&s===void 0){var a=o.querySelector(":checked");a!==null&&(s=Gg(a),t(s))}o.__value=s,n=!1}),HH(o)}function Gg(o){return"__value"in o?o.__value:o.value}const WH=Symbol("is custom element"),BH=Symbol("is html"),zH=_3?"progress":"PROGRESS";function UL(o,e){var t=P0(o);t.value===(t.value=e??void 0)||o.value===e&&(e!==0||o.nodeName!==zH)||(o.value=e??"")}function Dg(o,e){var t=P0(o);t.checked!==(t.checked=e??void 0)&&(o.checked=e)}function Hi(o,e,t,i){var n=P0(o);n[e]!==(n[e]=t)&&(e==="loading"&&(o[p3]=t),t==null?o.removeAttribute(e):typeof t!="string"&&VH(o).includes(e)?o[e]=t:o.setAttribute(e,t))}function P0(o){return o[Tm]??(o[Tm]={[WH]:o.nodeName.includes("-"),[BH]:o.namespaceURI===nP})}var qL=new Map;function VH(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=a3(n);for(var r in i)i[r].set&&r!=="innerHTML"&&r!=="textContent"&&r!=="innerText"&&t.push(r);n=JT(n)}return t}function Yt(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),Wi!==null&&i.add(Wi),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))}}}),Rl(e)==null&&o.value&&(t(Tw(o)?Pw(o.value):o.value),Wi!==null&&i.add(Wi)),Hy(()=>{var n=e();if(o===document.activeElement){var s=Wi;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)}),Rl(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,Xh,i_,Cb,UP;const xb=class xb{constructor(e){nn(this,Cb);nn(this,tc,new WeakMap);nn(this,Xh);nn(this,i_);sn(this,i_,e)}observe(e,t){var i=re(this,tc).get(e)||new Set;return i.add(t),re(this,tc).set(e,i),Bn(this,Cb,UP).call(this).observe(e,re(this,i_)),()=>{var n=re(this,tc).get(e);n.delete(t),n.size===0&&(re(this,tc).delete(e),re(this,Xh).unobserve(e))}}};tc=new WeakMap,Xh=new WeakMap,i_=new WeakMap,Cb=new WeakSet,UP=function(){return re(this,Xh)??sn(this,Xh,new ResizeObserver(e=>{for(var t of e){xb.entries.set(t.target,t);for(var i of re(this,tc).get(t.target)||[])i(t)}}))},pn(xb,"entries",new WeakMap);let US=xb;var jH=new US({box:"border-box"});function $H(o,e,t){var i=jH.observe(o,()=>t(o[e]));I0(()=>(Rl(()=>t(o[e])),i))}function Mw(o,e){return o===e||(o==null?void 0:o[yd])===e}function Ds(o={},e,t,i){var n=io.r,s=In;return I0(()=>{var r,a;return Hy(()=>{r=a,a=[],Rl(()=>{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&NS;)c=c.parent;const u=()=>{a&&Mw(t(...a),o)&&e(null,...a)},f=c.teardown;c.teardown=()=>{u(),f==null||f()}}}),o}function Cf(o,e,t,i){var j;var n=!0,s=(t&R3)!==0,r=(t&A3)!==0,a=i,c=!0,u=void 0,f=()=>r&&n?(u??(u=bp(i)),d(u)):(c&&(c=!1,a=r?Rl(i):i),a);let g;if(s){var p=yd in o||g3 in o;g=((j=Hh(o,e))==null?void 0:j.set)??(p&&e in o?H=>o[e]=H:void 0)}var w,m=!1;s?[w,m]=G3(()=>o[e]):w=o[e],w===void 0&&i!==void 0&&(w=f(),g&&(C3(),g(w)));var x;if(x=()=>{var H=o[e];return H===void 0?f():(c=!0,H)},(t&N3)===0)return x;if(g){var k=o.$$legacy;return(function(H,te){return arguments.length>0?((!te||k||m)&&g(te?x():H),H):x()})}var D=!1,P=((t&M3)!==0?bp:S0)(()=>(D=!1,x()));s&&d(P);var A=In;return(function(H,te){if(arguments.length>0){const J=te?d(P):s?wi(H):H;return y(P,J),D=!0,a!==void 0&&(a=J),H}return Cl&&D||(A.f&Ir)!==0?P.v:d(P)})}function ao(o){io===null&&tP(),$n(()=>{const e=Rl(o);if(typeof e=="function")return e})}function Wy(o){io===null&&tP(),ao(()=>()=>Rl(o))}const UH="5";var wE;typeof window<"u"&&((wE=window.__svelte??(window.__svelte={})).v??(wE.v=new Set)).add(UH);/*!-----------------------------------------------------------------------------
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -10,7 +10,7 @@ var xA=Object.defineProperty;var eL=o=>{throw TypeError(o)};var kA=(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 iW=Object.defineProperty,nW=Object.getOwnPropertyDescriptor,sW=Object.getOwnPropertyNames,oW=Object.prototype.hasOwnProperty,rW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of sW(e))!oW.call(o,n)&&n!==t&&iW(o,n,{get:()=>e[n],enumerable:!(i=nW(e,n))||i.enumerable});return o},aW=(o,e,t)=>(rW(o,e,"default"),t),lW="5.4.5",xf={};aW(xf,CE);var KP=(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))(KP||{}),ZP=(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))(ZP||{}),XP=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(XP||{}),YP=(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))(YP||{}),JP=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(JP||{}),QP=class{constructor(o,e,t,i,n){this._onDidChange=new xf.Emitter,this._onDidExtraLibsChange=new xf.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)}},cW=lW,eM={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},tM=new QP({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},eM),iM=new QP({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},eM),dW=()=>By().then(o=>o.getTypeScriptWorker()),uW=()=>By().then(o=>o.getJavaScriptWorker());xf.languages.typescript={ModuleKind:KP,JsxEmit:ZP,NewLineKind:XP,ScriptTarget:YP,ModuleResolutionKind:JP,typescriptVersion:cW,typescriptDefaults:tM,javascriptDefaults:iM,getTypeScriptWorker:dW,getJavaScriptWorker:uW};function By(){return SE(()=>import("./tsMode-CY_XZkxX.js"),__vite__mapDeps([3,1,2]))}xf.languages.onLanguage("typescript",()=>By().then(o=>o.setupTypeScript(tM)));xf.languages.onLanguage("javascript",()=>By().then(o=>o.setupJavaScript(iM)));class hW extends _o{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Kt("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:xi.map,toggled:be.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:be.has("isInDiffEditor"),menu:{when:be.has("isInDiffEditor"),id:Mt.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(jn),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class nM extends _o{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Kt("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:be.has("isInDiffEditor")})}run(e,...t){const i=e.get(jn),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class sM extends _o{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Kt("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:be.has("isInDiffEditor")})}run(e,...t){const i=e.get(jn),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const C_=Kt("diffEditor","Diff Editor");class fW extends ra{constructor(){super({id:"diffEditor.switchSide",title:Kt("switchSide","Switch Side"),icon:xi.arrowSwap,precondition:be.has("isInDiffEditor"),f1:!0,category:C_})}runEditorCommand(e,t,i){const n=qf(e);if(n instanceof n_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class gW extends ra{constructor(){super({id:"diffEditor.exitCompareMove",title:Kt("exitCompareMove","Exit Compare Move"),icon:xi.close,precondition:O.comparingMovedCode,f1:!1,category:C_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=qf(e);n instanceof n_&&n.exitCompareMove()}}class pW extends ra{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Kt("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:xi.fold,precondition:be.has("isInDiffEditor"),f1:!0,category:C_})}runEditorCommand(e,t,...i){const n=qf(e);n instanceof n_&&n.collapseAllUnchangedRegions()}}class _W extends ra{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Kt("showAllUnchangedRegions","Show All Unchanged Regions"),icon:xi.unfold,precondition:be.has("isInDiffEditor"),f1:!0,category:C_})}runEditorCommand(e,t,...i){const n=qf(e);n instanceof n_&&n.showAllUnchangedRegions()}}class qS extends _o{constructor(){super({id:"diffEditor.revert",title:Kt("revert","Revert"),f1:!1,category:C_})}run(e,t){const i=mW(e,t.originalUri,t.modifiedUri);i instanceof n_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const oM=Kt("accessibleDiffViewer","Accessible Diff Viewer"),kb=class kb extends _o{constructor(){super({id:kb.id,title:Kt("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:oM,precondition:be.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=qf(e);t==null||t.accessibleDiffViewerNext()}};kb.id="editor.action.accessibleDiffViewer.next";let wp=kb;const Lb=class Lb extends _o{constructor(){super({id:Lb.id,title:Kt("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:oM,precondition:be.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=qf(e);t==null||t.accessibleDiffViewerPrev()}};Lb.id="editor.action.accessibleDiffViewer.prev";let gv=Lb;function mW(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 qf(o){const t=o.get(os).listDiffEditors(),i=xE();if(i)for(const n of t){const s=n.getContainerDomNode();if(vW(s,i))return n}return null}function vW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Dn(hW);Dn(nM);Dn(sM);Dr.appendMenuItem(Mt.EditorTitle,{command:{id:new sM().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:be.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:be.has("isInDiffEditor")},order:11,group:"1_diff",when:be.and(O.diffEditorRenderSideBySideInlineBreakpointReached,be.has("isInDiffEditor"))});Dr.appendMenuItem(Mt.EditorTitle,{command:{id:new nM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:xi.move,toggled:LA.create("config.diffEditor.experimental.showMoves",!0),precondition:be.has("isInDiffEditor")},order:10,group:"1_diff",when:be.has("isInDiffEditor")});Dn(qS);for(const o of[{icon:xi.arrowRight,key:O.diffEditorInlineMode.toNegated()},{icon:xi.discard,key:O.diffEditorInlineMode}])Dr.appendMenuItem(Mt.DiffEditorHunkToolbar,{command:{id:new qS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:be.and(O.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Dr.appendMenuItem(Mt.DiffEditorSelectionToolbar,{command:{id:new qS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:be.and(O.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Dn(fW);Dn(gW);Dn(pW);Dn(_W);Dr.appendMenuItem(Mt.EditorTitle,{command:{id:wp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:be.has("isInDiffEditor")},order:10,group:"2_diff",when:be.and(O.accessibleDiffViewerVisible.negate(),be.has("isInDiffEditor"))});Hn.registerCommandAlias("editor.action.diffReview.next",wp.id);Dn(wp);Hn.registerCommandAlias("editor.action.diffReview.prev",gv.id);Dn(gv);var bW=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},yW=function(o,e){return function(t,i){e(t,i,o)}},GS;const zy=new rn("selectionAnchorSet",!1);var Dd;let Nc=(Dd=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(vi.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(vi.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=Dd,Dd.ID="editor.contrib.selectionAnchorController",Dd);Nc=GS=bW([yW(1,mn)],Nc);class wW extends je{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:O.editorTextFocus,primary:ds(2089,2080),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.setSelectionAnchor()}}class SW extends je{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=Nc.get(t))==null||i.goToSelectionAnchor()}}class CW extends je{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:zy,kbOpts:{kbExpr:O.editorTextFocus,primary:ds(2089,2089),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.selectFromAnchorToCursor()}}class xW extends je{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:zy,kbOpts:{kbExpr:O.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.cancelSelectionAnchor()}}qi(Nc.ID,Nc,4);de(wW);de(SW);de(CW);de(xW);const kW=$t("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class LW extends je{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:O.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=yu.get(t))==null||i.jumpToBracket()}}class IW extends je{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Kt("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=yu.get(t))==null||s.selectToBracket(n)}}class DW extends je{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:O.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=yu.get(t))==null||i.removeBrackets(this.id)}}class EW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Kl=class Kl extends ht{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 vi(r.lineNumber,r.column,r.lineNumber,r.column):new vi(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(U.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 vi(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(Jt.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 EW(w,m,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Kl.ID="editor.contrib.bracketMatchingController",Kl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Ji.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:gs(kW),position:Oa.Center}}),Kl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Ji.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let yu=Kl;qi(yu.ID,yu,1);de(IW);de(LW);de(DW);Dr.appendMenuItem(Mt.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class TW{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 U(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new U(i,s,i,s),a)}else{const r=new U(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new U(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new vi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new vi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class rM extends je{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 TW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class PW extends rM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:O.writable})}}class MW extends rM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:O.writable})}}de(PW);de(MW);class NW extends je{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:O.writable,kbOpts:{kbExpr:O.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(U.fromPositions(p,g)),m=i.getValueInRange(U.fromPositions(g,f)),x=U.fromPositions(p,f);n.push(new s_(x,m+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}de(NW);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 RW(o,e,t){const i={id:Vy(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class aM{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"),cM(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 lM(o,e){return cM(pv(o),e.map(pv))}function cM(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=>kE(o.map(e=>e.toString())).join(`\r
|
|
13
|
+
*-----------------------------------------------------------------------------*/var iW=Object.defineProperty,nW=Object.getOwnPropertyDescriptor,sW=Object.getOwnPropertyNames,oW=Object.prototype.hasOwnProperty,rW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of sW(e))!oW.call(o,n)&&n!==t&&iW(o,n,{get:()=>e[n],enumerable:!(i=nW(e,n))||i.enumerable});return o},aW=(o,e,t)=>(rW(o,e,"default"),t),lW="5.4.5",xf={};aW(xf,CE);var KP=(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))(KP||{}),ZP=(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))(ZP||{}),XP=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(XP||{}),YP=(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))(YP||{}),JP=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(JP||{}),QP=class{constructor(o,e,t,i,n){this._onDidChange=new xf.Emitter,this._onDidExtraLibsChange=new xf.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)}},cW=lW,eM={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},tM=new QP({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},eM),iM=new QP({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},eM),dW=()=>By().then(o=>o.getTypeScriptWorker()),uW=()=>By().then(o=>o.getJavaScriptWorker());xf.languages.typescript={ModuleKind:KP,JsxEmit:ZP,NewLineKind:XP,ScriptTarget:YP,ModuleResolutionKind:JP,typescriptVersion:cW,typescriptDefaults:tM,javascriptDefaults:iM,getTypeScriptWorker:dW,getJavaScriptWorker:uW};function By(){return SE(()=>import("./tsMode-Cnr_wxoV.js"),__vite__mapDeps([3,1,2]))}xf.languages.onLanguage("typescript",()=>By().then(o=>o.setupTypeScript(tM)));xf.languages.onLanguage("javascript",()=>By().then(o=>o.setupJavaScript(iM)));class hW extends _o{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Kt("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:xi.map,toggled:be.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:be.has("isInDiffEditor"),menu:{when:be.has("isInDiffEditor"),id:Mt.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(jn),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class nM extends _o{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Kt("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:be.has("isInDiffEditor")})}run(e,...t){const i=e.get(jn),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class sM extends _o{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Kt("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:be.has("isInDiffEditor")})}run(e,...t){const i=e.get(jn),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const C_=Kt("diffEditor","Diff Editor");class fW extends ra{constructor(){super({id:"diffEditor.switchSide",title:Kt("switchSide","Switch Side"),icon:xi.arrowSwap,precondition:be.has("isInDiffEditor"),f1:!0,category:C_})}runEditorCommand(e,t,i){const n=qf(e);if(n instanceof n_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class gW extends ra{constructor(){super({id:"diffEditor.exitCompareMove",title:Kt("exitCompareMove","Exit Compare Move"),icon:xi.close,precondition:O.comparingMovedCode,f1:!1,category:C_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=qf(e);n instanceof n_&&n.exitCompareMove()}}class pW extends ra{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Kt("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:xi.fold,precondition:be.has("isInDiffEditor"),f1:!0,category:C_})}runEditorCommand(e,t,...i){const n=qf(e);n instanceof n_&&n.collapseAllUnchangedRegions()}}class _W extends ra{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Kt("showAllUnchangedRegions","Show All Unchanged Regions"),icon:xi.unfold,precondition:be.has("isInDiffEditor"),f1:!0,category:C_})}runEditorCommand(e,t,...i){const n=qf(e);n instanceof n_&&n.showAllUnchangedRegions()}}class qS extends _o{constructor(){super({id:"diffEditor.revert",title:Kt("revert","Revert"),f1:!1,category:C_})}run(e,t){const i=mW(e,t.originalUri,t.modifiedUri);i instanceof n_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const oM=Kt("accessibleDiffViewer","Accessible Diff Viewer"),kb=class kb extends _o{constructor(){super({id:kb.id,title:Kt("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:oM,precondition:be.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=qf(e);t==null||t.accessibleDiffViewerNext()}};kb.id="editor.action.accessibleDiffViewer.next";let wp=kb;const Lb=class Lb extends _o{constructor(){super({id:Lb.id,title:Kt("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:oM,precondition:be.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=qf(e);t==null||t.accessibleDiffViewerPrev()}};Lb.id="editor.action.accessibleDiffViewer.prev";let gv=Lb;function mW(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 qf(o){const t=o.get(os).listDiffEditors(),i=xE();if(i)for(const n of t){const s=n.getContainerDomNode();if(vW(s,i))return n}return null}function vW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Dn(hW);Dn(nM);Dn(sM);Dr.appendMenuItem(Mt.EditorTitle,{command:{id:new sM().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:be.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:be.has("isInDiffEditor")},order:11,group:"1_diff",when:be.and(O.diffEditorRenderSideBySideInlineBreakpointReached,be.has("isInDiffEditor"))});Dr.appendMenuItem(Mt.EditorTitle,{command:{id:new nM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:xi.move,toggled:LA.create("config.diffEditor.experimental.showMoves",!0),precondition:be.has("isInDiffEditor")},order:10,group:"1_diff",when:be.has("isInDiffEditor")});Dn(qS);for(const o of[{icon:xi.arrowRight,key:O.diffEditorInlineMode.toNegated()},{icon:xi.discard,key:O.diffEditorInlineMode}])Dr.appendMenuItem(Mt.DiffEditorHunkToolbar,{command:{id:new qS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:be.and(O.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Dr.appendMenuItem(Mt.DiffEditorSelectionToolbar,{command:{id:new qS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:be.and(O.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Dn(fW);Dn(gW);Dn(pW);Dn(_W);Dr.appendMenuItem(Mt.EditorTitle,{command:{id:wp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:be.has("isInDiffEditor")},order:10,group:"2_diff",when:be.and(O.accessibleDiffViewerVisible.negate(),be.has("isInDiffEditor"))});Hn.registerCommandAlias("editor.action.diffReview.next",wp.id);Dn(wp);Hn.registerCommandAlias("editor.action.diffReview.prev",gv.id);Dn(gv);var bW=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},yW=function(o,e){return function(t,i){e(t,i,o)}},GS;const zy=new rn("selectionAnchorSet",!1);var Dd;let Nc=(Dd=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(vi.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(vi.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=Dd,Dd.ID="editor.contrib.selectionAnchorController",Dd);Nc=GS=bW([yW(1,mn)],Nc);class wW extends je{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:O.editorTextFocus,primary:ds(2089,2080),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.setSelectionAnchor()}}class SW extends je{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=Nc.get(t))==null||i.goToSelectionAnchor()}}class CW extends je{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:zy,kbOpts:{kbExpr:O.editorTextFocus,primary:ds(2089,2089),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.selectFromAnchorToCursor()}}class xW extends je{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:zy,kbOpts:{kbExpr:O.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.cancelSelectionAnchor()}}qi(Nc.ID,Nc,4);de(wW);de(SW);de(CW);de(xW);const kW=$t("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class LW extends je{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:O.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=yu.get(t))==null||i.jumpToBracket()}}class IW extends je{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Kt("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=yu.get(t))==null||s.selectToBracket(n)}}class DW extends je{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:O.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=yu.get(t))==null||i.removeBrackets(this.id)}}class EW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Kl=class Kl extends ht{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 vi(r.lineNumber,r.column,r.lineNumber,r.column):new vi(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(U.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 vi(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(Jt.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 EW(w,m,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Kl.ID="editor.contrib.bracketMatchingController",Kl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Ji.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:gs(kW),position:Oa.Center}}),Kl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Ji.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let yu=Kl;qi(yu.ID,yu,1);de(IW);de(LW);de(DW);Dr.appendMenuItem(Mt.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class TW{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 U(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new U(i,s,i,s),a)}else{const r=new U(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new U(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new vi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new vi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class rM extends je{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 TW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class PW extends rM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:O.writable})}}class MW extends rM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:O.writable})}}de(PW);de(MW);class NW extends je{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:O.writable,kbOpts:{kbExpr:O.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(U.fromPositions(p,g)),m=i.getValueInRange(U.fromPositions(g,f)),x=U.fromPositions(p,f);n.push(new s_(x,m+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}de(NW);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 RW(o,e,t){const i={id:Vy(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class aM{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"),cM(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 lM(o,e){return cM(pv(o),e.map(pv))}function cM(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=>kE(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 Vn=wa;const GL={EDITORS:"CodeEditors",FILES:"CodeFiles"};class AW{}const OW={DragAndDropContribution:"workbench.contributions.dragAndDrop"};aa.add(OW.DragAndDropContribution,new AW);const sp=class sp{constructor(){}static getInstance(){return sp.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};sp.INSTANCE=new sp;let KS=sp;function dM(o){const e=new aM;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,FW(n))}}return e}function FW(o){const e=o.path?Tn.parse(o.path):void 0;return RW(o.name,e,async()=>new Uint8Array(await o.arrayBuffer()))}const HW=Object.freeze([GL.EDITORS,GL.FILES,mS.RESOURCES,mS.INTERNAL_URI_LIST]);function uM(o,e=!1){const t=dM(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 HW)t.delete(n);return t}var N0=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},Sp=function(o,e){return function(t,i){e(t,i,o)}};class R0{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 op=class op extends R0{constructor(){super(...arguments),this.kind=op.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}}};op.id="text",op.kind=new Vn("text.plain");let wu=op;class hM extends R0{constructor(){super(...arguments),this.kind=new Vn("uri.absolute"),this.dropMimeTypes=[Ms.uriList],this.pasteMimeTypes=[Ms.uriList]}async getEdit(e,t){const i=await fM(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 R0{constructor(e){super(),this._workspaceContextService=e,this.kind=new Vn("uri.relative"),this.dropMimeTypes=[Ms.uriList],this.pasteMimeTypes=[Ms.uriList]}async getEdit(e,t){const i=await fM(e);if(!i.length||t.isCancellationRequested)return;const n=vl(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?IA(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=N0([Sp(0,lf)],_v);class WW{constructor(){this.kind=new Vn("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 fM(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 ht{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new wu)),this._register(e.documentDropEditProvider.register("*",new hM)),this._register(e.documentDropEditProvider.register("*",new _v(t)))}};ZS=N0([Sp(0,Qt),Sp(1,lf)],ZS);let XS=class extends ht{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new wu)),this._register(e.documentPasteEditProvider.register("*",new hM)),this._register(e.documentPasteEditProvider.register("*",new _v(t))),this._register(e.documentPasteEditProvider.register("*",new WW))}};XS=N0([Sp(0,Qt),Sp(1,lf)],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 Gf{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 x_)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}let Co=class gM extends Gf{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new gM(this.value)}};class pM extends Gf{}class sr extends pM{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 Kf?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 Kf extends Gf{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 Kf;return this.options.forEach(e.appendChild,e),e}}class A0 extends Gf{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 Gf{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 Cp extends pM{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 Cp(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 x_ extends Gf{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 Cp&&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 x_;return this._children=this.children.map(t=>t.clone()),e}walk(e){KL(this.children,e)}}class Su{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 x_;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 Cp(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 Kf;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 Cp(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 _M(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 DA(o,{range:s,text:typeof t.insertText=="string"?Su.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...((n=t.additionalEdit)==null?void 0:n.edits)??[]]}}function mM(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 BW=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},zW=function(o,e){return function(t,i){e(t,i,o)}};const VW=Ji.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:LE,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),Ib=class Ib extends ht{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=jt(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=jt("span.icon");this.domNode.append(t),t.classList.add(...yn.asClassNameArray(xi.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 JS=Ib,mv=class extends ht{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=lp(()=>{const a=U.fromPositions(e);this._currentDecorations.set([{range:a,options:VW}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(JS,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=BW([zW(2,Ai)],mv);var jW=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)?EA(e,{actionHandler:{callback:n=>{this.closeMessage(),TA(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&&PA(xE(),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 U(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 rn("messageVisible",!1,C("messageVisible","Whether the editor is currently showing an inline message")),fc);ko=Fm=jW([ZL(1,mn),ZL(2,la)],ko);const $W=mo.bindToContribution(ko.get);si(new $W({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)}};qi(ko.ID,ko,4);function Nw(o,e){return e&&(o.stack||o.stacktrace)?C("stackTrace.format","{0}: {1}",JL(o),YL(o.stack)||YL(o.stacktrace)):JL(o)}function YL(o){return Array.isArray(o)?o.join(`
|
|
16
16
|
`):o}function JL(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(IE(o))return o;if(o.detail){const t=o.detail;if(t.error)return Nw(t.error,e);if(t.exception)return Nw(t.exception,e)}return o.stack?Nw(o,e):o.message?o.message:C("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var vM=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},Bh=function(o,e){return function(t,i){e(t,i,o)}},QS,Ed;let eC=(Ed=class extends ht{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(zn(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(zn((()=>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=jt(".post-edit-widget"),this.button=this._register(new MA(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(_n(this.domNode,Kn.CLICK,()=>this.showSelector()))}getId(){return QS.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)=>NA({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}},QS=Ed,Ed.baseId="editor.widget.postEditWidget",Ed);eC=QS=vM([Bh(7,Wf),Bh(8,mn),Bh(9,us)],eC);let bv=class extends ht{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 D=this._editor.getModel();D&&(await D.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:k,allEdits:t.allEdits},i,n,s))},u=(k,D)=>{Hc(k)||(this._notificationService.error(D),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 ee}function Ot(z){return z.filter!==void 0||z.map!==void 0||z.reduce!==void 0}function ri(z){const ee=[];return z.filter!==void 0&&ee.push("filter"),z.map!==void 0&&ee.push("map"),z.reduce!==void 0&&ee.push("reduce"),`Apply ${ee.join(" + ")}`}const Wt=15;function Tt(z){return z.split(`
|
|
228
228
|
`).length>Wt}function Nt(z){const ee=new Set(d(p));ee.has(z)?ee.delete(z):ee.add(z),y(p,ee,!0)}function It(z,ee){if(hi(ee))try{return pb.highlight(z,{language:"javascript"}).value}catch{}return z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function bi(z){return Un.parse(z)}function hi(z){return!z||z==="js"||z==="javascript"}function Ii(z){navigator.clipboard.writeText(z).catch(()=>{})}async function Oi(){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 Fi(z){return z>=1e9?`${(z/1e9).toFixed(1)} GB`:z>=1e6?`${(z/1e6).toFixed(0)} MB`:`${z} B`}function Mi(z){const ee=z.match(/\.([^.]+)$/);return ee?ee[1].toUpperCase():"?"}function Ci(z){switch(z){case"SH":case"BASH":return"$";case"MD":case"MARKDOWN":return"↓";case"JSON":case"JSONC":return"{}";default:return z}}function ai(z){y(J,d(J).filter((ee,$e)=>$e!==z),!0)}function _i(){He.click()}async function tt(z){if(!(!z||z.length===0))for(const ee of Array.from(z)){const $e=await ee.text();y(J,[...d(J),{name:ee.name,content:$e}],!0)}}function Bt(z){const ee=z.target;tt(ee.files),ee.value=""}function ii(z){var ee;z.preventDefault(),y(we,!1),tt(((ee=z.dataTransfer)==null?void 0:ee.files)??null)}function mi(z){var ee;(ee=z.dataTransfer)!=null&&ee.types.includes("Files")&&(z.preventDefault(),y(we,!0))}function Vi(){y(we,!1)}async function Pi(){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),D=new AbortController,y(ue,[],!0);try{await VR({messages:d(n),currentView:d(Le),context:d(lt),modelOverride:d(g)||void 0,extraFiles:d(J).length>0?d(J):void 0},ee=>{y(s,(d(s)??"")+ee)},D.signal,ee=>{y(ue,[...d(ue),ee],!0)}),y(n,[...d(n),{role:"assistant",content:d(s)??"",toolEvents:d(ue).length>0?[...d(ue)]:void 0}],!0),y(ue,[],!0)}catch(ee){if(ee.name==="AbortError"){const $e=d(s);$e!=null&&$e.trim()&&y(n,[...d(n),{role:"assistant",content:$e+`
|
|
229
229
|
|
|
230
|
-
*[stopped]*`,toolEvents:d(ue).length>0?[...d(ue)]:void 0}],!0)}else y(c,ee.message,!0)}finally{D=null,y(s,null),y(ue,[],!0),y(a,!1)}}}function Ri(){D==null||D.abort()}function ji(z){z.key==="Enter"&&!z.shiftKey&&(z.preventDefault(),Pi())}function an(){y(n,[],!0),y(c,"")}const Ni=["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 Cn(z){y(r,z,!0),at==null||at.focus()}var Me=HZ(),Ut=Et(Me),ui=v(Ut),ki=b(v(ui),2);{var ze=z=>{var ee=iZ(),$e=v(ee);{var Ye=ve=>{var vt=sa();V(()=>F(vt,`${d(u).provider??""} · ${(d(g)||d(u).model)??""}`)),E(ve,vt)},ge=ve=>{var vt=sa("Not configured");E(ve,vt)};W($e,ve=>{d(gt)?ve(Ye):ve(ge,-1)})}V(()=>Hi(ee,"title",`Provider: ${d(u).provider??""}`)),E(z,ee)};W(ki,z=>{d(u)&&z(ze)})}var qt=b(ki,2);{var fi=z=>{var ee=nZ();q("click",ee,an),E(z,ee)};W(qt,z=>{d(n).length>0&&z(fi)})}var Di=b(ui,2),qe=v(Di);{var he=z=>{var ee=sZ();E(z,ee)},K=z=>{var ee=aZ(),$e=v(ee),Ye=v($e);{var ge=Ti=>{var Pe=oZ(),Ge=b(Et(Pe)),Ht=v(Ge);V(()=>F(Ht,t().id)),E(Ti,Pe)},ve=Ti=>{var Pe=sa("No view selected. Ask a general sheDB view question.");E(Ti,Pe)};W(Ye,Ti=>{t()?Ti(ge):Ti(ve,-1)})}var vt=b($e,2);pi(vt,17,()=>Ni,on,(Ti,Pe)=>{var Ge=rZ(),Ht=v(Ge);V(()=>F(Ht,d(Pe))),q("click",Ge,()=>Cn(d(Pe))),E(Ti,Ge)}),E(z,ee)};W(qe,z=>{d(gt)?d(n).length===0&&d(s)===null&&z(K,1):z(he)})}var ae=b(qe,2);pi(ae,17,()=>d(n),on,(z,ee,$e)=>{var Ye=fZ(),ge=v(Ye);{var ve=Ti=>{var Pe=lZ(),Ge=v(Pe);V(()=>F(Ge,d(ee).content)),E(Ti,Pe)},vt=Ti=>{const Pe=wt(()=>Ue(d(ee).content)),Ge=wt(()=>dt(d(Pe)));var Ht=hZ(),Je=Et(Ht);{var bt=Oe=>{var Ee=cE();pi(Ee,21,()=>d(ee).toolEvents,on,(zt,Lt)=>{var Ke=Vs(),Vt=Et(Ke);{var it=Fe=>{var We=aE(),Be=b(v(We)),Pt=v(Be);V(ye=>F(Pt,ye),[()=>d(Lt).name.replace(/_/g," ")]),E(Fe,We)},Te=Fe=>{var We=lE(),Be=b(v(We)),Pt=v(Be);V(ye=>F(Pt,ye),[()=>d(Lt).name.replace(/_/g," ")]),E(Fe,We)};W(Vt,Fe=>{d(Lt).type==="tool_call"?Fe(it):Fe(Te,-1)})}E(zt,Ke)}),E(Oe,Ee)};W(Je,Oe=>{var Ee;(Ee=d(ee).toolEvents)!=null&&Ee.length&&Oe(bt)})}var Zt=b(Je,2),G=v(Zt);pi(G,17,()=>d(Pe),on,(Oe,Ee,zt)=>{var Lt=Vs(),Ke=Et(Lt);{var Vt=Te=>{var Fe=dE();sc(Fe,()=>bi(d(Ee).text),!0),E(Te,Fe)},it=Te=>{const Fe=wt(()=>`${$e}:${zt}`),We=wt(()=>Tt(d(Ee).text)),Be=wt(()=>d(p).has(d(Fe))),Pt=wt(()=>d(Ee).lang==="filter");var ye=dZ(),nt=v(ye),_t=v(nt),mt=v(_t),Ze=b(_t,2),Gt=v(Ze),ni=b(nt,2);let cn;var Qi=v(ni),En=v(Qi);sc(En,()=>It(d(Ee).text,d(Ee).lang??""),!0);var Jn=b(Qi,2);{var Gi=gi=>{var bn=cZ(),ln=v(bn);V(()=>F(ln,d(Be)?"▲ collapse":"▼ expand")),q("click",bn,()=>Nt(d(Fe))),E(gi,bn)};W(Jn,gi=>{d(We)&&gi(Gi)})}V(()=>{F(mt,d(Pt)?"filter":d(Ee).lang),cn=Rt(ni,1,"code-body svelte-1twuiul",null,cn,{collapsed:d(We)&&!d(Be)})}),q("click",Gt,()=>Ii(d(Ee).text)),E(Te,ye)};W(Ke,Te=>{d(Ee).type==="text"?Te(Vt):Te(it,-1)})}E(Oe,Lt)});var ne=b(G,2);{var Ve=Oe=>{var Ee=uZ(),zt=v(Ee),Lt=v(zt);V(Ke=>F(Lt,Ke),[()=>ri(d(Ge))]),q("click",zt,()=>e.onApplyView(d(Ge))),E(Oe,Ee)},Qe=wt(()=>Ot(d(Ge))&&e.onApplyView);W(ne,Oe=>{d(Qe)&&Oe(Ve)})}E(Ti,Ht)};W(ge,Ti=>{d(ee).role==="user"?Ti(ve):Ti(vt,-1)})}V(()=>Rt(Ye,1,`message ${d(ee).role??""}`,"svelte-1twuiul")),E(z,Ye)});var Ce=b(ae,2);{var Ne=z=>{var ee=cE();pi(ee,21,()=>d(ue),on,($e,Ye)=>{var ge=Vs(),ve=Et(ge);{var vt=Pe=>{var Ge=aE(),Ht=b(v(Ge)),Je=v(Ht);V(bt=>F(Je,bt),[()=>d(Ye).name.replace(/_/g," ")]),E(Pe,Ge)},Ti=Pe=>{var Ge=lE(),Ht=b(v(Ge)),Je=v(Ht);V(bt=>F(Je,bt),[()=>d(Ye).name.replace(/_/g," ")]),E(Pe,Ge)};W(ve,Pe=>{d(Ye).type==="tool_call"?Pe(vt):Pe(Ti,-1)})}E($e,ge)}),E(z,ee)};W(Ce,z=>{d(ue).length>0&&z(Ne)})}var ot=b(Ce,2);{var R=z=>{var ee=gZ(),$e=v(ee),Ye=v($e),ge=v(Ye);V(()=>F(ge,A[d(P)])),E(z,ee)};W(ot,z=>{d(a)&&d(s)===null&&d(ue).length===0&&z(R)})}var Q=b(ot,2);{var Y=z=>{var ee=_Z(),$e=v(ee);pi($e,21,()=>De(d(s)),on,(Ye,ge)=>{var ve=Vs(),vt=Et(ve);{var Ti=Ge=>{var Ht=dE();sc(Ht,()=>bi(d(ge).text),!0),E(Ge,Ht)},Pe=Ge=>{var Ht=pZ(),Je=v(Ht),bt=v(Je),Zt=v(bt),G=b(Je,2),ne=v(G);sc(ne,()=>It(d(ge).text,d(ge).lang??""),!0),V(()=>F(Zt,d(ge).lang)),E(Ge,Ht)};W(vt,Ge=>{d(ge).type==="text"?Ge(Ti):Ge(Pe,-1)})}E(Ye,ve)}),E(z,ee)};W(Q,z=>{d(s)!==null&&z(Y)})}Ds(Di,z=>me=z,()=>me);var fe=b(Di,2);{var _e=z=>{var ee=mZ(),$e=v(ee);V(()=>F($e,d(c))),E(z,ee)};W(fe,z=>{d(c)&&z(_e)})}var $=b(fe,2),Z=v($),ie=v(Z),Se=b(Z,2),pt=v(Se),Ae=b(Se,2),Ie=v(Ae),st=b(Ae,2),Dt=v(st),St=b($,2),oi=v(St);{var ti=z=>{var ee=vZ();let $e;var Ye=b(v(ee),2),ge=v(Ye),ve=b(Ye,2),vt=v(ve);V(()=>{$e=Rt(ee,1,"file-chip svelte-1twuiul",null,$e,{inactive:!d(le)}),F(ge,t().id),Hi(ve,"title",d(le)?"Remove from context":"Re-add to context"),F(vt,d(le)?"×":"+")}),q("click",ve,()=>y(le,!d(le))),E(z,ee)};W(oi,z=>{t()&&z(ti)})}var se=b(oi,2);pi(se,17,()=>d(J),on,(z,ee,$e)=>{const Ye=wt(()=>Mi(d(ee).name));var ge=bZ(),ve=v(ge),vt=v(ve),Ti=b(ve,2),Pe=v(Ti),Ge=b(Ti,2);V((Ht,Je)=>{Rt(ve,1,`badge badge-${Ht??""}`,"svelte-1twuiul"),F(vt,Je),F(Pe,d(ee).name)},[()=>d(Ye).toLowerCase(),()=>Ci(d(Ye))]),q("click",Ge,()=>ai($e)),E(z,ge)});var ke=b(se,2),rt=b(ke,2);Ds(rt,z=>He=z,()=>He);var kt=b(St,2);let ft;var Xe=v(kt);let Ft;var li=v(Xe);Ds(li,z=>at=z,()=>at);var yi=b(Xe,2);{var Ei=z=>{var ee=yZ();q("click",ee,Ri),E(z,ee)},fn=z=>{var ee=wZ();V($e=>ee.disabled=$e,[()=>!d(r).trim()||!d(gt)]),q("click",ee,Pi),E(z,ee)};W(yi,z=>{d(a)?z(Ei):z(fn,-1)})}var xn=b(kt,2);{var un=z=>{var ee=LZ(),$e=v(ee),Ye=v($e),ge=b($e,2);{var ve=Ge=>{var Ht=CZ();pi(Ht,21,()=>d(f),on,(Je,bt)=>{var Zt=SZ(),G=v(Zt),ne={};V(()=>{F(G,d(bt)),ne!==(ne=d(bt))&&(Zt.value=(Zt.__value=d(bt))??"")}),E(Je,Zt)}),V(()=>Ht.disabled=d(a)),Ho(Ht,()=>d(g),Je=>y(g,Je)),E(Ge,Ht)},vt=Ge=>{var Ht=xZ(),Je=v(Ht);V(()=>F(Je,d(g)||d(u).model)),E(Ge,Ht)};W(ge,Ge=>{d(f).length>0?Ge(ve):Ge(vt,-1)})}var Ti=b(ge,2);{var Pe=Ge=>{var Ht=kZ();q("click",Ht,Oi),E(Ge,Ht)};W(Ti,Ge=>{d(u).provider==="ollama"&&Ge(Pe)})}V(()=>F(Ye,d(u).provider)),E(z,ee)};W(xn,z=>{d(gt)&&d(u)&&z(un)})}var Li=b(Ut,2);{var gn=z=>{var ee=FZ(),$e=v(ee),Ye=v($e),ge=v(Ye),ve=v(ge),vt=b(ge,2),Ti=b(Ye,2),Pe=v(Ti);{var Ge=bt=>{var Zt=IZ();E(bt,Zt)},Ht=bt=>{var Zt=DZ(),G=v(Zt);V(()=>F(G,d(k))),E(bt,Zt)},Je=bt=>{var Zt=OZ(),G=v(Zt);{var ne=Te=>{var Fe=EZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).version)),E(Te,Fe)};W(G,Te=>{d(m).version&&Te(ne)})}var Ve=b(G,2);{var Qe=Te=>{var Fe=TZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).details.family)),E(Te,Fe)};W(Ve,Te=>{var Fe;(Fe=d(m).details)!=null&&Fe.family&&Te(Qe)})}var Oe=b(Ve,2);{var Ee=Te=>{var Fe=PZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).details.parameter_size)),E(Te,Fe)};W(Oe,Te=>{var Fe;(Fe=d(m).details)!=null&&Fe.parameter_size&&Te(Ee)})}var zt=b(Oe,2);{var Lt=Te=>{var Fe=MZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).details.quantization_level)),E(Te,Fe)};W(zt,Te=>{var Fe;(Fe=d(m).details)!=null&&Fe.quantization_level&&Te(Lt)})}var Ke=b(zt,2);{var Vt=Te=>{var Fe=RZ(),We=b(Et(Fe),2);pi(We,21,()=>d(m).running,on,(Be,Pt)=>{var ye=NZ(),nt=v(ye);V(_t=>F(nt,`${d(Pt).name??""} · ${_t??""} VRAM`),[()=>Fi(d(Pt).size_vram)]),E(Be,ye)}),E(Te,Fe)},it=Te=>{var Fe=AZ();E(Te,Fe)};W(Ke,Te=>{d(m).running&&d(m).running.length>0?Te(Vt):d(m).running!==null&&Te(it,1)})}E(bt,Zt)};W(Pe,bt=>{d(x)?bt(Ge):d(k)?bt(Ht,1):d(m)&&bt(Je,2)})}V(()=>{var bt;return F(ve,`Ollama · ${(d(g)||((bt=d(u))==null?void 0:bt.model))??""}`)}),q("click",ee,()=>y(w,!1)),q("click",$e,bt=>bt.stopPropagation()),q("click",vt,()=>y(w,!1)),E(z,ee)};W(Li,z=>{d(w)&&z(gn)})}V(z=>{F(Dt,z),ft=Rt(kt,1,"input-row svelte-1twuiul",null,ft,{"drag-over":d(we)}),Ft=Rt(Xe,1,"textarea-wrap svelte-1twuiul",null,Ft,{loading:d(a)}),Hi(li,"placeholder",d(gt)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),li.disabled=d(a)||!d(gt)},[()=>Fi(d(Ct))]),Is(ie,()=>d(j),z=>y(j,z)),Is(pt,()=>d(H),z=>y(H,z)),Is(Ie,()=>d(te),z=>y(te,z)),q("click",ke,_i),q("change",rt,Bt),cs("dragover",kt,mi),cs("dragleave",kt,Vi),cs("drop",kt,ii),q("keydown",li,ji),Yt(li,()=>d(r),z=>y(r,z)),E(o,Me),Rs()}Ks(["click","change","keydown"]);var BZ=T('<div class="me svelte-1pxdb1"></div>');function gS(o,e){Ns(e,!0);let t=Cf(e,"value",15,""),i=Cf(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()),$n(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=BZ();Ds(a,c=>n=c,()=>n),E(o,a),Rs()}var zZ=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),VZ=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>'),jZ=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>'),$Z=T('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),UZ=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),qZ=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>'),GZ=T('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),KZ=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>'),ZZ=T('<span class="badge-error svelte-rrt0o">error</span>'),XZ=T('<span class="badge-ok svelte-rrt0o"> </span>'),YZ=T('<pre class="result-error svelte-rrt0o"> </pre>'),JZ=T('<pre class="result-json svelte-rrt0o"> </pre>'),QZ=T('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),eX=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>'),tX=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),iX=T('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),nX=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>'),sX=T('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function oX(o,e){Ns(e,!0);const t=he=>{var K=zZ(),ae=Et(K);Ds(Jf(ae,{}),Ce=>Ci=Ce,()=>Ci),E(he,K)};let i=M(wi([])),n=M(null),s=M("{}"),r=M(!1),a=M(null);const c="she-db-selected-view";let u=M(wi([])),f=M(wi(localStorage.getItem(c))),g=M("#"),p=M("// emit(this.someProperty)"),w=M(""),m=M(""),x=M(!1),k=M(!1),D=M(null),P=M(!1),A=M(null),j=M("she/db/view/");const H="she-db-panel";let te=M(wi(localStorage.getItem(H)??"docs")),J=M(""),le=M(!1),we=M(null),He=M(""),ue=M(!1),et=M(null);const at="she-db-sidebar-width";let me=M(wi(parseInt(localStorage.getItem(at)??"220",10))),lt=!1,gt=0,Ct=0;const Le="she-db-chat-width",xt="she-db-chat-open";let Ue=M(localStorage.getItem(xt)==="true"),De=M(wi(parseInt(localStorage.getItem(Le)??"320",10))),dt=!1,Ot=0,ri=0;const Wt=wt(()=>d(f)?{id:d(f),filter:d(g),map:d(p),reduce:d(w)}:null);function Tt(he){he.filter!==void 0&&y(g,he.filter,!0),he.map!==void 0&&y(p,he.map,!0),he.reduce!==void 0&&y(w,he.reduce,!0)}$n(()=>{localStorage.setItem(xt,String(d(Ue)))}),$n(()=>{localStorage.setItem(H,d(te))}),$n(()=>{d(f)?localStorage.setItem(c,d(f)):localStorage.removeItem(c)});function Nt(he){lt=!0,gt=he.clientX,Ct=d(me),he.preventDefault()}function It(he){lt&&y(me,Math.max(140,Math.min(500,Ct+he.clientX-gt)),!0),dt&&y(De,Math.max(240,Math.min(600,ri-(he.clientX-Ot))),!0)}function bi(){lt&&(lt=!1,localStorage.setItem(at,String(d(me)))),dt&&(dt=!1,localStorage.setItem(Le,String(d(De))))}function hi(he){dt=!0,Ot=he.clientX,ri=d(De),he.preventDefault()}async function Ii(){try{y(i,await RR(),!0)}catch{}}async function Oi(){try{y(u,await AR(),!0)}catch{}}async function Fi(he){y(n,he,!0),y(a,null),y(r,!0);try{const K=await C7(he);y(s,JSON.stringify(K,null,2),!0)}catch(K){y(a,K instanceof Error?K.message:String(K),!0)}finally{y(r,!1)}}async function Mi(){if(d(n)){y(a,null);try{const he=JSON.parse(d(s));await AD(d(n),he)}catch(he){y(a,he instanceof Error?he.message:String(he),!0)}}}let Ci;async function ai(){if(d(n)&&await Ci.show(`Delete document "${d(n)}"?`,{confirm:"Delete",danger:!0}))try{await x7(d(n)),y(n,null),y(s,"{}")}catch(he){y(a,he instanceof Error?he.message:String(he),!0)}}async function _i(){const he=d(J).trim();if(he){y(we,null);try{await AD(he,{}),y(le,!1),y(J,""),await Fi(he)}catch(K){y(we,K instanceof Error?K.message:String(K),!0)}}}async function tt(he){y(f,he,!0),y(A,null),y(P,!0),y(D,null);try{const K=await k7(he);y(g,K.filter??"",!0),y(p,K.map,!0),y(w,K.reduce??"",!0),y(m,K.description??"",!0),y(x,K.mqttpub??!1,!0),y(k,K.retain??!1,!0),y(D,await hS(he).catch(()=>null),!0)}catch(K){y(A,K instanceof Error?K.message:String(K),!0)}finally{y(P,!1)}}async function Bt(){if(d(f)){y(A,null);try{const he={map:d(p)};d(g).trim()&&(he.filter=d(g).trim()),d(w).trim()&&(he.reduce=d(w).trim()),d(m).trim()&&(he.description=d(m).trim()),d(x)&&(he.mqttpub=!0),d(k)&&(he.retain=!0),await OD(d(f),he)}catch(he){y(A,he instanceof Error?he.message:String(he),!0)}}}async function ii(){if(d(f))try{y(D,await hS(d(f)),!0)}catch(he){y(A,he instanceof Error?he.message:String(he),!0)}}async function mi(){if(d(f)&&await Ci.show(`Delete view "${d(f)}"?`,{confirm:"Delete",danger:!0}))try{await L7(d(f)),y(f,null),y(g,""),y(p,"// emit(this.someProperty)"),y(w,""),y(m,""),y(x,!1),y(k,!1),y(D,null)}catch(he){y(A,he instanceof Error?he.message:String(he),!0)}}async function Vi(){if(!d(He).trim())return;const he=d(He).trim();y(et,null);try{await OD(he,{map:"// emit(this.someProperty)"}),y(ue,!1),y(He,""),await Oi(),await tt(he)}catch(K){y(et,K instanceof Error?K.message:String(K),!0)}}let Pi=M(""),Ri=M(""),ji=wt(()=>[...d(i)].filter(he=>!d(Pi)||he.toLowerCase().includes(d(Pi).toLowerCase())).sort()),an=wt(()=>[...d(u)].filter(he=>!d(Ri)||he.toLowerCase().includes(d(Ri).toLowerCase())).sort());ao(()=>{Ii(),Oi().then(()=>{d(f)&&d(u).includes(d(f))?tt(d(f)):y(f,null)}),Dl().then(Ne=>{const ot=Ne.dbPrefix||"she/db/",R=ot.endsWith("/")?ot:ot+"/";y(j,R+"view/")}).catch(()=>{});const he=kr("db:ids",Ne=>{y(i,Ne.ids??[],!0)}),K=kr("db:viewIds",Ne=>{y(u,Ne.ids??[],!0)}),ae=kr("db:change",async Ne=>{const ot=Ne.id;d(n)===ot&&(Ne.doc===null?(y(n,null),y(s,"{}")):y(s,JSON.stringify(Ne.doc,null,2),!0))}),Ce=kr("db:viewUpdate",async Ne=>{const ot=Ne.id;d(f)===ot&&y(D,await hS(ot).catch(()=>null),!0)});return()=>{he(),K(),ae(),Ce()}});var Ni=sX(),Cn=v(Ni),Me=v(Cn);let Ut;var ui=b(Me,2);let ki;var ze=b(ui,2);{var qt=he=>{var K=VZ();let ae;V(()=>{ae=Rt(K,1,"ai-toggle svelte-rrt0o",null,ae,{"ai-open":d(Ue)}),Hi(K,"title",d(Ue)?"Close AI assistant":"Open AI assistant")}),q("click",K,()=>y(Ue,!d(Ue))),E(he,K)};W(ze,he=>{d(te)==="views"&&he(qt)})}var fi=b(Cn,2);{var Di=he=>{var K=qZ(),ae=v(K);let Ce;var Ne=v(ae),ot=v(Ne),R=b(Ne,2);{var Q=Ae=>{var Ie=jZ(),st=Et(Ie),Dt=v(st),St=b(Dt,2),oi=b(st,2);{var ti=se=>{var ke=uE(),rt=v(ke);V(()=>F(rt,d(we))),E(se,ke)};W(oi,se=>{d(we)&&se(ti)})}q("keydown",Dt,se=>se.key==="Enter"&&_i()),Yt(Dt,()=>d(J),se=>y(J,se)),q("click",St,_i),E(Ae,Ie)};W(R,Ae=>{d(le)&&Ae(Q)})}var Y=b(R,2),fe=v(Y),_e=b(Y,2);pi(_e,20,()=>d(ji),Ae=>Ae,(Ae,Ie)=>{var st=hE();let Dt;var St=v(st);V(()=>{Dt=Rt(st,1,"flat-item svelte-rrt0o",null,Dt,{"active-item":d(n)===Ie}),F(St,Ie)}),q("click",st,()=>Fi(Ie)),E(Ae,st)});var $=b(ae,2),Z=b($,2),ie=v(Z);{var Se=Ae=>{var Ie=UZ(),st=Et(Ie),Dt=v(st),St=v(Dt),oi=b(Dt,2),ti=b(oi,2),se=b(st,2);{var ke=Xe=>{var Ft=fE(),li=v(Ft);V(()=>F(li,d(a))),E(Xe,Ft)};W(se,Xe=>{d(a)&&Xe(ke)})}var rt=b(se,2);{var kt=Xe=>{var Ft=gE();E(Xe,Ft)},ft=Xe=>{var Ft=$Z(),li=v(Ft);gS(li,{language:"json",get value(){return d(s)},set value(yi){y(s,yi,!0)}}),E(Xe,Ft)};W(rt,Xe=>{d(r)?Xe(kt):Xe(ft,-1)})}V(()=>F(St,d(n))),q("click",oi,Mi),q("click",ti,ai),E(Ae,Ie)},pt=Ae=>{t(Ae)};W(ie,Ae=>{d(n)?Ae(Se):Ae(pt,-1)})}V(()=>Ce=Fo(ae,"",Ce,{width:`${d(me)??""}px`})),q("click",ot,()=>{y(le,!d(le)),y(we,null)}),Yt(fe,()=>d(Pi),Ae=>y(Pi,Ae)),q("mousedown",$,Nt),E(he,K)},qe=he=>{var K=nX(),ae=v(K);let Ce;var Ne=v(ae),ot=v(Ne),R=b(Ne,2);{var Q=st=>{var Dt=GZ(),St=Et(Dt),oi=v(St),ti=b(oi,2),se=b(St,2);{var ke=rt=>{var kt=uE(),ft=v(kt);V(()=>F(ft,d(et))),E(rt,kt)};W(se,rt=>{d(et)&&rt(ke)})}q("keydown",oi,rt=>rt.key==="Enter"&&Vi()),Yt(oi,()=>d(He),rt=>y(He,rt)),q("click",ti,Vi),E(st,Dt)};W(R,st=>{d(ue)&&st(Q)})}var Y=b(R,2),fe=v(Y),_e=b(Y,2);pi(_e,20,()=>d(an),st=>st,(st,Dt)=>{var St=hE();let oi;var ti=v(St);V(()=>{oi=Rt(St,1,"flat-item svelte-rrt0o",null,oi,{"active-item":d(f)===Dt}),F(ti,Dt)}),q("click",St,()=>tt(Dt)),E(st,St)});var $=b(ae,2),Z=b($,2),ie=v(Z);{var Se=st=>{var Dt=tX(),St=Et(Dt),oi=v(St),ti=v(oi),se=b(oi,2),ke=b(se,2),rt=b(ke,2),kt=b(St,2);{var ft=yi=>{var Ei=fE(),fn=v(Ei);V(()=>F(fn,d(A))),E(yi,Ei)};W(kt,yi=>{d(A)&&yi(ft)})}var Xe=b(kt,2);{var Ft=yi=>{var Ei=gE();E(yi,Ei)},li=yi=>{var Ei=eX(),fn=v(Ei),xn=b(v(fn),2),un=v(xn),Li=b(fn,2),gn=b(v(Li),2),z=v(gn),ee=b(Li,2),$e=b(v(ee),2),Ye=v($e);gS(Ye,{language:"javascript",get value(){return d(p)},set value(Qe){y(p,Qe,!0)}});var ge=b(ee,2),ve=b(v(ge),2),vt=v(ve);gS(vt,{language:"javascript",get value(){return d(w)},set value(Qe){y(w,Qe,!0)}});var Ti=b(ge,2),Pe=v(Ti),Ge=v(Pe),Ht=b(Ge,4),Je=b(v(Ht)),bt=v(Je),Zt=b(Pe,2);{var G=Qe=>{var Oe=KZ(),Ee=v(Oe);Is(Ee,()=>d(k),zt=>y(k,zt)),E(Qe,Oe)};W(Zt,Qe=>{d(x)&&Qe(G)})}var ne=b(Ti,2);{var Ve=Qe=>{var Oe=QZ(),Ee=v(Oe),zt=b(v(Ee));{var Lt=Fe=>{var We=ZZ();E(Fe,We)},Ke=Fe=>{var We=XZ(),Be=v(We);V(()=>F(Be,`${d(D).length??0??""} items · rev ${d(D)._rev??""}`)),E(Fe,We)};W(zt,Fe=>{d(D).error?Fe(Lt):Fe(Ke,-1)})}var Vt=b(Ee,2);{var it=Fe=>{var We=YZ(),Be=v(We);V(()=>F(Be,d(D).error)),E(Fe,We)},Te=Fe=>{var We=JZ(),Be=v(We);V(Pt=>F(Be,Pt),[()=>JSON.stringify(d(D).result,null,2)]),E(Fe,We)};W(Vt,Fe=>{d(D).error?Fe(it):Fe(Te,-1)})}E(Qe,Oe)};W(ne,Qe=>{d(D)&&Qe(Ve)})}V(()=>F(bt,`${d(j)??""}${d(f)??""} on every update`)),Yt(un,()=>d(m),Qe=>y(m,Qe)),Yt(z,()=>d(g),Qe=>y(g,Qe)),Is(Ge,()=>d(x),Qe=>y(x,Qe)),E(yi,Ei)};W(Xe,yi=>{d(P)?yi(Ft):yi(li,-1)})}V(()=>F(ti,d(f))),q("click",se,Bt),q("click",ke,ii),q("click",rt,mi),E(st,Dt)},pt=st=>{t(st)};W(ie,st=>{d(f)?st(Se):st(pt,-1)})}var Ae=b(Z,2);{var Ie=st=>{var Dt=iX(),St=Et(Dt),oi=b(St,2);let ti;var se=v(oi);WZ(se,{get currentView(){return d(Wt)},onApplyView:Tt}),V(()=>ti=Fo(oi,"",ti,{width:`${d(De)??""}px`})),q("mousedown",St,hi),E(st,Dt)};W(Ae,st=>{d(Ue)&&st(Ie)})}V(()=>Ce=Fo(ae,"",Ce,{width:`${d(me)??""}px`})),q("click",ot,()=>{y(ue,!d(ue)),y(et,null)}),Yt(fe,()=>d(Ri),st=>y(Ri,st)),q("mousedown",$,Nt),E(he,K)};W(fi,he=>{d(te)==="docs"?he(Di):he(qe,-1)})}V(()=>{Ut=Rt(Me,1,"svelte-rrt0o",null,Ut,{active:d(te)==="docs"}),ki=Rt(ui,1,"svelte-rrt0o",null,ki,{active:d(te)==="views"})}),q("mousemove",Ni,It),q("mouseup",Ni,bi),cs("mouseleave",Ni,bi),q("click",Me,()=>y(te,"docs")),q("click",ui,()=>y(te,"views")),E(o,Ni),Rs()}Ks(["mousemove","mouseup","click","keydown","mousedown"]);var rX=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),aX=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>'),lX=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>'),cX=T('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),dX=T('<span class="device-name svelte-1ua3isv"> </span>'),uX=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>'),hX=T('<li class="empty svelte-1ua3isv">No paired devices</li>'),fX=T('<p class="info svelte-1ua3isv">Loading…</p>'),gX=T('<p class="device-subtitle svelte-1ua3isv"> </p>'),pX=T('<span class="ep-chip svelte-1ua3isv"> </span>'),_X=T('<span class="attr-id svelte-1ua3isv"> </span>'),mX=T('<button class="attr-action-btn svelte-1ua3isv"> </button>'),vX=T('<div class="attr-actions svelte-1ua3isv"></div>'),bX=T('<span class="cmd-sep svelte-1ua3isv">,</span>'),yX=T('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),wX=T('<span class="cmd-id svelte-1ua3isv"> </span>'),SX=T("<!> <!>",1),CX=T('<span class="cmd-list svelte-1ua3isv"></span>'),xX=T(' <span class="cmd-id svelte-1ua3isv"> </span>',1),kX=T('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),LX=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>'),IX=T('<th class="svelte-1ua3isv"> </th>'),DX=T('<td class="svelte-1ua3isv"> </td>'),EX=T('<tr class="svelte-1ua3isv"></tr>'),TX=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),PX=T('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),MX=T('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),NX=T('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),RX=T('<span class="attr-val svelte-1ua3isv"> </span>'),AX=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>'),OX=T('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),FX=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>'),HX=T('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),WX=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>'),BX=T('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),zX=T('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),VX=T('<span class="stream-badge svelte-1ua3isv"> </span>'),jX=T('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),pS=T(' <span class="e-sub svelte-1ua3isv"> </span>',1),$X=T('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),UX=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),qX=T('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),GX=T('<div class="stream-body svelte-1ua3isv"><!></div>'),KX=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 ZX(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(K,ae,Ce,Ne,ot){try{await H7(K,ae,Ce,Ne,ot)}catch(R){console.error("matter command failed",R)}}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(K,ae){const Ce=n[K];return ae.map(Ne=>{const ot=typeof Ne=="number"?Ne:Number(Ne);return{id:ot,name:(Ce==null?void 0:Ce[ot])??null}})}const r={10:"Door Lock",11:"Door Lock Controller",14:"Aggregator",15:"Generic Switch",17:"On/Off Plug-In Unit",18:"Dimmable Plug-In Unit",19:"Pump",20:"On/Off Light Switch",21:"Dimmer Switch",22:"Color Dimmer Switch",23:"Control Bridge",24:"Pump Controller",256:"On/Off Light",257:"Dimmable Light",268:"Extended Color Light",269:"Color Temperature Light",262:"Light Sensor",263:"Occupancy Sensor",514:"Window Covering",515:"Window Covering Controller",768:"Heating/Cooling Unit",769:"Thermostat",770:"Temperature Sensor",771:"Pressure Sensor",772:"Flow Sensor",773:"Humidity Sensor",774:"On/Off Sensor",2112:"Air Quality Sensor"},a={generatedCommandList:65528,acceptedCommandList:65529,eventList:65530,attributeList:65531,featureMap:65532,clusterRevision:65533},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(K){return"0x"+K.toString(16).toUpperCase().padStart(4,"0")}let f=M(wi([])),g=wi(new Map);function p(K){if(K==null)return"—";if(typeof K=="boolean"||typeof K=="number")return String(K);if(typeof K=="string")return K.length>50?K.slice(0,47)+"…":K;const ae=JSON.stringify(K);return ae.length>60?ae.slice(0,57)+"…":ae}function w(K){return K==null?"—":typeof K=="boolean"||typeof K=="number"?String(K):typeof K=="string"?K:JSON.stringify(K)}function m(K){return K!==null&&typeof K=="object"&&!Array.isArray(K)}function x(K){return Array.isArray(K)&&K.length>0&&K.every(m)}function k(K,ae){return!!(ae==="attributeList"||Array.isArray(K)&&K.length===0||m(K)&&Object.keys(K).length===0)}function D(K){return new Date(K).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const P=500,A=20,j=32;let H=0,te=M(wi([])),J=M(!0),le=M(180),we=wt(()=>{const K=Math.max(1,Math.floor((d(le)-j)/A)+1);return d(te).slice(0,K)});function He(K){K.preventDefault();const ae=K.clientY,Ce=d(le);function Ne(R){y(le,Math.max(60,Math.min(600,Ce+ae-R.clientY)),!0)}function ot(){document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",ot)}document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",ot)}let ue=M(null),et=M(!1),at=M(null),me=M(!1),lt=M("passcode"),gt=M(""),Ct=M(""),Le=M(""),xt=M(!1),Ue=M(null),De=M("");const dt="she:matter:selectedNodeId";async function Ot(){try{y(f,await FR(),!0);for(const K of d(f))Xm(K.nodeId).then(ae=>{g.set(K.nodeId,ae)}).catch(()=>{});if(d(f).length>0&&!d(ue)){const K=localStorage.getItem(dt),ae=K&&d(f).find(Ce=>Ce.nodeId===K)?K:d(f)[0].nodeId;ri(ae)}}catch{y(f,[],!0)}}async function ri(K){y(et,!0),y(at,null);try{y(ue,await Xm(K),!0),g.set(K,d(ue)),localStorage.setItem(dt,K)}catch(ae){y(at,ae instanceof Error?ae.message:String(ae),!0)}finally{y(et,!1)}}let Wt;async function Tt(K){var ae;if(await Wt.show(`Unpair device ${K}?`,{confirm:"Unpair",danger:!0}))try{await F7(K),((ae=d(ue))==null?void 0:ae.nodeId)===K&&y(ue,null),await Ot()}catch(Ce){y(at,Ce instanceof Error?Ce.message:String(Ce),!0)}}async function Nt(){y(xt,!0),y(Ue,null);try{let K;d(lt)==="passcode"?(K={passcode:Number(d(gt))},d(Ct)&&(K={...K,discriminator:Number(d(Ct))})):K={pairingCode:d(Le).trim()},d(De).trim()&&(K={...K,discoveryAddress:d(De).trim()}),await O7(K),y(me,!1),y(gt,""),y(Ct,""),y(Le,""),y(De,""),await Ot()}catch(K){y(Ue,K instanceof Error?K.message:String(K),!0)}finally{y(xt,!1)}}ao(()=>{Ot()});const It=kr("matter:deviceList",K=>{if(!Array.isArray(K.devices))return;const ae=K.devices;for(const Ce of ae)g.has(Ce.nodeId)||Xm(Ce.nodeId).then(Ne=>{g.set(Ce.nodeId,Ne)}).catch(()=>{});y(f,ae,!0)}),bi=kr("matter:deviceStatus",K=>{if(K.nodeId===void 0)return;const ae=String(K.nodeId),Ce=!!K.online;y(f,d(f).map(Ne=>Ne.nodeId===ae?{...Ne,online:Ce}:Ne),!0),y(te,[{id:H++,kind:"status",nodeId:ae,online:Ce,ts:Date.now()},...d(te).slice(0,P-1)],!0)}),hi=kr("matter:attr",K=>{const ae=String(K.nodeId),Ce=K.endpointId,Ne=String(K.clusterName),ot=String(K.attrName),R=K.value;if(d(ue)&&d(ue).nodeId===ae){const Y=d(ue).endpoints.find(_e=>_e.endpointId===Ce),fe=Y==null?void 0:Y.clusters.find(_e=>_e.name===Ne);fe&&(fe.attrs[ot]=R)}const Q=g.get(ae);if(Q){const Y=Q.endpoints.find(_e=>_e.endpointId===Ce),fe=Y==null?void 0:Y.clusters.find(_e=>_e.name===Ne);fe&&(fe.attrs[ot]=R)}y(te,[{id:H++,kind:"attr",nodeId:ae,endpointId:Ce,clusterName:Ne,attrName:ot,value:R,ts:K.ts??Date.now()},...d(te).slice(0,P-1)],!0)});Wy(()=>{It(),bi(),hi()});var Ii=KX(),Oi=Et(Ii);Ds(Jf(Oi,{}),K=>Wt=K,()=>Wt);var Fi=b(Oi,2),Mi=v(Fi),Ci=v(Mi),ai=v(Ci),_i=b(v(ai),2),tt=b(ai,2);{var Bt=K=>{var ae=lX(),Ce=v(ae),Ne=v(Ce);let ot;var R=b(Ne,2);let Q;var Y=b(Ce,2);{var fe=Ie=>{var st=rX(),Dt=Et(st),St=b(v(Dt)),oi=b(Dt,2),ti=b(v(oi));Yt(St,()=>d(gt),se=>y(gt,se)),Yt(ti,()=>d(Ct),se=>y(Ct,se)),E(Ie,st)},_e=Ie=>{var st=aX(),Dt=b(v(st));Yt(Dt,()=>d(Le),St=>y(Le,St)),E(Ie,st)};W(Y,Ie=>{d(lt)==="passcode"?Ie(fe):Ie(_e,-1)})}var $=b(Y,2),Z=b(v($)),ie=b($,2);{var Se=Ie=>{var st=pE(),Dt=v(st);V(()=>F(Dt,d(Ue))),E(Ie,st)};W(ie,Ie=>{d(Ue)&&Ie(Se)})}var pt=b(ie,2),Ae=v(pt);V(()=>{ot=Rt(Ne,1,"svelte-1ua3isv",null,ot,{active:d(lt)==="passcode"}),Q=Rt(R,1,"svelte-1ua3isv",null,Q,{active:d(lt)==="pairingCode"}),pt.disabled=d(xt),F(Ae,d(xt)?"Commissioning…":"Commission")}),q("click",Ne,()=>y(lt,"passcode")),q("click",R,()=>y(lt,"pairingCode")),Yt(Z,()=>d(De),Ie=>y(De,Ie)),q("click",pt,Nt),E(K,ae)};W(tt,K=>{d(me)&&K(Bt)})}var ii=b(tt,2),mi=v(ii);pi(mi,17,()=>d(f),K=>K.nodeId,(K,ae)=>{var Ce=uX();let Ne;var ot=v(Ce),R=v(ot);let Q;var Y=b(R,2),fe=v(Y);{var _e=ie=>{var Se=cX(),pt=Et(Se),Ae=v(pt),Ie=b(pt,2),st=v(Ie);V(()=>{F(Ae,d(ae).name),F(st,`#${d(ae).nodeId??""}`)}),E(ie,Se)},$=ie=>{var Se=dX(),pt=v(Se);V(()=>F(pt,`Node ${d(ae).nodeId??""}`)),E(ie,Se)};W(fe,ie=>{d(ae).name?ie(_e):ie($,-1)})}var Z=b(ot,2);V(()=>{var ie;Ne=Rt(Ce,1,"svelte-1ua3isv",null,Ne,{selected:((ie=d(ue))==null?void 0:ie.nodeId)===d(ae).nodeId}),Q=Rt(R,1,"status-dot svelte-1ua3isv",null,Q,{online:d(ae).online})}),q("click",ot,()=>ri(d(ae).nodeId)),q("click",Z,()=>Tt(d(ae).nodeId)),E(K,Ce)});var Vi=b(mi,2);{var Pi=K=>{var ae=hX();E(K,ae)};W(Vi,K=>{d(f).length===0&&K(Pi)})}var Ri=b(Ci,2),ji=v(Ri);{var an=K=>{var ae=fX();E(K,ae)},Ni=K=>{var ae=pE(),Ce=v(ae);V(()=>F(Ce,d(at))),E(K,ae)},Cn=K=>{var ae=BX(),Ce=Et(ae),Ne=v(Ce),ot=v(Ne),R=b(Ne,2);{var Q=$=>{var Z=gX(),ie=v(Z);V(()=>F(ie,d(ue).subtitle)),E($,Z)};W(R,$=>{d(ue).subtitle&&$(Q)})}var Y=b(R,2),fe=v(Y),_e=b(Ce,2);pi(_e,17,()=>d(ue).endpoints,$=>$.endpointId,($,Z)=>{var ie=WX(),Se=v(ie),pt=v(Se),Ae=b(pt),Ie=v(Ae),st=b(Ae,2);pi(st,21,()=>d(Z).clusters,on,(ti,se)=>{var ke=pX(),rt=v(ke);V(()=>F(rt,d(se).name)),E(ti,ke)});var Dt=b(Se,2);{var St=ti=>{var se=FX(),ke=b(v(se));pi(ke,21,()=>d(Z).clusters,on,(rt,kt)=>{var ft=OX(),Xe=Et(ft),Ft=v(Xe),li=v(Ft),yi=b(Xe,2);pi(yi,17,()=>Object.entries(d(kt).attrs),on,(Ei,fn)=>{var xn=wt(()=>NL(d(fn),2));let un=()=>d(xn)[0],Li=()=>d(xn)[1];var gn=Vs(),z=Et(gn);{var ee=Ye=>{const ge=wt(()=>{var We;return(We=t[d(kt).name])==null?void 0:We[un()]}),ve=wt(()=>(un()==="acceptedCommandList"||un()==="generatedCommandList")&&Array.isArray(Li())),vt=wt(()=>{var We;return((We=c[d(kt).name])==null?void 0:We[un()])??a[un()]});var Ti=AX(),Pe=v(Ti),Ge=v(Pe),Ht=v(Ge),Je=b(Ge);{var bt=We=>{var Be=_X(),Pt=v(Be);V(ye=>F(Pt,`(${ye??""})`),[()=>u(d(vt))]),E(We,Be)};W(Je,We=>{d(vt)!==void 0&&We(bt)})}var Zt=b(Pe),G=v(Zt);{var ne=We=>{var Be=vX();pi(Be,21,()=>d(ge),on,(Pt,ye)=>{var nt=mX(),_t=v(nt);V(()=>F(_t,d(ye).label)),q("click",nt,()=>i(d(ue).nodeId,d(Z).endpointId,d(kt).name,d(ye).command,d(ye).args)),E(Pt,nt)}),E(We,Be)};W(G,We=>{d(ge)&&We(ne)})}var Ve=b(Zt),Qe=v(Ve);{var Oe=We=>{var Be=CX();pi(Be,21,()=>s(d(kt).name,Li()),on,(Pt,ye,nt)=>{var _t=SX(),mt=Et(_t);{var Ze=Qi=>{var En=bX();E(Qi,En)};W(mt,Qi=>{nt>0&&Qi(Ze)})}var Gt=b(mt,2);{var ni=Qi=>{var En=yX(),Jn=Et(En),Gi=v(Jn),gi=b(Jn),bn=v(gi);V(()=>{F(Gi,d(ye).name),F(bn,`(${d(ye).id??""})`)}),E(Qi,En)},cn=Qi=>{var En=wX(),Jn=v(En);V(()=>F(Jn,d(ye).id)),E(Qi,En)};W(Gt,Qi=>{d(ye).name?Qi(ni):Qi(cn,-1)})}E(Pt,_t)}),E(We,Be)},Ee=We=>{var Be=LX(),Pt=b(v(Be));pi(Pt,21,Li,on,(ye,nt)=>{const _t=wt(()=>d(nt)),mt=wt(()=>d(_t).deviceType),Ze=wt(()=>r[d(mt)]);var Gt=kX(),ni=v(Gt),cn=v(ni);{var Qi=gi=>{var bn=xX(),ln=Et(bn),rs=b(ln),co=v(rs);V(qo=>{F(ln,`${d(Ze)??""} `),F(co,`(${qo??""})`)},[()=>u(d(mt))]),E(gi,bn)},En=gi=>{var bn=sa();V(ln=>F(bn,ln),[()=>u(d(mt))]),E(gi,bn)};W(cn,gi=>{d(Ze)?gi(Qi):gi(En,-1)})}var Jn=b(ni),Gi=v(Jn);V(gi=>F(Gi,gi),[()=>w(d(_t).revision)]),E(ye,Gt)}),E(We,Be)},zt=wt(()=>un()==="deviceTypeList"&&Array.isArray(Li())),Lt=We=>{const Be=wt(()=>[...new Set(Li().flatMap(mt=>Object.keys(mt)))]);var Pt=TX(),ye=v(Pt),nt=v(ye);pi(nt,21,()=>d(Be),on,(mt,Ze)=>{var Gt=IX(),ni=v(Gt);V(()=>F(ni,d(Ze))),E(mt,Gt)});var _t=b(ye);pi(_t,21,Li,on,(mt,Ze)=>{var Gt=EX();pi(Gt,21,()=>d(Be),on,(ni,cn)=>{var Qi=DX(),En=v(Qi);V(Jn=>F(En,Jn),[()=>w(d(Ze)[d(cn)])]),E(ni,Qi)}),E(mt,Gt)}),E(We,Pt)},Ke=wt(()=>x(Li())),Vt=We=>{var Be=MX(),Pt=v(Be);pi(Pt,21,()=>Object.entries(Li()),on,(ye,nt)=>{var _t=wt(()=>NL(d(nt),2));let mt=()=>d(_t)[0],Ze=()=>d(_t)[1];var Gt=PX(),ni=v(Gt),cn=v(ni),Qi=b(ni),En=v(Qi);V(Jn=>{F(cn,mt()),F(En,Jn)},[()=>w(Ze())]),E(ye,Gt)}),E(We,Be)},it=wt(()=>m(Li())),Te=We=>{var Be=NX(),Pt=v(Be);V(()=>{Hi(Be,"href",Li()),F(Pt,Li())}),E(We,Be)},Fe=We=>{var Be=RX(),Pt=v(Be);V(ye=>F(Pt,ye),[()=>w(Li())]),E(We,Be)};W(Qe,We=>{d(ve)?We(Oe):d(zt)?We(Ee,1):d(Ke)?We(Lt,2):d(it)?We(Vt,3):(un()==="productUrl"||un()==="productURL")&&typeof Li()=="string"?We(Te,4):We(Fe,-1)})}V(()=>{Hi(Pe,"title",un()),F(Ht,un())}),E(Ye,Ti)},$e=wt(()=>!k(Li(),un()));W(z,Ye=>{d($e)&&Ye(ee)})}E(Ei,gn)}),V(()=>F(li,d(kt).name)),E(rt,ft)}),E(ti,se)},oi=ti=>{var se=HX();E(ti,se)};W(Dt,ti=>{d(Z).clusters.length>0?ti(St):ti(oi,-1)})}V(()=>{F(pt,`${d(Z).name??`Endpoint ${d(Z).endpointId}`??""} `),F(Ie,`ep${d(Z).endpointId??""}`)}),E($,ie)}),V(()=>{F(ot,d(ue).name??`Node ${d(ue).nodeId}`),F(fe,`Node ID: ${d(ue).nodeId??""}`)}),E(K,ae)},Me=K=>{var ae=zX();E(K,ae)};W(ji,K=>{d(et)?K(an):d(at)?K(Ni,1):d(ue)?K(Cn,2):K(Me,-1)})}var Ut=b(Mi,2),ui=v(Ut),ki=b(ui,2),ze=b(v(ki),2);{var qt=K=>{var ae=VX(),Ce=v(ae);V(()=>F(Ce,d(te).length)),E(K,ae)};W(ze,K=>{!d(J)&&d(te).length>0&&K(qt)})}var fi=b(ze,2),Di=v(fi),qe=b(ki,2);{var he=K=>{var ae=GX(),Ce=v(ae);{var Ne=R=>{var Q=jX();E(R,Q)},ot=R=>{var Q=Vs(),Y=Et(Q);pi(Y,17,()=>d(we),fe=>fe.id,(fe,_e)=>{const $=wt(()=>{var St,oi;return((St=g.get(d(_e).nodeId))==null?void 0:St.name)??((oi=d(f).find(ti=>ti.nodeId===d(_e).nodeId))==null?void 0:oi.name)??null}),Z=wt(()=>{var St,oi;return d(_e).endpointId!==void 0?((oi=(St=g.get(d(_e).nodeId))==null?void 0:St.endpoints.find(ti=>ti.endpointId===d(_e).endpointId))==null?void 0:oi.name)??null:null}),ie=wt(()=>d(_e).attrName??d(_e).clusterName);var Se=qX(),pt=v(Se),Ae=v(pt),Ie=b(pt,2);{var st=St=>{var oi=$X(),ti=b(Et(oi),2),se=v(ti),ke=b(se);{var rt=Ft=>{var li=pS(),yi=b(Et(li)),Ei=v(yi);V(()=>F(Ei,`(#${d(_e).nodeId??""})`)),E(Ft,li)};W(ke,Ft=>{d($)&&Ft(rt)})}var kt=b(ti,2);let ft;var Xe=v(kt);V(()=>{F(se,d($)??`#${d(_e).nodeId}`),ft=Rt(kt,1,"e-val svelte-1ua3isv",null,ft,{"e-online":d(_e).online,"e-offline":!d(_e).online}),F(Xe,d(_e).online?"online":"offline")}),E(St,oi)},Dt=St=>{var oi=UX(),ti=b(Et(oi),2),se=v(ti),ke=b(se);{var rt=Li=>{var gn=pS(),z=b(Et(gn)),ee=v(z);V(()=>F(ee,`(#${d(_e).nodeId??""})`)),E(Li,gn)};W(ke,Li=>{d($)&&Li(rt)})}var kt=b(ti,2),ft=v(kt),Xe=b(ft);{var Ft=Li=>{var gn=pS(),z=b(Et(gn)),ee=v(z);V(()=>F(ee,`(ep ${d(_e).endpointId??""})`)),E(Li,gn)};W(Xe,Li=>{d(Z)&&Li(Ft)})}var li=b(kt,2),yi=v(li),Ei=b(li,2),fn=v(Ei),xn=b(Ei,2),un=v(xn);V(Li=>{F(se,d($)??`#${d(_e).nodeId}`),F(ft,d(Z)??`ep${d(_e).endpointId}`),F(yi,d(_e).clusterName),F(fn,d(ie)),F(un,Li)},[()=>p(d(_e).value)]),E(St,oi)};W(Ie,St=>{d(_e).kind==="status"?St(st):St(Dt,-1)})}V(St=>F(Ae,St),[()=>D(d(_e).ts)]),E(fe,Se)}),E(R,Q)};W(Ce,R=>{d(we).length===0?R(Ne):R(ot,-1)})}E(K,ae)};W(qe,K=>{d(J)&&K(he)})}V(()=>{Fo(Ut,d(J)?`height: ${d(le)}px;`:""),F(Di,d(J)?"▾":"▸")}),q("click",_i,()=>y(me,!d(me))),q("mousedown",ui,He),q("click",fi,()=>{y(J,!d(J))}),E(o,Ii),Rs()}Ks(["click","mousedown"]);var XX=T("<button>›</button>"),YX=T('<span class="chev-ph svelte-1vejtrc"></span>'),JX=T('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),QX=T('<div class="tc svelte-1vejtrc"></div>'),eY=T('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!></div> <!></div>'),tY=T("<option></option>"),iY=T('<span class="pub-ok svelte-1vejtrc">✓</span>'),nY=T('<span class="pub-err svelte-1vejtrc"> </span>'),sY=T('<div class="info svelte-1vejtrc">Loading…</div>'),oY=T('<div class="info err svelte-1vejtrc"> </div>'),rY=T('<div class="info svelte-1vejtrc">No topics match.</div>'),aY=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>'),lY=T('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),cY=T('<div class="info svelte-1vejtrc">No topics yet.</div>'),dY=T('<div class="tree-wrap svelte-1vejtrc"><!></div>'),uY=T('<span class="stream-badge"> </span>'),hY=T('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),fY=T('<span class="s-ret svelte-1vejtrc" title="retained snapshot">⊛</span>'),gY=T('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),pY=T('<div class="stream-body svelte-1vejtrc"><!></div>'),_Y=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),mY=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>'),vY=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),bY=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 yY(o,e){Ns(e,!0);const t=(se,ke=Ry)=>{const rt=wt(()=>d(g).has(ke().path)),kt=wt(()=>d(a)>=0&&ke().children.size>0),ft=wt(()=>d(a)>=0&&ke().isLeaf&&!n.has(ke().path));var Xe=eY(),Ft=v(Xe);let li;var yi=v(Ft);{var Ei=Ye=>{var ge=XX();let ve;V(()=>{ve=Rt(ge,1,"chev svelte-1vejtrc",null,ve,{open:d(rt)}),Hi(ge,"aria-label",d(rt)?"Collapse":"Expand")}),q("click",ge,()=>p(ke().path)),E(Ye,ge)},fn=Ye=>{var ge=YX();E(Ye,ge)};W(yi,Ye=>{d(kt)?Ye(Ei):Ye(fn,-1)})}var xn=b(yi,2),un=v(xn),Li=b(xn,2);{var gn=Ye=>{var ge=JX(),ve=Et(ge),vt=v(ve),Ti=b(ve,2),Pe=v(Ti);V((Ge,Ht,Je)=>{Hi(ve,"title",Ge),F(vt,Ht),F(Pe,Je)},[()=>{var Ge;return Fi((Ge=ai(ke().path))==null?void 0:Ge.val)},()=>{var Ge;return Fi((Ge=ai(ke().path))==null?void 0:Ge.val)},()=>{var Ge;return((Ge=ai(ke().path))==null?void 0:Ge.ts)!=null?Mi(ai(ke().path).ts):""}]),E(Ye,ge)},z=wt(()=>ke().isLeaf&&i.has(ke().path));W(Li,Ye=>{d(z)&&Ye(gn)})}var ee=b(Ft,2);{var $e=Ye=>{var ge=QX();pi(ge,21,()=>[...ke().children.values()].sort((ve,vt)=>ve.seg.localeCompare(vt.seg)),ve=>ve.path,(ve,vt)=>{t(ve,()=>d(vt))}),E(Ye,ge)};W(ee,Ye=>{d(kt)&&d(rt)&&Ye($e)})}V(()=>{li=Rt(Ft,1,"tr svelte-1vejtrc",null,li,{stale:d(ft)}),F(un,ke().seg)}),q("click",Ft,()=>{y(et,ke().path+"/#")}),q("contextmenu",Ft,Ye=>{Ye.preventDefault(),y(De,{x:Ye.clientX,y:Ye.clientY,topic:ke().path},!0)}),E(se,Xe)},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 se of s)f(se);s.clear(),OL(a)}))}const u=new Map;function f(se){const ke=se.split("/");let rt=u,kt="";for(let ft=0;ft<ke.length;ft++){const Xe=ke[ft];kt=ft===0?Xe:`${kt}/${Xe}`,rt.has(Xe)||rt.set(Xe,{seg:Xe,path:kt,children:new Map,isLeaf:!1});const Ft=rt.get(Xe);ft===ke.length-1&&(Ft.isLeaf=!0),rt=Ft.children}}let g=M(wi(new Set));function p(se){const ke=new Set(d(g));ke.has(se)?ke.delete(se):ke.add(se),y(g,ke,!0)}let w=M("");const m=24,x=5;let k=M(0),D=M(300),P=wt(()=>{if(d(a),!d(w))return[];const se=d(w).toLowerCase().split(/\s+/).filter(Boolean),ke=[];for(const[rt,kt]of i){const ft=rt.toLowerCase();se.every(Xe=>ft.includes(Xe))&&ke.push({topic:rt,...kt})}return ke.sort((rt,kt)=>rt.topic.localeCompare(kt.topic))}),A=wt(()=>{const se=d(P).length,ke=Math.max(0,Math.floor(d(k)/m)-x),rt=Math.min(se,Math.ceil((d(k)+d(D))/m)+x);return{start:ke,end:rt,totalH:se*m,top:ke*m}});const j=1e3,H=200,te=20,J=36;let le=0,we=M(wi([])),He=M(wi([])),ue=M(!0),et=M("#"),at=M(200);$n(()=>{const se=d(et).trim(),ke=Rl(()=>d(we)),rt=!se||se==="#"?ke.slice(0,H):ke.filter(kt=>me(se,kt.topic)).slice(0,H);if(se&&se!=="#"){const kt=new Set(rt.map(Xe=>Xe.topic)),ft=[];for(const[Xe,Ft]of i)kt.has(Xe)||me(se,Xe)&&ft.push({id:-(ft.length+1),topic:Xe,val:Ft.val,ts:Ft.ts,retained:!0});ft.sort((Xe,Ft)=>Xe.topic.localeCompare(Ft.topic)),y(He,[...rt,...ft],!0)}else y(He,rt,!0)});function me(se,ke){if(se==="#")return!0;const rt=se.split("/"),kt=ke.split("/");for(let ft=0;ft<rt.length;ft++){if(rt[ft]==="#")return!0;if(ft>=kt.length||rt[ft]!=="+"&&rt[ft]!==kt[ft])return!1}return rt.length===kt.length}function lt(se){se.preventDefault();const ke=se.clientY,rt=d(at);function kt(Xe){y(at,Math.max(60,Math.min(800,rt+ke-Xe.clientY)),!0)}function ft(){document.removeEventListener("mousemove",kt),document.removeEventListener("mouseup",ft)}document.addEventListener("mousemove",kt),document.addEventListener("mouseup",ft)}let gt=wt(()=>{const se=Math.max(1,Math.floor((d(at)-J)/te)+1);return d(He).slice(0,se)}),Ct=M(!0),Le=M(null);async function xt(){y(Ct,!0),y(Le,null);try{const se=await HR();for(const ke of se)i.set(ke.topic,{val:ke.val,ts:ke.ts}),f(ke.topic)}catch(se){y(Le,se instanceof Error?se.message:String(se),!0)}finally{y(Ct,!1),OL(a)}}const Ue=kr("mqtt",se=>{const{topic:ke,val:rt,ts:kt}=se;i.set(ke,{val:rt,ts:kt}),n.add(ke),s.add(ke),c();const ft={id:le++,topic:ke,val:rt,ts:kt};y(we,[ft,...d(we).slice(0,j-1)],!0);const Xe=d(et).trim();(!Xe||Xe==="#"||me(Xe,ke))&&y(He,[ft,...d(He).filter(Ft=>!(Ft.retained&&Ft.topic===ke)).slice(0,H-1)],!0)});let De=M(null),dt=M(null);async function Ot(se,ke){const rt=[se];if(ke){const kt=se+"/";for(const ft of i.keys())ft.startsWith(kt)&&rt.push(ft)}for(const kt of rt)await HD(kt,"",!0,0)}let ri=wt(()=>(d(a),[...i.keys()].sort())),Wt=M(""),Tt=M(""),Nt=M(!1),It=M(0),bi=M(!1),hi=M(null),Ii=M(!1);async function Oi(){if(d(Wt)){y(bi,!0),y(hi,null),y(Ii,!1);try{await HD(d(Wt),d(Tt),d(Nt),d(It)),y(Ii,!0),setTimeout(()=>{y(Ii,!1)},2e3)}catch(se){y(hi,se instanceof Error?se.message:String(se),!0)}finally{y(bi,!1)}}}function Fi(se){return se==null?"":typeof se=="object"?JSON.stringify(se):String(se)}function Mi(se){return new Date(se).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ci(se){return new Date(se).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function ai(se){return d(a),i.get(se)}let _i=wt(()=>(d(a),[...u.values()].sort((se,ke)=>se.seg.localeCompare(ke.seg)))),tt=wt(()=>(d(a),i.size));ao(xt),Wy(()=>{Ue(),r!==null&&cancelAnimationFrame(r)});var Bt=bY(),ii=b(v(Bt),2),mi=v(ii),Vi=v(mi),Pi=b(Vi,2);pi(Pi,20,()=>d(ri),se=>se,(se,ke)=>{var rt=tY(),kt={};V(()=>{kt!==(kt=ke)&&(rt.value=(rt.__value=ke)??"")}),E(se,rt)});var Ri=b(Pi,2),ji=b(Ri,2),an=v(ji),Ni=b(ji,2),Cn=v(Ni);Cn.value=Cn.__value=0;var Me=b(Cn);Me.value=Me.__value=1;var Ut=b(Me);Ut.value=Ut.__value=2;var ui=b(Ni,2),ki=b(ui,2);{var ze=se=>{var ke=iY();E(se,ke)};W(ki,se=>{d(Ii)&&se(ze)})}var qt=b(ki,2);{var fi=se=>{var ke=nY(),rt=v(ke);V(()=>F(rt,d(hi))),E(se,ke)};W(qt,se=>{d(hi)&&se(fi)})}var Di=b(mi,2),qe=v(Di),he=b(qe,2),K=v(he);{var ae=se=>{var ke=sa();V(()=>F(ke,`${d(P).length??""} /`)),E(se,ke)};W(K,se=>{d(w)&&se(ae)})}var Ce=b(K),Ne=b(Di,2);{var ot=se=>{var ke=sY();E(se,ke)},R=se=>{var ke=oY(),rt=v(ke);V(()=>F(rt,d(Le))),E(se,ke)},Q=se=>{var ke=Vs(),rt=Et(ke);{var kt=Xe=>{var Ft=rY();E(Xe,Ft)},ft=Xe=>{var Ft=lY(),li=v(Ft),yi=v(li);pi(yi,21,()=>d(P).slice(d(A).start,d(A).end),Ei=>Ei.topic,(Ei,fn)=>{var xn=aY(),un=v(xn),Li=v(un),gn=b(un,2),z=v(gn),ee=b(gn,2),$e=v(ee);V((Ye,ge,ve)=>{F(Li,d(fn).topic),Hi(gn,"title",Ye),F(z,ge),F($e,ve)},[()=>Fi(d(fn).val),()=>Fi(d(fn).val),()=>Mi(d(fn).ts)]),E(Ei,xn)}),V(()=>{Fo(li,`height: ${d(A).totalH??""}px; position: relative;`),Fo(yi,`top: ${d(A).top??""}px;`)}),cs("scroll",Ft,Ei=>{y(k,Ei.currentTarget.scrollTop,!0)}),$H(Ft,"clientHeight",Ei=>y(D,Ei)),E(Xe,Ft)};W(rt,Xe=>{d(P).length===0?Xe(kt):Xe(ft,-1)})}E(se,ke)},Y=se=>{var ke=dY(),rt=v(ke);{var kt=Xe=>{var Ft=cY();E(Xe,Ft)},ft=Xe=>{var Ft=Vs(),li=Et(Ft);pi(li,17,()=>d(_i),yi=>yi.path,(yi,Ei)=>{t(yi,()=>d(Ei))}),E(Xe,Ft)};W(rt,Xe=>{d(_i).length===0?Xe(kt):Xe(ft,-1)})}E(se,ke)};W(Ne,se=>{d(Ct)?se(ot):d(Le)?se(R,1):d(w)?se(Q,2):se(Y,-1)})}var fe=b(ii,2),_e=v(fe),$=b(_e,2),Z=v($),ie=b(Z,2);{var Se=se=>{var ke=uY(),rt=v(ke);V(()=>F(rt,d(He).length)),E(se,ke)};W(ie,se=>{!d(ue)&&d(He).length>0&&se(Se)})}var pt=b(ie,2),Ae=v(pt),Ie=b($,2);{var st=se=>{var ke=pY(),rt=v(ke);{var kt=Xe=>{var Ft=hY();E(Xe,Ft)},ft=Xe=>{var Ft=Vs(),li=Et(Ft);pi(li,17,()=>d(gt),yi=>yi.id,(yi,Ei)=>{var fn=gY();let xn;var un=v(fn),Li=v(un),gn=b(un,2);{var z=ve=>{var vt=fY();E(ve,vt)};W(gn,ve=>{d(Ei).retained&&ve(z)})}var ee=b(gn,2),$e=v(ee),Ye=b(ee,2),ge=v(Ye);V((ve,vt,Ti)=>{xn=Rt(fn,1,"sr svelte-1vejtrc",null,xn,{retained:d(Ei).retained}),F(Li,ve),F($e,d(Ei).topic),Hi(Ye,"title",vt),F(ge,Ti)},[()=>Ci(d(Ei).ts),()=>Fi(d(Ei).val),()=>Fi(d(Ei).val)]),E(yi,fn)}),E(Xe,Ft)};W(rt,Xe=>{d(gt).length===0?Xe(kt):Xe(ft,-1)})}E(se,ke)};W(Ie,se=>{d(ue)&&se(st)})}var Dt=b(fe,2);{var St=se=>{var ke=_Y(),rt=Et(ke),kt=b(rt,2);let ft;var Xe=v(kt),Ft=b(Xe,2);V(()=>ft=Fo(kt,"",ft,{left:`${d(De).x??""}px`,top:`${d(De).y??""}px`})),q("click",rt,()=>y(De,null)),q("contextmenu",rt,li=>{li.preventDefault(),y(De,null)}),q("click",Xe,()=>{navigator.clipboard.writeText(d(De).topic),y(De,null)}),q("click",Ft,()=>{const li=d(De).topic,yi=li+"/",Ei=[...i.keys()].some(fn=>fn.startsWith(yi));y(dt,{topic:li,hasChildren:Ei,recursive:!1},!0),y(De,null)}),E(se,ke)};W(Dt,se=>{d(De)&&se(St)})}var oi=b(Dt,2);{var ti=se=>{var ke=vY(),rt=Et(ke),kt=b(rt,2),ft=b(v(kt),2),Xe=v(ft),Ft=b(v(Xe)),li=v(Ft),yi=b(Xe,2);{var Ei=Li=>{var gn=mY(),z=v(gn);Is(z,()=>d(dt).recursive,ee=>d(dt).recursive=ee),E(Li,gn)};W(yi,Li=>{d(dt).hasChildren&&Li(Ei)})}var fn=b(ft,2),xn=v(fn),un=b(xn,2);V(()=>F(li,d(dt).topic)),q("click",rt,()=>y(dt,null)),q("click",xn,()=>y(dt,null)),q("click",un,()=>{const{topic:Li,recursive:gn}=d(dt);y(dt,null),Ot(Li,gn)}),E(se,ke)};W(oi,se=>{d(dt)&&se(ti)})}V(()=>{ui.disabled=d(bi)||!d(Wt),F(Ce,` ${d(tt)??""}`),Fo(fe,d(ue)?`height: ${d(at)}px;`:""),F(Ae,d(ue)?"▾":"▸")}),Yt(Vi,()=>d(Wt),se=>y(Wt,se)),Yt(Ri,()=>d(Tt),se=>y(Tt,se)),Is(an,()=>d(Nt),se=>y(Nt,se)),Ho(Ni,()=>d(It),se=>y(It,se)),q("click",ui,Oi),Yt(qe,()=>d(w),se=>y(w,se)),q("mousedown",_e,lt),Yt(Z,()=>d(et),se=>y(et,se)),q("click",pt,()=>{y(ue,!d(ue))}),E(o,Bt),Rs()}Ks(["click","contextmenu","mousedown"]);var wY=T('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),SY=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>'),CY=T('<div class="err svelte-twakcj"> </div>'),xY=T('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),kY=T('<p class="empty svelte-twakcj">No packages installed.</p>'),LY=T('<p class="empty svelte-twakcj">No match.</p>'),IY=T("<span> </span>"),DY=VP('<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>'),EY=VP('<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>'),TY=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>'),PY=T('<span class="result-author svelte-twakcj"> </span>'),MY=T('<span class="result-date svelte-twakcj"> </span>'),NY=T('<span class="result-desc svelte-twakcj"> </span>'),RY=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>'),AY=T('<div class="results-list svelte-twakcj"></div>'),OY=T('<pre class="npm-output svelte-twakcj"> </pre>'),FY=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>`),HY=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 WY(o,e){Ns(e,!0);let t=M(wi([])),i=M(""),n=M(wi({})),s=M(wi([])),r=M(!1),a=M(""),c=M(wi([])),u=M(!1),f=M(!1),g=M(!1),p=M(""),w=M(""),m=wi({});const x=wt(()=>d(i).trim()?d(t).filter(Me=>Me.name.toLowerCase().includes(d(i).toLowerCase())):d(t)),k=wt(()=>Object.keys(d(n)).filter(Me=>!d(s).includes(Me)).length);ao(async()=>{await Promise.all([D(),P(),A()])});async function D(){try{y(t,await I7(),!0),y(p,"")}catch(Me){y(p,Me.message,!0)}}async function P(){try{y(n,await OR(),!0)}catch{}}async function A(){try{const Me=await Dl();y(s,Array.isArray(Me.pinnedPackages)?Me.pinnedPackages:[],!0)}catch{}}async function j(Me){const Ut=d(s).includes(Me)?d(s).filter(ui=>ui!==Me):[...d(s),Me];y(s,Ut,!0);try{const ui=await Dl();await Zp({...ui,pinnedPackages:Ut})}catch{}}async function H(){y(r,!0);try{y(n,await M7(),!0)}catch{}finally{y(r,!1)}}async function te(){const Me=d(a).trim();if(!Me){y(c,[],!0);return}y(g,!0),y(p,"");try{y(c,await D7(Me),!0)}catch(Ut){y(p,Ut.message,!0)}finally{y(g,!1)}}function J(Me){if(!Me)return"";try{return new Date(Me).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function le(Me,Ut){m[Me]=!0,y(p,""),y(w,"");try{const ui=await E7(Me,Ut);y(w,ui.stdout||ui.stderr||"Done.",!0),y(u,!0),await D()}catch(ui){y(p,ui.message,!0)}finally{m[Me]=!1}}async function we(Me){m[Me]=!0,y(p,""),y(w,"");try{const Ut=await T7(Me);y(w,Ut.stdout||Ut.stderr||"Done.",!0),y(u,!0);const ui={...d(n)};delete ui[Me],y(n,ui,!0),await D()}catch(Ut){y(p,Ut.message,!0)}finally{m[Me]=!1}}async function He(Me){m[Me]=!0,y(p,""),y(w,"");try{const Ut=await P7(Me);y(w,Ut.stdout||Ut.stderr||"Done.",!0),y(u,!0);const ui={...d(n)};delete ui[Me],y(n,ui,!0),await D()}catch(Ut){y(p,Ut.message,!0)}finally{m[Me]=!1}}let ue;async function et(){if(await ue.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){y(f,!0);try{await NR()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var at=HY(),me=Et(at);Ds(Jf(me,{}),Me=>ue=Me,()=>ue);var lt=b(me,2),gt=v(lt);{var Ct=Me=>{var Ut=wY();E(Me,Ut)},Le=Me=>{var Ut=SY(),ui=b(v(Ut));q("click",ui,et),E(Me,Ut)};W(gt,Me=>{d(f)?Me(Ct):d(u)&&Me(Le,1)})}var xt=b(gt,2);{var Ue=Me=>{var Ut=CY(),ui=v(Ut);V(()=>F(ui,d(p))),E(Me,Ut)};W(xt,Me=>{d(p)&&Me(Ue)})}var De=b(xt,2),dt=v(De),Ot=v(dt),ri=b(v(Ot),2),Wt=v(ri),Tt=b(ri,2);{var Nt=Me=>{var Ut=xY(),ui=v(Ut);V(()=>F(ui,`${d(k)??""} outdated`)),E(Me,Ut)};W(Tt,Me=>{d(k)>0&&Me(Nt)})}var It=b(Tt,2),bi=v(It);let hi;var Ii=b(Ot,2),Oi=v(Ii),Fi=b(Ii,2),Mi=v(Fi);{var Ci=Me=>{var Ut=kY();E(Me,Ut)},ai=Me=>{var Ut=LY();E(Me,Ut)},_i=Me=>{var Ut=Vs(),ui=Et(Ut);pi(ui,17,()=>d(x),ki=>ki.name,(ki,ze)=>{var qt=TY();let fi;var Di=v(qt),qe=v(Di),he=v(qe),K=b(qe,2),ae=v(K),Ce=b(K,2);{var Ne=Se=>{var pt=IY();let Ae;var Ie=v(pt);V(st=>{Ae=Rt(pt,1,"dep-latest svelte-twakcj",null,Ae,st),F(Ie,`→ v${d(n)[d(ze).name].latest??""}`)},[()=>({"dep-latest--pinned":d(s).includes(d(ze).name)})]),E(Se,pt)};W(Ce,Se=>{d(n)[d(ze).name]&&Se(Ne)})}var ot=b(Di,2),R=v(ot);let Q;var Y=b(R,2);let fe;var _e=v(Y);{var $=Se=>{var pt=DY();E(Se,pt)},Z=Se=>{var pt=EY();E(Se,pt)};W(_e,Se=>{m[d(ze).name]?Se($):Se(Z,-1)})}var ie=b(Y,2);V((Se,pt,Ae)=>{fi=Rt(qt,1,"dep-row svelte-twakcj",null,fi,{"dep-busy":!!m[d(ze).name]}),Hi(qe,"href",d(ze).url??`https://www.npmjs.com/package/${d(ze).name}`),F(he,d(ze).name),F(ae,d(ze).installedVersion??d(ze).version),Q=Rt(R,1,"icon-btn svelte-twakcj",null,Q,Se),Hi(R,"title",pt),fe=Rt(Y,1,"icon-btn svelte-twakcj",null,fe,Ae),Y.disabled=!!m[d(ze).name],Hi(Y,"title",d(n)[d(ze).name]?`Update to v${d(n)[d(ze).name].latest}`:"Update to latest"),ie.disabled=!!m[d(ze).name]},[()=>({"icon-btn--pinned":d(s).includes(d(ze).name)}),()=>d(s).includes(d(ze).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!d(n)[d(ze).name]&&!d(s).includes(d(ze).name)})]),q("click",R,()=>j(d(ze).name)),q("click",Y,()=>He(d(ze).name)),q("click",ie,()=>we(d(ze).name)),E(ki,qt)}),E(Me,Ut)};W(Mi,Me=>{d(t).length===0?Me(Ci):d(x).length===0?Me(ai,1):Me(_i,-1)})}var tt=b(dt,2),Bt=b(v(tt),2),ii=v(Bt),mi=b(ii,2),Vi=v(mi),Pi=b(Bt,2);{var Ri=Me=>{var Ut=AY();pi(Ut,21,()=>d(c),ui=>ui.name,(ui,ki)=>{var ze=RY(),qt=v(ze),fi=v(qt),Di=v(fi),qe=b(fi,2),he=v(qe),K=b(qe,2);{var ae=fe=>{var _e=PY(),$=v(_e);V(()=>F($,d(ki).author)),E(fe,_e)};W(K,fe=>{d(ki).author&&fe(ae)})}var Ce=b(K,2);{var Ne=fe=>{var _e=MY(),$=v(_e);V(Z=>{Hi(_e,"title",d(ki).date),F($,Z)},[()=>J(d(ki).date)]),E(fe,_e)};W(Ce,fe=>{d(ki).date&&fe(Ne)})}var ot=b(Ce,2);{var R=fe=>{var _e=NY(),$=v(_e);V(()=>F($,d(ki).description)),E(fe,_e)};W(ot,fe=>{d(ki).description&&fe(R)})}var Q=b(qt,2),Y=v(Q);V(()=>{Hi(fi,"href",d(ki).url??`https://www.npmjs.com/package/${d(ki).name}`),F(Di,d(ki).name),F(he,d(ki).version),Q.disabled=!!m[d(ki).name],F(Y,m[d(ki).name]?"Installing…":"Install")}),q("click",Q,()=>le(d(ki).name)),E(ui,ze)}),E(Me,Ut)};W(Pi,Me=>{d(c).length>0&&Me(Ri)})}var ji=b(Pi,2);{var an=Me=>{var Ut=OY(),ui=v(Ut);V(()=>F(ui,d(w))),E(Me,Ut)};W(ji,Me=>{d(w)&&Me(an)})}var Ni=b(ji,2);{var Cn=Me=>{var Ut=FY();E(Me,Ut)};W(Ni,Me=>{!d(c).length&&!d(w)&&Me(Cn)})}V(()=>{F(Wt,d(t).length),It.disabled=d(r),hi=Rt(bi,0,"svelte-twakcj",null,hi,{spinning:d(r)}),mi.disabled=d(g),F(Vi,d(g)?"Searching…":"Search")}),q("click",It,H),Yt(Oi,()=>d(i),Me=>y(i,Me)),q("keydown",ii,Me=>Me.key==="Enter"&&te()),Yt(ii,()=>d(a),Me=>y(a,Me)),q("click",mi,te),E(o,at),Rs()}Ks(["click","keydown"]);var Ul=T('<div class="err svelte-3itf14"> </div>'),BY=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>'),zY=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>'),VY=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>'),jY=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>'),$Y=T('<div class="empty svelte-3itf14">No roles found.</div>'),UY=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>'),GY=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>'),KY=T('<div class="empty svelte-3itf14">No groups found.</div>'),ZY=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>'),XY=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>'),YY=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>'),JY=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>'),QY=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>'),eJ=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>'),tJ=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>'),iJ=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>'),nJ=T('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),sJ=T("<option> </option>"),oJ=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>'),rJ=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>'),aJ=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 lJ(o,e){Ns(e,!0);let t=M(wi([])),i=M(wi([])),n=M(wi([])),s=M(""),r=M(""),a=M(""),c=M("users"),u=M(!1),f=M(""),g=M(""),p=M(!1),w=M(""),m=M(!1),x=M(!1),k=M(""),D=M(""),P=M(""),A=M(!1),j=M(!1),H=M(""),te=M(""),J=M(!1),le=M(null),we=M(!1),He=M("publishClientSend"),ue=M(""),et=M(!0),at=M(""),me=M(!1),lt=M(""),gt=M(""),Ct=M(!1);const Le=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function xt(){var qe,he,K;try{const[ae,Ce,Ne]=await Promise.allSettled([j7(),G7(),J7()]);ae.status==="fulfilled"?(y(t,ae.value.users,!0),y(s,"")):y(s,((qe=ae.reason)==null?void 0:qe.message)??"Failed to load users",!0),Ce.status==="fulfilled"?(y(i,Ce.value.roles,!0),y(r,"")):y(r,((he=Ce.reason)==null?void 0:he.message)??"Failed to load roles",!0),Ne.status==="fulfilled"?(y(n,Ne.value.groups,!0),y(a,"")):y(a,((K=Ne.reason)==null?void 0:K.message)??"Failed to load groups",!0)}catch{}}ao(()=>{xt()});async function Ue(){y(w,""),y(m,!0);try{await $7(d(f),d(g)),y(f,""),y(g,""),y(u,!1),await xt()}catch(qe){y(w,qe.message??"Failed to create user",!0)}finally{y(m,!1)}}async function De(qe){if(confirm(`Delete user "${qe}"?`))try{await U7(qe),await xt()}catch(he){y(s,he.message,!0)}}async function dt(qe){y(k,qe,!0),y(D,""),y(P,""),y(x,!0)}async function Ot(){y(P,""),y(A,!0);try{await q7(d(k),d(D)),y(x,!1)}catch(qe){y(P,qe.message,!0)}finally{y(A,!1)}}async function ri(){y(te,""),y(J,!0);try{await K7(d(H)),y(H,""),y(j,!1),await xt()}catch(qe){y(te,qe.message??"Failed to create role",!0)}finally{y(J,!1)}}async function Wt(qe){var he;if(confirm(`Delete role "${qe}"?`))try{await Z7(qe),((he=d(le))==null?void 0:he.rolename)===qe&&(y(le,null),y(we,!1)),await xt()}catch(K){y(r,K.message,!0)}}function Tt(qe){y(le,qe,!0),y(we,!0),y(He,"publishClientSend"),y(ue,""),y(et,!0),y(at,"")}async function Nt(){if(d(le)){y(at,"");try{await X7(d(le).rolename,{acltype:d(He),topic:d(ue),allow:d(et)}),y(ue,""),await xt(),y(le,d(i).find(qe=>qe.rolename===d(le).rolename)??d(le),!0)}catch(qe){y(at,qe.message,!0)}}}async function It(qe,he,K){try{await Y7(qe,he,K),await xt(),y(le,d(i).find(ae=>ae.rolename===qe)??d(le),!0)}catch(ae){y(at,ae.message,!0)}}async function bi(){y(gt,""),y(Ct,!0);try{await Q7(d(lt)),y(lt,""),y(me,!1),await xt()}catch(qe){y(gt,qe.message??"Failed to create group",!0)}finally{y(Ct,!1)}}async function hi(qe){if(confirm(`Delete group "${qe}"?`))try{await eq(qe),await xt()}catch(he){y(a,he.message,!0)}}var Ii=aJ(),Oi=Et(Ii),Fi=v(Oi),Mi=v(Fi);let Ci;var ai=b(Mi,2);let _i;var tt=b(ai,2);let Bt;var ii=b(tt,2),mi=b(Fi,2);{var Vi=qe=>{var he=jY(),K=v(he),ae=b(v(K),2),Ce=b(K,2);{var Ne=Y=>{var fe=Ul(),_e=v(fe);V(()=>F(_e,d(s))),E(Y,fe)};W(Ce,Y=>{d(s)&&Y(Ne)})}var ot=b(Ce,2);{var R=Y=>{var fe=BY();E(Y,fe)},Q=Y=>{var fe=VY(),_e=b(v(fe));pi(_e,21,()=>d(t),on,($,Z)=>{var ie=zY(),Se=v(ie),pt=v(Se),Ae=b(Se);pi(Ae,21,()=>d(Z).roles??[],on,(oi,ti)=>{var se=_E(),ke=v(se);V(()=>F(ke,d(ti).rolename)),E(oi,se)});var Ie=b(Ae);pi(Ie,21,()=>d(Z).groups??[],on,(oi,ti)=>{var se=mE(),ke=v(se);V(()=>F(ke,d(ti).groupname)),E(oi,se)});var st=b(Ie),Dt=v(st),St=b(Dt,2);V(()=>F(pt,d(Z).username)),q("click",Dt,()=>dt(d(Z).username)),q("click",St,()=>De(d(Z).username)),E($,ie)}),E(Y,fe)};W(ot,Y=>{d(t).length===0?Y(R):Y(Q,-1)})}q("click",ae,()=>{y(u,!0),y(w,"")}),E(qe,he)};W(mi,qe=>{d(c)==="users"&&qe(Vi)})}var Pi=b(mi,2);{var Ri=qe=>{var he=GY(),K=v(he),ae=b(v(K),2),Ce=b(K,2);{var Ne=Y=>{var fe=Ul(),_e=v(fe);V(()=>F(_e,d(r))),E(Y,fe)};W(Ce,Y=>{d(r)&&Y(Ne)})}var ot=b(Ce,2);{var R=Y=>{var fe=$Y();E(Y,fe)},Q=Y=>{var fe=qY(),_e=b(v(fe));pi(_e,21,()=>d(i),on,($,Z)=>{var ie=UY(),Se=v(ie),pt=v(Se),Ae=b(Se),Ie=v(Ae),st=b(Ae),Dt=v(st),St=b(Dt,2);V(()=>{var oi;F(pt,d(Z).rolename),F(Ie,((oi=d(Z).acls)==null?void 0:oi.length)??0)}),q("click",Dt,()=>Tt(d(Z))),q("click",St,()=>Wt(d(Z).rolename)),E($,ie)}),E(Y,fe)};W(ot,Y=>{d(i).length===0?Y(R):Y(Q,-1)})}q("click",ae,()=>{y(j,!0),y(te,""),y(H,"")}),E(qe,he)};W(Pi,qe=>{d(c)==="roles"&&qe(Ri)})}var ji=b(Pi,2);{var an=qe=>{var he=YY(),K=v(he),ae=b(v(K),2),Ce=b(K,2);{var Ne=Y=>{var fe=Ul(),_e=v(fe);V(()=>F(_e,d(a))),E(Y,fe)};W(Ce,Y=>{d(a)&&Y(Ne)})}var ot=b(Ce,2);{var R=Y=>{var fe=KY();E(Y,fe)},Q=Y=>{var fe=XY(),_e=b(v(fe));pi(_e,21,()=>d(n),on,($,Z)=>{var ie=ZY(),Se=v(ie),pt=v(Se),Ae=b(Se);pi(Ae,21,()=>d(Z).clients??[],on,(St,oi)=>{var ti=_E(),se=v(ti);V(()=>F(se,d(oi).username)),E(St,ti)});var Ie=b(Ae);pi(Ie,21,()=>d(Z).roles??[],on,(St,oi)=>{var ti=mE(),se=v(ti);V(()=>F(se,d(oi).rolename)),E(St,ti)});var st=b(Ie),Dt=v(st);V(()=>F(pt,d(Z).groupname)),q("click",Dt,()=>hi(d(Z).groupname)),E($,ie)}),E(Y,fe)};W(ot,Y=>{d(n).length===0?Y(R):Y(Q,-1)})}q("click",ae,()=>{y(me,!0),y(gt,""),y(lt,"")}),E(qe,he)};W(ji,qe=>{d(c)==="groups"&&qe(an)})}var Ni=b(Oi,2);{var Cn=qe=>{var he=JY(),K=v(he),ae=b(v(K),2),Ce=b(v(ae)),Ne=b(ae,2),ot=b(v(Ne)),R=v(ot),Q=b(R,2),Y=v(Q),fe=b(Ne,2);{var _e=pt=>{var Ae=Ul(),Ie=v(Ae);V(()=>F(Ie,d(w))),E(pt,Ae)};W(fe,pt=>{d(w)&&pt(_e)})}var $=b(fe,2),Z=v($),ie=b(Z,2),Se=v(ie);V(()=>{Hi(R,"type",d(p)?"text":"password"),F(Y,d(p)?"Hide":"Show"),ie.disabled=d(m)||!d(f)||!d(g),F(Se,d(m)?"Creating…":"Create")}),Yt(Ce,()=>d(f),pt=>y(f,pt)),Yt(R,()=>d(g),pt=>y(g,pt)),q("click",Q,()=>y(p,!d(p))),q("click",Z,()=>y(u,!1)),q("click",ie,Ue),E(qe,he)};W(Ni,qe=>{d(u)&&qe(Cn)})}var Me=b(Ni,2);{var Ut=qe=>{var he=QY(),K=v(he),ae=v(K),Ce=b(v(ae)),Ne=v(Ce),ot=b(ae,2),R=b(v(ot)),Q=b(ot,2);{var Y=ie=>{var Se=Ul(),pt=v(Se);V(()=>F(pt,d(P))),E(ie,Se)};W(Q,ie=>{d(P)&&ie(Y)})}var fe=b(Q,2),_e=v(fe),$=b(_e,2),Z=v($);V(()=>{F(Ne,d(k)),$.disabled=d(A)||!d(D),F(Z,d(A)?"Saving…":"Set password")}),Yt(R,()=>d(D),ie=>y(D,ie)),q("click",_e,()=>y(x,!1)),q("click",$,Ot),E(qe,he)};W(Me,qe=>{d(x)&&qe(Ut)})}var ui=b(Me,2);{var ki=qe=>{var he=eJ(),K=v(he),ae=b(v(K),2),Ce=b(v(ae)),Ne=b(ae,2);{var ot=_e=>{var $=Ul(),Z=v($);V(()=>F(Z,d(te))),E(_e,$)};W(Ne,_e=>{d(te)&&_e(ot)})}var R=b(Ne,2),Q=v(R),Y=b(Q,2),fe=v(Y);V(()=>{Y.disabled=d(J)||!d(H),F(fe,d(J)?"Creating…":"Create")}),Yt(Ce,()=>d(H),_e=>y(H,_e)),q("click",Q,()=>y(j,!1)),q("click",Y,ri),E(qe,he)};W(ui,qe=>{d(j)&&qe(ki)})}var ze=b(ui,2);{var qt=qe=>{var he=oJ(),K=v(he),ae=v(K),Ce=b(v(ae)),Ne=v(Ce),ot=b(ae,2);{var R=st=>{var Dt=iJ(),St=b(v(Dt));pi(St,21,()=>d(le).acls??[],on,(oi,ti)=>{var se=tJ(),ke=v(se),rt=v(ke),kt=b(ke),ft=v(kt),Xe=b(kt),Ft=v(Xe),li=b(Xe),yi=v(li);V(()=>{F(rt,d(ti).acltype),F(ft,d(ti).topic),F(Ft,d(ti).allow?"✓":"✗")}),q("click",yi,()=>It(d(le).rolename,d(ti).acltype,d(ti).topic)),E(oi,se)}),E(st,Dt)},Q=st=>{var Dt=nJ();E(st,Dt)};W(ot,st=>{var Dt;(((Dt=d(le).acls)==null?void 0:Dt.length)??0)>0?st(R):st(Q,-1)})}var Y=b(ot,2),fe=v(Y);pi(fe,21,()=>Le,on,(st,Dt)=>{var St=sJ(),oi=v(St),ti={};V(()=>{F(oi,d(Dt)),ti!==(ti=d(Dt))&&(St.value=(St.__value=d(Dt))??"")}),E(st,St)});var _e=b(fe,2),$=b(_e,2),Z=v($),ie=b($,2),Se=b(Y,2);{var pt=st=>{var Dt=Ul(),St=v(Dt);V(()=>F(St,d(at))),E(st,Dt)};W(Se,st=>{d(at)&&st(pt)})}var Ae=b(Se,2),Ie=v(Ae);V(()=>{F(Ne,d(le).rolename),ie.disabled=!d(ue)}),Ho(fe,()=>d(He),st=>y(He,st)),Yt(_e,()=>d(ue),st=>y(ue,st)),Is(Z,()=>d(et),st=>y(et,st)),q("click",ie,Nt),q("click",Ie,()=>y(we,!1)),E(qe,he)};W(ze,qe=>{d(we)&&d(le)&&qe(qt)})}var fi=b(ze,2);{var Di=qe=>{var he=rJ(),K=v(he),ae=b(v(K),2),Ce=b(v(ae)),Ne=b(ae,2);{var ot=_e=>{var $=Ul(),Z=v($);V(()=>F(Z,d(gt))),E(_e,$)};W(Ne,_e=>{d(gt)&&_e(ot)})}var R=b(Ne,2),Q=v(R),Y=b(Q,2),fe=v(Y);V(()=>{Y.disabled=d(Ct)||!d(lt),F(fe,d(Ct)?"Creating…":"Create")}),Yt(Ce,()=>d(lt),_e=>y(lt,_e)),q("click",Q,()=>y(me,!1)),q("click",Y,bi),E(qe,he)};W(fi,qe=>{d(me)&&qe(Di)})}V(()=>{Ci=Rt(Mi,1,"svelte-3itf14",null,Ci,{active:d(c)==="users"}),_i=Rt(ai,1,"svelte-3itf14",null,_i,{active:d(c)==="roles"}),Bt=Rt(tt,1,"svelte-3itf14",null,Bt,{active:d(c)==="groups"})}),q("click",Mi,()=>y(c,"users")),q("click",ai,()=>y(c,"roles")),q("click",tt,()=>y(c,"groups")),q("click",ii,xt),E(o,Ii),Rs()}Ks(["click"]);var vE=T('<div class="err svelte-9i68x"> </div>'),cJ=T('<div class="ok svelte-9i68x">Saved.</div>'),dJ=T('<div class="reload-msg svelte-9i68x"> </div>'),uJ=T('<div class="loading svelte-9i68x">Loading…</div>'),hJ=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>'),fJ=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>'),gJ=T('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),pJ=T('<div class="cards svelte-9i68x"><!> <!></div>'),_J=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 mJ(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(wi([])),f=M(null);ao(()=>{g()});async function g(){try{y(t,await W7(),!0),y(u,JSON.parse(JSON.stringify(d(t).listeners)),!0),y(f,d(t).checksum,!0),y(i,"")}catch(De){y(i,De.message??"Failed to load broker config",!0)}}function p(){y(u,[...d(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0)}function w(De){y(u,d(u).filter((dt,Ot)=>Ot!==De),!0)}async function m(){if(d(t)){y(n,!0),y(s,""),y(r,!1);try{await B7({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(De){y(s,De.message??"Save failed",!0)}finally{y(n,!1)}}}async function x(){y(a,!0),y(c,"");try{const De=await z7();y(c,De.stderr||De.stdout||"Reloaded",!0)}catch(De){y(c,"Error: "+(De.message??"reload failed"))}finally{y(a,!1)}}function k(De){var dt,Ot,ri,Wt;return!!((dt=De.tls)!=null&&dt.certfile||(Ot=De.tls)!=null&&Ot.keyfile||(ri=De.tls)!=null&&ri.capath||(Wt=De.tls)!=null&&Wt.cafile)}function D(De,dt){dt||(De.tls={}),y(u,[...d(u)],!0)}var P=_J(),A=v(P),j=b(v(A),2),H=v(j),te=b(H,2),J=v(te),le=b(te,2),we=v(le),He=b(A,2);{var ue=De=>{var dt=vE(),Ot=v(dt);V(()=>F(Ot,d(i))),E(De,dt)};W(He,De=>{d(i)&&De(ue)})}var et=b(He,2);{var at=De=>{var dt=vE(),Ot=v(dt);V(()=>F(Ot,d(s))),E(De,dt)};W(et,De=>{d(s)&&De(at)})}var me=b(et,2);{var lt=De=>{var dt=cJ();E(De,dt)};W(me,De=>{d(r)&&De(lt)})}var gt=b(me,2);{var Ct=De=>{var dt=dJ(),Ot=v(dt);V(()=>F(Ot,d(c))),E(De,dt)};W(gt,De=>{d(c)&&De(Ct)})}var Le=b(gt,2);{var xt=De=>{var dt=uJ();E(De,dt)},Ue=De=>{var dt=pJ(),Ot=v(dt);pi(Ot,17,()=>d(u),on,(Tt,Nt,It)=>{var bi=fJ(),hi=v(bi),Ii=v(hi),Oi=v(Ii),Fi=b(Ii,2),Mi=b(hi,2),Ci=v(Mi),ai=b(v(Ci)),_i=b(Ci,2),tt=b(v(_i)),Bt=v(tt);Bt.value=Bt.__value="mqtt";var ii=b(Bt);ii.value=ii.__value="websockets";var mi=b(_i,2),Vi=b(v(mi)),Pi=b(Mi,2),Ri=v(Pi),ji=v(Ri),an=b(Pi,2);{var Ni=Me=>{var Ut=hJ(),ui=v(Ut),ki=v(ui),ze=b(v(ki)),qt=b(ki,2),fi=b(v(qt)),Di=b(ui,2),qe=v(Di),he=b(v(qe)),K=b(qe,2),ae=b(v(K)),Ce=b(Di,2),Ne=v(Ce),ot=b(v(Ne)),R=b(Ne,2),Q=b(v(R)),Y=v(Q);Y.value=Y.__value="";var fe=b(Y);fe.value=fe.__value="tlsv1.3";var _e=b(fe);_e.value=_e.__value="tlsv1.2";var $=b(Ce,2),Z=v($),ie=v(Z),Se=b(Z,2),pt=v(Se);Yt(ze,()=>d(Nt).tls.certfile,Ae=>d(Nt).tls.certfile=Ae),Yt(fi,()=>d(Nt).tls.keyfile,Ae=>d(Nt).tls.keyfile=Ae),Yt(he,()=>d(Nt).tls.cafile,Ae=>d(Nt).tls.cafile=Ae),Yt(ae,()=>d(Nt).tls.capath,Ae=>d(Nt).tls.capath=Ae),Yt(ot,()=>d(Nt).tls.crlfile,Ae=>d(Nt).tls.crlfile=Ae),Ho(Q,()=>d(Nt).tls.tls_version,Ae=>d(Nt).tls.tls_version=Ae),Is(ie,()=>d(Nt).tls.require_certificate,Ae=>d(Nt).tls.require_certificate=Ae),Is(pt,()=>d(Nt).tls.use_identity_as_username,Ae=>d(Nt).tls.use_identity_as_username=Ae),E(Me,Ut)},Cn=wt(()=>k(d(Nt)));W(an,Me=>{d(Cn)&&Me(Ni)})}V(Me=>{F(Oi,`Port ${d(Nt).port??""}`),Dg(ji,Me)},[()=>k(d(Nt))]),q("click",Fi,()=>w(It)),Yt(ai,()=>d(Nt).port,Me=>d(Nt).port=Me),Ho(tt,()=>d(Nt).protocol,Me=>d(Nt).protocol=Me),Yt(Vi,()=>d(Nt).bindAddress,Me=>d(Nt).bindAddress=Me),q("change",ji,Me=>D(d(Nt),Me.target.checked)),E(Tt,bi)});var ri=b(Ot,2);{var Wt=Tt=>{var Nt=gJ();E(Tt,Nt)};W(ri,Tt=>{d(u).length===0&&Tt(Wt)})}E(De,dt)};W(Le,De=>{d(t)===null&&!d(i)?De(xt):De(Ue,-1)})}V(()=>{te.disabled=d(n),F(J,d(n)?"Saving…":"Save"),le.disabled=d(a),F(we,d(a)?"Reloading…":"Apply & Reload")}),q("click",H,p),q("click",te,m),q("click",le,x),E(o,P),Rs()}Ks(["click","change"]);var fh=T('<div class="err svelte-9auejo"> </div>'),vJ=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>'),bJ=T('<div class="empty svelte-9auejo">No local CA generated yet.</div>'),yJ=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>'),wJ=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>'),SJ=T('<div class="empty svelte-9auejo">No managed server certificate yet. Generate one or configure paths manually in Listeners.</div>'),CJ=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>'),xJ=T('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),kJ=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>'),LJ=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>'),IJ=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>'),DJ=T('<div class="empty svelte-9auejo">No client certificates issued yet.</div>'),EJ=T('<span class="badge-revoked svelte-9auejo">Revoked</span>'),TJ=T('<span class="badge-expired svelte-9auejo">Expired</span>'),PJ=T('<span class="badge-expiring svelte-9auejo">Expiring soon</span>'),MJ=T('<span class="badge-ok svelte-9auejo">Valid</span>'),NJ=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),RJ=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>'),AJ=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>'),OJ=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>'),FJ=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>'),HJ=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>'),WJ=T('<button class="btn-primary svelte-9auejo"> </button>'),BJ=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>'),zJ=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),VJ=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),jJ=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>'),$J=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>'),UJ=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 qJ(o,e){Ns(e,!0);let t=M("ca"),i=M(null),n=M(null),s=M(wi([])),r=M(wi([])),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),D=M(!1),P=M(""),A=M(null),j=M(!1),H=M(""),te=M(365),J=M(!1),le=M(""),we=M(null),He=M(!1),ue=M(""),et=M(!1),at=M(""),me=M("");async function lt(){try{const[ze,qt,fi,Di]=await Promise.allSettled([tq(),nq(),oq(),lq()]);ze.status==="fulfilled"&&y(i,ze.value.ca,!0),qt.status==="fulfilled"&&y(n,qt.value.server,!0),fi.status==="fulfilled"&&y(s,fi.value.certs,!0),Di.status==="fulfilled"&&y(r,Di.value.certs,!0),y(a,"")}catch(ze){y(a,ze.message,!0)}}ao(()=>{lt()});async function gt(){y(p,""),y(g,!0);try{await iq({cn:d(u),days:d(f)}),y(c,!1),await lt()}catch(ze){y(p,ze.message,!0)}finally{y(g,!1)}}async function Ct(){y(P,""),y(D,!0),y(A,null);try{const ze=d(x).split(",").map(fi=>fi.trim()).filter(Boolean),qt=await sq({cn:d(m),san:ze,days:d(k)});y(A,qt,!0),await lt()}catch(ze){y(P,ze.message,!0)}finally{y(D,!1)}}async function Le(){y(le,""),y(J,!0),y(we,null);try{const ze=await rq({cn:d(H),days:d(te)});y(we,ze,!0),y(H,""),await lt()}catch(ze){y(le,ze.message,!0)}finally{y(J,!1)}}async function xt(ze){if(confirm(`Revoke certificate for "${ze.cn}" (serial ${ze.serial})?`))try{await aq(ze.serial),await lt()}catch(qt){y(me,qt.message,!0)}}async function Ue(){y(at,""),y(et,!0);try{await cq(d(ue)),y(ue,""),y(He,!1),await lt()}catch(ze){y(at,ze.message,!0)}finally{y(et,!1)}}async function De(ze){if(confirm("Remove this trusted CA cert?"))try{await dq(ze),await lt()}catch(qt){y(me,qt.message,!0)}}function dt(ze){const qt=new Date(ze).getTime()-Date.now();return qt<0?"expired":qt<30*864e5?"expiring":""}function Ot(ze){return new Date(ze).toLocaleDateString()}var ri=UJ(),Wt=Et(ri),Tt=v(Wt),Nt=v(Tt);let It;var bi=b(Nt,2);let hi;var Ii=b(bi,2);let Oi;var Fi=b(Ii,2);let Mi;var Ci=b(Fi,2),ai=b(Tt,2);{var _i=ze=>{var qt=fh(),fi=v(qt);V(()=>F(fi,d(a))),E(ze,qt)};W(ai,ze=>{d(a)&&ze(_i)})}var tt=b(ai,2);{var Bt=ze=>{var qt=fh(),fi=v(qt);V(()=>F(fi,d(me))),E(ze,qt)};W(tt,ze=>{d(me)&&ze(Bt)})}var ii=b(tt,2);{var mi=ze=>{var qt=yJ(),fi=v(qt),Di=b(v(fi),2),qe=v(Di),he=b(fi,2);{var K=Ce=>{var Ne=vJ(),ot=v(Ne),R=b(v(ot)),Q=v(R),Y=b(R,3),fe=v(Y),_e=b(Y,3),$=v(_e),Z=b(ot,2),ie=v(Z);V((Se,pt,Ae)=>{F(Q,d(i).cn),F(fe,d(i).fingerprint),Rt(_e,1,Se,"svelte-9auejo"),F($,pt),Hi(ie,"href",`data:application/x-pem-file;charset=utf-8,${Ae??""}`)},[()=>J_(dt(d(i).expires)),()=>Ot(d(i).expires),()=>encodeURIComponent(d(i).crt)]),E(Ce,Ne)},ae=Ce=>{var Ne=bJ();E(Ce,Ne)};W(he,Ce=>{d(i)?Ce(K):Ce(ae,-1)})}V(()=>F(qe,d(i)?"Regenerate CA":"Generate CA")),q("click",Di,()=>{y(c,!0),y(p,"")}),E(ze,qt)},Vi=ze=>{var qt=CJ(),fi=v(qt),Di=b(v(fi),2),qe=v(Di),he=b(fi,2);{var K=Ce=>{var Ne=wJ(),ot=v(Ne),R=b(v(ot)),Q=v(R),Y=b(R,3),fe=v(Y),_e=b(Y,3),$=v(_e);V((Z,ie)=>{F(Q,d(n).cn),F(fe,d(n).fingerprint),Rt(_e,1,Z,"svelte-9auejo"),F($,ie)},[()=>J_(dt(d(n).expires)),()=>Ot(d(n).expires)]),E(Ce,Ne)},ae=Ce=>{var Ne=SJ();E(Ce,Ne)};W(he,Ce=>{d(n)?Ce(K):Ce(ae,-1)})}V(()=>F(qe,d(n)?"Regenerate":"Generate server cert")),q("click",Di,()=>{y(w,!0),y(P,""),y(A,null)}),E(ze,qt)},Pi=ze=>{var qt=IJ(),fi=v(qt),Di=b(v(fi),2),qe=b(fi,2);{var he=ae=>{var Ce=xJ();E(ae,Ce)},K=ae=>{var Ce=LJ(),Ne=b(v(Ce));pi(Ne,21,()=>d(r),on,(ot,R)=>{var Q=kJ(),Y=v(Q),fe=v(Y),_e=b(Y),$=v(_e),Z=b(_e),ie=v(Z),Se=b(Z),pt=v(Se);V((Ae,Ie,st)=>{F(fe,d(R).cn),F($,`${Ae??""}…`),Rt(Z,1,Ie,"svelte-9auejo"),F(ie,st)},[()=>d(R).fingerprint.slice(0,29),()=>J_(dt(d(R).expires)),()=>Ot(d(R).expires)]),q("click",pt,()=>De(d(R).fingerprint)),E(ot,Q)}),E(ae,Ce)};W(qe,ae=>{d(r).length===0?ae(he):ae(K,-1)})}q("click",Di,()=>{y(He,!0),y(at,""),y(ue,"")}),E(ze,qt)},Ri=ze=>{var qt=OJ(),fi=v(qt),Di=b(v(fi),2),qe=b(fi,2);{var he=ae=>{var Ce=DJ();E(ae,Ce)},K=ae=>{var Ce=AJ(),Ne=b(v(Ce));pi(Ne,21,()=>d(s),on,(ot,R)=>{var Q=RJ(),Y=v(Q),fe=v(Y),_e=b(Y),$=v(_e),Z=b(_e),ie=v(Z),Se=b(Z),pt=v(Se),Ae=b(Se),Ie=v(Ae);{var st=ft=>{var Xe=EJ();E(ft,Xe)},Dt=ft=>{var Xe=TJ();E(ft,Xe)},St=wt(()=>dt(d(R).expires)==="expired"),oi=ft=>{var Xe=PJ();E(ft,Xe)},ti=wt(()=>dt(d(R).expires)==="expiring"),se=ft=>{var Xe=MJ();E(ft,Xe)};W(Ie,ft=>{d(R).revoked?ft(st):d(St)?ft(Dt,1):d(ti)?ft(oi,2):ft(se,-1)})}var ke=b(Ae),rt=v(ke);{var kt=ft=>{var Xe=NJ(),Ft=Et(Xe),li=b(Ft,2),yi=b(li,2),Ei=b(yi,2);V((fn,xn,un)=>{Hi(Ft,"href",fn),Hi(Ft,"download",`${d(R).cn??""}.p12`),Hi(li,"href",xn),Hi(li,"download",`${d(R).cn??""}.crt`),Hi(yi,"href",un),Hi(yi,"download",`${d(R).cn??""}.key`)},[()=>Qc(d(R).serial,"p12"),()=>Qc(d(R).serial,"crt"),()=>Qc(d(R).serial,"key")]),q("click",Ei,()=>xt(d(R))),E(ft,Xe)};W(rt,ft=>{d(R).revoked||ft(kt)})}V((ft,Xe,Ft)=>{F(fe,d(R).cn),F($,d(R).serial),F(ie,ft),Rt(Se,1,Xe,"svelte-9auejo"),F(pt,Ft)},[()=>new Date(d(R).issued).toLocaleDateString(),()=>J_(d(R).revoked?"":dt(d(R).expires)),()=>Ot(d(R).expires)]),E(ot,Q)}),E(ae,Ce)};W(qe,ae=>{d(s).length===0?ae(he):ae(K,-1)})}q("click",Di,()=>{y(j,!0),y(le,""),y(we,null),y(H,""),y(te,365)}),E(ze,qt)};W(ii,ze=>{d(t)==="ca"?ze(mi):d(t)==="server"?ze(Vi,1):d(t)==="trusted"?ze(Pi,2):d(t)==="clients"&&ze(Ri,3)})}var ji=b(Wt,2);{var an=ze=>{var qt=FJ(),fi=v(qt),Di=b(v(fi),2),qe=b(v(Di)),he=b(Di,2),K=b(v(he)),ae=b(he,2);{var Ce=Y=>{var fe=fh(),_e=v(fe);V(()=>F(_e,d(p))),E(Y,fe)};W(ae,Y=>{d(p)&&Y(Ce)})}var Ne=b(ae,2),ot=v(Ne),R=b(ot,2),Q=v(R);V(()=>{R.disabled=d(g)||!d(u),F(Q,d(g)?"Generating…":"Generate")}),Yt(qe,()=>d(u),Y=>y(u,Y)),Yt(K,()=>d(f),Y=>y(f,Y)),q("click",ot,()=>y(c,!1)),q("click",R,gt),E(ze,qt)};W(ji,ze=>{d(c)&&ze(an)})}var Ni=b(ji,2);{var Cn=ze=>{var qt=BJ(),fi=v(qt),Di=b(v(fi),2),qe=b(v(Di)),he=b(Di,2),K=b(v(he)),ae=b(he,2),Ce=b(v(ae)),Ne=b(ae,2);{var ot=Z=>{var ie=fh(),Se=v(ie);V(()=>F(Se,d(P))),E(Z,ie)};W(Ne,Z=>{d(P)&&Z(ot)})}var R=b(Ne,2);{var Q=Z=>{var ie=HJ(),Se=b(v(ie),2),pt=b(v(Se)),Ae=v(pt),Ie=b(pt,3),st=v(Ie),Dt=b(Ie,3),St=v(Dt);V(()=>{F(Ae,d(A).certPath),F(st,d(A).keyPath),F(St,d(A).fingerprint)}),E(Z,ie)};W(R,Z=>{d(A)&&Z(Q)})}var Y=b(R,2),fe=v(Y),_e=b(fe,2);{var $=Z=>{var ie=WJ(),Se=v(ie);V(()=>{ie.disabled=d(D)||!d(m),F(Se,d(D)?"Generating…":"Generate")}),q("click",ie,Ct),E(Z,ie)};W(_e,Z=>{d(A)||Z($)})}Yt(qe,()=>d(m),Z=>y(m,Z)),Yt(K,()=>d(x),Z=>y(x,Z)),Yt(Ce,()=>d(k),Z=>y(k,Z)),q("click",fe,()=>y(w,!1)),E(ze,qt)};W(Ni,ze=>{d(w)&&ze(Cn)})}var Me=b(Ni,2);{var Ut=ze=>{var qt=jJ(),fi=v(qt),Di=b(v(fi),2);{var qe=K=>{var ae=zJ(),Ce=Et(ae),Ne=b(v(Ce)),ot=b(Ce,2),R=b(v(ot)),Q=b(ot,2);{var Y=ie=>{var Se=fh(),pt=v(Se);V(()=>F(pt,d(le))),E(ie,Se)};W(Q,ie=>{d(le)&&ie(Y)})}var fe=b(Q,2),_e=v(fe),$=b(_e,2),Z=v($);V(()=>{$.disabled=d(J)||!d(H),F(Z,d(J)?"Issuing…":"Issue")}),Yt(Ne,()=>d(H),ie=>y(H,ie)),Yt(R,()=>d(te),ie=>y(te,ie)),q("click",_e,()=>y(j,!1)),q("click",$,Le),E(K,ae)},he=K=>{var ae=VJ(),Ce=Et(ae),Ne=v(Ce),ot=b(v(Ne)),R=v(ot),Q=b(Ne,2),Y=b(v(Q)),fe=v(Y),_e=b(Y,3),$=v(_e),Z=b(_e,3),ie=v(Z),Se=b(Z,4),pt=v(Se),Ae=v(pt),Ie=b(Q,2),st=v(Ie),Dt=b(st,2),St=b(Dt,2),oi=b(St,2),ti=b(Ce,2),se=v(ti);V((ke,rt,kt,ft,Xe)=>{F(R,d(we).cn),F(fe,d(we).serial),F($,d(we).fingerprint),F(ie,ke),F(Ae,d(we).passphrase),Hi(st,"href",rt),Hi(st,"download",`${d(we).cn??""}.p12`),Hi(Dt,"href",kt),Hi(Dt,"download",`${d(we).cn??""}.crt`),Hi(St,"href",ft),Hi(St,"download",`${d(we).cn??""}.key`),Hi(oi,"href",Xe)},[()=>Ot(d(we).expires),()=>Qc(d(we).serial,"p12"),()=>Qc(d(we).serial,"crt"),()=>Qc(d(we).serial,"key"),()=>Qc(d(we).serial,"ca")]),q("click",se,()=>y(j,!1)),E(K,ae)};W(Di,K=>{d(we)?K(he,-1):K(qe)})}E(ze,qt)};W(Me,ze=>{d(j)&&ze(Ut)})}var ui=b(Me,2);{var ki=ze=>{var qt=$J(),fi=v(qt),Di=b(v(fi),2),qe=b(v(Di)),he=b(Di,2);{var K=R=>{var Q=fh(),Y=v(Q);V(()=>F(Y,d(at))),E(R,Q)};W(he,R=>{d(at)&&R(K)})}var ae=b(he,2),Ce=v(ae),Ne=b(Ce,2),ot=v(Ne);V(()=>{Ne.disabled=d(et)||!d(ue),F(ot,d(et)?"Adding…":"Add")}),Yt(qe,()=>d(ue),R=>y(ue,R)),q("click",Ce,()=>y(He,!1)),q("click",Ne,Ue),E(ze,qt)};W(ui,ze=>{d(He)&&ze(ki)})}V(()=>{It=Rt(Nt,1,"svelte-9auejo",null,It,{active:d(t)==="ca"}),hi=Rt(bi,1,"svelte-9auejo",null,hi,{active:d(t)==="server"}),Oi=Rt(Ii,1,"svelte-9auejo",null,Oi,{active:d(t)==="trusted"}),Mi=Rt(Fi,1,"svelte-9auejo",null,Mi,{active:d(t)==="clients"})}),q("click",Nt,()=>y(t,"ca")),q("click",bi,()=>y(t,"server")),q("click",Ii,()=>y(t,"trusted")),q("click",Fi,()=>y(t,"clients")),q("click",Ci,lt),E(o,ri),Rs()}Ks(["click"]);var _S=T('<div class="err svelte-17yczfe"> </div>'),GJ=T('<div class="ok svelte-17yczfe">Saved.</div>'),KJ=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>'),ZJ=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),XJ=T('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),YJ=T("<span> </span>"),JJ=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 QJ(o,e){Ns(e,!0);let t=M(wi({})),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(wi({}));ao(async()=>{try{const[tt,Bt,ii]=await Promise.all([Dl(),jR(),fetch("/she/broker/ssh/pubkey").then(Vi=>Vi.json()).catch(()=>({publicKey:null}))]);y(w,tt,!0),Bt.sshKeyDefault&&y(a,Bt.sshKeyDefault,!0);const mi=d(w).broker??{};y(t,mi.ssh??{},!0),d(t).port||(d(t).port=22),d(t).identityFile||(d(t).identityFile=d(a)),ii.publicKey&&y(c,ii.publicKey,!0)}catch(tt){y(i,tt.message,!0)}});async function m(){y(n,!0),y(r,""),y(s,!1);try{const tt=d(w).broker??{},Bt={...d(w),broker:{...tt,ssh:d(t)}};await Zp(Bt),y(s,!0),setTimeout(()=>y(s,!1),3e3)}catch(tt){y(r,tt.message,!0)}finally{y(n,!1)}}async function x(){y(u,!0),y(f,"");try{const tt=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Bt=await tt.json();if(!tt.ok)throw new Error(Bt.error??tt.statusText);y(c,Bt.publicKey,!0)}catch(tt){y(f,tt.message,!0)}finally{y(u,!1)}}async function k(){y(g,!0),y(p,"");try{const tt=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Bt=await tt.json();if(!tt.ok)throw new Error(Bt.error??tt.statusText);y(p,Bt.ok?"✓ Connection successful":"✗ "+(Bt.error??"Failed"),!0)}catch(tt){y(p,"✗ "+tt.message)}finally{y(g,!1)}}function D(tt){navigator.clipboard.writeText(tt).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=JJ(),j=v(A);{var H=tt=>{var Bt=_S(),ii=v(Bt);V(()=>F(ii,d(i))),E(tt,Bt)};W(j,tt=>{d(i)&&tt(H)})}var te=b(j,2),J=b(v(te),4),le=v(J),we=b(v(le)),He=b(le,2),ue=b(v(He)),et=b(He,2),at=b(v(et)),me=b(et,2),lt=b(v(me)),gt=b(J,2);{var Ct=tt=>{var Bt=_S(),ii=v(Bt);V(()=>F(ii,d(r))),E(tt,Bt)};W(gt,tt=>{d(r)&&tt(Ct)})}var Le=b(gt,2);{var xt=tt=>{var Bt=GJ();E(tt,Bt)};W(Le,tt=>{d(s)&&tt(xt)})}var Ue=b(Le,2),De=v(Ue),dt=v(De),Ot=b(te,2),ri=b(v(Ot),2),Wt=b(v(ri)),Tt=v(Wt),Nt=b(ri,2);{var It=tt=>{var Bt=ZJ(),ii=Et(Bt),mi=b(v(ii)),Vi=v(mi),Pi=b(Vi,2),Ri=b(ii,2);{var ji=Me=>{var Ut=KJ(),ui=b(v(Ut)),ki=v(ui),ze=b(ki,2);V(()=>UL(ki,d(P))),q("click",ze,()=>D(d(P))),E(Me,Ut)};W(Ri,Me=>{d(P)&&Me(ji)})}var an=b(Ri,2),Ni=v(an),Cn=v(Ni);V(()=>{UL(Vi,d(c)),Ni.disabled=d(u),F(Cn,d(u)?"Generating…":"Regenerate keypair")}),q("click",Pi,()=>D(d(c))),q("click",Ni,x),E(tt,Bt)},bi=tt=>{var Bt=XJ(),ii=v(Bt),mi=v(ii);V(()=>{ii.disabled=d(u),F(mi,d(u)?"Generating…":"Generate keypair")}),q("click",ii,x),E(tt,Bt)};W(Nt,tt=>{d(c)?tt(It):tt(bi,-1)})}var hi=b(Nt,2);{var Ii=tt=>{var Bt=_S(),ii=v(Bt);V(()=>F(ii,d(f))),E(tt,Bt)};W(hi,tt=>{d(f)&&tt(Ii)})}var Oi=b(Ot,2),Fi=b(v(Oi),2),Mi=v(Fi),Ci=v(Mi),ai=b(Mi,2);{var _i=tt=>{var Bt=YJ();let ii;var mi=v(Bt);V(Vi=>{ii=Rt(Bt,1,"test-result svelte-17yczfe",null,ii,Vi),F(mi,d(p))},[()=>({ok:d(p).startsWith("✓"),fail:d(p).startsWith("✗")})]),E(tt,Bt)};W(ai,tt=>{d(p)&&tt(_i)})}V(()=>{Hi(lt,"placeholder",d(a)),De.disabled=d(n),F(dt,d(n)?"Saving…":"Save"),F(Tt,d(t).identityFile||d(a)),Mi.disabled=d(g)||!d(t).host,F(Ci,d(g)?"Testing…":"Test SSH connection")}),Yt(we,()=>d(t).host,tt=>d(t).host=tt),Yt(ue,()=>d(t).port,tt=>d(t).port=tt),Yt(at,()=>d(t).user,tt=>d(t).user=tt),Yt(lt,()=>d(t).identityFile,tt=>d(t).identityFile=tt),q("click",De,m),q("click",Mi,k),E(o,A),Rs()}Ks(["click"]);var eQ=T('<div class="err svelte-d31be1"> </div>'),tQ=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>'),iQ=T('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),nQ=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>'),sQ=T('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),oQ=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>`),rQ=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>'),aQ=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>'),lQ=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 cQ(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(me){y(i,me.message,!0)}finally{y(n,!1)}}async function x(){y(n,!0),y(i,"");try{const me=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)})}),lt=await me.json();if(!me.ok||!lt.ok)throw new Error(lt.error??"Bootstrap failed");y(c,lt,!0);const gt=await Dl(),Ct=gt.broker??{};await Zp({...gt,broker:{...Ct,dynsec:{adminUsername:lt.adminUsername,adminPassword:lt.adminPassword}}}),y(t,"restart")}catch(me){y(i,me.message,!0)}finally{y(n,!1)}}async function k(){y(f,!0),y(i,"");try{await V7(),await new Promise(me=>setTimeout(me,2e3)),y(u,!0),y(t,"done")}catch(me){y(i,me.message,!0)}finally{y(f,!1)}}async function D(){y(w,!0),y(i,"");try{const me=await Dl(),lt=me.broker??{};await Zp({...me,broker:{...lt,dynsec:{adminUsername:d(g),adminPassword:d(p)}}}),y(t,"done")}catch(me){y(i,me.message,!0)}finally{y(w,!1)}}var P=lQ(),A=v(P),j=b(v(A),2),H=b(A,2);{var te=me=>{var lt=eQ(),gt=v(lt);V(()=>F(gt,d(i))),E(me,lt)};W(H,me=>{d(i)&&me(te)})}var J=b(H,2);{var le=me=>{var lt=tQ(),gt=b(v(lt),6),Ct=v(gt);V(()=>Ct.disabled=d(n)),q("click",Ct,()=>{y(t,"probe"),m()}),E(me,lt)},we=me=>{var lt=iQ(),gt=v(lt),Ct=v(gt);V(()=>F(Ct,d(n)?"Probing dynsec…":"Checking dynsec status…")),E(me,lt)},He=me=>{var lt=nQ(),gt=b(v(lt),2),Ct=b(v(gt)),Le=b(gt,2),xt=b(v(Le)),Ue=b(Le,2),De=b(v(Ue)),dt=b(Ue,2),Ot=v(dt),ri=v(Ot);V(()=>{Ot.disabled=d(n)||!d(s),F(ri,d(n)?"Bootstrapping…":"Bootstrap dynsec")}),Yt(Ct,()=>d(s),Wt=>y(s,Wt)),Yt(xt,()=>d(r),Wt=>y(r,Wt)),Yt(De,()=>d(a),Wt=>y(a,Wt)),q("click",Ot,x),E(me,lt)},ue=me=>{var lt=oQ(),gt=b(v(lt),2),Ct=b(v(gt),3),Le=v(Ct),xt=b(gt,4),Ue=v(xt),De=v(Ue),dt=b(Ue,2),Ot=b(xt,2);{var ri=Wt=>{var Tt=sQ();E(Wt,Tt)};W(Ot,Wt=>{d(f)&&Wt(ri)})}V(()=>{F(Le,d(c).confFilePath),Ue.disabled=d(f),F(De,d(f)?"Restarting…":"Restart mosquitto now")}),q("click",Ue,k),q("click",dt,()=>{y(t,"done")}),E(me,lt)},et=me=>{var lt=rQ(),gt=b(v(lt),4),Ct=v(gt);q("click",Ct,function(...Le){var xt;(xt=e.onDone)==null||xt.apply(this,Le)}),E(me,lt)},at=me=>{var lt=aQ(),gt=b(v(lt),2),Ct=b(v(gt)),Le=b(gt,2),xt=b(v(Le)),Ue=b(Le,2),De=v(Ue),dt=b(De,2),Ot=v(dt);V(()=>{dt.disabled=d(w)||!d(g)||!d(p),F(Ot,d(w)?"Saving…":"Save credentials")}),Yt(Ct,()=>d(g),ri=>y(g,ri)),Yt(xt,()=>d(p),ri=>y(p,ri)),q("click",De,()=>y(t,"intro")),q("click",dt,D),E(me,lt)};W(J,me=>{d(t)==="intro"?me(le):d(t)==="probe"?me(we,1):d(t)==="config"?me(He,2):d(t)==="restart"&&d(c)?me(ue,3):d(t)==="done"?me(et,4):d(t)==="manual"&&me(at,5)})}q("click",j,()=>y(t,"manual")),E(o,P),Rs()}Ks(["click"]);var dQ=T('<div class="loading svelte-zeztkb">Loading…</div>'),uQ=T('<div class="error-banner svelte-zeztkb"> </div>'),hQ=T('<div class="status-badge ok svelte-zeztkb">Connected</div>'),fQ=T('<div class="status-badge err svelte-zeztkb">Disconnected</div>'),gQ=T('<button class="wizard-btn svelte-zeztkb">Run Setup Wizard</button>'),pQ=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),_Q=T('<div style="margin-top: 20px;"><!></div>'),mQ=T('<div class="status-grid svelte-zeztkb"><div class="status-card svelte-zeztkb"><h3 class="svelte-zeztkb">Dynamic Security</h3> <!></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),vQ=T('<div class="tab-content svelte-zeztkb"><!></div>'),bQ=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 yQ(o,e){Ns(e,!0);let t=M(!1),i=M("status"),n=M(null),s=M(""),r=M(!0);async function a(){try{y(n,await jR(),!0),y(s,"")}catch(ue){y(s,ue.message??"Failed to load broker status",!0)}finally{y(r,!1)}}ao(()=>{a();const ue=setInterval(a,1e4);return()=>clearInterval(ue)});function c(ue){var at;if(!((at=d(n))!=null&&at.sys))return"—";const et=d(n).sys[ue];return et?String(et.val??"—"):"—"}var u=bQ(),f=v(u),g=v(f);let p;var w=b(g,2);let m;var x=b(w,2);let k;var D=b(x,2);let P;var A=b(D,2);let j;var H=b(f,2);{var te=ue=>{var et=vQ(),at=v(et);{var me=Ct=>{var Le=dQ();E(Ct,Le)},lt=Ct=>{var Le=uQ(),xt=v(Le);V(()=>F(xt,d(s))),E(Ct,Le)},gt=Ct=>{var Le=mQ(),xt=Et(Le),Ue=v(xt),De=b(v(Ue),2);{var dt=ii=>{var mi=Vs(),Vi=Et(mi);{var Pi=ji=>{var an=hQ();E(ji,an)},Ri=ji=>{var an=fQ();E(ji,an)};W(Vi,ji=>{d(n).dynsec.connected?ji(Pi):ji(Ri,-1)})}E(ii,mi)},Ot=ii=>{var mi=pQ(),Vi=b(Et(mi),4);{var Pi=Ri=>{var ji=gQ();q("click",ji,()=>y(t,!0)),E(Ri,ji)};W(Vi,Ri=>{d(t)||Ri(Pi)})}E(ii,mi)};W(De,ii=>{d(n).dynsec.configured?ii(dt):ii(Ot,-1)})}var ri=b(Ue,2),Wt=b(v(ri),2),Tt=b(v(Wt),2),Nt=v(Tt),It=b(Tt,4),bi=v(It),hi=b(It,4),Ii=v(hi),Oi=b(hi,4),Fi=v(Oi),Mi=b(Oi,4),Ci=v(Mi),ai=b(Mi,4),_i=v(ai),tt=b(xt,2);{var Bt=ii=>{var mi=_Q(),Vi=v(mi);cQ(Vi,{onDone:()=>{y(t,!1),a()}}),E(ii,mi)};W(tt,ii=>{d(t)&&!d(n).dynsec.configured&&ii(Bt)})}V((ii,mi,Vi,Pi,Ri,ji)=>{F(Nt,ii),F(bi,mi),F(Ii,Vi),F(Fi,Pi),F(Ci,Ri),F(_i,ji)},[()=>c("$SYS/broker/version"),()=>c("$SYS/broker/uptime"),()=>c("$SYS/broker/clients/connected"),()=>c("$SYS/broker/clients/total"),()=>c("$SYS/broker/messages/received"),()=>c("$SYS/broker/messages/sent")]),E(Ct,Le)};W(at,Ct=>{d(r)?Ct(me):d(s)?Ct(lt,1):d(n)&&Ct(gt,2)})}E(ue,et)},J=ue=>{lJ(ue,{})},le=ue=>{mJ(ue,{})},we=ue=>{qJ(ue,{})},He=ue=>{QJ(ue,{})};W(H,ue=>{d(i)==="status"?ue(te):d(i)==="users"?ue(J,1):d(i)==="listeners"?ue(le,2):d(i)==="certs"?ue(we,3):d(i)==="ssh"&&ue(He,4)})}V(()=>{p=Rt(g,1,"svelte-zeztkb",null,p,{active:d(i)==="status"}),m=Rt(w,1,"svelte-zeztkb",null,m,{active:d(i)==="users"}),k=Rt(x,1,"svelte-zeztkb",null,k,{active:d(i)==="listeners"}),P=Rt(D,1,"svelte-zeztkb",null,P,{active:d(i)==="certs"}),j=Rt(A,1,"svelte-zeztkb",null,j,{active:d(i)==="ssh"})}),q("click",g,()=>y(i,"status")),q("click",w,()=>y(i,"users")),q("click",x,()=>y(i,"listeners")),q("click",D,()=>y(i,"certs")),q("click",A,()=>y(i,"ssh")),E(o,u),Rs()}Ks(["click"]);var wQ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),SQ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),CQ=T('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),xQ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),kQ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),LQ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),IQ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),DQ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),EQ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),TQ=T('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),PQ=T('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),MQ=T('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),NQ=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>'),RQ=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>'),AQ=T('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),OQ=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),FQ=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),HQ=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>'),WQ=T('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),BQ=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>'),zQ=T('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),VQ=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>'),jQ=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>'),$Q=T('<div class="login-error svelte-1n46o8q"> </div>'),UQ=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>'),qQ=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>'),GQ=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>'),KQ=T("<!> <!> <!> <!>",1);function ZQ(o,e){Ns(e,!0);const t=["scripts","mqtt","matter","broker","db","logs","config","packages"];function i(){const It=location.hash.slice(1);return t.includes(It)?It:"scripts"}let n=M(wi(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);c7(()=>{y(p,!0)});async function D(){y(m,""),y(x,!0);try{await h7(d(w)),y(w,""),y(p,!1)}catch(It){y(m,It.message??"Login failed",!0)}finally{y(x,!1)}}async function P(){if(d(f)==="proxy"&&d(g)){window.location.href=d(g);return}await f7(),y(p,!0)}let A=M(null),j=M(!1),H=M(!1),te=M(!1),J=M(!1),le=M(wi([])),we=M(0),He=M(wi([]));const ue=wt(()=>d(He).filter(It=>It.online).length),et=wt(()=>d(He).length===0?"none":d(ue)===d(He).length?"all":d(ue)>0?"some":"offline");let at=M(!1),me=M(!1);async function lt(){if(!await d(A).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;y(j,!0);let It;try{It=(await Wg()).startedAt}catch{}try{await NR()}catch{}const bi=Date.now()+6e4;for(;Date.now()<bi;){await new Promise(hi=>setTimeout(hi,250));try{const hi=await Wg();if(It===void 0||hi.startedAt!==It){location.reload();return}}catch{}}location.reload()}async function gt(){y(c,!0);try{const It=await b7();d(s)&&y(s,{...d(s),latestVersion:It.latestVersion??void 0},!0)}catch{}finally{y(c,!1)}}async function Ct(){var hi,Ii;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 It=(Ii=d(s))==null?void 0:Ii.startedAt;try{await v7()}catch{}const bi=Date.now()+18e4;for(;Date.now()<bi;){await new Promise(Oi=>setTimeout(Oi,1e3));try{const Oi=await Wg();if(It===void 0||Oi.startedAt!==It){location.reload();return}}catch{y(u,!1),y(j,!0)}}location.reload()}function Le(It){y(n,It,!0),location.hash=It}ao(async()=>{location.hash||(location.hash=d(n));const It=()=>{y(n,i(),!0)};window.addEventListener("hashchange",It);try{const ai=await u7();y(f,ai.mode,!0),y(g,ai.proxyLogoutUrl??"",!0),d(f)==="password"&&(await fetch("/she/scripts")).status===401&&y(p,!0)}catch{}y(k,!0);async function bi(){try{y(s,await Wg(),!0)}catch{}try{const[ai,_i]=await Promise.all([OR(),Dl()]);y(le,Array.isArray(_i.pinnedPackages)?_i.pinnedPackages:[],!0),y(we,Object.keys(ai).filter(tt=>!d(le).includes(tt)).length,!0)}catch{}}bi();const hi=setInterval(bi,5e3),Ii=kr("mqtt:status",ai=>{ai.connected===!1?(y(J,!0),y(H,!1),y(te,!1)):(y(J,!1),y(H,ai.ready===!1),y(te,ai.ready===!0))}),Oi=kr("matter:deviceList",ai=>{Array.isArray(ai.devices)&&y(He,ai.devices.map(_i=>({nodeId:String(_i.nodeId),online:!!_i.online})),!0)}),Fi=kr("matter:deviceStatus",ai=>{if(ai.nodeId===void 0)return;const _i=String(ai.nodeId),tt=!!ai.online;y(He,d(He).map(Bt=>Bt.nodeId===_i?{...Bt,online:tt}:Bt),!0)}),Mi=$R();y(at,Mi.some(ai=>ai.level==="error"),!0),y(me,!d(at)&&Mi.some(ai=>ai.level==="warn"),!0);const Ci=kk(ai=>{ai.level==="error"?(y(at,!0),y(me,!1)):ai.level==="warn"&&!d(at)&&y(me,!0)});return()=>{window.removeEventListener("hashchange",It),clearInterval(hi),Ii(),Oi(),Fi(),Ci()}});var xt=KQ();cs("click",wP,()=>{d(r)&&y(r,!1),d(a)&&y(a,!1)});var Ue=Et(xt);{var De=It=>{var bi=jQ(),hi=v(bi),Ii=b(v(hi),2);let Oi;var Fi=b(Ii,2);let Mi;var Ci=b(v(Fi),2);{var ai=ge=>{var ve=wQ();V(()=>Hi(ve,"title",`${d(we)??""} package update${d(we)===1?"":"s"} available`)),E(ge,ve)};W(Ci,ge=>{d(we)>0&&ge(ai)})}var _i=b(Fi,2);let tt;var Bt=b(v(_i),2);{var ii=ge=>{var ve=SQ();E(ge,ve)},mi=ge=>{var ve=CQ();E(ge,ve)},Vi=ge=>{var ve=xQ();E(ge,ve)};W(Bt,ge=>{d(J)?ge(ii):d(H)?ge(mi,1):d(te)&&ge(Vi,2)})}var Pi=b(_i,2);let Ri;var ji=b(v(Pi),2);{var an=ge=>{var ve=kQ();E(ge,ve)},Ni=ge=>{var ve=LQ();E(ge,ve)},Cn=ge=>{var ve=IQ();E(ge,ve)};W(ji,ge=>{d(et)==="all"?ge(an):d(et)==="some"?ge(Ni,1):d(et)==="offline"&&ge(Cn,2)})}var Me=b(Pi,2);let Ut;var ui=b(Me,2);let ki;var ze=b(ui,2);let qt;var fi=b(v(ze),2);{var Di=ge=>{var ve=DQ();E(ge,ve)},qe=ge=>{var ve=EQ();E(ge,ve)};W(fi,ge=>{d(at)?ge(Di):d(me)&&ge(qe,1)})}var he=b(ze,4),K=b(v(he),2),ae=v(K),Ce=v(ae);Ce.nodeValue="v1.1.6 ";var Ne=b(Ce);{var ot=ge=>{var ve=TQ();E(ge,ve)};W(Ne,ge=>{var ve,vt;(ve=d(s))!=null&&ve.latestVersion&&!((vt=d(s))!=null&&vt.docker)&&ge(ot)})}var R=b(ae,2);{var Q=ge=>{var ve=RQ(),vt=v(ve),Ti=b(v(vt));Ti.textContent="v1.1.6";var Pe=b(Ti,2);{var Ge=Oe=>{var Ee=PQ(),zt=b(Et(Ee)),Lt=v(zt);V(()=>F(Lt,`v${d(s).latestVersion??""}`)),E(Oe,Ee)},Ht=Oe=>{var Ee=MQ();E(Oe,Ee)};W(Pe,Oe=>{var Ee;(Ee=d(s))!=null&&Ee.latestVersion?Oe(Ge):Oe(Ht,-1)})}var Je=b(vt,2),bt=v(Je);{var Zt=Oe=>{var Ee=NQ(),zt=b(v(Ee));V(()=>F(zt,` Update to v${d(s).latestVersion??""}`)),q("click",Ee,Ct),E(Oe,Ee)};W(bt,Oe=>{var Ee;(Ee=d(s))!=null&&Ee.latestVersion&&Oe(Zt)})}var G=b(bt,2),ne=v(G);let Ve;var Qe=b(ne);V(()=>{G.disabled=d(c),Ve=Rt(ne,0,"svelte-1n46o8q",null,Ve,{spinning:d(c)}),F(Qe,` ${d(c)?"Checking…":"Check for updates"}`)}),q("click",ve,Oe=>Oe.stopPropagation()),q("click",G,gt),E(ge,ve)};W(R,ge=>{var ve;d(a)&&!((ve=d(s))!=null&&ve.docker)&&ge(Q)})}var Y=b(K,2),fe=v(Y),_e=b(fe,2);{var $=ge=>{var ve=zQ(),vt=v(ve);{var Ti=bt=>{var Zt=HQ(),G=v(Zt);{var ne=_t=>{const mt=wt(()=>Math.floor((Date.now()-d(s).startedAt)/1e3)),Ze=wt(()=>Math.floor(d(mt)/86400)),Gt=wt(()=>Math.floor(d(mt)%86400/3600)),ni=wt(()=>Math.floor(d(mt)%3600/60));var cn=AQ(),Qi=b(Et(cn)),En=v(Qi);V(()=>F(En,`${d(Ze)>0?d(Ze)+"d ":""}${d(Gt)>0||d(Ze)>0?d(Gt)+"h ":""}${d(ni)??""}m`)),E(_t,cn)};W(G,_t=>{d(s).startedAt&&_t(ne)})}var Ve=b(G,3),Qe=v(Ve),Oe=b(Ve,3),Ee=v(Oe),zt=b(Oe,3),Lt=v(zt),Ke=b(zt,2);{var Vt=_t=>{var mt=OQ(),Ze=b(Et(mt)),Gt=v(Ze),ni=b(Ze,3),cn=v(ni);V(()=>{F(Gt,d(s).matterNodes??0),F(cn,d(s).matterEndpoints??0)}),E(_t,mt)};W(Ke,_t=>{d(s).matterEnabled&&_t(Vt)})}var it=b(Ke,2);{var Te=_t=>{var mt=FQ(),Ze=b(Et(mt)),Gt=v(Ze),ni=b(Ze,3),cn=v(ni);V(()=>{F(Gt,d(s).dbDocs??"—"),F(cn,d(s).dbViews??"—")}),E(_t,mt)};W(it,_t=>{d(s).dbEnabled&&_t(Te)})}var Fe=b(it,3),We=v(Fe),Be=b(Fe,3),Pt=v(Be),ye=b(Be,3),nt=v(ye);V(()=>{F(Qe,d(s).scripts),F(Ee,d(s).topics),F(Lt,d(s).mqttMsgPerSec??"—"),F(We,d(s).handlers??"—"),F(Pt,d(s).memMb!=null?d(s).memMb+" MB":"—"),F(nt,d(s).cpuPercent!=null?d(s).cpuPercent+" %":"—")}),E(bt,Zt)},Pe=bt=>{var Zt=WQ();E(bt,Zt)};W(vt,bt=>{d(s)?bt(Ti):bt(Pe,-1)})}var Ge=b(vt,2),Ht=v(Ge);{var Je=bt=>{var Zt=BQ();q("click",Zt,()=>{y(r,!1),lt()}),E(bt,Zt)};W(Ht,bt=>{var Zt;(Zt=d(s))!=null&&Zt.docker||bt(Je)})}q("click",ve,bt=>bt.stopPropagation()),E(ge,ve)};W(_e,ge=>{d(r)&&ge($)})}var Z=b(Y,2);let ie;var Se=b(Z,2);{var pt=ge=>{var ve=VQ();q("click",ve,P),E(ge,ve)};W(Se,ge=>{d(f)==="password"&&ge(pt)})}var Ae=b(hi,2),Ie=v(Ae);Ds(Jf(Ie,{}),ge=>y(A,ge,!0),()=>d(A));var st=b(Ie,2);let Dt;var St=v(st);{let ge=wt(()=>d(n)==="scripts");hK(St,{get active(){return d(ge)}})}var oi=b(st,2);let ti;var se=v(oi);WY(se,{});var ke=b(oi,2);let rt;var kt=v(ke);yY(kt,{});var ft=b(ke,2);let Xe;var Ft=v(ft);ZX(Ft,{});var li=b(ft,2);let yi;var Ei=v(li);yQ(Ei,{});var fn=b(li,2);let xn;var un=v(fn);oX(un,{});var Li=b(fn,2);let gn;var z=v(Li);YK(z,{});var ee=b(Li,2);let $e;var Ye=v(ee);tZ(Ye,{}),V(()=>{Oi=Rt(Ii,1,"svelte-1n46o8q",null,Oi,{active:d(n)==="scripts"}),Mi=Rt(Fi,1,"svelte-1n46o8q",null,Mi,{active:d(n)==="packages"}),tt=Rt(_i,1,"svelte-1n46o8q",null,tt,{active:d(n)==="mqtt"}),Ri=Rt(Pi,1,"svelte-1n46o8q",null,Ri,{active:d(n)==="matter"}),Ut=Rt(Me,1,"svelte-1n46o8q",null,Ut,{active:d(n)==="broker"}),ki=Rt(ui,1,"svelte-1n46o8q",null,ki,{active:d(n)==="db"}),qt=Rt(ze,1,"svelte-1n46o8q",null,qt,{active:d(n)==="logs"}),ie=Rt(Z,1,"nav-settings svelte-1n46o8q",null,ie,{active:d(n)==="config"}),Dt=Rt(st,1,"page-wrap svelte-1n46o8q",null,Dt,{hidden:d(n)!=="scripts"}),ti=Rt(oi,1,"page-wrap svelte-1n46o8q",null,ti,{hidden:d(n)!=="packages"}),rt=Rt(ke,1,"page-wrap svelte-1n46o8q",null,rt,{hidden:d(n)!=="mqtt"}),Xe=Rt(ft,1,"page-wrap svelte-1n46o8q",null,Xe,{hidden:d(n)!=="matter"}),yi=Rt(li,1,"page-wrap svelte-1n46o8q",null,yi,{hidden:d(n)!=="broker"}),xn=Rt(fn,1,"page-wrap svelte-1n46o8q",null,xn,{hidden:d(n)!=="db"}),gn=Rt(Li,1,"page-wrap svelte-1n46o8q",null,gn,{hidden:d(n)!=="config"}),$e=Rt(ee,1,"page-wrap svelte-1n46o8q",null,$e,{hidden:d(n)!=="logs"})}),q("click",Ii,()=>Le("scripts")),q("click",Fi,()=>Le("packages")),q("click",_i,()=>Le("mqtt")),q("click",Pi,()=>Le("matter")),q("click",Me,()=>Le("broker")),q("click",ui,()=>Le("db")),q("click",ze,()=>{Le("logs"),y(at,!1),y(me,!1)}),q("click",ae,ge=>{ge.stopPropagation(),y(a,!d(a)),y(r,!1)}),q("click",fe,ge=>{ge.stopPropagation(),y(r,!d(r)),y(a,!1)}),q("click",Z,()=>Le("config")),E(It,bi)};W(Ue,It=>{d(k)&&!d(p)&&It(De)})}var dt=b(Ue,2);{var Ot=It=>{var bi=UQ(),hi=v(bi),Ii=b(v(hi),4),Oi=b(v(Ii),2),Fi=b(Ii,2);{var Mi=_i=>{var tt=$Q(),Bt=v(tt);V(()=>F(Bt,d(m))),E(_i,tt)};W(Fi,_i=>{d(m)&&_i(Mi)})}var Ci=b(Fi,2),ai=v(Ci);V(()=>{Oi.disabled=d(x),Ci.disabled=d(x)||!d(w),F(ai,d(x)?"Signing in…":"Sign in")}),cs("submit",hi,_i=>{_i.preventDefault(),D()}),Yt(Oi,()=>d(w),_i=>y(w,_i)),E(It,bi)};W(dt,It=>{d(p)&&It(Ot)})}var ri=b(dt,2);{var Wt=It=>{var bi=qQ();E(It,bi)};W(ri,It=>{d(j)&&It(Wt)})}var Tt=b(ri,2);{var Nt=It=>{var bi=GQ();E(It,bi)};W(Tt,It=>{d(u)&&It(Nt)})}E(o,xt),Rs()}Ks(["click"]);DH(ZQ,{target:document.getElementById("app")});export{tM as t};
|
|
230
|
+
*[stopped]*`,toolEvents:d(ue).length>0?[...d(ue)]:void 0}],!0)}else y(c,ee.message,!0)}finally{D=null,y(s,null),y(ue,[],!0),y(a,!1)}}}function Ri(){D==null||D.abort()}function ji(z){z.key==="Enter"&&!z.shiftKey&&(z.preventDefault(),Pi())}function an(){y(n,[],!0),y(c,"")}const Ni=["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 Cn(z){y(r,z,!0),at==null||at.focus()}var Me=HZ(),Ut=Et(Me),ui=v(Ut),ki=b(v(ui),2);{var ze=z=>{var ee=iZ(),$e=v(ee);{var Ye=ve=>{var vt=sa();V(()=>F(vt,`${d(u).provider??""} · ${(d(g)||d(u).model)??""}`)),E(ve,vt)},ge=ve=>{var vt=sa("Not configured");E(ve,vt)};W($e,ve=>{d(gt)?ve(Ye):ve(ge,-1)})}V(()=>Hi(ee,"title",`Provider: ${d(u).provider??""}`)),E(z,ee)};W(ki,z=>{d(u)&&z(ze)})}var qt=b(ki,2);{var fi=z=>{var ee=nZ();q("click",ee,an),E(z,ee)};W(qt,z=>{d(n).length>0&&z(fi)})}var Di=b(ui,2),qe=v(Di);{var he=z=>{var ee=sZ();E(z,ee)},K=z=>{var ee=aZ(),$e=v(ee),Ye=v($e);{var ge=Ti=>{var Pe=oZ(),Ge=b(Et(Pe)),Ht=v(Ge);V(()=>F(Ht,t().id)),E(Ti,Pe)},ve=Ti=>{var Pe=sa("No view selected. Ask a general sheDB view question.");E(Ti,Pe)};W(Ye,Ti=>{t()?Ti(ge):Ti(ve,-1)})}var vt=b($e,2);pi(vt,17,()=>Ni,on,(Ti,Pe)=>{var Ge=rZ(),Ht=v(Ge);V(()=>F(Ht,d(Pe))),q("click",Ge,()=>Cn(d(Pe))),E(Ti,Ge)}),E(z,ee)};W(qe,z=>{d(gt)?d(n).length===0&&d(s)===null&&z(K,1):z(he)})}var ae=b(qe,2);pi(ae,17,()=>d(n),on,(z,ee,$e)=>{var Ye=fZ(),ge=v(Ye);{var ve=Ti=>{var Pe=lZ(),Ge=v(Pe);V(()=>F(Ge,d(ee).content)),E(Ti,Pe)},vt=Ti=>{const Pe=wt(()=>Ue(d(ee).content)),Ge=wt(()=>dt(d(Pe)));var Ht=hZ(),Je=Et(Ht);{var bt=Oe=>{var Ee=cE();pi(Ee,21,()=>d(ee).toolEvents,on,(zt,Lt)=>{var Ke=Vs(),Vt=Et(Ke);{var it=Fe=>{var We=aE(),Be=b(v(We)),Pt=v(Be);V(ye=>F(Pt,ye),[()=>d(Lt).name.replace(/_/g," ")]),E(Fe,We)},Te=Fe=>{var We=lE(),Be=b(v(We)),Pt=v(Be);V(ye=>F(Pt,ye),[()=>d(Lt).name.replace(/_/g," ")]),E(Fe,We)};W(Vt,Fe=>{d(Lt).type==="tool_call"?Fe(it):Fe(Te,-1)})}E(zt,Ke)}),E(Oe,Ee)};W(Je,Oe=>{var Ee;(Ee=d(ee).toolEvents)!=null&&Ee.length&&Oe(bt)})}var Zt=b(Je,2),G=v(Zt);pi(G,17,()=>d(Pe),on,(Oe,Ee,zt)=>{var Lt=Vs(),Ke=Et(Lt);{var Vt=Te=>{var Fe=dE();sc(Fe,()=>bi(d(Ee).text),!0),E(Te,Fe)},it=Te=>{const Fe=wt(()=>`${$e}:${zt}`),We=wt(()=>Tt(d(Ee).text)),Be=wt(()=>d(p).has(d(Fe))),Pt=wt(()=>d(Ee).lang==="filter");var ye=dZ(),nt=v(ye),_t=v(nt),mt=v(_t),Ze=b(_t,2),Gt=v(Ze),ni=b(nt,2);let cn;var Qi=v(ni),En=v(Qi);sc(En,()=>It(d(Ee).text,d(Ee).lang??""),!0);var Jn=b(Qi,2);{var Gi=gi=>{var bn=cZ(),ln=v(bn);V(()=>F(ln,d(Be)?"▲ collapse":"▼ expand")),q("click",bn,()=>Nt(d(Fe))),E(gi,bn)};W(Jn,gi=>{d(We)&&gi(Gi)})}V(()=>{F(mt,d(Pt)?"filter":d(Ee).lang),cn=Rt(ni,1,"code-body svelte-1twuiul",null,cn,{collapsed:d(We)&&!d(Be)})}),q("click",Gt,()=>Ii(d(Ee).text)),E(Te,ye)};W(Ke,Te=>{d(Ee).type==="text"?Te(Vt):Te(it,-1)})}E(Oe,Lt)});var ne=b(G,2);{var Ve=Oe=>{var Ee=uZ(),zt=v(Ee),Lt=v(zt);V(Ke=>F(Lt,Ke),[()=>ri(d(Ge))]),q("click",zt,()=>e.onApplyView(d(Ge))),E(Oe,Ee)},Qe=wt(()=>Ot(d(Ge))&&e.onApplyView);W(ne,Oe=>{d(Qe)&&Oe(Ve)})}E(Ti,Ht)};W(ge,Ti=>{d(ee).role==="user"?Ti(ve):Ti(vt,-1)})}V(()=>Rt(Ye,1,`message ${d(ee).role??""}`,"svelte-1twuiul")),E(z,Ye)});var Ce=b(ae,2);{var Ne=z=>{var ee=cE();pi(ee,21,()=>d(ue),on,($e,Ye)=>{var ge=Vs(),ve=Et(ge);{var vt=Pe=>{var Ge=aE(),Ht=b(v(Ge)),Je=v(Ht);V(bt=>F(Je,bt),[()=>d(Ye).name.replace(/_/g," ")]),E(Pe,Ge)},Ti=Pe=>{var Ge=lE(),Ht=b(v(Ge)),Je=v(Ht);V(bt=>F(Je,bt),[()=>d(Ye).name.replace(/_/g," ")]),E(Pe,Ge)};W(ve,Pe=>{d(Ye).type==="tool_call"?Pe(vt):Pe(Ti,-1)})}E($e,ge)}),E(z,ee)};W(Ce,z=>{d(ue).length>0&&z(Ne)})}var ot=b(Ce,2);{var R=z=>{var ee=gZ(),$e=v(ee),Ye=v($e),ge=v(Ye);V(()=>F(ge,A[d(P)])),E(z,ee)};W(ot,z=>{d(a)&&d(s)===null&&d(ue).length===0&&z(R)})}var Q=b(ot,2);{var Y=z=>{var ee=_Z(),$e=v(ee);pi($e,21,()=>De(d(s)),on,(Ye,ge)=>{var ve=Vs(),vt=Et(ve);{var Ti=Ge=>{var Ht=dE();sc(Ht,()=>bi(d(ge).text),!0),E(Ge,Ht)},Pe=Ge=>{var Ht=pZ(),Je=v(Ht),bt=v(Je),Zt=v(bt),G=b(Je,2),ne=v(G);sc(ne,()=>It(d(ge).text,d(ge).lang??""),!0),V(()=>F(Zt,d(ge).lang)),E(Ge,Ht)};W(vt,Ge=>{d(ge).type==="text"?Ge(Ti):Ge(Pe,-1)})}E(Ye,ve)}),E(z,ee)};W(Q,z=>{d(s)!==null&&z(Y)})}Ds(Di,z=>me=z,()=>me);var fe=b(Di,2);{var _e=z=>{var ee=mZ(),$e=v(ee);V(()=>F($e,d(c))),E(z,ee)};W(fe,z=>{d(c)&&z(_e)})}var $=b(fe,2),Z=v($),ie=v(Z),Se=b(Z,2),pt=v(Se),Ae=b(Se,2),Ie=v(Ae),st=b(Ae,2),Dt=v(st),St=b($,2),oi=v(St);{var ti=z=>{var ee=vZ();let $e;var Ye=b(v(ee),2),ge=v(Ye),ve=b(Ye,2),vt=v(ve);V(()=>{$e=Rt(ee,1,"file-chip svelte-1twuiul",null,$e,{inactive:!d(le)}),F(ge,t().id),Hi(ve,"title",d(le)?"Remove from context":"Re-add to context"),F(vt,d(le)?"×":"+")}),q("click",ve,()=>y(le,!d(le))),E(z,ee)};W(oi,z=>{t()&&z(ti)})}var se=b(oi,2);pi(se,17,()=>d(J),on,(z,ee,$e)=>{const Ye=wt(()=>Mi(d(ee).name));var ge=bZ(),ve=v(ge),vt=v(ve),Ti=b(ve,2),Pe=v(Ti),Ge=b(Ti,2);V((Ht,Je)=>{Rt(ve,1,`badge badge-${Ht??""}`,"svelte-1twuiul"),F(vt,Je),F(Pe,d(ee).name)},[()=>d(Ye).toLowerCase(),()=>Ci(d(Ye))]),q("click",Ge,()=>ai($e)),E(z,ge)});var ke=b(se,2),rt=b(ke,2);Ds(rt,z=>He=z,()=>He);var kt=b(St,2);let ft;var Xe=v(kt);let Ft;var li=v(Xe);Ds(li,z=>at=z,()=>at);var yi=b(Xe,2);{var Ei=z=>{var ee=yZ();q("click",ee,Ri),E(z,ee)},fn=z=>{var ee=wZ();V($e=>ee.disabled=$e,[()=>!d(r).trim()||!d(gt)]),q("click",ee,Pi),E(z,ee)};W(yi,z=>{d(a)?z(Ei):z(fn,-1)})}var xn=b(kt,2);{var un=z=>{var ee=LZ(),$e=v(ee),Ye=v($e),ge=b($e,2);{var ve=Ge=>{var Ht=CZ();pi(Ht,21,()=>d(f),on,(Je,bt)=>{var Zt=SZ(),G=v(Zt),ne={};V(()=>{F(G,d(bt)),ne!==(ne=d(bt))&&(Zt.value=(Zt.__value=d(bt))??"")}),E(Je,Zt)}),V(()=>Ht.disabled=d(a)),Ho(Ht,()=>d(g),Je=>y(g,Je)),E(Ge,Ht)},vt=Ge=>{var Ht=xZ(),Je=v(Ht);V(()=>F(Je,d(g)||d(u).model)),E(Ge,Ht)};W(ge,Ge=>{d(f).length>0?Ge(ve):Ge(vt,-1)})}var Ti=b(ge,2);{var Pe=Ge=>{var Ht=kZ();q("click",Ht,Oi),E(Ge,Ht)};W(Ti,Ge=>{d(u).provider==="ollama"&&Ge(Pe)})}V(()=>F(Ye,d(u).provider)),E(z,ee)};W(xn,z=>{d(gt)&&d(u)&&z(un)})}var Li=b(Ut,2);{var gn=z=>{var ee=FZ(),$e=v(ee),Ye=v($e),ge=v(Ye),ve=v(ge),vt=b(ge,2),Ti=b(Ye,2),Pe=v(Ti);{var Ge=bt=>{var Zt=IZ();E(bt,Zt)},Ht=bt=>{var Zt=DZ(),G=v(Zt);V(()=>F(G,d(k))),E(bt,Zt)},Je=bt=>{var Zt=OZ(),G=v(Zt);{var ne=Te=>{var Fe=EZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).version)),E(Te,Fe)};W(G,Te=>{d(m).version&&Te(ne)})}var Ve=b(G,2);{var Qe=Te=>{var Fe=TZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).details.family)),E(Te,Fe)};W(Ve,Te=>{var Fe;(Fe=d(m).details)!=null&&Fe.family&&Te(Qe)})}var Oe=b(Ve,2);{var Ee=Te=>{var Fe=PZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).details.parameter_size)),E(Te,Fe)};W(Oe,Te=>{var Fe;(Fe=d(m).details)!=null&&Fe.parameter_size&&Te(Ee)})}var zt=b(Oe,2);{var Lt=Te=>{var Fe=MZ(),We=b(Et(Fe)),Be=v(We);V(()=>F(Be,d(m).details.quantization_level)),E(Te,Fe)};W(zt,Te=>{var Fe;(Fe=d(m).details)!=null&&Fe.quantization_level&&Te(Lt)})}var Ke=b(zt,2);{var Vt=Te=>{var Fe=RZ(),We=b(Et(Fe),2);pi(We,21,()=>d(m).running,on,(Be,Pt)=>{var ye=NZ(),nt=v(ye);V(_t=>F(nt,`${d(Pt).name??""} · ${_t??""} VRAM`),[()=>Fi(d(Pt).size_vram)]),E(Be,ye)}),E(Te,Fe)},it=Te=>{var Fe=AZ();E(Te,Fe)};W(Ke,Te=>{d(m).running&&d(m).running.length>0?Te(Vt):d(m).running!==null&&Te(it,1)})}E(bt,Zt)};W(Pe,bt=>{d(x)?bt(Ge):d(k)?bt(Ht,1):d(m)&&bt(Je,2)})}V(()=>{var bt;return F(ve,`Ollama · ${(d(g)||((bt=d(u))==null?void 0:bt.model))??""}`)}),q("click",ee,()=>y(w,!1)),q("click",$e,bt=>bt.stopPropagation()),q("click",vt,()=>y(w,!1)),E(z,ee)};W(Li,z=>{d(w)&&z(gn)})}V(z=>{F(Dt,z),ft=Rt(kt,1,"input-row svelte-1twuiul",null,ft,{"drag-over":d(we)}),Ft=Rt(Xe,1,"textarea-wrap svelte-1twuiul",null,Ft,{loading:d(a)}),Hi(li,"placeholder",d(gt)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),li.disabled=d(a)||!d(gt)},[()=>Fi(d(Ct))]),Is(ie,()=>d(j),z=>y(j,z)),Is(pt,()=>d(H),z=>y(H,z)),Is(Ie,()=>d(te),z=>y(te,z)),q("click",ke,_i),q("change",rt,Bt),cs("dragover",kt,mi),cs("dragleave",kt,Vi),cs("drop",kt,ii),q("keydown",li,ji),Yt(li,()=>d(r),z=>y(r,z)),E(o,Me),Rs()}Ks(["click","change","keydown"]);var BZ=T('<div class="me svelte-1pxdb1"></div>');function gS(o,e){Ns(e,!0);let t=Cf(e,"value",15,""),i=Cf(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()),$n(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=BZ();Ds(a,c=>n=c,()=>n),E(o,a),Rs()}var zZ=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),VZ=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>'),jZ=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>'),$Z=T('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),UZ=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),qZ=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>'),GZ=T('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),KZ=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>'),ZZ=T('<span class="badge-error svelte-rrt0o">error</span>'),XZ=T('<span class="badge-ok svelte-rrt0o"> </span>'),YZ=T('<pre class="result-error svelte-rrt0o"> </pre>'),JZ=T('<pre class="result-json svelte-rrt0o"> </pre>'),QZ=T('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),eX=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>'),tX=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),iX=T('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),nX=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>'),sX=T('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function oX(o,e){Ns(e,!0);const t=he=>{var K=zZ(),ae=Et(K);Ds(Jf(ae,{}),Ce=>Ci=Ce,()=>Ci),E(he,K)};let i=M(wi([])),n=M(null),s=M("{}"),r=M(!1),a=M(null);const c="she-db-selected-view";let u=M(wi([])),f=M(wi(localStorage.getItem(c))),g=M("#"),p=M("// emit(this.someProperty)"),w=M(""),m=M(""),x=M(!1),k=M(!1),D=M(null),P=M(!1),A=M(null),j=M("she/db/view/");const H="she-db-panel";let te=M(wi(localStorage.getItem(H)??"docs")),J=M(""),le=M(!1),we=M(null),He=M(""),ue=M(!1),et=M(null);const at="she-db-sidebar-width";let me=M(wi(parseInt(localStorage.getItem(at)??"220",10))),lt=!1,gt=0,Ct=0;const Le="she-db-chat-width",xt="she-db-chat-open";let Ue=M(localStorage.getItem(xt)==="true"),De=M(wi(parseInt(localStorage.getItem(Le)??"320",10))),dt=!1,Ot=0,ri=0;const Wt=wt(()=>d(f)?{id:d(f),filter:d(g),map:d(p),reduce:d(w)}:null);function Tt(he){he.filter!==void 0&&y(g,he.filter,!0),he.map!==void 0&&y(p,he.map,!0),he.reduce!==void 0&&y(w,he.reduce,!0)}$n(()=>{localStorage.setItem(xt,String(d(Ue)))}),$n(()=>{localStorage.setItem(H,d(te))}),$n(()=>{d(f)?localStorage.setItem(c,d(f)):localStorage.removeItem(c)});function Nt(he){lt=!0,gt=he.clientX,Ct=d(me),he.preventDefault()}function It(he){lt&&y(me,Math.max(140,Math.min(500,Ct+he.clientX-gt)),!0),dt&&y(De,Math.max(240,Math.min(600,ri-(he.clientX-Ot))),!0)}function bi(){lt&&(lt=!1,localStorage.setItem(at,String(d(me)))),dt&&(dt=!1,localStorage.setItem(Le,String(d(De))))}function hi(he){dt=!0,Ot=he.clientX,ri=d(De),he.preventDefault()}async function Ii(){try{y(i,await RR(),!0)}catch{}}async function Oi(){try{y(u,await AR(),!0)}catch{}}async function Fi(he){y(n,he,!0),y(a,null),y(r,!0);try{const K=await C7(he);y(s,JSON.stringify(K,null,2),!0)}catch(K){y(a,K instanceof Error?K.message:String(K),!0)}finally{y(r,!1)}}async function Mi(){if(d(n)){y(a,null);try{const he=JSON.parse(d(s));await AD(d(n),he)}catch(he){y(a,he instanceof Error?he.message:String(he),!0)}}}let Ci;async function ai(){if(d(n)&&await Ci.show(`Delete document "${d(n)}"?`,{confirm:"Delete",danger:!0}))try{await x7(d(n)),y(n,null),y(s,"{}")}catch(he){y(a,he instanceof Error?he.message:String(he),!0)}}async function _i(){const he=d(J).trim();if(he){y(we,null);try{await AD(he,{}),y(le,!1),y(J,""),await Fi(he)}catch(K){y(we,K instanceof Error?K.message:String(K),!0)}}}async function tt(he){y(f,he,!0),y(A,null),y(P,!0),y(D,null);try{const K=await k7(he);y(g,K.filter??"",!0),y(p,K.map,!0),y(w,K.reduce??"",!0),y(m,K.description??"",!0),y(x,K.mqttpub??!1,!0),y(k,K.retain??!1,!0),y(D,await hS(he).catch(()=>null),!0)}catch(K){y(A,K instanceof Error?K.message:String(K),!0)}finally{y(P,!1)}}async function Bt(){if(d(f)){y(A,null);try{const he={map:d(p)};d(g).trim()&&(he.filter=d(g).trim()),d(w).trim()&&(he.reduce=d(w).trim()),d(m).trim()&&(he.description=d(m).trim()),d(x)&&(he.mqttpub=!0),d(k)&&(he.retain=!0),await OD(d(f),he)}catch(he){y(A,he instanceof Error?he.message:String(he),!0)}}}async function ii(){if(d(f))try{y(D,await hS(d(f)),!0)}catch(he){y(A,he instanceof Error?he.message:String(he),!0)}}async function mi(){if(d(f)&&await Ci.show(`Delete view "${d(f)}"?`,{confirm:"Delete",danger:!0}))try{await L7(d(f)),y(f,null),y(g,""),y(p,"// emit(this.someProperty)"),y(w,""),y(m,""),y(x,!1),y(k,!1),y(D,null)}catch(he){y(A,he instanceof Error?he.message:String(he),!0)}}async function Vi(){if(!d(He).trim())return;const he=d(He).trim();y(et,null);try{await OD(he,{map:"// emit(this.someProperty)"}),y(ue,!1),y(He,""),await Oi(),await tt(he)}catch(K){y(et,K instanceof Error?K.message:String(K),!0)}}let Pi=M(""),Ri=M(""),ji=wt(()=>[...d(i)].filter(he=>!d(Pi)||he.toLowerCase().includes(d(Pi).toLowerCase())).sort()),an=wt(()=>[...d(u)].filter(he=>!d(Ri)||he.toLowerCase().includes(d(Ri).toLowerCase())).sort());ao(()=>{Ii(),Oi().then(()=>{d(f)&&d(u).includes(d(f))?tt(d(f)):y(f,null)}),Dl().then(Ne=>{const ot=Ne.dbPrefix||"she/db/",R=ot.endsWith("/")?ot:ot+"/";y(j,R+"view/")}).catch(()=>{});const he=kr("db:ids",Ne=>{y(i,Ne.ids??[],!0)}),K=kr("db:viewIds",Ne=>{y(u,Ne.ids??[],!0)}),ae=kr("db:change",async Ne=>{const ot=Ne.id;d(n)===ot&&(Ne.doc===null?(y(n,null),y(s,"{}")):y(s,JSON.stringify(Ne.doc,null,2),!0))}),Ce=kr("db:viewUpdate",async Ne=>{const ot=Ne.id;d(f)===ot&&y(D,await hS(ot).catch(()=>null),!0)});return()=>{he(),K(),ae(),Ce()}});var Ni=sX(),Cn=v(Ni),Me=v(Cn);let Ut;var ui=b(Me,2);let ki;var ze=b(ui,2);{var qt=he=>{var K=VZ();let ae;V(()=>{ae=Rt(K,1,"ai-toggle svelte-rrt0o",null,ae,{"ai-open":d(Ue)}),Hi(K,"title",d(Ue)?"Close AI assistant":"Open AI assistant")}),q("click",K,()=>y(Ue,!d(Ue))),E(he,K)};W(ze,he=>{d(te)==="views"&&he(qt)})}var fi=b(Cn,2);{var Di=he=>{var K=qZ(),ae=v(K);let Ce;var Ne=v(ae),ot=v(Ne),R=b(Ne,2);{var Q=Ae=>{var Ie=jZ(),st=Et(Ie),Dt=v(st),St=b(Dt,2),oi=b(st,2);{var ti=se=>{var ke=uE(),rt=v(ke);V(()=>F(rt,d(we))),E(se,ke)};W(oi,se=>{d(we)&&se(ti)})}q("keydown",Dt,se=>se.key==="Enter"&&_i()),Yt(Dt,()=>d(J),se=>y(J,se)),q("click",St,_i),E(Ae,Ie)};W(R,Ae=>{d(le)&&Ae(Q)})}var Y=b(R,2),fe=v(Y),_e=b(Y,2);pi(_e,20,()=>d(ji),Ae=>Ae,(Ae,Ie)=>{var st=hE();let Dt;var St=v(st);V(()=>{Dt=Rt(st,1,"flat-item svelte-rrt0o",null,Dt,{"active-item":d(n)===Ie}),F(St,Ie)}),q("click",st,()=>Fi(Ie)),E(Ae,st)});var $=b(ae,2),Z=b($,2),ie=v(Z);{var Se=Ae=>{var Ie=UZ(),st=Et(Ie),Dt=v(st),St=v(Dt),oi=b(Dt,2),ti=b(oi,2),se=b(st,2);{var ke=Xe=>{var Ft=fE(),li=v(Ft);V(()=>F(li,d(a))),E(Xe,Ft)};W(se,Xe=>{d(a)&&Xe(ke)})}var rt=b(se,2);{var kt=Xe=>{var Ft=gE();E(Xe,Ft)},ft=Xe=>{var Ft=$Z(),li=v(Ft);gS(li,{language:"json",get value(){return d(s)},set value(yi){y(s,yi,!0)}}),E(Xe,Ft)};W(rt,Xe=>{d(r)?Xe(kt):Xe(ft,-1)})}V(()=>F(St,d(n))),q("click",oi,Mi),q("click",ti,ai),E(Ae,Ie)},pt=Ae=>{t(Ae)};W(ie,Ae=>{d(n)?Ae(Se):Ae(pt,-1)})}V(()=>Ce=Fo(ae,"",Ce,{width:`${d(me)??""}px`})),q("click",ot,()=>{y(le,!d(le)),y(we,null)}),Yt(fe,()=>d(Pi),Ae=>y(Pi,Ae)),q("mousedown",$,Nt),E(he,K)},qe=he=>{var K=nX(),ae=v(K);let Ce;var Ne=v(ae),ot=v(Ne),R=b(Ne,2);{var Q=st=>{var Dt=GZ(),St=Et(Dt),oi=v(St),ti=b(oi,2),se=b(St,2);{var ke=rt=>{var kt=uE(),ft=v(kt);V(()=>F(ft,d(et))),E(rt,kt)};W(se,rt=>{d(et)&&rt(ke)})}q("keydown",oi,rt=>rt.key==="Enter"&&Vi()),Yt(oi,()=>d(He),rt=>y(He,rt)),q("click",ti,Vi),E(st,Dt)};W(R,st=>{d(ue)&&st(Q)})}var Y=b(R,2),fe=v(Y),_e=b(Y,2);pi(_e,20,()=>d(an),st=>st,(st,Dt)=>{var St=hE();let oi;var ti=v(St);V(()=>{oi=Rt(St,1,"flat-item svelte-rrt0o",null,oi,{"active-item":d(f)===Dt}),F(ti,Dt)}),q("click",St,()=>tt(Dt)),E(st,St)});var $=b(ae,2),Z=b($,2),ie=v(Z);{var Se=st=>{var Dt=tX(),St=Et(Dt),oi=v(St),ti=v(oi),se=b(oi,2),ke=b(se,2),rt=b(ke,2),kt=b(St,2);{var ft=yi=>{var Ei=fE(),fn=v(Ei);V(()=>F(fn,d(A))),E(yi,Ei)};W(kt,yi=>{d(A)&&yi(ft)})}var Xe=b(kt,2);{var Ft=yi=>{var Ei=gE();E(yi,Ei)},li=yi=>{var Ei=eX(),fn=v(Ei),xn=b(v(fn),2),un=v(xn),Li=b(fn,2),gn=b(v(Li),2),z=v(gn),ee=b(Li,2),$e=b(v(ee),2),Ye=v($e);gS(Ye,{language:"javascript",get value(){return d(p)},set value(Qe){y(p,Qe,!0)}});var ge=b(ee,2),ve=b(v(ge),2),vt=v(ve);gS(vt,{language:"javascript",get value(){return d(w)},set value(Qe){y(w,Qe,!0)}});var Ti=b(ge,2),Pe=v(Ti),Ge=v(Pe),Ht=b(Ge,4),Je=b(v(Ht)),bt=v(Je),Zt=b(Pe,2);{var G=Qe=>{var Oe=KZ(),Ee=v(Oe);Is(Ee,()=>d(k),zt=>y(k,zt)),E(Qe,Oe)};W(Zt,Qe=>{d(x)&&Qe(G)})}var ne=b(Ti,2);{var Ve=Qe=>{var Oe=QZ(),Ee=v(Oe),zt=b(v(Ee));{var Lt=Fe=>{var We=ZZ();E(Fe,We)},Ke=Fe=>{var We=XZ(),Be=v(We);V(()=>F(Be,`${d(D).length??0??""} items · rev ${d(D)._rev??""}`)),E(Fe,We)};W(zt,Fe=>{d(D).error?Fe(Lt):Fe(Ke,-1)})}var Vt=b(Ee,2);{var it=Fe=>{var We=YZ(),Be=v(We);V(()=>F(Be,d(D).error)),E(Fe,We)},Te=Fe=>{var We=JZ(),Be=v(We);V(Pt=>F(Be,Pt),[()=>JSON.stringify(d(D).result,null,2)]),E(Fe,We)};W(Vt,Fe=>{d(D).error?Fe(it):Fe(Te,-1)})}E(Qe,Oe)};W(ne,Qe=>{d(D)&&Qe(Ve)})}V(()=>F(bt,`${d(j)??""}${d(f)??""} on every update`)),Yt(un,()=>d(m),Qe=>y(m,Qe)),Yt(z,()=>d(g),Qe=>y(g,Qe)),Is(Ge,()=>d(x),Qe=>y(x,Qe)),E(yi,Ei)};W(Xe,yi=>{d(P)?yi(Ft):yi(li,-1)})}V(()=>F(ti,d(f))),q("click",se,Bt),q("click",ke,ii),q("click",rt,mi),E(st,Dt)},pt=st=>{t(st)};W(ie,st=>{d(f)?st(Se):st(pt,-1)})}var Ae=b(Z,2);{var Ie=st=>{var Dt=iX(),St=Et(Dt),oi=b(St,2);let ti;var se=v(oi);WZ(se,{get currentView(){return d(Wt)},onApplyView:Tt}),V(()=>ti=Fo(oi,"",ti,{width:`${d(De)??""}px`})),q("mousedown",St,hi),E(st,Dt)};W(Ae,st=>{d(Ue)&&st(Ie)})}V(()=>Ce=Fo(ae,"",Ce,{width:`${d(me)??""}px`})),q("click",ot,()=>{y(ue,!d(ue)),y(et,null)}),Yt(fe,()=>d(Ri),st=>y(Ri,st)),q("mousedown",$,Nt),E(he,K)};W(fi,he=>{d(te)==="docs"?he(Di):he(qe,-1)})}V(()=>{Ut=Rt(Me,1,"svelte-rrt0o",null,Ut,{active:d(te)==="docs"}),ki=Rt(ui,1,"svelte-rrt0o",null,ki,{active:d(te)==="views"})}),q("mousemove",Ni,It),q("mouseup",Ni,bi),cs("mouseleave",Ni,bi),q("click",Me,()=>y(te,"docs")),q("click",ui,()=>y(te,"views")),E(o,Ni),Rs()}Ks(["mousemove","mouseup","click","keydown","mousedown"]);var rX=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),aX=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>'),lX=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>'),cX=T('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),dX=T('<span class="device-name svelte-1ua3isv"> </span>'),uX=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>'),hX=T('<li class="empty svelte-1ua3isv">No paired devices</li>'),fX=T('<p class="info svelte-1ua3isv">Loading…</p>'),gX=T('<p class="device-subtitle svelte-1ua3isv"> </p>'),pX=T('<span class="ep-chip svelte-1ua3isv"> </span>'),_X=T('<span class="attr-id svelte-1ua3isv"> </span>'),mX=T('<button class="attr-action-btn svelte-1ua3isv"> </button>'),vX=T('<div class="attr-actions svelte-1ua3isv"></div>'),bX=T('<span class="cmd-sep svelte-1ua3isv">,</span>'),yX=T('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),wX=T('<span class="cmd-id svelte-1ua3isv"> </span>'),SX=T("<!> <!>",1),CX=T('<span class="cmd-list svelte-1ua3isv"></span>'),xX=T(' <span class="cmd-id svelte-1ua3isv"> </span>',1),kX=T('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),LX=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>'),IX=T('<th class="svelte-1ua3isv"> </th>'),DX=T('<td class="svelte-1ua3isv"> </td>'),EX=T('<tr class="svelte-1ua3isv"></tr>'),TX=T('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),PX=T('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),MX=T('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),NX=T('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),RX=T('<span class="attr-val svelte-1ua3isv"> </span>'),AX=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>'),OX=T('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),FX=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>'),HX=T('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),WX=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>'),BX=T('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),zX=T('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),VX=T('<span class="stream-badge svelte-1ua3isv"> </span>'),jX=T('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),pS=T(' <span class="e-sub svelte-1ua3isv"> </span>',1),$X=T('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),UX=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),qX=T('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),GX=T('<div class="stream-body svelte-1ua3isv"><!></div>'),KX=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 ZX(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(K,ae,Ce,Ne,ot){try{await H7(K,ae,Ce,Ne,ot)}catch(R){console.error("matter command failed",R)}}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(K,ae){const Ce=n[K];return ae.map(Ne=>{const ot=typeof Ne=="number"?Ne:Number(Ne);return{id:ot,name:(Ce==null?void 0:Ce[ot])??null}})}const r={10:"Door Lock",11:"Door Lock Controller",14:"Aggregator",15:"Generic Switch",17:"On/Off Plug-In Unit",18:"Dimmable Plug-In Unit",19:"Pump",20:"On/Off Light Switch",21:"Dimmer Switch",22:"Color Dimmer Switch",23:"Control Bridge",24:"Pump Controller",256:"On/Off Light",257:"Dimmable Light",268:"Extended Color Light",269:"Color Temperature Light",262:"Light Sensor",263:"Occupancy Sensor",514:"Window Covering",515:"Window Covering Controller",768:"Heating/Cooling Unit",769:"Thermostat",770:"Temperature Sensor",771:"Pressure Sensor",772:"Flow Sensor",773:"Humidity Sensor",774:"On/Off Sensor",2112:"Air Quality Sensor"},a={generatedCommandList:65528,acceptedCommandList:65529,eventList:65530,attributeList:65531,featureMap:65532,clusterRevision:65533},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(K){return"0x"+K.toString(16).toUpperCase().padStart(4,"0")}let f=M(wi([])),g=wi(new Map);function p(K){if(K==null)return"—";if(typeof K=="boolean"||typeof K=="number")return String(K);if(typeof K=="string")return K.length>50?K.slice(0,47)+"…":K;const ae=JSON.stringify(K);return ae.length>60?ae.slice(0,57)+"…":ae}function w(K){return K==null?"—":typeof K=="boolean"||typeof K=="number"?String(K):typeof K=="string"?K:JSON.stringify(K)}function m(K){return K!==null&&typeof K=="object"&&!Array.isArray(K)}function x(K){return Array.isArray(K)&&K.length>0&&K.every(m)}function k(K,ae){return!!(ae==="attributeList"||Array.isArray(K)&&K.length===0||m(K)&&Object.keys(K).length===0)}function D(K){return new Date(K).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const P=500,A=20,j=32;let H=0,te=M(wi([])),J=M(!0),le=M(180),we=wt(()=>{const K=Math.max(1,Math.floor((d(le)-j)/A)+1);return d(te).slice(0,K)});function He(K){K.preventDefault();const ae=K.clientY,Ce=d(le);function Ne(R){y(le,Math.max(60,Math.min(600,Ce+ae-R.clientY)),!0)}function ot(){document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",ot)}document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",ot)}let ue=M(null),et=M(!1),at=M(null),me=M(!1),lt=M("passcode"),gt=M(""),Ct=M(""),Le=M(""),xt=M(!1),Ue=M(null),De=M("");const dt="she:matter:selectedNodeId";async function Ot(){try{y(f,await FR(),!0);for(const K of d(f))Xm(K.nodeId).then(ae=>{g.set(K.nodeId,ae)}).catch(()=>{});if(d(f).length>0&&!d(ue)){const K=localStorage.getItem(dt),ae=K&&d(f).find(Ce=>Ce.nodeId===K)?K:d(f)[0].nodeId;ri(ae)}}catch{y(f,[],!0)}}async function ri(K){y(et,!0),y(at,null);try{y(ue,await Xm(K),!0),g.set(K,d(ue)),localStorage.setItem(dt,K)}catch(ae){y(at,ae instanceof Error?ae.message:String(ae),!0)}finally{y(et,!1)}}let Wt;async function Tt(K){var ae;if(await Wt.show(`Unpair device ${K}?`,{confirm:"Unpair",danger:!0}))try{await F7(K),((ae=d(ue))==null?void 0:ae.nodeId)===K&&y(ue,null),await Ot()}catch(Ce){y(at,Ce instanceof Error?Ce.message:String(Ce),!0)}}async function Nt(){y(xt,!0),y(Ue,null);try{let K;d(lt)==="passcode"?(K={passcode:Number(d(gt))},d(Ct)&&(K={...K,discriminator:Number(d(Ct))})):K={pairingCode:d(Le).trim()},d(De).trim()&&(K={...K,discoveryAddress:d(De).trim()}),await O7(K),y(me,!1),y(gt,""),y(Ct,""),y(Le,""),y(De,""),await Ot()}catch(K){y(Ue,K instanceof Error?K.message:String(K),!0)}finally{y(xt,!1)}}ao(()=>{Ot()});const It=kr("matter:deviceList",K=>{if(!Array.isArray(K.devices))return;const ae=K.devices;for(const Ce of ae)g.has(Ce.nodeId)||Xm(Ce.nodeId).then(Ne=>{g.set(Ce.nodeId,Ne)}).catch(()=>{});y(f,ae,!0)}),bi=kr("matter:deviceStatus",K=>{if(K.nodeId===void 0)return;const ae=String(K.nodeId),Ce=!!K.online;y(f,d(f).map(Ne=>Ne.nodeId===ae?{...Ne,online:Ce}:Ne),!0),y(te,[{id:H++,kind:"status",nodeId:ae,online:Ce,ts:Date.now()},...d(te).slice(0,P-1)],!0)}),hi=kr("matter:attr",K=>{const ae=String(K.nodeId),Ce=K.endpointId,Ne=String(K.clusterName),ot=String(K.attrName),R=K.value;if(d(ue)&&d(ue).nodeId===ae){const Y=d(ue).endpoints.find(_e=>_e.endpointId===Ce),fe=Y==null?void 0:Y.clusters.find(_e=>_e.name===Ne);fe&&(fe.attrs[ot]=R)}const Q=g.get(ae);if(Q){const Y=Q.endpoints.find(_e=>_e.endpointId===Ce),fe=Y==null?void 0:Y.clusters.find(_e=>_e.name===Ne);fe&&(fe.attrs[ot]=R)}y(te,[{id:H++,kind:"attr",nodeId:ae,endpointId:Ce,clusterName:Ne,attrName:ot,value:R,ts:K.ts??Date.now()},...d(te).slice(0,P-1)],!0)});Wy(()=>{It(),bi(),hi()});var Ii=KX(),Oi=Et(Ii);Ds(Jf(Oi,{}),K=>Wt=K,()=>Wt);var Fi=b(Oi,2),Mi=v(Fi),Ci=v(Mi),ai=v(Ci),_i=b(v(ai),2),tt=b(ai,2);{var Bt=K=>{var ae=lX(),Ce=v(ae),Ne=v(Ce);let ot;var R=b(Ne,2);let Q;var Y=b(Ce,2);{var fe=Ie=>{var st=rX(),Dt=Et(st),St=b(v(Dt)),oi=b(Dt,2),ti=b(v(oi));Yt(St,()=>d(gt),se=>y(gt,se)),Yt(ti,()=>d(Ct),se=>y(Ct,se)),E(Ie,st)},_e=Ie=>{var st=aX(),Dt=b(v(st));Yt(Dt,()=>d(Le),St=>y(Le,St)),E(Ie,st)};W(Y,Ie=>{d(lt)==="passcode"?Ie(fe):Ie(_e,-1)})}var $=b(Y,2),Z=b(v($)),ie=b($,2);{var Se=Ie=>{var st=pE(),Dt=v(st);V(()=>F(Dt,d(Ue))),E(Ie,st)};W(ie,Ie=>{d(Ue)&&Ie(Se)})}var pt=b(ie,2),Ae=v(pt);V(()=>{ot=Rt(Ne,1,"svelte-1ua3isv",null,ot,{active:d(lt)==="passcode"}),Q=Rt(R,1,"svelte-1ua3isv",null,Q,{active:d(lt)==="pairingCode"}),pt.disabled=d(xt),F(Ae,d(xt)?"Commissioning…":"Commission")}),q("click",Ne,()=>y(lt,"passcode")),q("click",R,()=>y(lt,"pairingCode")),Yt(Z,()=>d(De),Ie=>y(De,Ie)),q("click",pt,Nt),E(K,ae)};W(tt,K=>{d(me)&&K(Bt)})}var ii=b(tt,2),mi=v(ii);pi(mi,17,()=>d(f),K=>K.nodeId,(K,ae)=>{var Ce=uX();let Ne;var ot=v(Ce),R=v(ot);let Q;var Y=b(R,2),fe=v(Y);{var _e=ie=>{var Se=cX(),pt=Et(Se),Ae=v(pt),Ie=b(pt,2),st=v(Ie);V(()=>{F(Ae,d(ae).name),F(st,`#${d(ae).nodeId??""}`)}),E(ie,Se)},$=ie=>{var Se=dX(),pt=v(Se);V(()=>F(pt,`Node ${d(ae).nodeId??""}`)),E(ie,Se)};W(fe,ie=>{d(ae).name?ie(_e):ie($,-1)})}var Z=b(ot,2);V(()=>{var ie;Ne=Rt(Ce,1,"svelte-1ua3isv",null,Ne,{selected:((ie=d(ue))==null?void 0:ie.nodeId)===d(ae).nodeId}),Q=Rt(R,1,"status-dot svelte-1ua3isv",null,Q,{online:d(ae).online})}),q("click",ot,()=>ri(d(ae).nodeId)),q("click",Z,()=>Tt(d(ae).nodeId)),E(K,Ce)});var Vi=b(mi,2);{var Pi=K=>{var ae=hX();E(K,ae)};W(Vi,K=>{d(f).length===0&&K(Pi)})}var Ri=b(Ci,2),ji=v(Ri);{var an=K=>{var ae=fX();E(K,ae)},Ni=K=>{var ae=pE(),Ce=v(ae);V(()=>F(Ce,d(at))),E(K,ae)},Cn=K=>{var ae=BX(),Ce=Et(ae),Ne=v(Ce),ot=v(Ne),R=b(Ne,2);{var Q=$=>{var Z=gX(),ie=v(Z);V(()=>F(ie,d(ue).subtitle)),E($,Z)};W(R,$=>{d(ue).subtitle&&$(Q)})}var Y=b(R,2),fe=v(Y),_e=b(Ce,2);pi(_e,17,()=>d(ue).endpoints,$=>$.endpointId,($,Z)=>{var ie=WX(),Se=v(ie),pt=v(Se),Ae=b(pt),Ie=v(Ae),st=b(Ae,2);pi(st,21,()=>d(Z).clusters,on,(ti,se)=>{var ke=pX(),rt=v(ke);V(()=>F(rt,d(se).name)),E(ti,ke)});var Dt=b(Se,2);{var St=ti=>{var se=FX(),ke=b(v(se));pi(ke,21,()=>d(Z).clusters,on,(rt,kt)=>{var ft=OX(),Xe=Et(ft),Ft=v(Xe),li=v(Ft),yi=b(Xe,2);pi(yi,17,()=>Object.entries(d(kt).attrs),on,(Ei,fn)=>{var xn=wt(()=>NL(d(fn),2));let un=()=>d(xn)[0],Li=()=>d(xn)[1];var gn=Vs(),z=Et(gn);{var ee=Ye=>{const ge=wt(()=>{var We;return(We=t[d(kt).name])==null?void 0:We[un()]}),ve=wt(()=>(un()==="acceptedCommandList"||un()==="generatedCommandList")&&Array.isArray(Li())),vt=wt(()=>{var We;return((We=c[d(kt).name])==null?void 0:We[un()])??a[un()]});var Ti=AX(),Pe=v(Ti),Ge=v(Pe),Ht=v(Ge),Je=b(Ge);{var bt=We=>{var Be=_X(),Pt=v(Be);V(ye=>F(Pt,`(${ye??""})`),[()=>u(d(vt))]),E(We,Be)};W(Je,We=>{d(vt)!==void 0&&We(bt)})}var Zt=b(Pe),G=v(Zt);{var ne=We=>{var Be=vX();pi(Be,21,()=>d(ge),on,(Pt,ye)=>{var nt=mX(),_t=v(nt);V(()=>F(_t,d(ye).label)),q("click",nt,()=>i(d(ue).nodeId,d(Z).endpointId,d(kt).name,d(ye).command,d(ye).args)),E(Pt,nt)}),E(We,Be)};W(G,We=>{d(ge)&&We(ne)})}var Ve=b(Zt),Qe=v(Ve);{var Oe=We=>{var Be=CX();pi(Be,21,()=>s(d(kt).name,Li()),on,(Pt,ye,nt)=>{var _t=SX(),mt=Et(_t);{var Ze=Qi=>{var En=bX();E(Qi,En)};W(mt,Qi=>{nt>0&&Qi(Ze)})}var Gt=b(mt,2);{var ni=Qi=>{var En=yX(),Jn=Et(En),Gi=v(Jn),gi=b(Jn),bn=v(gi);V(()=>{F(Gi,d(ye).name),F(bn,`(${d(ye).id??""})`)}),E(Qi,En)},cn=Qi=>{var En=wX(),Jn=v(En);V(()=>F(Jn,d(ye).id)),E(Qi,En)};W(Gt,Qi=>{d(ye).name?Qi(ni):Qi(cn,-1)})}E(Pt,_t)}),E(We,Be)},Ee=We=>{var Be=LX(),Pt=b(v(Be));pi(Pt,21,Li,on,(ye,nt)=>{const _t=wt(()=>d(nt)),mt=wt(()=>d(_t).deviceType),Ze=wt(()=>r[d(mt)]);var Gt=kX(),ni=v(Gt),cn=v(ni);{var Qi=gi=>{var bn=xX(),ln=Et(bn),rs=b(ln),co=v(rs);V(qo=>{F(ln,`${d(Ze)??""} `),F(co,`(${qo??""})`)},[()=>u(d(mt))]),E(gi,bn)},En=gi=>{var bn=sa();V(ln=>F(bn,ln),[()=>u(d(mt))]),E(gi,bn)};W(cn,gi=>{d(Ze)?gi(Qi):gi(En,-1)})}var Jn=b(ni),Gi=v(Jn);V(gi=>F(Gi,gi),[()=>w(d(_t).revision)]),E(ye,Gt)}),E(We,Be)},zt=wt(()=>un()==="deviceTypeList"&&Array.isArray(Li())),Lt=We=>{const Be=wt(()=>[...new Set(Li().flatMap(mt=>Object.keys(mt)))]);var Pt=TX(),ye=v(Pt),nt=v(ye);pi(nt,21,()=>d(Be),on,(mt,Ze)=>{var Gt=IX(),ni=v(Gt);V(()=>F(ni,d(Ze))),E(mt,Gt)});var _t=b(ye);pi(_t,21,Li,on,(mt,Ze)=>{var Gt=EX();pi(Gt,21,()=>d(Be),on,(ni,cn)=>{var Qi=DX(),En=v(Qi);V(Jn=>F(En,Jn),[()=>w(d(Ze)[d(cn)])]),E(ni,Qi)}),E(mt,Gt)}),E(We,Pt)},Ke=wt(()=>x(Li())),Vt=We=>{var Be=MX(),Pt=v(Be);pi(Pt,21,()=>Object.entries(Li()),on,(ye,nt)=>{var _t=wt(()=>NL(d(nt),2));let mt=()=>d(_t)[0],Ze=()=>d(_t)[1];var Gt=PX(),ni=v(Gt),cn=v(ni),Qi=b(ni),En=v(Qi);V(Jn=>{F(cn,mt()),F(En,Jn)},[()=>w(Ze())]),E(ye,Gt)}),E(We,Be)},it=wt(()=>m(Li())),Te=We=>{var Be=NX(),Pt=v(Be);V(()=>{Hi(Be,"href",Li()),F(Pt,Li())}),E(We,Be)},Fe=We=>{var Be=RX(),Pt=v(Be);V(ye=>F(Pt,ye),[()=>w(Li())]),E(We,Be)};W(Qe,We=>{d(ve)?We(Oe):d(zt)?We(Ee,1):d(Ke)?We(Lt,2):d(it)?We(Vt,3):(un()==="productUrl"||un()==="productURL")&&typeof Li()=="string"?We(Te,4):We(Fe,-1)})}V(()=>{Hi(Pe,"title",un()),F(Ht,un())}),E(Ye,Ti)},$e=wt(()=>!k(Li(),un()));W(z,Ye=>{d($e)&&Ye(ee)})}E(Ei,gn)}),V(()=>F(li,d(kt).name)),E(rt,ft)}),E(ti,se)},oi=ti=>{var se=HX();E(ti,se)};W(Dt,ti=>{d(Z).clusters.length>0?ti(St):ti(oi,-1)})}V(()=>{F(pt,`${d(Z).name??`Endpoint ${d(Z).endpointId}`??""} `),F(Ie,`ep${d(Z).endpointId??""}`)}),E($,ie)}),V(()=>{F(ot,d(ue).name??`Node ${d(ue).nodeId}`),F(fe,`Node ID: ${d(ue).nodeId??""}`)}),E(K,ae)},Me=K=>{var ae=zX();E(K,ae)};W(ji,K=>{d(et)?K(an):d(at)?K(Ni,1):d(ue)?K(Cn,2):K(Me,-1)})}var Ut=b(Mi,2),ui=v(Ut),ki=b(ui,2),ze=b(v(ki),2);{var qt=K=>{var ae=VX(),Ce=v(ae);V(()=>F(Ce,d(te).length)),E(K,ae)};W(ze,K=>{!d(J)&&d(te).length>0&&K(qt)})}var fi=b(ze,2),Di=v(fi),qe=b(ki,2);{var he=K=>{var ae=GX(),Ce=v(ae);{var Ne=R=>{var Q=jX();E(R,Q)},ot=R=>{var Q=Vs(),Y=Et(Q);pi(Y,17,()=>d(we),fe=>fe.id,(fe,_e)=>{const $=wt(()=>{var St,oi;return((St=g.get(d(_e).nodeId))==null?void 0:St.name)??((oi=d(f).find(ti=>ti.nodeId===d(_e).nodeId))==null?void 0:oi.name)??null}),Z=wt(()=>{var St,oi;return d(_e).endpointId!==void 0?((oi=(St=g.get(d(_e).nodeId))==null?void 0:St.endpoints.find(ti=>ti.endpointId===d(_e).endpointId))==null?void 0:oi.name)??null:null}),ie=wt(()=>d(_e).attrName??d(_e).clusterName);var Se=qX(),pt=v(Se),Ae=v(pt),Ie=b(pt,2);{var st=St=>{var oi=$X(),ti=b(Et(oi),2),se=v(ti),ke=b(se);{var rt=Ft=>{var li=pS(),yi=b(Et(li)),Ei=v(yi);V(()=>F(Ei,`(#${d(_e).nodeId??""})`)),E(Ft,li)};W(ke,Ft=>{d($)&&Ft(rt)})}var kt=b(ti,2);let ft;var Xe=v(kt);V(()=>{F(se,d($)??`#${d(_e).nodeId}`),ft=Rt(kt,1,"e-val svelte-1ua3isv",null,ft,{"e-online":d(_e).online,"e-offline":!d(_e).online}),F(Xe,d(_e).online?"online":"offline")}),E(St,oi)},Dt=St=>{var oi=UX(),ti=b(Et(oi),2),se=v(ti),ke=b(se);{var rt=Li=>{var gn=pS(),z=b(Et(gn)),ee=v(z);V(()=>F(ee,`(#${d(_e).nodeId??""})`)),E(Li,gn)};W(ke,Li=>{d($)&&Li(rt)})}var kt=b(ti,2),ft=v(kt),Xe=b(ft);{var Ft=Li=>{var gn=pS(),z=b(Et(gn)),ee=v(z);V(()=>F(ee,`(ep ${d(_e).endpointId??""})`)),E(Li,gn)};W(Xe,Li=>{d(Z)&&Li(Ft)})}var li=b(kt,2),yi=v(li),Ei=b(li,2),fn=v(Ei),xn=b(Ei,2),un=v(xn);V(Li=>{F(se,d($)??`#${d(_e).nodeId}`),F(ft,d(Z)??`ep${d(_e).endpointId}`),F(yi,d(_e).clusterName),F(fn,d(ie)),F(un,Li)},[()=>p(d(_e).value)]),E(St,oi)};W(Ie,St=>{d(_e).kind==="status"?St(st):St(Dt,-1)})}V(St=>F(Ae,St),[()=>D(d(_e).ts)]),E(fe,Se)}),E(R,Q)};W(Ce,R=>{d(we).length===0?R(Ne):R(ot,-1)})}E(K,ae)};W(qe,K=>{d(J)&&K(he)})}V(()=>{Fo(Ut,d(J)?`height: ${d(le)}px;`:""),F(Di,d(J)?"▾":"▸")}),q("click",_i,()=>y(me,!d(me))),q("mousedown",ui,He),q("click",fi,()=>{y(J,!d(J))}),E(o,Ii),Rs()}Ks(["click","mousedown"]);var XX=T("<button>›</button>"),YX=T('<span class="chev-ph svelte-1vejtrc"></span>'),JX=T('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),QX=T('<div class="tc svelte-1vejtrc"></div>'),eY=T('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!></div> <!></div>'),tY=T("<option></option>"),iY=T('<span class="pub-ok svelte-1vejtrc">✓</span>'),nY=T('<span class="pub-err svelte-1vejtrc"> </span>'),sY=T('<div class="info svelte-1vejtrc">Loading…</div>'),oY=T('<div class="info err svelte-1vejtrc"> </div>'),rY=T('<div class="info svelte-1vejtrc">No topics match.</div>'),aY=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>'),lY=T('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),cY=T('<div class="info svelte-1vejtrc">No topics yet.</div>'),dY=T('<div class="tree-wrap svelte-1vejtrc"><!></div>'),uY=T('<span class="stream-badge"> </span>'),hY=T('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),fY=T('<span class="s-ret svelte-1vejtrc" title="retained snapshot">⊛</span>'),gY=T('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),pY=T('<div class="stream-body svelte-1vejtrc"><!></div>'),_Y=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),mY=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>'),vY=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),bY=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 yY(o,e){Ns(e,!0);const t=(se,ke=Ry)=>{const rt=wt(()=>d(g).has(ke().path)),kt=wt(()=>d(a)>=0&&ke().children.size>0),ft=wt(()=>d(a)>=0&&ke().isLeaf&&!n.has(ke().path));var Xe=eY(),Ft=v(Xe);let li;var yi=v(Ft);{var Ei=Ye=>{var ge=XX();let ve;V(()=>{ve=Rt(ge,1,"chev svelte-1vejtrc",null,ve,{open:d(rt)}),Hi(ge,"aria-label",d(rt)?"Collapse":"Expand")}),q("click",ge,()=>p(ke().path)),E(Ye,ge)},fn=Ye=>{var ge=YX();E(Ye,ge)};W(yi,Ye=>{d(kt)?Ye(Ei):Ye(fn,-1)})}var xn=b(yi,2),un=v(xn),Li=b(xn,2);{var gn=Ye=>{var ge=JX(),ve=Et(ge),vt=v(ve),Ti=b(ve,2),Pe=v(Ti);V((Ge,Ht,Je)=>{Hi(ve,"title",Ge),F(vt,Ht),F(Pe,Je)},[()=>{var Ge;return Fi((Ge=ai(ke().path))==null?void 0:Ge.val)},()=>{var Ge;return Fi((Ge=ai(ke().path))==null?void 0:Ge.val)},()=>{var Ge;return((Ge=ai(ke().path))==null?void 0:Ge.ts)!=null?Mi(ai(ke().path).ts):""}]),E(Ye,ge)},z=wt(()=>ke().isLeaf&&i.has(ke().path));W(Li,Ye=>{d(z)&&Ye(gn)})}var ee=b(Ft,2);{var $e=Ye=>{var ge=QX();pi(ge,21,()=>[...ke().children.values()].sort((ve,vt)=>ve.seg.localeCompare(vt.seg)),ve=>ve.path,(ve,vt)=>{t(ve,()=>d(vt))}),E(Ye,ge)};W(ee,Ye=>{d(kt)&&d(rt)&&Ye($e)})}V(()=>{li=Rt(Ft,1,"tr svelte-1vejtrc",null,li,{stale:d(ft)}),F(un,ke().seg)}),q("click",Ft,()=>{y(et,ke().path+"/#")}),q("contextmenu",Ft,Ye=>{Ye.preventDefault(),y(De,{x:Ye.clientX,y:Ye.clientY,topic:ke().path},!0)}),E(se,Xe)},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 se of s)f(se);s.clear(),OL(a)}))}const u=new Map;function f(se){const ke=se.split("/");let rt=u,kt="";for(let ft=0;ft<ke.length;ft++){const Xe=ke[ft];kt=ft===0?Xe:`${kt}/${Xe}`,rt.has(Xe)||rt.set(Xe,{seg:Xe,path:kt,children:new Map,isLeaf:!1});const Ft=rt.get(Xe);ft===ke.length-1&&(Ft.isLeaf=!0),rt=Ft.children}}let g=M(wi(new Set));function p(se){const ke=new Set(d(g));ke.has(se)?ke.delete(se):ke.add(se),y(g,ke,!0)}let w=M("");const m=24,x=5;let k=M(0),D=M(300),P=wt(()=>{if(d(a),!d(w))return[];const se=d(w).toLowerCase().split(/\s+/).filter(Boolean),ke=[];for(const[rt,kt]of i){const ft=rt.toLowerCase();se.every(Xe=>ft.includes(Xe))&&ke.push({topic:rt,...kt})}return ke.sort((rt,kt)=>rt.topic.localeCompare(kt.topic))}),A=wt(()=>{const se=d(P).length,ke=Math.max(0,Math.floor(d(k)/m)-x),rt=Math.min(se,Math.ceil((d(k)+d(D))/m)+x);return{start:ke,end:rt,totalH:se*m,top:ke*m}});const j=1e3,H=200,te=20,J=36;let le=0,we=M(wi([])),He=M(wi([])),ue=M(!0),et=M("#"),at=M(200);$n(()=>{const se=d(et).trim(),ke=Rl(()=>d(we)),rt=!se||se==="#"?ke.slice(0,H):ke.filter(kt=>me(se,kt.topic)).slice(0,H);if(se&&se!=="#"){const kt=new Set(rt.map(Xe=>Xe.topic)),ft=[];for(const[Xe,Ft]of i)kt.has(Xe)||me(se,Xe)&&ft.push({id:-(ft.length+1),topic:Xe,val:Ft.val,ts:Ft.ts,retained:!0});ft.sort((Xe,Ft)=>Xe.topic.localeCompare(Ft.topic)),y(He,[...rt,...ft],!0)}else y(He,rt,!0)});function me(se,ke){if(se==="#")return!0;const rt=se.split("/"),kt=ke.split("/");for(let ft=0;ft<rt.length;ft++){if(rt[ft]==="#")return!0;if(ft>=kt.length||rt[ft]!=="+"&&rt[ft]!==kt[ft])return!1}return rt.length===kt.length}function lt(se){se.preventDefault();const ke=se.clientY,rt=d(at);function kt(Xe){y(at,Math.max(60,Math.min(800,rt+ke-Xe.clientY)),!0)}function ft(){document.removeEventListener("mousemove",kt),document.removeEventListener("mouseup",ft)}document.addEventListener("mousemove",kt),document.addEventListener("mouseup",ft)}let gt=wt(()=>{const se=Math.max(1,Math.floor((d(at)-J)/te)+1);return d(He).slice(0,se)}),Ct=M(!0),Le=M(null);async function xt(){y(Ct,!0),y(Le,null);try{const se=await HR();for(const ke of se)i.set(ke.topic,{val:ke.val,ts:ke.ts}),f(ke.topic)}catch(se){y(Le,se instanceof Error?se.message:String(se),!0)}finally{y(Ct,!1),OL(a)}}const Ue=kr("mqtt",se=>{const{topic:ke,val:rt,ts:kt}=se;i.set(ke,{val:rt,ts:kt}),n.add(ke),s.add(ke),c();const ft={id:le++,topic:ke,val:rt,ts:kt};y(we,[ft,...d(we).slice(0,j-1)],!0);const Xe=d(et).trim();(!Xe||Xe==="#"||me(Xe,ke))&&y(He,[ft,...d(He).filter(Ft=>!(Ft.retained&&Ft.topic===ke)).slice(0,H-1)],!0)});let De=M(null),dt=M(null);async function Ot(se,ke){const rt=[se];if(ke){const kt=se+"/";for(const ft of i.keys())ft.startsWith(kt)&&rt.push(ft)}for(const kt of rt)await HD(kt,"",!0,0)}let ri=wt(()=>(d(a),[...i.keys()].sort())),Wt=M(""),Tt=M(""),Nt=M(!1),It=M(0),bi=M(!1),hi=M(null),Ii=M(!1);async function Oi(){if(d(Wt)){y(bi,!0),y(hi,null),y(Ii,!1);try{await HD(d(Wt),d(Tt),d(Nt),d(It)),y(Ii,!0),setTimeout(()=>{y(Ii,!1)},2e3)}catch(se){y(hi,se instanceof Error?se.message:String(se),!0)}finally{y(bi,!1)}}}function Fi(se){return se==null?"":typeof se=="object"?JSON.stringify(se):String(se)}function Mi(se){return new Date(se).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ci(se){return new Date(se).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function ai(se){return d(a),i.get(se)}let _i=wt(()=>(d(a),[...u.values()].sort((se,ke)=>se.seg.localeCompare(ke.seg)))),tt=wt(()=>(d(a),i.size));ao(xt),Wy(()=>{Ue(),r!==null&&cancelAnimationFrame(r)});var Bt=bY(),ii=b(v(Bt),2),mi=v(ii),Vi=v(mi),Pi=b(Vi,2);pi(Pi,20,()=>d(ri),se=>se,(se,ke)=>{var rt=tY(),kt={};V(()=>{kt!==(kt=ke)&&(rt.value=(rt.__value=ke)??"")}),E(se,rt)});var Ri=b(Pi,2),ji=b(Ri,2),an=v(ji),Ni=b(ji,2),Cn=v(Ni);Cn.value=Cn.__value=0;var Me=b(Cn);Me.value=Me.__value=1;var Ut=b(Me);Ut.value=Ut.__value=2;var ui=b(Ni,2),ki=b(ui,2);{var ze=se=>{var ke=iY();E(se,ke)};W(ki,se=>{d(Ii)&&se(ze)})}var qt=b(ki,2);{var fi=se=>{var ke=nY(),rt=v(ke);V(()=>F(rt,d(hi))),E(se,ke)};W(qt,se=>{d(hi)&&se(fi)})}var Di=b(mi,2),qe=v(Di),he=b(qe,2),K=v(he);{var ae=se=>{var ke=sa();V(()=>F(ke,`${d(P).length??""} /`)),E(se,ke)};W(K,se=>{d(w)&&se(ae)})}var Ce=b(K),Ne=b(Di,2);{var ot=se=>{var ke=sY();E(se,ke)},R=se=>{var ke=oY(),rt=v(ke);V(()=>F(rt,d(Le))),E(se,ke)},Q=se=>{var ke=Vs(),rt=Et(ke);{var kt=Xe=>{var Ft=rY();E(Xe,Ft)},ft=Xe=>{var Ft=lY(),li=v(Ft),yi=v(li);pi(yi,21,()=>d(P).slice(d(A).start,d(A).end),Ei=>Ei.topic,(Ei,fn)=>{var xn=aY(),un=v(xn),Li=v(un),gn=b(un,2),z=v(gn),ee=b(gn,2),$e=v(ee);V((Ye,ge,ve)=>{F(Li,d(fn).topic),Hi(gn,"title",Ye),F(z,ge),F($e,ve)},[()=>Fi(d(fn).val),()=>Fi(d(fn).val),()=>Mi(d(fn).ts)]),E(Ei,xn)}),V(()=>{Fo(li,`height: ${d(A).totalH??""}px; position: relative;`),Fo(yi,`top: ${d(A).top??""}px;`)}),cs("scroll",Ft,Ei=>{y(k,Ei.currentTarget.scrollTop,!0)}),$H(Ft,"clientHeight",Ei=>y(D,Ei)),E(Xe,Ft)};W(rt,Xe=>{d(P).length===0?Xe(kt):Xe(ft,-1)})}E(se,ke)},Y=se=>{var ke=dY(),rt=v(ke);{var kt=Xe=>{var Ft=cY();E(Xe,Ft)},ft=Xe=>{var Ft=Vs(),li=Et(Ft);pi(li,17,()=>d(_i),yi=>yi.path,(yi,Ei)=>{t(yi,()=>d(Ei))}),E(Xe,Ft)};W(rt,Xe=>{d(_i).length===0?Xe(kt):Xe(ft,-1)})}E(se,ke)};W(Ne,se=>{d(Ct)?se(ot):d(Le)?se(R,1):d(w)?se(Q,2):se(Y,-1)})}var fe=b(ii,2),_e=v(fe),$=b(_e,2),Z=v($),ie=b(Z,2);{var Se=se=>{var ke=uY(),rt=v(ke);V(()=>F(rt,d(He).length)),E(se,ke)};W(ie,se=>{!d(ue)&&d(He).length>0&&se(Se)})}var pt=b(ie,2),Ae=v(pt),Ie=b($,2);{var st=se=>{var ke=pY(),rt=v(ke);{var kt=Xe=>{var Ft=hY();E(Xe,Ft)},ft=Xe=>{var Ft=Vs(),li=Et(Ft);pi(li,17,()=>d(gt),yi=>yi.id,(yi,Ei)=>{var fn=gY();let xn;var un=v(fn),Li=v(un),gn=b(un,2);{var z=ve=>{var vt=fY();E(ve,vt)};W(gn,ve=>{d(Ei).retained&&ve(z)})}var ee=b(gn,2),$e=v(ee),Ye=b(ee,2),ge=v(Ye);V((ve,vt,Ti)=>{xn=Rt(fn,1,"sr svelte-1vejtrc",null,xn,{retained:d(Ei).retained}),F(Li,ve),F($e,d(Ei).topic),Hi(Ye,"title",vt),F(ge,Ti)},[()=>Ci(d(Ei).ts),()=>Fi(d(Ei).val),()=>Fi(d(Ei).val)]),E(yi,fn)}),E(Xe,Ft)};W(rt,Xe=>{d(gt).length===0?Xe(kt):Xe(ft,-1)})}E(se,ke)};W(Ie,se=>{d(ue)&&se(st)})}var Dt=b(fe,2);{var St=se=>{var ke=_Y(),rt=Et(ke),kt=b(rt,2);let ft;var Xe=v(kt),Ft=b(Xe,2);V(()=>ft=Fo(kt,"",ft,{left:`${d(De).x??""}px`,top:`${d(De).y??""}px`})),q("click",rt,()=>y(De,null)),q("contextmenu",rt,li=>{li.preventDefault(),y(De,null)}),q("click",Xe,()=>{navigator.clipboard.writeText(d(De).topic),y(De,null)}),q("click",Ft,()=>{const li=d(De).topic,yi=li+"/",Ei=[...i.keys()].some(fn=>fn.startsWith(yi));y(dt,{topic:li,hasChildren:Ei,recursive:!1},!0),y(De,null)}),E(se,ke)};W(Dt,se=>{d(De)&&se(St)})}var oi=b(Dt,2);{var ti=se=>{var ke=vY(),rt=Et(ke),kt=b(rt,2),ft=b(v(kt),2),Xe=v(ft),Ft=b(v(Xe)),li=v(Ft),yi=b(Xe,2);{var Ei=Li=>{var gn=mY(),z=v(gn);Is(z,()=>d(dt).recursive,ee=>d(dt).recursive=ee),E(Li,gn)};W(yi,Li=>{d(dt).hasChildren&&Li(Ei)})}var fn=b(ft,2),xn=v(fn),un=b(xn,2);V(()=>F(li,d(dt).topic)),q("click",rt,()=>y(dt,null)),q("click",xn,()=>y(dt,null)),q("click",un,()=>{const{topic:Li,recursive:gn}=d(dt);y(dt,null),Ot(Li,gn)}),E(se,ke)};W(oi,se=>{d(dt)&&se(ti)})}V(()=>{ui.disabled=d(bi)||!d(Wt),F(Ce,` ${d(tt)??""}`),Fo(fe,d(ue)?`height: ${d(at)}px;`:""),F(Ae,d(ue)?"▾":"▸")}),Yt(Vi,()=>d(Wt),se=>y(Wt,se)),Yt(Ri,()=>d(Tt),se=>y(Tt,se)),Is(an,()=>d(Nt),se=>y(Nt,se)),Ho(Ni,()=>d(It),se=>y(It,se)),q("click",ui,Oi),Yt(qe,()=>d(w),se=>y(w,se)),q("mousedown",_e,lt),Yt(Z,()=>d(et),se=>y(et,se)),q("click",pt,()=>{y(ue,!d(ue))}),E(o,Bt),Rs()}Ks(["click","contextmenu","mousedown"]);var wY=T('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),SY=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>'),CY=T('<div class="err svelte-twakcj"> </div>'),xY=T('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),kY=T('<p class="empty svelte-twakcj">No packages installed.</p>'),LY=T('<p class="empty svelte-twakcj">No match.</p>'),IY=T("<span> </span>"),DY=VP('<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>'),EY=VP('<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>'),TY=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>'),PY=T('<span class="result-author svelte-twakcj"> </span>'),MY=T('<span class="result-date svelte-twakcj"> </span>'),NY=T('<span class="result-desc svelte-twakcj"> </span>'),RY=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>'),AY=T('<div class="results-list svelte-twakcj"></div>'),OY=T('<pre class="npm-output svelte-twakcj"> </pre>'),FY=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>`),HY=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 WY(o,e){Ns(e,!0);let t=M(wi([])),i=M(""),n=M(wi({})),s=M(wi([])),r=M(!1),a=M(""),c=M(wi([])),u=M(!1),f=M(!1),g=M(!1),p=M(""),w=M(""),m=wi({});const x=wt(()=>d(i).trim()?d(t).filter(Me=>Me.name.toLowerCase().includes(d(i).toLowerCase())):d(t)),k=wt(()=>Object.keys(d(n)).filter(Me=>!d(s).includes(Me)).length);ao(async()=>{await Promise.all([D(),P(),A()])});async function D(){try{y(t,await I7(),!0),y(p,"")}catch(Me){y(p,Me.message,!0)}}async function P(){try{y(n,await OR(),!0)}catch{}}async function A(){try{const Me=await Dl();y(s,Array.isArray(Me.pinnedPackages)?Me.pinnedPackages:[],!0)}catch{}}async function j(Me){const Ut=d(s).includes(Me)?d(s).filter(ui=>ui!==Me):[...d(s),Me];y(s,Ut,!0);try{const ui=await Dl();await Zp({...ui,pinnedPackages:Ut})}catch{}}async function H(){y(r,!0);try{y(n,await M7(),!0)}catch{}finally{y(r,!1)}}async function te(){const Me=d(a).trim();if(!Me){y(c,[],!0);return}y(g,!0),y(p,"");try{y(c,await D7(Me),!0)}catch(Ut){y(p,Ut.message,!0)}finally{y(g,!1)}}function J(Me){if(!Me)return"";try{return new Date(Me).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function le(Me,Ut){m[Me]=!0,y(p,""),y(w,"");try{const ui=await E7(Me,Ut);y(w,ui.stdout||ui.stderr||"Done.",!0),y(u,!0),await D()}catch(ui){y(p,ui.message,!0)}finally{m[Me]=!1}}async function we(Me){m[Me]=!0,y(p,""),y(w,"");try{const Ut=await T7(Me);y(w,Ut.stdout||Ut.stderr||"Done.",!0),y(u,!0);const ui={...d(n)};delete ui[Me],y(n,ui,!0),await D()}catch(Ut){y(p,Ut.message,!0)}finally{m[Me]=!1}}async function He(Me){m[Me]=!0,y(p,""),y(w,"");try{const Ut=await P7(Me);y(w,Ut.stdout||Ut.stderr||"Done.",!0),y(u,!0);const ui={...d(n)};delete ui[Me],y(n,ui,!0),await D()}catch(Ut){y(p,Ut.message,!0)}finally{m[Me]=!1}}let ue;async function et(){if(await ue.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){y(f,!0);try{await NR()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var at=HY(),me=Et(at);Ds(Jf(me,{}),Me=>ue=Me,()=>ue);var lt=b(me,2),gt=v(lt);{var Ct=Me=>{var Ut=wY();E(Me,Ut)},Le=Me=>{var Ut=SY(),ui=b(v(Ut));q("click",ui,et),E(Me,Ut)};W(gt,Me=>{d(f)?Me(Ct):d(u)&&Me(Le,1)})}var xt=b(gt,2);{var Ue=Me=>{var Ut=CY(),ui=v(Ut);V(()=>F(ui,d(p))),E(Me,Ut)};W(xt,Me=>{d(p)&&Me(Ue)})}var De=b(xt,2),dt=v(De),Ot=v(dt),ri=b(v(Ot),2),Wt=v(ri),Tt=b(ri,2);{var Nt=Me=>{var Ut=xY(),ui=v(Ut);V(()=>F(ui,`${d(k)??""} outdated`)),E(Me,Ut)};W(Tt,Me=>{d(k)>0&&Me(Nt)})}var It=b(Tt,2),bi=v(It);let hi;var Ii=b(Ot,2),Oi=v(Ii),Fi=b(Ii,2),Mi=v(Fi);{var Ci=Me=>{var Ut=kY();E(Me,Ut)},ai=Me=>{var Ut=LY();E(Me,Ut)},_i=Me=>{var Ut=Vs(),ui=Et(Ut);pi(ui,17,()=>d(x),ki=>ki.name,(ki,ze)=>{var qt=TY();let fi;var Di=v(qt),qe=v(Di),he=v(qe),K=b(qe,2),ae=v(K),Ce=b(K,2);{var Ne=Se=>{var pt=IY();let Ae;var Ie=v(pt);V(st=>{Ae=Rt(pt,1,"dep-latest svelte-twakcj",null,Ae,st),F(Ie,`→ v${d(n)[d(ze).name].latest??""}`)},[()=>({"dep-latest--pinned":d(s).includes(d(ze).name)})]),E(Se,pt)};W(Ce,Se=>{d(n)[d(ze).name]&&Se(Ne)})}var ot=b(Di,2),R=v(ot);let Q;var Y=b(R,2);let fe;var _e=v(Y);{var $=Se=>{var pt=DY();E(Se,pt)},Z=Se=>{var pt=EY();E(Se,pt)};W(_e,Se=>{m[d(ze).name]?Se($):Se(Z,-1)})}var ie=b(Y,2);V((Se,pt,Ae)=>{fi=Rt(qt,1,"dep-row svelte-twakcj",null,fi,{"dep-busy":!!m[d(ze).name]}),Hi(qe,"href",d(ze).url??`https://www.npmjs.com/package/${d(ze).name}`),F(he,d(ze).name),F(ae,d(ze).installedVersion??d(ze).version),Q=Rt(R,1,"icon-btn svelte-twakcj",null,Q,Se),Hi(R,"title",pt),fe=Rt(Y,1,"icon-btn svelte-twakcj",null,fe,Ae),Y.disabled=!!m[d(ze).name],Hi(Y,"title",d(n)[d(ze).name]?`Update to v${d(n)[d(ze).name].latest}`:"Update to latest"),ie.disabled=!!m[d(ze).name]},[()=>({"icon-btn--pinned":d(s).includes(d(ze).name)}),()=>d(s).includes(d(ze).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!d(n)[d(ze).name]&&!d(s).includes(d(ze).name)})]),q("click",R,()=>j(d(ze).name)),q("click",Y,()=>He(d(ze).name)),q("click",ie,()=>we(d(ze).name)),E(ki,qt)}),E(Me,Ut)};W(Mi,Me=>{d(t).length===0?Me(Ci):d(x).length===0?Me(ai,1):Me(_i,-1)})}var tt=b(dt,2),Bt=b(v(tt),2),ii=v(Bt),mi=b(ii,2),Vi=v(mi),Pi=b(Bt,2);{var Ri=Me=>{var Ut=AY();pi(Ut,21,()=>d(c),ui=>ui.name,(ui,ki)=>{var ze=RY(),qt=v(ze),fi=v(qt),Di=v(fi),qe=b(fi,2),he=v(qe),K=b(qe,2);{var ae=fe=>{var _e=PY(),$=v(_e);V(()=>F($,d(ki).author)),E(fe,_e)};W(K,fe=>{d(ki).author&&fe(ae)})}var Ce=b(K,2);{var Ne=fe=>{var _e=MY(),$=v(_e);V(Z=>{Hi(_e,"title",d(ki).date),F($,Z)},[()=>J(d(ki).date)]),E(fe,_e)};W(Ce,fe=>{d(ki).date&&fe(Ne)})}var ot=b(Ce,2);{var R=fe=>{var _e=NY(),$=v(_e);V(()=>F($,d(ki).description)),E(fe,_e)};W(ot,fe=>{d(ki).description&&fe(R)})}var Q=b(qt,2),Y=v(Q);V(()=>{Hi(fi,"href",d(ki).url??`https://www.npmjs.com/package/${d(ki).name}`),F(Di,d(ki).name),F(he,d(ki).version),Q.disabled=!!m[d(ki).name],F(Y,m[d(ki).name]?"Installing…":"Install")}),q("click",Q,()=>le(d(ki).name)),E(ui,ze)}),E(Me,Ut)};W(Pi,Me=>{d(c).length>0&&Me(Ri)})}var ji=b(Pi,2);{var an=Me=>{var Ut=OY(),ui=v(Ut);V(()=>F(ui,d(w))),E(Me,Ut)};W(ji,Me=>{d(w)&&Me(an)})}var Ni=b(ji,2);{var Cn=Me=>{var Ut=FY();E(Me,Ut)};W(Ni,Me=>{!d(c).length&&!d(w)&&Me(Cn)})}V(()=>{F(Wt,d(t).length),It.disabled=d(r),hi=Rt(bi,0,"svelte-twakcj",null,hi,{spinning:d(r)}),mi.disabled=d(g),F(Vi,d(g)?"Searching…":"Search")}),q("click",It,H),Yt(Oi,()=>d(i),Me=>y(i,Me)),q("keydown",ii,Me=>Me.key==="Enter"&&te()),Yt(ii,()=>d(a),Me=>y(a,Me)),q("click",mi,te),E(o,at),Rs()}Ks(["click","keydown"]);var Ul=T('<div class="err svelte-3itf14"> </div>'),BY=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>'),zY=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>'),VY=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>'),jY=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>'),$Y=T('<div class="empty svelte-3itf14">No roles found.</div>'),UY=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>'),GY=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>'),KY=T('<div class="empty svelte-3itf14">No groups found.</div>'),ZY=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>'),XY=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>'),YY=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>'),JY=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>'),QY=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>'),eJ=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>'),tJ=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>'),iJ=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>'),nJ=T('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),sJ=T("<option> </option>"),oJ=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>'),rJ=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>'),aJ=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 lJ(o,e){Ns(e,!0);let t=M(wi([])),i=M(wi([])),n=M(wi([])),s=M(""),r=M(""),a=M(""),c=M("users"),u=M(!1),f=M(""),g=M(""),p=M(!1),w=M(""),m=M(!1),x=M(!1),k=M(""),D=M(""),P=M(""),A=M(!1),j=M(!1),H=M(""),te=M(""),J=M(!1),le=M(null),we=M(!1),He=M("publishClientSend"),ue=M(""),et=M(!0),at=M(""),me=M(!1),lt=M(""),gt=M(""),Ct=M(!1);const Le=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function xt(){var qe,he,K;try{const[ae,Ce,Ne]=await Promise.allSettled([j7(),G7(),J7()]);ae.status==="fulfilled"?(y(t,ae.value.users,!0),y(s,"")):y(s,((qe=ae.reason)==null?void 0:qe.message)??"Failed to load users",!0),Ce.status==="fulfilled"?(y(i,Ce.value.roles,!0),y(r,"")):y(r,((he=Ce.reason)==null?void 0:he.message)??"Failed to load roles",!0),Ne.status==="fulfilled"?(y(n,Ne.value.groups,!0),y(a,"")):y(a,((K=Ne.reason)==null?void 0:K.message)??"Failed to load groups",!0)}catch{}}ao(()=>{xt()});async function Ue(){y(w,""),y(m,!0);try{await $7(d(f),d(g)),y(f,""),y(g,""),y(u,!1),await xt()}catch(qe){y(w,qe.message??"Failed to create user",!0)}finally{y(m,!1)}}async function De(qe){if(confirm(`Delete user "${qe}"?`))try{await U7(qe),await xt()}catch(he){y(s,he.message,!0)}}async function dt(qe){y(k,qe,!0),y(D,""),y(P,""),y(x,!0)}async function Ot(){y(P,""),y(A,!0);try{await q7(d(k),d(D)),y(x,!1)}catch(qe){y(P,qe.message,!0)}finally{y(A,!1)}}async function ri(){y(te,""),y(J,!0);try{await K7(d(H)),y(H,""),y(j,!1),await xt()}catch(qe){y(te,qe.message??"Failed to create role",!0)}finally{y(J,!1)}}async function Wt(qe){var he;if(confirm(`Delete role "${qe}"?`))try{await Z7(qe),((he=d(le))==null?void 0:he.rolename)===qe&&(y(le,null),y(we,!1)),await xt()}catch(K){y(r,K.message,!0)}}function Tt(qe){y(le,qe,!0),y(we,!0),y(He,"publishClientSend"),y(ue,""),y(et,!0),y(at,"")}async function Nt(){if(d(le)){y(at,"");try{await X7(d(le).rolename,{acltype:d(He),topic:d(ue),allow:d(et)}),y(ue,""),await xt(),y(le,d(i).find(qe=>qe.rolename===d(le).rolename)??d(le),!0)}catch(qe){y(at,qe.message,!0)}}}async function It(qe,he,K){try{await Y7(qe,he,K),await xt(),y(le,d(i).find(ae=>ae.rolename===qe)??d(le),!0)}catch(ae){y(at,ae.message,!0)}}async function bi(){y(gt,""),y(Ct,!0);try{await Q7(d(lt)),y(lt,""),y(me,!1),await xt()}catch(qe){y(gt,qe.message??"Failed to create group",!0)}finally{y(Ct,!1)}}async function hi(qe){if(confirm(`Delete group "${qe}"?`))try{await eq(qe),await xt()}catch(he){y(a,he.message,!0)}}var Ii=aJ(),Oi=Et(Ii),Fi=v(Oi),Mi=v(Fi);let Ci;var ai=b(Mi,2);let _i;var tt=b(ai,2);let Bt;var ii=b(tt,2),mi=b(Fi,2);{var Vi=qe=>{var he=jY(),K=v(he),ae=b(v(K),2),Ce=b(K,2);{var Ne=Y=>{var fe=Ul(),_e=v(fe);V(()=>F(_e,d(s))),E(Y,fe)};W(Ce,Y=>{d(s)&&Y(Ne)})}var ot=b(Ce,2);{var R=Y=>{var fe=BY();E(Y,fe)},Q=Y=>{var fe=VY(),_e=b(v(fe));pi(_e,21,()=>d(t),on,($,Z)=>{var ie=zY(),Se=v(ie),pt=v(Se),Ae=b(Se);pi(Ae,21,()=>d(Z).roles??[],on,(oi,ti)=>{var se=_E(),ke=v(se);V(()=>F(ke,d(ti).rolename)),E(oi,se)});var Ie=b(Ae);pi(Ie,21,()=>d(Z).groups??[],on,(oi,ti)=>{var se=mE(),ke=v(se);V(()=>F(ke,d(ti).groupname)),E(oi,se)});var st=b(Ie),Dt=v(st),St=b(Dt,2);V(()=>F(pt,d(Z).username)),q("click",Dt,()=>dt(d(Z).username)),q("click",St,()=>De(d(Z).username)),E($,ie)}),E(Y,fe)};W(ot,Y=>{d(t).length===0?Y(R):Y(Q,-1)})}q("click",ae,()=>{y(u,!0),y(w,"")}),E(qe,he)};W(mi,qe=>{d(c)==="users"&&qe(Vi)})}var Pi=b(mi,2);{var Ri=qe=>{var he=GY(),K=v(he),ae=b(v(K),2),Ce=b(K,2);{var Ne=Y=>{var fe=Ul(),_e=v(fe);V(()=>F(_e,d(r))),E(Y,fe)};W(Ce,Y=>{d(r)&&Y(Ne)})}var ot=b(Ce,2);{var R=Y=>{var fe=$Y();E(Y,fe)},Q=Y=>{var fe=qY(),_e=b(v(fe));pi(_e,21,()=>d(i),on,($,Z)=>{var ie=UY(),Se=v(ie),pt=v(Se),Ae=b(Se),Ie=v(Ae),st=b(Ae),Dt=v(st),St=b(Dt,2);V(()=>{var oi;F(pt,d(Z).rolename),F(Ie,((oi=d(Z).acls)==null?void 0:oi.length)??0)}),q("click",Dt,()=>Tt(d(Z))),q("click",St,()=>Wt(d(Z).rolename)),E($,ie)}),E(Y,fe)};W(ot,Y=>{d(i).length===0?Y(R):Y(Q,-1)})}q("click",ae,()=>{y(j,!0),y(te,""),y(H,"")}),E(qe,he)};W(Pi,qe=>{d(c)==="roles"&&qe(Ri)})}var ji=b(Pi,2);{var an=qe=>{var he=YY(),K=v(he),ae=b(v(K),2),Ce=b(K,2);{var Ne=Y=>{var fe=Ul(),_e=v(fe);V(()=>F(_e,d(a))),E(Y,fe)};W(Ce,Y=>{d(a)&&Y(Ne)})}var ot=b(Ce,2);{var R=Y=>{var fe=KY();E(Y,fe)},Q=Y=>{var fe=XY(),_e=b(v(fe));pi(_e,21,()=>d(n),on,($,Z)=>{var ie=ZY(),Se=v(ie),pt=v(Se),Ae=b(Se);pi(Ae,21,()=>d(Z).clients??[],on,(St,oi)=>{var ti=_E(),se=v(ti);V(()=>F(se,d(oi).username)),E(St,ti)});var Ie=b(Ae);pi(Ie,21,()=>d(Z).roles??[],on,(St,oi)=>{var ti=mE(),se=v(ti);V(()=>F(se,d(oi).rolename)),E(St,ti)});var st=b(Ie),Dt=v(st);V(()=>F(pt,d(Z).groupname)),q("click",Dt,()=>hi(d(Z).groupname)),E($,ie)}),E(Y,fe)};W(ot,Y=>{d(n).length===0?Y(R):Y(Q,-1)})}q("click",ae,()=>{y(me,!0),y(gt,""),y(lt,"")}),E(qe,he)};W(ji,qe=>{d(c)==="groups"&&qe(an)})}var Ni=b(Oi,2);{var Cn=qe=>{var he=JY(),K=v(he),ae=b(v(K),2),Ce=b(v(ae)),Ne=b(ae,2),ot=b(v(Ne)),R=v(ot),Q=b(R,2),Y=v(Q),fe=b(Ne,2);{var _e=pt=>{var Ae=Ul(),Ie=v(Ae);V(()=>F(Ie,d(w))),E(pt,Ae)};W(fe,pt=>{d(w)&&pt(_e)})}var $=b(fe,2),Z=v($),ie=b(Z,2),Se=v(ie);V(()=>{Hi(R,"type",d(p)?"text":"password"),F(Y,d(p)?"Hide":"Show"),ie.disabled=d(m)||!d(f)||!d(g),F(Se,d(m)?"Creating…":"Create")}),Yt(Ce,()=>d(f),pt=>y(f,pt)),Yt(R,()=>d(g),pt=>y(g,pt)),q("click",Q,()=>y(p,!d(p))),q("click",Z,()=>y(u,!1)),q("click",ie,Ue),E(qe,he)};W(Ni,qe=>{d(u)&&qe(Cn)})}var Me=b(Ni,2);{var Ut=qe=>{var he=QY(),K=v(he),ae=v(K),Ce=b(v(ae)),Ne=v(Ce),ot=b(ae,2),R=b(v(ot)),Q=b(ot,2);{var Y=ie=>{var Se=Ul(),pt=v(Se);V(()=>F(pt,d(P))),E(ie,Se)};W(Q,ie=>{d(P)&&ie(Y)})}var fe=b(Q,2),_e=v(fe),$=b(_e,2),Z=v($);V(()=>{F(Ne,d(k)),$.disabled=d(A)||!d(D),F(Z,d(A)?"Saving…":"Set password")}),Yt(R,()=>d(D),ie=>y(D,ie)),q("click",_e,()=>y(x,!1)),q("click",$,Ot),E(qe,he)};W(Me,qe=>{d(x)&&qe(Ut)})}var ui=b(Me,2);{var ki=qe=>{var he=eJ(),K=v(he),ae=b(v(K),2),Ce=b(v(ae)),Ne=b(ae,2);{var ot=_e=>{var $=Ul(),Z=v($);V(()=>F(Z,d(te))),E(_e,$)};W(Ne,_e=>{d(te)&&_e(ot)})}var R=b(Ne,2),Q=v(R),Y=b(Q,2),fe=v(Y);V(()=>{Y.disabled=d(J)||!d(H),F(fe,d(J)?"Creating…":"Create")}),Yt(Ce,()=>d(H),_e=>y(H,_e)),q("click",Q,()=>y(j,!1)),q("click",Y,ri),E(qe,he)};W(ui,qe=>{d(j)&&qe(ki)})}var ze=b(ui,2);{var qt=qe=>{var he=oJ(),K=v(he),ae=v(K),Ce=b(v(ae)),Ne=v(Ce),ot=b(ae,2);{var R=st=>{var Dt=iJ(),St=b(v(Dt));pi(St,21,()=>d(le).acls??[],on,(oi,ti)=>{var se=tJ(),ke=v(se),rt=v(ke),kt=b(ke),ft=v(kt),Xe=b(kt),Ft=v(Xe),li=b(Xe),yi=v(li);V(()=>{F(rt,d(ti).acltype),F(ft,d(ti).topic),F(Ft,d(ti).allow?"✓":"✗")}),q("click",yi,()=>It(d(le).rolename,d(ti).acltype,d(ti).topic)),E(oi,se)}),E(st,Dt)},Q=st=>{var Dt=nJ();E(st,Dt)};W(ot,st=>{var Dt;(((Dt=d(le).acls)==null?void 0:Dt.length)??0)>0?st(R):st(Q,-1)})}var Y=b(ot,2),fe=v(Y);pi(fe,21,()=>Le,on,(st,Dt)=>{var St=sJ(),oi=v(St),ti={};V(()=>{F(oi,d(Dt)),ti!==(ti=d(Dt))&&(St.value=(St.__value=d(Dt))??"")}),E(st,St)});var _e=b(fe,2),$=b(_e,2),Z=v($),ie=b($,2),Se=b(Y,2);{var pt=st=>{var Dt=Ul(),St=v(Dt);V(()=>F(St,d(at))),E(st,Dt)};W(Se,st=>{d(at)&&st(pt)})}var Ae=b(Se,2),Ie=v(Ae);V(()=>{F(Ne,d(le).rolename),ie.disabled=!d(ue)}),Ho(fe,()=>d(He),st=>y(He,st)),Yt(_e,()=>d(ue),st=>y(ue,st)),Is(Z,()=>d(et),st=>y(et,st)),q("click",ie,Nt),q("click",Ie,()=>y(we,!1)),E(qe,he)};W(ze,qe=>{d(we)&&d(le)&&qe(qt)})}var fi=b(ze,2);{var Di=qe=>{var he=rJ(),K=v(he),ae=b(v(K),2),Ce=b(v(ae)),Ne=b(ae,2);{var ot=_e=>{var $=Ul(),Z=v($);V(()=>F(Z,d(gt))),E(_e,$)};W(Ne,_e=>{d(gt)&&_e(ot)})}var R=b(Ne,2),Q=v(R),Y=b(Q,2),fe=v(Y);V(()=>{Y.disabled=d(Ct)||!d(lt),F(fe,d(Ct)?"Creating…":"Create")}),Yt(Ce,()=>d(lt),_e=>y(lt,_e)),q("click",Q,()=>y(me,!1)),q("click",Y,bi),E(qe,he)};W(fi,qe=>{d(me)&&qe(Di)})}V(()=>{Ci=Rt(Mi,1,"svelte-3itf14",null,Ci,{active:d(c)==="users"}),_i=Rt(ai,1,"svelte-3itf14",null,_i,{active:d(c)==="roles"}),Bt=Rt(tt,1,"svelte-3itf14",null,Bt,{active:d(c)==="groups"})}),q("click",Mi,()=>y(c,"users")),q("click",ai,()=>y(c,"roles")),q("click",tt,()=>y(c,"groups")),q("click",ii,xt),E(o,Ii),Rs()}Ks(["click"]);var vE=T('<div class="err svelte-9i68x"> </div>'),cJ=T('<div class="ok svelte-9i68x">Saved.</div>'),dJ=T('<div class="reload-msg svelte-9i68x"> </div>'),uJ=T('<div class="loading svelte-9i68x">Loading…</div>'),hJ=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>'),fJ=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>'),gJ=T('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),pJ=T('<div class="cards svelte-9i68x"><!> <!></div>'),_J=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 mJ(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(wi([])),f=M(null);ao(()=>{g()});async function g(){try{y(t,await W7(),!0),y(u,JSON.parse(JSON.stringify(d(t).listeners)),!0),y(f,d(t).checksum,!0),y(i,"")}catch(De){y(i,De.message??"Failed to load broker config",!0)}}function p(){y(u,[...d(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0)}function w(De){y(u,d(u).filter((dt,Ot)=>Ot!==De),!0)}async function m(){if(d(t)){y(n,!0),y(s,""),y(r,!1);try{await B7({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(De){y(s,De.message??"Save failed",!0)}finally{y(n,!1)}}}async function x(){y(a,!0),y(c,"");try{const De=await z7();y(c,De.stderr||De.stdout||"Reloaded",!0)}catch(De){y(c,"Error: "+(De.message??"reload failed"))}finally{y(a,!1)}}function k(De){var dt,Ot,ri,Wt;return!!((dt=De.tls)!=null&&dt.certfile||(Ot=De.tls)!=null&&Ot.keyfile||(ri=De.tls)!=null&&ri.capath||(Wt=De.tls)!=null&&Wt.cafile)}function D(De,dt){dt||(De.tls={}),y(u,[...d(u)],!0)}var P=_J(),A=v(P),j=b(v(A),2),H=v(j),te=b(H,2),J=v(te),le=b(te,2),we=v(le),He=b(A,2);{var ue=De=>{var dt=vE(),Ot=v(dt);V(()=>F(Ot,d(i))),E(De,dt)};W(He,De=>{d(i)&&De(ue)})}var et=b(He,2);{var at=De=>{var dt=vE(),Ot=v(dt);V(()=>F(Ot,d(s))),E(De,dt)};W(et,De=>{d(s)&&De(at)})}var me=b(et,2);{var lt=De=>{var dt=cJ();E(De,dt)};W(me,De=>{d(r)&&De(lt)})}var gt=b(me,2);{var Ct=De=>{var dt=dJ(),Ot=v(dt);V(()=>F(Ot,d(c))),E(De,dt)};W(gt,De=>{d(c)&&De(Ct)})}var Le=b(gt,2);{var xt=De=>{var dt=uJ();E(De,dt)},Ue=De=>{var dt=pJ(),Ot=v(dt);pi(Ot,17,()=>d(u),on,(Tt,Nt,It)=>{var bi=fJ(),hi=v(bi),Ii=v(hi),Oi=v(Ii),Fi=b(Ii,2),Mi=b(hi,2),Ci=v(Mi),ai=b(v(Ci)),_i=b(Ci,2),tt=b(v(_i)),Bt=v(tt);Bt.value=Bt.__value="mqtt";var ii=b(Bt);ii.value=ii.__value="websockets";var mi=b(_i,2),Vi=b(v(mi)),Pi=b(Mi,2),Ri=v(Pi),ji=v(Ri),an=b(Pi,2);{var Ni=Me=>{var Ut=hJ(),ui=v(Ut),ki=v(ui),ze=b(v(ki)),qt=b(ki,2),fi=b(v(qt)),Di=b(ui,2),qe=v(Di),he=b(v(qe)),K=b(qe,2),ae=b(v(K)),Ce=b(Di,2),Ne=v(Ce),ot=b(v(Ne)),R=b(Ne,2),Q=b(v(R)),Y=v(Q);Y.value=Y.__value="";var fe=b(Y);fe.value=fe.__value="tlsv1.3";var _e=b(fe);_e.value=_e.__value="tlsv1.2";var $=b(Ce,2),Z=v($),ie=v(Z),Se=b(Z,2),pt=v(Se);Yt(ze,()=>d(Nt).tls.certfile,Ae=>d(Nt).tls.certfile=Ae),Yt(fi,()=>d(Nt).tls.keyfile,Ae=>d(Nt).tls.keyfile=Ae),Yt(he,()=>d(Nt).tls.cafile,Ae=>d(Nt).tls.cafile=Ae),Yt(ae,()=>d(Nt).tls.capath,Ae=>d(Nt).tls.capath=Ae),Yt(ot,()=>d(Nt).tls.crlfile,Ae=>d(Nt).tls.crlfile=Ae),Ho(Q,()=>d(Nt).tls.tls_version,Ae=>d(Nt).tls.tls_version=Ae),Is(ie,()=>d(Nt).tls.require_certificate,Ae=>d(Nt).tls.require_certificate=Ae),Is(pt,()=>d(Nt).tls.use_identity_as_username,Ae=>d(Nt).tls.use_identity_as_username=Ae),E(Me,Ut)},Cn=wt(()=>k(d(Nt)));W(an,Me=>{d(Cn)&&Me(Ni)})}V(Me=>{F(Oi,`Port ${d(Nt).port??""}`),Dg(ji,Me)},[()=>k(d(Nt))]),q("click",Fi,()=>w(It)),Yt(ai,()=>d(Nt).port,Me=>d(Nt).port=Me),Ho(tt,()=>d(Nt).protocol,Me=>d(Nt).protocol=Me),Yt(Vi,()=>d(Nt).bindAddress,Me=>d(Nt).bindAddress=Me),q("change",ji,Me=>D(d(Nt),Me.target.checked)),E(Tt,bi)});var ri=b(Ot,2);{var Wt=Tt=>{var Nt=gJ();E(Tt,Nt)};W(ri,Tt=>{d(u).length===0&&Tt(Wt)})}E(De,dt)};W(Le,De=>{d(t)===null&&!d(i)?De(xt):De(Ue,-1)})}V(()=>{te.disabled=d(n),F(J,d(n)?"Saving…":"Save"),le.disabled=d(a),F(we,d(a)?"Reloading…":"Apply & Reload")}),q("click",H,p),q("click",te,m),q("click",le,x),E(o,P),Rs()}Ks(["click","change"]);var fh=T('<div class="err svelte-9auejo"> </div>'),vJ=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>'),bJ=T('<div class="empty svelte-9auejo">No local CA generated yet.</div>'),yJ=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>'),wJ=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>'),SJ=T('<div class="empty svelte-9auejo">No managed server certificate yet. Generate one or configure paths manually in Listeners.</div>'),CJ=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>'),xJ=T('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),kJ=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>'),LJ=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>'),IJ=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>'),DJ=T('<div class="empty svelte-9auejo">No client certificates issued yet.</div>'),EJ=T('<span class="badge-revoked svelte-9auejo">Revoked</span>'),TJ=T('<span class="badge-expired svelte-9auejo">Expired</span>'),PJ=T('<span class="badge-expiring svelte-9auejo">Expiring soon</span>'),MJ=T('<span class="badge-ok svelte-9auejo">Valid</span>'),NJ=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),RJ=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>'),AJ=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>'),OJ=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>'),FJ=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>'),HJ=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>'),WJ=T('<button class="btn-primary svelte-9auejo"> </button>'),BJ=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>'),zJ=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),VJ=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),jJ=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>'),$J=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>'),UJ=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 qJ(o,e){Ns(e,!0);let t=M("ca"),i=M(null),n=M(null),s=M(wi([])),r=M(wi([])),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),D=M(!1),P=M(""),A=M(null),j=M(!1),H=M(""),te=M(365),J=M(!1),le=M(""),we=M(null),He=M(!1),ue=M(""),et=M(!1),at=M(""),me=M("");async function lt(){try{const[ze,qt,fi,Di]=await Promise.allSettled([tq(),nq(),oq(),lq()]);ze.status==="fulfilled"&&y(i,ze.value.ca,!0),qt.status==="fulfilled"&&y(n,qt.value.server,!0),fi.status==="fulfilled"&&y(s,fi.value.certs,!0),Di.status==="fulfilled"&&y(r,Di.value.certs,!0),y(a,"")}catch(ze){y(a,ze.message,!0)}}ao(()=>{lt()});async function gt(){y(p,""),y(g,!0);try{await iq({cn:d(u),days:d(f)}),y(c,!1),await lt()}catch(ze){y(p,ze.message,!0)}finally{y(g,!1)}}async function Ct(){y(P,""),y(D,!0),y(A,null);try{const ze=d(x).split(",").map(fi=>fi.trim()).filter(Boolean),qt=await sq({cn:d(m),san:ze,days:d(k)});y(A,qt,!0),await lt()}catch(ze){y(P,ze.message,!0)}finally{y(D,!1)}}async function Le(){y(le,""),y(J,!0),y(we,null);try{const ze=await rq({cn:d(H),days:d(te)});y(we,ze,!0),y(H,""),await lt()}catch(ze){y(le,ze.message,!0)}finally{y(J,!1)}}async function xt(ze){if(confirm(`Revoke certificate for "${ze.cn}" (serial ${ze.serial})?`))try{await aq(ze.serial),await lt()}catch(qt){y(me,qt.message,!0)}}async function Ue(){y(at,""),y(et,!0);try{await cq(d(ue)),y(ue,""),y(He,!1),await lt()}catch(ze){y(at,ze.message,!0)}finally{y(et,!1)}}async function De(ze){if(confirm("Remove this trusted CA cert?"))try{await dq(ze),await lt()}catch(qt){y(me,qt.message,!0)}}function dt(ze){const qt=new Date(ze).getTime()-Date.now();return qt<0?"expired":qt<30*864e5?"expiring":""}function Ot(ze){return new Date(ze).toLocaleDateString()}var ri=UJ(),Wt=Et(ri),Tt=v(Wt),Nt=v(Tt);let It;var bi=b(Nt,2);let hi;var Ii=b(bi,2);let Oi;var Fi=b(Ii,2);let Mi;var Ci=b(Fi,2),ai=b(Tt,2);{var _i=ze=>{var qt=fh(),fi=v(qt);V(()=>F(fi,d(a))),E(ze,qt)};W(ai,ze=>{d(a)&&ze(_i)})}var tt=b(ai,2);{var Bt=ze=>{var qt=fh(),fi=v(qt);V(()=>F(fi,d(me))),E(ze,qt)};W(tt,ze=>{d(me)&&ze(Bt)})}var ii=b(tt,2);{var mi=ze=>{var qt=yJ(),fi=v(qt),Di=b(v(fi),2),qe=v(Di),he=b(fi,2);{var K=Ce=>{var Ne=vJ(),ot=v(Ne),R=b(v(ot)),Q=v(R),Y=b(R,3),fe=v(Y),_e=b(Y,3),$=v(_e),Z=b(ot,2),ie=v(Z);V((Se,pt,Ae)=>{F(Q,d(i).cn),F(fe,d(i).fingerprint),Rt(_e,1,Se,"svelte-9auejo"),F($,pt),Hi(ie,"href",`data:application/x-pem-file;charset=utf-8,${Ae??""}`)},[()=>J_(dt(d(i).expires)),()=>Ot(d(i).expires),()=>encodeURIComponent(d(i).crt)]),E(Ce,Ne)},ae=Ce=>{var Ne=bJ();E(Ce,Ne)};W(he,Ce=>{d(i)?Ce(K):Ce(ae,-1)})}V(()=>F(qe,d(i)?"Regenerate CA":"Generate CA")),q("click",Di,()=>{y(c,!0),y(p,"")}),E(ze,qt)},Vi=ze=>{var qt=CJ(),fi=v(qt),Di=b(v(fi),2),qe=v(Di),he=b(fi,2);{var K=Ce=>{var Ne=wJ(),ot=v(Ne),R=b(v(ot)),Q=v(R),Y=b(R,3),fe=v(Y),_e=b(Y,3),$=v(_e);V((Z,ie)=>{F(Q,d(n).cn),F(fe,d(n).fingerprint),Rt(_e,1,Z,"svelte-9auejo"),F($,ie)},[()=>J_(dt(d(n).expires)),()=>Ot(d(n).expires)]),E(Ce,Ne)},ae=Ce=>{var Ne=SJ();E(Ce,Ne)};W(he,Ce=>{d(n)?Ce(K):Ce(ae,-1)})}V(()=>F(qe,d(n)?"Regenerate":"Generate server cert")),q("click",Di,()=>{y(w,!0),y(P,""),y(A,null)}),E(ze,qt)},Pi=ze=>{var qt=IJ(),fi=v(qt),Di=b(v(fi),2),qe=b(fi,2);{var he=ae=>{var Ce=xJ();E(ae,Ce)},K=ae=>{var Ce=LJ(),Ne=b(v(Ce));pi(Ne,21,()=>d(r),on,(ot,R)=>{var Q=kJ(),Y=v(Q),fe=v(Y),_e=b(Y),$=v(_e),Z=b(_e),ie=v(Z),Se=b(Z),pt=v(Se);V((Ae,Ie,st)=>{F(fe,d(R).cn),F($,`${Ae??""}…`),Rt(Z,1,Ie,"svelte-9auejo"),F(ie,st)},[()=>d(R).fingerprint.slice(0,29),()=>J_(dt(d(R).expires)),()=>Ot(d(R).expires)]),q("click",pt,()=>De(d(R).fingerprint)),E(ot,Q)}),E(ae,Ce)};W(qe,ae=>{d(r).length===0?ae(he):ae(K,-1)})}q("click",Di,()=>{y(He,!0),y(at,""),y(ue,"")}),E(ze,qt)},Ri=ze=>{var qt=OJ(),fi=v(qt),Di=b(v(fi),2),qe=b(fi,2);{var he=ae=>{var Ce=DJ();E(ae,Ce)},K=ae=>{var Ce=AJ(),Ne=b(v(Ce));pi(Ne,21,()=>d(s),on,(ot,R)=>{var Q=RJ(),Y=v(Q),fe=v(Y),_e=b(Y),$=v(_e),Z=b(_e),ie=v(Z),Se=b(Z),pt=v(Se),Ae=b(Se),Ie=v(Ae);{var st=ft=>{var Xe=EJ();E(ft,Xe)},Dt=ft=>{var Xe=TJ();E(ft,Xe)},St=wt(()=>dt(d(R).expires)==="expired"),oi=ft=>{var Xe=PJ();E(ft,Xe)},ti=wt(()=>dt(d(R).expires)==="expiring"),se=ft=>{var Xe=MJ();E(ft,Xe)};W(Ie,ft=>{d(R).revoked?ft(st):d(St)?ft(Dt,1):d(ti)?ft(oi,2):ft(se,-1)})}var ke=b(Ae),rt=v(ke);{var kt=ft=>{var Xe=NJ(),Ft=Et(Xe),li=b(Ft,2),yi=b(li,2),Ei=b(yi,2);V((fn,xn,un)=>{Hi(Ft,"href",fn),Hi(Ft,"download",`${d(R).cn??""}.p12`),Hi(li,"href",xn),Hi(li,"download",`${d(R).cn??""}.crt`),Hi(yi,"href",un),Hi(yi,"download",`${d(R).cn??""}.key`)},[()=>Qc(d(R).serial,"p12"),()=>Qc(d(R).serial,"crt"),()=>Qc(d(R).serial,"key")]),q("click",Ei,()=>xt(d(R))),E(ft,Xe)};W(rt,ft=>{d(R).revoked||ft(kt)})}V((ft,Xe,Ft)=>{F(fe,d(R).cn),F($,d(R).serial),F(ie,ft),Rt(Se,1,Xe,"svelte-9auejo"),F(pt,Ft)},[()=>new Date(d(R).issued).toLocaleDateString(),()=>J_(d(R).revoked?"":dt(d(R).expires)),()=>Ot(d(R).expires)]),E(ot,Q)}),E(ae,Ce)};W(qe,ae=>{d(s).length===0?ae(he):ae(K,-1)})}q("click",Di,()=>{y(j,!0),y(le,""),y(we,null),y(H,""),y(te,365)}),E(ze,qt)};W(ii,ze=>{d(t)==="ca"?ze(mi):d(t)==="server"?ze(Vi,1):d(t)==="trusted"?ze(Pi,2):d(t)==="clients"&&ze(Ri,3)})}var ji=b(Wt,2);{var an=ze=>{var qt=FJ(),fi=v(qt),Di=b(v(fi),2),qe=b(v(Di)),he=b(Di,2),K=b(v(he)),ae=b(he,2);{var Ce=Y=>{var fe=fh(),_e=v(fe);V(()=>F(_e,d(p))),E(Y,fe)};W(ae,Y=>{d(p)&&Y(Ce)})}var Ne=b(ae,2),ot=v(Ne),R=b(ot,2),Q=v(R);V(()=>{R.disabled=d(g)||!d(u),F(Q,d(g)?"Generating…":"Generate")}),Yt(qe,()=>d(u),Y=>y(u,Y)),Yt(K,()=>d(f),Y=>y(f,Y)),q("click",ot,()=>y(c,!1)),q("click",R,gt),E(ze,qt)};W(ji,ze=>{d(c)&&ze(an)})}var Ni=b(ji,2);{var Cn=ze=>{var qt=BJ(),fi=v(qt),Di=b(v(fi),2),qe=b(v(Di)),he=b(Di,2),K=b(v(he)),ae=b(he,2),Ce=b(v(ae)),Ne=b(ae,2);{var ot=Z=>{var ie=fh(),Se=v(ie);V(()=>F(Se,d(P))),E(Z,ie)};W(Ne,Z=>{d(P)&&Z(ot)})}var R=b(Ne,2);{var Q=Z=>{var ie=HJ(),Se=b(v(ie),2),pt=b(v(Se)),Ae=v(pt),Ie=b(pt,3),st=v(Ie),Dt=b(Ie,3),St=v(Dt);V(()=>{F(Ae,d(A).certPath),F(st,d(A).keyPath),F(St,d(A).fingerprint)}),E(Z,ie)};W(R,Z=>{d(A)&&Z(Q)})}var Y=b(R,2),fe=v(Y),_e=b(fe,2);{var $=Z=>{var ie=WJ(),Se=v(ie);V(()=>{ie.disabled=d(D)||!d(m),F(Se,d(D)?"Generating…":"Generate")}),q("click",ie,Ct),E(Z,ie)};W(_e,Z=>{d(A)||Z($)})}Yt(qe,()=>d(m),Z=>y(m,Z)),Yt(K,()=>d(x),Z=>y(x,Z)),Yt(Ce,()=>d(k),Z=>y(k,Z)),q("click",fe,()=>y(w,!1)),E(ze,qt)};W(Ni,ze=>{d(w)&&ze(Cn)})}var Me=b(Ni,2);{var Ut=ze=>{var qt=jJ(),fi=v(qt),Di=b(v(fi),2);{var qe=K=>{var ae=zJ(),Ce=Et(ae),Ne=b(v(Ce)),ot=b(Ce,2),R=b(v(ot)),Q=b(ot,2);{var Y=ie=>{var Se=fh(),pt=v(Se);V(()=>F(pt,d(le))),E(ie,Se)};W(Q,ie=>{d(le)&&ie(Y)})}var fe=b(Q,2),_e=v(fe),$=b(_e,2),Z=v($);V(()=>{$.disabled=d(J)||!d(H),F(Z,d(J)?"Issuing…":"Issue")}),Yt(Ne,()=>d(H),ie=>y(H,ie)),Yt(R,()=>d(te),ie=>y(te,ie)),q("click",_e,()=>y(j,!1)),q("click",$,Le),E(K,ae)},he=K=>{var ae=VJ(),Ce=Et(ae),Ne=v(Ce),ot=b(v(Ne)),R=v(ot),Q=b(Ne,2),Y=b(v(Q)),fe=v(Y),_e=b(Y,3),$=v(_e),Z=b(_e,3),ie=v(Z),Se=b(Z,4),pt=v(Se),Ae=v(pt),Ie=b(Q,2),st=v(Ie),Dt=b(st,2),St=b(Dt,2),oi=b(St,2),ti=b(Ce,2),se=v(ti);V((ke,rt,kt,ft,Xe)=>{F(R,d(we).cn),F(fe,d(we).serial),F($,d(we).fingerprint),F(ie,ke),F(Ae,d(we).passphrase),Hi(st,"href",rt),Hi(st,"download",`${d(we).cn??""}.p12`),Hi(Dt,"href",kt),Hi(Dt,"download",`${d(we).cn??""}.crt`),Hi(St,"href",ft),Hi(St,"download",`${d(we).cn??""}.key`),Hi(oi,"href",Xe)},[()=>Ot(d(we).expires),()=>Qc(d(we).serial,"p12"),()=>Qc(d(we).serial,"crt"),()=>Qc(d(we).serial,"key"),()=>Qc(d(we).serial,"ca")]),q("click",se,()=>y(j,!1)),E(K,ae)};W(Di,K=>{d(we)?K(he,-1):K(qe)})}E(ze,qt)};W(Me,ze=>{d(j)&&ze(Ut)})}var ui=b(Me,2);{var ki=ze=>{var qt=$J(),fi=v(qt),Di=b(v(fi),2),qe=b(v(Di)),he=b(Di,2);{var K=R=>{var Q=fh(),Y=v(Q);V(()=>F(Y,d(at))),E(R,Q)};W(he,R=>{d(at)&&R(K)})}var ae=b(he,2),Ce=v(ae),Ne=b(Ce,2),ot=v(Ne);V(()=>{Ne.disabled=d(et)||!d(ue),F(ot,d(et)?"Adding…":"Add")}),Yt(qe,()=>d(ue),R=>y(ue,R)),q("click",Ce,()=>y(He,!1)),q("click",Ne,Ue),E(ze,qt)};W(ui,ze=>{d(He)&&ze(ki)})}V(()=>{It=Rt(Nt,1,"svelte-9auejo",null,It,{active:d(t)==="ca"}),hi=Rt(bi,1,"svelte-9auejo",null,hi,{active:d(t)==="server"}),Oi=Rt(Ii,1,"svelte-9auejo",null,Oi,{active:d(t)==="trusted"}),Mi=Rt(Fi,1,"svelte-9auejo",null,Mi,{active:d(t)==="clients"})}),q("click",Nt,()=>y(t,"ca")),q("click",bi,()=>y(t,"server")),q("click",Ii,()=>y(t,"trusted")),q("click",Fi,()=>y(t,"clients")),q("click",Ci,lt),E(o,ri),Rs()}Ks(["click"]);var _S=T('<div class="err svelte-17yczfe"> </div>'),GJ=T('<div class="ok svelte-17yczfe">Saved.</div>'),KJ=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>'),ZJ=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),XJ=T('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),YJ=T("<span> </span>"),JJ=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 QJ(o,e){Ns(e,!0);let t=M(wi({})),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(wi({}));ao(async()=>{try{const[tt,Bt,ii]=await Promise.all([Dl(),jR(),fetch("/she/broker/ssh/pubkey").then(Vi=>Vi.json()).catch(()=>({publicKey:null}))]);y(w,tt,!0),Bt.sshKeyDefault&&y(a,Bt.sshKeyDefault,!0);const mi=d(w).broker??{};y(t,mi.ssh??{},!0),d(t).port||(d(t).port=22),d(t).identityFile||(d(t).identityFile=d(a)),ii.publicKey&&y(c,ii.publicKey,!0)}catch(tt){y(i,tt.message,!0)}});async function m(){y(n,!0),y(r,""),y(s,!1);try{const tt=d(w).broker??{},Bt={...d(w),broker:{...tt,ssh:d(t)}};await Zp(Bt),y(s,!0),setTimeout(()=>y(s,!1),3e3)}catch(tt){y(r,tt.message,!0)}finally{y(n,!1)}}async function x(){y(u,!0),y(f,"");try{const tt=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Bt=await tt.json();if(!tt.ok)throw new Error(Bt.error??tt.statusText);y(c,Bt.publicKey,!0)}catch(tt){y(f,tt.message,!0)}finally{y(u,!1)}}async function k(){y(g,!0),y(p,"");try{const tt=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Bt=await tt.json();if(!tt.ok)throw new Error(Bt.error??tt.statusText);y(p,Bt.ok?"✓ Connection successful":"✗ "+(Bt.error??"Failed"),!0)}catch(tt){y(p,"✗ "+tt.message)}finally{y(g,!1)}}function D(tt){navigator.clipboard.writeText(tt).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=JJ(),j=v(A);{var H=tt=>{var Bt=_S(),ii=v(Bt);V(()=>F(ii,d(i))),E(tt,Bt)};W(j,tt=>{d(i)&&tt(H)})}var te=b(j,2),J=b(v(te),4),le=v(J),we=b(v(le)),He=b(le,2),ue=b(v(He)),et=b(He,2),at=b(v(et)),me=b(et,2),lt=b(v(me)),gt=b(J,2);{var Ct=tt=>{var Bt=_S(),ii=v(Bt);V(()=>F(ii,d(r))),E(tt,Bt)};W(gt,tt=>{d(r)&&tt(Ct)})}var Le=b(gt,2);{var xt=tt=>{var Bt=GJ();E(tt,Bt)};W(Le,tt=>{d(s)&&tt(xt)})}var Ue=b(Le,2),De=v(Ue),dt=v(De),Ot=b(te,2),ri=b(v(Ot),2),Wt=b(v(ri)),Tt=v(Wt),Nt=b(ri,2);{var It=tt=>{var Bt=ZJ(),ii=Et(Bt),mi=b(v(ii)),Vi=v(mi),Pi=b(Vi,2),Ri=b(ii,2);{var ji=Me=>{var Ut=KJ(),ui=b(v(Ut)),ki=v(ui),ze=b(ki,2);V(()=>UL(ki,d(P))),q("click",ze,()=>D(d(P))),E(Me,Ut)};W(Ri,Me=>{d(P)&&Me(ji)})}var an=b(Ri,2),Ni=v(an),Cn=v(Ni);V(()=>{UL(Vi,d(c)),Ni.disabled=d(u),F(Cn,d(u)?"Generating…":"Regenerate keypair")}),q("click",Pi,()=>D(d(c))),q("click",Ni,x),E(tt,Bt)},bi=tt=>{var Bt=XJ(),ii=v(Bt),mi=v(ii);V(()=>{ii.disabled=d(u),F(mi,d(u)?"Generating…":"Generate keypair")}),q("click",ii,x),E(tt,Bt)};W(Nt,tt=>{d(c)?tt(It):tt(bi,-1)})}var hi=b(Nt,2);{var Ii=tt=>{var Bt=_S(),ii=v(Bt);V(()=>F(ii,d(f))),E(tt,Bt)};W(hi,tt=>{d(f)&&tt(Ii)})}var Oi=b(Ot,2),Fi=b(v(Oi),2),Mi=v(Fi),Ci=v(Mi),ai=b(Mi,2);{var _i=tt=>{var Bt=YJ();let ii;var mi=v(Bt);V(Vi=>{ii=Rt(Bt,1,"test-result svelte-17yczfe",null,ii,Vi),F(mi,d(p))},[()=>({ok:d(p).startsWith("✓"),fail:d(p).startsWith("✗")})]),E(tt,Bt)};W(ai,tt=>{d(p)&&tt(_i)})}V(()=>{Hi(lt,"placeholder",d(a)),De.disabled=d(n),F(dt,d(n)?"Saving…":"Save"),F(Tt,d(t).identityFile||d(a)),Mi.disabled=d(g)||!d(t).host,F(Ci,d(g)?"Testing…":"Test SSH connection")}),Yt(we,()=>d(t).host,tt=>d(t).host=tt),Yt(ue,()=>d(t).port,tt=>d(t).port=tt),Yt(at,()=>d(t).user,tt=>d(t).user=tt),Yt(lt,()=>d(t).identityFile,tt=>d(t).identityFile=tt),q("click",De,m),q("click",Mi,k),E(o,A),Rs()}Ks(["click"]);var eQ=T('<div class="err svelte-d31be1"> </div>'),tQ=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>'),iQ=T('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),nQ=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>'),sQ=T('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),oQ=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>`),rQ=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>'),aQ=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>'),lQ=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 cQ(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(me){y(i,me.message,!0)}finally{y(n,!1)}}async function x(){y(n,!0),y(i,"");try{const me=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)})}),lt=await me.json();if(!me.ok||!lt.ok)throw new Error(lt.error??"Bootstrap failed");y(c,lt,!0);const gt=await Dl(),Ct=gt.broker??{};await Zp({...gt,broker:{...Ct,dynsec:{adminUsername:lt.adminUsername,adminPassword:lt.adminPassword}}}),y(t,"restart")}catch(me){y(i,me.message,!0)}finally{y(n,!1)}}async function k(){y(f,!0),y(i,"");try{await V7(),await new Promise(me=>setTimeout(me,2e3)),y(u,!0),y(t,"done")}catch(me){y(i,me.message,!0)}finally{y(f,!1)}}async function D(){y(w,!0),y(i,"");try{const me=await Dl(),lt=me.broker??{};await Zp({...me,broker:{...lt,dynsec:{adminUsername:d(g),adminPassword:d(p)}}}),y(t,"done")}catch(me){y(i,me.message,!0)}finally{y(w,!1)}}var P=lQ(),A=v(P),j=b(v(A),2),H=b(A,2);{var te=me=>{var lt=eQ(),gt=v(lt);V(()=>F(gt,d(i))),E(me,lt)};W(H,me=>{d(i)&&me(te)})}var J=b(H,2);{var le=me=>{var lt=tQ(),gt=b(v(lt),6),Ct=v(gt);V(()=>Ct.disabled=d(n)),q("click",Ct,()=>{y(t,"probe"),m()}),E(me,lt)},we=me=>{var lt=iQ(),gt=v(lt),Ct=v(gt);V(()=>F(Ct,d(n)?"Probing dynsec…":"Checking dynsec status…")),E(me,lt)},He=me=>{var lt=nQ(),gt=b(v(lt),2),Ct=b(v(gt)),Le=b(gt,2),xt=b(v(Le)),Ue=b(Le,2),De=b(v(Ue)),dt=b(Ue,2),Ot=v(dt),ri=v(Ot);V(()=>{Ot.disabled=d(n)||!d(s),F(ri,d(n)?"Bootstrapping…":"Bootstrap dynsec")}),Yt(Ct,()=>d(s),Wt=>y(s,Wt)),Yt(xt,()=>d(r),Wt=>y(r,Wt)),Yt(De,()=>d(a),Wt=>y(a,Wt)),q("click",Ot,x),E(me,lt)},ue=me=>{var lt=oQ(),gt=b(v(lt),2),Ct=b(v(gt),3),Le=v(Ct),xt=b(gt,4),Ue=v(xt),De=v(Ue),dt=b(Ue,2),Ot=b(xt,2);{var ri=Wt=>{var Tt=sQ();E(Wt,Tt)};W(Ot,Wt=>{d(f)&&Wt(ri)})}V(()=>{F(Le,d(c).confFilePath),Ue.disabled=d(f),F(De,d(f)?"Restarting…":"Restart mosquitto now")}),q("click",Ue,k),q("click",dt,()=>{y(t,"done")}),E(me,lt)},et=me=>{var lt=rQ(),gt=b(v(lt),4),Ct=v(gt);q("click",Ct,function(...Le){var xt;(xt=e.onDone)==null||xt.apply(this,Le)}),E(me,lt)},at=me=>{var lt=aQ(),gt=b(v(lt),2),Ct=b(v(gt)),Le=b(gt,2),xt=b(v(Le)),Ue=b(Le,2),De=v(Ue),dt=b(De,2),Ot=v(dt);V(()=>{dt.disabled=d(w)||!d(g)||!d(p),F(Ot,d(w)?"Saving…":"Save credentials")}),Yt(Ct,()=>d(g),ri=>y(g,ri)),Yt(xt,()=>d(p),ri=>y(p,ri)),q("click",De,()=>y(t,"intro")),q("click",dt,D),E(me,lt)};W(J,me=>{d(t)==="intro"?me(le):d(t)==="probe"?me(we,1):d(t)==="config"?me(He,2):d(t)==="restart"&&d(c)?me(ue,3):d(t)==="done"?me(et,4):d(t)==="manual"&&me(at,5)})}q("click",j,()=>y(t,"manual")),E(o,P),Rs()}Ks(["click"]);var dQ=T('<div class="loading svelte-zeztkb">Loading…</div>'),uQ=T('<div class="error-banner svelte-zeztkb"> </div>'),hQ=T('<div class="status-badge ok svelte-zeztkb">Connected</div>'),fQ=T('<div class="status-badge err svelte-zeztkb">Disconnected</div>'),gQ=T('<button class="wizard-btn svelte-zeztkb">Run Setup Wizard</button>'),pQ=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),_Q=T('<div style="margin-top: 20px;"><!></div>'),mQ=T('<div class="status-grid svelte-zeztkb"><div class="status-card svelte-zeztkb"><h3 class="svelte-zeztkb">Dynamic Security</h3> <!></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),vQ=T('<div class="tab-content svelte-zeztkb"><!></div>'),bQ=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 yQ(o,e){Ns(e,!0);let t=M(!1),i=M("status"),n=M(null),s=M(""),r=M(!0);async function a(){try{y(n,await jR(),!0),y(s,"")}catch(ue){y(s,ue.message??"Failed to load broker status",!0)}finally{y(r,!1)}}ao(()=>{a();const ue=setInterval(a,1e4);return()=>clearInterval(ue)});function c(ue){var at;if(!((at=d(n))!=null&&at.sys))return"—";const et=d(n).sys[ue];return et?String(et.val??"—"):"—"}var u=bQ(),f=v(u),g=v(f);let p;var w=b(g,2);let m;var x=b(w,2);let k;var D=b(x,2);let P;var A=b(D,2);let j;var H=b(f,2);{var te=ue=>{var et=vQ(),at=v(et);{var me=Ct=>{var Le=dQ();E(Ct,Le)},lt=Ct=>{var Le=uQ(),xt=v(Le);V(()=>F(xt,d(s))),E(Ct,Le)},gt=Ct=>{var Le=mQ(),xt=Et(Le),Ue=v(xt),De=b(v(Ue),2);{var dt=ii=>{var mi=Vs(),Vi=Et(mi);{var Pi=ji=>{var an=hQ();E(ji,an)},Ri=ji=>{var an=fQ();E(ji,an)};W(Vi,ji=>{d(n).dynsec.connected?ji(Pi):ji(Ri,-1)})}E(ii,mi)},Ot=ii=>{var mi=pQ(),Vi=b(Et(mi),4);{var Pi=Ri=>{var ji=gQ();q("click",ji,()=>y(t,!0)),E(Ri,ji)};W(Vi,Ri=>{d(t)||Ri(Pi)})}E(ii,mi)};W(De,ii=>{d(n).dynsec.configured?ii(dt):ii(Ot,-1)})}var ri=b(Ue,2),Wt=b(v(ri),2),Tt=b(v(Wt),2),Nt=v(Tt),It=b(Tt,4),bi=v(It),hi=b(It,4),Ii=v(hi),Oi=b(hi,4),Fi=v(Oi),Mi=b(Oi,4),Ci=v(Mi),ai=b(Mi,4),_i=v(ai),tt=b(xt,2);{var Bt=ii=>{var mi=_Q(),Vi=v(mi);cQ(Vi,{onDone:()=>{y(t,!1),a()}}),E(ii,mi)};W(tt,ii=>{d(t)&&!d(n).dynsec.configured&&ii(Bt)})}V((ii,mi,Vi,Pi,Ri,ji)=>{F(Nt,ii),F(bi,mi),F(Ii,Vi),F(Fi,Pi),F(Ci,Ri),F(_i,ji)},[()=>c("$SYS/broker/version"),()=>c("$SYS/broker/uptime"),()=>c("$SYS/broker/clients/connected"),()=>c("$SYS/broker/clients/total"),()=>c("$SYS/broker/messages/received"),()=>c("$SYS/broker/messages/sent")]),E(Ct,Le)};W(at,Ct=>{d(r)?Ct(me):d(s)?Ct(lt,1):d(n)&&Ct(gt,2)})}E(ue,et)},J=ue=>{lJ(ue,{})},le=ue=>{mJ(ue,{})},we=ue=>{qJ(ue,{})},He=ue=>{QJ(ue,{})};W(H,ue=>{d(i)==="status"?ue(te):d(i)==="users"?ue(J,1):d(i)==="listeners"?ue(le,2):d(i)==="certs"?ue(we,3):d(i)==="ssh"&&ue(He,4)})}V(()=>{p=Rt(g,1,"svelte-zeztkb",null,p,{active:d(i)==="status"}),m=Rt(w,1,"svelte-zeztkb",null,m,{active:d(i)==="users"}),k=Rt(x,1,"svelte-zeztkb",null,k,{active:d(i)==="listeners"}),P=Rt(D,1,"svelte-zeztkb",null,P,{active:d(i)==="certs"}),j=Rt(A,1,"svelte-zeztkb",null,j,{active:d(i)==="ssh"})}),q("click",g,()=>y(i,"status")),q("click",w,()=>y(i,"users")),q("click",x,()=>y(i,"listeners")),q("click",D,()=>y(i,"certs")),q("click",A,()=>y(i,"ssh")),E(o,u),Rs()}Ks(["click"]);var wQ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),SQ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),CQ=T('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),xQ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),kQ=T('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),LQ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),IQ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),DQ=T('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),EQ=T('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),TQ=T('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),PQ=T('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),MQ=T('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),NQ=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>'),RQ=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>'),AQ=T('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),OQ=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),FQ=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),HQ=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>'),WQ=T('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),BQ=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>'),zQ=T('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),VQ=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>'),jQ=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>'),$Q=T('<div class="login-error svelte-1n46o8q"> </div>'),UQ=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>'),qQ=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>'),GQ=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>'),KQ=T("<!> <!> <!> <!>",1);function ZQ(o,e){Ns(e,!0);const t=["scripts","mqtt","matter","broker","db","logs","config","packages"];function i(){const It=location.hash.slice(1);return t.includes(It)?It:"scripts"}let n=M(wi(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);c7(()=>{y(p,!0)});async function D(){y(m,""),y(x,!0);try{await h7(d(w)),y(w,""),y(p,!1)}catch(It){y(m,It.message??"Login failed",!0)}finally{y(x,!1)}}async function P(){if(d(f)==="proxy"&&d(g)){window.location.href=d(g);return}await f7(),y(p,!0)}let A=M(null),j=M(!1),H=M(!1),te=M(!1),J=M(!1),le=M(wi([])),we=M(0),He=M(wi([]));const ue=wt(()=>d(He).filter(It=>It.online).length),et=wt(()=>d(He).length===0?"none":d(ue)===d(He).length?"all":d(ue)>0?"some":"offline");let at=M(!1),me=M(!1);async function lt(){if(!await d(A).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;y(j,!0);let It;try{It=(await Wg()).startedAt}catch{}try{await NR()}catch{}const bi=Date.now()+6e4;for(;Date.now()<bi;){await new Promise(hi=>setTimeout(hi,250));try{const hi=await Wg();if(It===void 0||hi.startedAt!==It){location.reload();return}}catch{}}location.reload()}async function gt(){y(c,!0);try{const It=await b7();d(s)&&y(s,{...d(s),latestVersion:It.latestVersion??void 0},!0)}catch{}finally{y(c,!1)}}async function Ct(){var hi,Ii;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 It=(Ii=d(s))==null?void 0:Ii.startedAt;try{await v7()}catch{}const bi=Date.now()+18e4;for(;Date.now()<bi;){await new Promise(Oi=>setTimeout(Oi,1e3));try{const Oi=await Wg();if(It===void 0||Oi.startedAt!==It){location.reload();return}}catch{y(u,!1),y(j,!0)}}location.reload()}function Le(It){y(n,It,!0),location.hash=It}ao(async()=>{location.hash||(location.hash=d(n));const It=()=>{y(n,i(),!0)};window.addEventListener("hashchange",It);try{const ai=await u7();y(f,ai.mode,!0),y(g,ai.proxyLogoutUrl??"",!0),d(f)==="password"&&(await fetch("/she/scripts")).status===401&&y(p,!0)}catch{}y(k,!0);async function bi(){try{y(s,await Wg(),!0)}catch{}try{const[ai,_i]=await Promise.all([OR(),Dl()]);y(le,Array.isArray(_i.pinnedPackages)?_i.pinnedPackages:[],!0),y(we,Object.keys(ai).filter(tt=>!d(le).includes(tt)).length,!0)}catch{}}bi();const hi=setInterval(bi,5e3),Ii=kr("mqtt:status",ai=>{ai.connected===!1?(y(J,!0),y(H,!1),y(te,!1)):(y(J,!1),y(H,ai.ready===!1),y(te,ai.ready===!0))}),Oi=kr("matter:deviceList",ai=>{Array.isArray(ai.devices)&&y(He,ai.devices.map(_i=>({nodeId:String(_i.nodeId),online:!!_i.online})),!0)}),Fi=kr("matter:deviceStatus",ai=>{if(ai.nodeId===void 0)return;const _i=String(ai.nodeId),tt=!!ai.online;y(He,d(He).map(Bt=>Bt.nodeId===_i?{...Bt,online:tt}:Bt),!0)}),Mi=$R();y(at,Mi.some(ai=>ai.level==="error"),!0),y(me,!d(at)&&Mi.some(ai=>ai.level==="warn"),!0);const Ci=kk(ai=>{ai.level==="error"?(y(at,!0),y(me,!1)):ai.level==="warn"&&!d(at)&&y(me,!0)});return()=>{window.removeEventListener("hashchange",It),clearInterval(hi),Ii(),Oi(),Fi(),Ci()}});var xt=KQ();cs("click",wP,()=>{d(r)&&y(r,!1),d(a)&&y(a,!1)});var Ue=Et(xt);{var De=It=>{var bi=jQ(),hi=v(bi),Ii=b(v(hi),2);let Oi;var Fi=b(Ii,2);let Mi;var Ci=b(v(Fi),2);{var ai=ge=>{var ve=wQ();V(()=>Hi(ve,"title",`${d(we)??""} package update${d(we)===1?"":"s"} available`)),E(ge,ve)};W(Ci,ge=>{d(we)>0&&ge(ai)})}var _i=b(Fi,2);let tt;var Bt=b(v(_i),2);{var ii=ge=>{var ve=SQ();E(ge,ve)},mi=ge=>{var ve=CQ();E(ge,ve)},Vi=ge=>{var ve=xQ();E(ge,ve)};W(Bt,ge=>{d(J)?ge(ii):d(H)?ge(mi,1):d(te)&&ge(Vi,2)})}var Pi=b(_i,2);let Ri;var ji=b(v(Pi),2);{var an=ge=>{var ve=kQ();E(ge,ve)},Ni=ge=>{var ve=LQ();E(ge,ve)},Cn=ge=>{var ve=IQ();E(ge,ve)};W(ji,ge=>{d(et)==="all"?ge(an):d(et)==="some"?ge(Ni,1):d(et)==="offline"&&ge(Cn,2)})}var Me=b(Pi,2);let Ut;var ui=b(Me,2);let ki;var ze=b(ui,2);let qt;var fi=b(v(ze),2);{var Di=ge=>{var ve=DQ();E(ge,ve)},qe=ge=>{var ve=EQ();E(ge,ve)};W(fi,ge=>{d(at)?ge(Di):d(me)&&ge(qe,1)})}var he=b(ze,4),K=b(v(he),2),ae=v(K),Ce=v(ae);Ce.nodeValue="v1.1.9 ";var Ne=b(Ce);{var ot=ge=>{var ve=TQ();E(ge,ve)};W(Ne,ge=>{var ve,vt;(ve=d(s))!=null&&ve.latestVersion&&!((vt=d(s))!=null&&vt.docker)&&ge(ot)})}var R=b(ae,2);{var Q=ge=>{var ve=RQ(),vt=v(ve),Ti=b(v(vt));Ti.textContent="v1.1.9";var Pe=b(Ti,2);{var Ge=Oe=>{var Ee=PQ(),zt=b(Et(Ee)),Lt=v(zt);V(()=>F(Lt,`v${d(s).latestVersion??""}`)),E(Oe,Ee)},Ht=Oe=>{var Ee=MQ();E(Oe,Ee)};W(Pe,Oe=>{var Ee;(Ee=d(s))!=null&&Ee.latestVersion?Oe(Ge):Oe(Ht,-1)})}var Je=b(vt,2),bt=v(Je);{var Zt=Oe=>{var Ee=NQ(),zt=b(v(Ee));V(()=>F(zt,` Update to v${d(s).latestVersion??""}`)),q("click",Ee,Ct),E(Oe,Ee)};W(bt,Oe=>{var Ee;(Ee=d(s))!=null&&Ee.latestVersion&&Oe(Zt)})}var G=b(bt,2),ne=v(G);let Ve;var Qe=b(ne);V(()=>{G.disabled=d(c),Ve=Rt(ne,0,"svelte-1n46o8q",null,Ve,{spinning:d(c)}),F(Qe,` ${d(c)?"Checking…":"Check for updates"}`)}),q("click",ve,Oe=>Oe.stopPropagation()),q("click",G,gt),E(ge,ve)};W(R,ge=>{var ve;d(a)&&!((ve=d(s))!=null&&ve.docker)&&ge(Q)})}var Y=b(K,2),fe=v(Y),_e=b(fe,2);{var $=ge=>{var ve=zQ(),vt=v(ve);{var Ti=bt=>{var Zt=HQ(),G=v(Zt);{var ne=_t=>{const mt=wt(()=>Math.floor((Date.now()-d(s).startedAt)/1e3)),Ze=wt(()=>Math.floor(d(mt)/86400)),Gt=wt(()=>Math.floor(d(mt)%86400/3600)),ni=wt(()=>Math.floor(d(mt)%3600/60));var cn=AQ(),Qi=b(Et(cn)),En=v(Qi);V(()=>F(En,`${d(Ze)>0?d(Ze)+"d ":""}${d(Gt)>0||d(Ze)>0?d(Gt)+"h ":""}${d(ni)??""}m`)),E(_t,cn)};W(G,_t=>{d(s).startedAt&&_t(ne)})}var Ve=b(G,3),Qe=v(Ve),Oe=b(Ve,3),Ee=v(Oe),zt=b(Oe,3),Lt=v(zt),Ke=b(zt,2);{var Vt=_t=>{var mt=OQ(),Ze=b(Et(mt)),Gt=v(Ze),ni=b(Ze,3),cn=v(ni);V(()=>{F(Gt,d(s).matterNodes??0),F(cn,d(s).matterEndpoints??0)}),E(_t,mt)};W(Ke,_t=>{d(s).matterEnabled&&_t(Vt)})}var it=b(Ke,2);{var Te=_t=>{var mt=FQ(),Ze=b(Et(mt)),Gt=v(Ze),ni=b(Ze,3),cn=v(ni);V(()=>{F(Gt,d(s).dbDocs??"—"),F(cn,d(s).dbViews??"—")}),E(_t,mt)};W(it,_t=>{d(s).dbEnabled&&_t(Te)})}var Fe=b(it,3),We=v(Fe),Be=b(Fe,3),Pt=v(Be),ye=b(Be,3),nt=v(ye);V(()=>{F(Qe,d(s).scripts),F(Ee,d(s).topics),F(Lt,d(s).mqttMsgPerSec??"—"),F(We,d(s).handlers??"—"),F(Pt,d(s).memMb!=null?d(s).memMb+" MB":"—"),F(nt,d(s).cpuPercent!=null?d(s).cpuPercent+" %":"—")}),E(bt,Zt)},Pe=bt=>{var Zt=WQ();E(bt,Zt)};W(vt,bt=>{d(s)?bt(Ti):bt(Pe,-1)})}var Ge=b(vt,2),Ht=v(Ge);{var Je=bt=>{var Zt=BQ();q("click",Zt,()=>{y(r,!1),lt()}),E(bt,Zt)};W(Ht,bt=>{var Zt;(Zt=d(s))!=null&&Zt.docker||bt(Je)})}q("click",ve,bt=>bt.stopPropagation()),E(ge,ve)};W(_e,ge=>{d(r)&&ge($)})}var Z=b(Y,2);let ie;var Se=b(Z,2);{var pt=ge=>{var ve=VQ();q("click",ve,P),E(ge,ve)};W(Se,ge=>{d(f)==="password"&&ge(pt)})}var Ae=b(hi,2),Ie=v(Ae);Ds(Jf(Ie,{}),ge=>y(A,ge,!0),()=>d(A));var st=b(Ie,2);let Dt;var St=v(st);{let ge=wt(()=>d(n)==="scripts");hK(St,{get active(){return d(ge)}})}var oi=b(st,2);let ti;var se=v(oi);WY(se,{});var ke=b(oi,2);let rt;var kt=v(ke);yY(kt,{});var ft=b(ke,2);let Xe;var Ft=v(ft);ZX(Ft,{});var li=b(ft,2);let yi;var Ei=v(li);yQ(Ei,{});var fn=b(li,2);let xn;var un=v(fn);oX(un,{});var Li=b(fn,2);let gn;var z=v(Li);YK(z,{});var ee=b(Li,2);let $e;var Ye=v(ee);tZ(Ye,{}),V(()=>{Oi=Rt(Ii,1,"svelte-1n46o8q",null,Oi,{active:d(n)==="scripts"}),Mi=Rt(Fi,1,"svelte-1n46o8q",null,Mi,{active:d(n)==="packages"}),tt=Rt(_i,1,"svelte-1n46o8q",null,tt,{active:d(n)==="mqtt"}),Ri=Rt(Pi,1,"svelte-1n46o8q",null,Ri,{active:d(n)==="matter"}),Ut=Rt(Me,1,"svelte-1n46o8q",null,Ut,{active:d(n)==="broker"}),ki=Rt(ui,1,"svelte-1n46o8q",null,ki,{active:d(n)==="db"}),qt=Rt(ze,1,"svelte-1n46o8q",null,qt,{active:d(n)==="logs"}),ie=Rt(Z,1,"nav-settings svelte-1n46o8q",null,ie,{active:d(n)==="config"}),Dt=Rt(st,1,"page-wrap svelte-1n46o8q",null,Dt,{hidden:d(n)!=="scripts"}),ti=Rt(oi,1,"page-wrap svelte-1n46o8q",null,ti,{hidden:d(n)!=="packages"}),rt=Rt(ke,1,"page-wrap svelte-1n46o8q",null,rt,{hidden:d(n)!=="mqtt"}),Xe=Rt(ft,1,"page-wrap svelte-1n46o8q",null,Xe,{hidden:d(n)!=="matter"}),yi=Rt(li,1,"page-wrap svelte-1n46o8q",null,yi,{hidden:d(n)!=="broker"}),xn=Rt(fn,1,"page-wrap svelte-1n46o8q",null,xn,{hidden:d(n)!=="db"}),gn=Rt(Li,1,"page-wrap svelte-1n46o8q",null,gn,{hidden:d(n)!=="config"}),$e=Rt(ee,1,"page-wrap svelte-1n46o8q",null,$e,{hidden:d(n)!=="logs"})}),q("click",Ii,()=>Le("scripts")),q("click",Fi,()=>Le("packages")),q("click",_i,()=>Le("mqtt")),q("click",Pi,()=>Le("matter")),q("click",Me,()=>Le("broker")),q("click",ui,()=>Le("db")),q("click",ze,()=>{Le("logs"),y(at,!1),y(me,!1)}),q("click",ae,ge=>{ge.stopPropagation(),y(a,!d(a)),y(r,!1)}),q("click",fe,ge=>{ge.stopPropagation(),y(r,!d(r)),y(a,!1)}),q("click",Z,()=>Le("config")),E(It,bi)};W(Ue,It=>{d(k)&&!d(p)&&It(De)})}var dt=b(Ue,2);{var Ot=It=>{var bi=UQ(),hi=v(bi),Ii=b(v(hi),4),Oi=b(v(Ii),2),Fi=b(Ii,2);{var Mi=_i=>{var tt=$Q(),Bt=v(tt);V(()=>F(Bt,d(m))),E(_i,tt)};W(Fi,_i=>{d(m)&&_i(Mi)})}var Ci=b(Fi,2),ai=v(Ci);V(()=>{Oi.disabled=d(x),Ci.disabled=d(x)||!d(w),F(ai,d(x)?"Signing in…":"Sign in")}),cs("submit",hi,_i=>{_i.preventDefault(),D()}),Yt(Oi,()=>d(w),_i=>y(w,_i)),E(It,bi)};W(dt,It=>{d(p)&&It(Ot)})}var ri=b(dt,2);{var Wt=It=>{var bi=qQ();E(It,bi)};W(ri,It=>{d(j)&&It(Wt)})}var Tt=b(ri,2);{var Nt=It=>{var bi=GQ();E(It,bi)};W(Tt,It=>{d(u)&&It(Nt)})}E(o,xt),Rs()}Ks(["click"]);DH(ZQ,{target:document.getElementById("app")});export{tM as t};
|