smart-home-engine 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jsonMode-CXWNuhmR.js","assets/monaco-langs-BW2J83t5.js","assets/monaco-langs-DyX1CsEw.css","assets/tsMode-
|
|
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-C5T2U6K3.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var OA=Object.defineProperty;var rL=o=>{throw TypeError(o)};var FA=(o,e,t)=>e in o?OA(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var yn=(o,e,t)=>FA(o,typeof e!="symbol"?e+"":e,t),bw=(o,e,t)=>e.has(o)||rL("Cannot "+t);var pe=(o,e,t)=>(bw(o,e,"read from private field"),t?t.call(o):e.get(o)),gn=(o,e,t)=>e.has(o)?rL("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),pn=(o,e,t,i)=>(bw(o,e,"write to private field"),i?i.call(o,t):e.set(o,t),t),zn=(o,e,t)=>(bw(o,e,"access private method"),t);import{_ as TD,m as MD,l as ii,A as bo,C as Re,I as Un,D as s_,a as as,g as RD,M as Bt,b as Fi,E as ca,c as B,r as Pn,d as Nr,e as C,f as HA,h as Wn,R as _n,S as Ti,i as to,j as Ar,k as Sn,n as nn,o as be,p as it,K as us,q as Yt,s as St,t as ys,u as Z,v as dn,O as Ha,w as _s,P as ri,x as yw,y as o_,z as ND,B as gl,F as da,G as yS,H as Os,U as Tn,J as uf,L as ai,N as yl,Q as WA,T as go,V as wS,W as BA,X as AD,$ as Zt,Y as xn,Z as wn,a0 as Zn,a1 as qi,a2 as Go,a3 as cp,a4 as vt,a5 as Im,a6 as zA,a7 as VA,a8 as bs,a9 as jA,aa as ua,ab as yo,ac as li,ad as OD,ae as jn,af as $A,ag as UA,ah as _o,ai as zf,aj as hs,ak as py,al as co,am as Wc,an as Gx,ao as _y,ap as Ms,aq as hf,ar as Rs,as as my,at as vy,au as qA,av as r_,aw as Vf,ax as Tl,ay as GA,az as jf,aA as KA,aB as Kx,aC as ZA,aD as YA,aE as aL,aF as rs,aG as pl,aH as uo,aI as Ji,aJ as dl,aK as XA,aL as Va,aM as $o,aN as Is,aO as ha,aP as Zx,aQ as ws,aR as is,aS as ev,aT as Xi,aU as FD,aV as JA,aW as Yx,aX as by,aY as Xx,aZ as Jx,a_ as bd,a$ as QA,b0 as Qx,b1 as eO,b2 as e0,b3 as Ml,b4 as Rl,b5 as ff,b6 as dp,b7 as Mo,b8 as a_,b9 as tv,ba as ww,bb as Nn,bc as t0,bd as l_,be as yy,bf as tO,bg as HD,bh as up,bi as gf,bj as hp,bk as c_,bl as wy,bm as Cn,bn as Bc,bo as d_,bp as iO,bq as nO,br as i0,bs as sO,bt as iv,bu as dr,bv as n0,bw as pf,bx as Nl,by as $f,bz as cn,bA as _f,bB as WD,bC as u_,bD as oO,bE as yd,bF as jt,bG as lL,bH as Em,bI as BD,bJ as Hr,bK as oa,bL as On,bM as mf,bN as Ir,bO as vf,bP as Kn,bQ as fp,bR as Fu,bS as SS,bT as zD,bU as VD,bV as jD,bW as s0,bX as ko,bY as En,bZ as h_,b_ as $D,b$ as _l,c0 as Sy,c1 as rO,c2 as Ch,c3 as cL,c4 as f_,c5 as UD,c6 as xh,c7 as aO,c8 as yr,c9 as Cy,ca as lO,cb as wo,cc as fa,cd as g_,ce as gp,cf as qD,cg as ar,ch as p_,ci as xy,cj as cO,ck as dO,cl as uO,cm as Uf,cn as ja,co as Es,cp as hO,cq as o0,cr as fO,cs as gO,ct as dL,cu as pO,cv as __,cw as wl,cx as CS,cy as mu,cz as Sl,cA as _O,cB as Wa,cC as Er,cD as Bo,cE as uL,cF as no,cG as m_,cH as Pc,cI as $a,cJ as mO,cK as ga,cL as pp,cM as ky,cN as GD,cO as vO,cP as bO,cQ as r0,cR as yO,cS as _p,cT as wO,cU as nc,cV as mp,cW as hL,cX as SO,cY as CO,cZ as Ga,c_ as xO,c$ as a0,d0 as KD,d1 as ZD,d2 as YD,d3 as XD,d4 as kO,d5 as LO,d6 as JD,d7 as QD,d8 as IO,d9 as l0,da as EO,db as DO,dc as Jn,dd as PO,de as c0,df as TO,dg as kh,dh as fL,di as MO,dj as RO,dk as NO,dl as AO,dm as OO,dn as FO,dp as bf,dq as Ly,dr as xS,ds as HO,dt as WO,du as gL,dv as kS,dw as BO,dx as pL,dy as Sw,dz as zO,dA as eP,dB as VO,dC as tP,dD as LS,dE as jO,dF as $O,dG as UO,dH as iP,dI as nP,dJ as qO,dK as nv,dL as sP,dM as Iy,dN as GO,dO as KO,dP as Tc,dQ as d0,dR as ZO,dS as _L,dT as mL,dU as YO,dV as Lh,dW as oP,dX as XO,dY as JO,dZ as QO,d_ as e2,d$ as rP,e0 as aP,e1 as lP,e2 as cP,e3 as t2,e4 as Ba,e5 as vL,e6 as i2,e7 as v_,e8 as n2,e9 as xg,ea as dP,eb as bL,ec as vp,ed as uP,ee as sv,ef as s2,eg as hP,eh as o2,ei as fP,ej as r2,ek as a2,el as gP,em as pP,en as Cl,eo as Ey,ep as l2,eq as _P,er as Uo,es as wd,et as mP,eu as c2,ev as d2,ew as vP,ex as bP,ey as u2,ez as yP,eA as wP,eB as bp,eC as h2,eD as f2,eE as g2,eF as p2,eG as fg,eH as yL,eI as _2,eJ as m2,eK as v2,eL as ov,eM as Us,eN as b2,eO as IS,eP as Hu,eQ as y2,eR as cl,eS as w2,eT as S2,eU as SP,eV as C2,eW as Vg,eX as x2,eY as k2,eZ as L2,e_ as I2,e$ as wL,f0 as SL,f1 as CL,f2 as Wu,f3 as u0,f4 as CP,f5 as ES,f6 as Dm,f7 as xP,f8 as rv,f9 as E2,fa as D2,fb as P2,fc as T2,fd as h0,fe as kP,ff as M2,fg as av,fh as LP,fi as IP,fj as R2,fk as N2,fl as A2,fm as O2,fn as F2,fo as H2,fp as W2,fq as B2,fr as EP,fs as z2,ft as lv,fu as DP,fv as V2,fw as PP,fx as j2,fy as TP,fz as MP,fA as $2,fB as xL,fC as RP,fD as kL,fE as U2,fF as Cw,fG as LL,fH as q2,fI as G2,fJ as K2,fK as Ta,fL as Mc,fM as Z2,fN as IL,fO as Pm,fP as Y2,fQ as ul,fR as Dy,fS as DS,fT as X2,fU as NP,fV as AP,fW as so,fX as EL,fY as K_,fZ as f0,f_ as J2,f$ as Q2,g0 as eF,g1 as tF,g2 as iF,g3 as nF,g4 as sF,g5 as oF,g6 as DL,g7 as rF,g8 as aF,g9 as lF,ga as yf,gb as jg,gc as OP,gd as cF,ge as g0,gf as Tm,gg as Z_,gh as xw,gi as dF,gj as uF,gk as FP,gl as hF,gm as p0,gn as fF,go as gF,gp as HP,gq as Py,gr as pF,gs as cv,gt as _0,gu as m0,gv as v0,gw as WP,gx as BP,gy as zP,gz as VP,gA as jP,gB as $P,gC as UP,gD as PL,gE as qP,gF as eh,gG as _F,gH as mF,gI as vF,gJ as bF,gK as GP,gL as yF,gM as wF,gN as TL,gO as PS,gP as dc,gQ as SF,gR as CF,gS as xF,gT as kF,gU as LF,gV as IF,gW as ML,gX as b0,gY as TS,gZ as EF,g_ as MS,g$ as DF,h0 as PF,h1 as TF,h2 as MF,h3 as y0,h4 as KP,h5 as RL,h6 as NL,h7 as RF,h8 as NF,h9 as AF,ha as AL,hb as kw,hc as OF,hd as FF,he as HF,hf as Lw,hg as ZP,hh as YP,hi as XP,hj as JP,hk as xl,hl as QP,hm as w0,hn as OL,ho as WF,hp as eT,hq as BF,hr as zF,hs as Ty,ht as My,hu as Bu,hv as Ry,hw as b_,hx as VF,hy as Ny,hz as jF,hA as $F,hB as UF,hC as tT,hD as gg,hE as qF,hF as GF,hG as KF,hH as ZF,hI as y_,hJ as YF,hK as iT,hL as nT,hM as sT,hN as RS,hO as XF,hP as JF,hQ as QF,hR as e3,hS as t3,hT as NS,hU as i3,hV as n3,hW as s3,hX as o3,hY as r3,hZ as a3,h_ as l3,h$ as c3,i0 as oT,i1 as d3,i2 as u3,i3 as h3,i4 as FL,i5 as f3,i6 as g3,i7 as sd,i8 as _r,i9 as p3,ia as _3}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 rT=!1;var S0=Array.isArray,m3=Array.prototype.indexOf,dv=Array.prototype.includes,Ay=Array.from,v3=Object.defineProperty,zh=Object.getOwnPropertyDescriptor,b3=Object.getOwnPropertyDescriptors,y3=Object.prototype,w3=Array.prototype,aT=Object.getPrototypeOf,HL=Object.isExtensible;const Oy=()=>{};function S3(o){for(var e=0;e<o.length;e++)o[e]()}function lT(){var o,e,t=new Promise((i,n)=>{o=i,e=n});return{promise:t,resolve:o,reject:e}}function C3(o,e,t=!1){return o===void 0?t?e():e:o}function WL(o,e){if(Array.isArray(o))return o;if(!(Symbol.iterator in o))return Array.from(o);const t=[];for(const i of o)if(t.push(i),t.length===e)break;return t}const ao=2,wf=4,Fy=8,cT=1<<24,ra=16,la=32,Rc=64,AS=128,Mr=512,qs=1024,Xs=2048,Ua=4096,Eo=8192,Rr=16384,qf=32768,OS=1<<25,Sf=65536,uv=1<<17,x3=1<<18,Gf=1<<19,k3=1<<20,Aa=1<<25,vu=65536,hv=1<<21,Vh=1<<22,uc=1<<23,Sd=Symbol("$state"),L3=Symbol("legacy props"),I3=Symbol(""),Mm=Symbol("attributes"),FS=Symbol("class"),HS=Symbol("style"),kg=Symbol("text"),Rm=Symbol("form reset"),Hy=new class extends Error{constructor(){super(...arguments);yn(this,"name","StaleReactionError");yn(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var ED;const E3=!!((ED=globalThis.document)!=null&&ED.contentType)&&globalThis.document.contentType.includes("xml");function dT(o){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function D3(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function P3(o,e,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function T3(o){throw new Error("https://svelte.dev/e/effect_in_teardown")}function M3(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function R3(o){throw new Error("https://svelte.dev/e/effect_orphan")}function N3(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function A3(o){throw new Error("https://svelte.dev/e/props_invalid_value")}function O3(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function F3(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function H3(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function W3(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const B3=1,z3=2,uT=4,V3=8,j3=16,$3=1,U3=4,q3=8,G3=16,K3=1,Z3=2,$s=Symbol("uninitialized"),hT="http://www.w3.org/1999/xhtml",Y3="http://www.w3.org/2000/svg",X3="http://www.w3.org/1998/Math/MathML";function J3(){console.warn("https://svelte.dev/e/derived_inert")}function Q3(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function eH(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function fT(o){return o===this.v}function tH(o,e){return o!=o?e==e:o!==e||o!==null&&typeof o=="object"||typeof o=="function"}function gT(o){return!tH(o,this.v)}let iH=!1,ro=null;function Cf(o){ro=o}function Fs(o,e=!1,t){ro={p:ro,i:!1,c:null,e:null,s:o,x:null,r:Dn,l:null}}function Hs(o){var e=ro,t=e.e;if(t!==null){e.e=null;for(var i of t)OT(i)}return o!==void 0&&(e.x=o),e.i=!0,ro=e.p,o??{}}function pT(){return!0}let cd=[];function _T(){var o=cd;cd=[],S3(o)}function hc(o){if(cd.length===0&&!Ug){var e=cd;queueMicrotask(()=>{e===cd&&_T()})}cd.push(o)}function nH(){for(;cd.length>0;)_T()}function mT(o){var e=Dn;if(e===null)return In.f|=uc,o;if((e.f&qf)===0&&(e.f&wf)===0)throw o;sc(o,e)}function sc(o,e){for(;e!==null;){if((e.f&AS)!==0){if((e.f&qf)===0)throw o;try{e.b.error(o);return}catch(t){o=t}}e=e.parent}throw o}const sH=-7169;function xs(o,e){o.f=o.f&sH|e}function C0(o){(o.f&Mr)!==0||o.deps===null?xs(o,qs):xs(o,Ua)}function vT(o){if(o!==null)for(const e of o)(e.f&ao)===0||(e.f&vu)===0||(e.f^=vu,vT(e.deps))}function bT(o,e,t){(o.f&Xs)!==0?e.add(o):(o.f&Ua)!==0&&t.add(o),vT(o.deps),xs(o,qs)}let Y_=!1;function oH(o){var e=Y_;try{return Y_=!1,[o(),Y_]}finally{Y_=e}}let Iw=null,th=null,Gi=null,$g=null,io=null,WS=null,Ug=!1,Ew=!1,Ih=null,Nm=null;var BL=0;let rH=1;var qh,ec,gd,Gh,Kh,Zh,ol,Yh,Fo,Jp,rl,Yr,Ia,Xh,pd,Qn,BS,Lg,zS,yT,wT,mh,aH,Ig;const Sb=class Sb{constructor(){gn(this,Qn);yn(this,"id",rH++);gn(this,qh,!1);yn(this,"linked",!0);gn(this,ec,null);gn(this,gd,null);yn(this,"async_deriveds",new Map);yn(this,"current",new Map);yn(this,"previous",new Map);gn(this,Gh,new Set);gn(this,Kh,new Set);gn(this,Zh,0);gn(this,ol,new Map);gn(this,Yh,null);gn(this,Fo,[]);gn(this,Jp,[]);gn(this,rl,new Set);gn(this,Yr,new Set);gn(this,Ia,new Map);gn(this,Xh,new Set);yn(this,"is_fork",!1);gn(this,pd,!1);th===null?Iw=th=this:(pn(th,gd,this),pn(this,ec,th)),th=this}skip_effect(e){pe(this,Ia).has(e)||pe(this,Ia).set(e,{d:[],m:[]}),pe(this,Xh).delete(e)}unskip_effect(e,t=i=>this.schedule(i)){var i=pe(this,Ia).get(e);if(i){pe(this,Ia).delete(e);for(var n of i.d)xs(n,Xs),t(n);for(n of i.m)xs(n,Ua),t(n)}pe(this,Xh).add(e)}capture(e,t,i=!1){e.v!==$s&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&uc)===0&&(this.current.set(e,[t,i]),io==null||io.set(e,t)),this.is_fork||(e.v=t)}activate(){Gi=this}deactivate(){Gi=null,io=null}flush(){try{Ew=!0,Gi=this,zn(this,Qn,Lg).call(this)}finally{BL=0,WS=null,Ih=null,Nm=null,Ew=!1,Gi=null,io=null,Cd.clear()}}discard(){var e;for(const t of pe(this,Kh))t(this);pe(this,Kh).clear(),zn(this,Qn,Ig).call(this),(e=pe(this,Yh))==null||e.resolve()}register_created_effect(e){pe(this,Jp).push(e)}increment(e,t){if(pn(this,Zh,pe(this,Zh)+1),e){let i=pe(this,ol).get(t)??0;pe(this,ol).set(t,i+1)}}decrement(e,t){if(pn(this,Zh,pe(this,Zh)-1),e){let i=pe(this,ol).get(t)??0;i===1?pe(this,ol).delete(t):pe(this,ol).set(t,i-1)}pe(this,pd)||(pn(this,pd,!0),hc(()=>{pn(this,pd,!1),this.linked&&this.flush()}))}transfer_effects(e,t){for(const i of e)pe(this,rl).add(i);for(const i of t)pe(this,Yr).add(i);e.clear(),t.clear()}oncommit(e){pe(this,Gh).add(e)}ondiscard(e){pe(this,Kh).add(e)}settled(){return(pe(this,Yh)??pn(this,Yh,lT())).promise}static ensure(){if(Gi===null){const e=Gi=new Sb;!Ew&&!Ug&&hc(()=>{pe(e,qh)||e.flush()})}return Gi}apply(){{io=null;return}}schedule(e){var n;if(WS=e,(n=e.b)!=null&&n.is_pending&&(e.f&(wf|Fy|cT))!==0&&(e.f&qf)===0){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var i=t.f;if(Ih!==null&&t===Dn&&(In===null||(In.f&ao)===0))return;if((i&(Rc|la))!==0){if((i&qs)===0)return;t.f^=qs}}pe(this,Fo).push(t)}};qh=new WeakMap,ec=new WeakMap,gd=new WeakMap,Gh=new WeakMap,Kh=new WeakMap,Zh=new WeakMap,ol=new WeakMap,Yh=new WeakMap,Fo=new WeakMap,Jp=new WeakMap,rl=new WeakMap,Yr=new WeakMap,Ia=new WeakMap,Xh=new WeakMap,pd=new WeakMap,Qn=new WeakSet,BS=function(){if(this.is_fork)return!0;for(const i of pe(this,ol).keys()){for(var e=i,t=!1;e.parent!==null;){if(pe(this,Ia).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1},Lg=function(){var d,u,f,g;pn(this,qh,!0),BL++>1e3&&(zn(this,Qn,Ig).call(this),cH());for(const p of pe(this,rl))pe(this,Yr).delete(p),xs(p,Xs),this.schedule(p);for(const p of pe(this,Yr))xs(p,Ua),this.schedule(p);const e=pe(this,Fo);pn(this,Fo,[]),this.apply();var t=Ih=[],i=[],n=Nm=[];for(const p of e)try{zn(this,Qn,zS).call(this,p,t,i)}catch(w){throw xT(p),zn(this,Qn,BS).call(this)||this.discard(),w}if(Gi=null,n.length>0){var s=Sb.ensure();for(const p of n)s.schedule(p)}if(Ih=null,Nm=null,zn(this,Qn,BS).call(this)){zn(this,Qn,mh).call(this,i),zn(this,Qn,mh).call(this,t);for(const[p,w]of pe(this,Ia))CT(p,w);n.length>0&&zn(d=Gi,Qn,Lg).call(d);return}const r=zn(this,Qn,yT).call(this);if(r){zn(this,Qn,mh).call(this,i),zn(this,Qn,mh).call(this,t),zn(u=r,Qn,wT).call(u,this);return}pe(this,rl).clear(),pe(this,Yr).clear();for(const p of pe(this,Gh))p(this);pe(this,Gh).clear(),$g=this,zL(i),zL(t),$g=null,(f=pe(this,Yh))==null||f.resolve();var a=Gi;if(pe(this,Zh)===0&&(pe(this,Fo).length===0||a!==null)&&zn(this,Qn,Ig).call(this),pe(this,Fo).length>0)if(a!==null){const p=a;pe(p,Fo).push(...pe(this,Fo).filter(w=>!pe(p,Fo).includes(w)))}else a=this;a!==null&&zn(g=a,Qn,Lg).call(g)},zS=function(e,t,i){e.f^=qs;for(var n=e.first;n!==null;){var s=n.f,r=(s&(la|Rc))!==0,a=r&&(s&qs)!==0,d=a||(s&Eo)!==0||pe(this,Ia).has(n);if(!d&&n.fn!==null){r?n.f^=qs:(s&wf)!==0?t.push(n):S_(n)&&((s&ra)!==0&&pe(this,Yr).add(n),kf(n));var u=n.first;if(u!==null){n=u;continue}}for(;n!==null;){var f=n.next;if(f!==null){n=f;break}n=n.parent}}},yT=function(){for(var e=pe(this,ec);e!==null;){if(!e.is_fork){for(const[t,[,i]]of this.current)if(e.current.has(t)&&!i)return e}e=pe(e,ec)}return null},wT=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(pe(e,rl),pe(e,Yr));const t=n=>{var s=n.reactions;if(s!==null)for(const d of s){var r=d.f;if((r&ao)!==0)t(d);else{var a=d;r&(Vh|ra)&&!this.async_deriveds.has(a)&&(pe(this,Yr).delete(a),xs(a,Xs),this.schedule(a))}}};for(const n of this.current.keys())t(n);this.oncommit(()=>e.discard()),zn(i=e,Qn,Ig).call(i),Gi=this,zn(this,Qn,Lg).call(this)},mh=function(e){for(var t=0;t<e.length;t+=1)bT(e[t],pe(this,rl),pe(this,Yr))},aH=function(){var f;for(let g=Iw;g!==null;g=pe(g,gd)){var e=g.id<this.id,t=[];for(const[p,[w,y]]of this.current){if(g.current.has(p)){var i=g.current.get(p)[0];if(e&&w!==i)g.current.set(p,[w,y]);else continue}t.push(p)}if(e)for(const[p,w]of this.async_deriveds){const y=g.async_deriveds.get(p);y&&w.promise.then(y.resolve).catch(y.reject)}if(pe(g,qh)){var n=[...g.current.keys()].filter(p=>!g.current.get(p)[1]&&!this.current.has(p));if(n.length===0)e&&g.discard();else if(t.length>0){if(e)for(const p of pe(this,Xh))g.unskip_effect(p,w=>{var y;(w.f&(ra|Vh))!==0?g.schedule(w):zn(y=g,Qn,mh).call(y,[w])});g.activate();var s=new Set,r=new Map;for(var a of t)ST(a,n,s,r);r=new Map;var d=[...g.current].filter(([p,w])=>{const y=this.current.get(p);return y?y[0]!==w[0]||y[1]!==w[1]:!0}).map(([p])=>p);if(d.length>0)for(const p of pe(this,Jp))(p.f&(Rr|Eo|uv))===0&&x0(p,d,r)&&((p.f&(Vh|ra))!==0?(xs(p,Xs),g.schedule(p)):pe(g,rl).add(p));if(pe(g,Fo).length>0&&!pe(g,pd)){g.apply();for(var u of pe(g,Fo))zn(f=g,Qn,zS).call(f,u,[],[]);pn(g,Fo,[])}g.deactivate()}}}},Ig=function(){if(this.linked){var e=pe(this,ec),t=pe(this,gd);e===null?Iw=t:pn(e,gd,t),t===null?th=e:pn(t,ec,e),this.linked=!1}};let bu=Sb;function lH(o){var e=Ug;Ug=!0;try{for(var t;;){if(nH(),Gi===null)return t;Gi.flush()}}finally{Ug=e}}function cH(){try{N3()}catch(o){sc(o,WS)}}let Gr=null;function zL(o){var e=o.length;if(e!==0){for(var t=0;t<e;){var i=o[t++];if((i.f&(Rr|Eo))===0&&S_(i)&&(Gr=new Set,kf(i),i.deps===null&&i.first===null&&i.nodes===null&&i.teardown===null&&i.ac===null&&WT(i),(Gr==null?void 0:Gr.size)>0)){Cd.clear();for(const n of Gr){if((n.f&(Rr|Eo))!==0)continue;const s=[n];let r=n.parent;for(;r!==null;)Gr.has(r)&&(Gr.delete(r),s.push(r)),r=r.parent;for(let a=s.length-1;a>=0;a--){const d=s[a];(d.f&(Rr|Eo))===0&&kf(d)}}Gr.clear()}}Gr=null}}function ST(o,e,t,i){if(!t.has(o)&&(t.add(o),o.reactions!==null))for(const n of o.reactions){const s=n.f;(s&ao)!==0?ST(n,e,t,i):(s&(Vh|ra))!==0&&(s&Xs)===0&&x0(n,e,i)&&(xs(n,Xs),k0(n))}}function x0(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(dv.call(e,n))return!0;if((n.f&ao)!==0&&x0(n,e,t))return t.set(n,!0),!0}return t.set(o,!1),!1}function k0(o){Gi.schedule(o)}function CT(o,e){if(!((o.f&la)!==0&&(o.f&qs)!==0)){(o.f&Xs)!==0?e.d.push(o):(o.f&Ua)!==0&&e.m.push(o),xs(o,qs);for(var t=o.first;t!==null;)CT(t,e),t=t.next}}function xT(o){xs(o,qs);for(var e=o.first;e!==null;)xT(e),e=e.next}function dH(o){let e=0,t=yu(0),i;return()=>{D0()&&(c(t),By(()=>(e===0&&(i=Ol(()=>o(()=>qg(t)))),e+=1,()=>{hc(()=>{e-=1,e===0&&(i==null||i(),i=void 0,qg(t))})})))}}var uH=Sf|Gf;function hH(o,e,t,i){new fH(o,e,t,i)}var Sr,qx,Cr,_d,Ho,xr,Co,nr,al,md,tc,Jh,Qp,e_,ll,Cb,Ls,gH,pH,_H,VS,Am,Om,jS,$S;class fH{constructor(e,t,i,n){gn(this,Ls);yn(this,"parent");yn(this,"is_pending",!1);yn(this,"transform_error");gn(this,Sr);gn(this,qx,null);gn(this,Cr);gn(this,_d);gn(this,Ho);gn(this,xr,null);gn(this,Co,null);gn(this,nr,null);gn(this,al,null);gn(this,md,0);gn(this,tc,0);gn(this,Jh,!1);gn(this,Qp,new Set);gn(this,e_,new Set);gn(this,ll,null);gn(this,Cb,dH(()=>(pn(this,ll,yu(pe(this,md))),()=>{pn(this,ll,null)})));var s;pn(this,Sr,e),pn(this,Cr,t),pn(this,_d,r=>{var a=Dn;a.b=this,a.f|=AS,i(r)}),this.parent=Dn.b,this.transform_error=n??((s=this.parent)==null?void 0:s.transform_error)??(r=>r),pn(this,Ho,M0(()=>{zn(this,Ls,VS).call(this)},uH))}defer_effect(e){bT(e,pe(this,Qp),pe(this,e_))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!pe(this,Cr).pending}update_pending_count(e,t){zn(this,Ls,jS).call(this,e,t),pn(this,md,pe(this,md)+e),!(!pe(this,ll)||pe(this,Jh))&&(pn(this,Jh,!0),hc(()=>{pn(this,Jh,!1),pe(this,ll)&&xf(pe(this,ll),pe(this,md))}))}get_effect_pending(){return pe(this,Cb).call(this),c(pe(this,ll))}error(e){if(!pe(this,Cr).onerror&&!pe(this,Cr).failed)throw e;Gi!=null&&Gi.is_fork?(pe(this,xr)&&Gi.skip_effect(pe(this,xr)),pe(this,Co)&&Gi.skip_effect(pe(this,Co)),pe(this,nr)&&Gi.skip_effect(pe(this,nr)),Gi.oncommit(()=>{zn(this,Ls,$S).call(this,e)})):zn(this,Ls,$S).call(this,e)}}Sr=new WeakMap,qx=new WeakMap,Cr=new WeakMap,_d=new WeakMap,Ho=new WeakMap,xr=new WeakMap,Co=new WeakMap,nr=new WeakMap,al=new WeakMap,md=new WeakMap,tc=new WeakMap,Jh=new WeakMap,Qp=new WeakMap,e_=new WeakMap,ll=new WeakMap,Cb=new WeakMap,Ls=new WeakSet,gH=function(){try{pn(this,xr,kr(()=>pe(this,_d).call(this,pe(this,Sr))))}catch(e){this.error(e)}},pH=function(e){const t=pe(this,Cr).failed;t&&pn(this,nr,kr(()=>{t(pe(this,Sr),()=>e,()=>()=>{})}))},_H=function(){const e=pe(this,Cr).pending;e&&(this.is_pending=!0,pn(this,Co,kr(()=>e(pe(this,Sr)))),hc(()=>{var t=pn(this,al,document.createDocumentFragment()),i=ml();t.append(i),pn(this,xr,zn(this,Ls,Om).call(this,()=>kr(()=>pe(this,_d).call(this,i)))),pe(this,tc)===0&&(pe(this,Sr).before(t),pn(this,al,null),kd(pe(this,Co),()=>{pn(this,Co,null)}),zn(this,Ls,Am).call(this,Gi))}))},VS=function(){try{if(this.is_pending=this.has_pending_snippet(),pn(this,tc,0),pn(this,md,0),pn(this,xr,kr(()=>{pe(this,_d).call(this,pe(this,Sr))})),pe(this,tc)>0){var e=pn(this,al,document.createDocumentFragment());N0(pe(this,xr),e);const t=pe(this,Cr).pending;pn(this,Co,kr(()=>t(pe(this,Sr))))}else zn(this,Ls,Am).call(this,Gi)}catch(t){this.error(t)}},Am=function(e){this.is_pending=!1,e.transfer_effects(pe(this,Qp),pe(this,e_))},Om=function(e){var t=Dn,i=In,n=ro;qa(pe(this,Ho)),Or(pe(this,Ho)),Cf(pe(this,Ho).ctx);try{return bu.ensure(),e()}catch(s){return mT(s),null}finally{qa(t),Or(i),Cf(n)}},jS=function(e,t){var i;if(!this.has_pending_snippet()){this.parent&&zn(i=this.parent,Ls,jS).call(i,e,t);return}pn(this,tc,pe(this,tc)+e),pe(this,tc)===0&&(zn(this,Ls,Am).call(this,t),pe(this,Co)&&kd(pe(this,Co),()=>{pn(this,Co,null)}),pe(this,al)&&(pe(this,Sr).before(pe(this,al)),pn(this,al,null)))},$S=function(e){pe(this,xr)&&(qo(pe(this,xr)),pn(this,xr,null)),pe(this,Co)&&(qo(pe(this,Co)),pn(this,Co,null)),pe(this,nr)&&(qo(pe(this,nr)),pn(this,nr,null));var t=pe(this,Cr).onerror;let i=pe(this,Cr).failed;var n=!1,s=!1;const r=()=>{if(n){eH();return}n=!0,s&&W3(),pe(this,nr)!==null&&kd(pe(this,nr),()=>{pn(this,nr,null)}),zn(this,Ls,Om).call(this,()=>{zn(this,Ls,VS).call(this)})},a=d=>{try{s=!0,t==null||t(d,r),s=!1}catch(u){sc(u,pe(this,Ho)&&pe(this,Ho).parent)}i&&pn(this,nr,zn(this,Ls,Om).call(this,()=>{try{return kr(()=>{var u=Dn;u.b=this,u.f|=AS,i(pe(this,Sr),()=>d,()=>r)})}catch(u){return sc(u,pe(this,Ho).parent),null}}))};hc(()=>{var d;try{d=this.transform_error(e)}catch(u){sc(u,pe(this,Ho)&&pe(this,Ho).parent);return}d!==null&&typeof d=="object"&&typeof d.then=="function"?d.then(a,u=>sc(u,pe(this,Ho)&&pe(this,Ho).parent)):a(d)})};function mH(o,e,t,i){const n=yp;var s=o.filter(p=>!p.settled);if(t.length===0&&s.length===0){i(e.map(n));return}var r=Dn,a=vH(),d=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(p=>p.promise)):null;function u(p){if((r.f&Rr)===0){a();try{i(p)}catch(w){sc(w,r)}fv()}}var f=kT();if(t.length===0){d.then(()=>u(e.map(n))).finally(f);return}function g(){Promise.all(t.map(p=>bH(p))).then(p=>u([...e.map(n),...p])).catch(p=>sc(p,r)).finally(f)}d?d.then(()=>{a(),g(),fv()}):g()}function vH(){var o=Dn,e=In,t=ro,i=Gi;return function(s=!0){qa(o),Or(e),Cf(t),s&&(o.f&Rr)===0&&(i==null||i.activate(),i==null||i.apply())}}function fv(o=!0){qa(null),Or(null),Cf(null),o&&(Gi==null||Gi.deactivate())}function kT(){var o=Dn,e=o.b,t=Gi,i=!!(e!=null&&e.is_rendered());return e==null||e.update_pending_count(1,t),t.increment(i,o),()=>{e==null||e.update_pending_count(-1,t),t.decrement(i,o)}}function yp(o){var e=ao|Xs;return Dn!==null&&(Dn.f|=Gf),{ctx:ro,deps:null,effects:null,equals:fT,f:e,fn:o,reactions:null,rv:0,v:$s,wv:0,parent:Dn,ac:null}}const X_=Symbol("obsolete");function bH(o,e,t){let i=Dn;i===null&&D3();var n=void 0,s=yu($s),r=!In,a=new Set;return TH(()=>{var w,y;var d=Dn,u=lT();n=u.promise;try{Promise.resolve(o()).then(u.resolve,x=>{x!==Hy&&u.reject(x)}).finally(fv)}catch(x){u.reject(x),fv()}var f=Gi;if(r){if((d.f&qf)!==0)var g=kT();if((w=i.b)!=null&&w.is_rendered())(y=f.async_deriveds.get(d))==null||y.reject(X_);else for(const x of a.values())x.reject(X_);a.add(u),f.async_deriveds.set(d,u)}const p=(x,k=void 0)=>{g==null||g(),a.delete(u),k!==X_&&(f.activate(),k?(s.f|=uc,xf(s,k)):((s.f&uc)!==0&&(s.f^=uc),xf(s,x)),f.deactivate())};u.promise.then(p,x=>p(null,x||"unknown"))}),P0(()=>{for(const d of a)d.reject(X_)}),new Promise(d=>{function u(f){function g(){f===n?d(s):u(n)}f.then(g,g)}u(n)})}function mt(o){const e=yp(o);return VT(e),e}function L0(o){const e=yp(o);return e.equals=gT,e}function yH(o){var e=o.effects;if(e!==null){o.effects=null;for(var t=0;t<e.length;t+=1)qo(e[t])}}function I0(o){var e,t=Dn,i=o.parent;if(!kl&&i!==null&&o.v!==$s&&(i.f&(Rr|Eo))!==0)return J3(),o.v;qa(i);try{o.f&=~vu,yH(o),e=qT(o)}finally{qa(t)}return e}function LT(o){var e=I0(o);if(!o.equals(e)&&(o.wv=$T(),(!(Gi!=null&&Gi.is_fork)||o.deps===null)&&(Gi!==null?(Gi.capture(o,e,!0),$g==null||$g.capture(o,e,!0)):o.v=e,o.deps===null))){xs(o,qs);return}kl||(io!==null?(D0()||Gi!=null&&Gi.is_fork)&&io.set(o,e):C0(o))}function wH(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(Hy),i.fn!==null&&(i.teardown=Oy),i.ac=null,wp(i,0),R0(i))}function IT(o){if(o.effects!==null)for(const e of o.effects)e.teardown&&e.fn!==null&&kf(e)}let gv=new Set;const Cd=new Map;let ET=!1;function yu(o,e){var t={f:0,v:o,reactions:null,equals:fT,rv:0,wv:0};return t}function T(o,e){const t=yu(o);return VT(t),t}function SH(o,e=!1,t=!0){const i=yu(o);return e||(i.equals=gT),i}function m(o,e,t=!1){In!==null&&(!aa||(In.f&uv)!==0)&&pT()&&(In.f&(ao|ra|Vh|uv))!==0&&(za===null||!za.has(o))&&H3();let i=t?ki(e):e;return xf(o,i,Nm)}function xf(o,e,t=null){if(!o.equals(e)){Cd.set(o,kl?e:o.v);var i=bu.ensure();if(i.capture(o,e),(o.f&ao)!==0){const n=o;(o.f&Xs)!==0&&I0(n),io===null&&C0(n)}o.wv=$T(),DT(o,Xs,t),Dn!==null&&(Dn.f&qs)!==0&&(Dn.f&(la|Rc))===0&&(wr===null?RH([o]):wr.push(o)),!i.is_fork&&gv.size>0&&!ET&&CH()}return e}function CH(){ET=!1;for(const o of gv){(o.f&qs)!==0&&xs(o,Ua);let e;try{e=S_(o)}catch{e=!0}e&&kf(o)}gv.clear()}function VL(o,e=1){var t=c(o),i=e===1?t++:t--;return m(o,t),i}function qg(o){m(o,o.v+1)}function DT(o,e,t){var i=o.reactions;if(i!==null)for(var n=i.length,s=0;s<n;s++){var r=i[s],a=r.f,d=(a&Xs)===0;if(d&&xs(r,e),(a&uv)!==0)gv.add(r);else if((a&ao)!==0){var u=r;io==null||io.delete(u),(a&vu)===0&&(a&Mr&&(Dn===null||(Dn.f&hv)===0)&&(r.f|=vu),DT(u,Ua,t))}else if(d){var f=r;(a&ra)!==0&&Gr!==null&&Gr.add(f),t!==null?t.push(f):k0(f)}}}function ki(o){if(typeof o!="object"||o===null||Sd in o)return o;const e=aT(o);if(e!==y3&&e!==w3)return o;var t=new Map,i=S0(o),n=T(0),s=Ld,r=a=>{if(Ld===s)return a();var d=In,u=Ld;Or(null),qL(s);var f=a();return Or(d),qL(u),f};return i&&t.set("length",T(o.length)),new Proxy(o,{defineProperty(a,d,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&O3();var f=t.get(d);return f===void 0?r(()=>{var g=T(u.value);return t.set(d,g),g}):m(f,u.value,!0),!0},deleteProperty(a,d){var u=t.get(d);if(u===void 0){if(d in a){const f=r(()=>T($s));t.set(d,f),qg(n)}}else m(u,$s),qg(n);return!0},get(a,d,u){var w;if(d===Sd)return o;var f=t.get(d),g=d in a;if(f===void 0&&(!g||(w=zh(a,d))!=null&&w.writable)&&(f=r(()=>{var y=ki(g?a[d]:$s),x=T(y);return x}),t.set(d,f)),f!==void 0){var p=c(f);return p===$s?void 0:p}return Reflect.get(a,d,u)},getOwnPropertyDescriptor(a,d){var u=Reflect.getOwnPropertyDescriptor(a,d);if(u&&"value"in u){var f=t.get(d);f&&(u.value=c(f))}else if(u===void 0){var g=t.get(d),p=g==null?void 0:g.v;if(g!==void 0&&p!==$s)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(a,d){var p;if(d===Sd)return!0;var u=t.get(d),f=u!==void 0&&u.v!==$s||Reflect.has(a,d);if(u!==void 0||Dn!==null&&(!f||(p=zh(a,d))!=null&&p.writable)){u===void 0&&(u=r(()=>{var w=f?ki(a[d]):$s,y=T(w);return y}),t.set(d,u));var g=c(u);if(g===$s)return!1}return f},set(a,d,u,f){var F;var g=t.get(d),p=d in a;if(i&&d==="length")for(var w=u;w<g.v;w+=1){var y=t.get(w+"");y!==void 0?m(y,$s):w in a&&(y=r(()=>T($s)),t.set(w+"",y))}if(g===void 0)(!p||(F=zh(a,d))!=null&&F.writable)&&(g=r(()=>T(void 0)),m(g,ki(u)),t.set(d,g));else{p=g.v!==$s;var x=r(()=>ki(u));m(g,x)}var k=Reflect.getOwnPropertyDescriptor(a,d);if(k!=null&&k.set&&k.set.call(f,u),!p){if(i&&typeof d=="string"){var D=t.get("length"),M=Number(d);Number.isInteger(M)&&M>=D.v&&m(D,M+1)}qg(n)}return!0},ownKeys(a){c(n);var d=Reflect.ownKeys(a).filter(g=>{var p=t.get(g);return p===void 0||p.v!==$s});for(var[u,f]of t)f.v!==$s&&!(u in a)&&d.push(u);return d},setPrototypeOf(){F3()}})}function jL(o){try{if(o!==null&&typeof o=="object"&&Sd in o)return o[Sd]}catch{}return o}function xH(o,e){return Object.is(jL(o),jL(e))}var xd,PT,TT,MT,RT;function kH(){if(xd===void 0){xd=window,PT=document,TT=/Firefox/.test(navigator.userAgent);var o=Element.prototype,e=Node.prototype,t=Text.prototype;MT=zh(e,"firstChild").get,RT=zh(e,"nextSibling").get,HL(o)&&(o[FS]=void 0,o[Mm]=null,o[HS]=void 0,o.__e=void 0),HL(t)&&(t[kg]=void 0)}}function ml(o=""){return document.createTextNode(o)}function Oa(o){return MT.call(o)}function w_(o){return RT.call(o)}function b(o,e){return Oa(o)}function wt(o,e=!1){{var t=Oa(o);return t instanceof Comment&&t.data===""?w_(t):t}}function v(o,e=1,t=!1){let i=o;for(;e--;)i=w_(i);return i}function LH(o){o.textContent=""}function NT(){return!1}function AT(o,e,t){return e==null||e===hT?t?document.createElement(o,{is:t}):document.createElement(o):t?document.createElementNS(e,o,{is:t}):document.createElementNS(e,o)}let $L=!1;function IH(){$L||($L=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{var e;if(!o.defaultPrevented)for(const t of o.target.elements)(e=t[Rm])==null||e.call(t)})},{capture:!0}))}function Wy(o){var e=In,t=Dn;Or(null),qa(null);try{return o()}finally{Or(e),qa(t)}}function E0(o,e,t,i=t){o.addEventListener(e,()=>Wy(t));const n=o[Rm];n?o[Rm]=()=>{n(),i(!0)}:o[Rm]=()=>i(!0),IH()}function EH(o){Dn===null&&(In===null&&R3(),M3()),kl&&T3()}function DH(o,e){var t=e.last;t===null?e.last=e.first=o:(t.next=o,o.prev=t,e.last=o)}function Al(o,e){var t=Dn;t!==null&&(t.f&Eo)!==0&&(o|=Eo);var i={ctx:ro,deps:null,nodes:null,f:o|Xs|Mr,first:null,fn:e,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null};Gi==null||Gi.register_created_effect(i);var n=i;if((o&wf)!==0)Ih!==null?Ih.push(i):bu.ensure().schedule(i);else if(e!==null){try{kf(i)}catch(r){throw qo(i),r}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&(n.f&Gf)===0&&(n=n.first,(o&ra)!==0&&(o&Sf)!==0&&n!==null&&(n.f|=Sf))}if(n!==null&&(n.parent=t,t!==null&&DH(n,t),In!==null&&(In.f&ao)!==0&&(o&Rc)===0)){var s=In;(s.effects??(s.effects=[])).push(n)}return i}function D0(){return In!==null&&!aa}function P0(o){const e=Al(Fy,null);return xs(e,qs),e.teardown=o,e}function Vn(o){EH();var e=Dn.f,t=!In&&(e&la)!==0&&ro!==null&&!ro.i;if(t){var i=ro;(i.e??(i.e=[])).push(o)}else return OT(o)}function OT(o){return Al(wf|k3,o)}function PH(o){bu.ensure();const e=Al(Rc|Gf,o);return(t={})=>new Promise(i=>{t.outro?kd(e,()=>{qo(e),i(void 0)}):(qo(e),i(void 0))})}function T0(o){return Al(wf,o)}function TH(o){return Al(Vh|Gf,o)}function By(o,e=0){return Al(Fy|e,o)}function H(o,e=[],t=[],i=[]){mH(i,e,t,n=>{Al(Fy,()=>o(...n.map(c)))})}function M0(o,e=0){var t=Al(ra|e,o);return t}function kr(o){return Al(la|Gf,o)}function FT(o){var e=o.teardown;if(e!==null){const t=kl,i=In;UL(!0),Or(null);try{e.call(null)}finally{UL(t),Or(i)}}}function R0(o,e=!1){var t=o.first;for(o.first=o.last=null;t!==null;){const n=t.ac;n!==null&&Wy(()=>{n.abort(Hy)});var i=t.next;(t.f&Rc)!==0?t.parent=null:qo(t,e),t=i}}function MH(o){for(var e=o.first;e!==null;){var t=e.next;(e.f&la)===0&&qo(e),e=t}}function qo(o,e=!0){var t=!1;(e||(o.f&x3)!==0)&&o.nodes!==null&&o.nodes.end!==null&&(HT(o.nodes.start,o.nodes.end),t=!0),xs(o,OS),R0(o,e&&!t),wp(o,0);var i=o.nodes&&o.nodes.t;if(i!==null)for(const s of i)s.stop();FT(o),o.f^=OS,o.f|=Rr;var n=o.parent;n!==null&&n.first!==null&&WT(o),o.next=o.prev=o.teardown=o.ctx=o.deps=o.fn=o.nodes=o.ac=o.b=null}function HT(o,e){for(;o!==null;){var t=o===e?null:w_(o);o.remove(),o=t}}function WT(o){var e=o.parent,t=o.prev,i=o.next;t!==null&&(t.next=i),i!==null&&(i.prev=t),e!==null&&(e.first===o&&(e.first=i),e.last===o&&(e.last=t))}function kd(o,e,t=!0){var i=[];BT(o,i,!0);var n=()=>{t&&qo(o),e&&e()},s=i.length;if(s>0){var r=()=>--s||n();for(var a of i)a.out(r)}else n()}function BT(o,e,t){if((o.f&Eo)===0){o.f^=Eo;var i=o.nodes&&o.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&e.push(a);for(var n=o.first;n!==null;){var s=n.next;if((n.f&Rc)===0){var r=(n.f&Sf)!==0||(n.f&la)!==0&&(o.f&ra)!==0;BT(n,e,r?t:!1)}n=s}}}function pv(o){zT(o,!0)}function zT(o,e){if((o.f&Eo)!==0){o.f^=Eo,(o.f&qs)===0&&(xs(o,Xs),bu.ensure().schedule(o));for(var t=o.first;t!==null;){var i=t.next,n=(t.f&Sf)!==0||(t.f&la)!==0;zT(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 N0(o,e){if(o.nodes)for(var t=o.nodes.start,i=o.nodes.end;t!==null;){var n=t===i?null:w_(t);e.append(t),t=n}}let Fm=!1,kl=!1;function UL(o){kl=o}let In=null,aa=!1;function Or(o){In=o}let Dn=null;function qa(o){Dn=o}let za=null;function VT(o){In!==null&&(za??(za=new Set)).add(o)}let Wo=null,tr=0,wr=null;function RH(o){wr=o}let jT=1,dd=0,Ld=dd;function qL(o){Ld=o}function $T(){return++jT}function S_(o){var e=o.f;if((e&Xs)!==0)return!0;if(e&ao&&(o.f&=~vu),(e&Ua)!==0){for(var t=o.deps,i=t.length,n=0;n<i;n++){var s=t[n];if(S_(s)&<(s),s.wv>o.wv)return!0}(e&Mr)!==0&&io===null&&xs(o,qs)}return!1}function UT(o,e,t=!0){var i=o.reactions;if(i!==null&&!(za!==null&&za.has(o)))for(var n=0;n<i.length;n++){var s=i[n];(s.f&ao)!==0?UT(s,e,!1):e===s&&(t?xs(s,Xs):(s.f&qs)!==0&&xs(s,Ua),k0(s))}}function qT(o){var x;var e=Wo,t=tr,i=wr,n=In,s=za,r=ro,a=aa,d=Ld,u=o.f;Wo=null,tr=0,wr=null,In=(u&(la|Rc))===0?o:null,za=null,Cf(o.ctx),aa=!1,Ld=++dd,o.ac!==null&&(Wy(()=>{o.ac.abort(Hy)}),o.ac=null);try{o.f|=hv;var f=o.fn,g=f();o.f|=qf;var p=o.deps,w=Gi==null?void 0:Gi.is_fork;if(Wo!==null){var y;if(w||wp(o,tr),p!==null&&tr>0)for(p.length=tr+Wo.length,y=0;y<Wo.length;y++)p[tr+y]=Wo[y];else o.deps=p=Wo;if(D0()&&(o.f&Mr)!==0)for(y=tr;y<p.length;y++)((x=p[y]).reactions??(x.reactions=[])).push(o)}else!w&&p!==null&&tr<p.length&&(wp(o,tr),p.length=tr);if(pT()&&wr!==null&&!aa&&p!==null&&(o.f&(ao|Ua|Xs))===0)for(y=0;y<wr.length;y++)UT(wr[y],o);if(n!==null&&n!==o){if(dd++,n.deps!==null)for(let k=0;k<t;k+=1)n.deps[k].rv=dd;if(e!==null)for(const k of e)k.rv=dd;wr!==null&&(i===null?i=wr:i.push(...wr))}return(o.f&uc)!==0&&(o.f^=uc),g}catch(k){return mT(k)}finally{o.f^=hv,Wo=e,tr=t,wr=i,In=n,za=s,Cf(r),aa=a,Ld=d}}function NH(o,e){let t=e.reactions;if(t!==null){var i=m3.call(t,o);if(i!==-1){var n=t.length-1;n===0?t=e.reactions=null:(t[i]=t[n],t.pop())}}if(t===null&&(e.f&ao)!==0&&(Wo===null||!dv.call(Wo,e))){var s=e;(s.f&Mr)!==0&&(s.f^=Mr,s.f&=~vu),s.v!==$s&&C0(s),wH(s),wp(s,0)}}function wp(o,e){var t=o.deps;if(t!==null)for(var i=e;i<t.length;i++)NH(o,t[i])}function kf(o){var e=o.f;if((e&Rr)===0){xs(o,qs);var t=Dn,i=Fm;Dn=o,Fm=!0;try{(e&(ra|cT))!==0?MH(o):R0(o),FT(o);var n=qT(o);o.teardown=typeof n=="function"?n:null,o.wv=jT;var s;rT&&iH&&(o.f&Xs)!==0&&o.deps}finally{Fm=i,Dn=t}}}async function Hm(){await Promise.resolve(),lH()}function c(o){var e=o.f,t=(e&ao)!==0;if(In!==null&&!aa){var i=Dn!==null&&(Dn.f&Rr)!==0;if(!i&&(za===null||!za.has(o))){var n=In.deps;if((In.f&hv)!==0)o.rv<dd&&(o.rv=dd,Wo===null&&n!==null&&n[tr]===o?tr++:Wo===null?Wo=[o]:Wo.push(o));else{In.deps??(In.deps=[]),dv.call(In.deps,o)||In.deps.push(o);var s=o.reactions;s===null?o.reactions=[In]:dv.call(s,In)||s.push(In)}}}if(kl&&Cd.has(o))return Cd.get(o);if(t){var r=o;if(kl){var a=r.v;return((r.f&qs)===0&&r.reactions!==null||KT(r))&&(a=I0(r)),Cd.set(r,a),a}var d=(r.f&Mr)===0&&!aa&&In!==null&&(Fm||(In.f&Mr)!==0),u=(r.f&qf)===0;S_(r)&&(d&&(r.f|=Mr),LT(r)),d&&!u&&(IT(r),GT(r))}if(io!=null&&io.has(o))return io.get(o);if((o.f&uc)!==0)throw o.v;return o.v}function GT(o){if(o.f|=Mr,o.deps!==null)for(const e of o.deps)(e.reactions??(e.reactions=[])).push(o),(e.f&ao)!==0&&(e.f&Mr)===0&&(IT(e),GT(e))}function KT(o){if(o.v===$s)return!0;if(o.deps===null)return!1;for(const e of o.deps)if(Cd.has(e)||(e.f&ao)!==0&&KT(e))return!0;return!1}function Ol(o){var e=aa;try{return aa=!0,o()}finally{aa=e}}const AH=["touchstart","touchmove"];function OH(o){return AH.includes(o)}const ud=Symbol("events"),ZT=new Set,US=new Set;function FH(o,e,t,i={}){function n(s){if(i.capture||qS.call(e,s),!s.cancelBubble)return Wy(()=>t==null?void 0:t.call(this,s))}return o.startsWith("pointer")||o.startsWith("touch")||o==="wheel"?hc(()=>{e.addEventListener(o,n,i)}):e.addEventListener(o,n,i),n}function ds(o,e,t,i,n){var s={capture:i,passive:n},r=FH(o,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&P0(()=>{e.removeEventListener(o,r,s)})}function $(o,e,t){(e[ud]??(e[ud]={}))[o]=t}function eo(o){for(var e=0;e<o.length;e++)ZT.add(o[e]);for(var t of US)t(o)}let GL=null;function qS(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;GL=o;var r=0,a=GL===o&&o[ud];if(a){var d=n.indexOf(a);if(d!==-1&&(e===document||e===window)){o[ud]=e;return}var u=n.indexOf(e);if(u===-1)return;d<=u&&(r=d)}if(s=n[r]||o.target,s!==e){v3(o,"currentTarget",{configurable:!0,get(){return s||t}});var f=In,g=Dn;Or(null),qa(null);try{for(var p,w=[];s!==null&&s!==e;){try{var y=(k=s[ud])==null?void 0:k[i];y!=null&&(!s.disabled||o.target===s)&&y.call(s,o)}catch(D){p?w.push(D):p=D}if(o.cancelBubble)break;r++,s=r<n.length?n[r]:null}if(p){for(let D of w)queueMicrotask(()=>{throw D});throw p}}finally{o[ud]=e,delete o.currentTarget,Or(f),qa(g)}}}var DD;const Dw=((DD=globalThis==null?void 0:globalThis.window)==null?void 0:DD.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:o=>o});function HH(o){return(Dw==null?void 0:Dw.createHTML(o))??o}function YT(o){var e=AT("template");return e.innerHTML=HH(o.replaceAll("<!>","<!---->")),e.content}function wu(o,e){var t=Dn;t.nodes===null&&(t.nodes={start:o,end:e,a:null,t:null})}function P(o,e){var t=(e&K3)!==0,i=(e&Z3)!==0,n,s=!o.startsWith("<!>");return()=>{n===void 0&&(n=YT(s?o:"<!>"+o),t||(n=Oa(n)));var r=i||TT?document.importNode(n,!0):n.cloneNode(!0);if(t){var a=Oa(r),d=r.lastChild;wu(a,d)}else wu(r,r);return r}}function WH(o,e,t="svg"){var i=!o.startsWith("<!>"),n=`<${t}>${i?o:"<!>"+o}</${t}>`,s;return()=>{if(!s){var r=YT(n),a=Oa(r);s=Oa(a)}var d=s.cloneNode(!0);return wu(d,d),d}}function XT(o,e){return WH(o,e,"svg")}function Io(o=""){{var e=ml(o+"");return wu(e,e),e}}function Gs(){var o=document.createDocumentFragment(),e=document.createComment(""),t=ml();return o.append(e,t),wu(e,t),o}function I(o,e){o!==null&&o.before(e)}function A(o,e){var t=e==null?"":typeof e=="object"?`${e}`:e;t!==(o[kg]??(o[kg]=o.nodeValue))&&(o[kg]=t,o.nodeValue=`${t}`)}function BH(o,e){return zH(o,e)}const J_=new Map;function zH(o,{target:e,anchor:t,props:i={},events:n,context:s,intro:r=!0,transformError:a}){kH();var d=void 0,u=PH(()=>{var f=t??e.appendChild(ml());hH(f,{pending:()=>{}},w=>{Fs({});var y=ro;s&&(y.c=s),n&&(i.$$events=n),d=o(w,i)||{},Hs()},a);var g=new Set,p=w=>{for(var y=0;y<w.length;y++){var x=w[y];if(!g.has(x)){g.add(x);var k=OH(x);for(const F of[e,document]){var D=J_.get(F);D===void 0&&(D=new Map,J_.set(F,D));var M=D.get(x);M===void 0?(F.addEventListener(x,qS,{passive:k}),D.set(x,1)):D.set(x,M+1)}}}};return p(Ay(ZT)),US.add(p),()=>{var k;for(var w of g)for(const D of[e,document]){var y=J_.get(D),x=y.get(w);--x==0?(D.removeEventListener(w,qS),y.delete(w),y.size===0&&J_.delete(D)):y.set(w,x)}US.delete(p),f!==t&&((k=f.parentNode)==null||k.removeChild(f))}});return VH.set(d,u),d}let VH=new WeakMap;var Xr,Ea,sr,vd,t_,i_,xb;class jH{constructor(e,t=!0){yn(this,"anchor");gn(this,Xr,new Map);gn(this,Ea,new Map);gn(this,sr,new Map);gn(this,vd,new Set);gn(this,t_,!0);gn(this,i_,e=>{if(pe(this,Xr).has(e)){var t=pe(this,Xr).get(e),i=pe(this,Ea).get(t);if(i)pv(i),pe(this,vd).delete(t);else{var n=pe(this,sr).get(t);n&&(pv(n.effect),pe(this,Ea).set(t,n.effect),pe(this,sr).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[s,r]of pe(this,Xr)){if(pe(this,Xr).delete(s),s===e)break;const a=pe(this,sr).get(r);a&&(qo(a.effect),pe(this,sr).delete(r))}for(const[s,r]of pe(this,Ea)){if(s===t||pe(this,vd).has(s))continue;const a=()=>{if(Array.from(pe(this,Xr).values()).includes(s)){var u=document.createDocumentFragment();N0(r,u),u.append(ml()),pe(this,sr).set(s,{effect:r,fragment:u})}else qo(r);pe(this,vd).delete(s),pe(this,Ea).delete(s)};pe(this,t_)||!i?(pe(this,vd).add(s),kd(r,a,!1)):a()}}});gn(this,xb,e=>{pe(this,Xr).delete(e);const t=Array.from(pe(this,Xr).values());for(const[i,n]of pe(this,sr))t.includes(i)||(qo(n.effect),pe(this,sr).delete(i))});this.anchor=e,pn(this,t_,t)}ensure(e,t){var i=Gi,n=NT();if(t&&!pe(this,Ea).has(e)&&!pe(this,sr).has(e))if(n){var s=document.createDocumentFragment(),r=ml();s.append(r),pe(this,sr).set(e,{effect:kr(()=>t(r)),fragment:s})}else pe(this,Ea).set(e,kr(()=>t(this.anchor)));if(pe(this,Xr).set(i,e),n){for(const[a,d]of pe(this,Ea))a===e?i.unskip_effect(d):i.skip_effect(d);for(const[a,d]of pe(this,sr))a===e?i.unskip_effect(d.effect):i.skip_effect(d.effect);i.oncommit(pe(this,i_)),i.ondiscard(pe(this,xb))}else pe(this,i_).call(this,i)}}Xr=new WeakMap,Ea=new WeakMap,sr=new WeakMap,vd=new WeakMap,t_=new WeakMap,i_=new WeakMap,xb=new WeakMap;function O(o,e,t=!1){var i=new jH(o),n=t?Sf:0;function s(r,a){i.ensure(r,a)}M0(()=>{var r=!1;e((a,d=0)=>{r=!0,s(d,a)}),r||s(-1,null)},n)}function Vi(o,e){return e}function $H(o,e,t){for(var i=[],n=e.length,s,r=e.length,a=0;a<n;a++){let g=e[a];kd(g,()=>{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var p=o.outrogroups;GS(o,Ay(s.done)),p.delete(s),p.size===0&&(o.outrogroups=null)}}else r-=1},!1)}if(r===0){var d=i.length===0&&t!==null;if(d){var u=t,f=u.parentNode;LH(f),f.append(u),o.items.clear()}GS(o,e,!d)}else s={pending:new Set(e),done:new Set},(o.outrogroups??(o.outrogroups=new Set)).add(s)}function GS(o,e,t=!0){var i;if(o.pending.size>0){i=new Set;for(const r of o.pending.values())for(const a of r)i.add(o.items.get(a).e)}for(var n=0;n<e.length;n++){var s=e[n];if(i!=null&&i.has(s)){s.f|=Aa;const r=document.createDocumentFragment();N0(s,r)}else qo(e[n],t)}}var KL;function oi(o,e,t,i,n,s=null){var r=o,a=new Map,d=(e&uT)!==0;if(d){var u=o;r=u.appendChild(ml())}var f=null,g=L0(()=>{var F=t();return S0(F)?F:F==null?[]:Ay(F)}),p,w=new Map,y=!0;function x(F){(M.effect.f&Rr)===0&&(M.pending.delete(F),M.fallback=f,UH(M,p,r,e,i),f!==null&&(p.length===0?(f.f&Aa)===0?pv(f):(f.f^=Aa,Eg(f,null,r)):kd(f,()=>{f=null})))}function k(F){M.pending.delete(F)}var D=M0(()=>{p=c(g);for(var F=p.length,K=new Set,V=Gi,oe=NT(),ne=0;ne<F;ne+=1){var Se=p[ne],We=i(Se,ne),qe=y?null:a.get(We);qe?(qe.v&&xf(qe.v,Se),qe.i&&xf(qe.i,ne),oe&&V.unskip_effect(qe.e)):(qe=qH(a,y?r:KL??(KL=ml()),Se,We,ne,n,e,t),y||(qe.e.f|=Aa),a.set(We,qe)),K.add(We)}if(F===0&&s&&!f&&(y?f=kr(()=>s(r)):(f=kr(()=>s(KL??(KL=ml()))),f.f|=Aa)),F>K.size&&P3(),!y)if(w.set(V,K),oe){for(const[Oe,ut]of a)K.has(Oe)||V.skip_effect(ut.e);V.oncommit(x),V.ondiscard(k)}else x(V);c(g)}),M={effect:D,items:a,pending:w,outrogroups:null,fallback:f};y=!1}function pg(o){for(;o!==null&&(o.f&la)===0;)o=o.next;return o}function UH(o,e,t,i,n){var qe,Oe,ut,kt,Pe,Lt,pt,Ot,Fe;var s=(i&V3)!==0,r=e.length,a=o.items,d=pg(o.effect.first),u,f=null,g,p=[],w=[],y,x,k,D;if(s)for(D=0;D<r;D+=1)y=e[D],x=n(y,D),k=a.get(x).e,(k.f&Aa)===0&&((Oe=(qe=k.nodes)==null?void 0:qe.a)==null||Oe.measure(),(g??(g=new Set)).add(k));for(D=0;D<r;D+=1){if(y=e[D],x=n(y,D),k=a.get(x).e,o.outrogroups!==null)for(const Nt of o.outrogroups)Nt.pending.delete(k),Nt.done.delete(k);if((k.f&Eo)!==0&&(pv(k),s&&((kt=(ut=k.nodes)==null?void 0:ut.a)==null||kt.unfix(),(g??(g=new Set)).delete(k))),(k.f&Aa)!==0)if(k.f^=Aa,k===d)Eg(k,null,t);else{var M=f?f.next:d;k===o.effect.last&&(o.effect.last=k.prev),k.prev&&(k.prev.next=k.next),k.next&&(k.next.prev=k.prev),Vl(o,f,k),Vl(o,k,M),Eg(k,M,t),f=k,p=[],w=[],d=pg(f.next);continue}if(k!==d){if(u!==void 0&&u.has(k)){if(p.length<w.length){var F=w[0],K;f=F.prev;var V=p[0],oe=p[p.length-1];for(K=0;K<p.length;K+=1)Eg(p[K],F,t);for(K=0;K<w.length;K+=1)u.delete(w[K]);Vl(o,V.prev,oe.next),Vl(o,f,V),Vl(o,oe,F),d=F,f=oe,D-=1,p=[],w=[]}else u.delete(k),Eg(k,d,t),Vl(o,k.prev,k.next),Vl(o,k,f===null?o.effect.first:f.next),Vl(o,f,k),f=k;continue}for(p=[],w=[];d!==null&&d!==k;)(u??(u=new Set)).add(d),w.push(d),d=pg(d.next);if(d===null)continue}(k.f&Aa)===0&&p.push(k),f=k,d=pg(k.next)}if(o.outrogroups!==null){for(const Nt of o.outrogroups)Nt.pending.size===0&&(GS(o,Ay(Nt.done)),(Pe=o.outrogroups)==null||Pe.delete(Nt));o.outrogroups.size===0&&(o.outrogroups=null)}if(d!==null||u!==void 0){var ne=[];if(u!==void 0)for(k of u)(k.f&Eo)===0&&ne.push(k);for(;d!==null;)(d.f&Eo)===0&&d!==o.fallback&&ne.push(d),d=pg(d.next);var Se=ne.length;if(Se>0){var We=(i&uT)!==0&&r===0?t:null;if(s){for(D=0;D<Se;D+=1)(pt=(Lt=ne[D].nodes)==null?void 0:Lt.a)==null||pt.measure();for(D=0;D<Se;D+=1)(Fe=(Ot=ne[D].nodes)==null?void 0:Ot.a)==null||Fe.fix()}$H(o,ne,We)}}s&&hc(()=>{var Nt,et;if(g!==void 0)for(k of g)(et=(Nt=k.nodes)==null?void 0:Nt.a)==null||et.apply()})}function qH(o,e,t,i,n,s,r,a){var d=(r&B3)!==0?(r&j3)===0?SH(t,!1,!1):yu(t):null,u=(r&z3)!==0?yu(n):null;return{v:d,i:u,e:kr(()=>(s(e,d??t,u??n,a),()=>{o.delete(i)}))}}function Eg(o,e,t){if(o.nodes)for(var i=o.nodes.start,n=o.nodes.end,s=e&&(e.f&Aa)===0?e.nodes.start:t;i!==null;){var r=w_(i);if(s.before(i),i===n)return;i=r}}function Vl(o,e,t){e===null?o.effect.first=t:e.next=t,t===null?o.effect.last=e:t.prev=e}function oc(o,e,t=!1,i=!1,n=!1,s=!1){var r=o,a="";if(t)var d=o;H(()=>{var u=Dn;if(a!==(a=e()??"")){if(t){u.nodes=null,d.innerHTML=a,a!==""&&wu(Oa(d),d.lastChild);return}if(u.nodes!==null&&(HT(u.nodes.start,u.nodes.end),u.nodes=null),a!==""){var f=i?Y3:n?X3:void 0,g=AT(i?"svg":n?"math":"template",f);g.innerHTML=a;var p=i||n?g:g.content;if(wu(Oa(p),p.lastChild),i||n)for(;Oa(p);)r.before(Oa(p));else r.before(p)}}})}function JT(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=JT(o[e]))&&(i&&(i+=" "),i+=t)}else for(t in o)o[t]&&(i&&(i+=" "),i+=t);return i}function GH(){for(var o,e,t=0,i="",n=arguments.length;t<n;t++)(o=arguments[t])&&(e=JT(o))&&(i&&(i+=" "),i+=e);return i}function Gg(o){return typeof o=="object"?GH(o):o??""}const ZL=[...`
|
|
3
3
|
\r\f \v\uFEFF`];function KH(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||ZL.includes(i[r-1]))&&(a===i.length||ZL.includes(i[a]))?i=(r===0?"":i.substring(0,r))+i.substring(a+1):r=a}}return i===""?null:i}function YL(o,e=!1){var t=e?" !important;":";",i="";for(var n of Object.keys(o)){var s=o[n];s!=null&&s!==""&&(i+=" "+n+": "+s+t)}return i}function Pw(o){return o[0]!=="-"||o[1]!=="-"?o.toLowerCase():o}function ZH(o,e){if(e){var t="",i,n;if(Array.isArray(e)?(i=e[0],n=e[1]):i=e,o){o=String(o).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var s=!1,r=0,a=!1,d=[];i&&d.push(...Object.keys(i).map(Pw)),n&&d.push(...Object.keys(n).map(Pw));var u=0,f=-1;const x=o.length;for(var g=0;g<x;g++){var p=o[g];if(a?p==="/"&&o[g-1]==="*"&&(a=!1):s?s===p&&(s=!1):p==="/"&&o[g+1]==="*"?a=!0:p==='"'||p==="'"?s=p:p==="("?r++:p===")"&&r--,!a&&s===!1&&r===0){if(p===":"&&f===-1)f=g;else if(p===";"||g===x-1){if(f!==-1){var w=Pw(o.substring(u,f).trim());if(!d.includes(w)){p!==";"&&g++;var y=o.substring(u,g).trim();t+=" "+y+";"}}u=g+1,f=-1}}}}return i&&(t+=YL(i)),n&&(t+=YL(n,!0)),t=t.trim(),t===""?null:t}return o==null?null:String(o)}function Et(o,e,t,i,n,s){var r=o[FS];if(r!==t||r===void 0){var a=KH(t,i,s);a==null?o.removeAttribute("class"):e?o.className=a:o.setAttribute("class",a),o[FS]=t}else if(s&&n!==s)for(var d in s){var u=!!s[d];(n==null||u!==!!n[d])&&o.classList.toggle(d,u)}return s}function Tw(o,e={},t,i){for(var n in t){var s=t[n];e[n]!==s&&(t[n]==null?o.style.removeProperty(n):o.style.setProperty(n,s,i))}}function zo(o,e,t,i){var n=o[HS];if(n!==e){var s=ZH(e,i);s==null?o.removeAttribute("style"):o.style.cssText=s,o[HS]=e}else i&&(Array.isArray(i)?(Tw(o,t==null?void 0:t[0],i[0]),Tw(o,t==null?void 0:t[1],i[1],"important")):Tw(o,t,i));return i}function A0(o,e,t=!1){if(o.multiple){if(e==null)return;if(!S0(e))return Q3();for(var i of o.options)i.selected=e.includes(Kg(i));return}for(i of o.options){var n=Kg(i);if(xH(n,e)){i.selected=!0;return}}(!t||e!==void 0)&&(o.selectedIndex=-1)}function QT(o){var e=new MutationObserver(()=>{A0(o,o.__value)});e.observe(o,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),P0(()=>{e.disconnect()})}function As(o,e,t=e){var i=new WeakSet,n=!0;E0(o,"change",s=>{var r=s?"[selected]":":checked",a;if(o.multiple)a=[].map.call(o.querySelectorAll(r),Kg);else{var d=o.querySelector(r)??o.querySelector("option:not([disabled])");a=d&&Kg(d)}t(a),o.__value=a,Gi!==null&&i.add(Gi)}),T0(()=>{var s=e();if(o===document.activeElement){var r=Gi;if(i.has(r))return}if(A0(o,s,n),n&&s===void 0){var a=o.querySelector(":checked");a!==null&&(s=Kg(a),t(s))}o.__value=s,n=!1}),QT(o)}function Kg(o){return"__value"in o?o.__value:o.value}const YH=Symbol("is custom element"),XH=Symbol("is html"),JH=E3?"progress":"PROGRESS";function KS(o,e){var t=O0(o);t.value===(t.value=e??void 0)||o.value===e&&(e!==0||o.nodeName!==JH)||(o.value=e??"")}function hd(o,e){var t=O0(o);t.checked!==(t.checked=e??void 0)&&(o.checked=e)}function vn(o,e,t,i){var n=O0(o);n[e]!==(n[e]=t)&&(e==="loading"&&(o[I3]=t),t==null?o.removeAttribute(e):typeof t!="string"&&QH(o).includes(e)?o[e]=t:o.setAttribute(e,t))}function O0(o){return o[Mm]??(o[Mm]={[YH]:o.nodeName.includes("-"),[XH]:o.namespaceURI===hT})}var XL=new Map;function QH(o){var e=o.getAttribute("is")||o.nodeName,t=XL.get(e);if(t)return t;XL.set(e,t=[]);for(var i,n=o,s=Element.prototype;s!==n;){i=b3(n);for(var r in i)i[r].set&&r!=="innerHTML"&&r!=="textContent"&&r!=="innerText"&&t.push(r);n=aT(n)}return t}function Kt(o,e,t=e){var i=new WeakSet;E0(o,"input",async n=>{var s=n?o.defaultValue:o.value;if(s=Mw(o)?Rw(s):s,t(s),Gi!==null&&i.add(Gi),await Hm(),s!==(s=e())){var r=o.selectionStart,a=o.selectionEnd,d=o.value.length;if(o.value=s??"",a!==null){var u=o.value.length;r===a&&a===d&&u>d?(o.selectionStart=u,o.selectionEnd=u):(o.selectionStart=r,o.selectionEnd=Math.min(a,u))}}}),Ol(e)==null&&o.value&&(t(Mw(o)?Rw(o.value):o.value),Gi!==null&&i.add(Gi)),By(()=>{var n=e();if(o===document.activeElement){var s=Gi;if(i.has(s))return}Mw(o)&&n===Rw(o.value)||o.type==="date"&&!n&&!o.value||n!==o.value&&(o.value=n??"")})}function ks(o,e,t=e){E0(o,"change",i=>{var n=i?o.defaultChecked:o.checked;t(n)}),Ol(e)==null&&t(o.checked),By(()=>{var i=e();o.checked=!!i})}function Mw(o){var e=o.type;return e==="number"||e==="range"}function Rw(o){return o===""?null:+o}var ic,Qh,n_,kb,eM;const Lb=class Lb{constructor(e){gn(this,kb);gn(this,ic,new WeakMap);gn(this,Qh);gn(this,n_);pn(this,n_,e)}observe(e,t){var i=pe(this,ic).get(e)||new Set;return i.add(t),pe(this,ic).set(e,i),zn(this,kb,eM).call(this).observe(e,pe(this,n_)),()=>{var n=pe(this,ic).get(e);n.delete(t),n.size===0&&(pe(this,ic).delete(e),pe(this,Qh).unobserve(e))}}};ic=new WeakMap,Qh=new WeakMap,n_=new WeakMap,kb=new WeakSet,eM=function(){return pe(this,Qh)??pn(this,Qh,new ResizeObserver(e=>{for(var t of e){Lb.entries.set(t.target,t);for(var i of pe(this,ic).get(t.target)||[])i(t)}}))},yn(Lb,"entries",new WeakMap);let ZS=Lb;var eW=new ZS({box:"border-box"});function tW(o,e,t){var i=eW.observe(o,()=>t(o[e]));T0(()=>(Ol(()=>t(o[e])),i))}function Nw(o,e){return o===e||(o==null?void 0:o[Sd])===e}function vs(o={},e,t,i){var n=ro.r,s=Dn;return T0(()=>{var r,a;return By(()=>{r=a,a=[],Ol(()=>{Nw(t(...a),o)||(e(o,...a),r&&Nw(t(...r),o)&&e(null,...r))})}),()=>{let d=s;for(;d!==n&&d.parent!==null&&d.parent.f&OS;)d=d.parent;const u=()=>{a&&Nw(t(...a),o)&&e(null,...a)},f=d.teardown;d.teardown=()=>{u(),f==null||f()}}}),o}function Su(o,e,t,i){var K;var n=!0,s=(t&q3)!==0,r=(t&G3)!==0,a=i,d=!0,u=void 0,f=()=>r&&n?(u??(u=yp(i)),c(u)):(d&&(d=!1,a=r?Ol(i):i),a);let g;if(s){var p=Sd in o||L3 in o;g=((K=zh(o,e))==null?void 0:K.set)??(p&&e in o?V=>o[e]=V:void 0)}var w,y=!1;s?[w,y]=oH(()=>o[e]):w=o[e],w===void 0&&i!==void 0&&(w=f(),g&&(A3(),g(w)));var x;if(x=()=>{var V=o[e];return V===void 0?f():(d=!0,V)},(t&U3)===0)return x;if(g){var k=o.$$legacy;return(function(V,oe){return arguments.length>0?((!oe||k||y)&&g(oe?x():V),V):x()})}var D=!1,M=((t&$3)!==0?yp:L0)(()=>(D=!1,x()));s&&c(M);var F=Dn;return(function(V,oe){if(arguments.length>0){const ne=oe?c(M):s?ki(V):V;return m(M,ne),D=!0,a!==void 0&&(a=ne),V}return kl&&D||(F.f&Rr)!==0?M.v:c(M)})}function Js(o){ro===null&&dT(),Vn(()=>{const e=Ol(o);if(typeof e=="function")return e})}function zy(o){ro===null&&dT(),Js(()=>()=>Ol(o))}const iW="5";var PD;typeof window<"u"&&((PD=window.__svelte??(window.__svelte={})).v??(PD.v=new Set)).add(iW);/*!-----------------------------------------------------------------------------
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -10,7 +10,7 @@ var OA=Object.defineProperty;var rL=o=>{throw TypeError(o)};var FA=(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 fW=Object.defineProperty,gW=Object.getOwnPropertyDescriptor,pW=Object.getOwnPropertyNames,_W=Object.prototype.hasOwnProperty,mW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of pW(e))!_W.call(o,n)&&n!==t&&fW(o,n,{get:()=>e[n],enumerable:!(i=gW(e,n))||i.enumerable});return o},vW=(o,e,t)=>(mW(o,e,"default"),t),bW="5.4.5",Lf={};vW(Lf,MD);var nM=(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))(nM||{}),sM=(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))(sM||{}),oM=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(oM||{}),rM=(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))(rM||{}),aM=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(aM||{}),lM=class{constructor(o,e,t,i,n){this._onDidChange=new Lf.Emitter,this._onDidExtraLibsChange=new Lf.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},yW=bW,cM={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},dM=new lM({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},cM),uM=new lM({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},cM),wW=()=>Vy().then(o=>o.getTypeScriptWorker()),SW=()=>Vy().then(o=>o.getJavaScriptWorker());Lf.languages.typescript={ModuleKind:nM,JsxEmit:sM,NewLineKind:oM,ScriptTarget:rM,ModuleResolutionKind:aM,typescriptVersion:yW,typescriptDefaults:dM,javascriptDefaults:uM,getTypeScriptWorker:wW,getJavaScriptWorker:SW};function Vy(){return TD(()=>import("./tsMode-DiybUgKV.js"),__vite__mapDeps([3,1,2]))}Lf.languages.onLanguage("typescript",()=>Vy().then(o=>o.setupTypeScript(dM)));Lf.languages.onLanguage("javascript",()=>Vy().then(o=>o.setupJavaScript(uM)));class CW extends bo{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:ii("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Fi.map,toggled:Re.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Re.has("isInDiffEditor"),menu:{when:Re.has("isInDiffEditor"),id:Bt.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class hM extends bo{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:ii("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Re.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class fM extends bo{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:ii("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Re.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const x_=ii("diffEditor","Diff Editor");class xW extends ca{constructor(){super({id:"diffEditor.switchSide",title:ii("switchSide","Switch Side"),icon:Fi.arrowSwap,precondition:Re.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,i){const n=Kf(e);if(n instanceof s_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class kW extends ca{constructor(){super({id:"diffEditor.exitCompareMove",title:ii("exitCompareMove","Exit Compare Move"),icon:Fi.close,precondition:B.comparingMovedCode,f1:!1,category:x_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof s_&&n.exitCompareMove()}}class LW extends ca{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:ii("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Fi.fold,precondition:Re.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof s_&&n.collapseAllUnchangedRegions()}}class IW extends ca{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:ii("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Fi.unfold,precondition:Re.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof s_&&n.showAllUnchangedRegions()}}class YS extends bo{constructor(){super({id:"diffEditor.revert",title:ii("revert","Revert"),f1:!1,category:x_})}run(e,t){const i=EW(e,t.originalUri,t.modifiedUri);i instanceof s_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const gM=ii("accessibleDiffViewer","Accessible Diff Viewer"),Ib=class Ib extends bo{constructor(){super({id:Ib.id,title:ii("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:gM,precondition:Re.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerNext()}};Ib.id="editor.action.accessibleDiffViewer.next";let Sp=Ib;const Eb=class Eb extends bo{constructor(){super({id:Eb.id,title:ii("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:gM,precondition:Re.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerPrev()}};Eb.id="editor.action.accessibleDiffViewer.prev";let _v=Eb;function EW(o,e,t){return o.get(as).listDiffEditors().find(s=>{var d,u;const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&((d=r.getModel())==null?void 0:d.uri.toString())===t.toString()&&a&&((u=a.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function Kf(o){const t=o.get(as).listDiffEditors(),i=RD();if(i)for(const n of t){const s=n.getContainerDomNode();if(DW(s,i))return n}return null}function DW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Pn(CW);Pn(hM);Pn(fM);Nr.appendMenuItem(Bt.EditorTitle,{command:{id:new fM().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Re.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Re.has("isInDiffEditor")},order:11,group:"1_diff",when:Re.and(B.diffEditorRenderSideBySideInlineBreakpointReached,Re.has("isInDiffEditor"))});Nr.appendMenuItem(Bt.EditorTitle,{command:{id:new hM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:Fi.move,toggled:HA.create("config.diffEditor.experimental.showMoves",!0),precondition:Re.has("isInDiffEditor")},order:10,group:"1_diff",when:Re.has("isInDiffEditor")});Pn(YS);for(const o of[{icon:Fi.arrowRight,key:B.diffEditorInlineMode.toNegated()},{icon:Fi.discard,key:B.diffEditorInlineMode}])Nr.appendMenuItem(Bt.DiffEditorHunkToolbar,{command:{id:new YS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:Re.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Nr.appendMenuItem(Bt.DiffEditorSelectionToolbar,{command:{id:new YS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:Re.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Pn(xW);Pn(kW);Pn(LW);Pn(IW);Nr.appendMenuItem(Bt.EditorTitle,{command:{id:Sp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Re.has("isInDiffEditor")},order:10,group:"2_diff",when:Re.and(B.accessibleDiffViewerVisible.negate(),Re.has("isInDiffEditor"))});Wn.registerCommandAlias("editor.action.diffReview.next",Sp.id);Pn(Sp);Wn.registerCommandAlias("editor.action.diffReview.prev",_v.id);Pn(_v);var PW=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},TW=function(o,e){return function(t,i){e(t,i,o)}},XS;const jy=new _n("selectionAnchorSet",!1);var Pd;let Nc=(Pd=class{static get(e){return e.getContribution(XS.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=jy.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(Ti.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new to().appendText(C("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Ar(C("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(Ti.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()}},XS=Pd,Pd.ID="editor.contrib.selectionAnchorController",Pd);Nc=XS=PW([TW(1,Sn)],Nc);class MW extends it{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2080),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.setSelectionAnchor()}}class RW extends it{constructor(){super({id:"editor.action.goToSelectionAnchor",label:C("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:jy})}async run(e,t){var i;(i=Nc.get(t))==null||i.goToSelectionAnchor()}}class NW extends it{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:jy,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2089),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.selectFromAnchorToCursor()}}class AW extends it{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:jy,kbOpts:{kbExpr:B.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.cancelSelectionAnchor()}}nn(Nc.ID,Nc,4);be(MW);be(RW);be(NW);be(AW);const OW=Yt("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class FW extends it{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.jumpToBracket()}}class HW extends it{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:ii("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var s;let n=!0;i&&i.selectBrackets===!1&&(n=!1),(s=Cu.get(t))==null||s.selectToBracket(n)}}class WW extends it{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.removeBrackets(this.id)}}class BW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Zl=class Zl extends St{static get(e){return e.getContribution(Zl.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new ys(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const n=i.getStartPosition(),s=e.bracketPairs.matchBracket(n);let r=null;if(s)s[0].containsPosition(n)&&!s[1].containsPosition(n)?r=s[1].getStartPosition():s[1].containsPosition(n)&&(r=s[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(n);if(a)r=a[1].getStartPosition();else{const d=e.bracketPairs.findNextBracket(n);d&&d.range&&(r=d.range.getStartPosition())}}return r?new Ti(r.lineNumber,r.column,r.lineNumber,r.column):new Ti(n.lineNumber,n.column,n.lineNumber,n.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(n=>{const s=n.getStartPosition();let r=t.bracketPairs.matchBracket(s);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(s),!r)){const u=t.bracketPairs.findNextBracket(s);u&&u.range&&(r=t.bracketPairs.matchBracket(u.range.getStartPosition()))}let a=null,d=null;if(r){r.sort(Z.compareRangesUsingStarts);const[u,f]=r;if(a=e?u.getStartPosition():u.getEndPosition(),d=e?f.getEndPosition():f.getStartPosition(),f.containsPosition(s)){const g=a;a=d,d=g}}a&&d&&i.push(new Ti(a.lineNumber,a.column,d.lineNumber,d.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const n=i.getPosition();let s=t.bracketPairs.matchBracket(n);s||(s=t.bracketPairs.findEnclosingBrackets(n)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const s=[];let r=0;for(let g=0,p=e.length;g<p;g++){const w=e[g];w.isEmpty()&&(s[r++]=w.getStartPosition())}s.length>1&&s.sort(ri.compare);const a=[];let d=0,u=0;const f=n.length;for(let g=0,p=s.length;g<p;g++){const w=s[g];for(;u<f&&n[u].position.isBefore(w);)u++;if(u<f&&n[u].position.equals(w))a[d++]=n[u];else{let y=t.bracketPairs.matchBracket(w,20),x=Zl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!y&&this._matchBrackets==="always"&&(y=t.bracketPairs.findEnclosingBrackets(w,20),x=Zl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new BW(w,y,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Zl.ID="editor.contrib.bracketMatchingController",Zl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=dn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:_s(OW),position:Ha.Center}}),Zl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=dn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Cu=Zl;nn(Cu.ID,Cu,1);be(HW);be(FW);be(WW);Nr.appendMenuItem(Bt.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class zW{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,n=this._selection.startColumn,s=this._selection.endColumn;if(!(this._isMovingLeft&&n===1)&&!(!this._isMovingLeft&&s===e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new Z(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,s,i,s),a)}else{const r=new Z(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new Ti(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Ti(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class pM extends it{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 zW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class VW extends pM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:B.writable})}}class jW extends pM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:B.writable})}}be(VW);be(jW);class $W extends it{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:B.writable,kbOpts:{kbExpr:B.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],s=t.getSelections();for(const r of s){if(!r.isEmpty())continue;const a=r.startLineNumber,d=r.startColumn,u=i.getLineMaxColumn(a);if(a===1&&(d===1||d===2&&u===2))continue;const f=d===u?r.getPosition():yw.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=yw.leftPosition(i,f),p=yw.leftPosition(i,g),w=i.getValueInRange(Z.fromPositions(p,g)),y=i.getValueInRange(Z.fromPositions(g,f)),x=Z.fromPositions(p,f);n.push(new o_(x,y+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}be($W);const $y=(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 F0(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function UW(o,e,t){const i={id:$y(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class _M{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 gl.some(this,([i,n])=>n.asFile())&&t.push("files"),vM(mv(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 mv(e)}}function mv(o){return o.toLowerCase()}function mM(o,e){return vM(mv(o),e.map(mv))}function vM(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 Uy=Object.freeze({create:o=>ND(o.map(e=>e.toString())).join(`\r
|
|
13
|
+
*-----------------------------------------------------------------------------*/var fW=Object.defineProperty,gW=Object.getOwnPropertyDescriptor,pW=Object.getOwnPropertyNames,_W=Object.prototype.hasOwnProperty,mW=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of pW(e))!_W.call(o,n)&&n!==t&&fW(o,n,{get:()=>e[n],enumerable:!(i=gW(e,n))||i.enumerable});return o},vW=(o,e,t)=>(mW(o,e,"default"),t),bW="5.4.5",Lf={};vW(Lf,MD);var nM=(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))(nM||{}),sM=(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))(sM||{}),oM=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(oM||{}),rM=(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))(rM||{}),aM=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(aM||{}),lM=class{constructor(o,e,t,i,n){this._onDidChange=new Lf.Emitter,this._onDidExtraLibsChange=new Lf.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},yW=bW,cM={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},dM=new lM({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},cM),uM=new lM({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},cM),wW=()=>Vy().then(o=>o.getTypeScriptWorker()),SW=()=>Vy().then(o=>o.getJavaScriptWorker());Lf.languages.typescript={ModuleKind:nM,JsxEmit:sM,NewLineKind:oM,ScriptTarget:rM,ModuleResolutionKind:aM,typescriptVersion:yW,typescriptDefaults:dM,javascriptDefaults:uM,getTypeScriptWorker:wW,getJavaScriptWorker:SW};function Vy(){return TD(()=>import("./tsMode-C5T2U6K3.js"),__vite__mapDeps([3,1,2]))}Lf.languages.onLanguage("typescript",()=>Vy().then(o=>o.setupTypeScript(dM)));Lf.languages.onLanguage("javascript",()=>Vy().then(o=>o.setupJavaScript(uM)));class CW extends bo{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:ii("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Fi.map,toggled:Re.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Re.has("isInDiffEditor"),menu:{when:Re.has("isInDiffEditor"),id:Bt.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class hM extends bo{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:ii("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Re.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class fM extends bo{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:ii("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Re.has("isInDiffEditor")})}run(e,...t){const i=e.get(Un),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const x_=ii("diffEditor","Diff Editor");class xW extends ca{constructor(){super({id:"diffEditor.switchSide",title:ii("switchSide","Switch Side"),icon:Fi.arrowSwap,precondition:Re.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,i){const n=Kf(e);if(n instanceof s_){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class kW extends ca{constructor(){super({id:"diffEditor.exitCompareMove",title:ii("exitCompareMove","Exit Compare Move"),icon:Fi.close,precondition:B.comparingMovedCode,f1:!1,category:x_,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof s_&&n.exitCompareMove()}}class LW extends ca{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:ii("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Fi.fold,precondition:Re.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof s_&&n.collapseAllUnchangedRegions()}}class IW extends ca{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:ii("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Fi.unfold,precondition:Re.has("isInDiffEditor"),f1:!0,category:x_})}runEditorCommand(e,t,...i){const n=Kf(e);n instanceof s_&&n.showAllUnchangedRegions()}}class YS extends bo{constructor(){super({id:"diffEditor.revert",title:ii("revert","Revert"),f1:!1,category:x_})}run(e,t){const i=EW(e,t.originalUri,t.modifiedUri);i instanceof s_&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const gM=ii("accessibleDiffViewer","Accessible Diff Viewer"),Ib=class Ib extends bo{constructor(){super({id:Ib.id,title:ii("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:gM,precondition:Re.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerNext()}};Ib.id="editor.action.accessibleDiffViewer.next";let Sp=Ib;const Eb=class Eb extends bo{constructor(){super({id:Eb.id,title:ii("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:gM,precondition:Re.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Kf(e);t==null||t.accessibleDiffViewerPrev()}};Eb.id="editor.action.accessibleDiffViewer.prev";let _v=Eb;function EW(o,e,t){return o.get(as).listDiffEditors().find(s=>{var d,u;const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&((d=r.getModel())==null?void 0:d.uri.toString())===t.toString()&&a&&((u=a.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function Kf(o){const t=o.get(as).listDiffEditors(),i=RD();if(i)for(const n of t){const s=n.getContainerDomNode();if(DW(s,i))return n}return null}function DW(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}Pn(CW);Pn(hM);Pn(fM);Nr.appendMenuItem(Bt.EditorTitle,{command:{id:new fM().desc.id,title:C("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Re.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Re.has("isInDiffEditor")},order:11,group:"1_diff",when:Re.and(B.diffEditorRenderSideBySideInlineBreakpointReached,Re.has("isInDiffEditor"))});Nr.appendMenuItem(Bt.EditorTitle,{command:{id:new hM().desc.id,title:C("showMoves","Show Moved Code Blocks"),icon:Fi.move,toggled:HA.create("config.diffEditor.experimental.showMoves",!0),precondition:Re.has("isInDiffEditor")},order:10,group:"1_diff",when:Re.has("isInDiffEditor")});Pn(YS);for(const o of[{icon:Fi.arrowRight,key:B.diffEditorInlineMode.toNegated()},{icon:Fi.discard,key:B.diffEditorInlineMode}])Nr.appendMenuItem(Bt.DiffEditorHunkToolbar,{command:{id:new YS().desc.id,title:C("revertHunk","Revert Block"),icon:o.icon},when:Re.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Nr.appendMenuItem(Bt.DiffEditorSelectionToolbar,{command:{id:new YS().desc.id,title:C("revertSelection","Revert Selection"),icon:o.icon},when:Re.and(B.diffEditorModifiedWritable,o.key),order:5,group:"primary"});Pn(xW);Pn(kW);Pn(LW);Pn(IW);Nr.appendMenuItem(Bt.EditorTitle,{command:{id:Sp.id,title:C("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Re.has("isInDiffEditor")},order:10,group:"2_diff",when:Re.and(B.accessibleDiffViewerVisible.negate(),Re.has("isInDiffEditor"))});Wn.registerCommandAlias("editor.action.diffReview.next",Sp.id);Pn(Sp);Wn.registerCommandAlias("editor.action.diffReview.prev",_v.id);Pn(_v);var PW=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},TW=function(o,e){return function(t,i){e(t,i,o)}},XS;const jy=new _n("selectionAnchorSet",!1);var Pd;let Nc=(Pd=class{static get(e){return e.getContribution(XS.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=jy.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(Ti.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new to().appendText(C("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Ar(C("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(Ti.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()}},XS=Pd,Pd.ID="editor.contrib.selectionAnchorController",Pd);Nc=XS=PW([TW(1,Sn)],Nc);class MW extends it{constructor(){super({id:"editor.action.setSelectionAnchor",label:C("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2080),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.setSelectionAnchor()}}class RW extends it{constructor(){super({id:"editor.action.goToSelectionAnchor",label:C("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:jy})}async run(e,t){var i;(i=Nc.get(t))==null||i.goToSelectionAnchor()}}class NW extends it{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:C("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:jy,kbOpts:{kbExpr:B.editorTextFocus,primary:us(2089,2089),weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.selectFromAnchorToCursor()}}class AW extends it{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:C("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:jy,kbOpts:{kbExpr:B.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Nc.get(t))==null||i.cancelSelectionAnchor()}}nn(Nc.ID,Nc,4);be(MW);be(RW);be(NW);be(AW);const OW=Yt("editorOverviewRuler.bracketMatchForeground","#A0A0A0",C("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class FW extends it{constructor(){super({id:"editor.action.jumpToBracket",label:C("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.jumpToBracket()}}class HW extends it{constructor(){super({id:"editor.action.selectToBracket",label:C("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:ii("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var s;let n=!0;i&&i.selectBrackets===!1&&(n=!1),(s=Cu.get(t))==null||s.selectToBracket(n)}}class WW extends it{constructor(){super({id:"editor.action.removeBrackets",label:C("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:B.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Cu.get(t))==null||i.removeBrackets(this.id)}}class BW{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const Zl=class Zl extends St{static get(e){return e.getContribution(Zl.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new ys(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const n=i.getStartPosition(),s=e.bracketPairs.matchBracket(n);let r=null;if(s)s[0].containsPosition(n)&&!s[1].containsPosition(n)?r=s[1].getStartPosition():s[1].containsPosition(n)&&(r=s[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(n);if(a)r=a[1].getStartPosition();else{const d=e.bracketPairs.findNextBracket(n);d&&d.range&&(r=d.range.getStartPosition())}}return r?new Ti(r.lineNumber,r.column,r.lineNumber,r.column):new Ti(n.lineNumber,n.column,n.lineNumber,n.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(n=>{const s=n.getStartPosition();let r=t.bracketPairs.matchBracket(s);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(s),!r)){const u=t.bracketPairs.findNextBracket(s);u&&u.range&&(r=t.bracketPairs.matchBracket(u.range.getStartPosition()))}let a=null,d=null;if(r){r.sort(Z.compareRangesUsingStarts);const[u,f]=r;if(a=e?u.getStartPosition():u.getEndPosition(),d=e?f.getEndPosition():f.getStartPosition(),f.containsPosition(s)){const g=a;a=d,d=g}}a&&d&&i.push(new Ti(a.lineNumber,a.column,d.lineNumber,d.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const n=i.getPosition();let s=t.bracketPairs.matchBracket(n);s||(s=t.bracketPairs.findEnclosingBrackets(n)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const s=[];let r=0;for(let g=0,p=e.length;g<p;g++){const w=e[g];w.isEmpty()&&(s[r++]=w.getStartPosition())}s.length>1&&s.sort(ri.compare);const a=[];let d=0,u=0;const f=n.length;for(let g=0,p=s.length;g<p;g++){const w=s[g];for(;u<f&&n[u].position.isBefore(w);)u++;if(u<f&&n[u].position.equals(w))a[d++]=n[u];else{let y=t.bracketPairs.matchBracket(w,20),x=Zl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!y&&this._matchBrackets==="always"&&(y=t.bracketPairs.findEnclosingBrackets(w,20),x=Zl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new BW(w,y,x)}}this._lastBracketsData=a,this._lastVersionId=i}};Zl.ID="editor.contrib.bracketMatchingController",Zl._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=dn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:_s(OW),position:Ha.Center}}),Zl._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=dn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Cu=Zl;nn(Cu.ID,Cu,1);be(HW);be(FW);be(WW);Nr.appendMenuItem(Bt.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:C({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class zW{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,n=this._selection.startColumn,s=this._selection.endColumn;if(!(this._isMovingLeft&&n===1)&&!(!this._isMovingLeft&&s===e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new Z(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,s,i,s),a)}else{const r=new Z(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new Z(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new Ti(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Ti(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class pM extends it{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 zW(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class VW extends pM{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:C("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:B.writable})}}class jW extends pM{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:C("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:B.writable})}}be(VW);be(jW);class $W extends it{constructor(){super({id:"editor.action.transposeLetters",label:C("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:B.writable,kbOpts:{kbExpr:B.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],s=t.getSelections();for(const r of s){if(!r.isEmpty())continue;const a=r.startLineNumber,d=r.startColumn,u=i.getLineMaxColumn(a);if(a===1&&(d===1||d===2&&u===2))continue;const f=d===u?r.getPosition():yw.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=yw.leftPosition(i,f),p=yw.leftPosition(i,g),w=i.getValueInRange(Z.fromPositions(p,g)),y=i.getValueInRange(Z.fromPositions(g,f)),x=Z.fromPositions(p,f);n.push(new o_(x,y+w))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}be($W);const $y=(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 F0(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function UW(o,e,t){const i={id:$y(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class _M{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 gl.some(this,([i,n])=>n.asFile())&&t.push("files"),vM(mv(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 mv(e)}}function mv(o){return o.toLowerCase()}function mM(o,e){return vM(mv(o),e.map(mv))}function vM(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 Uy=Object.freeze({create:o=>ND(o.map(e=>e.toString())).join(`\r
|
|
14
14
|
`),split:o=>o.split(`\r
|
|
15
15
|
`),parse:o=>Uy.split(o).filter(e=>!e.startsWith("#"))}),Ca=class Ca{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===""||e.value.startsWith(this.value+Ca.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Ca((this.value?[this.value,...e]:e).join(Ca.sep))}};Ca.sep=".",Ca.None=new Ca("@@none@@"),Ca.Empty=new Ca("");let $n=Ca;const JL={EDITORS:"CodeEditors",FILES:"CodeFiles"};class qW{}const GW={DragAndDropContribution:"workbench.contributions.dragAndDrop"};da.add(GW.DragAndDropContribution,new qW);const op=class op{constructor(){}static getInstance(){return op.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};op.INSTANCE=new op;let JS=op;function bM(o){const e=new _M;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,F0(n))}else if(t.kind==="file"){const n=t.getAsFile();n&&e.append(i,KW(n))}}return e}function KW(o){const e=o.path?Tn.parse(o.path):void 0;return UW(o.name,e,async()=>new Uint8Array(await o.arrayBuffer()))}const ZW=Object.freeze([JL.EDITORS,JL.FILES,yS.RESOURCES,yS.INTERNAL_URI_LIST]);function yM(o,e=!1){const t=bM(o),i=t.get(yS.INTERNAL_URI_LIST);if(i)t.replace(Os.uriList,i);else if(e||!t.has(Os.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(Os.uriList,F0(Uy.create(n)))}for(const n of ZW)t.delete(n);return t}var H0=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Cp=function(o,e){return function(t,i){e(t,i,o)}};class W0{async provideDocumentPasteEdits(e,t,i,n,s){const r=await this.getEdit(i,s);if(r)return{edits:[{insertText:r.insertText,title:r.title,kind:r.kind,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,i,n){const s=await this.getEdit(i,n);if(s)return{edits:[{insertText:s.insertText,title:s.title,kind:s.kind,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}],dispose(){}}}}const rp=class rp extends W0{constructor(){super(...arguments),this.kind=rp.kind,this.dropMimeTypes=[Os.text],this.pasteMimeTypes=[Os.text]}async getEdit(e,t){const i=e.get(Os.text);if(!i||e.has(Os.uriList))return;const n=await i.asString();return{handledMimeType:Os.text,title:C("text.label","Insert Plain Text"),insertText:n,kind:this.kind}}};rp.id="text",rp.kind=new $n("text.plain");let xu=rp;class wM extends W0{constructor(){super(...arguments),this.kind=new $n("uri.absolute"),this.dropMimeTypes=[Os.uriList],this.pasteMimeTypes=[Os.uriList]}async getEdit(e,t){const i=await SM(e);if(!i.length||t.isCancellationRequested)return;let n=0;const s=i.map(({uri:a,originalText:d})=>a.scheme===go.file?a.fsPath:(n++,d)).join(" ");let r;return n>0?r=i.length>1?C("defaultDropProvider.uriList.uris","Insert Uris"):C("defaultDropProvider.uriList.uri","Insert Uri"):r=i.length>1?C("defaultDropProvider.uriList.paths","Insert Paths"):C("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:Os.uriList,insertText:s,title:r,kind:this.kind}}}let vv=class extends W0{constructor(e){super(),this._workspaceContextService=e,this.kind=new $n("uri.relative"),this.dropMimeTypes=[Os.uriList],this.pasteMimeTypes=[Os.uriList]}async getEdit(e,t){const i=await SM(e);if(!i.length||t.isCancellationRequested)return;const n=yl(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?WA(r.uri,s):void 0}));if(n.length)return{handledMimeType:Os.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}}};vv=H0([Cp(0,uf)],vv);class YW{constructor(){this.kind=new $n("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Os.text}]}async provideDocumentPasteEdits(e,t,i,n,s){var d;if(n.triggerKind!==wS.PasteAs&&!((d=n.only)!=null&&d.contains(this.kind)))return;const r=i.get("text/html"),a=await(r==null?void 0:r.asString());if(!(!a||s.isCancellationRequested))return{dispose(){},edits:[{insertText:a,yieldTo:this._yieldTo,title:C("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}}}async function SM(o){const e=o.get(Os.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const n of Uy.parse(t))try{i.push({uri:Tn.parse(n),originalText:n})}catch{}return i}let QS=class extends St{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new xu)),this._register(e.documentDropEditProvider.register("*",new wM)),this._register(e.documentDropEditProvider.register("*",new vv(t)))}};QS=H0([Cp(0,ai),Cp(1,uf)],QS);let eC=class extends St{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new xu)),this._register(e.documentPasteEditProvider.register("*",new wM)),this._register(e.documentPasteEditProvider.register("*",new vv(t))),this._register(e.documentPasteEditProvider.register("*",new YW))}};eC=H0([Cp(0,ai),Cp(1,uf)],eC);const mr=class mr{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=mr._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(mr.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(mr.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(mr.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(mr.isVariableCharacter(i)||mr.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 mr._table[i]>"u"&&!mr.isDigitCharacter(i)&&!mr.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}};mr._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let tC=mr;class Zf{constructor(){this._children=[]}appendChild(e){return e instanceof Lo&&this._children[this._children.length-1]instanceof Lo?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,n=i.children.indexOf(e),s=i.children.slice(0);s.splice(n,1,...t),i._children=s,(function r(a,d){for(const u of a)u.parent=d,r(u.children,u)})(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof k_)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}let Lo=class CM extends Zf{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new CM(this.value)}};class xM extends Zf{}class lr extends xM{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Yf?this._children[0]:void 0}clone(){const e=new lr(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Yf extends Zf{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Lo&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Yf;return this.options.forEach(e.appendChild,e),e}}class B0 extends Zf{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,n=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(s=>s instanceof Jr&&!!s.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof Jr){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new B0;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 Jr extends Zf{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,n)=>n===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new Jr(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class xp extends xM{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 Lo(t)],!0):!1}clone(){const e=new xp(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function QL(o,e){const t=[...o];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class k_ extends Zf{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof lr&&(e.push(i),t=!t||t.index<i.index?i:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk(n=>n===e?(i=!0,!1):(t+=n.len(),!0)),i?t:-1}fullLen(e){let t=0;return QL([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof lr&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof xp&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new k_;return this._children=this.children.map(t=>t.clone()),e}walk(e){QL(this.children,e)}}class ku{constructor(){this._scanner=new tC,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const n=new k_;return this.parseFragment(e,n),this.ensureFinalTabstop(n,i??!1,t??!1),n}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const n=new Map,s=[];t.walk(d=>(d instanceof lr&&(d.isFinalTabstop?n.set(0,void 0):!n.has(d.index)&&d.children.length>0?n.set(d.index,d.children):s.push(d)),!0));const r=(d,u)=>{const f=n.get(d.index);if(!f)return;const g=new lr(d.index);g.transform=d.transform;for(const p of f){const w=p.clone();g.appendChild(w),w instanceof lr&&n.has(w.index)&&!u.has(w.index)&&(u.add(w.index),r(w,u),u.delete(w.index))}t.replace(d,[g])},a=new Set;for(const d of s)r(d,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(s=>s.index===0)||e.appendChild(new lr(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const n=this._scanner.next();if(n.type!==0&&n.type!==4&&n.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Lo(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new lr(Number(t)):new xp(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const s=new lr(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Lo("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else if(s.index>0&&this._accept(7)){const r=new Yf;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(s.appendChild(r),this._accept(4)))return e.appendChild(s),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(s)?(e.appendChild(s),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(s),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let n;if((n=this._accept(5,!0))?n=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||n:n=this._accept(void 0,!0),!n)return this._backTo(t),!1;i.push(n)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new Lo(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const s=new xp(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Lo("${"+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 B0;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 Lo(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 Jr(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Jr(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 Jr(Number(n),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return e.appendChild(new Jr(Number(n),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return e.appendChild(new Jr(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 Jr(Number(n),void 0,s,r)),!0}}else{const s=this._until(4);if(s)return e.appendChild(new Jr(Number(n),void 0,void 0,s)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Lo(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function kM(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 BA(o,{range:s,text:typeof t.insertText=="string"?ku.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...((n=t.additionalEdit)==null?void 0:n.edits)??[]]}}function LM(o){function e(r,a){return"mimeType"in r?r.mimeType===a.handledMimeType:!!a.kind&&r.kind.contains(a.kind)}const t=new Map;for(const r of o)for(const a of r.yieldTo??[])for(const d of o)if(d!==r&&e(a,d)){let u=t.get(r);u||(u=[],t.set(r,u)),u.push(d)}if(!t.size)return Array.from(o);const i=new Set,n=[];function s(r){if(!r.length)return[];const a=r[0];if(n.includes(a))return console.warn("Yield to cycle detected",a),r;if(i.has(a))return s(r.slice(1));let d=[];const u=t.get(a);return u&&(n.push(a),d=s(u),n.pop()),i.add(a),[...d,a,...s(r.slice(1))]}return s(Array.from(o))}var XW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},JW=function(o,e){return function(t,i){e(t,i,o)}};const QW=dn.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:AD,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),Db=class Db extends St{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=Zt(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=Zt("span.icon");this.domNode.append(t),t.classList.add(...xn.asClassNameArray(Fi.loading),"codicon-modifier-spin");const i=()=>{const n=this.editor.getOption(67);this.domNode.style.height=`${n}px`,this.domNode.style.width=`${Math.ceil(.8*n)}px`};i(),this._register(this.editor.onDidChangeConfiguration(n=>{(n.hasChanged(52)||n.hasChanged(67))&&i()})),this._register(wn(this.domNode,Zn.CLICK,n=>{this.delegate.cancel()}))}getId(){return Db.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)}};Db.baseId="editor.widget.inlineProgressWidget";let iC=Db,bv=class extends St{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Go),this._currentWidget=this._register(new Go),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,i,n,s){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=cp(()=>{const a=Z.fromPositions(e);this._currentDecorations.set([{range:a,options:QW}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(iC,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()}};bv=XW([JW(2,qi)],bv);var e4=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},eI=function(o,e){return function(t,i){e(t,i,o)}},Wm,gc;let Do=(gc=class{static get(e){return e.getContribution(Wm.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Go,this._messageListeners=new vt,this._mouseOverMessage=!1,this._editor=e,this._visible=Wm.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)==null||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){Ar(Im(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=Im(e)?zA(e,{actionHandler:{callback:n=>{this.closeMessage(),VA(this._openerService,n,Im(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new tI(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(bs.debounce(this._editor.onDidBlurEditorText,(n,s)=>s,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&jA(RD(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(wn(this._messageWidget.value.getDomNode(),Zn.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(wn(this._messageWidget.value.getDomNode(),Zn.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(n=>{n.target.position&&(i?i.containsPosition(n.target.position)||this.closeMessage():i=new Z(t.lineNumber-3,1,n.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(tI.fadeOut(this._messageWidget.value))}},Wm=gc,gc.ID="editor.contrib.messageController",gc.MESSAGE_VISIBLE=new _n("messageVisible",!1,C("messageVisible","Whether the editor is currently showing an inline message")),gc);Do=Wm=e4([eI(1,Sn),eI(2,ua)],Do);const t4=yo.bindToContribution(Do.get);li(new t4({id:"leaveEditorMessage",precondition:Do.MESSAGE_VISIBLE,handler:o=>o.closeMessage(),kbOpts:{weight:130,primary:9}}));let tI=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:i},n){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);const r=document.createElement("div");typeof n=="string"?(r.classList.add("message"),r.textContent=n):(n.classList.add("message"),r.appendChild(n)),this._domNode.appendChild(r);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",e===2)}};nn(Do.ID,Do,4);function Aw(o,e){return e&&(o.stack||o.stacktrace)?C("stackTrace.format","{0}: {1}",nI(o),iI(o.stack)||iI(o.stacktrace)):nI(o)}function iI(o){return Array.isArray(o)?o.join(`
|
|
16
16
|
`):o}function nI(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 yv(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=yl(o),i=yv(t[0],e);return t.length>1?C("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(OD(o))return o;if(o.detail){const t=o.detail;if(t.error)return Aw(t.error,e);if(t.exception)return Aw(t.exception,e)}return o.stack?Aw(o,e):o.message?o.message:C("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var IM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},jh=function(o,e){return function(t,i){e(t,i,o)}},nC,Td;let sC=(Td=class extends St{constructor(e,t,i,n,s,r,a,d,u,f){super(),this.typeId=e,this.editor=t,this.showCommand=n,this.range=s,this.edits=r,this.onSelectNewEdit=a,this._contextMenuService=d,this._keybindingService=f,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(u),this.visibleContext.set(!0),this._register(jn(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(jn((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(g=>{s.containsPosition(g.position)||this.dispose()})),this._register(bs.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=Zt(".post-edit-widget"),this.button=this._register(new $A(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(wn(this.domNode,Zn.CLICK,()=>this.showSelector()))}getId(){return nC.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=_o(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>UA({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}},nC=Td,Td.baseId="editor.widget.postEditWidget",Td);sC=nC=IM([jh(7,zf),jh(8,Sn),jh(9,hs)],sC);let wv=class extends St{constructor(e,t,i,n,s,r,a){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=n,this._instantiationService=s,this._bulkEditService=r,this._notificationService=a,this._currentWidget=this._register(new Go),this._register(bs.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,n,s){const r=this._editor.getModel();if(!r||!e.length)return;const a=t.allEdits.at(t.activeEditIndex);if(!a)return;const d=async k=>{const D=this._editor.getModel();D&&(await D.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:k,allEdits:t.allEdits},i,n,s))},u=(k,D)=>{Wc(k)||(this._notificationService.error(D),i&&this.show(e[0],t,d))};let f;try{f=await n(a,s)}catch(k){return u(k,C("resolveError",`Error resolving edit '{0}':
|
|
@@ -227,4 +227,4 @@ declare const she: {
|
|
|
227
227
|
`).trim())}}return J}function xe(W){return W.filter!==void 0||W.map!==void 0||W.reduce!==void 0}function rt(W){const J=[];return W.filter!==void 0&&J.push("filter"),W.map!==void 0&&J.push("map"),W.reduce!==void 0&&J.push("reduce"),`Apply ${J.join(" + ")}`}const dt=15;function It(W){return W.split(`
|
|
228
228
|
`).length>dt}function Si(W){const J=new Set(c(p));J.has(W)?J.delete(W):J.add(W),m(p,J,!0)}function _t(W,J){if(Ye(J))try{return mb.highlight(W,{language:"javascript"}).value}catch{}return W.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function Xt(W){return qn.parse(W)}function Ye(W){return!W||W==="js"||W==="javascript"}function Ft(W){navigator.clipboard.writeText(W).catch(()=>{})}async function ci(){if(m(w,!0),!(c(y)||c(x))){m(x,!0),m(k,"");try{m(y,await Ox(c(g)||c(u).model),!0)}catch(W){m(k,W.message,!0)}m(x,!1)}}function Li(W){return W>=1e9?`${(W/1e9).toFixed(1)} GB`:W>=1e6?`${(W/1e6).toFixed(0)} MB`:`${W} B`}function Ci(W){const J=W.match(/\.([^.]+)$/);return J?J[1].toUpperCase():"?"}function Ct(W){switch(W){case"SH":case"BASH":return"$";case"MD":case"MARKDOWN":return"↓";case"JSON":case"JSONC":return"{}";default:return W}}function Jt(W){m(ne,c(ne).filter((J,se)=>se!==W),!0)}function hi(){qe.click()}async function Ii(W){if(!(!W||W.length===0))for(const J of Array.from(W)){const se=await J.text();m(ne,[...c(ne),{name:J.name,content:se}],!0)}}function Ui(W){const J=W.target;Ii(J.files),J.value=""}function Hi(W){var J;W.preventDefault(),m(We,!1),Ii(((J=W.dataTransfer)==null?void 0:J.files)??null)}function Bi(W){var J;(J=W.dataTransfer)!=null&&J.types.includes("Files")&&(W.preventDefault(),m(We,!0))}function rn(){m(We,!1)}async function Oi(){const W=c(r).trim();if(!(!W||c(a))){m(r,""),m(d,""),m(a,!0),m(n,[...c(n),{role:"user",content:W}],!0),D=new AbortController,m(Oe,[],!0);try{await XN({messages:c(n),currentView:c(Fe),context:c(Lt),modelOverride:c(g)||void 0,extraFiles:c(ne).length>0?c(ne):void 0},J=>{m(s,(c(s)??"")+J)},D.signal,J=>{m(Oe,[...c(Oe),J],!0)}),m(n,[...c(n),{role:"assistant",content:c(s)??"",toolEvents:c(Oe).length>0?[...c(Oe)]:void 0}],!0),m(Oe,[],!0)}catch(J){if(J.name==="AbortError"){const se=c(s);se!=null&&se.trim()&&m(n,[...c(n),{role:"assistant",content:se+`
|
|
229
229
|
|
|
230
|
-
*[stopped]*`,toolEvents:c(Oe).length>0?[...c(Oe)]:void 0}],!0)}else m(d,J.message,!0)}finally{D=null,m(s,null),m(Oe,[],!0),m(a,!1)}}}function xi(){D==null||D.abort()}function ji(W){W.key==="Enter"&&!W.shiftKey&&(W.preventDefault(),Oi())}function Ki(){m(n,[],!0),m(d,"")}const zi=["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 Ni(W){m(r,W,!0),kt==null||kt.focus()}var Ve=iY(),Rt=wt(Ve),Ut=b(Rt),fi=v(b(Ut),2);{var ni=W=>{var J=yZ(),se=b(J);{var j=G=>{var te=Io();H(()=>A(te,`${c(u).provider??""} · ${(c(g)||c(u).model)??""}`)),I(G,te)},N=G=>{var te=Io("Not configured");I(G,te)};O(se,G=>{c(pt)?G(j):G(N,-1)})}H(()=>vn(J,"title",`Provider: ${c(u).provider??""}`)),I(W,J)};O(fi,W=>{c(u)&&W(ni)})}var Zi=v(fi,2);{var Wi=W=>{var J=wZ();$("click",J,Ki),I(W,J)};O(Zi,W=>{c(n).length>0&&W(Wi)})}var Yi=v(Ut,2),di=b(Yi);{var je=W=>{var J=SZ();I(W,J)},X=W=>{var J=kZ(),se=b(J),j=b(se);{var N=ue=>{var Y=CZ(),re=v(wt(Y)),Te=b(re);H(()=>A(Te,t().id)),I(ue,Y)},G=ue=>{var Y=Io("No view selected. Ask a general sheDB view question.");I(ue,Y)};O(j,ue=>{t()?ue(N):ue(G,-1)})}var te=v(se,2);oi(te,17,()=>zi,Vi,(ue,Y)=>{var re=xZ(),Te=b(re);H(()=>A(Te,c(Y))),$("click",re,()=>Ni(c(Y))),I(ue,re)}),I(W,J)};O(di,W=>{c(pt)?c(n).length===0&&c(s)===null&&W(X,1):W(je)})}var He=v(di,2);oi(He,17,()=>c(n),Vi,(W,J,se)=>{var j=TZ(),N=b(j);{var G=ue=>{var Y=LZ(),re=b(Y);H(()=>A(re,c(J).content)),I(ue,Y)},te=ue=>{const Y=mt(()=>et(c(J).content)),re=mt(()=>$t(c(Y)));var Te=PZ(),fe=wt(Te);{var he=ke=>{var we=_D();oi(we,21,()=>c(J).toolEvents,Vi,(ft,at)=>{var ze=Gs(),xt=wt(ze);{var Xe=Me=>{var Ce=gD(),me=v(b(Ce)),Je=b(me);H(de=>A(Je,de),[()=>c(at).name.replace(/_/g," ")]),I(Me,Ce)},_e=Me=>{var Ce=pD(),me=v(b(Ce)),Je=b(me);H(de=>A(Je,de),[()=>c(at).name.replace(/_/g," ")]),I(Me,Ce)};O(xt,Me=>{c(at).type==="tool_call"?Me(Xe):Me(_e,-1)})}I(ft,ze)}),I(ke,we)};O(fe,ke=>{var we;(we=c(J).toolEvents)!=null&&we.length&&ke(he)})}var Ze=v(fe,2),U=b(Ze);oi(U,17,()=>c(Y),Vi,(ke,we,ft)=>{var at=Gs(),ze=wt(at);{var xt=_e=>{var Me=mD();oc(Me,()=>Xt(c(we).text),!0),I(_e,Me)},Xe=_e=>{const Me=mt(()=>`${se}:${ft}`),Ce=mt(()=>It(c(we).text)),me=mt(()=>c(p).has(c(Me))),Je=mt(()=>c(we).lang==="filter");var de=EZ(),De=b(de),Qe=b(De),st=b(Qe),Ge=v(Qe,2),Ht=b(Ge),Vt=v(De,2);let Di;var Gt=b(Vt),_i=b(Gt);oc(_i,()=>_t(c(we).text,c(we).lang??""),!0);var Qi=v(Gt,2);{var Ri=Qt=>{var un=IZ(),an=b(un);H(()=>A(an,c(me)?"▲ collapse":"▼ expand")),$("click",un,()=>Si(c(Me))),I(Qt,un)};O(Qi,Qt=>{c(Ce)&&Qt(Ri)})}H(()=>{A(st,c(Je)?"filter":c(we).lang),Di=Et(Vt,1,"code-body svelte-1twuiul",null,Di,{collapsed:c(Ce)&&!c(me)})}),$("click",Ht,()=>Ft(c(we).text)),I(_e,de)};O(ze,_e=>{c(we).type==="text"?_e(xt):_e(Xe,-1)})}I(ke,at)});var ie=v(U,2);{var ye=ke=>{var we=DZ(),ft=b(we),at=b(ft);H(ze=>A(at,ze),[()=>rt(c(re))]),$("click",ft,()=>e.onApplyView(c(re))),I(ke,we)},Ae=mt(()=>xe(c(re))&&e.onApplyView);O(ie,ke=>{c(Ae)&&ke(ye)})}I(ue,Te)};O(N,ue=>{c(J).role==="user"?ue(G):ue(te,-1)})}H(()=>Et(j,1,`message ${c(J).role??""}`,"svelte-1twuiul")),I(W,j)});var ct=v(He,2);{var Tt=W=>{var J=_D();oi(J,21,()=>c(Oe),Vi,(se,j)=>{var N=Gs(),G=wt(N);{var te=Y=>{var re=gD(),Te=v(b(re)),fe=b(Te);H(he=>A(fe,he),[()=>c(j).name.replace(/_/g," ")]),I(Y,re)},ue=Y=>{var re=pD(),Te=v(b(re)),fe=b(Te);H(he=>A(fe,he),[()=>c(j).name.replace(/_/g," ")]),I(Y,re)};O(G,Y=>{c(j).type==="tool_call"?Y(te):Y(ue,-1)})}I(se,N)}),I(W,J)};O(ct,W=>{c(Oe).length>0&&W(Tt)})}var Wt=v(ct,2);{var z=W=>{var J=MZ(),se=b(J),j=b(se),N=b(j);H(()=>A(N,F[c(M)])),I(W,J)};O(Wt,W=>{c(a)&&c(s)===null&&c(Oe).length===0&&W(z)})}var ae=v(Wt,2);{var Ee=W=>{var J=NZ(),se=b(J);oi(se,21,()=>lt(c(s)),Vi,(j,N)=>{var G=Gs(),te=wt(G);{var ue=re=>{var Te=mD();oc(Te,()=>Xt(c(N).text),!0),I(re,Te)},Y=re=>{var Te=RZ(),fe=b(Te),he=b(fe),Ze=b(he),U=v(fe,2),ie=b(U);oc(ie,()=>_t(c(N).text,c(N).lang??""),!0),H(()=>A(Ze,c(N).lang)),I(re,Te)};O(te,re=>{c(N).type==="text"?re(ue):re(Y,-1)})}I(j,G)}),I(W,J)};O(ae,W=>{c(s)!==null&&W(Ee)})}vs(Yi,W=>Pe=W,()=>Pe);var ot=v(Yi,2);{var ht=W=>{var J=AZ(),se=b(J);H(()=>A(se,c(d))),I(W,J)};O(ot,W=>{c(d)&&W(ht)})}var Q=v(ot,2),ce=b(Q),Le=b(ce),tt=v(ce,2),ei=b(tt),Dt=v(tt,2),Ke=b(Dt),zt=v(Dt,2),pi=b(zt),qt=v(Q,2),Pi=b(qt);{var Mi=W=>{var J=OZ();let se;var j=v(b(J),2),N=b(j),G=v(j,2),te=b(G);H(()=>{se=Et(J,1,"file-chip svelte-1twuiul",null,se,{inactive:!c(Se)}),A(N,t().id),vn(G,"title",c(Se)?"Remove from context":"Re-add to context"),A(te,c(Se)?"×":"+")}),$("click",G,()=>m(Se,!c(Se))),I(W,J)};O(Pi,W=>{t()&&W(Mi)})}var Ei=v(Pi,2);oi(Ei,17,()=>c(ne),Vi,(W,J,se)=>{const j=mt(()=>Ci(c(J).name));var N=FZ(),G=b(N),te=b(G),ue=v(G,2),Y=b(ue),re=v(ue,2);H((Te,fe)=>{Et(G,1,`badge badge-${Te??""}`,"svelte-1twuiul"),A(te,fe),A(Y,c(J).name)},[()=>c(j).toLowerCase(),()=>Ct(c(j))]),$("click",re,()=>Jt(se)),I(W,N)});var $i=v(Ei,2),Be=v($i,2);vs(Be,W=>qe=W,()=>qe);var nt=v(qt,2);let vi;var ui=b(nt);let wi;var gi=b(ui);vs(gi,W=>kt=W,()=>kt);var le=v(ui,2);{var $e=W=>{var J=HZ();$("click",J,xi),I(W,J)},gt=W=>{var J=WZ();H(se=>J.disabled=se,[()=>!c(r).trim()||!c(pt)]),$("click",J,Oi),I(W,J)};O(le,W=>{c(a)?W($e):W(gt,-1)})}var Mt=v(nt,2);{var ti=W=>{var J=$Z(),se=b(J),j=b(se),N=v(se,2);{var G=re=>{var Te=zZ();oi(Te,21,()=>c(f),Vi,(fe,he)=>{var Ze=BZ(),U=b(Ze),ie={};H(()=>{A(U,c(he)),ie!==(ie=c(he))&&(Ze.value=(Ze.__value=c(he))??"")}),I(fe,Ze)}),H(()=>Te.disabled=c(a)),As(Te,()=>c(g),fe=>m(g,fe)),I(re,Te)},te=re=>{var Te=VZ(),fe=b(Te);H(()=>A(fe,c(g)||c(u).model)),I(re,Te)};O(N,re=>{c(f).length>0?re(G):re(te,-1)})}var ue=v(N,2);{var Y=re=>{var Te=jZ();$("click",Te,ci),I(re,Te)};O(ue,re=>{c(u).provider==="ollama"&&re(Y)})}H(()=>A(j,c(u).provider)),I(W,J)};O(Mt,W=>{c(pt)&&c(u)&&W(ti)})}var bt=v(Rt,2);{var bi=W=>{var J=tY(),se=b(J),j=b(se),N=b(j),G=b(N),te=v(N,2),ue=v(j,2),Y=b(ue);{var re=he=>{var Ze=UZ();I(he,Ze)},Te=he=>{var Ze=qZ(),U=b(Ze);H(()=>A(U,c(k))),I(he,Ze)},fe=he=>{var Ze=eY(),U=b(Ze);{var ie=_e=>{var Me=GZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).version)),I(_e,Me)};O(U,_e=>{c(y).version&&_e(ie)})}var ye=v(U,2);{var Ae=_e=>{var Me=KZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).details.family)),I(_e,Me)};O(ye,_e=>{var Me;(Me=c(y).details)!=null&&Me.family&&_e(Ae)})}var ke=v(ye,2);{var we=_e=>{var Me=ZZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).details.parameter_size)),I(_e,Me)};O(ke,_e=>{var Me;(Me=c(y).details)!=null&&Me.parameter_size&&_e(we)})}var ft=v(ke,2);{var at=_e=>{var Me=YZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).details.quantization_level)),I(_e,Me)};O(ft,_e=>{var Me;(Me=c(y).details)!=null&&Me.quantization_level&&_e(at)})}var ze=v(ft,2);{var xt=_e=>{var Me=JZ(),Ce=v(wt(Me),2);oi(Ce,21,()=>c(y).running,Vi,(me,Je)=>{var de=XZ(),De=b(de);H(Qe=>A(De,`${c(Je).name??""} · ${Qe??""} VRAM`),[()=>Li(c(Je).size_vram)]),I(me,de)}),I(_e,Me)},Xe=_e=>{var Me=QZ();I(_e,Me)};O(ze,_e=>{c(y).running&&c(y).running.length>0?_e(xt):c(y).running!==null&&_e(Xe,1)})}I(he,Ze)};O(Y,he=>{c(x)?he(re):c(k)?he(Te,1):c(y)&&he(fe,2)})}H(()=>{var he;return A(G,`Ollama · ${(c(g)||((he=c(u))==null?void 0:he.model))??""}`)}),$("click",J,()=>m(w,!1)),$("click",se,he=>he.stopPropagation()),$("click",te,()=>m(w,!1)),I(W,J)};O(bt,W=>{c(w)&&W(bi)})}H(W=>{A(pi,W),vi=Et(nt,1,"input-row svelte-1twuiul",null,vi,{"drag-over":c(We)}),wi=Et(ui,1,"textarea-wrap svelte-1twuiul",null,wi,{loading:c(a)}),vn(gi,"placeholder",c(pt)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),gi.disabled=c(a)||!c(pt)},[()=>Li(c(Ot))]),ks(Le,()=>c(K),W=>m(K,W)),ks(ei,()=>c(V),W=>m(V,W)),ks(Ke,()=>c(oe),W=>m(oe,W)),$("click",$i,hi),$("change",Be,Ui),ds("dragover",nt,Bi),ds("dragleave",nt,rn),ds("drop",nt,Hi),$("keydown",gi,ji),Kt(gi,()=>c(r),W=>m(r,W)),I(o,Ve),Hs()}eo(["click","change","keydown"]);var sY=P('<div class="me svelte-1pxdb1"></div>');function mS(o,e){Fs(e,!0);let t=Su(e,"value",15,""),i=Su(e,"language",3,"javascript"),n,s,r=!1;Js(()=>{const d=i()==="json"?{formatOnPaste:!0,autoIndent:"full"}:{};s=_r.create(n,{value:t(),language:i(),theme:"vs-dark",minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', monospace",automaticLayout:!0,wordWrap:"on",lineNumbers:"on",renderLineHighlight:"none",overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:6,horizontalScrollbarSize:6},...d}),s.onDidChangeModelContent(()=>{r||t(s.getValue())})}),zy(()=>s==null?void 0:s.dispose()),Vn(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=sY();vs(a,d=>n=d,()=>n),I(o,a),Hs()}var oY=P('<!> <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),rY=P('<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>'),vD=P('<div class="form-error svelte-rrt0o"> </div>'),aY=P('<div class="new-item-form svelte-rrt0o"><input placeholder="device/lamp1" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),bD=P("<li> </li>"),yD=P('<div class="error-bar svelte-rrt0o"> </div>'),wD=P('<div class="loading svelte-rrt0o">Loading…</div>'),lY=P('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),cY=P('<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),dY=P('<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>'),uY=P('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),hY=P('<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>'),fY=P('<span class="badge-error svelte-rrt0o">error</span>'),gY=P('<span class="badge-ok svelte-rrt0o"> </span>'),pY=P('<pre class="result-error svelte-rrt0o"> </pre>'),_Y=P('<pre class="result-json svelte-rrt0o"> </pre>'),mY=P('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),vY=P('<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>'),bY=P('<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),yY=P('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),wY=P('<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>'),SY=P('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function CY(o,e){Fs(e,!0);const t=je=>{var X=oY(),He=wt(X);vs($c(He,{}),ct=>Ct=ct,()=>Ct),I(je,X)};let i=T(ki([])),n=T(null),s=T("{}"),r=T(!1),a=T(null);const d="she-db-selected-view";let u=T(ki([])),f=T(ki(localStorage.getItem(d))),g=T("#"),p=T("// emit(this.someProperty)"),w=T(""),y=T(""),x=T(!1),k=T(!1),D=T(null),M=T(!1),F=T(null),K=T("she/db/view/");const V="she-db-panel";let oe=T(ki(localStorage.getItem(V)??"docs")),ne=T(""),Se=T(!1),We=T(null),qe=T(""),Oe=T(!1),ut=T(null);const kt="she-db-sidebar-width";let Pe=T(ki(parseInt(localStorage.getItem(kt)??"220",10))),Lt=!1,pt=0,Ot=0;const Fe="she-db-chat-width",Nt="she-db-chat-open";let et=T(localStorage.getItem(Nt)==="true"),lt=T(ki(parseInt(localStorage.getItem(Fe)??"320",10))),$t=!1,xe=0,rt=0;const dt=mt(()=>c(f)?{id:c(f),filter:c(g),map:c(p),reduce:c(w)}:null);function It(je){je.filter!==void 0&&m(g,je.filter,!0),je.map!==void 0&&m(p,je.map,!0),je.reduce!==void 0&&m(w,je.reduce,!0)}Vn(()=>{localStorage.setItem(Nt,String(c(et)))}),Vn(()=>{localStorage.setItem(V,c(oe))}),Vn(()=>{c(f)?localStorage.setItem(d,c(f)):localStorage.removeItem(d)});function Si(je){Lt=!0,pt=je.clientX,Ot=c(Pe),je.preventDefault()}function _t(je){Lt&&m(Pe,Math.max(140,Math.min(500,Ot+je.clientX-pt)),!0),$t&&m(lt,Math.max(240,Math.min(600,rt-(je.clientX-xe))),!0)}function Xt(){Lt&&(Lt=!1,localStorage.setItem(kt,String(c(Pe)))),$t&&($t=!1,localStorage.setItem(Fe,String(c(lt))))}function Ye(je){$t=!0,xe=je.clientX,rt=c(lt),je.preventDefault()}async function Ft(){try{m(i,await jN(),!0)}catch{}}async function ci(){try{m(u,await $N(),!0)}catch{}}async function Li(je){m(n,je,!0),m(a,null),m(r,!0);try{const X=await N7(je);m(s,JSON.stringify(X,null,2),!0)}catch(X){m(a,X instanceof Error?X.message:String(X),!0)}finally{m(r,!1)}}async function Ci(){if(c(n)){m(a,null);try{const je=JSON.parse(c(s));await BE(c(n),je)}catch(je){m(a,je instanceof Error?je.message:String(je),!0)}}}let Ct;async function Jt(){if(c(n)&&await Ct.show(`Delete document "${c(n)}"?`,{confirm:"Delete",danger:!0}))try{await A7(c(n)),m(n,null),m(s,"{}")}catch(je){m(a,je instanceof Error?je.message:String(je),!0)}}async function hi(){const je=c(ne).trim();if(je){m(We,null);try{await BE(je,{}),m(Se,!1),m(ne,""),await Li(je)}catch(X){m(We,X instanceof Error?X.message:String(X),!0)}}}async function Ii(je){m(f,je,!0),m(F,null),m(M,!0),m(D,null);try{const X=await O7(je);m(g,X.filter??"",!0),m(p,X.map,!0),m(w,X.reduce??"",!0),m(y,X.description??"",!0),m(x,X.mqttpub??!1,!0),m(k,X.retain??!1,!0),m(D,await gS(je).catch(()=>null),!0)}catch(X){m(F,X instanceof Error?X.message:String(X),!0)}finally{m(M,!1)}}async function Ui(){if(c(f)){m(F,null);try{const je={map:c(p)};c(g).trim()&&(je.filter=c(g).trim()),c(w).trim()&&(je.reduce=c(w).trim()),c(y).trim()&&(je.description=c(y).trim()),c(x)&&(je.mqttpub=!0),c(k)&&(je.retain=!0),await zE(c(f),je)}catch(je){m(F,je instanceof Error?je.message:String(je),!0)}}}async function Hi(){if(c(f))try{m(D,await gS(c(f)),!0)}catch(je){m(F,je instanceof Error?je.message:String(je),!0)}}async function Bi(){if(c(f)&&await Ct.show(`Delete view "${c(f)}"?`,{confirm:"Delete",danger:!0}))try{await F7(c(f)),m(f,null),m(g,""),m(p,"// emit(this.someProperty)"),m(w,""),m(y,""),m(x,!1),m(k,!1),m(D,null)}catch(je){m(F,je instanceof Error?je.message:String(je),!0)}}async function rn(){if(!c(qe).trim())return;const je=c(qe).trim();m(ut,null);try{await zE(je,{map:"// emit(this.someProperty)"}),m(Oe,!1),m(qe,""),await ci(),await Ii(je)}catch(X){m(ut,X instanceof Error?X.message:String(X),!0)}}let Oi=T(""),xi=T(""),ji=mt(()=>[...c(i)].filter(je=>!c(Oi)||je.toLowerCase().includes(c(Oi).toLowerCase())).sort()),Ki=mt(()=>[...c(u)].filter(je=>!c(xi)||je.toLowerCase().includes(c(xi).toLowerCase())).sort());Js(()=>{Ft(),ci().then(()=>{c(f)&&c(u).includes(c(f))?Ii(c(f)):m(f,null)}),Pl().then(Tt=>{const Wt=Tt.dbPrefix||"she/db/",z=Wt.endsWith("/")?Wt:Wt+"/";m(K,z+"view/")}).catch(()=>{});const je=Tr("db:ids",Tt=>{m(i,Tt.ids??[],!0)}),X=Tr("db:viewIds",Tt=>{m(u,Tt.ids??[],!0)}),He=Tr("db:change",async Tt=>{const Wt=Tt.id;c(n)===Wt&&(Tt.doc===null?(m(n,null),m(s,"{}")):m(s,JSON.stringify(Tt.doc,null,2),!0))}),ct=Tr("db:viewUpdate",async Tt=>{const Wt=Tt.id;c(f)===Wt&&m(D,await gS(Wt).catch(()=>null),!0)});return()=>{je(),X(),He(),ct()}});var zi=SY(),Ni=b(zi),Ve=b(Ni);let Rt;var Ut=v(Ve,2);let fi;var ni=v(Ut,2);{var Zi=je=>{var X=rY();let He;H(()=>{He=Et(X,1,"ai-toggle svelte-rrt0o",null,He,{"ai-open":c(et)}),vn(X,"title",c(et)?"Close AI assistant":"Open AI assistant")}),$("click",X,()=>m(et,!c(et))),I(je,X)};O(ni,je=>{c(oe)==="views"&&je(Zi)})}var Wi=v(Ni,2);{var Yi=je=>{var X=dY(),He=b(X);let ct;var Tt=b(He),Wt=b(Tt),z=v(Tt,2);{var ae=Dt=>{var Ke=aY(),zt=wt(Ke),pi=b(zt),qt=v(pi,2),Pi=v(zt,2);{var Mi=Ei=>{var $i=vD(),Be=b($i);H(()=>A(Be,c(We))),I(Ei,$i)};O(Pi,Ei=>{c(We)&&Ei(Mi)})}$("keydown",pi,Ei=>Ei.key==="Enter"&&hi()),Kt(pi,()=>c(ne),Ei=>m(ne,Ei)),$("click",qt,hi),I(Dt,Ke)};O(z,Dt=>{c(Se)&&Dt(ae)})}var Ee=v(z,2),ot=b(Ee),ht=v(Ee,2);oi(ht,20,()=>c(ji),Dt=>Dt,(Dt,Ke)=>{var zt=bD();let pi;var qt=b(zt);H(()=>{pi=Et(zt,1,"flat-item svelte-rrt0o",null,pi,{"active-item":c(n)===Ke}),A(qt,Ke)}),$("click",zt,()=>Li(Ke)),I(Dt,zt)});var Q=v(He,2),ce=v(Q,2),Le=b(ce);{var tt=Dt=>{var Ke=cY(),zt=wt(Ke),pi=b(zt),qt=b(pi),Pi=v(pi,2),Mi=v(Pi,2),Ei=v(zt,2);{var $i=ui=>{var wi=yD(),gi=b(wi);H(()=>A(gi,c(a))),I(ui,wi)};O(Ei,ui=>{c(a)&&ui($i)})}var Be=v(Ei,2);{var nt=ui=>{var wi=wD();I(ui,wi)},vi=ui=>{var wi=lY(),gi=b(wi);mS(gi,{language:"json",get value(){return c(s)},set value(le){m(s,le,!0)}}),I(ui,wi)};O(Be,ui=>{c(r)?ui(nt):ui(vi,-1)})}H(()=>A(qt,c(n))),$("click",Pi,Ci),$("click",Mi,Jt),I(Dt,Ke)},ei=Dt=>{t(Dt)};O(Le,Dt=>{c(n)?Dt(tt):Dt(ei,-1)})}H(()=>ct=zo(He,"",ct,{width:`${c(Pe)??""}px`})),$("click",Wt,()=>{m(Se,!c(Se)),m(We,null)}),Kt(ot,()=>c(Oi),Dt=>m(Oi,Dt)),$("mousedown",Q,Si),I(je,X)},di=je=>{var X=wY(),He=b(X);let ct;var Tt=b(He),Wt=b(Tt),z=v(Tt,2);{var ae=zt=>{var pi=uY(),qt=wt(pi),Pi=b(qt),Mi=v(Pi,2),Ei=v(qt,2);{var $i=Be=>{var nt=vD(),vi=b(nt);H(()=>A(vi,c(ut))),I(Be,nt)};O(Ei,Be=>{c(ut)&&Be($i)})}$("keydown",Pi,Be=>Be.key==="Enter"&&rn()),Kt(Pi,()=>c(qe),Be=>m(qe,Be)),$("click",Mi,rn),I(zt,pi)};O(z,zt=>{c(Oe)&&zt(ae)})}var Ee=v(z,2),ot=b(Ee),ht=v(Ee,2);oi(ht,20,()=>c(Ki),zt=>zt,(zt,pi)=>{var qt=bD();let Pi;var Mi=b(qt);H(()=>{Pi=Et(qt,1,"flat-item svelte-rrt0o",null,Pi,{"active-item":c(f)===pi}),A(Mi,pi)}),$("click",qt,()=>Ii(pi)),I(zt,qt)});var Q=v(He,2),ce=v(Q,2),Le=b(ce);{var tt=zt=>{var pi=bY(),qt=wt(pi),Pi=b(qt),Mi=b(Pi),Ei=v(Pi,2),$i=v(Ei,2),Be=v($i,2),nt=v(qt,2);{var vi=le=>{var $e=yD(),gt=b($e);H(()=>A(gt,c(F))),I(le,$e)};O(nt,le=>{c(F)&&le(vi)})}var ui=v(nt,2);{var wi=le=>{var $e=wD();I(le,$e)},gi=le=>{var $e=vY(),gt=b($e),Mt=v(b(gt),2),ti=b(Mt),bt=v(gt,2),bi=v(b(bt),2),W=b(bi),J=v(bt,2),se=v(b(J),2),j=b(se);mS(j,{language:"javascript",get value(){return c(p)},set value(Ae){m(p,Ae,!0)}});var N=v(J,2),G=v(b(N),2),te=b(G);mS(te,{language:"javascript",get value(){return c(w)},set value(Ae){m(w,Ae,!0)}});var ue=v(N,2),Y=b(ue),re=b(Y),Te=v(re,4),fe=v(b(Te)),he=b(fe),Ze=v(Y,2);{var U=Ae=>{var ke=hY(),we=b(ke);ks(we,()=>c(k),ft=>m(k,ft)),I(Ae,ke)};O(Ze,Ae=>{c(x)&&Ae(U)})}var ie=v(ue,2);{var ye=Ae=>{var ke=mY(),we=b(ke),ft=v(b(we));{var at=Me=>{var Ce=fY();I(Me,Ce)},ze=Me=>{var Ce=gY(),me=b(Ce);H(()=>A(me,`${c(D).length??0??""} items · rev ${c(D)._rev??""}`)),I(Me,Ce)};O(ft,Me=>{c(D).error?Me(at):Me(ze,-1)})}var xt=v(we,2);{var Xe=Me=>{var Ce=pY(),me=b(Ce);H(()=>A(me,c(D).error)),I(Me,Ce)},_e=Me=>{var Ce=_Y(),me=b(Ce);H(Je=>A(me,Je),[()=>JSON.stringify(c(D).result,null,2)]),I(Me,Ce)};O(xt,Me=>{c(D).error?Me(Xe):Me(_e,-1)})}I(Ae,ke)};O(ie,Ae=>{c(D)&&Ae(ye)})}H(()=>A(he,`${c(K)??""}${c(f)??""} on every update`)),Kt(ti,()=>c(y),Ae=>m(y,Ae)),Kt(W,()=>c(g),Ae=>m(g,Ae)),ks(re,()=>c(x),Ae=>m(x,Ae)),I(le,$e)};O(ui,le=>{c(M)?le(wi):le(gi,-1)})}H(()=>A(Mi,c(f))),$("click",Ei,Ui),$("click",$i,Hi),$("click",Be,Bi),I(zt,pi)},ei=zt=>{t(zt)};O(Le,zt=>{c(f)?zt(tt):zt(ei,-1)})}var Dt=v(ce,2);{var Ke=zt=>{var pi=yY(),qt=wt(pi),Pi=v(qt,2);let Mi;var Ei=b(Pi);nY(Ei,{get currentView(){return c(dt)},onApplyView:It}),H(()=>Mi=zo(Pi,"",Mi,{width:`${c(lt)??""}px`})),$("mousedown",qt,Ye),I(zt,pi)};O(Dt,zt=>{c(et)&&zt(Ke)})}H(()=>ct=zo(He,"",ct,{width:`${c(Pe)??""}px`})),$("click",Wt,()=>{m(Oe,!c(Oe)),m(ut,null)}),Kt(ot,()=>c(xi),zt=>m(xi,zt)),$("mousedown",Q,Si),I(je,X)};O(Wi,je=>{c(oe)==="docs"?je(Yi):je(di,-1)})}H(()=>{Rt=Et(Ve,1,"svelte-rrt0o",null,Rt,{active:c(oe)==="docs"}),fi=Et(Ut,1,"svelte-rrt0o",null,fi,{active:c(oe)==="views"})}),$("mousemove",zi,_t),$("mouseup",zi,Xt),ds("mouseleave",zi,Xt),$("click",Ve,()=>m(oe,"docs")),$("click",Ut,()=>m(oe,"views")),I(o,zi),Hs()}eo(["mousemove","mouseup","click","keydown","mousedown"]);var xY=P('<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),kY=P('<label class="svelte-1ua3isv">Pairing Code / QR <input type="text" placeholder="MT:..." class="svelte-1ua3isv"/></label>'),SD=P('<p class="err svelte-1ua3isv"> </p>'),LY=P('<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>'),IY=P('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),EY=P('<span class="device-name svelte-1ua3isv"> </span>'),DY=P('<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>'),PY=P('<li class="empty svelte-1ua3isv">No paired devices</li>'),TY=P('<p class="info svelte-1ua3isv">Loading…</p>'),MY=P('<p class="device-subtitle svelte-1ua3isv"> </p>'),RY=P('<span class="ep-chip svelte-1ua3isv"> </span>'),NY=P('<span class="attr-id svelte-1ua3isv"> </span>'),AY=P('<button class="attr-action-btn svelte-1ua3isv"> </button>'),OY=P('<div class="attr-actions svelte-1ua3isv"></div>'),FY=P('<span class="cmd-sep svelte-1ua3isv">,</span>'),HY=P('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),WY=P('<span class="cmd-id svelte-1ua3isv"> </span>'),BY=P("<!> <!>",1),zY=P('<span class="cmd-list svelte-1ua3isv"></span>'),VY=P(' <span class="cmd-id svelte-1ua3isv"> </span>',1),jY=P('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),$Y=P('<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>'),UY=P('<th class="svelte-1ua3isv"> </th>'),qY=P('<td class="svelte-1ua3isv"> </td>'),GY=P('<tr class="svelte-1ua3isv"></tr>'),KY=P('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),ZY=P('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),YY=P('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),XY=P('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),JY=P('<span class="attr-val svelte-1ua3isv"> </span>'),QY=P('<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>'),eX=P('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),tX=P('<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>'),iX=P('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),nX=P('<details class="svelte-1ua3isv"><summary class="svelte-1ua3isv"> <span class="ep-id svelte-1ua3isv"> </span> <span class="ep-chips svelte-1ua3isv"></span></summary> <!></details>'),sX=P('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),oX=P('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),rX=P('<span class="stream-badge svelte-1ua3isv"> </span>'),aX=P('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),vS=P(' <span class="e-sub svelte-1ua3isv"> </span>',1),lX=P('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),cX=P('<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),dX=P('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),uX=P('<div class="stream-body svelte-1ua3isv"><!></div>'),hX=P('<!> <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 fX(o,e){Fs(e,!0);const t={onOff:{onOff:[{label:"On",command:"on"},{label:"Off",command:"off"},{label:"Toggle",command:"toggle"}]},levelControl:{currentLevel:[{label:"Step ▲",command:"stepWithOnOff",args:{stepMode:0,stepSize:25,transitionTime:5}},{label:"Step ▼",command:"stepWithOnOff",args:{stepMode:1,stepSize:25,transitionTime:5}}]},windowCovering:{currentPositionLiftPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}],currentPositionTiltPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}]}};async function i(X,He,ct,Tt,Wt){try{await Z7(X,He,ct,Tt,Wt)}catch(z){console.error("matter command failed",z)}}const n={identify:{0:"identify",1:"triggerEffect"},groups:{0:"addGroup",1:"viewGroup",2:"getGroupMembership",3:"removeGroup",4:"removeAllGroups",5:"addGroupIfIdentifying"},scenes:{0:"addScene",1:"viewScene",2:"removeScene",3:"removeAllScenes",4:"storeScene",5:"recallScene",6:"getSceneMembership",64:"enhancedAddScene",65:"enhancedViewScene",66:"copyScene"},onOff:{0:"off",1:"on",2:"toggle",64:"offWithEffect",65:"onWithRecallGlobalScene",66:"onWithTimedOff"},levelControl:{0:"moveToLevel",1:"move",2:"step",3:"stop",4:"moveToLevelWithOnOff",5:"moveWithOnOff",6:"stepWithOnOff",7:"stopWithOnOff",8:"moveToClosestFrequency"},colorControl:{0:"moveToHue",1:"moveHue",2:"stepHue",3:"moveToSaturation",4:"moveSaturation",5:"stepSaturation",6:"moveToHueAndSaturation",7:"moveToColor",8:"moveColor",9:"stepColor",10:"moveToColorTemperature",64:"enhancedMoveToHue",65:"enhancedMoveHue",66:"enhancedStepHue",67:"enhancedMoveToHueAndSaturation",68:"colorLoopSet",71:"stopMoveStep",75:"moveColorTemperature",76:"stepColorTemperature"},thermostat:{0:"setpointRaiseLower",1:"setWeeklySchedule",2:"getWeeklySchedule",3:"clearWeeklySchedule"},doorLock:{0:"lockDoor",1:"unlockDoor",3:"unlockWithTimeout",11:"setWeekDaySchedule",12:"getWeekDaySchedule",13:"clearWeekDaySchedule",14:"setYearDaySchedule",15:"getYearDaySchedule",16:"clearYearDaySchedule",17:"setHolidaySchedule",18:"getHolidaySchedule",19:"clearHolidaySchedule",26:"setUser",27:"getUser",28:"clearUser",34:"setCredential",36:"getCredential",38:"clearCredential"},windowCovering:{0:"upOrOpen",1:"downOrClose",2:"stopMotion",4:"goToLiftValue",5:"goToLiftPercentage",7:"goToTiltValue",8:"goToTiltPercentage"},fanControl:{0:"step"}};function s(X,He){const ct=n[X];return He.map(Tt=>{const Wt=typeof Tt=="number"?Tt:Number(Tt);return{id:Wt,name:(ct==null?void 0:ct[Wt])??null}})}const r={10:"Door Lock",11:"Door Lock Controller",14:"Aggregator",15:"Generic Switch",17:"On/Off Plug-In Unit",18:"Dimmable Plug-In Unit",19:"Pump",20:"On/Off Light Switch",21:"Dimmer Switch",22:"Color Dimmer Switch",23:"Control Bridge",24:"Pump Controller",256:"On/Off Light",257:"Dimmable Light",268:"Extended Color Light",269:"Color Temperature Light",262:"Light Sensor",263:"Occupancy Sensor",514:"Window Covering",515:"Window Covering Controller",768:"Heating/Cooling Unit",769:"Thermostat",770:"Temperature Sensor",771:"Pressure Sensor",772:"Flow Sensor",773:"Humidity Sensor",774:"On/Off Sensor",2112:"Air Quality Sensor"},a={generatedCommandList:65528,acceptedCommandList:65529,eventList:65530,attributeList:65531,featureMap:65532,clusterRevision:65533},d={descriptor:{deviceTypeList:0,serverList:1,clientList:2,partsList:3,tagList:4},basicInformation:{dataModelRevision:0,vendorName:1,vendorID:2,vendorId:2,productName:3,productID:4,productId:4,nodeLabel:5,location:6,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,localConfigDisabled:16,reachable:17,uniqueID:18,uniqueId:18,capabilityMinima:19,productAppearance:20,specificationVersion:21,maxPathsPerInvoke:22},bridgedDeviceBasicInformation:{vendorName:1,vendorID:2,vendorId:2,productName:3,productId:4,nodeLabel:5,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,reachable:17,uniqueID:18,uniqueId:18,productAppearance:20},identify:{identifyTime:0,identifyType:1},groups:{nameSupport:0},onOff:{onOff:0,globalSceneControl:16384,onTime:16385,offWaitTime:16386,startUpOnOff:16387},levelControl:{currentLevel:0,remainingTime:1,minLevel:2,maxLevel:3,currentFrequency:4,minFrequency:5,maxFrequency:6,options:15,onOffTransitionTime:16,onLevel:17,onTransitionTime:18,offTransitionTime:19,defaultMoveRate:20,startUpCurrentLevel:16384},colorControl:{currentHue:0,currentSaturation:1,remainingTime:2,currentX:3,currentY:4,colorTemperatureMireds:7,colorMode:8,options:15,enhancedCurrentHue:16384,enhancedColorMode:16385,colorLoopActive:16386,colorLoopDirection:16387,colorLoopTime:16388,colorCapabilities:16394,colorTempPhysicalMinMireds:16395,colorTempPhysicalMaxMireds:16396,coupleColorTempToLevelMinMireds:16397,startUpColorTemperatureMireds:16400},thermostat:{localTemperature:0,outdoorTemperature:1,occupancy:2,absMinHeatSetpointLimit:3,absMaxHeatSetpointLimit:4,absMinCoolSetpointLimit:5,absMaxCoolSetpointLimit:6,piCoolingDemand:7,piHeatingDemand:8,localTemperatureCalibration:16,occupiedCoolingSetpoint:17,occupiedHeatingSetpoint:18,unoccupiedCoolingSetpoint:19,unoccupiedHeatingSetpoint:20,minHeatSetpointLimit:21,maxHeatSetpointLimit:22,minCoolSetpointLimit:23,maxCoolSetpointLimit:24,minSetpointDeadBand:25,remoteSensing:26,controlSequenceOfOperation:27,systemMode:28,thermostatRunningMode:30,startOfWeek:32,numberOfWeeklyTransitions:33,numberOfDailyTransitions:34,temperatureSetpointHold:35,temperatureSetpointHoldDuration:36,thermostatProgrammingOperationMode:37,thermostatRunningState:41,setpointChangeSource:48,setpointChangeAmount:49,setpointChangeSourceTimestamp:50,occupiedSetback:52,unoccupiedSetback:55,emergencyHeatDelta:58},windowCovering:{type:0,physicalClosedLimitLift:1,physicalClosedLimitTilt:2,currentPositionLift:3,currentPositionTilt:4,numberOfActuationsLift:5,numberOfActuationsTilt:6,configStatus:7,currentPositionLiftPercentage:8,currentPositionTiltPercentage:9,operationalStatus:10,targetPositionLiftPercent100ths:11,targetPositionTiltPercent100ths:12,endProductType:13,currentPositionLiftPercent100ths:14,currentPositionTiltPercent100ths:15,installedOpenLimitLift:16,installedClosedLimitLift:17,installedOpenLimitTilt:18,installedClosedLimitTilt:19,mode:23,safetyStatus:26},doorLock:{lockState:0,lockType:1,actuatorEnabled:2,doorState:3,numberOfTotalUsersSupported:17,numberOfPINUsersSupported:18,maxPINCodeLength:23,minPINCodeLength:24,language:33,autoRelockTime:35,soundVolume:36,operatingMode:37,supportedOperatingModes:38,wrongCodeEntryLimit:48},fanControl:{fanMode:0,fanModeSequence:1,percentSetting:2,percentCurrent:3,speedMax:4,speedSetting:5,speedCurrent:6,rockSupport:7,rockSetting:8,windSupport:9,windSetting:10,airflowDirectionSupport:11,airflowDirection:12},occupancySensing:{occupancy:0,occupancySensorType:1,occupancySensorTypeBitmap:2,holdTime:3,pirOccupiedToUnoccupiedDelay:16,pirUnoccupiedToOccupiedDelay:17},illuminanceMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,lightSensorType:4},temperatureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},pressureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,scaledValue:16,minScaledValue:17,maxScaledValue:18,scale:20},flowMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},relativeHumidityMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},powerSource:{status:0,order:1,description:2,batVoltage:11,batPercentRemaining:12,batTimeRemaining:13,batChargeLevel:14,batReplacementNeeded:15,batReplaceability:16,batPresent:17,activeBatFaults:18,batChargeState:26}};function u(X){return"0x"+X.toString(16).toUpperCase().padStart(4,"0")}let f=T(ki([])),g=ki(new Map);function p(X){if(X==null)return"—";if(typeof X=="boolean"||typeof X=="number")return String(X);if(typeof X=="string")return X.length>50?X.slice(0,47)+"…":X;const He=JSON.stringify(X);return He.length>60?He.slice(0,57)+"…":He}function w(X){return X==null?"—":typeof X=="boolean"||typeof X=="number"?String(X):typeof X=="string"?X:JSON.stringify(X)}function y(X){return X!==null&&typeof X=="object"&&!Array.isArray(X)}function x(X){return Array.isArray(X)&&X.length>0&&X.every(y)}function k(X,He){return!!(He==="attributeList"||Array.isArray(X)&&X.length===0||y(X)&&Object.keys(X).length===0)}function D(X){return new Date(X).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const M=500,F=20,K=32;let V=0,oe=T(ki([])),ne=T(!0),Se=T(180),We=mt(()=>{const X=Math.max(1,Math.floor((c(Se)-K)/F)+1);return c(oe).slice(0,X)});function qe(X){X.preventDefault();const He=X.clientY,ct=c(Se);function Tt(z){m(Se,Math.max(60,Math.min(600,ct+He-z.clientY)),!0)}function Wt(){document.removeEventListener("mousemove",Tt),document.removeEventListener("mouseup",Wt)}document.addEventListener("mousemove",Tt),document.addEventListener("mouseup",Wt)}let Oe=T(null),ut=T(!1),kt=T(null),Pe=T(!1),Lt=T("passcode"),pt=T(""),Ot=T(""),Fe=T(""),Nt=T(!1),et=T(null),lt=T("");const $t="she:matter:selectedNodeId";async function xe(){try{m(f,await qN(),!0);for(const X of c(f))Jm(X.nodeId).then(He=>{g.set(X.nodeId,He)}).catch(()=>{});if(c(f).length>0&&!c(Oe)){const X=localStorage.getItem($t),He=X&&c(f).find(ct=>ct.nodeId===X)?X:c(f)[0].nodeId;rt(He)}}catch{m(f,[],!0)}}async function rt(X){m(ut,!0),m(kt,null);try{m(Oe,await Jm(X),!0),g.set(X,c(Oe)),localStorage.setItem($t,X)}catch(He){m(kt,He instanceof Error?He.message:String(He),!0)}finally{m(ut,!1)}}let dt;async function It(X){var He;if(await dt.show(`Unpair device ${X}?`,{confirm:"Unpair",danger:!0}))try{await K7(X),((He=c(Oe))==null?void 0:He.nodeId)===X&&m(Oe,null),await xe()}catch(ct){m(kt,ct instanceof Error?ct.message:String(ct),!0)}}async function Si(){m(Nt,!0),m(et,null);try{let X;c(Lt)==="passcode"?(X={passcode:Number(c(pt))},c(Ot)&&(X={...X,discriminator:Number(c(Ot))})):X={pairingCode:c(Fe).trim()},c(lt).trim()&&(X={...X,discoveryAddress:c(lt).trim()}),await G7(X),m(Pe,!1),m(pt,""),m(Ot,""),m(Fe,""),m(lt,""),await xe()}catch(X){m(et,X instanceof Error?X.message:String(X),!0)}finally{m(Nt,!1)}}Js(()=>{xe()});const _t=Tr("matter:deviceList",X=>{if(!Array.isArray(X.devices))return;const He=X.devices;for(const ct of He)g.has(ct.nodeId)||Jm(ct.nodeId).then(Tt=>{g.set(ct.nodeId,Tt)}).catch(()=>{});m(f,He,!0)}),Xt=Tr("matter:deviceStatus",X=>{if(X.nodeId===void 0)return;const He=String(X.nodeId),ct=!!X.online;m(f,c(f).map(Tt=>Tt.nodeId===He?{...Tt,online:ct}:Tt),!0),m(oe,[{id:V++,kind:"status",nodeId:He,online:ct,ts:Date.now()},...c(oe).slice(0,M-1)],!0)}),Ye=Tr("matter:attr",X=>{const He=String(X.nodeId),ct=X.endpointId,Tt=String(X.clusterName),Wt=String(X.attrName),z=X.value;if(c(Oe)&&c(Oe).nodeId===He){const Ee=c(Oe).endpoints.find(ht=>ht.endpointId===ct),ot=Ee==null?void 0:Ee.clusters.find(ht=>ht.name===Tt);ot&&(ot.attrs[Wt]=z)}const ae=g.get(He);if(ae){const Ee=ae.endpoints.find(ht=>ht.endpointId===ct),ot=Ee==null?void 0:Ee.clusters.find(ht=>ht.name===Tt);ot&&(ot.attrs[Wt]=z)}m(oe,[{id:V++,kind:"attr",nodeId:He,endpointId:ct,clusterName:Tt,attrName:Wt,value:z,ts:X.ts??Date.now()},...c(oe).slice(0,M-1)],!0)});zy(()=>{_t(),Xt(),Ye()});var Ft=hX(),ci=wt(Ft);vs($c(ci,{}),X=>dt=X,()=>dt);var Li=v(ci,2),Ci=b(Li),Ct=b(Ci),Jt=b(Ct),hi=v(b(Jt),2),Ii=v(Jt,2);{var Ui=X=>{var He=LY(),ct=b(He),Tt=b(ct);let Wt;var z=v(Tt,2);let ae;var Ee=v(ct,2);{var ot=Ke=>{var zt=xY(),pi=wt(zt),qt=v(b(pi)),Pi=v(pi,2),Mi=v(b(Pi));Kt(qt,()=>c(pt),Ei=>m(pt,Ei)),Kt(Mi,()=>c(Ot),Ei=>m(Ot,Ei)),I(Ke,zt)},ht=Ke=>{var zt=kY(),pi=v(b(zt));Kt(pi,()=>c(Fe),qt=>m(Fe,qt)),I(Ke,zt)};O(Ee,Ke=>{c(Lt)==="passcode"?Ke(ot):Ke(ht,-1)})}var Q=v(Ee,2),ce=v(b(Q)),Le=v(Q,2);{var tt=Ke=>{var zt=SD(),pi=b(zt);H(()=>A(pi,c(et))),I(Ke,zt)};O(Le,Ke=>{c(et)&&Ke(tt)})}var ei=v(Le,2),Dt=b(ei);H(()=>{Wt=Et(Tt,1,"svelte-1ua3isv",null,Wt,{active:c(Lt)==="passcode"}),ae=Et(z,1,"svelte-1ua3isv",null,ae,{active:c(Lt)==="pairingCode"}),ei.disabled=c(Nt),A(Dt,c(Nt)?"Commissioning…":"Commission")}),$("click",Tt,()=>m(Lt,"passcode")),$("click",z,()=>m(Lt,"pairingCode")),Kt(ce,()=>c(lt),Ke=>m(lt,Ke)),$("click",ei,Si),I(X,He)};O(Ii,X=>{c(Pe)&&X(Ui)})}var Hi=v(Ii,2),Bi=b(Hi);oi(Bi,17,()=>c(f),X=>X.nodeId,(X,He)=>{var ct=DY();let Tt;var Wt=b(ct),z=b(Wt);let ae;var Ee=v(z,2),ot=b(Ee);{var ht=Le=>{var tt=IY(),ei=wt(tt),Dt=b(ei),Ke=v(ei,2),zt=b(Ke);H(()=>{A(Dt,c(He).name),A(zt,`#${c(He).nodeId??""}`)}),I(Le,tt)},Q=Le=>{var tt=EY(),ei=b(tt);H(()=>A(ei,`Node ${c(He).nodeId??""}`)),I(Le,tt)};O(ot,Le=>{c(He).name?Le(ht):Le(Q,-1)})}var ce=v(Wt,2);H(()=>{var Le;Tt=Et(ct,1,"svelte-1ua3isv",null,Tt,{selected:((Le=c(Oe))==null?void 0:Le.nodeId)===c(He).nodeId}),ae=Et(z,1,"status-dot svelte-1ua3isv",null,ae,{online:c(He).online})}),$("click",Wt,()=>rt(c(He).nodeId)),$("click",ce,()=>It(c(He).nodeId)),I(X,ct)});var rn=v(Bi,2);{var Oi=X=>{var He=PY();I(X,He)};O(rn,X=>{c(f).length===0&&X(Oi)})}var xi=v(Ct,2),ji=b(xi);{var Ki=X=>{var He=TY();I(X,He)},zi=X=>{var He=SD(),ct=b(He);H(()=>A(ct,c(kt))),I(X,He)},Ni=X=>{var He=sX(),ct=wt(He),Tt=b(ct),Wt=b(Tt),z=v(Tt,2);{var ae=Q=>{var ce=MY(),Le=b(ce);H(()=>A(Le,c(Oe).subtitle)),I(Q,ce)};O(z,Q=>{c(Oe).subtitle&&Q(ae)})}var Ee=v(z,2),ot=b(Ee),ht=v(ct,2);oi(ht,17,()=>c(Oe).endpoints,Q=>Q.endpointId,(Q,ce)=>{var Le=nX(),tt=b(Le),ei=b(tt),Dt=v(ei),Ke=b(Dt),zt=v(Dt,2);oi(zt,21,()=>c(ce).clusters,Vi,(Mi,Ei)=>{var $i=RY(),Be=b($i);H(()=>A(Be,c(Ei).name)),I(Mi,$i)});var pi=v(tt,2);{var qt=Mi=>{var Ei=tX(),$i=v(b(Ei));oi($i,21,()=>c(ce).clusters,Vi,(Be,nt)=>{var vi=eX(),ui=wt(vi),wi=b(ui),gi=b(wi),le=v(ui,2);oi(le,17,()=>Object.entries(c(nt).attrs),Vi,($e,gt)=>{var Mt=mt(()=>WL(c(gt),2));let ti=()=>c(Mt)[0],bt=()=>c(Mt)[1];var bi=Gs(),W=wt(bi);{var J=j=>{const N=mt(()=>{var Ce;return(Ce=t[c(nt).name])==null?void 0:Ce[ti()]}),G=mt(()=>(ti()==="acceptedCommandList"||ti()==="generatedCommandList")&&Array.isArray(bt())),te=mt(()=>{var Ce;return((Ce=d[c(nt).name])==null?void 0:Ce[ti()])??a[ti()]});var ue=QY(),Y=b(ue),re=b(Y),Te=b(re),fe=v(re);{var he=Ce=>{var me=NY(),Je=b(me);H(de=>A(Je,`(${de??""})`),[()=>u(c(te))]),I(Ce,me)};O(fe,Ce=>{c(te)!==void 0&&Ce(he)})}var Ze=v(Y),U=b(Ze);{var ie=Ce=>{var me=OY();oi(me,21,()=>c(N),Vi,(Je,de)=>{var De=AY(),Qe=b(De);H(()=>A(Qe,c(de).label)),$("click",De,()=>i(c(Oe).nodeId,c(ce).endpointId,c(nt).name,c(de).command,c(de).args)),I(Je,De)}),I(Ce,me)};O(U,Ce=>{c(N)&&Ce(ie)})}var ye=v(Ze),Ae=b(ye);{var ke=Ce=>{var me=zY();oi(me,21,()=>s(c(nt).name,bt()),Vi,(Je,de,De)=>{var Qe=BY(),st=wt(Qe);{var Ge=Gt=>{var _i=FY();I(Gt,_i)};O(st,Gt=>{De>0&&Gt(Ge)})}var Ht=v(st,2);{var Vt=Gt=>{var _i=HY(),Qi=wt(_i),Ri=b(Qi),Qt=v(Qi),un=b(Qt);H(()=>{A(Ri,c(de).name),A(un,`(${c(de).id??""})`)}),I(Gt,_i)},Di=Gt=>{var _i=WY(),Qi=b(_i);H(()=>A(Qi,c(de).id)),I(Gt,_i)};O(Ht,Gt=>{c(de).name?Gt(Vt):Gt(Di,-1)})}I(Je,Qe)}),I(Ce,me)},we=Ce=>{var me=$Y(),Je=v(b(me));oi(Je,21,bt,Vi,(de,De)=>{const Qe=mt(()=>c(De)),st=mt(()=>c(Qe).deviceType),Ge=mt(()=>r[c(st)]);var Ht=jY(),Vt=b(Ht),Di=b(Vt);{var Gt=Qt=>{var un=VY(),an=wt(un),es=v(an),Bs=b(es);H(fo=>{A(an,`${c(Ge)??""} `),A(Bs,`(${fo??""})`)},[()=>u(c(st))]),I(Qt,un)},_i=Qt=>{var un=Io();H(an=>A(un,an),[()=>u(c(st))]),I(Qt,un)};O(Di,Qt=>{c(Ge)?Qt(Gt):Qt(_i,-1)})}var Qi=v(Vt),Ri=b(Qi);H(Qt=>A(Ri,Qt),[()=>w(c(Qe).revision)]),I(de,Ht)}),I(Ce,me)},ft=mt(()=>ti()==="deviceTypeList"&&Array.isArray(bt())),at=Ce=>{const me=mt(()=>[...new Set(bt().flatMap(st=>Object.keys(st)))]);var Je=KY(),de=b(Je),De=b(de);oi(De,21,()=>c(me),Vi,(st,Ge)=>{var Ht=UY(),Vt=b(Ht);H(()=>A(Vt,c(Ge))),I(st,Ht)});var Qe=v(de);oi(Qe,21,bt,Vi,(st,Ge)=>{var Ht=GY();oi(Ht,21,()=>c(me),Vi,(Vt,Di)=>{var Gt=qY(),_i=b(Gt);H(Qi=>A(_i,Qi),[()=>w(c(Ge)[c(Di)])]),I(Vt,Gt)}),I(st,Ht)}),I(Ce,Je)},ze=mt(()=>x(bt())),xt=Ce=>{var me=YY(),Je=b(me);oi(Je,21,()=>Object.entries(bt()),Vi,(de,De)=>{var Qe=mt(()=>WL(c(De),2));let st=()=>c(Qe)[0],Ge=()=>c(Qe)[1];var Ht=ZY(),Vt=b(Ht),Di=b(Vt),Gt=v(Vt),_i=b(Gt);H(Qi=>{A(Di,st()),A(_i,Qi)},[()=>w(Ge())]),I(de,Ht)}),I(Ce,me)},Xe=mt(()=>y(bt())),_e=Ce=>{var me=XY(),Je=b(me);H(()=>{vn(me,"href",bt()),A(Je,bt())}),I(Ce,me)},Me=Ce=>{var me=JY(),Je=b(me);H(de=>A(Je,de),[()=>w(bt())]),I(Ce,me)};O(Ae,Ce=>{c(G)?Ce(ke):c(ft)?Ce(we,1):c(ze)?Ce(at,2):c(Xe)?Ce(xt,3):(ti()==="productUrl"||ti()==="productURL")&&typeof bt()=="string"?Ce(_e,4):Ce(Me,-1)})}H(()=>{vn(Y,"title",ti()),A(Te,ti())}),I(j,ue)},se=mt(()=>!k(bt(),ti()));O(W,j=>{c(se)&&j(J)})}I($e,bi)}),H(()=>A(gi,c(nt).name)),I(Be,vi)}),I(Mi,Ei)},Pi=Mi=>{var Ei=iX();I(Mi,Ei)};O(pi,Mi=>{c(ce).clusters.length>0?Mi(qt):Mi(Pi,-1)})}H(()=>{A(ei,`${c(ce).name??`Endpoint ${c(ce).endpointId}`??""} `),A(Ke,`ep${c(ce).endpointId??""}`)}),I(Q,Le)}),H(()=>{A(Wt,c(Oe).name??`Node ${c(Oe).nodeId}`),A(ot,`Node ID: ${c(Oe).nodeId??""}`)}),I(X,He)},Ve=X=>{var He=oX();I(X,He)};O(ji,X=>{c(ut)?X(Ki):c(kt)?X(zi,1):c(Oe)?X(Ni,2):X(Ve,-1)})}var Rt=v(Ci,2),Ut=b(Rt),fi=v(Ut,2),ni=v(b(fi),2);{var Zi=X=>{var He=rX(),ct=b(He);H(()=>A(ct,c(oe).length)),I(X,He)};O(ni,X=>{!c(ne)&&c(oe).length>0&&X(Zi)})}var Wi=v(ni,2),Yi=b(Wi),di=v(fi,2);{var je=X=>{var He=uX(),ct=b(He);{var Tt=z=>{var ae=aX();I(z,ae)},Wt=z=>{var ae=Gs(),Ee=wt(ae);oi(Ee,17,()=>c(We),ot=>ot.id,(ot,ht)=>{const Q=mt(()=>{var qt,Pi;return((qt=g.get(c(ht).nodeId))==null?void 0:qt.name)??((Pi=c(f).find(Mi=>Mi.nodeId===c(ht).nodeId))==null?void 0:Pi.name)??null}),ce=mt(()=>{var qt,Pi;return c(ht).endpointId!==void 0?((Pi=(qt=g.get(c(ht).nodeId))==null?void 0:qt.endpoints.find(Mi=>Mi.endpointId===c(ht).endpointId))==null?void 0:Pi.name)??null:null}),Le=mt(()=>c(ht).attrName??c(ht).clusterName);var tt=dX(),ei=b(tt),Dt=b(ei),Ke=v(ei,2);{var zt=qt=>{var Pi=lX(),Mi=v(wt(Pi),2),Ei=b(Mi),$i=v(Ei);{var Be=wi=>{var gi=vS(),le=v(wt(gi)),$e=b(le);H(()=>A($e,`(#${c(ht).nodeId??""})`)),I(wi,gi)};O($i,wi=>{c(Q)&&wi(Be)})}var nt=v(Mi,2);let vi;var ui=b(nt);H(()=>{A(Ei,c(Q)??`#${c(ht).nodeId}`),vi=Et(nt,1,"e-val svelte-1ua3isv",null,vi,{"e-online":c(ht).online,"e-offline":!c(ht).online}),A(ui,c(ht).online?"online":"offline")}),I(qt,Pi)},pi=qt=>{var Pi=cX(),Mi=v(wt(Pi),2),Ei=b(Mi),$i=v(Ei);{var Be=bt=>{var bi=vS(),W=v(wt(bi)),J=b(W);H(()=>A(J,`(#${c(ht).nodeId??""})`)),I(bt,bi)};O($i,bt=>{c(Q)&&bt(Be)})}var nt=v(Mi,2),vi=b(nt),ui=v(vi);{var wi=bt=>{var bi=vS(),W=v(wt(bi)),J=b(W);H(()=>A(J,`(ep ${c(ht).endpointId??""})`)),I(bt,bi)};O(ui,bt=>{c(ce)&&bt(wi)})}var gi=v(nt,2),le=b(gi),$e=v(gi,2),gt=b($e),Mt=v($e,2),ti=b(Mt);H(bt=>{A(Ei,c(Q)??`#${c(ht).nodeId}`),A(vi,c(ce)??`ep${c(ht).endpointId}`),A(le,c(ht).clusterName),A(gt,c(Le)),A(ti,bt)},[()=>p(c(ht).value)]),I(qt,Pi)};O(Ke,qt=>{c(ht).kind==="status"?qt(zt):qt(pi,-1)})}H(qt=>A(Dt,qt),[()=>D(c(ht).ts)]),I(ot,tt)}),I(z,ae)};O(ct,z=>{c(We).length===0?z(Tt):z(Wt,-1)})}I(X,He)};O(di,X=>{c(ne)&&X(je)})}H(()=>{zo(Rt,c(ne)?`height: ${c(Se)}px;`:""),A(Yi,c(ne)?"▾":"▸")}),$("click",hi,()=>m(Pe,!c(Pe))),$("mousedown",Ut,qe),$("click",Wi,()=>{m(ne,!c(ne))}),I(o,Ft),Hs()}eo(["click","mousedown"]);var gX=P("<button>›</button>"),pX=P('<span class="chev-ph svelte-1vejtrc"></span>'),_X=P('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),mX=P("<button>🔒</button>"),vX=P("<span> </span>"),bX=P('<span class="acl-dyn svelte-1vejtrc" title="per-user/client pattern — cannot evaluate statically">⚠%u/%c</span>'),yX=P('<span class="acl-members svelte-1vejtrc"> </span>'),wX=P('<span class="acl-group svelte-1vejtrc"> </span>'),SX=P('<span> <strong class="svelte-1vejtrc"> </strong> <!> <!> <!></span>'),CX=P('<div class="acl-sec svelte-1vejtrc"><span class="acl-sec-hdr svelte-1vejtrc"> </span> <!></div>'),xX=P('<div class="acl-panel svelte-1vejtrc"></div>'),kX=P('<div class="tc svelte-1vejtrc"></div>'),LX=P('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!> <!></div> <!> <!></div>'),IX=P('<button class="acl-refresh svelte-1vejtrc" title="Refresh ACL data">↺</button>'),EX=P('<button title="Show ACL coverage for topics"><svg width="11" height="11" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="7" width="10" height="8" rx="1.5"></rect><path d="M5 7V5a3 3 0 0 1 6 0v2" fill="none" stroke="currentColor" stroke-width="1.8"></path></svg> ACL<!></button> <!>',1),DX=P("<option></option>"),PX=P('<span class="pub-ok svelte-1vejtrc">✓</span>'),TX=P('<span class="pub-err svelte-1vejtrc"> </span>'),MX=P('<div class="info svelte-1vejtrc">Loading…</div>'),RX=P('<div class="info err svelte-1vejtrc"> </div>'),NX=P('<div class="info svelte-1vejtrc">No topics match.</div>'),AX=P('<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>'),OX=P('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),FX=P('<div class="info svelte-1vejtrc">No topics yet.</div>'),HX=P('<div class="tree-wrap svelte-1vejtrc"><!></div>'),WX=P('<span class="stream-badge"> </span>'),BX=P('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),zX=P('<span class="s-ret svelte-1vejtrc" title="retained snapshot">⊛</span>'),VX=P('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),jX=P('<div class="stream-body svelte-1vejtrc"><!></div>'),$X=P('<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),UX=P('<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>'),qX=P('<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),GX=P('<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 KX(o,e){Fs(e,!0);const t=(j,N=Oy)=>{const G=mt(()=>c(g).has(N().path)),te=mt(()=>c(a)>=0&&N().children.size>0),ue=mt(()=>c(a)>=0&&N().isLeaf&&!n.has(N().path));var Y=LX(),re=b(Y);let Te;var fe=b(re);{var he=_e=>{var Me=gX();let Ce;H(()=>{Ce=Et(Me,1,"chev svelte-1vejtrc",null,Ce,{open:c(G)}),vn(Me,"aria-label",c(G)?"Collapse":"Expand")}),$("click",Me,()=>p(N().path)),I(_e,Me)},Ze=_e=>{var Me=pX();I(_e,Me)};O(fe,_e=>{c(te)?_e(he):_e(Ze,-1)})}var U=v(fe,2),ie=b(U),ye=v(U,2);{var Ae=_e=>{var Me=_X(),Ce=wt(Me),me=b(Ce),Je=v(Ce,2),de=b(Je);H((De,Qe,st)=>{vn(Ce,"title",De),A(me,Qe),A(de,st)},[()=>{var De;return Li((De=Jt(N().path))==null?void 0:De.val)},()=>{var De;return Li((De=Jt(N().path))==null?void 0:De.val)},()=>{var De;return((De=Jt(N().path))==null?void 0:De.ts)!=null?Ci(Jt(N().path).ts):""}]),I(_e,Me)},ke=mt(()=>N().isLeaf&&i.has(N().path));O(ye,_e=>{c(ke)&&_e(Ae)})}var we=v(ye,2);{var ft=_e=>{const Me=mt(()=>!!c(ji)&&Ni(N().path));var Ce=mX();let me;H(()=>{me=Et(Ce,1,"acl-badge svelte-1vejtrc",null,me,{matched:c(Me)}),vn(Ce,"title",c(Me)?"Has explicit ACL — click to inspect":"No explicit ACL — uses defaults")}),$("click",Ce,Je=>{Je.stopPropagation(),m(Ki,c(Ki)===N().path?null:N().path,!0)}),I(_e,Ce)};O(we,_e=>{c(Oi)&&N().isLeaf&&_e(ft)})}var at=v(re,2);{var ze=_e=>{const Me=mt(()=>Ve(N().path,Ui)),Ce=mt(()=>Ve(N().path,Hi)),me=mt(()=>Ve(N().path,Bi));var Je=xX();oi(Je,21,()=>[{label:"Send",roles:c(Me),defType:"publishClientSend"},{label:"Subscribe",roles:c(Ce),defType:"subscribePattern"},{label:"Receive",roles:c(me),defType:"publishClientReceive"}],Vi,(de,De)=>{var Qe=CX(),st=b(Qe),Ge=b(st),Ht=v(st,2);{var Vt=Gt=>{var _i=vX();let Qi;var Ri=b(_i);H((Qt,un)=>{Qi=Et(_i,1,"acl-def svelte-1vejtrc",null,Qi,Qt),A(Ri,`${un??""} (default)`)},[()=>({allow:Ut(c(De).defType),deny:!Ut(c(De).defType)}),()=>Ut(c(De).defType)?"allow":"deny"]),I(Gt,_i)},Di=Gt=>{var _i=Gs(),Qi=wt(_i);oi(Qi,17,()=>c(De).roles,Vi,(Ri,Qt)=>{const un=mt(()=>Rt(c(Qt).rolename));var an=SX();let es;var Bs=b(an),fo=v(Bs),Zo=b(fo),ur=v(fo,2);{var Yn=Ds=>{var fs=bX();I(Ds,fs)};O(ur,Ds=>{c(Qt).dynamic&&Ds(Yn)})}var Yo=v(ur,2);{var hr=Ds=>{var fs=yX(),ns=b(fs);H(Ps=>A(ns,Ps),[()=>c(un).direct.join(", ")]),I(Ds,fs)};O(Yo,Ds=>{c(un).direct.length>0&&Ds(hr)})}var mn=v(Yo,2);oi(mn,17,()=>c(un).viaGroup,Vi,(Ds,fs)=>{var ns=wX(),Ps=b(ns);H(()=>A(Ps,c(fs).groupname)),I(Ds,ns)}),H(()=>{es=Et(an,1,"acl-role svelte-1vejtrc",null,es,{allow:c(Qt).allow,deny:!c(Qt).allow}),A(Bs,`${c(Qt).allow?"✓":"✗"} `),A(Zo,c(Qt).rolename)}),I(Ri,an)}),I(Gt,_i)};O(Ht,Gt=>{c(De).roles.length===0?Gt(Vt):Gt(Di,-1)})}H(()=>A(Ge,c(De).label)),I(de,Qe)}),I(_e,Je)};O(at,_e=>{c(Oi)&&N().isLeaf&&c(Ki)===N().path&&c(ji)&&_e(ze)})}var xt=v(at,2);{var Xe=_e=>{var Me=kX();oi(Me,21,()=>[...N().children.values()].sort((Ce,me)=>Ce.seg.localeCompare(me.seg)),Ce=>Ce.path,(Ce,me)=>{t(Ce,()=>c(me))}),I(_e,Me)};O(xt,_e=>{c(te)&&c(G)&&_e(Xe)})}H(()=>{Te=Et(re,1,"tr svelte-1vejtrc",null,Te,{stale:c(ue)}),A(ie,N().seg)}),$("click",re,()=>{m(ut,N().path+"/#")}),$("contextmenu",re,_e=>{_e.preventDefault(),m(lt,{x:_e.clientX,y:_e.clientY,topic:N().path},!0)}),I(j,Y)},i=new Map,n=new Set,s=new Set;let r=null,a=T(0);function d(){r===null&&(r=requestAnimationFrame(()=>{r=null;for(const j of s)f(j);s.clear(),VL(a)}))}const u=new Map;function f(j){const N=j.split("/");let G=u,te="";for(let ue=0;ue<N.length;ue++){const Y=N[ue];te=ue===0?Y:`${te}/${Y}`,G.has(Y)||G.set(Y,{seg:Y,path:te,children:new Map,isLeaf:!1});const re=G.get(Y);ue===N.length-1&&(re.isLeaf=!0),G=re.children}}let g=T(ki(new Set));function p(j){const N=new Set(c(g));N.has(j)?N.delete(j):N.add(j),m(g,N,!0)}let w=T("");const y=24,x=5;let k=T(0),D=T(300),M=mt(()=>{if(c(a),!c(w))return[];const j=c(w).toLowerCase().split(/\s+/).filter(Boolean),N=[];for(const[G,te]of i){const ue=G.toLowerCase();j.every(Y=>ue.includes(Y))&&N.push({topic:G,...te})}return N.sort((G,te)=>G.topic.localeCompare(te.topic))}),F=mt(()=>{const j=c(M).length,N=Math.max(0,Math.floor(c(k)/y)-x),G=Math.min(j,Math.ceil((c(k)+c(D))/y)+x);return{start:N,end:G,totalH:j*y,top:N*y}});const K=1e3,V=200,oe=20,ne=36;let Se=0,We=T(ki([])),qe=T(ki([])),Oe=T(!0),ut=T("#"),kt=T(200);Vn(()=>{const j=c(ut).trim(),N=Ol(()=>c(We)),G=!j||j==="#"?N.slice(0,V):N.filter(te=>Pe(j,te.topic)).slice(0,V);if(j&&j!=="#"){const te=new Set(G.map(Y=>Y.topic)),ue=[];for(const[Y,re]of i)te.has(Y)||Pe(j,Y)&&ue.push({id:-(ue.length+1),topic:Y,val:re.val,ts:re.ts,retained:!0});ue.sort((Y,re)=>Y.topic.localeCompare(re.topic)),m(qe,[...G,...ue],!0)}else m(qe,G,!0)});function Pe(j,N){if(j==="#")return!0;const G=j.split("/"),te=N.split("/");for(let ue=0;ue<G.length;ue++){if(G[ue]==="#")return!0;if(ue>=te.length||G[ue]!=="+"&&G[ue]!==te[ue])return!1}return G.length===te.length}function Lt(j){j.preventDefault();const N=j.clientY,G=c(kt);function te(Y){m(kt,Math.max(60,Math.min(800,G+N-Y.clientY)),!0)}function ue(){document.removeEventListener("mousemove",te),document.removeEventListener("mouseup",ue)}document.addEventListener("mousemove",te),document.addEventListener("mouseup",ue)}let pt=mt(()=>{const j=Math.max(1,Math.floor((c(kt)-ne)/oe)+1);return c(qe).slice(0,j)}),Ot=T(!0),Fe=T(null);async function Nt(){m(Ot,!0),m(Fe,null);try{const j=await GN();for(const N of j)i.set(N.topic,{val:N.val,ts:N.ts}),f(N.topic)}catch(j){m(Fe,j instanceof Error?j.message:String(j),!0)}finally{m(Ot,!1),VL(a)}}const et=Tr("mqtt",j=>{const{topic:N,val:G,ts:te}=j;i.set(N,{val:G,ts:te}),n.add(N),s.add(N),d();const ue={id:Se++,topic:N,val:G,ts:te};m(We,[ue,...c(We).slice(0,K-1)],!0);const Y=c(ut).trim();(!Y||Y==="#"||Pe(Y,N))&&m(qe,[ue,...c(qe).filter(re=>!(re.retained&&re.topic===N)).slice(0,V-1)],!0)});let lt=T(null),$t=T(null);async function xe(j,N){const G=[j];if(N){const te=j+"/";for(const ue of i.keys())ue.startsWith(te)&&G.push(ue)}for(const te of G)await jE(te,"",!0,0)}let rt=mt(()=>(c(a),[...i.keys()].sort())),dt=T(""),It=T(""),Si=T(!1),_t=T(0),Xt=T(!1),Ye=T(null),Ft=T(!1);async function ci(){if(c(dt)){m(Xt,!0),m(Ye,null),m(Ft,!1);try{await jE(c(dt),c(It),c(Si),c(_t)),m(Ft,!0),setTimeout(()=>{m(Ft,!1)},2e3)}catch(j){m(Ye,j instanceof Error?j.message:String(j),!0)}finally{m(Xt,!1)}}}function Li(j){return j==null?"":typeof j=="object"?JSON.stringify(j):String(j)}function Ci(j){return new Date(j).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ct(j){return new Date(j).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Jt(j){return c(a),i.get(j)}let hi=mt(()=>(c(a),[...u.values()].sort((j,N)=>j.seg.localeCompare(N.seg)))),Ii=mt(()=>(c(a),i.size));const Ui=new Set(["publishClientSend"]),Hi=new Set(["subscribePattern","subscribeLiteral"]),Bi=new Set(["publishClientReceive"]);let rn=T(!1),Oi=T(!1),xi=T(!1),ji=T(null),Ki=T(null);function zi(j,N,G){return N.includes("%u")||N.includes("%c")?"dynamic":j==="subscribeLiteral"||j==="unsubscribeLiteral"?N===G?"match":"no-match":Pe(N,G)?"match":"no-match"}function Ni(j){if(!c(ji))return!1;for(const N of c(ji).roles)if(N.acls){for(const G of N.acls)if(zi(G.acltype,G.topic,j)!=="no-match")return!0}return!1}function Ve(j,N){if(!c(ji))return[];const G=[];for(const te of c(ji).roles)if(te.acls)for(const ue of te.acls){if(!N.has(ue.acltype))continue;const Y=zi(ue.acltype,ue.topic,j);if(Y!=="no-match"){G.push({rolename:te.rolename,allow:ue.allow,dynamic:Y==="dynamic"});break}}return G}function Rt(j){if(!c(ji))return{direct:[],viaGroup:[]};const N=c(ji).users.filter(te=>{var ue;return(ue=te.roles)==null?void 0:ue.some(Y=>Y.rolename===j)}).map(te=>te.username),G=c(ji).groups.filter(te=>{var ue;return(ue=te.roles)==null?void 0:ue.some(Y=>Y.rolename===j)}).map(te=>({groupname:te.groupname,members:(te.clients??[]).map(ue=>ue.username)}));return{direct:N,viaGroup:G}}function Ut(j){if(!c(ji))return!1;const N=c(ji).defaults.find(G=>G.acltype===j);return(N==null?void 0:N.allow)??!1}async function fi(){m(xi,!0);try{const[j,N,G,te]=await Promise.all([QN(),JN(),eA(),tA()]);m(ji,{roles:j.roles,users:N.users,groups:G.groups,defaults:te.acls},!0)}catch{m(ji,null),m(Oi,!1)}finally{m(xi,!1)}}async function ni(){c(Oi)?(m(Oi,!1),m(Ki,null)):(m(Oi,!0),m(Ki,null),c(ji)||await fi())}Js(Nt),Js(async()=>{var j;try{const N=await Dk();m(rn,!!((j=N.dynsec)!=null&&j.dynsecReady),!0)}catch{m(rn,!1)}}),zy(()=>{et(),r!==null&&cancelAnimationFrame(r)});var Zi=GX(),Wi=b(Zi),Yi=v(b(Wi),2);{var di=j=>{var N=EX(),G=wt(N);let te;var ue=v(b(G),2);{var Y=fe=>{var he=Io("…");I(fe,he)};O(ue,fe=>{c(xi)&&fe(Y)})}var re=v(G,2);{var Te=fe=>{var he=IX();H(()=>he.disabled=c(xi)),$("click",he,fi),I(fe,he)};O(re,fe=>{c(Oi)&&fe(Te)})}H(()=>{te=Et(G,1,"acl-btn svelte-1vejtrc",null,te,{active:c(Oi)}),G.disabled=c(xi)}),$("click",G,ni),I(j,N)};O(Yi,j=>{c(rn)&&j(di)})}var je=v(Wi,2),X=b(je),He=b(X),ct=v(He,2);oi(ct,20,()=>c(rt),j=>j,(j,N)=>{var G=DX(),te={};H(()=>{te!==(te=N)&&(G.value=(G.__value=N)??"")}),I(j,G)});var Tt=v(ct,2),Wt=v(Tt,2),z=b(Wt),ae=v(Wt,2),Ee=b(ae);Ee.value=Ee.__value=0;var ot=v(Ee);ot.value=ot.__value=1;var ht=v(ot);ht.value=ht.__value=2;var Q=v(ae,2),ce=v(Q,2);{var Le=j=>{var N=PX();I(j,N)};O(ce,j=>{c(Ft)&&j(Le)})}var tt=v(ce,2);{var ei=j=>{var N=TX(),G=b(N);H(()=>A(G,c(Ye))),I(j,N)};O(tt,j=>{c(Ye)&&j(ei)})}var Dt=v(X,2),Ke=b(Dt),zt=v(Ke,2),pi=b(zt);{var qt=j=>{var N=Io();H(()=>A(N,`${c(M).length??""} /`)),I(j,N)};O(pi,j=>{c(w)&&j(qt)})}var Pi=v(pi),Mi=v(Dt,2);{var Ei=j=>{var N=MX();I(j,N)},$i=j=>{var N=RX(),G=b(N);H(()=>A(G,c(Fe))),I(j,N)},Be=j=>{var N=Gs(),G=wt(N);{var te=Y=>{var re=NX();I(Y,re)},ue=Y=>{var re=OX(),Te=b(re),fe=b(Te);oi(fe,21,()=>c(M).slice(c(F).start,c(F).end),he=>he.topic,(he,Ze)=>{var U=AX(),ie=b(U),ye=b(ie),Ae=v(ie,2),ke=b(Ae),we=v(Ae,2),ft=b(we);H((at,ze,xt)=>{A(ye,c(Ze).topic),vn(Ae,"title",at),A(ke,ze),A(ft,xt)},[()=>Li(c(Ze).val),()=>Li(c(Ze).val),()=>Ci(c(Ze).ts)]),I(he,U)}),H(()=>{zo(Te,`height: ${c(F).totalH??""}px; position: relative;`),zo(fe,`top: ${c(F).top??""}px;`)}),ds("scroll",re,he=>{m(k,he.currentTarget.scrollTop,!0)}),tW(re,"clientHeight",he=>m(D,he)),I(Y,re)};O(G,Y=>{c(M).length===0?Y(te):Y(ue,-1)})}I(j,N)},nt=j=>{var N=HX(),G=b(N);{var te=Y=>{var re=FX();I(Y,re)},ue=Y=>{var re=Gs(),Te=wt(re);oi(Te,17,()=>c(hi),fe=>fe.path,(fe,he)=>{t(fe,()=>c(he))}),I(Y,re)};O(G,Y=>{c(hi).length===0?Y(te):Y(ue,-1)})}I(j,N)};O(Mi,j=>{c(Ot)?j(Ei):c(Fe)?j($i,1):c(w)?j(Be,2):j(nt,-1)})}var vi=v(je,2),ui=b(vi),wi=v(ui,2),gi=b(wi),le=v(gi,2);{var $e=j=>{var N=WX(),G=b(N);H(()=>A(G,c(qe).length)),I(j,N)};O(le,j=>{!c(Oe)&&c(qe).length>0&&j($e)})}var gt=v(le,2),Mt=b(gt),ti=v(wi,2);{var bt=j=>{var N=jX(),G=b(N);{var te=Y=>{var re=BX();I(Y,re)},ue=Y=>{var re=Gs(),Te=wt(re);oi(Te,17,()=>c(pt),fe=>fe.id,(fe,he)=>{var Ze=VX();let U;var ie=b(Ze),ye=b(ie),Ae=v(ie,2);{var ke=xt=>{var Xe=zX();I(xt,Xe)};O(Ae,xt=>{c(he).retained&&xt(ke)})}var we=v(Ae,2),ft=b(we),at=v(we,2),ze=b(at);H((xt,Xe,_e)=>{U=Et(Ze,1,"sr svelte-1vejtrc",null,U,{retained:c(he).retained}),A(ye,xt),A(ft,c(he).topic),vn(at,"title",Xe),A(ze,_e)},[()=>Ct(c(he).ts),()=>Li(c(he).val),()=>Li(c(he).val)]),I(fe,Ze)}),I(Y,re)};O(G,Y=>{c(pt).length===0?Y(te):Y(ue,-1)})}I(j,N)};O(ti,j=>{c(Oe)&&j(bt)})}var bi=v(vi,2);{var W=j=>{var N=$X(),G=wt(N),te=v(G,2);let ue;var Y=b(te),re=v(Y,2);H(()=>ue=zo(te,"",ue,{left:`${c(lt).x??""}px`,top:`${c(lt).y??""}px`})),$("click",G,()=>m(lt,null)),$("contextmenu",G,Te=>{Te.preventDefault(),m(lt,null)}),$("click",Y,()=>{navigator.clipboard.writeText(c(lt).topic),m(lt,null)}),$("click",re,()=>{const Te=c(lt).topic,fe=Te+"/",he=[...i.keys()].some(Ze=>Ze.startsWith(fe));m($t,{topic:Te,hasChildren:he,recursive:!1},!0),m(lt,null)}),I(j,N)};O(bi,j=>{c(lt)&&j(W)})}var J=v(bi,2);{var se=j=>{var N=qX(),G=wt(N),te=v(G,2),ue=v(b(te),2),Y=b(ue),re=v(b(Y)),Te=b(re),fe=v(Y,2);{var he=ye=>{var Ae=UX(),ke=b(Ae);ks(ke,()=>c($t).recursive,we=>c($t).recursive=we),I(ye,Ae)};O(fe,ye=>{c($t).hasChildren&&ye(he)})}var Ze=v(ue,2),U=b(Ze),ie=v(U,2);H(()=>A(Te,c($t).topic)),$("click",G,()=>m($t,null)),$("click",U,()=>m($t,null)),$("click",ie,()=>{const{topic:ye,recursive:Ae}=c($t);m($t,null),xe(ye,Ae)}),I(j,N)};O(J,j=>{c($t)&&j(se)})}H(()=>{Q.disabled=c(Xt)||!c(dt),A(Pi,` ${c(Ii)??""}`),zo(vi,c(Oe)?`height: ${c(kt)}px;`:""),A(Mt,c(Oe)?"▾":"▸")}),Kt(He,()=>c(dt),j=>m(dt,j)),Kt(Tt,()=>c(It),j=>m(It,j)),ks(z,()=>c(Si),j=>m(Si,j)),As(ae,()=>c(_t),j=>m(_t,j)),$("click",Q,ci),Kt(Ke,()=>c(w),j=>m(w,j)),$("mousedown",ui,Lt),Kt(gi,()=>c(ut),j=>m(ut,j)),$("click",gt,()=>{m(Oe,!c(Oe))}),I(o,Zi),Hs()}eo(["click","contextmenu","mousedown"]);var ZX=P('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),YX=P('<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>'),XX=P('<div class="err svelte-twakcj"> </div>'),JX=P('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),QX=P('<p class="empty svelte-twakcj">No packages installed.</p>'),eJ=P('<p class="empty svelte-twakcj">No match.</p>'),tJ=P("<span> </span>"),iJ=XT('<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>'),nJ=XT('<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>'),sJ=P('<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>'),oJ=P('<span class="result-author svelte-twakcj"> </span>'),rJ=P('<span class="result-date svelte-twakcj"> </span>'),aJ=P('<span class="result-desc svelte-twakcj"> </span>'),lJ=P('<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>'),cJ=P('<div class="results-list svelte-twakcj"></div>'),dJ=P('<pre class="npm-output svelte-twakcj"> </pre>'),uJ=P(`<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>`),hJ=P('<!> <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 fJ(o,e){Fs(e,!0);let t=T(ki([])),i=T(""),n=T(ki({})),s=T(ki([])),r=T(!1),a=T(""),d=T(ki([])),u=T(!1),f=T(!1),g=T(!1),p=T(""),w=T(""),y=ki({});const x=mt(()=>c(i).trim()?c(t).filter(Ve=>Ve.name.toLowerCase().includes(c(i).toLowerCase())):c(t)),k=mt(()=>Object.keys(c(n)).filter(Ve=>!c(s).includes(Ve)).length);Js(async()=>{await Promise.all([D(),M(),F()])});async function D(){try{m(t,await H7(),!0),m(p,"")}catch(Ve){m(p,Ve.message,!0)}}async function M(){try{m(n,await UN(),!0)}catch{}}async function F(){try{const Ve=await Pl();m(s,Array.isArray(Ve.pinnedPackages)?Ve.pinnedPackages:[],!0)}catch{}}async function K(Ve){const Rt=c(s).includes(Ve)?c(s).filter(Ut=>Ut!==Ve):[...c(s),Ve];m(s,Rt,!0);try{const Ut=await Pl();await Yp({...Ut,pinnedPackages:Rt})}catch{}}async function V(){m(r,!0);try{m(n,await j7(),!0)}catch{}finally{m(r,!1)}}async function oe(){const Ve=c(a).trim();if(!Ve){m(d,[],!0);return}m(g,!0),m(p,"");try{m(d,await W7(Ve),!0)}catch(Rt){m(p,Rt.message,!0)}finally{m(g,!1)}}function ne(Ve){if(!Ve)return"";try{return new Date(Ve).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function Se(Ve,Rt){y[Ve]=!0,m(p,""),m(w,"");try{const Ut=await B7(Ve,Rt);m(w,Ut.stdout||Ut.stderr||"Done.",!0),m(u,!0),await D()}catch(Ut){m(p,Ut.message,!0)}finally{y[Ve]=!1}}async function We(Ve){y[Ve]=!0,m(p,""),m(w,"");try{const Rt=await z7(Ve);m(w,Rt.stdout||Rt.stderr||"Done.",!0),m(u,!0);const Ut={...c(n)};delete Ut[Ve],m(n,Ut,!0),await D()}catch(Rt){m(p,Rt.message,!0)}finally{y[Ve]=!1}}async function qe(Ve){y[Ve]=!0,m(p,""),m(w,"");try{const Rt=await V7(Ve);m(w,Rt.stdout||Rt.stderr||"Done.",!0),m(u,!0);const Ut={...c(n)};delete Ut[Ve],m(n,Ut,!0),await D()}catch(Rt){m(p,Rt.message,!0)}finally{y[Ve]=!1}}let Oe;async function ut(){if(await Oe.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){m(f,!0);try{await VN()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var kt=hJ(),Pe=wt(kt);vs($c(Pe,{}),Ve=>Oe=Ve,()=>Oe);var Lt=v(Pe,2),pt=b(Lt);{var Ot=Ve=>{var Rt=ZX();I(Ve,Rt)},Fe=Ve=>{var Rt=YX(),Ut=v(b(Rt));$("click",Ut,ut),I(Ve,Rt)};O(pt,Ve=>{c(f)?Ve(Ot):c(u)&&Ve(Fe,1)})}var Nt=v(pt,2);{var et=Ve=>{var Rt=XX(),Ut=b(Rt);H(()=>A(Ut,c(p))),I(Ve,Rt)};O(Nt,Ve=>{c(p)&&Ve(et)})}var lt=v(Nt,2),$t=b(lt),xe=b($t),rt=v(b(xe),2),dt=b(rt),It=v(rt,2);{var Si=Ve=>{var Rt=JX(),Ut=b(Rt);H(()=>A(Ut,`${c(k)??""} outdated`)),I(Ve,Rt)};O(It,Ve=>{c(k)>0&&Ve(Si)})}var _t=v(It,2),Xt=b(_t);let Ye;var Ft=v(xe,2),ci=b(Ft),Li=v(Ft,2),Ci=b(Li);{var Ct=Ve=>{var Rt=QX();I(Ve,Rt)},Jt=Ve=>{var Rt=eJ();I(Ve,Rt)},hi=Ve=>{var Rt=Gs(),Ut=wt(Rt);oi(Ut,17,()=>c(x),fi=>fi.name,(fi,ni)=>{var Zi=sJ();let Wi;var Yi=b(Zi),di=b(Yi),je=b(di),X=v(di,2),He=b(X),ct=v(X,2);{var Tt=tt=>{var ei=tJ();let Dt;var Ke=b(ei);H(zt=>{Dt=Et(ei,1,"dep-latest svelte-twakcj",null,Dt,zt),A(Ke,`→ v${c(n)[c(ni).name].latest??""}`)},[()=>({"dep-latest--pinned":c(s).includes(c(ni).name)})]),I(tt,ei)};O(ct,tt=>{c(n)[c(ni).name]&&tt(Tt)})}var Wt=v(Yi,2),z=b(Wt);let ae;var Ee=v(z,2);let ot;var ht=b(Ee);{var Q=tt=>{var ei=iJ();I(tt,ei)},ce=tt=>{var ei=nJ();I(tt,ei)};O(ht,tt=>{y[c(ni).name]?tt(Q):tt(ce,-1)})}var Le=v(Ee,2);H((tt,ei,Dt)=>{Wi=Et(Zi,1,"dep-row svelte-twakcj",null,Wi,{"dep-busy":!!y[c(ni).name]}),vn(di,"href",c(ni).url??`https://www.npmjs.com/package/${c(ni).name}`),A(je,c(ni).name),A(He,c(ni).installedVersion??c(ni).version),ae=Et(z,1,"icon-btn svelte-twakcj",null,ae,tt),vn(z,"title",ei),ot=Et(Ee,1,"icon-btn svelte-twakcj",null,ot,Dt),Ee.disabled=!!y[c(ni).name],vn(Ee,"title",c(n)[c(ni).name]?`Update to v${c(n)[c(ni).name].latest}`:"Update to latest"),Le.disabled=!!y[c(ni).name]},[()=>({"icon-btn--pinned":c(s).includes(c(ni).name)}),()=>c(s).includes(c(ni).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!c(n)[c(ni).name]&&!c(s).includes(c(ni).name)})]),$("click",z,()=>K(c(ni).name)),$("click",Ee,()=>qe(c(ni).name)),$("click",Le,()=>We(c(ni).name)),I(fi,Zi)}),I(Ve,Rt)};O(Ci,Ve=>{c(t).length===0?Ve(Ct):c(x).length===0?Ve(Jt,1):Ve(hi,-1)})}var Ii=v($t,2),Ui=v(b(Ii),2),Hi=b(Ui),Bi=v(Hi,2),rn=b(Bi),Oi=v(Ui,2);{var xi=Ve=>{var Rt=cJ();oi(Rt,21,()=>c(d),Ut=>Ut.name,(Ut,fi)=>{var ni=lJ(),Zi=b(ni),Wi=b(Zi),Yi=b(Wi),di=v(Wi,2),je=b(di),X=v(di,2);{var He=ot=>{var ht=oJ(),Q=b(ht);H(()=>A(Q,c(fi).author)),I(ot,ht)};O(X,ot=>{c(fi).author&&ot(He)})}var ct=v(X,2);{var Tt=ot=>{var ht=rJ(),Q=b(ht);H(ce=>{vn(ht,"title",c(fi).date),A(Q,ce)},[()=>ne(c(fi).date)]),I(ot,ht)};O(ct,ot=>{c(fi).date&&ot(Tt)})}var Wt=v(ct,2);{var z=ot=>{var ht=aJ(),Q=b(ht);H(()=>A(Q,c(fi).description)),I(ot,ht)};O(Wt,ot=>{c(fi).description&&ot(z)})}var ae=v(Zi,2),Ee=b(ae);H(()=>{vn(Wi,"href",c(fi).url??`https://www.npmjs.com/package/${c(fi).name}`),A(Yi,c(fi).name),A(je,c(fi).version),ae.disabled=!!y[c(fi).name],A(Ee,y[c(fi).name]?"Installing…":"Install")}),$("click",ae,()=>Se(c(fi).name)),I(Ut,ni)}),I(Ve,Rt)};O(Oi,Ve=>{c(d).length>0&&Ve(xi)})}var ji=v(Oi,2);{var Ki=Ve=>{var Rt=dJ(),Ut=b(Rt);H(()=>A(Ut,c(w))),I(Ve,Rt)};O(ji,Ve=>{c(w)&&Ve(Ki)})}var zi=v(ji,2);{var Ni=Ve=>{var Rt=uJ();I(Ve,Rt)};O(zi,Ve=>{!c(d).length&&!c(w)&&Ve(Ni)})}H(()=>{A(dt,c(t).length),_t.disabled=c(r),Ye=Et(Xt,0,"svelte-twakcj",null,Ye,{spinning:c(r)}),Bi.disabled=c(g),A(rn,c(g)?"Searching…":"Search")}),$("click",_t,V),Kt(ci,()=>c(i),Ve=>m(i,Ve)),$("keydown",Hi,Ve=>Ve.key==="Enter"&&oe()),Kt(Hi,()=>c(a),Ve=>m(a,Ve)),$("click",Bi,oe),I(o,kt),Hs()}eo(["click","keydown"]);var gJ=P('<div class="plugin-warning svelte-3itf14">⚠ The dynamic-security plugin is not responding. Add <code class="svelte-3itf14">plugin …/mosquitto_dynamic_security.so</code> and <code class="svelte-3itf14">plugin_opt_config_file …/dynamic-security.json</code> to your mosquitto.conf and restart mosquitto. Operations below will time out until the plugin is active.</div>'),ya=P('<div class="err svelte-3itf14"> </div>'),pJ=P('<div class="empty svelte-3itf14">No users found.</div>'),_J=P('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),_h=P("<option> </option>"),xm=P('<div class="inline-err svelte-3itf14"> </div>'),CD=P('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— role —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),mJ=P('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove from group">×</button></span>'),vJ=P('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— group —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),bJ=P('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add to group">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Set password" class="svelte-3itf14">🔑</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),yJ=P('<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>'),wJ=P('<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>'),SJ=P('<div class="empty svelte-3itf14">No roles found.</div>'),CJ=P('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Edit ACLs" class="svelte-3itf14">Edit ACLs</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),xJ=P('<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>'),kJ=P('<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>'),LJ=P('<div class="empty svelte-3itf14">No groups found.</div>'),IJ=P('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove member">×</button></span>'),EJ=P('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— user —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),DJ=P('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),PJ=P('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add member">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),TJ=P('<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>'),MJ=P('<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>'),xD=P('<div class="empty svelte-3itf14">Loading…</div>'),RJ=P('<tr><td class="mono small svelte-3itf14"> </td><td class="acl-radio svelte-3itf14"><input type="radio" value="allow"/></td><td class="acl-radio svelte-3itf14"><input type="radio" value="deny"/></td></tr>'),NJ=P('<table class="acl-defaults-table svelte-3itf14"><thead><tr><th class="svelte-3itf14">Operation</th><th class="svelte-3itf14">Allow</th><th class="svelte-3itf14">Deny</th></tr></thead><tbody></tbody></table>'),AJ=P('<div class="anon-current svelte-3itf14">Current: <span class="mono svelte-3itf14"> </span></div>'),OJ=P('<div class="anon-current muted svelte-3itf14">No anonymous group configured.</div>'),FJ=P('<div class="anon-row svelte-3itf14"><select class="svelte-3itf14"><option>— none —</option><!></select> <button class="svelte-3itf14"> </button></div> <!>',1),HJ=P('<div class="panel svelte-3itf14"><div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Default ACL Access</h3> <p class="settings-hint svelte-3itf14">Broker-wide defaults applied when no role ACL matches. Role ACLs always take precedence over these defaults.</p> <!> <!></div> <div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Anonymous Group</h3> <p class="settings-hint svelte-3itf14">Clients connecting without credentials are treated as members of this group. Requires <code class="svelte-3itf14">allow_anonymous true</code> in mosquitto.conf.</p> <!> <!></div></div>'),WJ=P('<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>'),BJ=P('<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>'),zJ=P('<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>'),VJ=P('<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>'),jJ=P('<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>'),$J=P('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),UJ=P('<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>'),qJ=P('<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>'),GJ=P('<div class="users-page svelte-3itf14"><!> <div class="panel-tabs svelte-3itf14"><button>Users</button> <button>Roles</button> <button>Groups</button> <button>Settings</button> <button class="reload-btn svelte-3itf14" title="Refresh">↺</button></div> <!> <!> <!> <!></div> <!> <!> <!> <!> <!> <!>',1);function KJ(o,e){Fs(e,!0);let t=Su(e,"dynsecReady",3,!1),i,n=T(ki([])),s=T(ki([])),r=T(ki([])),a=T(""),d=T(""),u=T(""),f=T("users"),g=T(null),p=T(""),w=T(""),y=T(!1);const x=mt(()=>c(g)?c(g).kind==="user-roles"?c(s).map(le=>le.rolename).filter(le=>{var $e,gt;return!((gt=($e=c(n).find(Mt=>Mt.username===c(g).target))==null?void 0:$e.roles)!=null&>.some(Mt=>Mt.rolename===le))}):c(g).kind==="user-groups"?c(r).map(le=>le.groupname).filter(le=>{var $e,gt;return!((gt=($e=c(n).find(Mt=>Mt.username===c(g).target))==null?void 0:$e.groups)!=null&>.some(Mt=>Mt.groupname===le))}):c(g).kind==="group-members"?c(n).map(le=>le.username).filter(le=>{var $e,gt;return!((gt=($e=c(r).find(Mt=>Mt.groupname===c(g).target))==null?void 0:$e.clients)!=null&>.some(Mt=>Mt.username===le))}):c(s).map(le=>le.rolename).filter(le=>{var $e,gt;return!((gt=($e=c(r).find(Mt=>Mt.groupname===c(g).target))==null?void 0:$e.roles)!=null&>.some(Mt=>Mt.rolename===le))}):[]);function k(le,$e){m(g,{kind:le,target:$e},!0),m(p,""),m(w,"")}async function D(){if(!(!c(g)||!c(p))){m(y,!0),m(w,"");try{const{kind:le,target:$e}=c(g);le==="user-roles"?await aq($e,c(p)):le==="user-groups"?await $E(c(p),$e):le==="group-members"?await $E($e,c(p)):await pq($e,c(p)),m(g,null),m(p,""),await xi()}catch(le){m(w,le.message,!0)}finally{m(y,!1)}}}async function M(le,$e){try{await lq(le,$e),await xi()}catch(gt){m(a,gt.message,!0)}}async function F(le,$e){try{await UE($e,le),await xi()}catch(gt){m(a,gt.message,!0)}}async function K(le,$e){try{await UE(le,$e),await xi()}catch(gt){m(u,gt.message,!0)}}async function V(le,$e){try{await _q(le,$e),await xi()}catch(gt){m(u,gt.message,!0)}}let oe=T(!1),ne=T(""),Se=T(""),We=T(!1),qe=T(""),Oe=T(!1),ut=T(!1),kt=T(""),Pe=T(""),Lt=T(""),pt=T(!1),Ot=T(!1),Fe=T(""),Nt=T(""),et=T(!1),lt=T(null),$t=T(!1),xe=T("publishClientSend"),rt=T(""),dt=T(!0),It=T(""),Si=T(!1),_t=T(""),Xt=T(""),Ye=T(!1),Ft=T(ki([])),ci=T(""),Li=T(!1),Ci=T(null),Ct=T(""),Jt=T(""),hi=T(!1),Ii=T(!1);const Ui=[{acltype:"publishClientSend",label:"Publish (send)"},{acltype:"publishClientReceive",label:"Publish (receive)"},{acltype:"subscribe",label:"Subscribe"},{acltype:"unsubscribe",label:"Unsubscribe"}];async function Hi(){var le,$e;m(Ii,!1),m(ci,""),m(Jt,"");try{const[gt,Mt]=await Promise.allSettled([tA(),vq()]);if(gt.status==="fulfilled"){const ti=Object.fromEntries(gt.value.acls.map(bt=>[bt.acltype,bt.allow]));m(Ft,Ui.map(({acltype:bt})=>({acltype:bt,allow:ti[bt]??(bt==="publishClientReceive"||bt==="unsubscribe")})),!0)}else m(ci,((le=gt.reason)==null?void 0:le.message)??"Failed to load default ACLs",!0);Mt.status==="fulfilled"?(m(Ci,Mt.value.group,!0),m(Ct,Mt.value.group??"",!0)):m(Jt,(($e=Mt.reason)==null?void 0:$e.message)??"Failed to load anonymous group",!0)}finally{m(Ii,!0)}}async function Bi(le,$e){m(Ft,c(Ft).map(gt=>gt.acltype===le?{...gt,allow:$e}:gt),!0),m(Li,!0),m(ci,"");try{await mq(c(Ft))}catch(gt){m(ci,gt.message,!0)}finally{m(Li,!1)}}async function rn(){m(hi,!0),m(Jt,"");try{await bq(c(Ct)||null),m(Ci,c(Ct)||null,!0)}catch(le){m(Jt,le.message,!0)}finally{m(hi,!1)}}const Oi=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function xi(){var le,$e,gt;try{const[Mt,ti,bt]=await Promise.allSettled([JN(),QN(),eA()]);Mt.status==="fulfilled"?(m(n,Mt.value.users,!0),m(a,"")):m(a,((le=Mt.reason)==null?void 0:le.message)??"Failed to load users",!0),ti.status==="fulfilled"?(m(s,ti.value.roles,!0),m(d,"")):m(d,(($e=ti.reason)==null?void 0:$e.message)??"Failed to load roles",!0),bt.status==="fulfilled"?(m(r,bt.value.groups,!0),m(u,"")):m(u,((gt=bt.reason)==null?void 0:gt.message)??"Failed to load groups",!0)}catch{}}Js(()=>{xi()});async function ji(){m(qe,""),m(Oe,!0);try{await sq(c(ne),c(Se)),m(ne,""),m(Se,""),m(oe,!1),await xi()}catch(le){m(qe,le.message??"Failed to create user",!0)}finally{m(Oe,!1)}}async function Ki(le){if(await i.show(`Delete user “${le}”?`,{confirm:"Delete",danger:!0}))try{await oq(le),await xi()}catch($e){m(a,$e.message,!0)}}async function zi(le){m(kt,le,!0),m(Pe,""),m(Lt,""),m(ut,!0)}async function Ni(){m(Lt,""),m(pt,!0);try{await rq(c(kt),c(Pe)),m(ut,!1)}catch(le){m(Lt,le.message,!0)}finally{m(pt,!1)}}async function Ve(){m(Nt,""),m(et,!0);try{await cq(c(Fe)),m(Fe,""),m(Ot,!1),await xi()}catch(le){m(Nt,le.message??"Failed to create role",!0)}finally{m(et,!1)}}async function Rt(le){var $e;if(await i.show(`Delete role “${le}”?`,{confirm:"Delete",danger:!0}))try{await dq(le),(($e=c(lt))==null?void 0:$e.rolename)===le&&(m(lt,null),m($t,!1)),await xi()}catch(gt){m(d,gt.message,!0)}}function Ut(le){m(lt,le,!0),m($t,!0),m(xe,"publishClientSend"),m(rt,""),m(dt,!0),m(It,"")}async function fi(){if(c(lt)){m(It,"");try{await uq(c(lt).rolename,{acltype:c(xe),topic:c(rt),allow:c(dt)}),m(rt,""),await xi(),m(lt,c(s).find(le=>le.rolename===c(lt).rolename)??c(lt),!0)}catch(le){m(It,le.message,!0)}}}async function ni(le,$e,gt){try{await hq(le,$e,gt),await xi(),m(lt,c(s).find(Mt=>Mt.rolename===le)??c(lt),!0)}catch(Mt){m(It,Mt.message,!0)}}async function Zi(){m(Xt,""),m(Ye,!0);try{await fq(c(_t)),m(_t,""),m(Si,!1),await xi()}catch(le){m(Xt,le.message??"Failed to create group",!0)}finally{m(Ye,!1)}}async function Wi(le){if(await i.show(`Delete group “${le}”?`,{confirm:"Delete",danger:!0}))try{await gq(le),await xi()}catch($e){m(u,$e.message,!0)}}var Yi=GJ(),di=wt(Yi),je=b(di);{var X=le=>{var $e=gJ();I(le,$e)};O(je,le=>{t()||le(X)})}var He=v(je,2),ct=b(He);let Tt;var Wt=v(ct,2);let z;var ae=v(Wt,2);let Ee;var ot=v(ae,2);let ht;var Q=v(ot,2),ce=v(He,2);{var Le=le=>{var $e=wJ(),gt=b($e),Mt=v(b(gt),2),ti=v(gt,2);{var bt=se=>{var j=ya(),N=b(j);H(()=>A(N,c(a))),I(se,j)};O(ti,se=>{c(a)&&se(bt)})}var bi=v(ti,2);{var W=se=>{var j=pJ();I(se,j)},J=se=>{var j=yJ(),N=v(b(j));oi(N,21,()=>c(n),Vi,(G,te)=>{var ue=bJ(),Y=b(ue),re=b(Y),Te=v(Y),fe=b(Te),he=b(fe),Ze=b(he);oi(Ze,17,()=>c(te).roles??[],Vi,(me,Je)=>{var de=_J(),De=b(de),Qe=v(De);H(()=>A(De,c(Je).rolename)),$("click",Qe,()=>M(c(te).username,c(Je).rolename)),I(me,de)});var U=v(Ze,2),ie=v(he,2);{var ye=me=>{var Je=CD(),de=wt(Je),De=b(de),Qe=b(De);Qe.value=Qe.__value="";var st=v(Qe);oi(st,17,()=>c(x),Vi,(Gt,_i)=>{var Qi=_h(),Ri=b(Qi),Qt={};H(()=>{A(Ri,c(_i)),Qt!==(Qt=c(_i))&&(Qi.value=(Qi.__value=c(_i))??"")}),I(Gt,Qi)});var Ge=v(De,2),Ht=v(Ge,2),Vt=v(de,2);{var Di=Gt=>{var _i=xm(),Qi=b(_i);H(()=>A(Qi,c(w))),I(Gt,_i)};O(Vt,Gt=>{c(w)&&Gt(Di)})}H(()=>Ge.disabled=!c(p)||c(y)),As(De,()=>c(p),Gt=>m(p,Gt)),$("click",Ge,D),$("click",Ht,()=>m(g,null)),I(me,Je)};O(ie,me=>{var Je;((Je=c(g))==null?void 0:Je.kind)==="user-roles"&&c(g).target===c(te).username&&me(ye)})}var Ae=v(Te),ke=b(Ae),we=b(ke),ft=b(we);oi(ft,17,()=>c(te).groups??[],Vi,(me,Je)=>{var de=mJ(),De=b(de),Qe=v(De);H(()=>A(De,c(Je).groupname)),$("click",Qe,()=>F(c(te).username,c(Je).groupname)),I(me,de)});var at=v(ft,2),ze=v(we,2);{var xt=me=>{var Je=vJ(),de=wt(Je),De=b(de),Qe=b(De);Qe.value=Qe.__value="";var st=v(Qe);oi(st,17,()=>c(x),Vi,(Gt,_i)=>{var Qi=_h(),Ri=b(Qi),Qt={};H(()=>{A(Ri,c(_i)),Qt!==(Qt=c(_i))&&(Qi.value=(Qi.__value=c(_i))??"")}),I(Gt,Qi)});var Ge=v(De,2),Ht=v(Ge,2),Vt=v(de,2);{var Di=Gt=>{var _i=xm(),Qi=b(_i);H(()=>A(Qi,c(w))),I(Gt,_i)};O(Vt,Gt=>{c(w)&&Gt(Di)})}H(()=>Ge.disabled=!c(p)||c(y)),As(De,()=>c(p),Gt=>m(p,Gt)),$("click",Ge,D),$("click",Ht,()=>m(g,null)),I(me,Je)};O(ze,me=>{var Je;((Je=c(g))==null?void 0:Je.kind)==="user-groups"&&c(g).target===c(te).username&&me(xt)})}var Xe=v(Ae),_e=b(Xe),Me=b(_e),Ce=v(Me,2);H(()=>A(re,c(te).username)),$("click",U,()=>k("user-roles",c(te).username)),$("click",at,()=>k("user-groups",c(te).username)),$("click",Me,()=>zi(c(te).username)),$("click",Ce,()=>Ki(c(te).username)),I(G,ue)}),I(se,j)};O(bi,se=>{c(n).length===0?se(W):se(J,-1)})}$("click",Mt,()=>{m(oe,!0),m(qe,"")}),I(le,$e)};O(ce,le=>{c(f)==="users"&&le(Le)})}var tt=v(ce,2);{var ei=le=>{var $e=kJ(),gt=b($e),Mt=v(b(gt),2),ti=v(gt,2);{var bt=se=>{var j=ya(),N=b(j);H(()=>A(N,c(d))),I(se,j)};O(ti,se=>{c(d)&&se(bt)})}var bi=v(ti,2);{var W=se=>{var j=SJ();I(se,j)},J=se=>{var j=xJ(),N=v(b(j));oi(N,21,()=>c(s),Vi,(G,te)=>{var ue=CJ(),Y=b(ue),re=b(Y),Te=v(Y),fe=b(Te),he=v(Te),Ze=b(he),U=b(Ze),ie=v(U,2);H(()=>{var ye;A(re,c(te).rolename),A(fe,((ye=c(te).acls)==null?void 0:ye.length)??0)}),$("click",U,()=>Ut(c(te))),$("click",ie,()=>Rt(c(te).rolename)),I(G,ue)}),I(se,j)};O(bi,se=>{c(s).length===0?se(W):se(J,-1)})}$("click",Mt,()=>{m(Ot,!0),m(Nt,""),m(Fe,"")}),I(le,$e)};O(tt,le=>{c(f)==="roles"&&le(ei)})}var Dt=v(tt,2);{var Ke=le=>{var $e=MJ(),gt=b($e),Mt=v(b(gt),2),ti=v(gt,2);{var bt=se=>{var j=ya(),N=b(j);H(()=>A(N,c(u))),I(se,j)};O(ti,se=>{c(u)&&se(bt)})}var bi=v(ti,2);{var W=se=>{var j=LJ();I(se,j)},J=se=>{var j=TJ(),N=v(b(j));oi(N,21,()=>c(r),Vi,(G,te)=>{var ue=PJ(),Y=b(ue),re=b(Y),Te=v(Y),fe=b(Te),he=b(fe),Ze=b(he);oi(Ze,17,()=>c(te).clients??[],Vi,(Ce,me)=>{var Je=IJ(),de=b(Je),De=v(de);H(()=>A(de,c(me).username)),$("click",De,()=>K(c(te).groupname,c(me).username)),I(Ce,Je)});var U=v(Ze,2),ie=v(he,2);{var ye=Ce=>{var me=EJ(),Je=wt(me),de=b(Je),De=b(de);De.value=De.__value="";var Qe=v(De);oi(Qe,17,()=>c(x),Vi,(Di,Gt)=>{var _i=_h(),Qi=b(_i),Ri={};H(()=>{A(Qi,c(Gt)),Ri!==(Ri=c(Gt))&&(_i.value=(_i.__value=c(Gt))??"")}),I(Di,_i)});var st=v(de,2),Ge=v(st,2),Ht=v(Je,2);{var Vt=Di=>{var Gt=xm(),_i=b(Gt);H(()=>A(_i,c(w))),I(Di,Gt)};O(Ht,Di=>{c(w)&&Di(Vt)})}H(()=>st.disabled=!c(p)||c(y)),As(de,()=>c(p),Di=>m(p,Di)),$("click",st,D),$("click",Ge,()=>m(g,null)),I(Ce,me)};O(ie,Ce=>{var me;((me=c(g))==null?void 0:me.kind)==="group-members"&&c(g).target===c(te).groupname&&Ce(ye)})}var Ae=v(Te),ke=b(Ae),we=b(ke),ft=b(we);oi(ft,17,()=>c(te).roles??[],Vi,(Ce,me)=>{var Je=DJ(),de=b(Je),De=v(de);H(()=>A(de,c(me).rolename)),$("click",De,()=>V(c(te).groupname,c(me).rolename)),I(Ce,Je)});var at=v(ft,2),ze=v(we,2);{var xt=Ce=>{var me=CD(),Je=wt(me),de=b(Je),De=b(de);De.value=De.__value="";var Qe=v(De);oi(Qe,17,()=>c(x),Vi,(Di,Gt)=>{var _i=_h(),Qi=b(_i),Ri={};H(()=>{A(Qi,c(Gt)),Ri!==(Ri=c(Gt))&&(_i.value=(_i.__value=c(Gt))??"")}),I(Di,_i)});var st=v(de,2),Ge=v(st,2),Ht=v(Je,2);{var Vt=Di=>{var Gt=xm(),_i=b(Gt);H(()=>A(_i,c(w))),I(Di,Gt)};O(Ht,Di=>{c(w)&&Di(Vt)})}H(()=>st.disabled=!c(p)||c(y)),As(de,()=>c(p),Di=>m(p,Di)),$("click",st,D),$("click",Ge,()=>m(g,null)),I(Ce,me)};O(ze,Ce=>{var me;((me=c(g))==null?void 0:me.kind)==="group-roles"&&c(g).target===c(te).groupname&&Ce(xt)})}var Xe=v(Ae),_e=b(Xe),Me=b(_e);H(()=>A(re,c(te).groupname)),$("click",U,()=>k("group-members",c(te).groupname)),$("click",at,()=>k("group-roles",c(te).groupname)),$("click",Me,()=>Wi(c(te).groupname)),I(G,ue)}),I(se,j)};O(bi,se=>{c(r).length===0?se(W):se(J,-1)})}$("click",Mt,()=>{m(Si,!0),m(Xt,""),m(_t,"")}),I(le,$e)};O(Dt,le=>{c(f)==="groups"&&le(Ke)})}var zt=v(Dt,2);{var pi=le=>{var $e=HJ(),gt=b($e),Mt=v(b(gt),4);{var ti=ue=>{var Y=ya(),re=b(Y);H(()=>A(re,c(ci))),I(ue,Y)};O(Mt,ue=>{c(ci)&&ue(ti)})}var bt=v(Mt,2);{var bi=ue=>{var Y=xD();I(ue,Y)},W=ue=>{var Y=NJ(),re=v(b(Y));oi(re,21,()=>Ui,Vi,(Te,fe)=>{let he=()=>c(fe).acltype,Ze=()=>c(fe).label;const U=mt(()=>c(Ft).find(xt=>xt.acltype===he()));var ie=RJ();let ye;var Ae=b(ie),ke=b(Ae),we=v(Ae),ft=b(we),at=v(we),ze=b(at);H(()=>{var xt,Xe;ye=Et(ie,1,"svelte-3itf14",null,ye,{saving:c(Li)}),A(ke,Ze()),vn(ft,"name",he()),hd(ft,((xt=c(U))==null?void 0:xt.allow)===!0),vn(ze,"name",he()),hd(ze,((Xe=c(U))==null?void 0:Xe.allow)===!1)}),$("change",ft,()=>Bi(he(),!0)),$("change",ze,()=>Bi(he(),!1)),I(Te,ie)}),I(ue,Y)};O(bt,ue=>{c(Ii)?ue(W,-1):ue(bi)})}var J=v(gt,2),se=v(b(J),4);{var j=ue=>{var Y=ya(),re=b(Y);H(()=>A(re,c(Jt))),I(ue,Y)};O(se,ue=>{c(Jt)&&ue(j)})}var N=v(se,2);{var G=ue=>{var Y=xD();I(ue,Y)},te=ue=>{var Y=FJ(),re=wt(Y),Te=b(re),fe=b(Te);fe.value=fe.__value="";var he=v(fe);oi(he,17,()=>c(r),Vi,(ke,we)=>{var ft=_h(),at=b(ft),ze={};H(()=>{A(at,c(we).groupname),ze!==(ze=c(we).groupname)&&(ft.value=(ft.__value=c(we).groupname)??"")}),I(ke,ft)});var Ze=v(Te,2),U=b(Ze),ie=v(re,2);{var ye=ke=>{var we=AJ(),ft=v(b(we)),at=b(ft);H(()=>A(at,c(Ci))),I(ke,we)},Ae=ke=>{var we=OJ();I(ke,we)};O(ie,ke=>{c(Ci)?ke(ye):ke(Ae,-1)})}H(()=>{Ze.disabled=c(hi)||c(Ct)===(c(Ci)??""),A(U,c(hi)?"Saving…":"Save")}),As(Te,()=>c(Ct),ke=>m(Ct,ke)),$("click",Ze,rn),I(ue,Y)};O(N,ue=>{c(Ii)?ue(te,-1):ue(G)})}I(le,$e)};O(zt,le=>{c(f)==="settings"&&le(pi)})}var qt=v(di,2);{var Pi=le=>{var $e=WJ(),gt=b($e),Mt=v(b(gt),2),ti=v(b(Mt)),bt=v(Mt,2),bi=v(b(bt)),W=b(bi),J=v(W,2),se=b(J),j=v(bt,2);{var N=re=>{var Te=ya(),fe=b(Te);H(()=>A(fe,c(qe))),I(re,Te)};O(j,re=>{c(qe)&&re(N)})}var G=v(j,2),te=b(G),ue=v(te,2),Y=b(ue);H(()=>{vn(W,"type",c(We)?"text":"password"),A(se,c(We)?"Hide":"Show"),ue.disabled=c(Oe)||!c(ne)||!c(Se),A(Y,c(Oe)?"Creating…":"Create")}),Kt(ti,()=>c(ne),re=>m(ne,re)),Kt(W,()=>c(Se),re=>m(Se,re)),$("click",J,()=>m(We,!c(We))),$("click",te,()=>m(oe,!1)),$("click",ue,ji),I(le,$e)};O(qt,le=>{c(oe)&&le(Pi)})}var Mi=v(qt,2);{var Ei=le=>{var $e=BJ(),gt=b($e),Mt=b(gt),ti=v(b(Mt)),bt=b(ti),bi=v(Mt,2),W=v(b(bi)),J=v(bi,2);{var se=ue=>{var Y=ya(),re=b(Y);H(()=>A(re,c(Lt))),I(ue,Y)};O(J,ue=>{c(Lt)&&ue(se)})}var j=v(J,2),N=b(j),G=v(N,2),te=b(G);H(()=>{A(bt,c(kt)),G.disabled=c(pt)||!c(Pe),A(te,c(pt)?"Saving…":"Set password")}),Kt(W,()=>c(Pe),ue=>m(Pe,ue)),$("click",N,()=>m(ut,!1)),$("click",G,Ni),I(le,$e)};O(Mi,le=>{c(ut)&&le(Ei)})}var $i=v(Mi,2);{var Be=le=>{var $e=zJ(),gt=b($e),Mt=v(b(gt),2),ti=v(b(Mt)),bt=v(Mt,2);{var bi=N=>{var G=ya(),te=b(G);H(()=>A(te,c(Nt))),I(N,G)};O(bt,N=>{c(Nt)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2),j=b(se);H(()=>{se.disabled=c(et)||!c(Fe),A(j,c(et)?"Creating…":"Create")}),Kt(ti,()=>c(Fe),N=>m(Fe,N)),$("click",J,()=>m(Ot,!1)),$("click",se,Ve),I(le,$e)};O($i,le=>{c(Ot)&&le(Be)})}var nt=v($i,2);{var vi=le=>{var $e=UJ(),gt=b($e),Mt=b(gt),ti=v(b(Mt)),bt=b(ti),bi=v(Mt,2);{var W=he=>{var Ze=jJ(),U=v(b(Ze));oi(U,21,()=>c(lt).acls??[],Vi,(ie,ye)=>{var Ae=VJ(),ke=b(Ae),we=b(ke),ft=v(ke),at=b(ft),ze=v(ft),xt=b(ze),Xe=v(ze),_e=b(Xe);H(()=>{A(we,c(ye).acltype),A(at,c(ye).topic),A(xt,c(ye).allow?"✓":"✗")}),$("click",_e,()=>ni(c(lt).rolename,c(ye).acltype,c(ye).topic)),I(ie,Ae)}),I(he,Ze)},J=he=>{var Ze=$J();I(he,Ze)};O(bi,he=>{var Ze;(((Ze=c(lt).acls)==null?void 0:Ze.length)??0)>0?he(W):he(J,-1)})}var se=v(bi,2),j=b(se);oi(j,21,()=>Oi,Vi,(he,Ze)=>{var U=_h(),ie=b(U),ye={};H(()=>{A(ie,c(Ze)),ye!==(ye=c(Ze))&&(U.value=(U.__value=c(Ze))??"")}),I(he,U)});var N=v(j,2),G=v(N,2),te=b(G),ue=v(G,2),Y=v(se,2);{var re=he=>{var Ze=ya(),U=b(Ze);H(()=>A(U,c(It))),I(he,Ze)};O(Y,he=>{c(It)&&he(re)})}var Te=v(Y,2),fe=b(Te);H(()=>{A(bt,c(lt).rolename),ue.disabled=!c(rt)}),As(j,()=>c(xe),he=>m(xe,he)),Kt(N,()=>c(rt),he=>m(rt,he)),ks(te,()=>c(dt),he=>m(dt,he)),$("click",ue,fi),$("click",fe,()=>m($t,!1)),I(le,$e)};O(nt,le=>{c($t)&&c(lt)&&le(vi)})}var ui=v(nt,2);{var wi=le=>{var $e=qJ(),gt=b($e),Mt=v(b(gt),2),ti=v(b(Mt)),bt=v(Mt,2);{var bi=N=>{var G=ya(),te=b(G);H(()=>A(te,c(Xt))),I(N,G)};O(bt,N=>{c(Xt)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2),j=b(se);H(()=>{se.disabled=c(Ye)||!c(_t),A(j,c(Ye)?"Creating…":"Create")}),Kt(ti,()=>c(_t),N=>m(_t,N)),$("click",J,()=>m(Si,!1)),$("click",se,Zi),I(le,$e)};O(ui,le=>{c(Si)&&le(wi)})}var gi=v(ui,2);vs($c(gi,{}),le=>i=le,()=>i),H(()=>{Tt=Et(ct,1,"svelte-3itf14",null,Tt,{active:c(f)==="users"}),z=Et(Wt,1,"svelte-3itf14",null,z,{active:c(f)==="roles"}),Ee=Et(ae,1,"svelte-3itf14",null,Ee,{active:c(f)==="groups"}),ht=Et(ot,1,"svelte-3itf14",null,ht,{active:c(f)==="settings"})}),$("click",ct,()=>m(f,"users")),$("click",Wt,()=>m(f,"roles")),$("click",ae,()=>m(f,"groups")),$("click",ot,()=>{m(f,"settings"),c(Ii)||Hi()}),$("click",Q,xi),I(o,Yi),Hs()}eo(["click","change"]);var kD=P('<div class="err svelte-9i68x"> </div>'),ZJ=P('<div class="ok svelte-9i68x">Saved.</div>'),YJ=P('<div class="reload-msg svelte-9i68x"> </div>'),XJ=P('<div class="loading svelte-9i68x">Loading…</div>'),JJ=P('<div class="anon-row svelte-9i68x"><span class="field-label svelte-9i68x"><code class="svelte-9i68x">allow_anonymous</code></span> <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated clients</option><option>false — require authentication</option></select></div>'),QJ=P('<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>'),eQ=P('<div class="per-listener-anon svelte-9i68x"><span class="field-label svelte-9i68x"><code class="svelte-9i68x">allow_anonymous</code></span> <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated</option><option>false — require auth</option></select></div>'),tQ=P('<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>'),iQ=P('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),nQ=P('<div class="global-settings svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox"/> <span><code>per_listener_settings</code> — independent auth per listener</span></label> <!></div> <div class="cards svelte-9i68x"><!> <!></div>',1),sQ=P('<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 oQ(o,e){Fs(e,!0);let t=T(null),i=T(""),n=T(!1),s=T(""),r=T(!1),a=T(!1),d=T(""),u=T(ki([])),f=T(null),g=T(!1),p=T("");Js(()=>{w()});async function w(){try{m(t,await X7(),!0),m(u,JSON.parse(JSON.stringify(c(t).listeners)),!0),m(f,c(t).checksum,!0);const xe=c(t).managed.allow_anonymous;m(p,xe==="true"||xe==="false"?xe:"",!0),m(g,c(t).managed.per_listener_settings==="true"),m(i,"")}catch(xe){m(i,xe.message??"Failed to load broker config",!0)}}function y(){m(u,[...c(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0)}function x(xe){m(u,c(u).filter((rt,dt)=>dt!==xe),!0)}async function k(){if(c(t)){m(n,!0),m(s,""),m(r,!1);try{const xe={...c(t).managed};c(g)?(xe.per_listener_settings="true",delete xe.allow_anonymous):(delete xe.per_listener_settings,c(p)?xe.allow_anonymous=c(p):delete xe.allow_anonymous),await J7({listeners:c(u),managed:xe,passthrough:c(t).passthrough,checksum:c(f)}),m(r,!0),setTimeout(()=>m(r,!1),3e3),await w()}catch(xe){m(s,xe.message??"Save failed",!0)}finally{m(n,!1)}}}async function D(){m(a,!0),m(d,"");try{const xe=await Q7();m(d,xe.stderr||xe.stdout||"Reloaded",!0)}catch(xe){m(d,"Error: "+(xe.message??"reload failed"))}finally{m(a,!1)}}function M(xe){var rt,dt,It,Si;return!!((rt=xe.tls)!=null&&rt.certfile||(dt=xe.tls)!=null&&dt.keyfile||(It=xe.tls)!=null&&It.capath||(Si=xe.tls)!=null&&Si.cafile)}function F(xe,rt){rt||(xe.tls={}),m(u,[...c(u)],!0)}var K=sQ(),V=b(K),oe=v(b(V),2),ne=b(oe),Se=v(ne,2),We=b(Se),qe=v(Se,2),Oe=b(qe),ut=v(V,2);{var kt=xe=>{var rt=kD(),dt=b(rt);H(()=>A(dt,c(i))),I(xe,rt)};O(ut,xe=>{c(i)&&xe(kt)})}var Pe=v(ut,2);{var Lt=xe=>{var rt=kD(),dt=b(rt);H(()=>A(dt,c(s))),I(xe,rt)};O(Pe,xe=>{c(s)&&xe(Lt)})}var pt=v(Pe,2);{var Ot=xe=>{var rt=ZJ();I(xe,rt)};O(pt,xe=>{c(r)&&xe(Ot)})}var Fe=v(pt,2);{var Nt=xe=>{var rt=YJ(),dt=b(rt);H(()=>A(dt,c(d))),I(xe,rt)};O(Fe,xe=>{c(d)&&xe(Nt)})}var et=v(Fe,2);{var lt=xe=>{var rt=XJ();I(xe,rt)},$t=xe=>{var rt=nQ(),dt=wt(rt),It=b(dt),Si=b(It),_t=v(It,2);{var Xt=Ci=>{var Ct=JJ(),Jt=v(b(Ct),2),hi=b(Jt);hi.value=hi.__value="";var Ii=v(hi);Ii.value=Ii.__value="true";var Ui=v(Ii);Ui.value=Ui.__value="false",As(Jt,()=>c(p),Hi=>m(p,Hi)),I(Ci,Ct)};O(_t,Ci=>{c(g)||Ci(Xt)})}var Ye=v(dt,2),Ft=b(Ye);oi(Ft,17,()=>c(u),Vi,(Ci,Ct,Jt)=>{var hi=tQ(),Ii=b(hi),Ui=b(Ii),Hi=b(Ui),Bi=v(Ui,2),rn=v(Ii,2),Oi=b(rn),xi=v(b(Oi)),ji=v(Oi,2),Ki=v(b(ji)),zi=b(Ki);zi.value=zi.__value="mqtt";var Ni=v(zi);Ni.value=Ni.__value="websockets";var Ve=v(ji,2),Rt=v(b(Ve)),Ut=v(rn,2),fi=b(Ut),ni=b(fi),Zi=v(Ut,2);{var Wi=X=>{var He=QJ(),ct=b(He),Tt=b(ct),Wt=v(b(Tt)),z=v(Tt,2),ae=v(b(z)),Ee=v(ct,2),ot=b(Ee),ht=v(b(ot)),Q=v(ot,2),ce=v(b(Q)),Le=v(Ee,2),tt=b(Le),ei=v(b(tt)),Dt=v(tt,2),Ke=v(b(Dt)),zt=b(Ke);zt.value=zt.__value="";var pi=v(zt);pi.value=pi.__value="tlsv1.3";var qt=v(pi);qt.value=qt.__value="tlsv1.2";var Pi=v(Le,2),Mi=b(Pi),Ei=b(Mi),$i=v(Mi,2),Be=b($i);Kt(Wt,()=>c(Ct).tls.certfile,nt=>c(Ct).tls.certfile=nt),Kt(ae,()=>c(Ct).tls.keyfile,nt=>c(Ct).tls.keyfile=nt),Kt(ht,()=>c(Ct).tls.cafile,nt=>c(Ct).tls.cafile=nt),Kt(ce,()=>c(Ct).tls.capath,nt=>c(Ct).tls.capath=nt),Kt(ei,()=>c(Ct).tls.crlfile,nt=>c(Ct).tls.crlfile=nt),As(Ke,()=>c(Ct).tls.tls_version,nt=>c(Ct).tls.tls_version=nt),ks(Ei,()=>c(Ct).tls.require_certificate,nt=>c(Ct).tls.require_certificate=nt),ks(Be,()=>c(Ct).tls.use_identity_as_username,nt=>c(Ct).tls.use_identity_as_username=nt),I(X,He)},Yi=mt(()=>M(c(Ct)));O(Zi,X=>{c(Yi)&&X(Wi)})}var di=v(Zi,2);{var je=X=>{var He=eQ(),ct=v(b(He),2),Tt=b(ct);Tt.value=Tt.__value="";var Wt=v(Tt);Wt.value=Wt.__value="true";var z=v(Wt);z.value=z.__value="false";var ae;QT(ct),H(()=>{ae!==(ae=c(Ct).allow_anonymous===void 0?"":c(Ct).allow_anonymous?"true":"false")&&(ct.value=ct.__value=c(Ct).allow_anonymous===void 0?"":c(Ct).allow_anonymous?"true":"false",A0(ct,c(Ct).allow_anonymous===void 0?"":c(Ct).allow_anonymous?"true":"false"))}),$("change",ct,Ee=>{const ot=Ee.target.value;c(Ct).allow_anonymous=ot===""?void 0:ot==="true",m(u,[...c(u)],!0)}),I(X,He)};O(di,X=>{c(g)&&X(je)})}H(X=>{A(Hi,`Port ${c(Ct).port??""}`),hd(ni,X)},[()=>M(c(Ct))]),$("click",Bi,()=>x(Jt)),Kt(xi,()=>c(Ct).port,X=>c(Ct).port=X),As(Ki,()=>c(Ct).protocol,X=>c(Ct).protocol=X),Kt(Rt,()=>c(Ct).bindAddress,X=>c(Ct).bindAddress=X),$("change",ni,X=>F(c(Ct),X.target.checked)),I(Ci,hi)});var ci=v(Ft,2);{var Li=Ci=>{var Ct=iQ();I(Ci,Ct)};O(ci,Ci=>{c(u).length===0&&Ci(Li)})}ks(Si,()=>c(g),Ci=>m(g,Ci)),I(xe,rt)};O(et,xe=>{c(t)===null&&!c(i)?xe(lt):xe($t,-1)})}H(()=>{Se.disabled=c(n),A(We,c(n)?"Saving…":"Save"),qe.disabled=c(a),A(Oe,c(a)?"Reloading…":"Apply & Reload")}),$("click",ne,y),$("click",Se,k),$("click",qe,D),I(o,K),Hs()}eo(["click","change"]);var tl=P('<div class="err svelte-9auejo"> </div>'),rQ=P('<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>'),aQ=P('<div class="empty svelte-9auejo">No managed server certificate. Use one of the options above, or configure <code>certfile</code>/<code>keyfile</code> manually in the Listeners tab.</div>'),lQ=P('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),cQ=P('<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>'),dQ=P('<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>'),uQ=P('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Certificate installed.</p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd><dt class="svelte-9auejo">Expires</dt><dd class="svelte-9auejo"> </dd></dl></div>'),LD=P('<button class="btn-primary svelte-9auejo"> </button>'),hQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate self-signed server certificate</h3> <label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Validity (days)<input type="number" min="1" max="3650" class="svelte-9auejo"/></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div></div></div>'),fQ=P('<label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <p class="hint svelte-9auejo">A private key and CSR are generated on the server. Copy the CSR, have it signed by your CA, then paste the signed cert below.</p> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),gQ=P('<div class="ok svelte-9auejo">✓ Certificate installed.</div>'),pQ=P('<p class="hint svelte-9auejo">Key stored on server. Copy the CSR, get it signed, then paste the signed certificate to complete installation.</p> <label class="svelte-9auejo">Certificate Signing Request<textarea readonly="" rows="8" class="svelte-9auejo"></textarea></label> <div class="csr-actions svelte-9auejo"><button class="svelte-9auejo">Copy CSR</button> <a class="btn-download svelte-9auejo" download="server.csr">Download .csr</a></div> <hr class="svelte-9auejo"/> <label class="svelte-9auejo">Upload signed certificate (PEM)<textarea rows="6" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div>',1),_Q=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Generate key + CSR for server certificate</h3> <!></div></div>'),mQ=P('<label class="svelte-9auejo">Certificate (PEM)<textarea rows="5" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <label class="svelte-9auejo">Private key (PEM — leave blank if key is already on disk from a prior CSR)<textarea rows="4" placeholder="-----BEGIN PRIVATE KEY----- … -----END PRIVATE KEY-----" class="svelte-9auejo"></textarea></label>',1),vQ=P('<span class="file-name mono small svelte-9auejo"> </span>'),bQ=P('<label class="svelte-9auejo">PKCS#12 file <div class="file-row svelte-9auejo"><input type="file" accept=".p12,.pfx" class="svelte-9auejo"/> <!></div></label> <label class="svelte-9auejo">Passphrase <div class="pw-row svelte-9auejo"><input autocomplete="off" class="svelte-9auejo"/> <button class="toggle-pw svelte-9auejo"> </button></div></label>',1),yQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Import server certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>PEM files</button> <button>PKCS#12 (.p12 / .pfx)</button></div> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),bS=P("<option></option>"),wQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Use existing certificate files</h3> <p class="hint svelte-9auejo">Enter absolute paths on the broker host. Tab-completion is available for paths starting with /.</p> <label class="svelte-9auejo">Certificate file path <input list="set-cert-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/fullchain.pem" class="svelte-9auejo"/> <datalist id="set-cert-path-list"></datalist></label> <label class="svelte-9auejo">Private key file path <input list="set-key-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/privkey.pem" class="svelte-9auejo"/> <datalist id="set-key-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),SQ=P('<label class="svelte-9auejo">CA certificate (PEM)<textarea rows="8" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),CQ=P('<p class="hint svelte-9auejo">Enter the absolute path to the CA certificate file on the broker host.</p> <label class="svelte-9auejo">CA certificate path <input list="trusted-path-list" placeholder="/etc/ssl/certs/my-ca.pem" class="svelte-9auejo"/> <datalist id="trusted-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),xQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Add trusted CA certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>Paste PEM</button> <button>From path</button></div> <!></div></div>'),kQ=P('<div class="certs-page svelte-9auejo"><div class="page-toolbar svelte-9auejo"><button class="reload-btn svelte-9auejo" title="Refresh">↺</button></div> <!> <!> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Server Certificate</h3> <button class="svelte-9auejo">Self-signed</button> <button class="svelte-9auejo">Generate CSR</button> <button class="svelte-9auejo">Import cert</button> <button class="svelte-9auejo">Use path</button></div> <!></div> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Trusted CA Certificates</h3> <button class="svelte-9auejo">+ Add CA cert</button></div> <!></div></div> <!> <!> <!> <!> <!>',1);function LQ(o,e){Fs(e,!0);let t=T(null),i=T(ki([])),n=T(""),s=T(""),r=T(!1),a=T(""),d=T(""),u=T(365),f=T(!1),g=T(""),p=T(null),w=T(!1),y=T(""),x=T(""),k=T(!1),D=T(""),M=T(""),F=T(""),K=T(!1),V=T(""),oe=T(!1),ne=T(!1),Se=T("pem"),We=T(""),qe=T(""),Oe=T(""),ut=T(""),kt=T(""),Pe=T(!1),Lt=T(!1),pt=T(""),Ot=T(!1),Fe=T(""),Nt=T(""),et=T(!1),lt=T(""),$t=T(ki([])),xe=T(ki([])),rt=T(!1),dt=T("pem"),It=T(""),Si=T(!1),_t=T(""),Xt=T(""),Ye=T(ki([])),Ft=T(!1),ci=T("");async function Li(){try{const[Be,nt]=await Promise.allSettled([yq(),Cq()]);Be.status==="fulfilled"&&m(t,Be.value.server,!0),nt.status==="fulfilled"&&m(i,nt.value.certs,!0),m(n,"")}catch(Be){m(n,Be.message,!0)}}Js(()=>{Li()});async function Ci(){m(g,""),m(f,!0),m(p,null);try{const Be=c(d).split(",").map(vi=>vi.trim()).filter(Boolean),nt=await wq({cn:c(a),san:Be,days:c(u)});m(p,{fingerprint:nt.fingerprint,expires:nt.expires},!0),await Li()}catch(Be){m(g,Be.message,!0)}finally{m(f,!1)}}async function Ct(){m(D,""),m(k,!0),m(M,"");try{const Be=c(x).split(",").map(vi=>vi.trim()).filter(Boolean),nt=await Sq({cn:c(y),san:Be});m(M,nt.csrPem,!0)}catch(Be){m(D,Be.message,!0)}finally{m(k,!1)}}async function Jt(){m(V,""),m(K,!0),m(oe,!1);try{if(!c(F).trim())throw new Error("Paste the signed certificate PEM");await pS({cert:c(F)}),m(oe,!0),await Li()}catch(Be){m(V,Be.message,!0)}finally{m(K,!1)}}function hi(){navigator.clipboard.writeText(c(M)).catch(()=>{})}function Ii(Be){var ui;const nt=(ui=Be.target.files)==null?void 0:ui[0];if(!nt)return;m(ut,nt.name,!0);const vi=new FileReader;vi.onload=()=>{const wi=vi.result;m(Oe,btoa(String.fromCharCode(...new Uint8Array(wi))),!0)},vi.readAsArrayBuffer(nt)}async function Ui(){m(pt,""),m(Lt,!0);try{if(c(Se)==="p12"){if(!c(Oe))throw new Error("Select a .p12 / .pfx file");await pS({p12base64:c(Oe),passphrase:c(kt)})}else{if(!c(We).trim())throw new Error("Certificate PEM is required");await pS({cert:c(We),key:c(qe)||void 0})}m(ne,!1),await Li()}catch(Be){m(pt,Be.message,!0)}finally{m(Lt,!1)}}function Hi(Be){let nt;return vi=>{const ui=vi.target.value;clearTimeout(nt),nt=setTimeout(async()=>{if(!ui.startsWith("/")||ui.length<2){Be([]);return}try{Be((await Lq(ui)).suggestions)}catch{Be([])}},280)}}const Bi=Hi(Be=>{m($t,Be,!0)}),rn=Hi(Be=>{m(xe,Be,!0)}),Oi=Hi(Be=>{m(Ye,Be,!0)});async function xi(){m(lt,""),m(et,!0);try{await Iq({certPath:c(Fe),keyPath:c(Nt)}),m(Ot,!1),await Li()}catch(Be){m(lt,Be.message,!0)}finally{m(et,!1)}}async function ji(){m(_t,""),m(Si,!0);try{await xq(c(It)),m(It,""),m(rt,!1),await Li()}catch(Be){m(_t,Be.message,!0)}finally{m(Si,!1)}}async function Ki(){m(ci,""),m(Ft,!0);try{await Eq(c(Xt)),m(Xt,""),m(rt,!1),await Li()}catch(Be){m(ci,Be.message,!0)}finally{m(Ft,!1)}}async function zi(Be){if(confirm("Remove this trusted CA cert?"))try{await kq(Be),await Li()}catch(nt){m(s,nt.message,!0)}}function Ni(Be){const nt=new Date(Be).getTime()-Date.now();return nt<0?"expired":nt<30*864e5?"expiring":""}function Ve(Be){return new Date(Be).toLocaleDateString()}var Rt=kQ(),Ut=wt(Rt),fi=b(Ut),ni=b(fi),Zi=v(fi,2);{var Wi=Be=>{var nt=tl(),vi=b(nt);H(()=>A(vi,c(n))),I(Be,nt)};O(Zi,Be=>{c(n)&&Be(Wi)})}var Yi=v(Zi,2);{var di=Be=>{var nt=tl(),vi=b(nt);H(()=>A(vi,c(s))),I(Be,nt)};O(Yi,Be=>{c(s)&&Be(di)})}var je=v(Yi,2),X=b(je),He=v(b(X),2),ct=v(He,2),Tt=v(ct,2),Wt=v(Tt,2),z=v(X,2);{var ae=Be=>{var nt=rQ(),vi=b(nt),ui=v(b(vi)),wi=b(ui),gi=v(ui,3),le=b(gi),$e=v(gi,3),gt=b($e);H((Mt,ti)=>{A(wi,c(t).cn),A(le,c(t).fingerprint),Et($e,1,Mt,"svelte-9auejo"),A(gt,ti)},[()=>Gg(Ni(c(t).expires)),()=>Ve(c(t).expires)]),I(Be,nt)},Ee=Be=>{var nt=aQ();I(Be,nt)};O(z,Be=>{c(t)?Be(ae):Be(Ee,-1)})}var ot=v(je,2),ht=b(ot),Q=v(b(ht),2),ce=v(ht,2);{var Le=Be=>{var nt=lQ();I(Be,nt)},tt=Be=>{var nt=dQ(),vi=v(b(nt));oi(vi,21,()=>c(i),Vi,(ui,wi)=>{var gi=cQ(),le=b(gi),$e=b(le),gt=v(le),Mt=b(gt),ti=v(gt),bt=b(ti),bi=v(ti),W=b(bi);H((J,se,j)=>{A($e,c(wi).cn),A(Mt,`${J??""}…`),Et(ti,1,se,"svelte-9auejo"),A(bt,j)},[()=>c(wi).fingerprint.slice(0,29),()=>Gg(Ni(c(wi).expires)),()=>Ve(c(wi).expires)]),$("click",W,()=>zi(c(wi).fingerprint)),I(ui,gi)}),I(Be,nt)};O(ce,Be=>{c(i).length===0?Be(Le):Be(tt,-1)})}var ei=v(Ut,2);{var Dt=Be=>{var nt=hQ(),vi=b(nt),ui=v(b(vi),2),wi=v(b(ui)),gi=v(ui,2),le=v(b(gi)),$e=v(gi,2),gt=v(b($e)),Mt=v($e,2);{var ti=N=>{var G=tl(),te=b(G);H(()=>A(te,c(g))),I(N,G)};O(Mt,N=>{c(g)&&N(ti)})}var bt=v(Mt,2);{var bi=N=>{var G=uQ(),te=v(b(G),2),ue=v(b(te)),Y=b(ue),re=v(ue,2),Te=b(re);H(fe=>{A(Y,c(p).fingerprint),A(Te,fe)},[()=>Ve(c(p).expires)]),I(N,G)};O(bt,N=>{c(p)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2);{var j=N=>{var G=LD(),te=b(G);H(()=>{G.disabled=c(f),A(te,c(f)?"Generating…":"Generate")}),$("click",G,Ci),I(N,G)};O(se,N=>{c(p)||N(j)})}Kt(wi,()=>c(a),N=>m(a,N)),Kt(le,()=>c(d),N=>m(d,N)),Kt(gt,()=>c(u),N=>m(u,N)),$("click",J,()=>m(r,!1)),I(Be,nt)};O(ei,Be=>{c(r)&&Be(Dt)})}var Ke=v(ei,2);{var zt=Be=>{var nt=_Q(),vi=b(nt),ui=v(b(vi),2);{var wi=le=>{var $e=fQ(),gt=wt($e),Mt=v(b(gt)),ti=v(gt,2),bt=v(b(ti)),bi=v(ti,4);{var W=G=>{var te=tl(),ue=b(te);H(()=>A(ue,c(D))),I(G,te)};O(bi,G=>{c(D)&&G(W)})}var J=v(bi,2),se=b(J),j=v(se,2),N=b(j);H(()=>{j.disabled=c(k),A(N,c(k)?"Generating…":"Generate key + CSR")}),Kt(Mt,()=>c(y),G=>m(y,G)),Kt(bt,()=>c(x),G=>m(x,G)),$("click",se,()=>m(w,!1)),$("click",j,Ct),I(le,$e)},gi=le=>{var $e=pQ(),gt=v(wt($e),2),Mt=v(b(gt)),ti=v(gt,2),bt=b(ti),bi=v(bt,2),W=v(ti,4),J=v(b(W)),se=v(W,2);{var j=Te=>{var fe=tl(),he=b(fe);H(()=>A(he,c(V))),I(Te,fe)};O(se,Te=>{c(V)&&Te(j)})}var N=v(se,2);{var G=Te=>{var fe=gQ();I(Te,fe)};O(N,Te=>{c(oe)&&Te(G)})}var te=v(N,2),ue=b(te),Y=v(ue,2);{var re=Te=>{var fe=LD(),he=b(fe);H(Ze=>{fe.disabled=Ze,A(he,c(K)?"Uploading…":"Upload signed cert")},[()=>c(K)||!c(F).trim()]),$("click",fe,Jt),I(Te,fe)};O(Y,Te=>{c(oe)||Te(re)})}H(Te=>{KS(Mt,c(M)),vn(bi,"href",`data:application/pkcs10;charset=utf-8,${Te??""}`)},[()=>encodeURIComponent(c(M))]),$("click",bt,hi),Kt(J,()=>c(F),Te=>m(F,Te)),$("click",ue,()=>m(w,!1)),I(le,$e)};O(ui,le=>{c(M)?le(gi,-1):le(wi)})}I(Be,nt)};O(Ke,Be=>{c(w)&&Be(zt)})}var pi=v(Ke,2);{var qt=Be=>{var nt=yQ(),vi=b(nt),ui=v(b(vi),2),wi=b(ui);let gi;var le=v(wi,2);let $e;var gt=v(ui,2);{var Mt=N=>{var G=mQ(),te=wt(G),ue=v(b(te)),Y=v(te,2),re=v(b(Y));Kt(ue,()=>c(We),Te=>m(We,Te)),Kt(re,()=>c(qe),Te=>m(qe,Te)),I(N,G)},ti=N=>{var G=bQ(),te=wt(G),ue=v(b(te)),Y=b(ue),re=v(Y,2);{var Te=ye=>{var Ae=vQ(),ke=b(Ae);H(()=>A(ke,c(ut))),I(ye,Ae)};O(re,ye=>{c(ut)&&ye(Te)})}var fe=v(te,2),he=v(b(fe)),Ze=b(he),U=v(Ze,2),ie=b(U);H(()=>{vn(Ze,"type",c(Pe)?"text":"password"),A(ie,c(Pe)?"Hide":"Show")}),$("change",Y,Ii),Kt(Ze,()=>c(kt),ye=>m(kt,ye)),$("click",U,()=>m(Pe,!c(Pe))),I(N,G)};O(gt,N=>{c(Se)==="pem"?N(Mt):N(ti,-1)})}var bt=v(gt,2);{var bi=N=>{var G=tl(),te=b(G);H(()=>A(te,c(pt))),I(N,G)};O(bt,N=>{c(pt)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2),j=b(se);H(()=>{gi=Et(wi,1,"svelte-9auejo",null,gi,{active:c(Se)==="pem"}),$e=Et(le,1,"svelte-9auejo",null,$e,{active:c(Se)==="p12"}),se.disabled=c(Lt),A(j,c(Lt)?"Importing…":"Import")}),$("click",wi,()=>m(Se,"pem")),$("click",le,()=>m(Se,"p12")),$("click",J,()=>m(ne,!1)),$("click",se,Ui),I(Be,nt)};O(pi,Be=>{c(ne)&&Be(qt)})}var Pi=v(pi,2);{var Mi=Be=>{var nt=wQ(),vi=b(nt),ui=v(b(vi),4),wi=v(b(ui)),gi=v(wi,2);oi(gi,21,()=>c($t),Vi,(se,j)=>{var N=bS(),G={};H(()=>{G!==(G=c(j))&&(N.value=(N.__value=c(j))??"")}),I(se,N)});var le=v(ui,2),$e=v(b(le)),gt=v($e,2);oi(gt,21,()=>c(xe),Vi,(se,j)=>{var N=bS(),G={};H(()=>{G!==(G=c(j))&&(N.value=(N.__value=c(j))??"")}),I(se,N)});var Mt=v(le,2);{var ti=se=>{var j=tl(),N=b(j);H(()=>A(N,c(lt))),I(se,j)};O(Mt,se=>{c(lt)&&se(ti)})}var bt=v(Mt,2),bi=b(bt),W=v(bi,2),J=b(W);H(se=>{W.disabled=se,A(J,c(et)?"Installing…":"Install")},[()=>c(et)||!c(Fe).trim()||!c(Nt).trim()]),$("input",wi,Bi),Kt(wi,()=>c(Fe),se=>m(Fe,se)),$("input",$e,rn),Kt($e,()=>c(Nt),se=>m(Nt,se)),$("click",bi,()=>m(Ot,!1)),$("click",W,xi),I(Be,nt)};O(Pi,Be=>{c(Ot)&&Be(Mi)})}var Ei=v(Pi,2);{var $i=Be=>{var nt=xQ(),vi=b(nt),ui=v(b(vi),2),wi=b(ui);let gi;var le=v(wi,2);let $e;var gt=v(ui,2);{var Mt=bt=>{var bi=SQ(),W=wt(bi),J=v(b(W)),se=v(W,2);{var j=Y=>{var re=tl(),Te=b(re);H(()=>A(Te,c(_t))),I(Y,re)};O(se,Y=>{c(_t)&&Y(j)})}var N=v(se,2),G=b(N),te=v(G,2),ue=b(te);H(Y=>{te.disabled=Y,A(ue,c(Si)?"Adding…":"Add CA cert")},[()=>c(Si)||!c(It).trim()]),Kt(J,()=>c(It),Y=>m(It,Y)),$("click",G,()=>m(rt,!1)),$("click",te,ji),I(bt,bi)},ti=bt=>{var bi=CQ(),W=v(wt(bi),2),J=v(b(W)),se=v(J,2);oi(se,21,()=>c(Ye),Vi,(re,Te)=>{var fe=bS(),he={};H(()=>{he!==(he=c(Te))&&(fe.value=(fe.__value=c(Te))??"")}),I(re,fe)});var j=v(W,2);{var N=re=>{var Te=tl(),fe=b(Te);H(()=>A(fe,c(ci))),I(re,Te)};O(j,re=>{c(ci)&&re(N)})}var G=v(j,2),te=b(G),ue=v(te,2),Y=b(ue);H(re=>{ue.disabled=re,A(Y,c(Ft)?"Adding…":"Add CA cert")},[()=>c(Ft)||!c(Xt).trim()]),$("input",J,Oi),Kt(J,()=>c(Xt),re=>m(Xt,re)),$("click",te,()=>m(rt,!1)),$("click",ue,Ki),I(bt,bi)};O(gt,bt=>{c(dt)==="pem"?bt(Mt):bt(ti,-1)})}H(()=>{gi=Et(wi,1,"svelte-9auejo",null,gi,{active:c(dt)==="pem"}),$e=Et(le,1,"svelte-9auejo",null,$e,{active:c(dt)==="path"})}),$("click",wi,()=>m(dt,"pem")),$("click",le,()=>m(dt,"path")),I(Be,nt)};O(Ei,Be=>{c(rt)&&Be($i)})}$("click",ni,Li),$("click",He,()=>{m(r,!0),m(g,""),m(p,null)}),$("click",ct,()=>{m(w,!0),m(D,""),m(M,""),m(F,""),m(oe,!1),m(V,"")}),$("click",Tt,()=>{m(ne,!0),m(pt,""),m(Se,"pem"),m(We,""),m(qe,""),m(Oe,""),m(ut,""),m(kt,""),m(Pe,!1)}),$("click",Wt,()=>{m(Ot,!0),m(lt,""),m(Fe,""),m(Nt,""),m($t,[],!0),m(xe,[],!0)}),$("click",Q,()=>{m(rt,!0),m(_t,""),m(It,""),m(dt,"pem"),m(ci,""),m(Xt,""),m(Ye,[],!0)}),I(o,Rt),Hs()}eo(["click","change","input"]);var km=P('<div class="err svelte-17yczfe"> </div>'),IQ=P('<div class="check-list svelte-17yczfe"><div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto_ctrl</code> <span> </span></div> <div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto</code> <span> </span></div></div>'),EQ=P('<div class="checking svelte-17yczfe">Checking…</div>'),DQ=P('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Tool availability</h3> <p class="hint svelte-17yczfe">These tools must be installed and in the PATH of the she process. They are used by the Setup Wizard and cert installation.</p> <!> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div></div>'),PQ=P('<label class="svelte-17yczfe">Install command (run locally) <div class="pubkey-row svelte-17yczfe"><input readonly="" class="svelte-17yczfe"/> <button class="copy-btn svelte-17yczfe">Copy</button></div></label>'),TQ=P('<label class="svelte-17yczfe">Public key <div class="pubkey-row svelte-17yczfe"><textarea readonly="" rows="3" class="svelte-17yczfe"></textarea> <button class="copy-btn svelte-17yczfe">Copy</button></div></label> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>',1),MQ=P('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),RQ=P("<span> </span>"),NQ=P('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH connection</h3> <p class="hint svelte-17yczfe">Used for file operations: reading/writing mosquitto.conf and installing certificates on the broker host. User/ACL management always uses the MQTT port directly.</p> <div class="fields svelte-17yczfe"><label class="svelte-17yczfe">Host<input placeholder="192.168.1.10 or broker.local" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Port<input type="number" min="1" max="65535" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">SSH user<input placeholder="root" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Identity file (private key)<input class="svelte-17yczfe"/></label></div></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH keypair</h3> <p class="hint svelte-17yczfe">Dedicated Ed25519 keypair for she to authenticate to the broker host. Private key stored at <code class="svelte-17yczfe"> </code>.</p> <!> <!></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Test connection</h3> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button> <!></div></div>',1),AQ=P('<div class="ok svelte-17yczfe">Saved.</div>'),OQ=P('<div class="mosquitto-page svelte-17yczfe"><!> <div class="mode-bar svelte-17yczfe"><span class="mode-label svelte-17yczfe">Connection mode</span> <div class="mode-toggle svelte-17yczfe"><button>Local</button> <button>SSH / Remote</button></div> <span class="mode-desc svelte-17yczfe"> </span></div> <!> <!> <!> <!> <div class="row svelte-17yczfe"><button class="btn-primary svelte-17yczfe"> </button></div></div>');function FQ(o,e){Fs(e,!0);let t=T(ki({})),i=T(""),n=T(!1),s=T(!1),r=T(""),a=T("~/.she/ssh/broker_id_ed25519"),d=T("local"),u=T(null),f=T(!1),g=T(""),p=T(""),w=T(!1),y=T(""),x=T(!1),k=T(""),D=T(ki({}));Js(async()=>{try{const[Ye,Ft,ci]=await Promise.all([Pl(),Dk(),fetch("/she/broker/ssh/pubkey").then(Ci=>Ci.json()).catch(()=>({publicKey:null}))]);m(D,Ye,!0),Ft.sshKeyDefault&&m(a,Ft.sshKeyDefault,!0);const Li=c(D).broker??{};m(t,Li.ssh??{},!0),c(t).port||(c(t).port=22),c(t).identityFile||(c(t).identityFile=c(a)),ci.publicKey&&m(p,ci.publicKey,!0),m(d,c(t).host?"ssh":"local",!0),c(d)==="local"&&M()}catch(Ye){m(i,Ye.message,!0)}});async function M(){m(f,!0),m(g,"");try{m(u,await Y7(),!0)}catch(Ye){m(g,Ye.message??"Check failed",!0)}finally{m(f,!1)}}async function F(){m(n,!0),m(r,""),m(s,!1);try{const Ye=c(D).broker??{},Ft=c(d)==="local"?{...c(t),host:""}:c(t),ci={...c(D),broker:{...Ye,ssh:Ft}};await Yp(ci),m(s,!0),setTimeout(()=>m(s,!1),3e3)}catch(Ye){m(r,Ye.message,!0)}finally{m(n,!1)}}async function K(){m(w,!0),m(y,"");try{const Ye=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Ft=await Ye.json();if(!Ye.ok)throw new Error(Ft.error??Ye.statusText);m(p,Ft.publicKey,!0)}catch(Ye){m(y,Ye.message,!0)}finally{m(w,!1)}}async function V(){m(x,!0),m(k,"");try{const Ye=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Ft=await Ye.json();if(!Ye.ok)throw new Error(Ft.error??Ye.statusText);m(k,Ft.ok?"✓ Connection successful":"✗ "+(Ft.error??"Failed"),!0)}catch(Ye){m(k,"✗ "+Ye.message)}finally{m(x,!1)}}function oe(Ye){navigator.clipboard.writeText(Ye).catch(()=>{})}const ne=mt(()=>c(t).identityFile&&c(t).user&&c(t).host?`ssh-copy-id -i ${c(t).identityFile}.pub ${c(t).user}@${c(t).host}`:"");var Se=OQ(),We=b(Se);{var qe=Ye=>{var Ft=km(),ci=b(Ft);H(()=>A(ci,c(i))),I(Ye,Ft)};O(We,Ye=>{c(i)&&Ye(qe)})}var Oe=v(We,2),ut=v(b(Oe),2),kt=b(ut);let Pe;var Lt=v(kt,2);let pt;var Ot=v(ut,2),Fe=b(Ot),Nt=v(Oe,2);{var et=Ye=>{var Ft=DQ(),ci=v(b(Ft),4);{var Li=Hi=>{var Bi=km(),rn=b(Bi);H(()=>A(rn,c(g))),I(Hi,Bi)};O(ci,Hi=>{c(g)&&Hi(Li)})}var Ci=v(ci,2);{var Ct=Hi=>{var Bi=IQ(),rn=b(Bi),Oi=b(rn);let xi;var ji=b(Oi),Ki=v(Oi,4);let zi;var Ni=b(Ki),Ve=v(rn,2),Rt=b(Ve);let Ut;var fi=b(Rt),ni=v(Rt,4);let Zi;var Wi=b(ni);H(()=>{xi=Et(Oi,1,"check-icon svelte-17yczfe",null,xi,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),A(ji,c(u).mosquittoCtrl?"✓":"✗"),zi=Et(Ki,1,"check-note svelte-17yczfe",null,zi,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),A(Ni,c(u).mosquittoCtrl?"found in PATH":"not found — install the mosquitto or mosquitto-clients package"),Ut=Et(Rt,1,"check-icon svelte-17yczfe",null,Ut,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),A(fi,c(u).mosquitto?"✓":"✗"),Zi=Et(ni,1,"check-note svelte-17yczfe",null,Zi,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),A(Wi,c(u).mosquitto?"found in PATH":"not found — install the mosquitto package")}),I(Hi,Bi)},Jt=Hi=>{var Bi=EQ();I(Hi,Bi)};O(Ci,Hi=>{c(u)?Hi(Ct):c(f)&&Hi(Jt,1)})}var hi=v(Ci,2),Ii=b(hi),Ui=b(Ii);H(()=>{Ii.disabled=c(f),A(Ui,c(f)?"Checking…":c(u)?"Re-check":"Check tools")}),$("click",Ii,M),I(Ye,Ft)};O(Nt,Ye=>{c(d)==="local"&&Ye(et)})}var lt=v(Nt,2);{var $t=Ye=>{var Ft=NQ(),ci=wt(Ft),Li=v(b(ci),4),Ci=b(Li),Ct=v(b(Ci)),Jt=v(Ci,2),hi=v(b(Jt)),Ii=v(Jt,2),Ui=v(b(Ii)),Hi=v(Ii,2),Bi=v(b(Hi)),rn=v(ci,2),Oi=v(b(rn),2),xi=v(b(Oi)),ji=b(xi),Ki=v(Oi,2);{var zi=di=>{var je=TQ(),X=wt(je),He=v(b(X)),ct=b(He),Tt=v(ct,2),Wt=v(X,2);{var z=ht=>{var Q=PQ(),ce=v(b(Q)),Le=b(ce),tt=v(Le,2);H(()=>KS(Le,c(ne))),$("click",tt,()=>oe(c(ne))),I(ht,Q)};O(Wt,ht=>{c(ne)&&ht(z)})}var ae=v(Wt,2),Ee=b(ae),ot=b(Ee);H(()=>{KS(ct,c(p)),Ee.disabled=c(w),A(ot,c(w)?"Generating…":"Regenerate keypair")}),$("click",Tt,()=>oe(c(p))),$("click",Ee,K),I(di,je)},Ni=di=>{var je=MQ(),X=b(je),He=b(X);H(()=>{X.disabled=c(w),A(He,c(w)?"Generating…":"Generate keypair")}),$("click",X,K),I(di,je)};O(Ki,di=>{c(p)?di(zi):di(Ni,-1)})}var Ve=v(Ki,2);{var Rt=di=>{var je=km(),X=b(je);H(()=>A(X,c(y))),I(di,je)};O(Ve,di=>{c(y)&&di(Rt)})}var Ut=v(rn,2),fi=v(b(Ut),2),ni=b(fi),Zi=b(ni),Wi=v(ni,2);{var Yi=di=>{var je=RQ();let X;var He=b(je);H(ct=>{X=Et(je,1,"test-result svelte-17yczfe",null,X,ct),A(He,c(k))},[()=>({ok:c(k).startsWith("✓"),fail:c(k).startsWith("✗")})]),I(di,je)};O(Wi,di=>{c(k)&&di(Yi)})}H(()=>{vn(Bi,"placeholder",c(a)),A(ji,c(t).identityFile||c(a)),ni.disabled=c(x)||!c(t).host,A(Zi,c(x)?"Testing…":"Test SSH connection")}),Kt(Ct,()=>c(t).host,di=>c(t).host=di),Kt(hi,()=>c(t).port,di=>c(t).port=di),Kt(Ui,()=>c(t).user,di=>c(t).user=di),Kt(Bi,()=>c(t).identityFile,di=>c(t).identityFile=di),$("click",ni,V),I(Ye,Ft)};O(lt,Ye=>{c(d)==="ssh"&&Ye($t)})}var xe=v(lt,2);{var rt=Ye=>{var Ft=km(),ci=b(Ft);H(()=>A(ci,c(r))),I(Ye,Ft)};O(xe,Ye=>{c(r)&&Ye(rt)})}var dt=v(xe,2);{var It=Ye=>{var Ft=AQ();I(Ye,Ft)};O(dt,Ye=>{c(s)&&Ye(It)})}var Si=v(dt,2),_t=b(Si),Xt=b(_t);H(()=>{Pe=Et(kt,1,"svelte-17yczfe",null,Pe,{active:c(d)==="local"}),pt=Et(Lt,1,"svelte-17yczfe",null,pt,{active:c(d)==="ssh"}),A(Fe,c(d)==="local"?"she and mosquitto run on the same machine — local filesystem access":"mosquitto runs on a remote host — file operations go through SSH"),_t.disabled=c(n),A(Xt,c(n)?"Saving…":"Save")}),$("click",kt,()=>{m(d,"local"),c(u)||M()}),$("click",Lt,()=>m(d,"ssh")),$("click",_t,F),I(o,Se),Hs()}eo(["click"]);var HQ=P('<div class="err svelte-d31be1"> </div>'),WQ=P('<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>'),BQ=P('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),zQ=P('<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>'),VQ=P('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),jQ=P(`<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>`),$Q=P('<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>'),UQ=P('<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>'),qQ=P('<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 GQ(o,e){Fs(e,!0);let t=T("intro"),i=T(""),n=T(!1),s=T("she-admin"),r=T(""),a=T("/etc/mosquitto"),d=T(null),u=T(!1),f=T(!1),g=T("she-admin"),p=T(""),w=T(!1);async function y(){m(n,!0),m(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?m(t,"done"):m(t,"config")}catch(Pe){m(i,Pe.message,!0)}finally{m(n,!1)}}async function x(){m(n,!0),m(i,"");try{const Pe=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:c(s),adminPassword:c(r)||void 0,configDir:c(a)})}),Lt=await Pe.json();if(!Pe.ok||!Lt.ok)throw new Error(Lt.error??"Bootstrap failed");m(d,Lt,!0);const pt=await Pl(),Ot=pt.broker??{};await Yp({...pt,broker:{...Ot,dynsec:{adminUsername:Lt.adminUsername,adminPassword:Lt.adminPassword}}}),await iq().catch(()=>{}),m(t,"restart")}catch(Pe){m(i,Pe.message,!0)}finally{m(n,!1)}}async function k(){m(f,!0),m(i,"");try{await eq(),await new Promise(Pe=>setTimeout(Pe,2e3)),m(u,!0),m(t,"done")}catch(Pe){m(i,Pe.message,!0)}finally{m(f,!1)}}async function D(){m(w,!0),m(i,"");try{const Pe=await Pl(),Lt=Pe.broker??{};await Yp({...Pe,broker:{...Lt,dynsec:{adminUsername:c(g),adminPassword:c(p)}}}),m(t,"done")}catch(Pe){m(i,Pe.message,!0)}finally{m(w,!1)}}var M=qQ(),F=b(M),K=v(b(F),2),V=v(F,2);{var oe=Pe=>{var Lt=HQ(),pt=b(Lt);H(()=>A(pt,c(i))),I(Pe,Lt)};O(V,Pe=>{c(i)&&Pe(oe)})}var ne=v(V,2);{var Se=Pe=>{var Lt=WQ(),pt=v(b(Lt),6),Ot=b(pt);H(()=>Ot.disabled=c(n)),$("click",Ot,()=>{m(t,"probe"),y()}),I(Pe,Lt)},We=Pe=>{var Lt=BQ(),pt=b(Lt),Ot=b(pt);H(()=>A(Ot,c(n)?"Probing dynsec…":"Checking dynsec status…")),I(Pe,Lt)},qe=Pe=>{var Lt=zQ(),pt=v(b(Lt),2),Ot=v(b(pt)),Fe=v(pt,2),Nt=v(b(Fe)),et=v(Fe,2),lt=v(b(et)),$t=v(et,2),xe=b($t),rt=b(xe);H(()=>{xe.disabled=c(n)||!c(s),A(rt,c(n)?"Bootstrapping…":"Bootstrap dynsec")}),Kt(Ot,()=>c(s),dt=>m(s,dt)),Kt(Nt,()=>c(r),dt=>m(r,dt)),Kt(lt,()=>c(a),dt=>m(a,dt)),$("click",xe,x),I(Pe,Lt)},Oe=Pe=>{var Lt=jQ(),pt=v(b(Lt),2),Ot=v(b(pt),3),Fe=b(Ot),Nt=v(pt,4),et=b(Nt),lt=b(et),$t=v(et,2),xe=v(Nt,2);{var rt=dt=>{var It=VQ();I(dt,It)};O(xe,dt=>{c(f)&&dt(rt)})}H(()=>{A(Fe,c(d).confFilePath),et.disabled=c(f),A(lt,c(f)?"Restarting…":"Restart mosquitto now")}),$("click",et,k),$("click",$t,()=>{m(t,"done")}),I(Pe,Lt)},ut=Pe=>{var Lt=$Q(),pt=v(b(Lt),4),Ot=b(pt);$("click",Ot,function(...Fe){var Nt;(Nt=e.onDone)==null||Nt.apply(this,Fe)}),I(Pe,Lt)},kt=Pe=>{var Lt=UQ(),pt=v(b(Lt),2),Ot=v(b(pt)),Fe=v(pt,2),Nt=v(b(Fe)),et=v(Fe,2),lt=b(et),$t=v(lt,2),xe=b($t);H(()=>{$t.disabled=c(w)||!c(g)||!c(p),A(xe,c(w)?"Saving…":"Save credentials")}),Kt(Ot,()=>c(g),rt=>m(g,rt)),Kt(Nt,()=>c(p),rt=>m(p,rt)),$("click",lt,()=>m(t,"intro")),$("click",$t,D),I(Pe,Lt)};O(ne,Pe=>{c(t)==="intro"?Pe(Se):c(t)==="probe"?Pe(We,1):c(t)==="config"?Pe(qe,2):c(t)==="restart"&&c(d)?Pe(Oe,3):c(t)==="done"?Pe(ut,4):c(t)==="manual"&&Pe(kt,5)})}$("click",K,()=>m(t,"manual")),I(o,M),Hs()}eo(["click"]);var KQ=P('<div class="loading svelte-zuhcpo">Loading…</div>'),ZQ=P('<div class="error-banner svelte-zuhcpo"> </div>'),YQ=P('<div class="conn-row svelte-zuhcpo"><span></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span><!></span> <button class="btn-deactivate svelte-zuhcpo"> </button></div>'),XQ=P('<button class="btn-wizard-inline svelte-zuhcpo">Setup Wizard ↗</button>'),JQ=P('<div class="conn-row svelte-zuhcpo"><span class="dot dot-off svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span class="conn-detail muted svelte-zuhcpo">not configured</span> <!></div>'),QQ=P('<div class="error-inline svelte-zuhcpo"> </div>'),eee=P('<button class="diag-btn svelte-zuhcpo"> </button>'),ID=P('<p class="diag-issue svelte-zuhcpo"> </p>'),tee=P('<p class="diag-ok-msg svelte-zuhcpo">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),iee=P('<p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">File</span><code class="svelte-zuhcpo"> </code></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Admin user exists</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Has admin role</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">$CONTROL publish ACL</span><span> </span></p> <!> <!>',1),nee=P('<div><!></div> <button class="diag-btn svelte-zuhcpo" style="margin-top:6px"> </button>',1),see=P('<button class="wizard-btn svelte-zuhcpo">Run Setup Wizard</button>'),oee=P('<div class="diag-area svelte-zuhcpo"><!> <!></div>'),ree=P('<div class="stats-block svelte-zuhcpo"><dl class="svelte-zuhcpo"><dt class="svelte-zuhcpo">Version</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Uptime</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Clients</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Messages</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Topics</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Traffic</dt><dd class="svelte-zuhcpo"> </dd></dl></div>'),aee=P('<div style="margin-top: 20px;"><!></div>'),lee=P('<div class="status-layout svelte-zuhcpo"><div class="conn-block svelte-zuhcpo"><div class="conn-row svelte-zuhcpo"><span class="dot ok svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">mosquitto</span> <span class="conn-detail svelte-zuhcpo"> </span></div> <!> <!></div> <!> <!></div> <!>',1),cee=P('<div class="tab-content svelte-zuhcpo"><!></div>'),dee=P('<div class="broker-page svelte-zuhcpo"><div class="sub-nav svelte-zuhcpo"><button>Status</button> <button>Directory</button> <button>Listeners</button> <button>Certificates</button> <button>Mosquitto</button></div> <!></div> <!>',1);function uee(o,e){Fs(e,!0);let t=T(!1),i,n=T(!1),s=T(""),r=T(!1),a=T(null);const d="she-broker-tab";let u=T(ki(localStorage.getItem(d)??"status"));Vn(()=>{localStorage.setItem(d,c(u))});let f=T(null),g=T(""),p=T(!0);async function w(){try{m(f,await Dk(),!0),m(g,"")}catch(xe){m(g,xe.message??"Failed to load broker status",!0)}finally{m(p,!1)}}Js(()=>{w();const xe=setInterval(w,1e4);return()=>clearInterval(xe)});async function y(){m(r,!0),m(a,null);try{m(a,await nq(),!0)}catch(xe){m(a,{ok:!1,dynSecPath:"",issues:[xe.message??"Diagnose request failed"]},!0)}finally{m(r,!1)}}async function x(){if(await i.show("Remove dynsec plugin lines from mosquitto.conf and clear credentials? You will need to restart mosquitto afterwards.",{confirm:"Deactivate",danger:!0})){m(n,!0),m(s,"");try{await tq(),await w()}catch(xe){m(s,xe.message??"Deactivate failed",!0)}finally{m(n,!1)}}}function k(xe){var dt;if(!((dt=c(f))!=null&&dt.sys))return"—";const rt=c(f).sys[xe];return rt?String(rt.val??"—"):"—"}function D(xe){if(xe==="—")return xe;const rt=xe.match(/^(\d+)/),dt=rt?parseInt(rt[1]):NaN;if(isNaN(dt))return xe;const It=Math.floor(dt/86400),Si=Math.floor(dt%86400/3600),_t=Math.floor(dt%3600/60),Xt=dt%60,Ye=Ft=>String(Ft).padStart(2,"0");return It>0?`${It}d ${Ye(Si)}:${Ye(_t)}:${Ye(Xt)}`:`${Ye(Si)}:${Ye(_t)}:${Ye(Xt)}`}function M(xe){if(xe==="—")return xe;const rt=parseInt(xe);return isNaN(rt)?xe:rt<1024?`${rt} B`:rt<1048576?`${(rt/1024).toFixed(1)} KB`:rt<1073741824?`${(rt/1048576).toFixed(1)} MB`:`${(rt/1073741824).toFixed(1)} GB`}var F=dee(),K=wt(F),V=b(K),oe=b(V);let ne;var Se=v(oe,2);let We;var qe=v(Se,2);let Oe;var ut=v(qe,2);let kt;var Pe=v(ut,2);let Lt;var pt=v(V,2);{var Ot=xe=>{var rt=cee(),dt=b(rt);{var It=Xt=>{var Ye=KQ();I(Xt,Ye)},Si=Xt=>{var Ye=ZQ(),Ft=b(Ye);H(()=>A(Ft,c(g))),I(Xt,Ye)},_t=Xt=>{var Ye=lee(),Ft=wt(Ye),ci=b(Ft),Li=b(ci),Ci=v(b(Li),4),Ct=b(Ci),Jt=v(Li,2);{var hi=Ni=>{var Ve=YQ(),Rt=b(Ve);let Ut;var fi=v(Rt,4);let ni;var Zi=b(fi);{var Wi=He=>{var ct=Io("plugin active");I(He,ct)},Yi=He=>{var ct=Io("connected — plugin not responding");I(He,ct)},di=He=>{var ct=Io("disconnected");I(He,ct)};O(Zi,He=>{c(f).dynsec.dynsecReady?He(Wi):c(f).dynsec.connected?He(Yi,1):He(di,-1)})}var je=v(fi,2),X=b(je);H(()=>{Ut=Et(Rt,1,"dot svelte-zuhcpo",null,Ut,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,"dot-err":!c(f).dynsec.connected}),ni=Et(fi,1,"conn-detail svelte-zuhcpo",null,ni,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,err:!c(f).dynsec.connected}),je.disabled=c(n),A(X,c(n)?"…":"deactivate")}),$("click",je,x),I(Ni,Ve)},Ii=Ni=>{var Ve=JQ(),Rt=v(b(Ve),6);{var Ut=fi=>{var ni=XQ();$("click",ni,()=>m(t,!0)),I(fi,ni)};O(Rt,fi=>{c(t)||fi(Ut)})}I(Ni,Ve)};O(Jt,Ni=>{c(f).dynsec.configured?Ni(hi):Ni(Ii,-1)})}var Ui=v(Jt,2);{var Hi=Ni=>{var Ve=QQ(),Rt=b(Ve);H(()=>A(Rt,c(s))),I(Ni,Ve)};O(Ui,Ni=>{c(s)&&Ni(Hi)})}var Bi=v(ci,2);{var rn=Ni=>{var Ve=oee(),Rt=b(Ve);{var Ut=Wi=>{var Yi=eee(),di=b(Yi);H(()=>{Yi.disabled=c(r),A(di,c(r)?"Running diagnostics…":"Run diagnostics")}),$("click",Yi,y),I(Wi,Yi)},fi=Wi=>{var Yi=nee(),di=wt(Yi);let je;var X=b(di);{var He=z=>{var ae=ID(),Ee=b(ae);H(()=>A(Ee,`⚠ ${c(a).error??""}`)),I(z,ae)},ct=z=>{var ae=iee(),Ee=wt(ae),ot=v(b(Ee)),ht=b(ot),Q=v(Ee,2),ce=v(b(Q)),Le=b(ce),tt=v(Q,2),ei=v(b(tt)),Dt=b(ei),Ke=v(tt,2),zt=v(b(Ke)),pi=b(zt),qt=v(Ke,2);oi(qt,17,()=>c(a).issues,Vi,(Ei,$i)=>{var Be=ID(),nt=b(Be);H(()=>A(nt,`⚠ ${c($i)??""}`)),I(Ei,Be)});var Pi=v(qt,2);{var Mi=Ei=>{var $i=tee();I(Ei,$i)};O(Pi,Ei=>{c(a).ok&&Ei(Mi)})}H(()=>{A(ht,c(a).dynSecPath),Et(ce,1,Gg(c(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),A(Le,c(a).adminClientExists?"✓ yes":"✗ no"),Et(ei,1,Gg(c(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),A(Dt,c(a).hasAdminRole?"✓ yes":"✗ no"),Et(zt,1,Gg(c(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),A(pi,c(a).hasControlSendAcl?"✓ present":"✗ missing")}),I(z,ae)};O(X,z=>{c(a).error?z(He):z(ct,-1)})}var Tt=v(di,2),Wt=b(Tt);H(()=>{je=Et(di,1,"diag-card svelte-zuhcpo",null,je,{"diag-ok":c(a).ok,"diag-fail":!c(a).ok}),Tt.disabled=c(r),A(Wt,c(r)?"Running…":"Re-run")}),$("click",Tt,y),I(Wi,Yi)};O(Rt,Wi=>{c(a)?Wi(fi,-1):Wi(Ut)})}var ni=v(Rt,2);{var Zi=Wi=>{var Yi=see();$("click",Yi,()=>m(t,!0)),I(Wi,Yi)};O(ni,Wi=>{c(t)||Wi(Zi)})}I(Ni,Ve)};O(Bi,Ni=>{c(f).dynsec.configured&&c(f).dynsec.connected&&!c(f).dynsec.dynsecReady&&Ni(rn)})}var Oi=v(Bi,2);{var xi=Ni=>{var Ve=ree(),Rt=b(Ve),Ut=v(b(Rt)),fi=b(Ut),ni=v(Ut,3),Zi=b(ni),Wi=v(ni,3),Yi=b(Wi),di=v(Wi,3),je=b(di),X=v(di,3),He=b(X),ct=v(X,3),Tt=b(ct);H((Wt,z,ae,Ee,ot,ht,Q,ce,Le,tt,ei,Dt)=>{A(fi,Wt),A(Zi,z),A(Yi,`${ae??""} connected · ${Ee??""} max · ${ot??""} total`),A(je,`${ht??""} rcv · ${Q??""} sent · ${ce??""} stored`),A(He,`${Le??""} retained · ${tt??""} subscriptions`),A(Tt,`${ei??""} in · ${Dt??""} out`)},[()=>k("$SYS/broker/version"),()=>D(k("$SYS/broker/uptime")),()=>k("$SYS/broker/clients/connected"),()=>k("$SYS/broker/clients/maximum"),()=>k("$SYS/broker/clients/total"),()=>k("$SYS/broker/messages/received"),()=>k("$SYS/broker/messages/sent"),()=>k("$SYS/broker/messages/stored"),()=>k("$SYS/broker/retained messages/count"),()=>k("$SYS/broker/subscriptions/count"),()=>M(k("$SYS/broker/bytes/received")),()=>M(k("$SYS/broker/bytes/sent"))]),I(Ni,Ve)},ji=mt(()=>Object.keys(c(f).sys).length>0);O(Oi,Ni=>{c(ji)&&Ni(xi)})}var Ki=v(Ft,2);{var zi=Ni=>{var Ve=aee(),Rt=b(Ve);GQ(Rt,{onDone:()=>{m(t,!1),w()}}),I(Ni,Ve)};O(Ki,Ni=>{c(t)&&(!c(f).dynsec.configured||!c(f).dynsec.dynsecReady)&&Ni(zi)})}H(()=>A(Ct,c(f).sshConfigured?`ssh — ${c(f).sshHost}`:"local")),I(Xt,Ye)};O(dt,Xt=>{c(p)?Xt(It):c(g)?Xt(Si,1):c(f)&&Xt(_t,2)})}I(xe,rt)},Fe=xe=>{{let rt=mt(()=>{var dt;return((dt=c(f))==null?void 0:dt.dynsec.dynsecReady)??!1});KJ(xe,{get dynsecReady(){return c(rt)}})}},Nt=xe=>{oQ(xe,{})},et=xe=>{LQ(xe,{})},lt=xe=>{FQ(xe,{})};O(pt,xe=>{c(u)==="status"?xe(Ot):c(u)==="users"?xe(Fe,1):c(u)==="listeners"?xe(Nt,2):c(u)==="certs"?xe(et,3):c(u)==="ssh"&&xe(lt,4)})}var $t=v(K,2);vs($c($t,{}),xe=>i=xe,()=>i),H(()=>{ne=Et(oe,1,"svelte-zuhcpo",null,ne,{active:c(u)==="status"}),We=Et(Se,1,"svelte-zuhcpo",null,We,{active:c(u)==="users"}),Oe=Et(qe,1,"svelte-zuhcpo",null,Oe,{active:c(u)==="listeners"}),kt=Et(ut,1,"svelte-zuhcpo",null,kt,{active:c(u)==="certs"}),Lt=Et(Pe,1,"svelte-zuhcpo",null,Lt,{active:c(u)==="ssh"})}),$("click",oe,()=>m(u,"status")),$("click",Se,()=>m(u,"users")),$("click",qe,()=>m(u,"listeners")),$("click",ut,()=>m(u,"certs")),$("click",Pe,()=>m(u,"ssh")),I(o,F),Hs()}eo(["click"]);var hee=P('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),fee=P('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),gee=P('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),pee=P('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),_ee=P('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),mee=P('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),vee=P('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),bee=P('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),yee=P('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),wee=P('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),See=P('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),Cee=P('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),xee=P('<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>'),kee=P('<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>'),Lee=P('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),Iee=P('<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),Eee=P('<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),Dee=P('<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>'),Pee=P('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),Tee=P('<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>'),Mee=P('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),Ree=P('<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>'),Nee=P('<div class="shell svelte-1n46o8q"><nav class="svelte-1n46o8q"><span class="brand svelte-1n46o8q">she</span> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="5,3 1,8 5,13" class="svelte-1n46o8q"></polyline><polyline points="11,3 15,8 11,13" class="svelte-1n46o8q"></polyline></svg> Scripts</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter" class="svelte-1n46o8q"><rect x="0.75" y="0.75" width="14.5" height="14.5" rx="1" class="svelte-1n46o8q"></rect><path d="M2,11 V5 H5 V11" class="svelte-1n46o8q"></path><path d="M6,12 V5 H9 V8 H6" class="svelte-1n46o8q"></path><path d="M10,11 V5 H15 V11" class="svelte-1n46o8q"></path><line x1="12.5" y1="5" x2="12.5" y2="11" class="svelte-1n46o8q"></line></svg> Packages <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" stroke="none" style="vertical-align: middle" class="svelte-1n46o8q"><path fill-rule="evenodd" d="M2,0 H14 A2,2 0 0,1 16,2 V14 A2,2 0 0,1 14,16 H0 V2 A2,2 0 0,1 2,0 Z M0,16 L0,12 A4,4 0 0,1 4,16 Z M0,10.5 A5.5,5.5 0 0,1 5.5,16 L9,16 A9,9 0 0,0 0,7 Z M0,5.5 A10.5,10.5 0 0,1 10.5,16 L13.5,16 A13.5,13.5 0 0,0 0,2.5 Z" class="svelte-1n46o8q"></path></svg> MQTT <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><rect x="2.5" y="7" width="11" height="8" rx="1.5" class="svelte-1n46o8q"></rect><path d="M5.5,7 V5 A2.5,2.5 0,0,1 10.5,5 V7" class="svelte-1n46o8q"></path><circle cx="8" cy="11.5" r="1" fill="currentColor" stroke="none" class="svelte-1n46o8q"></circle></svg> Security</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M8,2 L8,7" class="svelte-1n46o8q"></path><path d="M6,5 L8,7.5 L10,5" class="svelte-1n46o8q"></path><path d="M2.5,14 L6,10" class="svelte-1n46o8q"></path><path d="M6.2,12.8 L6,10 L3.2,10.2" class="svelte-1n46o8q"></path><path d="M13.5,14 L10,10" class="svelte-1n46o8q"></path><path d="M9.8,12.8 L10,10 L12.8,10.2" class="svelte-1n46o8q"></path></svg> Matter <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><ellipse cx="8" cy="4.5" rx="5" ry="1.8" class="svelte-1n46o8q"></ellipse><path d="M3,4.5 v7 a5,1.8 0,0,0 10,0 v-7" class="svelte-1n46o8q"></path><path d="M3,8 a5,1.8 0,0,0 10,0" class="svelte-1n46o8q"></path></svg> DB</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-1n46o8q"><line x1="2" y1="5" x2="14" y2="5" class="svelte-1n46o8q"></line><line x1="2" y1="8" x2="14" y2="8" class="svelte-1n46o8q"></line><line x1="2" y1="11" x2="9" y2="11" class="svelte-1n46o8q"></line></svg> Logs <!></button> <div class="nav-spacer svelte-1n46o8q"></div> <div class="nav-right svelte-1n46o8q"><a class="nav-icon svelte-1n46o8q" href="https://github.com/hobbyquaker/she" target="_blank" rel="noopener" title="GitHub"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" class="svelte-1n46o8q"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" class="svelte-1n46o8q"></path></svg></a> <div class="version-wrap svelte-1n46o8q"><button class="version svelte-1n46o8q"> <!></button> <!></div> <div class="stats-wrap svelte-1n46o8q"><button class="nav-icon svelte-1n46o8q" title="Daemon status"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><line x1="18" y1="20" x2="18" y2="10" class="svelte-1n46o8q"></line><line x1="12" y1="20" x2="12" y2="4" class="svelte-1n46o8q"></line><line x1="6" y1="20" x2="6" y2="14" class="svelte-1n46o8q"></line></svg></button> <!></div> <button title="Settings"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" class="svelte-1n46o8q"></path><circle cx="12" cy="12" r="3" class="svelte-1n46o8q"></circle></svg></button> <!></div></nav> <main class="svelte-1n46o8q"><!> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div></main></div>'),Aee=P('<div class="login-error svelte-1n46o8q"> </div>'),Oee=P('<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>'),Fee=P('<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>'),Hee=P('<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>'),Wee=P("<!> <!> <!> <!>",1);function Bee(o,e){Fs(e,!0);const t=["scripts","mqtt","matter","security","db","logs","config","packages"];function i(){const _t=location.hash.slice(1);return t.includes(_t)?_t:"scripts"}let n=T(ki(i())),s=T(null),r=T(!1),a=T(!1),d=T(!1),u=T(!1),f=T("none"),g=T(""),p=T(!1),w=T(""),y=T(""),x=T(!1),k=T(!1);y7(()=>{m(p,!0)});async function D(){m(y,""),m(x,!0);try{await C7(c(w)),m(w,""),m(p,!1)}catch(_t){m(y,_t.message??"Login failed",!0)}finally{m(x,!1)}}async function M(){if(c(f)==="proxy"&&c(g)){window.location.href=c(g);return}await x7(),m(p,!0)}let F=T(null),K=T(!1),V=T(!1),oe=T(!1),ne=T(!1),Se=T(ki([])),We=T(0),qe=T(ki([]));const Oe=mt(()=>c(qe).filter(_t=>_t.online).length),ut=mt(()=>c(qe).length===0?"none":c(Oe)===c(qe).length?"all":c(Oe)>0?"some":"offline");let kt=T(!1),Pe=T(!1);async function Lt(){if(!await c(F).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;m(K,!0);let _t;try{_t=(await Wg()).startedAt}catch{}try{await VN()}catch{}const Xt=Date.now()+6e4;for(;Date.now()<Xt;){await new Promise(Ye=>setTimeout(Ye,250));try{const Ye=await Wg();if(_t===void 0||Ye.startedAt!==_t){location.reload();return}}catch{}}location.reload()}async function pt(){m(d,!0);try{const _t=await P7();c(s)&&m(s,{...c(s),latestVersion:_t.latestVersion??void 0},!0)}catch{}finally{m(d,!1)}}async function Ot(){var Ye,Ft;if(!await c(F).show(`Update to v${(Ye=c(s))==null?void 0:Ye.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;m(a,!1),m(u,!0);const _t=(Ft=c(s))==null?void 0:Ft.startedAt;try{await D7()}catch{}const Xt=Date.now()+18e4;for(;Date.now()<Xt;){await new Promise(ci=>setTimeout(ci,1e3));try{const ci=await Wg();if(_t===void 0||ci.startedAt!==_t){location.reload();return}}catch{m(u,!1),m(K,!0)}}location.reload()}function Fe(_t){m(n,_t,!0),location.hash=_t}Js(async()=>{location.hash||(location.hash=c(n));const _t=()=>{m(n,i(),!0)};window.addEventListener("hashchange",_t);try{const Jt=await S7();m(f,Jt.mode,!0),m(g,Jt.proxyLogoutUrl??"",!0),c(f)==="password"&&(await fetch("/she/scripts")).status===401&&m(p,!0)}catch{}m(k,!0);async function Xt(){try{m(s,await Wg(),!0)}catch{}try{const[Jt,hi]=await Promise.all([UN(),Pl()]);m(Se,Array.isArray(hi.pinnedPackages)?hi.pinnedPackages:[],!0),m(We,Object.keys(Jt).filter(Ii=>!c(Se).includes(Ii)).length,!0)}catch{}}Xt();const Ye=setInterval(Xt,5e3),Ft=Tr("mqtt:status",Jt=>{Jt.connected===!1?(m(ne,!0),m(V,!1),m(oe,!1)):(m(ne,!1),m(V,Jt.ready===!1),m(oe,Jt.ready===!0))}),ci=Tr("matter:deviceList",Jt=>{Array.isArray(Jt.devices)&&m(qe,Jt.devices.map(hi=>({nodeId:String(hi.nodeId),online:!!hi.online})),!0)}),Li=Tr("matter:deviceStatus",Jt=>{if(Jt.nodeId===void 0)return;const hi=String(Jt.nodeId),Ii=!!Jt.online;m(qe,c(qe).map(Ui=>Ui.nodeId===hi?{...Ui,online:Ii}:Ui),!0)}),Ci=iA();m(kt,Ci.some(Jt=>Jt.level==="error"),!0),m(Pe,!c(kt)&&Ci.some(Jt=>Jt.level==="warn"),!0);const Ct=Tk(Jt=>{Jt.level==="error"?(m(kt,!0),m(Pe,!1)):Jt.level==="warn"&&!c(kt)&&m(Pe,!0)});return()=>{window.removeEventListener("hashchange",_t),clearInterval(Ye),Ft(),ci(),Li(),Ct()}});var Nt=Wee();ds("click",PT,()=>{c(r)&&m(r,!1),c(a)&&m(a,!1)});var et=wt(Nt);{var lt=_t=>{var Xt=Nee(),Ye=b(Xt),Ft=v(b(Ye),2);let ci;var Li=v(Ft,2);let Ci;var Ct=v(b(Li),2);{var Jt=N=>{var G=hee();H(()=>vn(G,"title",`${c(We)??""} package update${c(We)===1?"":"s"} available`)),I(N,G)};O(Ct,N=>{c(We)>0&&N(Jt)})}var hi=v(Li,2);let Ii;var Ui=v(b(hi),2);{var Hi=N=>{var G=fee();I(N,G)},Bi=N=>{var G=gee();I(N,G)},rn=N=>{var G=pee();I(N,G)};O(Ui,N=>{c(ne)?N(Hi):c(V)?N(Bi,1):c(oe)&&N(rn,2)})}var Oi=v(hi,2);let xi;var ji=v(Oi,2);let Ki;var zi=v(b(ji),2);{var Ni=N=>{var G=_ee();I(N,G)},Ve=N=>{var G=mee();I(N,G)},Rt=N=>{var G=vee();I(N,G)};O(zi,N=>{c(ut)==="all"?N(Ni):c(ut)==="some"?N(Ve,1):c(ut)==="offline"&&N(Rt,2)})}var Ut=v(ji,2);let fi;var ni=v(Ut,2);let Zi;var Wi=v(b(ni),2);{var Yi=N=>{var G=bee();I(N,G)},di=N=>{var G=yee();I(N,G)};O(Wi,N=>{c(kt)?N(Yi):c(Pe)&&N(di,1)})}var je=v(ni,4),X=v(b(je),2),He=b(X),ct=b(He);ct.nodeValue="v1.6.0 ";var Tt=v(ct);{var Wt=N=>{var G=wee();I(N,G)};O(Tt,N=>{var G,te;(G=c(s))!=null&&G.latestVersion&&!((te=c(s))!=null&&te.docker)&&N(Wt)})}var z=v(He,2);{var ae=N=>{var G=kee(),te=b(G),ue=v(b(te));ue.textContent="v1.6.0";var Y=v(ue,2);{var re=ke=>{var we=See(),ft=v(wt(we)),at=b(ft);H(()=>A(at,`v${c(s).latestVersion??""}`)),I(ke,we)},Te=ke=>{var we=Cee();I(ke,we)};O(Y,ke=>{var we;(we=c(s))!=null&&we.latestVersion?ke(re):ke(Te,-1)})}var fe=v(te,2),he=b(fe);{var Ze=ke=>{var we=xee(),ft=v(b(we));H(()=>A(ft,` Update to v${c(s).latestVersion??""}`)),$("click",we,Ot),I(ke,we)};O(he,ke=>{var we;(we=c(s))!=null&&we.latestVersion&&ke(Ze)})}var U=v(he,2),ie=b(U);let ye;var Ae=v(ie);H(()=>{U.disabled=c(d),ye=Et(ie,0,"svelte-1n46o8q",null,ye,{spinning:c(d)}),A(Ae,` ${c(d)?"Checking…":"Check for updates"}`)}),$("click",G,ke=>ke.stopPropagation()),$("click",U,pt),I(N,G)};O(z,N=>{var G;c(a)&&!((G=c(s))!=null&&G.docker)&&N(ae)})}var Ee=v(X,2),ot=b(Ee),ht=v(ot,2);{var Q=N=>{var G=Mee(),te=b(G);{var ue=he=>{var Ze=Dee(),U=b(Ze);{var ie=Qe=>{const st=mt(()=>Math.floor((Date.now()-c(s).startedAt)/1e3)),Ge=mt(()=>Math.floor(c(st)/86400)),Ht=mt(()=>Math.floor(c(st)%86400/3600)),Vt=mt(()=>Math.floor(c(st)%3600/60));var Di=Lee(),Gt=v(wt(Di)),_i=b(Gt);H(()=>A(_i,`${c(Ge)>0?c(Ge)+"d ":""}${c(Ht)>0||c(Ge)>0?c(Ht)+"h ":""}${c(Vt)??""}m`)),I(Qe,Di)};O(U,Qe=>{c(s).startedAt&&Qe(ie)})}var ye=v(U,3),Ae=b(ye),ke=v(ye,3),we=b(ke),ft=v(ke,3),at=b(ft),ze=v(ft,2);{var xt=Qe=>{var st=Iee(),Ge=v(wt(st)),Ht=b(Ge),Vt=v(Ge,3),Di=b(Vt);H(()=>{A(Ht,c(s).matterNodes??0),A(Di,c(s).matterEndpoints??0)}),I(Qe,st)};O(ze,Qe=>{c(s).matterEnabled&&Qe(xt)})}var Xe=v(ze,2);{var _e=Qe=>{var st=Eee(),Ge=v(wt(st)),Ht=b(Ge),Vt=v(Ge,3),Di=b(Vt);H(()=>{A(Ht,c(s).dbDocs??"—"),A(Di,c(s).dbViews??"—")}),I(Qe,st)};O(Xe,Qe=>{c(s).dbEnabled&&Qe(_e)})}var Me=v(Xe,3),Ce=b(Me),me=v(Me,3),Je=b(me),de=v(me,3),De=b(de);H(()=>{A(Ae,c(s).scripts),A(we,c(s).topics),A(at,c(s).mqttMsgPerSec??"—"),A(Ce,c(s).handlers??"—"),A(Je,c(s).memMb!=null?c(s).memMb+" MB":"—"),A(De,c(s).cpuPercent!=null?c(s).cpuPercent+" %":"—")}),I(he,Ze)},Y=he=>{var Ze=Pee();I(he,Ze)};O(te,he=>{c(s)?he(ue):he(Y,-1)})}var re=v(te,2),Te=b(re);{var fe=he=>{var Ze=Tee();$("click",Ze,()=>{m(r,!1),Lt()}),I(he,Ze)};O(Te,he=>{var Ze;(Ze=c(s))!=null&&Ze.docker||he(fe)})}$("click",G,he=>he.stopPropagation()),I(N,G)};O(ht,N=>{c(r)&&N(Q)})}var ce=v(Ee,2);let Le;var tt=v(ce,2);{var ei=N=>{var G=Ree();$("click",G,M),I(N,G)};O(tt,N=>{c(f)==="password"&&N(ei)})}var Dt=v(Ye,2),Ke=b(Dt);vs($c(Ke,{}),N=>m(F,N,!0),()=>c(F));var zt=v(Ke,2);let pi;var qt=b(zt);{let N=mt(()=>c(n)==="scripts");PK(qt,{get active(){return c(N)}})}var Pi=v(zt,2);let Mi;var Ei=b(Pi);fJ(Ei,{});var $i=v(Pi,2);let Be;var nt=b($i);KX(nt,{});var vi=v($i,2);let ui;var wi=b(vi);fX(wi,{});var gi=v(vi,2);let le;var $e=b(gi);uee($e,{});var gt=v(gi,2);let Mt;var ti=b(gt);CY(ti,{});var bt=v(gt,2);let bi;var W=b(bt);pZ(W,{});var J=v(bt,2);let se;var j=b(J);bZ(j,{}),H(()=>{ci=Et(Ft,1,"svelte-1n46o8q",null,ci,{active:c(n)==="scripts"}),Ci=Et(Li,1,"svelte-1n46o8q",null,Ci,{active:c(n)==="packages"}),Ii=Et(hi,1,"svelte-1n46o8q",null,Ii,{active:c(n)==="mqtt"}),xi=Et(Oi,1,"svelte-1n46o8q",null,xi,{active:c(n)==="security"}),Ki=Et(ji,1,"svelte-1n46o8q",null,Ki,{active:c(n)==="matter"}),fi=Et(Ut,1,"svelte-1n46o8q",null,fi,{active:c(n)==="db"}),Zi=Et(ni,1,"svelte-1n46o8q",null,Zi,{active:c(n)==="logs"}),Le=Et(ce,1,"nav-settings svelte-1n46o8q",null,Le,{active:c(n)==="config"}),pi=Et(zt,1,"page-wrap svelte-1n46o8q",null,pi,{hidden:c(n)!=="scripts"}),Mi=Et(Pi,1,"page-wrap svelte-1n46o8q",null,Mi,{hidden:c(n)!=="packages"}),Be=Et($i,1,"page-wrap svelte-1n46o8q",null,Be,{hidden:c(n)!=="mqtt"}),ui=Et(vi,1,"page-wrap svelte-1n46o8q",null,ui,{hidden:c(n)!=="matter"}),le=Et(gi,1,"page-wrap svelte-1n46o8q",null,le,{hidden:c(n)!=="security"}),Mt=Et(gt,1,"page-wrap svelte-1n46o8q",null,Mt,{hidden:c(n)!=="db"}),bi=Et(bt,1,"page-wrap svelte-1n46o8q",null,bi,{hidden:c(n)!=="config"}),se=Et(J,1,"page-wrap svelte-1n46o8q",null,se,{hidden:c(n)!=="logs"})}),$("click",Ft,()=>Fe("scripts")),$("click",Li,()=>Fe("packages")),$("click",hi,()=>Fe("mqtt")),$("click",Oi,()=>Fe("security")),$("click",ji,()=>Fe("matter")),$("click",Ut,()=>Fe("db")),$("click",ni,()=>{Fe("logs"),m(kt,!1),m(Pe,!1)}),$("click",He,N=>{N.stopPropagation(),m(a,!c(a)),m(r,!1)}),$("click",ot,N=>{N.stopPropagation(),m(r,!c(r)),m(a,!1)}),$("click",ce,()=>Fe("config")),I(_t,Xt)};O(et,_t=>{c(k)&&!c(p)&&_t(lt)})}var $t=v(et,2);{var xe=_t=>{var Xt=Oee(),Ye=b(Xt),Ft=v(b(Ye),4),ci=v(b(Ft),2),Li=v(Ft,2);{var Ci=hi=>{var Ii=Aee(),Ui=b(Ii);H(()=>A(Ui,c(y))),I(hi,Ii)};O(Li,hi=>{c(y)&&hi(Ci)})}var Ct=v(Li,2),Jt=b(Ct);H(()=>{ci.disabled=c(x),Ct.disabled=c(x)||!c(w),A(Jt,c(x)?"Signing in…":"Sign in")}),ds("submit",Ye,hi=>{hi.preventDefault(),D()}),Kt(ci,()=>c(w),hi=>m(w,hi)),I(_t,Xt)};O($t,_t=>{c(p)&&_t(xe)})}var rt=v($t,2);{var dt=_t=>{var Xt=Fee();I(_t,Xt)};O(rt,_t=>{c(K)&&_t(dt)})}var It=v(rt,2);{var Si=_t=>{var Xt=Hee();I(_t,Xt)};O(It,_t=>{c(u)&&_t(Si)})}I(o,Nt),Hs()}eo(["click"]);BH(Bee,{target:document.getElementById("app")});export{dM as t};
|
|
230
|
+
*[stopped]*`,toolEvents:c(Oe).length>0?[...c(Oe)]:void 0}],!0)}else m(d,J.message,!0)}finally{D=null,m(s,null),m(Oe,[],!0),m(a,!1)}}}function xi(){D==null||D.abort()}function ji(W){W.key==="Enter"&&!W.shiftKey&&(W.preventDefault(),Oi())}function Ki(){m(n,[],!0),m(d,"")}const zi=["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 Ni(W){m(r,W,!0),kt==null||kt.focus()}var Ve=iY(),Rt=wt(Ve),Ut=b(Rt),fi=v(b(Ut),2);{var ni=W=>{var J=yZ(),se=b(J);{var j=G=>{var te=Io();H(()=>A(te,`${c(u).provider??""} · ${(c(g)||c(u).model)??""}`)),I(G,te)},N=G=>{var te=Io("Not configured");I(G,te)};O(se,G=>{c(pt)?G(j):G(N,-1)})}H(()=>vn(J,"title",`Provider: ${c(u).provider??""}`)),I(W,J)};O(fi,W=>{c(u)&&W(ni)})}var Zi=v(fi,2);{var Wi=W=>{var J=wZ();$("click",J,Ki),I(W,J)};O(Zi,W=>{c(n).length>0&&W(Wi)})}var Yi=v(Ut,2),di=b(Yi);{var je=W=>{var J=SZ();I(W,J)},X=W=>{var J=kZ(),se=b(J),j=b(se);{var N=ue=>{var Y=CZ(),re=v(wt(Y)),Te=b(re);H(()=>A(Te,t().id)),I(ue,Y)},G=ue=>{var Y=Io("No view selected. Ask a general sheDB view question.");I(ue,Y)};O(j,ue=>{t()?ue(N):ue(G,-1)})}var te=v(se,2);oi(te,17,()=>zi,Vi,(ue,Y)=>{var re=xZ(),Te=b(re);H(()=>A(Te,c(Y))),$("click",re,()=>Ni(c(Y))),I(ue,re)}),I(W,J)};O(di,W=>{c(pt)?c(n).length===0&&c(s)===null&&W(X,1):W(je)})}var He=v(di,2);oi(He,17,()=>c(n),Vi,(W,J,se)=>{var j=TZ(),N=b(j);{var G=ue=>{var Y=LZ(),re=b(Y);H(()=>A(re,c(J).content)),I(ue,Y)},te=ue=>{const Y=mt(()=>et(c(J).content)),re=mt(()=>$t(c(Y)));var Te=PZ(),fe=wt(Te);{var he=ke=>{var we=_D();oi(we,21,()=>c(J).toolEvents,Vi,(ft,at)=>{var ze=Gs(),xt=wt(ze);{var Xe=Me=>{var Ce=gD(),me=v(b(Ce)),Je=b(me);H(de=>A(Je,de),[()=>c(at).name.replace(/_/g," ")]),I(Me,Ce)},_e=Me=>{var Ce=pD(),me=v(b(Ce)),Je=b(me);H(de=>A(Je,de),[()=>c(at).name.replace(/_/g," ")]),I(Me,Ce)};O(xt,Me=>{c(at).type==="tool_call"?Me(Xe):Me(_e,-1)})}I(ft,ze)}),I(ke,we)};O(fe,ke=>{var we;(we=c(J).toolEvents)!=null&&we.length&&ke(he)})}var Ze=v(fe,2),U=b(Ze);oi(U,17,()=>c(Y),Vi,(ke,we,ft)=>{var at=Gs(),ze=wt(at);{var xt=_e=>{var Me=mD();oc(Me,()=>Xt(c(we).text),!0),I(_e,Me)},Xe=_e=>{const Me=mt(()=>`${se}:${ft}`),Ce=mt(()=>It(c(we).text)),me=mt(()=>c(p).has(c(Me))),Je=mt(()=>c(we).lang==="filter");var de=EZ(),De=b(de),Qe=b(De),st=b(Qe),Ge=v(Qe,2),Ht=b(Ge),Vt=v(De,2);let Di;var Gt=b(Vt),_i=b(Gt);oc(_i,()=>_t(c(we).text,c(we).lang??""),!0);var Qi=v(Gt,2);{var Ri=Qt=>{var un=IZ(),an=b(un);H(()=>A(an,c(me)?"▲ collapse":"▼ expand")),$("click",un,()=>Si(c(Me))),I(Qt,un)};O(Qi,Qt=>{c(Ce)&&Qt(Ri)})}H(()=>{A(st,c(Je)?"filter":c(we).lang),Di=Et(Vt,1,"code-body svelte-1twuiul",null,Di,{collapsed:c(Ce)&&!c(me)})}),$("click",Ht,()=>Ft(c(we).text)),I(_e,de)};O(ze,_e=>{c(we).type==="text"?_e(xt):_e(Xe,-1)})}I(ke,at)});var ie=v(U,2);{var ye=ke=>{var we=DZ(),ft=b(we),at=b(ft);H(ze=>A(at,ze),[()=>rt(c(re))]),$("click",ft,()=>e.onApplyView(c(re))),I(ke,we)},Ae=mt(()=>xe(c(re))&&e.onApplyView);O(ie,ke=>{c(Ae)&&ke(ye)})}I(ue,Te)};O(N,ue=>{c(J).role==="user"?ue(G):ue(te,-1)})}H(()=>Et(j,1,`message ${c(J).role??""}`,"svelte-1twuiul")),I(W,j)});var ct=v(He,2);{var Tt=W=>{var J=_D();oi(J,21,()=>c(Oe),Vi,(se,j)=>{var N=Gs(),G=wt(N);{var te=Y=>{var re=gD(),Te=v(b(re)),fe=b(Te);H(he=>A(fe,he),[()=>c(j).name.replace(/_/g," ")]),I(Y,re)},ue=Y=>{var re=pD(),Te=v(b(re)),fe=b(Te);H(he=>A(fe,he),[()=>c(j).name.replace(/_/g," ")]),I(Y,re)};O(G,Y=>{c(j).type==="tool_call"?Y(te):Y(ue,-1)})}I(se,N)}),I(W,J)};O(ct,W=>{c(Oe).length>0&&W(Tt)})}var Wt=v(ct,2);{var z=W=>{var J=MZ(),se=b(J),j=b(se),N=b(j);H(()=>A(N,F[c(M)])),I(W,J)};O(Wt,W=>{c(a)&&c(s)===null&&c(Oe).length===0&&W(z)})}var ae=v(Wt,2);{var Ee=W=>{var J=NZ(),se=b(J);oi(se,21,()=>lt(c(s)),Vi,(j,N)=>{var G=Gs(),te=wt(G);{var ue=re=>{var Te=mD();oc(Te,()=>Xt(c(N).text),!0),I(re,Te)},Y=re=>{var Te=RZ(),fe=b(Te),he=b(fe),Ze=b(he),U=v(fe,2),ie=b(U);oc(ie,()=>_t(c(N).text,c(N).lang??""),!0),H(()=>A(Ze,c(N).lang)),I(re,Te)};O(te,re=>{c(N).type==="text"?re(ue):re(Y,-1)})}I(j,G)}),I(W,J)};O(ae,W=>{c(s)!==null&&W(Ee)})}vs(Yi,W=>Pe=W,()=>Pe);var ot=v(Yi,2);{var ht=W=>{var J=AZ(),se=b(J);H(()=>A(se,c(d))),I(W,J)};O(ot,W=>{c(d)&&W(ht)})}var Q=v(ot,2),ce=b(Q),Le=b(ce),tt=v(ce,2),ei=b(tt),Dt=v(tt,2),Ke=b(Dt),zt=v(Dt,2),pi=b(zt),qt=v(Q,2),Pi=b(qt);{var Mi=W=>{var J=OZ();let se;var j=v(b(J),2),N=b(j),G=v(j,2),te=b(G);H(()=>{se=Et(J,1,"file-chip svelte-1twuiul",null,se,{inactive:!c(Se)}),A(N,t().id),vn(G,"title",c(Se)?"Remove from context":"Re-add to context"),A(te,c(Se)?"×":"+")}),$("click",G,()=>m(Se,!c(Se))),I(W,J)};O(Pi,W=>{t()&&W(Mi)})}var Ei=v(Pi,2);oi(Ei,17,()=>c(ne),Vi,(W,J,se)=>{const j=mt(()=>Ci(c(J).name));var N=FZ(),G=b(N),te=b(G),ue=v(G,2),Y=b(ue),re=v(ue,2);H((Te,fe)=>{Et(G,1,`badge badge-${Te??""}`,"svelte-1twuiul"),A(te,fe),A(Y,c(J).name)},[()=>c(j).toLowerCase(),()=>Ct(c(j))]),$("click",re,()=>Jt(se)),I(W,N)});var $i=v(Ei,2),Be=v($i,2);vs(Be,W=>qe=W,()=>qe);var nt=v(qt,2);let vi;var ui=b(nt);let wi;var gi=b(ui);vs(gi,W=>kt=W,()=>kt);var le=v(ui,2);{var $e=W=>{var J=HZ();$("click",J,xi),I(W,J)},gt=W=>{var J=WZ();H(se=>J.disabled=se,[()=>!c(r).trim()||!c(pt)]),$("click",J,Oi),I(W,J)};O(le,W=>{c(a)?W($e):W(gt,-1)})}var Mt=v(nt,2);{var ti=W=>{var J=$Z(),se=b(J),j=b(se),N=v(se,2);{var G=re=>{var Te=zZ();oi(Te,21,()=>c(f),Vi,(fe,he)=>{var Ze=BZ(),U=b(Ze),ie={};H(()=>{A(U,c(he)),ie!==(ie=c(he))&&(Ze.value=(Ze.__value=c(he))??"")}),I(fe,Ze)}),H(()=>Te.disabled=c(a)),As(Te,()=>c(g),fe=>m(g,fe)),I(re,Te)},te=re=>{var Te=VZ(),fe=b(Te);H(()=>A(fe,c(g)||c(u).model)),I(re,Te)};O(N,re=>{c(f).length>0?re(G):re(te,-1)})}var ue=v(N,2);{var Y=re=>{var Te=jZ();$("click",Te,ci),I(re,Te)};O(ue,re=>{c(u).provider==="ollama"&&re(Y)})}H(()=>A(j,c(u).provider)),I(W,J)};O(Mt,W=>{c(pt)&&c(u)&&W(ti)})}var bt=v(Rt,2);{var bi=W=>{var J=tY(),se=b(J),j=b(se),N=b(j),G=b(N),te=v(N,2),ue=v(j,2),Y=b(ue);{var re=he=>{var Ze=UZ();I(he,Ze)},Te=he=>{var Ze=qZ(),U=b(Ze);H(()=>A(U,c(k))),I(he,Ze)},fe=he=>{var Ze=eY(),U=b(Ze);{var ie=_e=>{var Me=GZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).version)),I(_e,Me)};O(U,_e=>{c(y).version&&_e(ie)})}var ye=v(U,2);{var Ae=_e=>{var Me=KZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).details.family)),I(_e,Me)};O(ye,_e=>{var Me;(Me=c(y).details)!=null&&Me.family&&_e(Ae)})}var ke=v(ye,2);{var we=_e=>{var Me=ZZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).details.parameter_size)),I(_e,Me)};O(ke,_e=>{var Me;(Me=c(y).details)!=null&&Me.parameter_size&&_e(we)})}var ft=v(ke,2);{var at=_e=>{var Me=YZ(),Ce=v(wt(Me)),me=b(Ce);H(()=>A(me,c(y).details.quantization_level)),I(_e,Me)};O(ft,_e=>{var Me;(Me=c(y).details)!=null&&Me.quantization_level&&_e(at)})}var ze=v(ft,2);{var xt=_e=>{var Me=JZ(),Ce=v(wt(Me),2);oi(Ce,21,()=>c(y).running,Vi,(me,Je)=>{var de=XZ(),De=b(de);H(Qe=>A(De,`${c(Je).name??""} · ${Qe??""} VRAM`),[()=>Li(c(Je).size_vram)]),I(me,de)}),I(_e,Me)},Xe=_e=>{var Me=QZ();I(_e,Me)};O(ze,_e=>{c(y).running&&c(y).running.length>0?_e(xt):c(y).running!==null&&_e(Xe,1)})}I(he,Ze)};O(Y,he=>{c(x)?he(re):c(k)?he(Te,1):c(y)&&he(fe,2)})}H(()=>{var he;return A(G,`Ollama · ${(c(g)||((he=c(u))==null?void 0:he.model))??""}`)}),$("click",J,()=>m(w,!1)),$("click",se,he=>he.stopPropagation()),$("click",te,()=>m(w,!1)),I(W,J)};O(bt,W=>{c(w)&&W(bi)})}H(W=>{A(pi,W),vi=Et(nt,1,"input-row svelte-1twuiul",null,vi,{"drag-over":c(We)}),wi=Et(ui,1,"textarea-wrap svelte-1twuiul",null,wi,{loading:c(a)}),vn(gi,"placeholder",c(pt)?"Ask anything… (Enter to send, Shift+Enter for newline, drag & drop files to add context)":"AI not configured"),gi.disabled=c(a)||!c(pt)},[()=>Li(c(Ot))]),ks(Le,()=>c(K),W=>m(K,W)),ks(ei,()=>c(V),W=>m(V,W)),ks(Ke,()=>c(oe),W=>m(oe,W)),$("click",$i,hi),$("change",Be,Ui),ds("dragover",nt,Bi),ds("dragleave",nt,rn),ds("drop",nt,Hi),$("keydown",gi,ji),Kt(gi,()=>c(r),W=>m(r,W)),I(o,Ve),Hs()}eo(["click","change","keydown"]);var sY=P('<div class="me svelte-1pxdb1"></div>');function mS(o,e){Fs(e,!0);let t=Su(e,"value",15,""),i=Su(e,"language",3,"javascript"),n,s,r=!1;Js(()=>{const d=i()==="json"?{formatOnPaste:!0,autoIndent:"full"}:{};s=_r.create(n,{value:t(),language:i(),theme:"vs-dark",minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', monospace",automaticLayout:!0,wordWrap:"on",lineNumbers:"on",renderLineHighlight:"none",overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:6,horizontalScrollbarSize:6},...d}),s.onDidChangeModelContent(()=>{r||t(s.getValue())})}),zy(()=>s==null?void 0:s.dispose()),Vn(()=>{!s||s.getValue()===t()||(r=!0,s.setValue(t()),r=!1)});var a=sY();vs(a,d=>n=d,()=>n),I(o,a),Hs()}var oY=P('<!> <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),rY=P('<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>'),vD=P('<div class="form-error svelte-rrt0o"> </div>'),aY=P('<div class="new-item-form svelte-rrt0o"><input placeholder="device/lamp1" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),bD=P("<li> </li>"),yD=P('<div class="error-bar svelte-rrt0o"> </div>'),wD=P('<div class="loading svelte-rrt0o">Loading…</div>'),lY=P('<div class="monaco-doc-wrap svelte-rrt0o"><!></div>'),cY=P('<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),dY=P('<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>'),uY=P('<div class="new-item-form svelte-rrt0o"><input placeholder="myView" class="svelte-rrt0o"/> <button class="svelte-rrt0o">Create</button></div> <!>',1),hY=P('<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>'),fY=P('<span class="badge-error svelte-rrt0o">error</span>'),gY=P('<span class="badge-ok svelte-rrt0o"> </span>'),pY=P('<pre class="result-error svelte-rrt0o"> </pre>'),_Y=P('<pre class="result-json svelte-rrt0o"> </pre>'),mY=P('<div class="view-result svelte-rrt0o"><div class="result-header svelte-rrt0o">Result <!></div> <!></div>'),vY=P('<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>'),bY=P('<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),yY=P('<div class="chat-resize-handle svelte-rrt0o" role="separator"></div> <div class="chat-pane svelte-rrt0o"><!></div>',1),wY=P('<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>'),SY=P('<div class="db-root svelte-rrt0o" role="presentation"><div class="panel-tabs svelte-rrt0o"><button>Documents</button> <button>Views</button> <!></div> <!></div>');function CY(o,e){Fs(e,!0);const t=je=>{var X=oY(),He=wt(X);vs($c(He,{}),ct=>Ct=ct,()=>Ct),I(je,X)};let i=T(ki([])),n=T(null),s=T("{}"),r=T(!1),a=T(null);const d="she-db-selected-view";let u=T(ki([])),f=T(ki(localStorage.getItem(d))),g=T("#"),p=T("// emit(this.someProperty)"),w=T(""),y=T(""),x=T(!1),k=T(!1),D=T(null),M=T(!1),F=T(null),K=T("she/db/view/");const V="she-db-panel";let oe=T(ki(localStorage.getItem(V)??"docs")),ne=T(""),Se=T(!1),We=T(null),qe=T(""),Oe=T(!1),ut=T(null);const kt="she-db-sidebar-width";let Pe=T(ki(parseInt(localStorage.getItem(kt)??"220",10))),Lt=!1,pt=0,Ot=0;const Fe="she-db-chat-width",Nt="she-db-chat-open";let et=T(localStorage.getItem(Nt)==="true"),lt=T(ki(parseInt(localStorage.getItem(Fe)??"320",10))),$t=!1,xe=0,rt=0;const dt=mt(()=>c(f)?{id:c(f),filter:c(g),map:c(p),reduce:c(w)}:null);function It(je){je.filter!==void 0&&m(g,je.filter,!0),je.map!==void 0&&m(p,je.map,!0),je.reduce!==void 0&&m(w,je.reduce,!0)}Vn(()=>{localStorage.setItem(Nt,String(c(et)))}),Vn(()=>{localStorage.setItem(V,c(oe))}),Vn(()=>{c(f)?localStorage.setItem(d,c(f)):localStorage.removeItem(d)});function Si(je){Lt=!0,pt=je.clientX,Ot=c(Pe),je.preventDefault()}function _t(je){Lt&&m(Pe,Math.max(140,Math.min(500,Ot+je.clientX-pt)),!0),$t&&m(lt,Math.max(240,Math.min(600,rt-(je.clientX-xe))),!0)}function Xt(){Lt&&(Lt=!1,localStorage.setItem(kt,String(c(Pe)))),$t&&($t=!1,localStorage.setItem(Fe,String(c(lt))))}function Ye(je){$t=!0,xe=je.clientX,rt=c(lt),je.preventDefault()}async function Ft(){try{m(i,await jN(),!0)}catch{}}async function ci(){try{m(u,await $N(),!0)}catch{}}async function Li(je){m(n,je,!0),m(a,null),m(r,!0);try{const X=await N7(je);m(s,JSON.stringify(X,null,2),!0)}catch(X){m(a,X instanceof Error?X.message:String(X),!0)}finally{m(r,!1)}}async function Ci(){if(c(n)){m(a,null);try{const je=JSON.parse(c(s));await BE(c(n),je)}catch(je){m(a,je instanceof Error?je.message:String(je),!0)}}}let Ct;async function Jt(){if(c(n)&&await Ct.show(`Delete document "${c(n)}"?`,{confirm:"Delete",danger:!0}))try{await A7(c(n)),m(n,null),m(s,"{}")}catch(je){m(a,je instanceof Error?je.message:String(je),!0)}}async function hi(){const je=c(ne).trim();if(je){m(We,null);try{await BE(je,{}),m(Se,!1),m(ne,""),await Li(je)}catch(X){m(We,X instanceof Error?X.message:String(X),!0)}}}async function Ii(je){m(f,je,!0),m(F,null),m(M,!0),m(D,null);try{const X=await O7(je);m(g,X.filter??"",!0),m(p,X.map,!0),m(w,X.reduce??"",!0),m(y,X.description??"",!0),m(x,X.mqttpub??!1,!0),m(k,X.retain??!1,!0),m(D,await gS(je).catch(()=>null),!0)}catch(X){m(F,X instanceof Error?X.message:String(X),!0)}finally{m(M,!1)}}async function Ui(){if(c(f)){m(F,null);try{const je={map:c(p)};c(g).trim()&&(je.filter=c(g).trim()),c(w).trim()&&(je.reduce=c(w).trim()),c(y).trim()&&(je.description=c(y).trim()),c(x)&&(je.mqttpub=!0),c(k)&&(je.retain=!0),await zE(c(f),je)}catch(je){m(F,je instanceof Error?je.message:String(je),!0)}}}async function Hi(){if(c(f))try{m(D,await gS(c(f)),!0)}catch(je){m(F,je instanceof Error?je.message:String(je),!0)}}async function Bi(){if(c(f)&&await Ct.show(`Delete view "${c(f)}"?`,{confirm:"Delete",danger:!0}))try{await F7(c(f)),m(f,null),m(g,""),m(p,"// emit(this.someProperty)"),m(w,""),m(y,""),m(x,!1),m(k,!1),m(D,null)}catch(je){m(F,je instanceof Error?je.message:String(je),!0)}}async function rn(){if(!c(qe).trim())return;const je=c(qe).trim();m(ut,null);try{await zE(je,{map:"// emit(this.someProperty)"}),m(Oe,!1),m(qe,""),await ci(),await Ii(je)}catch(X){m(ut,X instanceof Error?X.message:String(X),!0)}}let Oi=T(""),xi=T(""),ji=mt(()=>[...c(i)].filter(je=>!c(Oi)||je.toLowerCase().includes(c(Oi).toLowerCase())).sort()),Ki=mt(()=>[...c(u)].filter(je=>!c(xi)||je.toLowerCase().includes(c(xi).toLowerCase())).sort());Js(()=>{Ft(),ci().then(()=>{c(f)&&c(u).includes(c(f))?Ii(c(f)):m(f,null)}),Pl().then(Tt=>{const Wt=Tt.dbPrefix||"she/db/",z=Wt.endsWith("/")?Wt:Wt+"/";m(K,z+"view/")}).catch(()=>{});const je=Tr("db:ids",Tt=>{m(i,Tt.ids??[],!0)}),X=Tr("db:viewIds",Tt=>{m(u,Tt.ids??[],!0)}),He=Tr("db:change",async Tt=>{const Wt=Tt.id;c(n)===Wt&&(Tt.doc===null?(m(n,null),m(s,"{}")):m(s,JSON.stringify(Tt.doc,null,2),!0))}),ct=Tr("db:viewUpdate",async Tt=>{const Wt=Tt.id;c(f)===Wt&&m(D,await gS(Wt).catch(()=>null),!0)});return()=>{je(),X(),He(),ct()}});var zi=SY(),Ni=b(zi),Ve=b(Ni);let Rt;var Ut=v(Ve,2);let fi;var ni=v(Ut,2);{var Zi=je=>{var X=rY();let He;H(()=>{He=Et(X,1,"ai-toggle svelte-rrt0o",null,He,{"ai-open":c(et)}),vn(X,"title",c(et)?"Close AI assistant":"Open AI assistant")}),$("click",X,()=>m(et,!c(et))),I(je,X)};O(ni,je=>{c(oe)==="views"&&je(Zi)})}var Wi=v(Ni,2);{var Yi=je=>{var X=dY(),He=b(X);let ct;var Tt=b(He),Wt=b(Tt),z=v(Tt,2);{var ae=Dt=>{var Ke=aY(),zt=wt(Ke),pi=b(zt),qt=v(pi,2),Pi=v(zt,2);{var Mi=Ei=>{var $i=vD(),Be=b($i);H(()=>A(Be,c(We))),I(Ei,$i)};O(Pi,Ei=>{c(We)&&Ei(Mi)})}$("keydown",pi,Ei=>Ei.key==="Enter"&&hi()),Kt(pi,()=>c(ne),Ei=>m(ne,Ei)),$("click",qt,hi),I(Dt,Ke)};O(z,Dt=>{c(Se)&&Dt(ae)})}var Ee=v(z,2),ot=b(Ee),ht=v(Ee,2);oi(ht,20,()=>c(ji),Dt=>Dt,(Dt,Ke)=>{var zt=bD();let pi;var qt=b(zt);H(()=>{pi=Et(zt,1,"flat-item svelte-rrt0o",null,pi,{"active-item":c(n)===Ke}),A(qt,Ke)}),$("click",zt,()=>Li(Ke)),I(Dt,zt)});var Q=v(He,2),ce=v(Q,2),Le=b(ce);{var tt=Dt=>{var Ke=cY(),zt=wt(Ke),pi=b(zt),qt=b(pi),Pi=v(pi,2),Mi=v(Pi,2),Ei=v(zt,2);{var $i=ui=>{var wi=yD(),gi=b(wi);H(()=>A(gi,c(a))),I(ui,wi)};O(Ei,ui=>{c(a)&&ui($i)})}var Be=v(Ei,2);{var nt=ui=>{var wi=wD();I(ui,wi)},vi=ui=>{var wi=lY(),gi=b(wi);mS(gi,{language:"json",get value(){return c(s)},set value(le){m(s,le,!0)}}),I(ui,wi)};O(Be,ui=>{c(r)?ui(nt):ui(vi,-1)})}H(()=>A(qt,c(n))),$("click",Pi,Ci),$("click",Mi,Jt),I(Dt,Ke)},ei=Dt=>{t(Dt)};O(Le,Dt=>{c(n)?Dt(tt):Dt(ei,-1)})}H(()=>ct=zo(He,"",ct,{width:`${c(Pe)??""}px`})),$("click",Wt,()=>{m(Se,!c(Se)),m(We,null)}),Kt(ot,()=>c(Oi),Dt=>m(Oi,Dt)),$("mousedown",Q,Si),I(je,X)},di=je=>{var X=wY(),He=b(X);let ct;var Tt=b(He),Wt=b(Tt),z=v(Tt,2);{var ae=zt=>{var pi=uY(),qt=wt(pi),Pi=b(qt),Mi=v(Pi,2),Ei=v(qt,2);{var $i=Be=>{var nt=vD(),vi=b(nt);H(()=>A(vi,c(ut))),I(Be,nt)};O(Ei,Be=>{c(ut)&&Be($i)})}$("keydown",Pi,Be=>Be.key==="Enter"&&rn()),Kt(Pi,()=>c(qe),Be=>m(qe,Be)),$("click",Mi,rn),I(zt,pi)};O(z,zt=>{c(Oe)&&zt(ae)})}var Ee=v(z,2),ot=b(Ee),ht=v(Ee,2);oi(ht,20,()=>c(Ki),zt=>zt,(zt,pi)=>{var qt=bD();let Pi;var Mi=b(qt);H(()=>{Pi=Et(qt,1,"flat-item svelte-rrt0o",null,Pi,{"active-item":c(f)===pi}),A(Mi,pi)}),$("click",qt,()=>Ii(pi)),I(zt,qt)});var Q=v(He,2),ce=v(Q,2),Le=b(ce);{var tt=zt=>{var pi=bY(),qt=wt(pi),Pi=b(qt),Mi=b(Pi),Ei=v(Pi,2),$i=v(Ei,2),Be=v($i,2),nt=v(qt,2);{var vi=le=>{var $e=yD(),gt=b($e);H(()=>A(gt,c(F))),I(le,$e)};O(nt,le=>{c(F)&&le(vi)})}var ui=v(nt,2);{var wi=le=>{var $e=wD();I(le,$e)},gi=le=>{var $e=vY(),gt=b($e),Mt=v(b(gt),2),ti=b(Mt),bt=v(gt,2),bi=v(b(bt),2),W=b(bi),J=v(bt,2),se=v(b(J),2),j=b(se);mS(j,{language:"javascript",get value(){return c(p)},set value(Ae){m(p,Ae,!0)}});var N=v(J,2),G=v(b(N),2),te=b(G);mS(te,{language:"javascript",get value(){return c(w)},set value(Ae){m(w,Ae,!0)}});var ue=v(N,2),Y=b(ue),re=b(Y),Te=v(re,4),fe=v(b(Te)),he=b(fe),Ze=v(Y,2);{var U=Ae=>{var ke=hY(),we=b(ke);ks(we,()=>c(k),ft=>m(k,ft)),I(Ae,ke)};O(Ze,Ae=>{c(x)&&Ae(U)})}var ie=v(ue,2);{var ye=Ae=>{var ke=mY(),we=b(ke),ft=v(b(we));{var at=Me=>{var Ce=fY();I(Me,Ce)},ze=Me=>{var Ce=gY(),me=b(Ce);H(()=>A(me,`${c(D).length??0??""} items · rev ${c(D)._rev??""}`)),I(Me,Ce)};O(ft,Me=>{c(D).error?Me(at):Me(ze,-1)})}var xt=v(we,2);{var Xe=Me=>{var Ce=pY(),me=b(Ce);H(()=>A(me,c(D).error)),I(Me,Ce)},_e=Me=>{var Ce=_Y(),me=b(Ce);H(Je=>A(me,Je),[()=>JSON.stringify(c(D).result,null,2)]),I(Me,Ce)};O(xt,Me=>{c(D).error?Me(Xe):Me(_e,-1)})}I(Ae,ke)};O(ie,Ae=>{c(D)&&Ae(ye)})}H(()=>A(he,`${c(K)??""}${c(f)??""} on every update`)),Kt(ti,()=>c(y),Ae=>m(y,Ae)),Kt(W,()=>c(g),Ae=>m(g,Ae)),ks(re,()=>c(x),Ae=>m(x,Ae)),I(le,$e)};O(ui,le=>{c(M)?le(wi):le(gi,-1)})}H(()=>A(Mi,c(f))),$("click",Ei,Ui),$("click",$i,Hi),$("click",Be,Bi),I(zt,pi)},ei=zt=>{t(zt)};O(Le,zt=>{c(f)?zt(tt):zt(ei,-1)})}var Dt=v(ce,2);{var Ke=zt=>{var pi=yY(),qt=wt(pi),Pi=v(qt,2);let Mi;var Ei=b(Pi);nY(Ei,{get currentView(){return c(dt)},onApplyView:It}),H(()=>Mi=zo(Pi,"",Mi,{width:`${c(lt)??""}px`})),$("mousedown",qt,Ye),I(zt,pi)};O(Dt,zt=>{c(et)&&zt(Ke)})}H(()=>ct=zo(He,"",ct,{width:`${c(Pe)??""}px`})),$("click",Wt,()=>{m(Oe,!c(Oe)),m(ut,null)}),Kt(ot,()=>c(xi),zt=>m(xi,zt)),$("mousedown",Q,Si),I(je,X)};O(Wi,je=>{c(oe)==="docs"?je(Yi):je(di,-1)})}H(()=>{Rt=Et(Ve,1,"svelte-rrt0o",null,Rt,{active:c(oe)==="docs"}),fi=Et(Ut,1,"svelte-rrt0o",null,fi,{active:c(oe)==="views"})}),$("mousemove",zi,_t),$("mouseup",zi,Xt),ds("mouseleave",zi,Xt),$("click",Ve,()=>m(oe,"docs")),$("click",Ut,()=>m(oe,"views")),I(o,zi),Hs()}eo(["mousemove","mouseup","click","keydown","mousedown"]);var xY=P('<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),kY=P('<label class="svelte-1ua3isv">Pairing Code / QR <input type="text" placeholder="MT:..." class="svelte-1ua3isv"/></label>'),SD=P('<p class="err svelte-1ua3isv"> </p>'),LY=P('<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>'),IY=P('<span class="device-name svelte-1ua3isv"> </span> <span class="device-nodeid svelte-1ua3isv"> </span>',1),EY=P('<span class="device-name svelte-1ua3isv"> </span>'),DY=P('<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>'),PY=P('<li class="empty svelte-1ua3isv">No paired devices</li>'),TY=P('<p class="info svelte-1ua3isv">Loading…</p>'),MY=P('<p class="device-subtitle svelte-1ua3isv"> </p>'),RY=P('<span class="ep-chip svelte-1ua3isv"> </span>'),NY=P('<span class="attr-id svelte-1ua3isv"> </span>'),AY=P('<button class="attr-action-btn svelte-1ua3isv"> </button>'),OY=P('<div class="attr-actions svelte-1ua3isv"></div>'),FY=P('<span class="cmd-sep svelte-1ua3isv">,</span>'),HY=P('<span class="cmd-name svelte-1ua3isv"> </span><span class="cmd-id svelte-1ua3isv"> </span>',1),WY=P('<span class="cmd-id svelte-1ua3isv"> </span>'),BY=P("<!> <!>",1),zY=P('<span class="cmd-list svelte-1ua3isv"></span>'),VY=P(' <span class="cmd-id svelte-1ua3isv"> </span>',1),jY=P('<tr class="svelte-1ua3isv"><td class="svelte-1ua3isv"><!></td><td class="svelte-1ua3isv"> </td></tr>'),$Y=P('<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>'),UY=P('<th class="svelte-1ua3isv"> </th>'),qY=P('<td class="svelte-1ua3isv"> </td>'),GY=P('<tr class="svelte-1ua3isv"></tr>'),KY=P('<table class="attr-arr-table svelte-1ua3isv"><thead class="svelte-1ua3isv"><tr class="svelte-1ua3isv"></tr></thead><tbody class="svelte-1ua3isv"></tbody></table>'),ZY=P('<tr class="svelte-1ua3isv"><td class="attr-obj-key svelte-1ua3isv"> </td><td class="attr-obj-val svelte-1ua3isv"> </td></tr>'),YY=P('<table class="attr-obj-table svelte-1ua3isv"><tbody class="svelte-1ua3isv"></tbody></table>'),XY=P('<a class="attr-link svelte-1ua3isv" target="_blank" rel="noopener noreferrer"> </a>'),JY=P('<span class="attr-val svelte-1ua3isv"> </span>'),QY=P('<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>'),eX=P('<tr class="cluster-hdr-row svelte-1ua3isv"><td colspan="3" class="cluster-hdr-cell svelte-1ua3isv"> </td></tr> <!>',1),tX=P('<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>'),iX=P('<p class="no-clusters svelte-1ua3isv">No clusters</p>'),nX=P('<details class="svelte-1ua3isv"><summary class="svelte-1ua3isv"> <span class="ep-id svelte-1ua3isv"> </span> <span class="ep-chips svelte-1ua3isv"></span></summary> <!></details>'),sX=P('<div class="detail-hdr svelte-1ua3isv"><h2 class="svelte-1ua3isv"> </h2> <!> <p class="detail-nodeid svelte-1ua3isv"> </p></div> <!>',1),oX=P('<p class="info svelte-1ua3isv">Select a device to view its endpoints.</p>'),rX=P('<span class="stream-badge svelte-1ua3isv"> </span>'),aX=P('<span class="stream-empty svelte-1ua3isv">Waiting for events…</span>'),vS=P(' <span class="e-sub svelte-1ua3isv"> </span>',1),lX=P('<span class="e-badge e-badge-status svelte-1ua3isv">status</span> <span class="e-node svelte-1ua3isv"> <!></span> <span> </span>',1),cX=P('<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),dX=P('<div class="er svelte-1ua3isv"><span class="e-ts svelte-1ua3isv"> </span> <!></div>'),uX=P('<div class="stream-body svelte-1ua3isv"><!></div>'),hX=P('<!> <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 fX(o,e){Fs(e,!0);const t={onOff:{onOff:[{label:"On",command:"on"},{label:"Off",command:"off"},{label:"Toggle",command:"toggle"}]},levelControl:{currentLevel:[{label:"Step ▲",command:"stepWithOnOff",args:{stepMode:0,stepSize:25,transitionTime:5}},{label:"Step ▼",command:"stepWithOnOff",args:{stepMode:1,stepSize:25,transitionTime:5}}]},windowCovering:{currentPositionLiftPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}],currentPositionTiltPercent100ths:[{label:"Open",command:"upOrOpen"},{label:"Close",command:"downOrClose"},{label:"Stop",command:"stopMotion"}]}};async function i(X,He,ct,Tt,Wt){try{await Z7(X,He,ct,Tt,Wt)}catch(z){console.error("matter command failed",z)}}const n={identify:{0:"identify",1:"triggerEffect"},groups:{0:"addGroup",1:"viewGroup",2:"getGroupMembership",3:"removeGroup",4:"removeAllGroups",5:"addGroupIfIdentifying"},scenes:{0:"addScene",1:"viewScene",2:"removeScene",3:"removeAllScenes",4:"storeScene",5:"recallScene",6:"getSceneMembership",64:"enhancedAddScene",65:"enhancedViewScene",66:"copyScene"},onOff:{0:"off",1:"on",2:"toggle",64:"offWithEffect",65:"onWithRecallGlobalScene",66:"onWithTimedOff"},levelControl:{0:"moveToLevel",1:"move",2:"step",3:"stop",4:"moveToLevelWithOnOff",5:"moveWithOnOff",6:"stepWithOnOff",7:"stopWithOnOff",8:"moveToClosestFrequency"},colorControl:{0:"moveToHue",1:"moveHue",2:"stepHue",3:"moveToSaturation",4:"moveSaturation",5:"stepSaturation",6:"moveToHueAndSaturation",7:"moveToColor",8:"moveColor",9:"stepColor",10:"moveToColorTemperature",64:"enhancedMoveToHue",65:"enhancedMoveHue",66:"enhancedStepHue",67:"enhancedMoveToHueAndSaturation",68:"colorLoopSet",71:"stopMoveStep",75:"moveColorTemperature",76:"stepColorTemperature"},thermostat:{0:"setpointRaiseLower",1:"setWeeklySchedule",2:"getWeeklySchedule",3:"clearWeeklySchedule"},doorLock:{0:"lockDoor",1:"unlockDoor",3:"unlockWithTimeout",11:"setWeekDaySchedule",12:"getWeekDaySchedule",13:"clearWeekDaySchedule",14:"setYearDaySchedule",15:"getYearDaySchedule",16:"clearYearDaySchedule",17:"setHolidaySchedule",18:"getHolidaySchedule",19:"clearHolidaySchedule",26:"setUser",27:"getUser",28:"clearUser",34:"setCredential",36:"getCredential",38:"clearCredential"},windowCovering:{0:"upOrOpen",1:"downOrClose",2:"stopMotion",4:"goToLiftValue",5:"goToLiftPercentage",7:"goToTiltValue",8:"goToTiltPercentage"},fanControl:{0:"step"}};function s(X,He){const ct=n[X];return He.map(Tt=>{const Wt=typeof Tt=="number"?Tt:Number(Tt);return{id:Wt,name:(ct==null?void 0:ct[Wt])??null}})}const r={10:"Door Lock",11:"Door Lock Controller",14:"Aggregator",15:"Generic Switch",17:"On/Off Plug-In Unit",18:"Dimmable Plug-In Unit",19:"Pump",20:"On/Off Light Switch",21:"Dimmer Switch",22:"Color Dimmer Switch",23:"Control Bridge",24:"Pump Controller",256:"On/Off Light",257:"Dimmable Light",268:"Extended Color Light",269:"Color Temperature Light",262:"Light Sensor",263:"Occupancy Sensor",514:"Window Covering",515:"Window Covering Controller",768:"Heating/Cooling Unit",769:"Thermostat",770:"Temperature Sensor",771:"Pressure Sensor",772:"Flow Sensor",773:"Humidity Sensor",774:"On/Off Sensor",2112:"Air Quality Sensor"},a={generatedCommandList:65528,acceptedCommandList:65529,eventList:65530,attributeList:65531,featureMap:65532,clusterRevision:65533},d={descriptor:{deviceTypeList:0,serverList:1,clientList:2,partsList:3,tagList:4},basicInformation:{dataModelRevision:0,vendorName:1,vendorID:2,vendorId:2,productName:3,productID:4,productId:4,nodeLabel:5,location:6,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,localConfigDisabled:16,reachable:17,uniqueID:18,uniqueId:18,capabilityMinima:19,productAppearance:20,specificationVersion:21,maxPathsPerInvoke:22},bridgedDeviceBasicInformation:{vendorName:1,vendorID:2,vendorId:2,productName:3,productId:4,nodeLabel:5,hardwareVersion:7,hardwareVersionString:8,softwareVersion:9,softwareVersionString:10,manufacturingDate:11,partNumber:12,productURL:13,productUrl:13,productLabel:14,serialNumber:15,reachable:17,uniqueID:18,uniqueId:18,productAppearance:20},identify:{identifyTime:0,identifyType:1},groups:{nameSupport:0},onOff:{onOff:0,globalSceneControl:16384,onTime:16385,offWaitTime:16386,startUpOnOff:16387},levelControl:{currentLevel:0,remainingTime:1,minLevel:2,maxLevel:3,currentFrequency:4,minFrequency:5,maxFrequency:6,options:15,onOffTransitionTime:16,onLevel:17,onTransitionTime:18,offTransitionTime:19,defaultMoveRate:20,startUpCurrentLevel:16384},colorControl:{currentHue:0,currentSaturation:1,remainingTime:2,currentX:3,currentY:4,colorTemperatureMireds:7,colorMode:8,options:15,enhancedCurrentHue:16384,enhancedColorMode:16385,colorLoopActive:16386,colorLoopDirection:16387,colorLoopTime:16388,colorCapabilities:16394,colorTempPhysicalMinMireds:16395,colorTempPhysicalMaxMireds:16396,coupleColorTempToLevelMinMireds:16397,startUpColorTemperatureMireds:16400},thermostat:{localTemperature:0,outdoorTemperature:1,occupancy:2,absMinHeatSetpointLimit:3,absMaxHeatSetpointLimit:4,absMinCoolSetpointLimit:5,absMaxCoolSetpointLimit:6,piCoolingDemand:7,piHeatingDemand:8,localTemperatureCalibration:16,occupiedCoolingSetpoint:17,occupiedHeatingSetpoint:18,unoccupiedCoolingSetpoint:19,unoccupiedHeatingSetpoint:20,minHeatSetpointLimit:21,maxHeatSetpointLimit:22,minCoolSetpointLimit:23,maxCoolSetpointLimit:24,minSetpointDeadBand:25,remoteSensing:26,controlSequenceOfOperation:27,systemMode:28,thermostatRunningMode:30,startOfWeek:32,numberOfWeeklyTransitions:33,numberOfDailyTransitions:34,temperatureSetpointHold:35,temperatureSetpointHoldDuration:36,thermostatProgrammingOperationMode:37,thermostatRunningState:41,setpointChangeSource:48,setpointChangeAmount:49,setpointChangeSourceTimestamp:50,occupiedSetback:52,unoccupiedSetback:55,emergencyHeatDelta:58},windowCovering:{type:0,physicalClosedLimitLift:1,physicalClosedLimitTilt:2,currentPositionLift:3,currentPositionTilt:4,numberOfActuationsLift:5,numberOfActuationsTilt:6,configStatus:7,currentPositionLiftPercentage:8,currentPositionTiltPercentage:9,operationalStatus:10,targetPositionLiftPercent100ths:11,targetPositionTiltPercent100ths:12,endProductType:13,currentPositionLiftPercent100ths:14,currentPositionTiltPercent100ths:15,installedOpenLimitLift:16,installedClosedLimitLift:17,installedOpenLimitTilt:18,installedClosedLimitTilt:19,mode:23,safetyStatus:26},doorLock:{lockState:0,lockType:1,actuatorEnabled:2,doorState:3,numberOfTotalUsersSupported:17,numberOfPINUsersSupported:18,maxPINCodeLength:23,minPINCodeLength:24,language:33,autoRelockTime:35,soundVolume:36,operatingMode:37,supportedOperatingModes:38,wrongCodeEntryLimit:48},fanControl:{fanMode:0,fanModeSequence:1,percentSetting:2,percentCurrent:3,speedMax:4,speedSetting:5,speedCurrent:6,rockSupport:7,rockSetting:8,windSupport:9,windSetting:10,airflowDirectionSupport:11,airflowDirection:12},occupancySensing:{occupancy:0,occupancySensorType:1,occupancySensorTypeBitmap:2,holdTime:3,pirOccupiedToUnoccupiedDelay:16,pirUnoccupiedToOccupiedDelay:17},illuminanceMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,lightSensorType:4},temperatureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},pressureMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3,scaledValue:16,minScaledValue:17,maxScaledValue:18,scale:20},flowMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},relativeHumidityMeasurement:{measuredValue:0,minMeasuredValue:1,maxMeasuredValue:2,tolerance:3},powerSource:{status:0,order:1,description:2,batVoltage:11,batPercentRemaining:12,batTimeRemaining:13,batChargeLevel:14,batReplacementNeeded:15,batReplaceability:16,batPresent:17,activeBatFaults:18,batChargeState:26}};function u(X){return"0x"+X.toString(16).toUpperCase().padStart(4,"0")}let f=T(ki([])),g=ki(new Map);function p(X){if(X==null)return"—";if(typeof X=="boolean"||typeof X=="number")return String(X);if(typeof X=="string")return X.length>50?X.slice(0,47)+"…":X;const He=JSON.stringify(X);return He.length>60?He.slice(0,57)+"…":He}function w(X){return X==null?"—":typeof X=="boolean"||typeof X=="number"?String(X):typeof X=="string"?X:JSON.stringify(X)}function y(X){return X!==null&&typeof X=="object"&&!Array.isArray(X)}function x(X){return Array.isArray(X)&&X.length>0&&X.every(y)}function k(X,He){return!!(He==="attributeList"||Array.isArray(X)&&X.length===0||y(X)&&Object.keys(X).length===0)}function D(X){return new Date(X).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}const M=500,F=20,K=32;let V=0,oe=T(ki([])),ne=T(!0),Se=T(180),We=mt(()=>{const X=Math.max(1,Math.floor((c(Se)-K)/F)+1);return c(oe).slice(0,X)});function qe(X){X.preventDefault();const He=X.clientY,ct=c(Se);function Tt(z){m(Se,Math.max(60,Math.min(600,ct+He-z.clientY)),!0)}function Wt(){document.removeEventListener("mousemove",Tt),document.removeEventListener("mouseup",Wt)}document.addEventListener("mousemove",Tt),document.addEventListener("mouseup",Wt)}let Oe=T(null),ut=T(!1),kt=T(null),Pe=T(!1),Lt=T("passcode"),pt=T(""),Ot=T(""),Fe=T(""),Nt=T(!1),et=T(null),lt=T("");const $t="she:matter:selectedNodeId";async function xe(){try{m(f,await qN(),!0);for(const X of c(f))Jm(X.nodeId).then(He=>{g.set(X.nodeId,He)}).catch(()=>{});if(c(f).length>0&&!c(Oe)){const X=localStorage.getItem($t),He=X&&c(f).find(ct=>ct.nodeId===X)?X:c(f)[0].nodeId;rt(He)}}catch{m(f,[],!0)}}async function rt(X){m(ut,!0),m(kt,null);try{m(Oe,await Jm(X),!0),g.set(X,c(Oe)),localStorage.setItem($t,X)}catch(He){m(kt,He instanceof Error?He.message:String(He),!0)}finally{m(ut,!1)}}let dt;async function It(X){var He;if(await dt.show(`Unpair device ${X}?`,{confirm:"Unpair",danger:!0}))try{await K7(X),((He=c(Oe))==null?void 0:He.nodeId)===X&&m(Oe,null),await xe()}catch(ct){m(kt,ct instanceof Error?ct.message:String(ct),!0)}}async function Si(){m(Nt,!0),m(et,null);try{let X;c(Lt)==="passcode"?(X={passcode:Number(c(pt))},c(Ot)&&(X={...X,discriminator:Number(c(Ot))})):X={pairingCode:c(Fe).trim()},c(lt).trim()&&(X={...X,discoveryAddress:c(lt).trim()}),await G7(X),m(Pe,!1),m(pt,""),m(Ot,""),m(Fe,""),m(lt,""),await xe()}catch(X){m(et,X instanceof Error?X.message:String(X),!0)}finally{m(Nt,!1)}}Js(()=>{xe()});const _t=Tr("matter:deviceList",X=>{if(!Array.isArray(X.devices))return;const He=X.devices;for(const ct of He)g.has(ct.nodeId)||Jm(ct.nodeId).then(Tt=>{g.set(ct.nodeId,Tt)}).catch(()=>{});m(f,He,!0)}),Xt=Tr("matter:deviceStatus",X=>{if(X.nodeId===void 0)return;const He=String(X.nodeId),ct=!!X.online;m(f,c(f).map(Tt=>Tt.nodeId===He?{...Tt,online:ct}:Tt),!0),m(oe,[{id:V++,kind:"status",nodeId:He,online:ct,ts:Date.now()},...c(oe).slice(0,M-1)],!0)}),Ye=Tr("matter:attr",X=>{const He=String(X.nodeId),ct=X.endpointId,Tt=String(X.clusterName),Wt=String(X.attrName),z=X.value;if(c(Oe)&&c(Oe).nodeId===He){const Ee=c(Oe).endpoints.find(ht=>ht.endpointId===ct),ot=Ee==null?void 0:Ee.clusters.find(ht=>ht.name===Tt);ot&&(ot.attrs[Wt]=z)}const ae=g.get(He);if(ae){const Ee=ae.endpoints.find(ht=>ht.endpointId===ct),ot=Ee==null?void 0:Ee.clusters.find(ht=>ht.name===Tt);ot&&(ot.attrs[Wt]=z)}m(oe,[{id:V++,kind:"attr",nodeId:He,endpointId:ct,clusterName:Tt,attrName:Wt,value:z,ts:X.ts??Date.now()},...c(oe).slice(0,M-1)],!0)});zy(()=>{_t(),Xt(),Ye()});var Ft=hX(),ci=wt(Ft);vs($c(ci,{}),X=>dt=X,()=>dt);var Li=v(ci,2),Ci=b(Li),Ct=b(Ci),Jt=b(Ct),hi=v(b(Jt),2),Ii=v(Jt,2);{var Ui=X=>{var He=LY(),ct=b(He),Tt=b(ct);let Wt;var z=v(Tt,2);let ae;var Ee=v(ct,2);{var ot=Ke=>{var zt=xY(),pi=wt(zt),qt=v(b(pi)),Pi=v(pi,2),Mi=v(b(Pi));Kt(qt,()=>c(pt),Ei=>m(pt,Ei)),Kt(Mi,()=>c(Ot),Ei=>m(Ot,Ei)),I(Ke,zt)},ht=Ke=>{var zt=kY(),pi=v(b(zt));Kt(pi,()=>c(Fe),qt=>m(Fe,qt)),I(Ke,zt)};O(Ee,Ke=>{c(Lt)==="passcode"?Ke(ot):Ke(ht,-1)})}var Q=v(Ee,2),ce=v(b(Q)),Le=v(Q,2);{var tt=Ke=>{var zt=SD(),pi=b(zt);H(()=>A(pi,c(et))),I(Ke,zt)};O(Le,Ke=>{c(et)&&Ke(tt)})}var ei=v(Le,2),Dt=b(ei);H(()=>{Wt=Et(Tt,1,"svelte-1ua3isv",null,Wt,{active:c(Lt)==="passcode"}),ae=Et(z,1,"svelte-1ua3isv",null,ae,{active:c(Lt)==="pairingCode"}),ei.disabled=c(Nt),A(Dt,c(Nt)?"Commissioning…":"Commission")}),$("click",Tt,()=>m(Lt,"passcode")),$("click",z,()=>m(Lt,"pairingCode")),Kt(ce,()=>c(lt),Ke=>m(lt,Ke)),$("click",ei,Si),I(X,He)};O(Ii,X=>{c(Pe)&&X(Ui)})}var Hi=v(Ii,2),Bi=b(Hi);oi(Bi,17,()=>c(f),X=>X.nodeId,(X,He)=>{var ct=DY();let Tt;var Wt=b(ct),z=b(Wt);let ae;var Ee=v(z,2),ot=b(Ee);{var ht=Le=>{var tt=IY(),ei=wt(tt),Dt=b(ei),Ke=v(ei,2),zt=b(Ke);H(()=>{A(Dt,c(He).name),A(zt,`#${c(He).nodeId??""}`)}),I(Le,tt)},Q=Le=>{var tt=EY(),ei=b(tt);H(()=>A(ei,`Node ${c(He).nodeId??""}`)),I(Le,tt)};O(ot,Le=>{c(He).name?Le(ht):Le(Q,-1)})}var ce=v(Wt,2);H(()=>{var Le;Tt=Et(ct,1,"svelte-1ua3isv",null,Tt,{selected:((Le=c(Oe))==null?void 0:Le.nodeId)===c(He).nodeId}),ae=Et(z,1,"status-dot svelte-1ua3isv",null,ae,{online:c(He).online})}),$("click",Wt,()=>rt(c(He).nodeId)),$("click",ce,()=>It(c(He).nodeId)),I(X,ct)});var rn=v(Bi,2);{var Oi=X=>{var He=PY();I(X,He)};O(rn,X=>{c(f).length===0&&X(Oi)})}var xi=v(Ct,2),ji=b(xi);{var Ki=X=>{var He=TY();I(X,He)},zi=X=>{var He=SD(),ct=b(He);H(()=>A(ct,c(kt))),I(X,He)},Ni=X=>{var He=sX(),ct=wt(He),Tt=b(ct),Wt=b(Tt),z=v(Tt,2);{var ae=Q=>{var ce=MY(),Le=b(ce);H(()=>A(Le,c(Oe).subtitle)),I(Q,ce)};O(z,Q=>{c(Oe).subtitle&&Q(ae)})}var Ee=v(z,2),ot=b(Ee),ht=v(ct,2);oi(ht,17,()=>c(Oe).endpoints,Q=>Q.endpointId,(Q,ce)=>{var Le=nX(),tt=b(Le),ei=b(tt),Dt=v(ei),Ke=b(Dt),zt=v(Dt,2);oi(zt,21,()=>c(ce).clusters,Vi,(Mi,Ei)=>{var $i=RY(),Be=b($i);H(()=>A(Be,c(Ei).name)),I(Mi,$i)});var pi=v(tt,2);{var qt=Mi=>{var Ei=tX(),$i=v(b(Ei));oi($i,21,()=>c(ce).clusters,Vi,(Be,nt)=>{var vi=eX(),ui=wt(vi),wi=b(ui),gi=b(wi),le=v(ui,2);oi(le,17,()=>Object.entries(c(nt).attrs),Vi,($e,gt)=>{var Mt=mt(()=>WL(c(gt),2));let ti=()=>c(Mt)[0],bt=()=>c(Mt)[1];var bi=Gs(),W=wt(bi);{var J=j=>{const N=mt(()=>{var Ce;return(Ce=t[c(nt).name])==null?void 0:Ce[ti()]}),G=mt(()=>(ti()==="acceptedCommandList"||ti()==="generatedCommandList")&&Array.isArray(bt())),te=mt(()=>{var Ce;return((Ce=d[c(nt).name])==null?void 0:Ce[ti()])??a[ti()]});var ue=QY(),Y=b(ue),re=b(Y),Te=b(re),fe=v(re);{var he=Ce=>{var me=NY(),Je=b(me);H(de=>A(Je,`(${de??""})`),[()=>u(c(te))]),I(Ce,me)};O(fe,Ce=>{c(te)!==void 0&&Ce(he)})}var Ze=v(Y),U=b(Ze);{var ie=Ce=>{var me=OY();oi(me,21,()=>c(N),Vi,(Je,de)=>{var De=AY(),Qe=b(De);H(()=>A(Qe,c(de).label)),$("click",De,()=>i(c(Oe).nodeId,c(ce).endpointId,c(nt).name,c(de).command,c(de).args)),I(Je,De)}),I(Ce,me)};O(U,Ce=>{c(N)&&Ce(ie)})}var ye=v(Ze),Ae=b(ye);{var ke=Ce=>{var me=zY();oi(me,21,()=>s(c(nt).name,bt()),Vi,(Je,de,De)=>{var Qe=BY(),st=wt(Qe);{var Ge=Gt=>{var _i=FY();I(Gt,_i)};O(st,Gt=>{De>0&&Gt(Ge)})}var Ht=v(st,2);{var Vt=Gt=>{var _i=HY(),Qi=wt(_i),Ri=b(Qi),Qt=v(Qi),un=b(Qt);H(()=>{A(Ri,c(de).name),A(un,`(${c(de).id??""})`)}),I(Gt,_i)},Di=Gt=>{var _i=WY(),Qi=b(_i);H(()=>A(Qi,c(de).id)),I(Gt,_i)};O(Ht,Gt=>{c(de).name?Gt(Vt):Gt(Di,-1)})}I(Je,Qe)}),I(Ce,me)},we=Ce=>{var me=$Y(),Je=v(b(me));oi(Je,21,bt,Vi,(de,De)=>{const Qe=mt(()=>c(De)),st=mt(()=>c(Qe).deviceType),Ge=mt(()=>r[c(st)]);var Ht=jY(),Vt=b(Ht),Di=b(Vt);{var Gt=Qt=>{var un=VY(),an=wt(un),es=v(an),Bs=b(es);H(fo=>{A(an,`${c(Ge)??""} `),A(Bs,`(${fo??""})`)},[()=>u(c(st))]),I(Qt,un)},_i=Qt=>{var un=Io();H(an=>A(un,an),[()=>u(c(st))]),I(Qt,un)};O(Di,Qt=>{c(Ge)?Qt(Gt):Qt(_i,-1)})}var Qi=v(Vt),Ri=b(Qi);H(Qt=>A(Ri,Qt),[()=>w(c(Qe).revision)]),I(de,Ht)}),I(Ce,me)},ft=mt(()=>ti()==="deviceTypeList"&&Array.isArray(bt())),at=Ce=>{const me=mt(()=>[...new Set(bt().flatMap(st=>Object.keys(st)))]);var Je=KY(),de=b(Je),De=b(de);oi(De,21,()=>c(me),Vi,(st,Ge)=>{var Ht=UY(),Vt=b(Ht);H(()=>A(Vt,c(Ge))),I(st,Ht)});var Qe=v(de);oi(Qe,21,bt,Vi,(st,Ge)=>{var Ht=GY();oi(Ht,21,()=>c(me),Vi,(Vt,Di)=>{var Gt=qY(),_i=b(Gt);H(Qi=>A(_i,Qi),[()=>w(c(Ge)[c(Di)])]),I(Vt,Gt)}),I(st,Ht)}),I(Ce,Je)},ze=mt(()=>x(bt())),xt=Ce=>{var me=YY(),Je=b(me);oi(Je,21,()=>Object.entries(bt()),Vi,(de,De)=>{var Qe=mt(()=>WL(c(De),2));let st=()=>c(Qe)[0],Ge=()=>c(Qe)[1];var Ht=ZY(),Vt=b(Ht),Di=b(Vt),Gt=v(Vt),_i=b(Gt);H(Qi=>{A(Di,st()),A(_i,Qi)},[()=>w(Ge())]),I(de,Ht)}),I(Ce,me)},Xe=mt(()=>y(bt())),_e=Ce=>{var me=XY(),Je=b(me);H(()=>{vn(me,"href",bt()),A(Je,bt())}),I(Ce,me)},Me=Ce=>{var me=JY(),Je=b(me);H(de=>A(Je,de),[()=>w(bt())]),I(Ce,me)};O(Ae,Ce=>{c(G)?Ce(ke):c(ft)?Ce(we,1):c(ze)?Ce(at,2):c(Xe)?Ce(xt,3):(ti()==="productUrl"||ti()==="productURL")&&typeof bt()=="string"?Ce(_e,4):Ce(Me,-1)})}H(()=>{vn(Y,"title",ti()),A(Te,ti())}),I(j,ue)},se=mt(()=>!k(bt(),ti()));O(W,j=>{c(se)&&j(J)})}I($e,bi)}),H(()=>A(gi,c(nt).name)),I(Be,vi)}),I(Mi,Ei)},Pi=Mi=>{var Ei=iX();I(Mi,Ei)};O(pi,Mi=>{c(ce).clusters.length>0?Mi(qt):Mi(Pi,-1)})}H(()=>{A(ei,`${c(ce).name??`Endpoint ${c(ce).endpointId}`??""} `),A(Ke,`ep${c(ce).endpointId??""}`)}),I(Q,Le)}),H(()=>{A(Wt,c(Oe).name??`Node ${c(Oe).nodeId}`),A(ot,`Node ID: ${c(Oe).nodeId??""}`)}),I(X,He)},Ve=X=>{var He=oX();I(X,He)};O(ji,X=>{c(ut)?X(Ki):c(kt)?X(zi,1):c(Oe)?X(Ni,2):X(Ve,-1)})}var Rt=v(Ci,2),Ut=b(Rt),fi=v(Ut,2),ni=v(b(fi),2);{var Zi=X=>{var He=rX(),ct=b(He);H(()=>A(ct,c(oe).length)),I(X,He)};O(ni,X=>{!c(ne)&&c(oe).length>0&&X(Zi)})}var Wi=v(ni,2),Yi=b(Wi),di=v(fi,2);{var je=X=>{var He=uX(),ct=b(He);{var Tt=z=>{var ae=aX();I(z,ae)},Wt=z=>{var ae=Gs(),Ee=wt(ae);oi(Ee,17,()=>c(We),ot=>ot.id,(ot,ht)=>{const Q=mt(()=>{var qt,Pi;return((qt=g.get(c(ht).nodeId))==null?void 0:qt.name)??((Pi=c(f).find(Mi=>Mi.nodeId===c(ht).nodeId))==null?void 0:Pi.name)??null}),ce=mt(()=>{var qt,Pi;return c(ht).endpointId!==void 0?((Pi=(qt=g.get(c(ht).nodeId))==null?void 0:qt.endpoints.find(Mi=>Mi.endpointId===c(ht).endpointId))==null?void 0:Pi.name)??null:null}),Le=mt(()=>c(ht).attrName??c(ht).clusterName);var tt=dX(),ei=b(tt),Dt=b(ei),Ke=v(ei,2);{var zt=qt=>{var Pi=lX(),Mi=v(wt(Pi),2),Ei=b(Mi),$i=v(Ei);{var Be=wi=>{var gi=vS(),le=v(wt(gi)),$e=b(le);H(()=>A($e,`(#${c(ht).nodeId??""})`)),I(wi,gi)};O($i,wi=>{c(Q)&&wi(Be)})}var nt=v(Mi,2);let vi;var ui=b(nt);H(()=>{A(Ei,c(Q)??`#${c(ht).nodeId}`),vi=Et(nt,1,"e-val svelte-1ua3isv",null,vi,{"e-online":c(ht).online,"e-offline":!c(ht).online}),A(ui,c(ht).online?"online":"offline")}),I(qt,Pi)},pi=qt=>{var Pi=cX(),Mi=v(wt(Pi),2),Ei=b(Mi),$i=v(Ei);{var Be=bt=>{var bi=vS(),W=v(wt(bi)),J=b(W);H(()=>A(J,`(#${c(ht).nodeId??""})`)),I(bt,bi)};O($i,bt=>{c(Q)&&bt(Be)})}var nt=v(Mi,2),vi=b(nt),ui=v(vi);{var wi=bt=>{var bi=vS(),W=v(wt(bi)),J=b(W);H(()=>A(J,`(ep ${c(ht).endpointId??""})`)),I(bt,bi)};O(ui,bt=>{c(ce)&&bt(wi)})}var gi=v(nt,2),le=b(gi),$e=v(gi,2),gt=b($e),Mt=v($e,2),ti=b(Mt);H(bt=>{A(Ei,c(Q)??`#${c(ht).nodeId}`),A(vi,c(ce)??`ep${c(ht).endpointId}`),A(le,c(ht).clusterName),A(gt,c(Le)),A(ti,bt)},[()=>p(c(ht).value)]),I(qt,Pi)};O(Ke,qt=>{c(ht).kind==="status"?qt(zt):qt(pi,-1)})}H(qt=>A(Dt,qt),[()=>D(c(ht).ts)]),I(ot,tt)}),I(z,ae)};O(ct,z=>{c(We).length===0?z(Tt):z(Wt,-1)})}I(X,He)};O(di,X=>{c(ne)&&X(je)})}H(()=>{zo(Rt,c(ne)?`height: ${c(Se)}px;`:""),A(Yi,c(ne)?"▾":"▸")}),$("click",hi,()=>m(Pe,!c(Pe))),$("mousedown",Ut,qe),$("click",Wi,()=>{m(ne,!c(ne))}),I(o,Ft),Hs()}eo(["click","mousedown"]);var gX=P("<button>›</button>"),pX=P('<span class="chev-ph svelte-1vejtrc"></span>'),_X=P('<span class="tv svelte-1vejtrc"> </span> <span class="tt svelte-1vejtrc"> </span>',1),mX=P("<button>🔒</button>"),vX=P("<span> </span>"),bX=P('<span class="acl-dyn svelte-1vejtrc" title="per-user/client pattern — cannot evaluate statically">⚠%u/%c</span>'),yX=P('<span class="acl-members svelte-1vejtrc"> </span>'),wX=P('<span class="acl-group svelte-1vejtrc"> </span>'),SX=P('<span> <strong class="svelte-1vejtrc"> </strong> <!> <!> <!></span>'),CX=P('<div class="acl-sec svelte-1vejtrc"><span class="acl-sec-hdr svelte-1vejtrc"> </span> <!></div>'),xX=P('<div class="acl-panel svelte-1vejtrc"></div>'),kX=P('<div class="tc svelte-1vejtrc"></div>'),LX=P('<div class="tn svelte-1vejtrc"><div><!> <span class="seg svelte-1vejtrc"> </span> <!> <!></div> <!> <!></div>'),IX=P('<button class="acl-refresh svelte-1vejtrc" title="Refresh ACL data">↺</button>'),EX=P('<button title="Show ACL coverage for topics"><svg width="11" height="11" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="7" width="10" height="8" rx="1.5"></rect><path d="M5 7V5a3 3 0 0 1 6 0v2" fill="none" stroke="currentColor" stroke-width="1.8"></path></svg> ACL<!></button> <!>',1),DX=P("<option></option>"),PX=P('<span class="pub-ok svelte-1vejtrc">✓</span>'),TX=P('<span class="pub-err svelte-1vejtrc"> </span>'),MX=P('<div class="info svelte-1vejtrc">Loading…</div>'),RX=P('<div class="info err svelte-1vejtrc"> </div>'),NX=P('<div class="info svelte-1vejtrc">No topics match.</div>'),AX=P('<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>'),OX=P('<div class="vs svelte-1vejtrc"><div><div class="vrows-abs svelte-1vejtrc"></div></div></div>'),FX=P('<div class="info svelte-1vejtrc">No topics yet.</div>'),HX=P('<div class="tree-wrap svelte-1vejtrc"><!></div>'),WX=P('<span class="stream-badge"> </span>'),BX=P('<span class="stream-empty svelte-1vejtrc">Waiting for messages…</span>'),zX=P('<span class="s-ret svelte-1vejtrc" title="retained snapshot">⊛</span>'),VX=P('<div><span class="s-ts svelte-1vejtrc"> </span> <!> <span class="s-topic svelte-1vejtrc"> </span> <span class="s-val svelte-1vejtrc"> </span></div>'),jX=P('<div class="stream-body svelte-1vejtrc"><!></div>'),$X=P('<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),UX=P('<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>'),qX=P('<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),GX=P('<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 KX(o,e){Fs(e,!0);const t=(j,N=Oy)=>{const G=mt(()=>c(g).has(N().path)),te=mt(()=>c(a)>=0&&N().children.size>0),ue=mt(()=>c(a)>=0&&N().isLeaf&&!n.has(N().path));var Y=LX(),re=b(Y);let Te;var fe=b(re);{var he=_e=>{var Me=gX();let Ce;H(()=>{Ce=Et(Me,1,"chev svelte-1vejtrc",null,Ce,{open:c(G)}),vn(Me,"aria-label",c(G)?"Collapse":"Expand")}),$("click",Me,()=>p(N().path)),I(_e,Me)},Ze=_e=>{var Me=pX();I(_e,Me)};O(fe,_e=>{c(te)?_e(he):_e(Ze,-1)})}var U=v(fe,2),ie=b(U),ye=v(U,2);{var Ae=_e=>{var Me=_X(),Ce=wt(Me),me=b(Ce),Je=v(Ce,2),de=b(Je);H((De,Qe,st)=>{vn(Ce,"title",De),A(me,Qe),A(de,st)},[()=>{var De;return Li((De=Jt(N().path))==null?void 0:De.val)},()=>{var De;return Li((De=Jt(N().path))==null?void 0:De.val)},()=>{var De;return((De=Jt(N().path))==null?void 0:De.ts)!=null?Ci(Jt(N().path).ts):""}]),I(_e,Me)},ke=mt(()=>N().isLeaf&&i.has(N().path));O(ye,_e=>{c(ke)&&_e(Ae)})}var we=v(ye,2);{var ft=_e=>{const Me=mt(()=>!!c(ji)&&Ni(N().path));var Ce=mX();let me;H(()=>{me=Et(Ce,1,"acl-badge svelte-1vejtrc",null,me,{matched:c(Me)}),vn(Ce,"title",c(Me)?"Has explicit ACL — click to inspect":"No explicit ACL — uses defaults")}),$("click",Ce,Je=>{Je.stopPropagation(),m(Ki,c(Ki)===N().path?null:N().path,!0)}),I(_e,Ce)};O(we,_e=>{c(Oi)&&N().isLeaf&&_e(ft)})}var at=v(re,2);{var ze=_e=>{const Me=mt(()=>Ve(N().path,Ui)),Ce=mt(()=>Ve(N().path,Hi)),me=mt(()=>Ve(N().path,Bi));var Je=xX();oi(Je,21,()=>[{label:"Send",roles:c(Me),defType:"publishClientSend"},{label:"Subscribe",roles:c(Ce),defType:"subscribePattern"},{label:"Receive",roles:c(me),defType:"publishClientReceive"}],Vi,(de,De)=>{var Qe=CX(),st=b(Qe),Ge=b(st),Ht=v(st,2);{var Vt=Gt=>{var _i=vX();let Qi;var Ri=b(_i);H((Qt,un)=>{Qi=Et(_i,1,"acl-def svelte-1vejtrc",null,Qi,Qt),A(Ri,`${un??""} (default)`)},[()=>({allow:Ut(c(De).defType),deny:!Ut(c(De).defType)}),()=>Ut(c(De).defType)?"allow":"deny"]),I(Gt,_i)},Di=Gt=>{var _i=Gs(),Qi=wt(_i);oi(Qi,17,()=>c(De).roles,Vi,(Ri,Qt)=>{const un=mt(()=>Rt(c(Qt).rolename));var an=SX();let es;var Bs=b(an),fo=v(Bs),Zo=b(fo),ur=v(fo,2);{var Yn=Ds=>{var fs=bX();I(Ds,fs)};O(ur,Ds=>{c(Qt).dynamic&&Ds(Yn)})}var Yo=v(ur,2);{var hr=Ds=>{var fs=yX(),ns=b(fs);H(Ps=>A(ns,Ps),[()=>c(un).direct.join(", ")]),I(Ds,fs)};O(Yo,Ds=>{c(un).direct.length>0&&Ds(hr)})}var mn=v(Yo,2);oi(mn,17,()=>c(un).viaGroup,Vi,(Ds,fs)=>{var ns=wX(),Ps=b(ns);H(()=>A(Ps,c(fs).groupname)),I(Ds,ns)}),H(()=>{es=Et(an,1,"acl-role svelte-1vejtrc",null,es,{allow:c(Qt).allow,deny:!c(Qt).allow}),A(Bs,`${c(Qt).allow?"✓":"✗"} `),A(Zo,c(Qt).rolename)}),I(Ri,an)}),I(Gt,_i)};O(Ht,Gt=>{c(De).roles.length===0?Gt(Vt):Gt(Di,-1)})}H(()=>A(Ge,c(De).label)),I(de,Qe)}),I(_e,Je)};O(at,_e=>{c(Oi)&&N().isLeaf&&c(Ki)===N().path&&c(ji)&&_e(ze)})}var xt=v(at,2);{var Xe=_e=>{var Me=kX();oi(Me,21,()=>[...N().children.values()].sort((Ce,me)=>Ce.seg.localeCompare(me.seg)),Ce=>Ce.path,(Ce,me)=>{t(Ce,()=>c(me))}),I(_e,Me)};O(xt,_e=>{c(te)&&c(G)&&_e(Xe)})}H(()=>{Te=Et(re,1,"tr svelte-1vejtrc",null,Te,{stale:c(ue)}),A(ie,N().seg)}),$("click",re,()=>{m(ut,N().path+"/#")}),$("contextmenu",re,_e=>{_e.preventDefault(),m(lt,{x:_e.clientX,y:_e.clientY,topic:N().path},!0)}),I(j,Y)},i=new Map,n=new Set,s=new Set;let r=null,a=T(0);function d(){r===null&&(r=requestAnimationFrame(()=>{r=null;for(const j of s)f(j);s.clear(),VL(a)}))}const u=new Map;function f(j){const N=j.split("/");let G=u,te="";for(let ue=0;ue<N.length;ue++){const Y=N[ue];te=ue===0?Y:`${te}/${Y}`,G.has(Y)||G.set(Y,{seg:Y,path:te,children:new Map,isLeaf:!1});const re=G.get(Y);ue===N.length-1&&(re.isLeaf=!0),G=re.children}}let g=T(ki(new Set));function p(j){const N=new Set(c(g));N.has(j)?N.delete(j):N.add(j),m(g,N,!0)}let w=T("");const y=24,x=5;let k=T(0),D=T(300),M=mt(()=>{if(c(a),!c(w))return[];const j=c(w).toLowerCase().split(/\s+/).filter(Boolean),N=[];for(const[G,te]of i){const ue=G.toLowerCase();j.every(Y=>ue.includes(Y))&&N.push({topic:G,...te})}return N.sort((G,te)=>G.topic.localeCompare(te.topic))}),F=mt(()=>{const j=c(M).length,N=Math.max(0,Math.floor(c(k)/y)-x),G=Math.min(j,Math.ceil((c(k)+c(D))/y)+x);return{start:N,end:G,totalH:j*y,top:N*y}});const K=1e3,V=200,oe=20,ne=36;let Se=0,We=T(ki([])),qe=T(ki([])),Oe=T(!0),ut=T("#"),kt=T(200);Vn(()=>{const j=c(ut).trim(),N=Ol(()=>c(We)),G=!j||j==="#"?N.slice(0,V):N.filter(te=>Pe(j,te.topic)).slice(0,V);if(j&&j!=="#"){const te=new Set(G.map(Y=>Y.topic)),ue=[];for(const[Y,re]of i)te.has(Y)||Pe(j,Y)&&ue.push({id:-(ue.length+1),topic:Y,val:re.val,ts:re.ts,retained:!0});ue.sort((Y,re)=>Y.topic.localeCompare(re.topic)),m(qe,[...G,...ue],!0)}else m(qe,G,!0)});function Pe(j,N){if(j==="#")return!0;const G=j.split("/"),te=N.split("/");for(let ue=0;ue<G.length;ue++){if(G[ue]==="#")return!0;if(ue>=te.length||G[ue]!=="+"&&G[ue]!==te[ue])return!1}return G.length===te.length}function Lt(j){j.preventDefault();const N=j.clientY,G=c(kt);function te(Y){m(kt,Math.max(60,Math.min(800,G+N-Y.clientY)),!0)}function ue(){document.removeEventListener("mousemove",te),document.removeEventListener("mouseup",ue)}document.addEventListener("mousemove",te),document.addEventListener("mouseup",ue)}let pt=mt(()=>{const j=Math.max(1,Math.floor((c(kt)-ne)/oe)+1);return c(qe).slice(0,j)}),Ot=T(!0),Fe=T(null);async function Nt(){m(Ot,!0),m(Fe,null);try{const j=await GN();for(const N of j)i.set(N.topic,{val:N.val,ts:N.ts}),f(N.topic)}catch(j){m(Fe,j instanceof Error?j.message:String(j),!0)}finally{m(Ot,!1),VL(a)}}const et=Tr("mqtt",j=>{const{topic:N,val:G,ts:te}=j;i.set(N,{val:G,ts:te}),n.add(N),s.add(N),d();const ue={id:Se++,topic:N,val:G,ts:te};m(We,[ue,...c(We).slice(0,K-1)],!0);const Y=c(ut).trim();(!Y||Y==="#"||Pe(Y,N))&&m(qe,[ue,...c(qe).filter(re=>!(re.retained&&re.topic===N)).slice(0,V-1)],!0)});let lt=T(null),$t=T(null);async function xe(j,N){const G=[j];if(N){const te=j+"/";for(const ue of i.keys())ue.startsWith(te)&&G.push(ue)}for(const te of G)await jE(te,"",!0,0)}let rt=mt(()=>(c(a),[...i.keys()].sort())),dt=T(""),It=T(""),Si=T(!1),_t=T(0),Xt=T(!1),Ye=T(null),Ft=T(!1);async function ci(){if(c(dt)){m(Xt,!0),m(Ye,null),m(Ft,!1);try{await jE(c(dt),c(It),c(Si),c(_t)),m(Ft,!0),setTimeout(()=>{m(Ft,!1)},2e3)}catch(j){m(Ye,j instanceof Error?j.message:String(j),!0)}finally{m(Xt,!1)}}}function Li(j){return j==null?"":typeof j=="object"?JSON.stringify(j):String(j)}function Ci(j){return new Date(j).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ct(j){return new Date(j).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Jt(j){return c(a),i.get(j)}let hi=mt(()=>(c(a),[...u.values()].sort((j,N)=>j.seg.localeCompare(N.seg)))),Ii=mt(()=>(c(a),i.size));const Ui=new Set(["publishClientSend"]),Hi=new Set(["subscribePattern","subscribeLiteral"]),Bi=new Set(["publishClientReceive"]);let rn=T(!1),Oi=T(!1),xi=T(!1),ji=T(null),Ki=T(null);function zi(j,N,G){return N.includes("%u")||N.includes("%c")?"dynamic":j==="subscribeLiteral"||j==="unsubscribeLiteral"?N===G?"match":"no-match":Pe(N,G)?"match":"no-match"}function Ni(j){if(!c(ji))return!1;for(const N of c(ji).roles)if(N.acls){for(const G of N.acls)if(zi(G.acltype,G.topic,j)!=="no-match")return!0}return!1}function Ve(j,N){if(!c(ji))return[];const G=[];for(const te of c(ji).roles)if(te.acls)for(const ue of te.acls){if(!N.has(ue.acltype))continue;const Y=zi(ue.acltype,ue.topic,j);if(Y!=="no-match"){G.push({rolename:te.rolename,allow:ue.allow,dynamic:Y==="dynamic"});break}}return G}function Rt(j){if(!c(ji))return{direct:[],viaGroup:[]};const N=c(ji).users.filter(te=>{var ue;return(ue=te.roles)==null?void 0:ue.some(Y=>Y.rolename===j)}).map(te=>te.username),G=c(ji).groups.filter(te=>{var ue;return(ue=te.roles)==null?void 0:ue.some(Y=>Y.rolename===j)}).map(te=>({groupname:te.groupname,members:(te.clients??[]).map(ue=>ue.username)}));return{direct:N,viaGroup:G}}function Ut(j){if(!c(ji))return!1;const N=c(ji).defaults.find(G=>G.acltype===j);return(N==null?void 0:N.allow)??!1}async function fi(){m(xi,!0);try{const[j,N,G,te]=await Promise.all([QN(),JN(),eA(),tA()]);m(ji,{roles:j.roles,users:N.users,groups:G.groups,defaults:te.acls},!0)}catch{m(ji,null),m(Oi,!1)}finally{m(xi,!1)}}async function ni(){c(Oi)?(m(Oi,!1),m(Ki,null)):(m(Oi,!0),m(Ki,null),c(ji)||await fi())}Js(Nt),Js(async()=>{var j;try{const N=await Dk();m(rn,!!((j=N.dynsec)!=null&&j.dynsecReady),!0)}catch{m(rn,!1)}}),zy(()=>{et(),r!==null&&cancelAnimationFrame(r)});var Zi=GX(),Wi=b(Zi),Yi=v(b(Wi),2);{var di=j=>{var N=EX(),G=wt(N);let te;var ue=v(b(G),2);{var Y=fe=>{var he=Io("…");I(fe,he)};O(ue,fe=>{c(xi)&&fe(Y)})}var re=v(G,2);{var Te=fe=>{var he=IX();H(()=>he.disabled=c(xi)),$("click",he,fi),I(fe,he)};O(re,fe=>{c(Oi)&&fe(Te)})}H(()=>{te=Et(G,1,"acl-btn svelte-1vejtrc",null,te,{active:c(Oi)}),G.disabled=c(xi)}),$("click",G,ni),I(j,N)};O(Yi,j=>{c(rn)&&j(di)})}var je=v(Wi,2),X=b(je),He=b(X),ct=v(He,2);oi(ct,20,()=>c(rt),j=>j,(j,N)=>{var G=DX(),te={};H(()=>{te!==(te=N)&&(G.value=(G.__value=N)??"")}),I(j,G)});var Tt=v(ct,2),Wt=v(Tt,2),z=b(Wt),ae=v(Wt,2),Ee=b(ae);Ee.value=Ee.__value=0;var ot=v(Ee);ot.value=ot.__value=1;var ht=v(ot);ht.value=ht.__value=2;var Q=v(ae,2),ce=v(Q,2);{var Le=j=>{var N=PX();I(j,N)};O(ce,j=>{c(Ft)&&j(Le)})}var tt=v(ce,2);{var ei=j=>{var N=TX(),G=b(N);H(()=>A(G,c(Ye))),I(j,N)};O(tt,j=>{c(Ye)&&j(ei)})}var Dt=v(X,2),Ke=b(Dt),zt=v(Ke,2),pi=b(zt);{var qt=j=>{var N=Io();H(()=>A(N,`${c(M).length??""} /`)),I(j,N)};O(pi,j=>{c(w)&&j(qt)})}var Pi=v(pi),Mi=v(Dt,2);{var Ei=j=>{var N=MX();I(j,N)},$i=j=>{var N=RX(),G=b(N);H(()=>A(G,c(Fe))),I(j,N)},Be=j=>{var N=Gs(),G=wt(N);{var te=Y=>{var re=NX();I(Y,re)},ue=Y=>{var re=OX(),Te=b(re),fe=b(Te);oi(fe,21,()=>c(M).slice(c(F).start,c(F).end),he=>he.topic,(he,Ze)=>{var U=AX(),ie=b(U),ye=b(ie),Ae=v(ie,2),ke=b(Ae),we=v(Ae,2),ft=b(we);H((at,ze,xt)=>{A(ye,c(Ze).topic),vn(Ae,"title",at),A(ke,ze),A(ft,xt)},[()=>Li(c(Ze).val),()=>Li(c(Ze).val),()=>Ci(c(Ze).ts)]),I(he,U)}),H(()=>{zo(Te,`height: ${c(F).totalH??""}px; position: relative;`),zo(fe,`top: ${c(F).top??""}px;`)}),ds("scroll",re,he=>{m(k,he.currentTarget.scrollTop,!0)}),tW(re,"clientHeight",he=>m(D,he)),I(Y,re)};O(G,Y=>{c(M).length===0?Y(te):Y(ue,-1)})}I(j,N)},nt=j=>{var N=HX(),G=b(N);{var te=Y=>{var re=FX();I(Y,re)},ue=Y=>{var re=Gs(),Te=wt(re);oi(Te,17,()=>c(hi),fe=>fe.path,(fe,he)=>{t(fe,()=>c(he))}),I(Y,re)};O(G,Y=>{c(hi).length===0?Y(te):Y(ue,-1)})}I(j,N)};O(Mi,j=>{c(Ot)?j(Ei):c(Fe)?j($i,1):c(w)?j(Be,2):j(nt,-1)})}var vi=v(je,2),ui=b(vi),wi=v(ui,2),gi=b(wi),le=v(gi,2);{var $e=j=>{var N=WX(),G=b(N);H(()=>A(G,c(qe).length)),I(j,N)};O(le,j=>{!c(Oe)&&c(qe).length>0&&j($e)})}var gt=v(le,2),Mt=b(gt),ti=v(wi,2);{var bt=j=>{var N=jX(),G=b(N);{var te=Y=>{var re=BX();I(Y,re)},ue=Y=>{var re=Gs(),Te=wt(re);oi(Te,17,()=>c(pt),fe=>fe.id,(fe,he)=>{var Ze=VX();let U;var ie=b(Ze),ye=b(ie),Ae=v(ie,2);{var ke=xt=>{var Xe=zX();I(xt,Xe)};O(Ae,xt=>{c(he).retained&&xt(ke)})}var we=v(Ae,2),ft=b(we),at=v(we,2),ze=b(at);H((xt,Xe,_e)=>{U=Et(Ze,1,"sr svelte-1vejtrc",null,U,{retained:c(he).retained}),A(ye,xt),A(ft,c(he).topic),vn(at,"title",Xe),A(ze,_e)},[()=>Ct(c(he).ts),()=>Li(c(he).val),()=>Li(c(he).val)]),I(fe,Ze)}),I(Y,re)};O(G,Y=>{c(pt).length===0?Y(te):Y(ue,-1)})}I(j,N)};O(ti,j=>{c(Oe)&&j(bt)})}var bi=v(vi,2);{var W=j=>{var N=$X(),G=wt(N),te=v(G,2);let ue;var Y=b(te),re=v(Y,2);H(()=>ue=zo(te,"",ue,{left:`${c(lt).x??""}px`,top:`${c(lt).y??""}px`})),$("click",G,()=>m(lt,null)),$("contextmenu",G,Te=>{Te.preventDefault(),m(lt,null)}),$("click",Y,()=>{navigator.clipboard.writeText(c(lt).topic),m(lt,null)}),$("click",re,()=>{const Te=c(lt).topic,fe=Te+"/",he=[...i.keys()].some(Ze=>Ze.startsWith(fe));m($t,{topic:Te,hasChildren:he,recursive:!1},!0),m(lt,null)}),I(j,N)};O(bi,j=>{c(lt)&&j(W)})}var J=v(bi,2);{var se=j=>{var N=qX(),G=wt(N),te=v(G,2),ue=v(b(te),2),Y=b(ue),re=v(b(Y)),Te=b(re),fe=v(Y,2);{var he=ye=>{var Ae=UX(),ke=b(Ae);ks(ke,()=>c($t).recursive,we=>c($t).recursive=we),I(ye,Ae)};O(fe,ye=>{c($t).hasChildren&&ye(he)})}var Ze=v(ue,2),U=b(Ze),ie=v(U,2);H(()=>A(Te,c($t).topic)),$("click",G,()=>m($t,null)),$("click",U,()=>m($t,null)),$("click",ie,()=>{const{topic:ye,recursive:Ae}=c($t);m($t,null),xe(ye,Ae)}),I(j,N)};O(J,j=>{c($t)&&j(se)})}H(()=>{Q.disabled=c(Xt)||!c(dt),A(Pi,` ${c(Ii)??""}`),zo(vi,c(Oe)?`height: ${c(kt)}px;`:""),A(Mt,c(Oe)?"▾":"▸")}),Kt(He,()=>c(dt),j=>m(dt,j)),Kt(Tt,()=>c(It),j=>m(It,j)),ks(z,()=>c(Si),j=>m(Si,j)),As(ae,()=>c(_t),j=>m(_t,j)),$("click",Q,ci),Kt(Ke,()=>c(w),j=>m(w,j)),$("mousedown",ui,Lt),Kt(gi,()=>c(ut),j=>m(ut,j)),$("click",gt,()=>{m(Oe,!c(Oe))}),I(o,Zi),Hs()}eo(["click","contextmenu","mousedown"]);var ZX=P('<div class="restart-banner restart-banner--restarting svelte-twakcj">Restarting daemon…</div>'),YX=P('<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>'),XX=P('<div class="err svelte-twakcj"> </div>'),JX=P('<span class="pane-count pane-count--warn svelte-twakcj"> </span>'),QX=P('<p class="empty svelte-twakcj">No packages installed.</p>'),eJ=P('<p class="empty svelte-twakcj">No match.</p>'),tJ=P("<span> </span>"),iJ=XT('<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>'),nJ=XT('<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>'),sJ=P('<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>'),oJ=P('<span class="result-author svelte-twakcj"> </span>'),rJ=P('<span class="result-date svelte-twakcj"> </span>'),aJ=P('<span class="result-desc svelte-twakcj"> </span>'),lJ=P('<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>'),cJ=P('<div class="results-list svelte-twakcj"></div>'),dJ=P('<pre class="npm-output svelte-twakcj"> </pre>'),uJ=P(`<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>`),hJ=P('<!> <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 fJ(o,e){Fs(e,!0);let t=T(ki([])),i=T(""),n=T(ki({})),s=T(ki([])),r=T(!1),a=T(""),d=T(ki([])),u=T(!1),f=T(!1),g=T(!1),p=T(""),w=T(""),y=ki({});const x=mt(()=>c(i).trim()?c(t).filter(Ve=>Ve.name.toLowerCase().includes(c(i).toLowerCase())):c(t)),k=mt(()=>Object.keys(c(n)).filter(Ve=>!c(s).includes(Ve)).length);Js(async()=>{await Promise.all([D(),M(),F()])});async function D(){try{m(t,await H7(),!0),m(p,"")}catch(Ve){m(p,Ve.message,!0)}}async function M(){try{m(n,await UN(),!0)}catch{}}async function F(){try{const Ve=await Pl();m(s,Array.isArray(Ve.pinnedPackages)?Ve.pinnedPackages:[],!0)}catch{}}async function K(Ve){const Rt=c(s).includes(Ve)?c(s).filter(Ut=>Ut!==Ve):[...c(s),Ve];m(s,Rt,!0);try{const Ut=await Pl();await Yp({...Ut,pinnedPackages:Rt})}catch{}}async function V(){m(r,!0);try{m(n,await j7(),!0)}catch{}finally{m(r,!1)}}async function oe(){const Ve=c(a).trim();if(!Ve){m(d,[],!0);return}m(g,!0),m(p,"");try{m(d,await W7(Ve),!0)}catch(Rt){m(p,Rt.message,!0)}finally{m(g,!1)}}function ne(Ve){if(!Ve)return"";try{return new Date(Ve).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}async function Se(Ve,Rt){y[Ve]=!0,m(p,""),m(w,"");try{const Ut=await B7(Ve,Rt);m(w,Ut.stdout||Ut.stderr||"Done.",!0),m(u,!0),await D()}catch(Ut){m(p,Ut.message,!0)}finally{y[Ve]=!1}}async function We(Ve){y[Ve]=!0,m(p,""),m(w,"");try{const Rt=await z7(Ve);m(w,Rt.stdout||Rt.stderr||"Done.",!0),m(u,!0);const Ut={...c(n)};delete Ut[Ve],m(n,Ut,!0),await D()}catch(Rt){m(p,Rt.message,!0)}finally{y[Ve]=!1}}async function qe(Ve){y[Ve]=!0,m(p,""),m(w,"");try{const Rt=await V7(Ve);m(w,Rt.stdout||Rt.stderr||"Done.",!0),m(u,!0);const Ut={...c(n)};delete Ut[Ve],m(n,Ut,!0),await D()}catch(Rt){m(p,Rt.message,!0)}finally{y[Ve]=!1}}let Oe;async function ut(){if(await Oe.show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"})){m(f,!0);try{await VN()}catch{}setTimeout(()=>{window.location.reload()},3e3)}}var kt=hJ(),Pe=wt(kt);vs($c(Pe,{}),Ve=>Oe=Ve,()=>Oe);var Lt=v(Pe,2),pt=b(Lt);{var Ot=Ve=>{var Rt=ZX();I(Ve,Rt)},Fe=Ve=>{var Rt=YX(),Ut=v(b(Rt));$("click",Ut,ut),I(Ve,Rt)};O(pt,Ve=>{c(f)?Ve(Ot):c(u)&&Ve(Fe,1)})}var Nt=v(pt,2);{var et=Ve=>{var Rt=XX(),Ut=b(Rt);H(()=>A(Ut,c(p))),I(Ve,Rt)};O(Nt,Ve=>{c(p)&&Ve(et)})}var lt=v(Nt,2),$t=b(lt),xe=b($t),rt=v(b(xe),2),dt=b(rt),It=v(rt,2);{var Si=Ve=>{var Rt=JX(),Ut=b(Rt);H(()=>A(Ut,`${c(k)??""} outdated`)),I(Ve,Rt)};O(It,Ve=>{c(k)>0&&Ve(Si)})}var _t=v(It,2),Xt=b(_t);let Ye;var Ft=v(xe,2),ci=b(Ft),Li=v(Ft,2),Ci=b(Li);{var Ct=Ve=>{var Rt=QX();I(Ve,Rt)},Jt=Ve=>{var Rt=eJ();I(Ve,Rt)},hi=Ve=>{var Rt=Gs(),Ut=wt(Rt);oi(Ut,17,()=>c(x),fi=>fi.name,(fi,ni)=>{var Zi=sJ();let Wi;var Yi=b(Zi),di=b(Yi),je=b(di),X=v(di,2),He=b(X),ct=v(X,2);{var Tt=tt=>{var ei=tJ();let Dt;var Ke=b(ei);H(zt=>{Dt=Et(ei,1,"dep-latest svelte-twakcj",null,Dt,zt),A(Ke,`→ v${c(n)[c(ni).name].latest??""}`)},[()=>({"dep-latest--pinned":c(s).includes(c(ni).name)})]),I(tt,ei)};O(ct,tt=>{c(n)[c(ni).name]&&tt(Tt)})}var Wt=v(Yi,2),z=b(Wt);let ae;var Ee=v(z,2);let ot;var ht=b(Ee);{var Q=tt=>{var ei=iJ();I(tt,ei)},ce=tt=>{var ei=nJ();I(tt,ei)};O(ht,tt=>{y[c(ni).name]?tt(Q):tt(ce,-1)})}var Le=v(Ee,2);H((tt,ei,Dt)=>{Wi=Et(Zi,1,"dep-row svelte-twakcj",null,Wi,{"dep-busy":!!y[c(ni).name]}),vn(di,"href",c(ni).url??`https://www.npmjs.com/package/${c(ni).name}`),A(je,c(ni).name),A(He,c(ni).installedVersion??c(ni).version),ae=Et(z,1,"icon-btn svelte-twakcj",null,ae,tt),vn(z,"title",ei),ot=Et(Ee,1,"icon-btn svelte-twakcj",null,ot,Dt),Ee.disabled=!!y[c(ni).name],vn(Ee,"title",c(n)[c(ni).name]?`Update to v${c(n)[c(ni).name].latest}`:"Update to latest"),Le.disabled=!!y[c(ni).name]},[()=>({"icon-btn--pinned":c(s).includes(c(ni).name)}),()=>c(s).includes(c(ni).name)?"Unpin package":"Pin package (suppress update dot)",()=>({"icon-btn--update":!!c(n)[c(ni).name]&&!c(s).includes(c(ni).name)})]),$("click",z,()=>K(c(ni).name)),$("click",Ee,()=>qe(c(ni).name)),$("click",Le,()=>We(c(ni).name)),I(fi,Zi)}),I(Ve,Rt)};O(Ci,Ve=>{c(t).length===0?Ve(Ct):c(x).length===0?Ve(Jt,1):Ve(hi,-1)})}var Ii=v($t,2),Ui=v(b(Ii),2),Hi=b(Ui),Bi=v(Hi,2),rn=b(Bi),Oi=v(Ui,2);{var xi=Ve=>{var Rt=cJ();oi(Rt,21,()=>c(d),Ut=>Ut.name,(Ut,fi)=>{var ni=lJ(),Zi=b(ni),Wi=b(Zi),Yi=b(Wi),di=v(Wi,2),je=b(di),X=v(di,2);{var He=ot=>{var ht=oJ(),Q=b(ht);H(()=>A(Q,c(fi).author)),I(ot,ht)};O(X,ot=>{c(fi).author&&ot(He)})}var ct=v(X,2);{var Tt=ot=>{var ht=rJ(),Q=b(ht);H(ce=>{vn(ht,"title",c(fi).date),A(Q,ce)},[()=>ne(c(fi).date)]),I(ot,ht)};O(ct,ot=>{c(fi).date&&ot(Tt)})}var Wt=v(ct,2);{var z=ot=>{var ht=aJ(),Q=b(ht);H(()=>A(Q,c(fi).description)),I(ot,ht)};O(Wt,ot=>{c(fi).description&&ot(z)})}var ae=v(Zi,2),Ee=b(ae);H(()=>{vn(Wi,"href",c(fi).url??`https://www.npmjs.com/package/${c(fi).name}`),A(Yi,c(fi).name),A(je,c(fi).version),ae.disabled=!!y[c(fi).name],A(Ee,y[c(fi).name]?"Installing…":"Install")}),$("click",ae,()=>Se(c(fi).name)),I(Ut,ni)}),I(Ve,Rt)};O(Oi,Ve=>{c(d).length>0&&Ve(xi)})}var ji=v(Oi,2);{var Ki=Ve=>{var Rt=dJ(),Ut=b(Rt);H(()=>A(Ut,c(w))),I(Ve,Rt)};O(ji,Ve=>{c(w)&&Ve(Ki)})}var zi=v(ji,2);{var Ni=Ve=>{var Rt=uJ();I(Ve,Rt)};O(zi,Ve=>{!c(d).length&&!c(w)&&Ve(Ni)})}H(()=>{A(dt,c(t).length),_t.disabled=c(r),Ye=Et(Xt,0,"svelte-twakcj",null,Ye,{spinning:c(r)}),Bi.disabled=c(g),A(rn,c(g)?"Searching…":"Search")}),$("click",_t,V),Kt(ci,()=>c(i),Ve=>m(i,Ve)),$("keydown",Hi,Ve=>Ve.key==="Enter"&&oe()),Kt(Hi,()=>c(a),Ve=>m(a,Ve)),$("click",Bi,oe),I(o,kt),Hs()}eo(["click","keydown"]);var gJ=P('<div class="plugin-warning svelte-3itf14">⚠ The dynamic-security plugin is not responding. Add <code class="svelte-3itf14">plugin …/mosquitto_dynamic_security.so</code> and <code class="svelte-3itf14">plugin_opt_config_file …/dynamic-security.json</code> to your mosquitto.conf and restart mosquitto. Operations below will time out until the plugin is active.</div>'),ya=P('<div class="err svelte-3itf14"> </div>'),pJ=P('<div class="empty svelte-3itf14">No users found.</div>'),_J=P('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),_h=P("<option> </option>"),xm=P('<div class="inline-err svelte-3itf14"> </div>'),CD=P('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— role —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),mJ=P('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove from group">×</button></span>'),vJ=P('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— group —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),bJ=P('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add to group">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Set password" class="svelte-3itf14">🔑</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),yJ=P('<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>'),wJ=P('<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>'),SJ=P('<div class="empty svelte-3itf14">No roles found.</div>'),CJ=P('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"> </td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button title="Edit ACLs" class="svelte-3itf14">Edit ACLs</button> <button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),xJ=P('<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>'),kJ=P('<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>'),LJ=P('<div class="empty svelte-3itf14">No groups found.</div>'),IJ=P('<span class="tag svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove member">×</button></span>'),EJ=P('<div class="inline-add svelte-3itf14"><select class="svelte-3itf14"><option>— user —</option><!></select> <button class="inline-confirm svelte-3itf14">Add</button> <button class="inline-cancel svelte-3itf14">×</button></div> <!>',1),DJ=P('<span class="tag tag--group svelte-3itf14"> <button class="tag-x svelte-3itf14" title="Remove role">×</button></span>'),PJ=P('<tr class="svelte-3itf14"><td class="mono svelte-3itf14"> </td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus svelte-3itf14" title="Add member">+</button></div> <!></div></td><td class="svelte-3itf14"><div class="tags-cell svelte-3itf14"><div class="tags svelte-3itf14"><!> <button class="tag-plus tag-plus--group svelte-3itf14" title="Add role">+</button></div> <!></div></td><td class="cell-actions svelte-3itf14"><div class="actions svelte-3itf14"><button class="danger svelte-3itf14" title="Delete">✕</button></div></td></tr>'),TJ=P('<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>'),MJ=P('<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>'),xD=P('<div class="empty svelte-3itf14">Loading…</div>'),RJ=P('<tr><td class="mono small svelte-3itf14"> </td><td class="acl-radio svelte-3itf14"><input type="radio" value="allow"/></td><td class="acl-radio svelte-3itf14"><input type="radio" value="deny"/></td></tr>'),NJ=P('<table class="acl-defaults-table svelte-3itf14"><thead><tr><th class="svelte-3itf14">Operation</th><th class="svelte-3itf14">Allow</th><th class="svelte-3itf14">Deny</th></tr></thead><tbody></tbody></table>'),AJ=P('<div class="anon-current svelte-3itf14">Current: <span class="mono svelte-3itf14"> </span></div>'),OJ=P('<div class="anon-current muted svelte-3itf14">No anonymous group configured.</div>'),FJ=P('<div class="anon-row svelte-3itf14"><select class="svelte-3itf14"><option>— none —</option><!></select> <button class="svelte-3itf14"> </button></div> <!>',1),HJ=P('<div class="panel svelte-3itf14"><div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Default ACL Access</h3> <p class="settings-hint svelte-3itf14">Broker-wide defaults applied when no role ACL matches. Role ACLs always take precedence over these defaults.</p> <!> <!></div> <div class="settings-section svelte-3itf14"><h3 class="settings-heading svelte-3itf14">Anonymous Group</h3> <p class="settings-hint svelte-3itf14">Clients connecting without credentials are treated as members of this group. Requires <code class="svelte-3itf14">allow_anonymous true</code> in mosquitto.conf.</p> <!> <!></div></div>'),WJ=P('<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>'),BJ=P('<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>'),zJ=P('<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>'),VJ=P('<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>'),jJ=P('<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>'),$J=P('<div class="empty svelte-3itf14">No ACL rules yet.</div>'),UJ=P('<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>'),qJ=P('<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>'),GJ=P('<div class="users-page svelte-3itf14"><!> <div class="panel-tabs svelte-3itf14"><button>Users</button> <button>Roles</button> <button>Groups</button> <button>Settings</button> <button class="reload-btn svelte-3itf14" title="Refresh">↺</button></div> <!> <!> <!> <!></div> <!> <!> <!> <!> <!> <!>',1);function KJ(o,e){Fs(e,!0);let t=Su(e,"dynsecReady",3,!1),i,n=T(ki([])),s=T(ki([])),r=T(ki([])),a=T(""),d=T(""),u=T(""),f=T("users"),g=T(null),p=T(""),w=T(""),y=T(!1);const x=mt(()=>c(g)?c(g).kind==="user-roles"?c(s).map(le=>le.rolename).filter(le=>{var $e,gt;return!((gt=($e=c(n).find(Mt=>Mt.username===c(g).target))==null?void 0:$e.roles)!=null&>.some(Mt=>Mt.rolename===le))}):c(g).kind==="user-groups"?c(r).map(le=>le.groupname).filter(le=>{var $e,gt;return!((gt=($e=c(n).find(Mt=>Mt.username===c(g).target))==null?void 0:$e.groups)!=null&>.some(Mt=>Mt.groupname===le))}):c(g).kind==="group-members"?c(n).map(le=>le.username).filter(le=>{var $e,gt;return!((gt=($e=c(r).find(Mt=>Mt.groupname===c(g).target))==null?void 0:$e.clients)!=null&>.some(Mt=>Mt.username===le))}):c(s).map(le=>le.rolename).filter(le=>{var $e,gt;return!((gt=($e=c(r).find(Mt=>Mt.groupname===c(g).target))==null?void 0:$e.roles)!=null&>.some(Mt=>Mt.rolename===le))}):[]);function k(le,$e){m(g,{kind:le,target:$e},!0),m(p,""),m(w,"")}async function D(){if(!(!c(g)||!c(p))){m(y,!0),m(w,"");try{const{kind:le,target:$e}=c(g);le==="user-roles"?await aq($e,c(p)):le==="user-groups"?await $E(c(p),$e):le==="group-members"?await $E($e,c(p)):await pq($e,c(p)),m(g,null),m(p,""),await xi()}catch(le){m(w,le.message,!0)}finally{m(y,!1)}}}async function M(le,$e){try{await lq(le,$e),await xi()}catch(gt){m(a,gt.message,!0)}}async function F(le,$e){try{await UE($e,le),await xi()}catch(gt){m(a,gt.message,!0)}}async function K(le,$e){try{await UE(le,$e),await xi()}catch(gt){m(u,gt.message,!0)}}async function V(le,$e){try{await _q(le,$e),await xi()}catch(gt){m(u,gt.message,!0)}}let oe=T(!1),ne=T(""),Se=T(""),We=T(!1),qe=T(""),Oe=T(!1),ut=T(!1),kt=T(""),Pe=T(""),Lt=T(""),pt=T(!1),Ot=T(!1),Fe=T(""),Nt=T(""),et=T(!1),lt=T(null),$t=T(!1),xe=T("publishClientSend"),rt=T(""),dt=T(!0),It=T(""),Si=T(!1),_t=T(""),Xt=T(""),Ye=T(!1),Ft=T(ki([])),ci=T(""),Li=T(!1),Ci=T(null),Ct=T(""),Jt=T(""),hi=T(!1),Ii=T(!1);const Ui=[{acltype:"publishClientSend",label:"Publish (send)"},{acltype:"publishClientReceive",label:"Publish (receive)"},{acltype:"subscribe",label:"Subscribe"},{acltype:"unsubscribe",label:"Unsubscribe"}];async function Hi(){var le,$e;m(Ii,!1),m(ci,""),m(Jt,"");try{const[gt,Mt]=await Promise.allSettled([tA(),vq()]);if(gt.status==="fulfilled"){const ti=Object.fromEntries(gt.value.acls.map(bt=>[bt.acltype,bt.allow]));m(Ft,Ui.map(({acltype:bt})=>({acltype:bt,allow:ti[bt]??(bt==="publishClientReceive"||bt==="unsubscribe")})),!0)}else m(ci,((le=gt.reason)==null?void 0:le.message)??"Failed to load default ACLs",!0);Mt.status==="fulfilled"?(m(Ci,Mt.value.group,!0),m(Ct,Mt.value.group??"",!0)):m(Jt,(($e=Mt.reason)==null?void 0:$e.message)??"Failed to load anonymous group",!0)}finally{m(Ii,!0)}}async function Bi(le,$e){m(Ft,c(Ft).map(gt=>gt.acltype===le?{...gt,allow:$e}:gt),!0),m(Li,!0),m(ci,"");try{await mq(c(Ft))}catch(gt){m(ci,gt.message,!0)}finally{m(Li,!1)}}async function rn(){m(hi,!0),m(Jt,"");try{await bq(c(Ct)||null),m(Ci,c(Ct)||null,!0)}catch(le){m(Jt,le.message,!0)}finally{m(hi,!1)}}const Oi=["publishClientSend","publishClientReceive","subscribeLiteral","subscribePattern","unsubscribeLiteral","unsubscribePattern"];async function xi(){var le,$e,gt;try{const[Mt,ti,bt]=await Promise.allSettled([JN(),QN(),eA()]);Mt.status==="fulfilled"?(m(n,Mt.value.users,!0),m(a,"")):m(a,((le=Mt.reason)==null?void 0:le.message)??"Failed to load users",!0),ti.status==="fulfilled"?(m(s,ti.value.roles,!0),m(d,"")):m(d,(($e=ti.reason)==null?void 0:$e.message)??"Failed to load roles",!0),bt.status==="fulfilled"?(m(r,bt.value.groups,!0),m(u,"")):m(u,((gt=bt.reason)==null?void 0:gt.message)??"Failed to load groups",!0)}catch{}}Js(()=>{xi()});async function ji(){m(qe,""),m(Oe,!0);try{await sq(c(ne),c(Se)),m(ne,""),m(Se,""),m(oe,!1),await xi()}catch(le){m(qe,le.message??"Failed to create user",!0)}finally{m(Oe,!1)}}async function Ki(le){if(await i.show(`Delete user “${le}”?`,{confirm:"Delete",danger:!0}))try{await oq(le),await xi()}catch($e){m(a,$e.message,!0)}}async function zi(le){m(kt,le,!0),m(Pe,""),m(Lt,""),m(ut,!0)}async function Ni(){m(Lt,""),m(pt,!0);try{await rq(c(kt),c(Pe)),m(ut,!1)}catch(le){m(Lt,le.message,!0)}finally{m(pt,!1)}}async function Ve(){m(Nt,""),m(et,!0);try{await cq(c(Fe)),m(Fe,""),m(Ot,!1),await xi()}catch(le){m(Nt,le.message??"Failed to create role",!0)}finally{m(et,!1)}}async function Rt(le){var $e;if(await i.show(`Delete role “${le}”?`,{confirm:"Delete",danger:!0}))try{await dq(le),(($e=c(lt))==null?void 0:$e.rolename)===le&&(m(lt,null),m($t,!1)),await xi()}catch(gt){m(d,gt.message,!0)}}function Ut(le){m(lt,le,!0),m($t,!0),m(xe,"publishClientSend"),m(rt,""),m(dt,!0),m(It,"")}async function fi(){if(c(lt)){m(It,"");try{await uq(c(lt).rolename,{acltype:c(xe),topic:c(rt),allow:c(dt)}),m(rt,""),await xi(),m(lt,c(s).find(le=>le.rolename===c(lt).rolename)??c(lt),!0)}catch(le){m(It,le.message,!0)}}}async function ni(le,$e,gt){try{await hq(le,$e,gt),await xi(),m(lt,c(s).find(Mt=>Mt.rolename===le)??c(lt),!0)}catch(Mt){m(It,Mt.message,!0)}}async function Zi(){m(Xt,""),m(Ye,!0);try{await fq(c(_t)),m(_t,""),m(Si,!1),await xi()}catch(le){m(Xt,le.message??"Failed to create group",!0)}finally{m(Ye,!1)}}async function Wi(le){if(await i.show(`Delete group “${le}”?`,{confirm:"Delete",danger:!0}))try{await gq(le),await xi()}catch($e){m(u,$e.message,!0)}}var Yi=GJ(),di=wt(Yi),je=b(di);{var X=le=>{var $e=gJ();I(le,$e)};O(je,le=>{t()||le(X)})}var He=v(je,2),ct=b(He);let Tt;var Wt=v(ct,2);let z;var ae=v(Wt,2);let Ee;var ot=v(ae,2);let ht;var Q=v(ot,2),ce=v(He,2);{var Le=le=>{var $e=wJ(),gt=b($e),Mt=v(b(gt),2),ti=v(gt,2);{var bt=se=>{var j=ya(),N=b(j);H(()=>A(N,c(a))),I(se,j)};O(ti,se=>{c(a)&&se(bt)})}var bi=v(ti,2);{var W=se=>{var j=pJ();I(se,j)},J=se=>{var j=yJ(),N=v(b(j));oi(N,21,()=>c(n),Vi,(G,te)=>{var ue=bJ(),Y=b(ue),re=b(Y),Te=v(Y),fe=b(Te),he=b(fe),Ze=b(he);oi(Ze,17,()=>c(te).roles??[],Vi,(me,Je)=>{var de=_J(),De=b(de),Qe=v(De);H(()=>A(De,c(Je).rolename)),$("click",Qe,()=>M(c(te).username,c(Je).rolename)),I(me,de)});var U=v(Ze,2),ie=v(he,2);{var ye=me=>{var Je=CD(),de=wt(Je),De=b(de),Qe=b(De);Qe.value=Qe.__value="";var st=v(Qe);oi(st,17,()=>c(x),Vi,(Gt,_i)=>{var Qi=_h(),Ri=b(Qi),Qt={};H(()=>{A(Ri,c(_i)),Qt!==(Qt=c(_i))&&(Qi.value=(Qi.__value=c(_i))??"")}),I(Gt,Qi)});var Ge=v(De,2),Ht=v(Ge,2),Vt=v(de,2);{var Di=Gt=>{var _i=xm(),Qi=b(_i);H(()=>A(Qi,c(w))),I(Gt,_i)};O(Vt,Gt=>{c(w)&&Gt(Di)})}H(()=>Ge.disabled=!c(p)||c(y)),As(De,()=>c(p),Gt=>m(p,Gt)),$("click",Ge,D),$("click",Ht,()=>m(g,null)),I(me,Je)};O(ie,me=>{var Je;((Je=c(g))==null?void 0:Je.kind)==="user-roles"&&c(g).target===c(te).username&&me(ye)})}var Ae=v(Te),ke=b(Ae),we=b(ke),ft=b(we);oi(ft,17,()=>c(te).groups??[],Vi,(me,Je)=>{var de=mJ(),De=b(de),Qe=v(De);H(()=>A(De,c(Je).groupname)),$("click",Qe,()=>F(c(te).username,c(Je).groupname)),I(me,de)});var at=v(ft,2),ze=v(we,2);{var xt=me=>{var Je=vJ(),de=wt(Je),De=b(de),Qe=b(De);Qe.value=Qe.__value="";var st=v(Qe);oi(st,17,()=>c(x),Vi,(Gt,_i)=>{var Qi=_h(),Ri=b(Qi),Qt={};H(()=>{A(Ri,c(_i)),Qt!==(Qt=c(_i))&&(Qi.value=(Qi.__value=c(_i))??"")}),I(Gt,Qi)});var Ge=v(De,2),Ht=v(Ge,2),Vt=v(de,2);{var Di=Gt=>{var _i=xm(),Qi=b(_i);H(()=>A(Qi,c(w))),I(Gt,_i)};O(Vt,Gt=>{c(w)&&Gt(Di)})}H(()=>Ge.disabled=!c(p)||c(y)),As(De,()=>c(p),Gt=>m(p,Gt)),$("click",Ge,D),$("click",Ht,()=>m(g,null)),I(me,Je)};O(ze,me=>{var Je;((Je=c(g))==null?void 0:Je.kind)==="user-groups"&&c(g).target===c(te).username&&me(xt)})}var Xe=v(Ae),_e=b(Xe),Me=b(_e),Ce=v(Me,2);H(()=>A(re,c(te).username)),$("click",U,()=>k("user-roles",c(te).username)),$("click",at,()=>k("user-groups",c(te).username)),$("click",Me,()=>zi(c(te).username)),$("click",Ce,()=>Ki(c(te).username)),I(G,ue)}),I(se,j)};O(bi,se=>{c(n).length===0?se(W):se(J,-1)})}$("click",Mt,()=>{m(oe,!0),m(qe,"")}),I(le,$e)};O(ce,le=>{c(f)==="users"&&le(Le)})}var tt=v(ce,2);{var ei=le=>{var $e=kJ(),gt=b($e),Mt=v(b(gt),2),ti=v(gt,2);{var bt=se=>{var j=ya(),N=b(j);H(()=>A(N,c(d))),I(se,j)};O(ti,se=>{c(d)&&se(bt)})}var bi=v(ti,2);{var W=se=>{var j=SJ();I(se,j)},J=se=>{var j=xJ(),N=v(b(j));oi(N,21,()=>c(s),Vi,(G,te)=>{var ue=CJ(),Y=b(ue),re=b(Y),Te=v(Y),fe=b(Te),he=v(Te),Ze=b(he),U=b(Ze),ie=v(U,2);H(()=>{var ye;A(re,c(te).rolename),A(fe,((ye=c(te).acls)==null?void 0:ye.length)??0)}),$("click",U,()=>Ut(c(te))),$("click",ie,()=>Rt(c(te).rolename)),I(G,ue)}),I(se,j)};O(bi,se=>{c(s).length===0?se(W):se(J,-1)})}$("click",Mt,()=>{m(Ot,!0),m(Nt,""),m(Fe,"")}),I(le,$e)};O(tt,le=>{c(f)==="roles"&&le(ei)})}var Dt=v(tt,2);{var Ke=le=>{var $e=MJ(),gt=b($e),Mt=v(b(gt),2),ti=v(gt,2);{var bt=se=>{var j=ya(),N=b(j);H(()=>A(N,c(u))),I(se,j)};O(ti,se=>{c(u)&&se(bt)})}var bi=v(ti,2);{var W=se=>{var j=LJ();I(se,j)},J=se=>{var j=TJ(),N=v(b(j));oi(N,21,()=>c(r),Vi,(G,te)=>{var ue=PJ(),Y=b(ue),re=b(Y),Te=v(Y),fe=b(Te),he=b(fe),Ze=b(he);oi(Ze,17,()=>c(te).clients??[],Vi,(Ce,me)=>{var Je=IJ(),de=b(Je),De=v(de);H(()=>A(de,c(me).username)),$("click",De,()=>K(c(te).groupname,c(me).username)),I(Ce,Je)});var U=v(Ze,2),ie=v(he,2);{var ye=Ce=>{var me=EJ(),Je=wt(me),de=b(Je),De=b(de);De.value=De.__value="";var Qe=v(De);oi(Qe,17,()=>c(x),Vi,(Di,Gt)=>{var _i=_h(),Qi=b(_i),Ri={};H(()=>{A(Qi,c(Gt)),Ri!==(Ri=c(Gt))&&(_i.value=(_i.__value=c(Gt))??"")}),I(Di,_i)});var st=v(de,2),Ge=v(st,2),Ht=v(Je,2);{var Vt=Di=>{var Gt=xm(),_i=b(Gt);H(()=>A(_i,c(w))),I(Di,Gt)};O(Ht,Di=>{c(w)&&Di(Vt)})}H(()=>st.disabled=!c(p)||c(y)),As(de,()=>c(p),Di=>m(p,Di)),$("click",st,D),$("click",Ge,()=>m(g,null)),I(Ce,me)};O(ie,Ce=>{var me;((me=c(g))==null?void 0:me.kind)==="group-members"&&c(g).target===c(te).groupname&&Ce(ye)})}var Ae=v(Te),ke=b(Ae),we=b(ke),ft=b(we);oi(ft,17,()=>c(te).roles??[],Vi,(Ce,me)=>{var Je=DJ(),de=b(Je),De=v(de);H(()=>A(de,c(me).rolename)),$("click",De,()=>V(c(te).groupname,c(me).rolename)),I(Ce,Je)});var at=v(ft,2),ze=v(we,2);{var xt=Ce=>{var me=CD(),Je=wt(me),de=b(Je),De=b(de);De.value=De.__value="";var Qe=v(De);oi(Qe,17,()=>c(x),Vi,(Di,Gt)=>{var _i=_h(),Qi=b(_i),Ri={};H(()=>{A(Qi,c(Gt)),Ri!==(Ri=c(Gt))&&(_i.value=(_i.__value=c(Gt))??"")}),I(Di,_i)});var st=v(de,2),Ge=v(st,2),Ht=v(Je,2);{var Vt=Di=>{var Gt=xm(),_i=b(Gt);H(()=>A(_i,c(w))),I(Di,Gt)};O(Ht,Di=>{c(w)&&Di(Vt)})}H(()=>st.disabled=!c(p)||c(y)),As(de,()=>c(p),Di=>m(p,Di)),$("click",st,D),$("click",Ge,()=>m(g,null)),I(Ce,me)};O(ze,Ce=>{var me;((me=c(g))==null?void 0:me.kind)==="group-roles"&&c(g).target===c(te).groupname&&Ce(xt)})}var Xe=v(Ae),_e=b(Xe),Me=b(_e);H(()=>A(re,c(te).groupname)),$("click",U,()=>k("group-members",c(te).groupname)),$("click",at,()=>k("group-roles",c(te).groupname)),$("click",Me,()=>Wi(c(te).groupname)),I(G,ue)}),I(se,j)};O(bi,se=>{c(r).length===0?se(W):se(J,-1)})}$("click",Mt,()=>{m(Si,!0),m(Xt,""),m(_t,"")}),I(le,$e)};O(Dt,le=>{c(f)==="groups"&&le(Ke)})}var zt=v(Dt,2);{var pi=le=>{var $e=HJ(),gt=b($e),Mt=v(b(gt),4);{var ti=ue=>{var Y=ya(),re=b(Y);H(()=>A(re,c(ci))),I(ue,Y)};O(Mt,ue=>{c(ci)&&ue(ti)})}var bt=v(Mt,2);{var bi=ue=>{var Y=xD();I(ue,Y)},W=ue=>{var Y=NJ(),re=v(b(Y));oi(re,21,()=>Ui,Vi,(Te,fe)=>{let he=()=>c(fe).acltype,Ze=()=>c(fe).label;const U=mt(()=>c(Ft).find(xt=>xt.acltype===he()));var ie=RJ();let ye;var Ae=b(ie),ke=b(Ae),we=v(Ae),ft=b(we),at=v(we),ze=b(at);H(()=>{var xt,Xe;ye=Et(ie,1,"svelte-3itf14",null,ye,{saving:c(Li)}),A(ke,Ze()),vn(ft,"name",he()),hd(ft,((xt=c(U))==null?void 0:xt.allow)===!0),vn(ze,"name",he()),hd(ze,((Xe=c(U))==null?void 0:Xe.allow)===!1)}),$("change",ft,()=>Bi(he(),!0)),$("change",ze,()=>Bi(he(),!1)),I(Te,ie)}),I(ue,Y)};O(bt,ue=>{c(Ii)?ue(W,-1):ue(bi)})}var J=v(gt,2),se=v(b(J),4);{var j=ue=>{var Y=ya(),re=b(Y);H(()=>A(re,c(Jt))),I(ue,Y)};O(se,ue=>{c(Jt)&&ue(j)})}var N=v(se,2);{var G=ue=>{var Y=xD();I(ue,Y)},te=ue=>{var Y=FJ(),re=wt(Y),Te=b(re),fe=b(Te);fe.value=fe.__value="";var he=v(fe);oi(he,17,()=>c(r),Vi,(ke,we)=>{var ft=_h(),at=b(ft),ze={};H(()=>{A(at,c(we).groupname),ze!==(ze=c(we).groupname)&&(ft.value=(ft.__value=c(we).groupname)??"")}),I(ke,ft)});var Ze=v(Te,2),U=b(Ze),ie=v(re,2);{var ye=ke=>{var we=AJ(),ft=v(b(we)),at=b(ft);H(()=>A(at,c(Ci))),I(ke,we)},Ae=ke=>{var we=OJ();I(ke,we)};O(ie,ke=>{c(Ci)?ke(ye):ke(Ae,-1)})}H(()=>{Ze.disabled=c(hi)||c(Ct)===(c(Ci)??""),A(U,c(hi)?"Saving…":"Save")}),As(Te,()=>c(Ct),ke=>m(Ct,ke)),$("click",Ze,rn),I(ue,Y)};O(N,ue=>{c(Ii)?ue(te,-1):ue(G)})}I(le,$e)};O(zt,le=>{c(f)==="settings"&&le(pi)})}var qt=v(di,2);{var Pi=le=>{var $e=WJ(),gt=b($e),Mt=v(b(gt),2),ti=v(b(Mt)),bt=v(Mt,2),bi=v(b(bt)),W=b(bi),J=v(W,2),se=b(J),j=v(bt,2);{var N=re=>{var Te=ya(),fe=b(Te);H(()=>A(fe,c(qe))),I(re,Te)};O(j,re=>{c(qe)&&re(N)})}var G=v(j,2),te=b(G),ue=v(te,2),Y=b(ue);H(()=>{vn(W,"type",c(We)?"text":"password"),A(se,c(We)?"Hide":"Show"),ue.disabled=c(Oe)||!c(ne)||!c(Se),A(Y,c(Oe)?"Creating…":"Create")}),Kt(ti,()=>c(ne),re=>m(ne,re)),Kt(W,()=>c(Se),re=>m(Se,re)),$("click",J,()=>m(We,!c(We))),$("click",te,()=>m(oe,!1)),$("click",ue,ji),I(le,$e)};O(qt,le=>{c(oe)&&le(Pi)})}var Mi=v(qt,2);{var Ei=le=>{var $e=BJ(),gt=b($e),Mt=b(gt),ti=v(b(Mt)),bt=b(ti),bi=v(Mt,2),W=v(b(bi)),J=v(bi,2);{var se=ue=>{var Y=ya(),re=b(Y);H(()=>A(re,c(Lt))),I(ue,Y)};O(J,ue=>{c(Lt)&&ue(se)})}var j=v(J,2),N=b(j),G=v(N,2),te=b(G);H(()=>{A(bt,c(kt)),G.disabled=c(pt)||!c(Pe),A(te,c(pt)?"Saving…":"Set password")}),Kt(W,()=>c(Pe),ue=>m(Pe,ue)),$("click",N,()=>m(ut,!1)),$("click",G,Ni),I(le,$e)};O(Mi,le=>{c(ut)&&le(Ei)})}var $i=v(Mi,2);{var Be=le=>{var $e=zJ(),gt=b($e),Mt=v(b(gt),2),ti=v(b(Mt)),bt=v(Mt,2);{var bi=N=>{var G=ya(),te=b(G);H(()=>A(te,c(Nt))),I(N,G)};O(bt,N=>{c(Nt)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2),j=b(se);H(()=>{se.disabled=c(et)||!c(Fe),A(j,c(et)?"Creating…":"Create")}),Kt(ti,()=>c(Fe),N=>m(Fe,N)),$("click",J,()=>m(Ot,!1)),$("click",se,Ve),I(le,$e)};O($i,le=>{c(Ot)&&le(Be)})}var nt=v($i,2);{var vi=le=>{var $e=UJ(),gt=b($e),Mt=b(gt),ti=v(b(Mt)),bt=b(ti),bi=v(Mt,2);{var W=he=>{var Ze=jJ(),U=v(b(Ze));oi(U,21,()=>c(lt).acls??[],Vi,(ie,ye)=>{var Ae=VJ(),ke=b(Ae),we=b(ke),ft=v(ke),at=b(ft),ze=v(ft),xt=b(ze),Xe=v(ze),_e=b(Xe);H(()=>{A(we,c(ye).acltype),A(at,c(ye).topic),A(xt,c(ye).allow?"✓":"✗")}),$("click",_e,()=>ni(c(lt).rolename,c(ye).acltype,c(ye).topic)),I(ie,Ae)}),I(he,Ze)},J=he=>{var Ze=$J();I(he,Ze)};O(bi,he=>{var Ze;(((Ze=c(lt).acls)==null?void 0:Ze.length)??0)>0?he(W):he(J,-1)})}var se=v(bi,2),j=b(se);oi(j,21,()=>Oi,Vi,(he,Ze)=>{var U=_h(),ie=b(U),ye={};H(()=>{A(ie,c(Ze)),ye!==(ye=c(Ze))&&(U.value=(U.__value=c(Ze))??"")}),I(he,U)});var N=v(j,2),G=v(N,2),te=b(G),ue=v(G,2),Y=v(se,2);{var re=he=>{var Ze=ya(),U=b(Ze);H(()=>A(U,c(It))),I(he,Ze)};O(Y,he=>{c(It)&&he(re)})}var Te=v(Y,2),fe=b(Te);H(()=>{A(bt,c(lt).rolename),ue.disabled=!c(rt)}),As(j,()=>c(xe),he=>m(xe,he)),Kt(N,()=>c(rt),he=>m(rt,he)),ks(te,()=>c(dt),he=>m(dt,he)),$("click",ue,fi),$("click",fe,()=>m($t,!1)),I(le,$e)};O(nt,le=>{c($t)&&c(lt)&&le(vi)})}var ui=v(nt,2);{var wi=le=>{var $e=qJ(),gt=b($e),Mt=v(b(gt),2),ti=v(b(Mt)),bt=v(Mt,2);{var bi=N=>{var G=ya(),te=b(G);H(()=>A(te,c(Xt))),I(N,G)};O(bt,N=>{c(Xt)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2),j=b(se);H(()=>{se.disabled=c(Ye)||!c(_t),A(j,c(Ye)?"Creating…":"Create")}),Kt(ti,()=>c(_t),N=>m(_t,N)),$("click",J,()=>m(Si,!1)),$("click",se,Zi),I(le,$e)};O(ui,le=>{c(Si)&&le(wi)})}var gi=v(ui,2);vs($c(gi,{}),le=>i=le,()=>i),H(()=>{Tt=Et(ct,1,"svelte-3itf14",null,Tt,{active:c(f)==="users"}),z=Et(Wt,1,"svelte-3itf14",null,z,{active:c(f)==="roles"}),Ee=Et(ae,1,"svelte-3itf14",null,Ee,{active:c(f)==="groups"}),ht=Et(ot,1,"svelte-3itf14",null,ht,{active:c(f)==="settings"})}),$("click",ct,()=>m(f,"users")),$("click",Wt,()=>m(f,"roles")),$("click",ae,()=>m(f,"groups")),$("click",ot,()=>{m(f,"settings"),c(Ii)||Hi()}),$("click",Q,xi),I(o,Yi),Hs()}eo(["click","change"]);var kD=P('<div class="err svelte-9i68x"> </div>'),ZJ=P('<div class="ok svelte-9i68x">Saved.</div>'),YJ=P('<div class="reload-msg svelte-9i68x"> </div>'),XJ=P('<div class="loading svelte-9i68x">Loading…</div>'),JJ=P('<div class="anon-row svelte-9i68x"><span class="field-label svelte-9i68x"><code class="svelte-9i68x">allow_anonymous</code></span> <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated clients</option><option>false — require authentication</option></select></div>'),QJ=P('<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>'),eQ=P('<div class="per-listener-anon svelte-9i68x"><span class="field-label svelte-9i68x"><code class="svelte-9i68x">allow_anonymous</code></span> <select class="svelte-9i68x"><option>auto (broker default)</option><option>true — allow unauthenticated</option><option>false — require auth</option></select></div>'),tQ=P('<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>'),iQ=P('<div class="empty svelte-9i68x">No listeners configured. Click "+ Add listener" to create one.</div>'),nQ=P('<div class="global-settings svelte-9i68x"><label class="toggle-label svelte-9i68x"><input type="checkbox"/> <span><code>per_listener_settings</code> — independent auth per listener</span></label> <!></div> <div class="cards svelte-9i68x"><!> <!></div>',1),sQ=P('<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 oQ(o,e){Fs(e,!0);let t=T(null),i=T(""),n=T(!1),s=T(""),r=T(!1),a=T(!1),d=T(""),u=T(ki([])),f=T(null),g=T(!1),p=T("");Js(()=>{w()});async function w(){try{m(t,await X7(),!0),m(u,JSON.parse(JSON.stringify(c(t).listeners)),!0),m(f,c(t).checksum,!0);const xe=c(t).managed.allow_anonymous;m(p,xe==="true"||xe==="false"?xe:"",!0),m(g,c(t).managed.per_listener_settings==="true"),m(i,"")}catch(xe){m(i,xe.message??"Failed to load broker config",!0)}}function y(){m(u,[...c(u),{port:1883,bindAddress:"",protocol:"mqtt",tls:{}}],!0)}function x(xe){m(u,c(u).filter((rt,dt)=>dt!==xe),!0)}async function k(){if(c(t)){m(n,!0),m(s,""),m(r,!1);try{const xe={...c(t).managed};c(g)?(xe.per_listener_settings="true",delete xe.allow_anonymous):(delete xe.per_listener_settings,c(p)?xe.allow_anonymous=c(p):delete xe.allow_anonymous),await J7({listeners:c(u),managed:xe,passthrough:c(t).passthrough,checksum:c(f)}),m(r,!0),setTimeout(()=>m(r,!1),3e3),await w()}catch(xe){m(s,xe.message??"Save failed",!0)}finally{m(n,!1)}}}async function D(){m(a,!0),m(d,"");try{const xe=await Q7();m(d,xe.stderr||xe.stdout||"Reloaded",!0)}catch(xe){m(d,"Error: "+(xe.message??"reload failed"))}finally{m(a,!1)}}function M(xe){var rt,dt,It,Si;return!!((rt=xe.tls)!=null&&rt.certfile||(dt=xe.tls)!=null&&dt.keyfile||(It=xe.tls)!=null&&It.capath||(Si=xe.tls)!=null&&Si.cafile)}function F(xe,rt){rt||(xe.tls={}),m(u,[...c(u)],!0)}var K=sQ(),V=b(K),oe=v(b(V),2),ne=b(oe),Se=v(ne,2),We=b(Se),qe=v(Se,2),Oe=b(qe),ut=v(V,2);{var kt=xe=>{var rt=kD(),dt=b(rt);H(()=>A(dt,c(i))),I(xe,rt)};O(ut,xe=>{c(i)&&xe(kt)})}var Pe=v(ut,2);{var Lt=xe=>{var rt=kD(),dt=b(rt);H(()=>A(dt,c(s))),I(xe,rt)};O(Pe,xe=>{c(s)&&xe(Lt)})}var pt=v(Pe,2);{var Ot=xe=>{var rt=ZJ();I(xe,rt)};O(pt,xe=>{c(r)&&xe(Ot)})}var Fe=v(pt,2);{var Nt=xe=>{var rt=YJ(),dt=b(rt);H(()=>A(dt,c(d))),I(xe,rt)};O(Fe,xe=>{c(d)&&xe(Nt)})}var et=v(Fe,2);{var lt=xe=>{var rt=XJ();I(xe,rt)},$t=xe=>{var rt=nQ(),dt=wt(rt),It=b(dt),Si=b(It),_t=v(It,2);{var Xt=Ci=>{var Ct=JJ(),Jt=v(b(Ct),2),hi=b(Jt);hi.value=hi.__value="";var Ii=v(hi);Ii.value=Ii.__value="true";var Ui=v(Ii);Ui.value=Ui.__value="false",As(Jt,()=>c(p),Hi=>m(p,Hi)),I(Ci,Ct)};O(_t,Ci=>{c(g)||Ci(Xt)})}var Ye=v(dt,2),Ft=b(Ye);oi(Ft,17,()=>c(u),Vi,(Ci,Ct,Jt)=>{var hi=tQ(),Ii=b(hi),Ui=b(Ii),Hi=b(Ui),Bi=v(Ui,2),rn=v(Ii,2),Oi=b(rn),xi=v(b(Oi)),ji=v(Oi,2),Ki=v(b(ji)),zi=b(Ki);zi.value=zi.__value="mqtt";var Ni=v(zi);Ni.value=Ni.__value="websockets";var Ve=v(ji,2),Rt=v(b(Ve)),Ut=v(rn,2),fi=b(Ut),ni=b(fi),Zi=v(Ut,2);{var Wi=X=>{var He=QJ(),ct=b(He),Tt=b(ct),Wt=v(b(Tt)),z=v(Tt,2),ae=v(b(z)),Ee=v(ct,2),ot=b(Ee),ht=v(b(ot)),Q=v(ot,2),ce=v(b(Q)),Le=v(Ee,2),tt=b(Le),ei=v(b(tt)),Dt=v(tt,2),Ke=v(b(Dt)),zt=b(Ke);zt.value=zt.__value="";var pi=v(zt);pi.value=pi.__value="tlsv1.3";var qt=v(pi);qt.value=qt.__value="tlsv1.2";var Pi=v(Le,2),Mi=b(Pi),Ei=b(Mi),$i=v(Mi,2),Be=b($i);Kt(Wt,()=>c(Ct).tls.certfile,nt=>c(Ct).tls.certfile=nt),Kt(ae,()=>c(Ct).tls.keyfile,nt=>c(Ct).tls.keyfile=nt),Kt(ht,()=>c(Ct).tls.cafile,nt=>c(Ct).tls.cafile=nt),Kt(ce,()=>c(Ct).tls.capath,nt=>c(Ct).tls.capath=nt),Kt(ei,()=>c(Ct).tls.crlfile,nt=>c(Ct).tls.crlfile=nt),As(Ke,()=>c(Ct).tls.tls_version,nt=>c(Ct).tls.tls_version=nt),ks(Ei,()=>c(Ct).tls.require_certificate,nt=>c(Ct).tls.require_certificate=nt),ks(Be,()=>c(Ct).tls.use_identity_as_username,nt=>c(Ct).tls.use_identity_as_username=nt),I(X,He)},Yi=mt(()=>M(c(Ct)));O(Zi,X=>{c(Yi)&&X(Wi)})}var di=v(Zi,2);{var je=X=>{var He=eQ(),ct=v(b(He),2),Tt=b(ct);Tt.value=Tt.__value="";var Wt=v(Tt);Wt.value=Wt.__value="true";var z=v(Wt);z.value=z.__value="false";var ae;QT(ct),H(()=>{ae!==(ae=c(Ct).allow_anonymous===void 0?"":c(Ct).allow_anonymous?"true":"false")&&(ct.value=ct.__value=c(Ct).allow_anonymous===void 0?"":c(Ct).allow_anonymous?"true":"false",A0(ct,c(Ct).allow_anonymous===void 0?"":c(Ct).allow_anonymous?"true":"false"))}),$("change",ct,Ee=>{const ot=Ee.target.value;c(Ct).allow_anonymous=ot===""?void 0:ot==="true",m(u,[...c(u)],!0)}),I(X,He)};O(di,X=>{c(g)&&X(je)})}H(X=>{A(Hi,`Port ${c(Ct).port??""}`),hd(ni,X)},[()=>M(c(Ct))]),$("click",Bi,()=>x(Jt)),Kt(xi,()=>c(Ct).port,X=>c(Ct).port=X),As(Ki,()=>c(Ct).protocol,X=>c(Ct).protocol=X),Kt(Rt,()=>c(Ct).bindAddress,X=>c(Ct).bindAddress=X),$("change",ni,X=>F(c(Ct),X.target.checked)),I(Ci,hi)});var ci=v(Ft,2);{var Li=Ci=>{var Ct=iQ();I(Ci,Ct)};O(ci,Ci=>{c(u).length===0&&Ci(Li)})}ks(Si,()=>c(g),Ci=>m(g,Ci)),I(xe,rt)};O(et,xe=>{c(t)===null&&!c(i)?xe(lt):xe($t,-1)})}H(()=>{Se.disabled=c(n),A(We,c(n)?"Saving…":"Save"),qe.disabled=c(a),A(Oe,c(a)?"Reloading…":"Apply & Reload")}),$("click",ne,y),$("click",Se,k),$("click",qe,D),I(o,K),Hs()}eo(["click","change"]);var tl=P('<div class="err svelte-9auejo"> </div>'),rQ=P('<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>'),aQ=P('<div class="empty svelte-9auejo">No managed server certificate. Use one of the options above, or configure <code>certfile</code>/<code>keyfile</code> manually in the Listeners tab.</div>'),lQ=P('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),cQ=P('<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>'),dQ=P('<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>'),uQ=P('<div class="result-box svelte-9auejo"><p class="svelte-9auejo">✓ Certificate installed.</p> <dl class="svelte-9auejo"><dt class="svelte-9auejo">Fingerprint</dt><dd class="mono small svelte-9auejo"> </dd><dt class="svelte-9auejo">Expires</dt><dd class="svelte-9auejo"> </dd></dl></div>'),LD=P('<button class="btn-primary svelte-9auejo"> </button>'),hQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal svelte-9auejo"><h3 class="svelte-9auejo">Generate self-signed server certificate</h3> <label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Validity (days)<input type="number" min="1" max="3650" class="svelte-9auejo"/></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div></div></div>'),fQ=P('<label class="svelte-9auejo">Common Name (hostname / IP)<input placeholder="e.g. mqtt.home.arpa" class="svelte-9auejo"/></label> <label class="svelte-9auejo">Subject Alternative Names (comma-separated, optional)<input placeholder="192.168.1.10, mqtt.local" class="svelte-9auejo"/></label> <p class="hint svelte-9auejo">A private key and CSR are generated on the server. Copy the CSR, have it signed by your CA, then paste the signed cert below.</p> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),gQ=P('<div class="ok svelte-9auejo">✓ Certificate installed.</div>'),pQ=P('<p class="hint svelte-9auejo">Key stored on server. Copy the CSR, get it signed, then paste the signed certificate to complete installation.</p> <label class="svelte-9auejo">Certificate Signing Request<textarea readonly="" rows="8" class="svelte-9auejo"></textarea></label> <div class="csr-actions svelte-9auejo"><button class="svelte-9auejo">Copy CSR</button> <a class="btn-download svelte-9auejo" download="server.csr">Download .csr</a></div> <hr class="svelte-9auejo"/> <label class="svelte-9auejo">Upload signed certificate (PEM)<textarea rows="6" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Close</button> <!></div>',1),_Q=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Generate key + CSR for server certificate</h3> <!></div></div>'),mQ=P('<label class="svelte-9auejo">Certificate (PEM)<textarea rows="5" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <label class="svelte-9auejo">Private key (PEM — leave blank if key is already on disk from a prior CSR)<textarea rows="4" placeholder="-----BEGIN PRIVATE KEY----- … -----END PRIVATE KEY-----" class="svelte-9auejo"></textarea></label>',1),vQ=P('<span class="file-name mono small svelte-9auejo"> </span>'),bQ=P('<label class="svelte-9auejo">PKCS#12 file <div class="file-row svelte-9auejo"><input type="file" accept=".p12,.pfx" class="svelte-9auejo"/> <!></div></label> <label class="svelte-9auejo">Passphrase <div class="pw-row svelte-9auejo"><input autocomplete="off" class="svelte-9auejo"/> <button class="toggle-pw svelte-9auejo"> </button></div></label>',1),yQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Import server certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>PEM files</button> <button>PKCS#12 (.p12 / .pfx)</button></div> <!> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),bS=P("<option></option>"),wQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Use existing certificate files</h3> <p class="hint svelte-9auejo">Enter absolute paths on the broker host. Tab-completion is available for paths starting with /.</p> <label class="svelte-9auejo">Certificate file path <input list="set-cert-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/fullchain.pem" class="svelte-9auejo"/> <datalist id="set-cert-path-list"></datalist></label> <label class="svelte-9auejo">Private key file path <input list="set-key-path-list" placeholder="/etc/letsencrypt/live/mqtt.example.com/privkey.pem" class="svelte-9auejo"/> <datalist id="set-key-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div></div></div>'),SQ=P('<label class="svelte-9auejo">CA certificate (PEM)<textarea rows="8" placeholder="-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----" class="svelte-9auejo"></textarea></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),CQ=P('<p class="hint svelte-9auejo">Enter the absolute path to the CA certificate file on the broker host.</p> <label class="svelte-9auejo">CA certificate path <input list="trusted-path-list" placeholder="/etc/ssl/certs/my-ca.pem" class="svelte-9auejo"/> <datalist id="trusted-path-list"></datalist></label> <!> <div class="modal-actions svelte-9auejo"><button class="svelte-9auejo">Cancel</button> <button class="btn-primary svelte-9auejo"> </button></div>',1),xQ=P('<div class="modal-backdrop svelte-9auejo" role="dialog" aria-modal="true"><div class="modal modal--wide svelte-9auejo"><h3 class="svelte-9auejo">Add trusted CA certificate</h3> <div class="import-mode-tabs svelte-9auejo"><button>Paste PEM</button> <button>From path</button></div> <!></div></div>'),kQ=P('<div class="certs-page svelte-9auejo"><div class="page-toolbar svelte-9auejo"><button class="reload-btn svelte-9auejo" title="Refresh">↺</button></div> <!> <!> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Server Certificate</h3> <button class="svelte-9auejo">Self-signed</button> <button class="svelte-9auejo">Generate CSR</button> <button class="svelte-9auejo">Import cert</button> <button class="svelte-9auejo">Use path</button></div> <!></div> <div class="section svelte-9auejo"><div class="section-header svelte-9auejo"><h3 class="svelte-9auejo">Trusted CA Certificates</h3> <button class="svelte-9auejo">+ Add CA cert</button></div> <!></div></div> <!> <!> <!> <!> <!>',1);function LQ(o,e){Fs(e,!0);let t=T(null),i=T(ki([])),n=T(""),s=T(""),r=T(!1),a=T(""),d=T(""),u=T(365),f=T(!1),g=T(""),p=T(null),w=T(!1),y=T(""),x=T(""),k=T(!1),D=T(""),M=T(""),F=T(""),K=T(!1),V=T(""),oe=T(!1),ne=T(!1),Se=T("pem"),We=T(""),qe=T(""),Oe=T(""),ut=T(""),kt=T(""),Pe=T(!1),Lt=T(!1),pt=T(""),Ot=T(!1),Fe=T(""),Nt=T(""),et=T(!1),lt=T(""),$t=T(ki([])),xe=T(ki([])),rt=T(!1),dt=T("pem"),It=T(""),Si=T(!1),_t=T(""),Xt=T(""),Ye=T(ki([])),Ft=T(!1),ci=T("");async function Li(){try{const[Be,nt]=await Promise.allSettled([yq(),Cq()]);Be.status==="fulfilled"&&m(t,Be.value.server,!0),nt.status==="fulfilled"&&m(i,nt.value.certs,!0),m(n,"")}catch(Be){m(n,Be.message,!0)}}Js(()=>{Li()});async function Ci(){m(g,""),m(f,!0),m(p,null);try{const Be=c(d).split(",").map(vi=>vi.trim()).filter(Boolean),nt=await wq({cn:c(a),san:Be,days:c(u)});m(p,{fingerprint:nt.fingerprint,expires:nt.expires},!0),await Li()}catch(Be){m(g,Be.message,!0)}finally{m(f,!1)}}async function Ct(){m(D,""),m(k,!0),m(M,"");try{const Be=c(x).split(",").map(vi=>vi.trim()).filter(Boolean),nt=await Sq({cn:c(y),san:Be});m(M,nt.csrPem,!0)}catch(Be){m(D,Be.message,!0)}finally{m(k,!1)}}async function Jt(){m(V,""),m(K,!0),m(oe,!1);try{if(!c(F).trim())throw new Error("Paste the signed certificate PEM");await pS({cert:c(F)}),m(oe,!0),await Li()}catch(Be){m(V,Be.message,!0)}finally{m(K,!1)}}function hi(){navigator.clipboard.writeText(c(M)).catch(()=>{})}function Ii(Be){var ui;const nt=(ui=Be.target.files)==null?void 0:ui[0];if(!nt)return;m(ut,nt.name,!0);const vi=new FileReader;vi.onload=()=>{const wi=vi.result;m(Oe,btoa(String.fromCharCode(...new Uint8Array(wi))),!0)},vi.readAsArrayBuffer(nt)}async function Ui(){m(pt,""),m(Lt,!0);try{if(c(Se)==="p12"){if(!c(Oe))throw new Error("Select a .p12 / .pfx file");await pS({p12base64:c(Oe),passphrase:c(kt)})}else{if(!c(We).trim())throw new Error("Certificate PEM is required");await pS({cert:c(We),key:c(qe)||void 0})}m(ne,!1),await Li()}catch(Be){m(pt,Be.message,!0)}finally{m(Lt,!1)}}function Hi(Be){let nt;return vi=>{const ui=vi.target.value;clearTimeout(nt),nt=setTimeout(async()=>{if(!ui.startsWith("/")||ui.length<2){Be([]);return}try{Be((await Lq(ui)).suggestions)}catch{Be([])}},280)}}const Bi=Hi(Be=>{m($t,Be,!0)}),rn=Hi(Be=>{m(xe,Be,!0)}),Oi=Hi(Be=>{m(Ye,Be,!0)});async function xi(){m(lt,""),m(et,!0);try{await Iq({certPath:c(Fe),keyPath:c(Nt)}),m(Ot,!1),await Li()}catch(Be){m(lt,Be.message,!0)}finally{m(et,!1)}}async function ji(){m(_t,""),m(Si,!0);try{await xq(c(It)),m(It,""),m(rt,!1),await Li()}catch(Be){m(_t,Be.message,!0)}finally{m(Si,!1)}}async function Ki(){m(ci,""),m(Ft,!0);try{await Eq(c(Xt)),m(Xt,""),m(rt,!1),await Li()}catch(Be){m(ci,Be.message,!0)}finally{m(Ft,!1)}}async function zi(Be){if(confirm("Remove this trusted CA cert?"))try{await kq(Be),await Li()}catch(nt){m(s,nt.message,!0)}}function Ni(Be){const nt=new Date(Be).getTime()-Date.now();return nt<0?"expired":nt<30*864e5?"expiring":""}function Ve(Be){return new Date(Be).toLocaleDateString()}var Rt=kQ(),Ut=wt(Rt),fi=b(Ut),ni=b(fi),Zi=v(fi,2);{var Wi=Be=>{var nt=tl(),vi=b(nt);H(()=>A(vi,c(n))),I(Be,nt)};O(Zi,Be=>{c(n)&&Be(Wi)})}var Yi=v(Zi,2);{var di=Be=>{var nt=tl(),vi=b(nt);H(()=>A(vi,c(s))),I(Be,nt)};O(Yi,Be=>{c(s)&&Be(di)})}var je=v(Yi,2),X=b(je),He=v(b(X),2),ct=v(He,2),Tt=v(ct,2),Wt=v(Tt,2),z=v(X,2);{var ae=Be=>{var nt=rQ(),vi=b(nt),ui=v(b(vi)),wi=b(ui),gi=v(ui,3),le=b(gi),$e=v(gi,3),gt=b($e);H((Mt,ti)=>{A(wi,c(t).cn),A(le,c(t).fingerprint),Et($e,1,Mt,"svelte-9auejo"),A(gt,ti)},[()=>Gg(Ni(c(t).expires)),()=>Ve(c(t).expires)]),I(Be,nt)},Ee=Be=>{var nt=aQ();I(Be,nt)};O(z,Be=>{c(t)?Be(ae):Be(Ee,-1)})}var ot=v(je,2),ht=b(ot),Q=v(b(ht),2),ce=v(ht,2);{var Le=Be=>{var nt=lQ();I(Be,nt)},tt=Be=>{var nt=dQ(),vi=v(b(nt));oi(vi,21,()=>c(i),Vi,(ui,wi)=>{var gi=cQ(),le=b(gi),$e=b(le),gt=v(le),Mt=b(gt),ti=v(gt),bt=b(ti),bi=v(ti),W=b(bi);H((J,se,j)=>{A($e,c(wi).cn),A(Mt,`${J??""}…`),Et(ti,1,se,"svelte-9auejo"),A(bt,j)},[()=>c(wi).fingerprint.slice(0,29),()=>Gg(Ni(c(wi).expires)),()=>Ve(c(wi).expires)]),$("click",W,()=>zi(c(wi).fingerprint)),I(ui,gi)}),I(Be,nt)};O(ce,Be=>{c(i).length===0?Be(Le):Be(tt,-1)})}var ei=v(Ut,2);{var Dt=Be=>{var nt=hQ(),vi=b(nt),ui=v(b(vi),2),wi=v(b(ui)),gi=v(ui,2),le=v(b(gi)),$e=v(gi,2),gt=v(b($e)),Mt=v($e,2);{var ti=N=>{var G=tl(),te=b(G);H(()=>A(te,c(g))),I(N,G)};O(Mt,N=>{c(g)&&N(ti)})}var bt=v(Mt,2);{var bi=N=>{var G=uQ(),te=v(b(G),2),ue=v(b(te)),Y=b(ue),re=v(ue,2),Te=b(re);H(fe=>{A(Y,c(p).fingerprint),A(Te,fe)},[()=>Ve(c(p).expires)]),I(N,G)};O(bt,N=>{c(p)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2);{var j=N=>{var G=LD(),te=b(G);H(()=>{G.disabled=c(f),A(te,c(f)?"Generating…":"Generate")}),$("click",G,Ci),I(N,G)};O(se,N=>{c(p)||N(j)})}Kt(wi,()=>c(a),N=>m(a,N)),Kt(le,()=>c(d),N=>m(d,N)),Kt(gt,()=>c(u),N=>m(u,N)),$("click",J,()=>m(r,!1)),I(Be,nt)};O(ei,Be=>{c(r)&&Be(Dt)})}var Ke=v(ei,2);{var zt=Be=>{var nt=_Q(),vi=b(nt),ui=v(b(vi),2);{var wi=le=>{var $e=fQ(),gt=wt($e),Mt=v(b(gt)),ti=v(gt,2),bt=v(b(ti)),bi=v(ti,4);{var W=G=>{var te=tl(),ue=b(te);H(()=>A(ue,c(D))),I(G,te)};O(bi,G=>{c(D)&&G(W)})}var J=v(bi,2),se=b(J),j=v(se,2),N=b(j);H(()=>{j.disabled=c(k),A(N,c(k)?"Generating…":"Generate key + CSR")}),Kt(Mt,()=>c(y),G=>m(y,G)),Kt(bt,()=>c(x),G=>m(x,G)),$("click",se,()=>m(w,!1)),$("click",j,Ct),I(le,$e)},gi=le=>{var $e=pQ(),gt=v(wt($e),2),Mt=v(b(gt)),ti=v(gt,2),bt=b(ti),bi=v(bt,2),W=v(ti,4),J=v(b(W)),se=v(W,2);{var j=Te=>{var fe=tl(),he=b(fe);H(()=>A(he,c(V))),I(Te,fe)};O(se,Te=>{c(V)&&Te(j)})}var N=v(se,2);{var G=Te=>{var fe=gQ();I(Te,fe)};O(N,Te=>{c(oe)&&Te(G)})}var te=v(N,2),ue=b(te),Y=v(ue,2);{var re=Te=>{var fe=LD(),he=b(fe);H(Ze=>{fe.disabled=Ze,A(he,c(K)?"Uploading…":"Upload signed cert")},[()=>c(K)||!c(F).trim()]),$("click",fe,Jt),I(Te,fe)};O(Y,Te=>{c(oe)||Te(re)})}H(Te=>{KS(Mt,c(M)),vn(bi,"href",`data:application/pkcs10;charset=utf-8,${Te??""}`)},[()=>encodeURIComponent(c(M))]),$("click",bt,hi),Kt(J,()=>c(F),Te=>m(F,Te)),$("click",ue,()=>m(w,!1)),I(le,$e)};O(ui,le=>{c(M)?le(gi,-1):le(wi)})}I(Be,nt)};O(Ke,Be=>{c(w)&&Be(zt)})}var pi=v(Ke,2);{var qt=Be=>{var nt=yQ(),vi=b(nt),ui=v(b(vi),2),wi=b(ui);let gi;var le=v(wi,2);let $e;var gt=v(ui,2);{var Mt=N=>{var G=mQ(),te=wt(G),ue=v(b(te)),Y=v(te,2),re=v(b(Y));Kt(ue,()=>c(We),Te=>m(We,Te)),Kt(re,()=>c(qe),Te=>m(qe,Te)),I(N,G)},ti=N=>{var G=bQ(),te=wt(G),ue=v(b(te)),Y=b(ue),re=v(Y,2);{var Te=ye=>{var Ae=vQ(),ke=b(Ae);H(()=>A(ke,c(ut))),I(ye,Ae)};O(re,ye=>{c(ut)&&ye(Te)})}var fe=v(te,2),he=v(b(fe)),Ze=b(he),U=v(Ze,2),ie=b(U);H(()=>{vn(Ze,"type",c(Pe)?"text":"password"),A(ie,c(Pe)?"Hide":"Show")}),$("change",Y,Ii),Kt(Ze,()=>c(kt),ye=>m(kt,ye)),$("click",U,()=>m(Pe,!c(Pe))),I(N,G)};O(gt,N=>{c(Se)==="pem"?N(Mt):N(ti,-1)})}var bt=v(gt,2);{var bi=N=>{var G=tl(),te=b(G);H(()=>A(te,c(pt))),I(N,G)};O(bt,N=>{c(pt)&&N(bi)})}var W=v(bt,2),J=b(W),se=v(J,2),j=b(se);H(()=>{gi=Et(wi,1,"svelte-9auejo",null,gi,{active:c(Se)==="pem"}),$e=Et(le,1,"svelte-9auejo",null,$e,{active:c(Se)==="p12"}),se.disabled=c(Lt),A(j,c(Lt)?"Importing…":"Import")}),$("click",wi,()=>m(Se,"pem")),$("click",le,()=>m(Se,"p12")),$("click",J,()=>m(ne,!1)),$("click",se,Ui),I(Be,nt)};O(pi,Be=>{c(ne)&&Be(qt)})}var Pi=v(pi,2);{var Mi=Be=>{var nt=wQ(),vi=b(nt),ui=v(b(vi),4),wi=v(b(ui)),gi=v(wi,2);oi(gi,21,()=>c($t),Vi,(se,j)=>{var N=bS(),G={};H(()=>{G!==(G=c(j))&&(N.value=(N.__value=c(j))??"")}),I(se,N)});var le=v(ui,2),$e=v(b(le)),gt=v($e,2);oi(gt,21,()=>c(xe),Vi,(se,j)=>{var N=bS(),G={};H(()=>{G!==(G=c(j))&&(N.value=(N.__value=c(j))??"")}),I(se,N)});var Mt=v(le,2);{var ti=se=>{var j=tl(),N=b(j);H(()=>A(N,c(lt))),I(se,j)};O(Mt,se=>{c(lt)&&se(ti)})}var bt=v(Mt,2),bi=b(bt),W=v(bi,2),J=b(W);H(se=>{W.disabled=se,A(J,c(et)?"Installing…":"Install")},[()=>c(et)||!c(Fe).trim()||!c(Nt).trim()]),$("input",wi,Bi),Kt(wi,()=>c(Fe),se=>m(Fe,se)),$("input",$e,rn),Kt($e,()=>c(Nt),se=>m(Nt,se)),$("click",bi,()=>m(Ot,!1)),$("click",W,xi),I(Be,nt)};O(Pi,Be=>{c(Ot)&&Be(Mi)})}var Ei=v(Pi,2);{var $i=Be=>{var nt=xQ(),vi=b(nt),ui=v(b(vi),2),wi=b(ui);let gi;var le=v(wi,2);let $e;var gt=v(ui,2);{var Mt=bt=>{var bi=SQ(),W=wt(bi),J=v(b(W)),se=v(W,2);{var j=Y=>{var re=tl(),Te=b(re);H(()=>A(Te,c(_t))),I(Y,re)};O(se,Y=>{c(_t)&&Y(j)})}var N=v(se,2),G=b(N),te=v(G,2),ue=b(te);H(Y=>{te.disabled=Y,A(ue,c(Si)?"Adding…":"Add CA cert")},[()=>c(Si)||!c(It).trim()]),Kt(J,()=>c(It),Y=>m(It,Y)),$("click",G,()=>m(rt,!1)),$("click",te,ji),I(bt,bi)},ti=bt=>{var bi=CQ(),W=v(wt(bi),2),J=v(b(W)),se=v(J,2);oi(se,21,()=>c(Ye),Vi,(re,Te)=>{var fe=bS(),he={};H(()=>{he!==(he=c(Te))&&(fe.value=(fe.__value=c(Te))??"")}),I(re,fe)});var j=v(W,2);{var N=re=>{var Te=tl(),fe=b(Te);H(()=>A(fe,c(ci))),I(re,Te)};O(j,re=>{c(ci)&&re(N)})}var G=v(j,2),te=b(G),ue=v(te,2),Y=b(ue);H(re=>{ue.disabled=re,A(Y,c(Ft)?"Adding…":"Add CA cert")},[()=>c(Ft)||!c(Xt).trim()]),$("input",J,Oi),Kt(J,()=>c(Xt),re=>m(Xt,re)),$("click",te,()=>m(rt,!1)),$("click",ue,Ki),I(bt,bi)};O(gt,bt=>{c(dt)==="pem"?bt(Mt):bt(ti,-1)})}H(()=>{gi=Et(wi,1,"svelte-9auejo",null,gi,{active:c(dt)==="pem"}),$e=Et(le,1,"svelte-9auejo",null,$e,{active:c(dt)==="path"})}),$("click",wi,()=>m(dt,"pem")),$("click",le,()=>m(dt,"path")),I(Be,nt)};O(Ei,Be=>{c(rt)&&Be($i)})}$("click",ni,Li),$("click",He,()=>{m(r,!0),m(g,""),m(p,null)}),$("click",ct,()=>{m(w,!0),m(D,""),m(M,""),m(F,""),m(oe,!1),m(V,"")}),$("click",Tt,()=>{m(ne,!0),m(pt,""),m(Se,"pem"),m(We,""),m(qe,""),m(Oe,""),m(ut,""),m(kt,""),m(Pe,!1)}),$("click",Wt,()=>{m(Ot,!0),m(lt,""),m(Fe,""),m(Nt,""),m($t,[],!0),m(xe,[],!0)}),$("click",Q,()=>{m(rt,!0),m(_t,""),m(It,""),m(dt,"pem"),m(ci,""),m(Xt,""),m(Ye,[],!0)}),I(o,Rt),Hs()}eo(["click","change","input"]);var km=P('<div class="err svelte-17yczfe"> </div>'),IQ=P('<div class="check-list svelte-17yczfe"><div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto_ctrl</code> <span> </span></div> <div class="check-row svelte-17yczfe"><span> </span> <code class="svelte-17yczfe">mosquitto</code> <span> </span></div></div>'),EQ=P('<div class="checking svelte-17yczfe">Checking…</div>'),DQ=P('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Tool availability</h3> <p class="hint svelte-17yczfe">These tools must be installed and in the PATH of the she process. They are used by the Setup Wizard and cert installation.</p> <!> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div></div>'),PQ=P('<label class="svelte-17yczfe">Install command (run locally) <div class="pubkey-row svelte-17yczfe"><input readonly="" class="svelte-17yczfe"/> <button class="copy-btn svelte-17yczfe">Copy</button></div></label>'),TQ=P('<label class="svelte-17yczfe">Public key <div class="pubkey-row svelte-17yczfe"><textarea readonly="" rows="3" class="svelte-17yczfe"></textarea> <button class="copy-btn svelte-17yczfe">Copy</button></div></label> <!> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>',1),MQ=P('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),RQ=P("<span> </span>"),NQ=P('<div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH connection</h3> <p class="hint svelte-17yczfe">Used for file operations: reading/writing mosquitto.conf and installing certificates on the broker host. User/ACL management always uses the MQTT port directly.</p> <div class="fields svelte-17yczfe"><label class="svelte-17yczfe">Host<input placeholder="192.168.1.10 or broker.local" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Port<input type="number" min="1" max="65535" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">SSH user<input placeholder="root" class="svelte-17yczfe"/></label> <label class="svelte-17yczfe">Identity file (private key)<input class="svelte-17yczfe"/></label></div></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">SSH keypair</h3> <p class="hint svelte-17yczfe">Dedicated Ed25519 keypair for she to authenticate to the broker host. Private key stored at <code class="svelte-17yczfe"> </code>.</p> <!> <!></div> <div class="section svelte-17yczfe"><h3 class="svelte-17yczfe">Test connection</h3> <div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button> <!></div></div>',1),AQ=P('<div class="ok svelte-17yczfe">Saved.</div>'),OQ=P('<div class="mosquitto-page svelte-17yczfe"><!> <div class="mode-bar svelte-17yczfe"><span class="mode-label svelte-17yczfe">Connection mode</span> <div class="mode-toggle svelte-17yczfe"><button>Local</button> <button>SSH / Remote</button></div> <span class="mode-desc svelte-17yczfe"> </span></div> <!> <!> <!> <!> <div class="row svelte-17yczfe"><button class="btn-primary svelte-17yczfe"> </button></div></div>');function FQ(o,e){Fs(e,!0);let t=T(ki({})),i=T(""),n=T(!1),s=T(!1),r=T(""),a=T("~/.she/ssh/broker_id_ed25519"),d=T("local"),u=T(null),f=T(!1),g=T(""),p=T(""),w=T(!1),y=T(""),x=T(!1),k=T(""),D=T(ki({}));Js(async()=>{try{const[Ye,Ft,ci]=await Promise.all([Pl(),Dk(),fetch("/she/broker/ssh/pubkey").then(Ci=>Ci.json()).catch(()=>({publicKey:null}))]);m(D,Ye,!0),Ft.sshKeyDefault&&m(a,Ft.sshKeyDefault,!0);const Li=c(D).broker??{};m(t,Li.ssh??{},!0),c(t).port||(c(t).port=22),c(t).identityFile||(c(t).identityFile=c(a)),ci.publicKey&&m(p,ci.publicKey,!0),m(d,c(t).host?"ssh":"local",!0),c(d)==="local"&&M()}catch(Ye){m(i,Ye.message,!0)}});async function M(){m(f,!0),m(g,"");try{m(u,await Y7(),!0)}catch(Ye){m(g,Ye.message??"Check failed",!0)}finally{m(f,!1)}}async function F(){m(n,!0),m(r,""),m(s,!1);try{const Ye=c(D).broker??{},Ft=c(d)==="local"?{...c(t),host:""}:c(t),ci={...c(D),broker:{...Ye,ssh:Ft}};await Yp(ci),m(s,!0),setTimeout(()=>m(s,!1),3e3)}catch(Ye){m(r,Ye.message,!0)}finally{m(n,!1)}}async function K(){m(w,!0),m(y,"");try{const Ye=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Ft=await Ye.json();if(!Ye.ok)throw new Error(Ft.error??Ye.statusText);m(p,Ft.publicKey,!0)}catch(Ye){m(y,Ye.message,!0)}finally{m(w,!1)}}async function V(){m(x,!0),m(k,"");try{const Ye=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Ft=await Ye.json();if(!Ye.ok)throw new Error(Ft.error??Ye.statusText);m(k,Ft.ok?"✓ Connection successful":"✗ "+(Ft.error??"Failed"),!0)}catch(Ye){m(k,"✗ "+Ye.message)}finally{m(x,!1)}}function oe(Ye){navigator.clipboard.writeText(Ye).catch(()=>{})}const ne=mt(()=>c(t).identityFile&&c(t).user&&c(t).host?`ssh-copy-id -i ${c(t).identityFile}.pub ${c(t).user}@${c(t).host}`:"");var Se=OQ(),We=b(Se);{var qe=Ye=>{var Ft=km(),ci=b(Ft);H(()=>A(ci,c(i))),I(Ye,Ft)};O(We,Ye=>{c(i)&&Ye(qe)})}var Oe=v(We,2),ut=v(b(Oe),2),kt=b(ut);let Pe;var Lt=v(kt,2);let pt;var Ot=v(ut,2),Fe=b(Ot),Nt=v(Oe,2);{var et=Ye=>{var Ft=DQ(),ci=v(b(Ft),4);{var Li=Hi=>{var Bi=km(),rn=b(Bi);H(()=>A(rn,c(g))),I(Hi,Bi)};O(ci,Hi=>{c(g)&&Hi(Li)})}var Ci=v(ci,2);{var Ct=Hi=>{var Bi=IQ(),rn=b(Bi),Oi=b(rn);let xi;var ji=b(Oi),Ki=v(Oi,4);let zi;var Ni=b(Ki),Ve=v(rn,2),Rt=b(Ve);let Ut;var fi=b(Rt),ni=v(Rt,4);let Zi;var Wi=b(ni);H(()=>{xi=Et(Oi,1,"check-icon svelte-17yczfe",null,xi,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),A(ji,c(u).mosquittoCtrl?"✓":"✗"),zi=Et(Ki,1,"check-note svelte-17yczfe",null,zi,{ok:c(u).mosquittoCtrl,fail:!c(u).mosquittoCtrl}),A(Ni,c(u).mosquittoCtrl?"found in PATH":"not found — install the mosquitto or mosquitto-clients package"),Ut=Et(Rt,1,"check-icon svelte-17yczfe",null,Ut,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),A(fi,c(u).mosquitto?"✓":"✗"),Zi=Et(ni,1,"check-note svelte-17yczfe",null,Zi,{ok:c(u).mosquitto,fail:!c(u).mosquitto}),A(Wi,c(u).mosquitto?"found in PATH":"not found — install the mosquitto package")}),I(Hi,Bi)},Jt=Hi=>{var Bi=EQ();I(Hi,Bi)};O(Ci,Hi=>{c(u)?Hi(Ct):c(f)&&Hi(Jt,1)})}var hi=v(Ci,2),Ii=b(hi),Ui=b(Ii);H(()=>{Ii.disabled=c(f),A(Ui,c(f)?"Checking…":c(u)?"Re-check":"Check tools")}),$("click",Ii,M),I(Ye,Ft)};O(Nt,Ye=>{c(d)==="local"&&Ye(et)})}var lt=v(Nt,2);{var $t=Ye=>{var Ft=NQ(),ci=wt(Ft),Li=v(b(ci),4),Ci=b(Li),Ct=v(b(Ci)),Jt=v(Ci,2),hi=v(b(Jt)),Ii=v(Jt,2),Ui=v(b(Ii)),Hi=v(Ii,2),Bi=v(b(Hi)),rn=v(ci,2),Oi=v(b(rn),2),xi=v(b(Oi)),ji=b(xi),Ki=v(Oi,2);{var zi=di=>{var je=TQ(),X=wt(je),He=v(b(X)),ct=b(He),Tt=v(ct,2),Wt=v(X,2);{var z=ht=>{var Q=PQ(),ce=v(b(Q)),Le=b(ce),tt=v(Le,2);H(()=>KS(Le,c(ne))),$("click",tt,()=>oe(c(ne))),I(ht,Q)};O(Wt,ht=>{c(ne)&&ht(z)})}var ae=v(Wt,2),Ee=b(ae),ot=b(Ee);H(()=>{KS(ct,c(p)),Ee.disabled=c(w),A(ot,c(w)?"Generating…":"Regenerate keypair")}),$("click",Tt,()=>oe(c(p))),$("click",Ee,K),I(di,je)},Ni=di=>{var je=MQ(),X=b(je),He=b(X);H(()=>{X.disabled=c(w),A(He,c(w)?"Generating…":"Generate keypair")}),$("click",X,K),I(di,je)};O(Ki,di=>{c(p)?di(zi):di(Ni,-1)})}var Ve=v(Ki,2);{var Rt=di=>{var je=km(),X=b(je);H(()=>A(X,c(y))),I(di,je)};O(Ve,di=>{c(y)&&di(Rt)})}var Ut=v(rn,2),fi=v(b(Ut),2),ni=b(fi),Zi=b(ni),Wi=v(ni,2);{var Yi=di=>{var je=RQ();let X;var He=b(je);H(ct=>{X=Et(je,1,"test-result svelte-17yczfe",null,X,ct),A(He,c(k))},[()=>({ok:c(k).startsWith("✓"),fail:c(k).startsWith("✗")})]),I(di,je)};O(Wi,di=>{c(k)&&di(Yi)})}H(()=>{vn(Bi,"placeholder",c(a)),A(ji,c(t).identityFile||c(a)),ni.disabled=c(x)||!c(t).host,A(Zi,c(x)?"Testing…":"Test SSH connection")}),Kt(Ct,()=>c(t).host,di=>c(t).host=di),Kt(hi,()=>c(t).port,di=>c(t).port=di),Kt(Ui,()=>c(t).user,di=>c(t).user=di),Kt(Bi,()=>c(t).identityFile,di=>c(t).identityFile=di),$("click",ni,V),I(Ye,Ft)};O(lt,Ye=>{c(d)==="ssh"&&Ye($t)})}var xe=v(lt,2);{var rt=Ye=>{var Ft=km(),ci=b(Ft);H(()=>A(ci,c(r))),I(Ye,Ft)};O(xe,Ye=>{c(r)&&Ye(rt)})}var dt=v(xe,2);{var It=Ye=>{var Ft=AQ();I(Ye,Ft)};O(dt,Ye=>{c(s)&&Ye(It)})}var Si=v(dt,2),_t=b(Si),Xt=b(_t);H(()=>{Pe=Et(kt,1,"svelte-17yczfe",null,Pe,{active:c(d)==="local"}),pt=Et(Lt,1,"svelte-17yczfe",null,pt,{active:c(d)==="ssh"}),A(Fe,c(d)==="local"?"she and mosquitto run on the same machine — local filesystem access":"mosquitto runs on a remote host — file operations go through SSH"),_t.disabled=c(n),A(Xt,c(n)?"Saving…":"Save")}),$("click",kt,()=>{m(d,"local"),c(u)||M()}),$("click",Lt,()=>m(d,"ssh")),$("click",_t,F),I(o,Se),Hs()}eo(["click"]);var HQ=P('<div class="err svelte-d31be1"> </div>'),WQ=P('<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>'),BQ=P('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),zQ=P('<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>'),VQ=P('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),jQ=P(`<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>`),$Q=P('<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>'),UQ=P('<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>'),qQ=P('<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 GQ(o,e){Fs(e,!0);let t=T("intro"),i=T(""),n=T(!1),s=T("she-admin"),r=T(""),a=T("/etc/mosquitto"),d=T(null),u=T(!1),f=T(!1),g=T("she-admin"),p=T(""),w=T(!1);async function y(){m(n,!0),m(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?m(t,"done"):m(t,"config")}catch(Pe){m(i,Pe.message,!0)}finally{m(n,!1)}}async function x(){m(n,!0),m(i,"");try{const Pe=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:c(s),adminPassword:c(r)||void 0,configDir:c(a)})}),Lt=await Pe.json();if(!Pe.ok||!Lt.ok)throw new Error(Lt.error??"Bootstrap failed");m(d,Lt,!0);const pt=await Pl(),Ot=pt.broker??{};await Yp({...pt,broker:{...Ot,dynsec:{adminUsername:Lt.adminUsername,adminPassword:Lt.adminPassword}}}),await iq().catch(()=>{}),m(t,"restart")}catch(Pe){m(i,Pe.message,!0)}finally{m(n,!1)}}async function k(){m(f,!0),m(i,"");try{await eq(),await new Promise(Pe=>setTimeout(Pe,2e3)),m(u,!0),m(t,"done")}catch(Pe){m(i,Pe.message,!0)}finally{m(f,!1)}}async function D(){m(w,!0),m(i,"");try{const Pe=await Pl(),Lt=Pe.broker??{};await Yp({...Pe,broker:{...Lt,dynsec:{adminUsername:c(g),adminPassword:c(p)}}}),m(t,"done")}catch(Pe){m(i,Pe.message,!0)}finally{m(w,!1)}}var M=qQ(),F=b(M),K=v(b(F),2),V=v(F,2);{var oe=Pe=>{var Lt=HQ(),pt=b(Lt);H(()=>A(pt,c(i))),I(Pe,Lt)};O(V,Pe=>{c(i)&&Pe(oe)})}var ne=v(V,2);{var Se=Pe=>{var Lt=WQ(),pt=v(b(Lt),6),Ot=b(pt);H(()=>Ot.disabled=c(n)),$("click",Ot,()=>{m(t,"probe"),y()}),I(Pe,Lt)},We=Pe=>{var Lt=BQ(),pt=b(Lt),Ot=b(pt);H(()=>A(Ot,c(n)?"Probing dynsec…":"Checking dynsec status…")),I(Pe,Lt)},qe=Pe=>{var Lt=zQ(),pt=v(b(Lt),2),Ot=v(b(pt)),Fe=v(pt,2),Nt=v(b(Fe)),et=v(Fe,2),lt=v(b(et)),$t=v(et,2),xe=b($t),rt=b(xe);H(()=>{xe.disabled=c(n)||!c(s),A(rt,c(n)?"Bootstrapping…":"Bootstrap dynsec")}),Kt(Ot,()=>c(s),dt=>m(s,dt)),Kt(Nt,()=>c(r),dt=>m(r,dt)),Kt(lt,()=>c(a),dt=>m(a,dt)),$("click",xe,x),I(Pe,Lt)},Oe=Pe=>{var Lt=jQ(),pt=v(b(Lt),2),Ot=v(b(pt),3),Fe=b(Ot),Nt=v(pt,4),et=b(Nt),lt=b(et),$t=v(et,2),xe=v(Nt,2);{var rt=dt=>{var It=VQ();I(dt,It)};O(xe,dt=>{c(f)&&dt(rt)})}H(()=>{A(Fe,c(d).confFilePath),et.disabled=c(f),A(lt,c(f)?"Restarting…":"Restart mosquitto now")}),$("click",et,k),$("click",$t,()=>{m(t,"done")}),I(Pe,Lt)},ut=Pe=>{var Lt=$Q(),pt=v(b(Lt),4),Ot=b(pt);$("click",Ot,function(...Fe){var Nt;(Nt=e.onDone)==null||Nt.apply(this,Fe)}),I(Pe,Lt)},kt=Pe=>{var Lt=UQ(),pt=v(b(Lt),2),Ot=v(b(pt)),Fe=v(pt,2),Nt=v(b(Fe)),et=v(Fe,2),lt=b(et),$t=v(lt,2),xe=b($t);H(()=>{$t.disabled=c(w)||!c(g)||!c(p),A(xe,c(w)?"Saving…":"Save credentials")}),Kt(Ot,()=>c(g),rt=>m(g,rt)),Kt(Nt,()=>c(p),rt=>m(p,rt)),$("click",lt,()=>m(t,"intro")),$("click",$t,D),I(Pe,Lt)};O(ne,Pe=>{c(t)==="intro"?Pe(Se):c(t)==="probe"?Pe(We,1):c(t)==="config"?Pe(qe,2):c(t)==="restart"&&c(d)?Pe(Oe,3):c(t)==="done"?Pe(ut,4):c(t)==="manual"&&Pe(kt,5)})}$("click",K,()=>m(t,"manual")),I(o,M),Hs()}eo(["click"]);var KQ=P('<div class="loading svelte-zuhcpo">Loading…</div>'),ZQ=P('<div class="error-banner svelte-zuhcpo"> </div>'),YQ=P('<div class="conn-row svelte-zuhcpo"><span></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span><!></span> <button class="btn-deactivate svelte-zuhcpo"> </button></div>'),XQ=P('<button class="btn-wizard-inline svelte-zuhcpo">Setup Wizard ↗</button>'),JQ=P('<div class="conn-row svelte-zuhcpo"><span class="dot dot-off svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">dynamic security</span> <span class="conn-detail muted svelte-zuhcpo">not configured</span> <!></div>'),QQ=P('<div class="error-inline svelte-zuhcpo"> </div>'),eee=P('<button class="diag-btn svelte-zuhcpo"> </button>'),ID=P('<p class="diag-issue svelte-zuhcpo"> </p>'),tee=P('<p class="diag-ok-msg svelte-zuhcpo">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),iee=P('<p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">File</span><code class="svelte-zuhcpo"> </code></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Admin user exists</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">Has admin role</span><span> </span></p> <p class="diag-row svelte-zuhcpo"><span class="svelte-zuhcpo">$CONTROL publish ACL</span><span> </span></p> <!> <!>',1),nee=P('<div><!></div> <button class="diag-btn svelte-zuhcpo" style="margin-top:6px"> </button>',1),see=P('<button class="wizard-btn svelte-zuhcpo">Run Setup Wizard</button>'),oee=P('<div class="diag-area svelte-zuhcpo"><!> <!></div>'),ree=P('<div class="stats-block svelte-zuhcpo"><dl class="svelte-zuhcpo"><dt class="svelte-zuhcpo">Version</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Uptime</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Clients</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Messages</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Topics</dt><dd class="svelte-zuhcpo"> </dd> <dt class="svelte-zuhcpo">Traffic</dt><dd class="svelte-zuhcpo"> </dd></dl></div>'),aee=P('<div style="margin-top: 20px;"><!></div>'),lee=P('<div class="status-layout svelte-zuhcpo"><div class="conn-block svelte-zuhcpo"><div class="conn-row svelte-zuhcpo"><span class="dot ok svelte-zuhcpo"></span> <span class="conn-name svelte-zuhcpo">mosquitto</span> <span class="conn-detail svelte-zuhcpo"> </span></div> <!> <!></div> <!> <!></div> <!>',1),cee=P('<div class="tab-content svelte-zuhcpo"><!></div>'),dee=P('<div class="broker-page svelte-zuhcpo"><div class="sub-nav svelte-zuhcpo"><button>Status</button> <button>Directory</button> <button>Listeners</button> <button>Certificates</button> <button>Mosquitto</button></div> <!></div> <!>',1);function uee(o,e){Fs(e,!0);let t=T(!1),i,n=T(!1),s=T(""),r=T(!1),a=T(null);const d="she-broker-tab";let u=T(ki(localStorage.getItem(d)??"status"));Vn(()=>{localStorage.setItem(d,c(u))});let f=T(null),g=T(""),p=T(!0);async function w(){try{m(f,await Dk(),!0),m(g,"")}catch(xe){m(g,xe.message??"Failed to load broker status",!0)}finally{m(p,!1)}}Js(()=>{w();const xe=setInterval(w,1e4);return()=>clearInterval(xe)});async function y(){m(r,!0),m(a,null);try{m(a,await nq(),!0)}catch(xe){m(a,{ok:!1,dynSecPath:"",issues:[xe.message??"Diagnose request failed"]},!0)}finally{m(r,!1)}}async function x(){if(await i.show("Remove dynsec plugin lines from mosquitto.conf and clear credentials? You will need to restart mosquitto afterwards.",{confirm:"Deactivate",danger:!0})){m(n,!0),m(s,"");try{await tq(),await w()}catch(xe){m(s,xe.message??"Deactivate failed",!0)}finally{m(n,!1)}}}function k(xe){var dt;if(!((dt=c(f))!=null&&dt.sys))return"—";const rt=c(f).sys[xe];return rt?String(rt.val??"—"):"—"}function D(xe){if(xe==="—")return xe;const rt=xe.match(/^(\d+)/),dt=rt?parseInt(rt[1]):NaN;if(isNaN(dt))return xe;const It=Math.floor(dt/86400),Si=Math.floor(dt%86400/3600),_t=Math.floor(dt%3600/60),Xt=dt%60,Ye=Ft=>String(Ft).padStart(2,"0");return It>0?`${It}d ${Ye(Si)}:${Ye(_t)}:${Ye(Xt)}`:`${Ye(Si)}:${Ye(_t)}:${Ye(Xt)}`}function M(xe){if(xe==="—")return xe;const rt=parseInt(xe);return isNaN(rt)?xe:rt<1024?`${rt} B`:rt<1048576?`${(rt/1024).toFixed(1)} KB`:rt<1073741824?`${(rt/1048576).toFixed(1)} MB`:`${(rt/1073741824).toFixed(1)} GB`}var F=dee(),K=wt(F),V=b(K),oe=b(V);let ne;var Se=v(oe,2);let We;var qe=v(Se,2);let Oe;var ut=v(qe,2);let kt;var Pe=v(ut,2);let Lt;var pt=v(V,2);{var Ot=xe=>{var rt=cee(),dt=b(rt);{var It=Xt=>{var Ye=KQ();I(Xt,Ye)},Si=Xt=>{var Ye=ZQ(),Ft=b(Ye);H(()=>A(Ft,c(g))),I(Xt,Ye)},_t=Xt=>{var Ye=lee(),Ft=wt(Ye),ci=b(Ft),Li=b(ci),Ci=v(b(Li),4),Ct=b(Ci),Jt=v(Li,2);{var hi=Ni=>{var Ve=YQ(),Rt=b(Ve);let Ut;var fi=v(Rt,4);let ni;var Zi=b(fi);{var Wi=He=>{var ct=Io("plugin active");I(He,ct)},Yi=He=>{var ct=Io("connected — plugin not responding");I(He,ct)},di=He=>{var ct=Io("disconnected");I(He,ct)};O(Zi,He=>{c(f).dynsec.dynsecReady?He(Wi):c(f).dynsec.connected?He(Yi,1):He(di,-1)})}var je=v(fi,2),X=b(je);H(()=>{Ut=Et(Rt,1,"dot svelte-zuhcpo",null,Ut,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,"dot-err":!c(f).dynsec.connected}),ni=Et(fi,1,"conn-detail svelte-zuhcpo",null,ni,{ok:c(f).dynsec.dynsecReady,warn:c(f).dynsec.connected&&!c(f).dynsec.dynsecReady,err:!c(f).dynsec.connected}),je.disabled=c(n),A(X,c(n)?"…":"deactivate")}),$("click",je,x),I(Ni,Ve)},Ii=Ni=>{var Ve=JQ(),Rt=v(b(Ve),6);{var Ut=fi=>{var ni=XQ();$("click",ni,()=>m(t,!0)),I(fi,ni)};O(Rt,fi=>{c(t)||fi(Ut)})}I(Ni,Ve)};O(Jt,Ni=>{c(f).dynsec.configured?Ni(hi):Ni(Ii,-1)})}var Ui=v(Jt,2);{var Hi=Ni=>{var Ve=QQ(),Rt=b(Ve);H(()=>A(Rt,c(s))),I(Ni,Ve)};O(Ui,Ni=>{c(s)&&Ni(Hi)})}var Bi=v(ci,2);{var rn=Ni=>{var Ve=oee(),Rt=b(Ve);{var Ut=Wi=>{var Yi=eee(),di=b(Yi);H(()=>{Yi.disabled=c(r),A(di,c(r)?"Running diagnostics…":"Run diagnostics")}),$("click",Yi,y),I(Wi,Yi)},fi=Wi=>{var Yi=nee(),di=wt(Yi);let je;var X=b(di);{var He=z=>{var ae=ID(),Ee=b(ae);H(()=>A(Ee,`⚠ ${c(a).error??""}`)),I(z,ae)},ct=z=>{var ae=iee(),Ee=wt(ae),ot=v(b(Ee)),ht=b(ot),Q=v(Ee,2),ce=v(b(Q)),Le=b(ce),tt=v(Q,2),ei=v(b(tt)),Dt=b(ei),Ke=v(tt,2),zt=v(b(Ke)),pi=b(zt),qt=v(Ke,2);oi(qt,17,()=>c(a).issues,Vi,(Ei,$i)=>{var Be=ID(),nt=b(Be);H(()=>A(nt,`⚠ ${c($i)??""}`)),I(Ei,Be)});var Pi=v(qt,2);{var Mi=Ei=>{var $i=tee();I(Ei,$i)};O(Pi,Ei=>{c(a).ok&&Ei(Mi)})}H(()=>{A(ht,c(a).dynSecPath),Et(ce,1,Gg(c(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),A(Le,c(a).adminClientExists?"✓ yes":"✗ no"),Et(ei,1,Gg(c(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),A(Dt,c(a).hasAdminRole?"✓ yes":"✗ no"),Et(zt,1,Gg(c(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),A(pi,c(a).hasControlSendAcl?"✓ present":"✗ missing")}),I(z,ae)};O(X,z=>{c(a).error?z(He):z(ct,-1)})}var Tt=v(di,2),Wt=b(Tt);H(()=>{je=Et(di,1,"diag-card svelte-zuhcpo",null,je,{"diag-ok":c(a).ok,"diag-fail":!c(a).ok}),Tt.disabled=c(r),A(Wt,c(r)?"Running…":"Re-run")}),$("click",Tt,y),I(Wi,Yi)};O(Rt,Wi=>{c(a)?Wi(fi,-1):Wi(Ut)})}var ni=v(Rt,2);{var Zi=Wi=>{var Yi=see();$("click",Yi,()=>m(t,!0)),I(Wi,Yi)};O(ni,Wi=>{c(t)||Wi(Zi)})}I(Ni,Ve)};O(Bi,Ni=>{c(f).dynsec.configured&&c(f).dynsec.connected&&!c(f).dynsec.dynsecReady&&Ni(rn)})}var Oi=v(Bi,2);{var xi=Ni=>{var Ve=ree(),Rt=b(Ve),Ut=v(b(Rt)),fi=b(Ut),ni=v(Ut,3),Zi=b(ni),Wi=v(ni,3),Yi=b(Wi),di=v(Wi,3),je=b(di),X=v(di,3),He=b(X),ct=v(X,3),Tt=b(ct);H((Wt,z,ae,Ee,ot,ht,Q,ce,Le,tt,ei,Dt)=>{A(fi,Wt),A(Zi,z),A(Yi,`${ae??""} connected · ${Ee??""} max · ${ot??""} total`),A(je,`${ht??""} rcv · ${Q??""} sent · ${ce??""} stored`),A(He,`${Le??""} retained · ${tt??""} subscriptions`),A(Tt,`${ei??""} in · ${Dt??""} out`)},[()=>k("$SYS/broker/version"),()=>D(k("$SYS/broker/uptime")),()=>k("$SYS/broker/clients/connected"),()=>k("$SYS/broker/clients/maximum"),()=>k("$SYS/broker/clients/total"),()=>k("$SYS/broker/messages/received"),()=>k("$SYS/broker/messages/sent"),()=>k("$SYS/broker/messages/stored"),()=>k("$SYS/broker/retained messages/count"),()=>k("$SYS/broker/subscriptions/count"),()=>M(k("$SYS/broker/bytes/received")),()=>M(k("$SYS/broker/bytes/sent"))]),I(Ni,Ve)},ji=mt(()=>Object.keys(c(f).sys).length>0);O(Oi,Ni=>{c(ji)&&Ni(xi)})}var Ki=v(Ft,2);{var zi=Ni=>{var Ve=aee(),Rt=b(Ve);GQ(Rt,{onDone:()=>{m(t,!1),w()}}),I(Ni,Ve)};O(Ki,Ni=>{c(t)&&(!c(f).dynsec.configured||!c(f).dynsec.dynsecReady)&&Ni(zi)})}H(()=>A(Ct,c(f).sshConfigured?`ssh — ${c(f).sshHost}`:"local")),I(Xt,Ye)};O(dt,Xt=>{c(p)?Xt(It):c(g)?Xt(Si,1):c(f)&&Xt(_t,2)})}I(xe,rt)},Fe=xe=>{{let rt=mt(()=>{var dt;return((dt=c(f))==null?void 0:dt.dynsec.dynsecReady)??!1});KJ(xe,{get dynsecReady(){return c(rt)}})}},Nt=xe=>{oQ(xe,{})},et=xe=>{LQ(xe,{})},lt=xe=>{FQ(xe,{})};O(pt,xe=>{c(u)==="status"?xe(Ot):c(u)==="users"?xe(Fe,1):c(u)==="listeners"?xe(Nt,2):c(u)==="certs"?xe(et,3):c(u)==="ssh"&&xe(lt,4)})}var $t=v(K,2);vs($c($t,{}),xe=>i=xe,()=>i),H(()=>{ne=Et(oe,1,"svelte-zuhcpo",null,ne,{active:c(u)==="status"}),We=Et(Se,1,"svelte-zuhcpo",null,We,{active:c(u)==="users"}),Oe=Et(qe,1,"svelte-zuhcpo",null,Oe,{active:c(u)==="listeners"}),kt=Et(ut,1,"svelte-zuhcpo",null,kt,{active:c(u)==="certs"}),Lt=Et(Pe,1,"svelte-zuhcpo",null,Lt,{active:c(u)==="ssh"})}),$("click",oe,()=>m(u,"status")),$("click",Se,()=>m(u,"users")),$("click",qe,()=>m(u,"listeners")),$("click",ut,()=>m(u,"certs")),$("click",Pe,()=>m(u,"ssh")),I(o,F),Hs()}eo(["click"]);var hee=P('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),fee=P('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),gee=P('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),pee=P('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),_ee=P('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),mee=P('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),vee=P('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),bee=P('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),yee=P('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),wee=P('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),See=P('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),Cee=P('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),xee=P('<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>'),kee=P('<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>'),Lee=P('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),Iee=P('<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),Eee=P('<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),Dee=P('<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>'),Pee=P('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),Tee=P('<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>'),Mee=P('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),Ree=P('<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>'),Nee=P('<div class="shell svelte-1n46o8q"><nav class="svelte-1n46o8q"><span class="brand svelte-1n46o8q">she</span> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><polyline points="5,3 1,8 5,13" class="svelte-1n46o8q"></polyline><polyline points="11,3 15,8 11,13" class="svelte-1n46o8q"></polyline></svg> Scripts</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter" class="svelte-1n46o8q"><rect x="0.75" y="0.75" width="14.5" height="14.5" rx="1" class="svelte-1n46o8q"></rect><path d="M2,11 V5 H5 V11" class="svelte-1n46o8q"></path><path d="M6,12 V5 H9 V8 H6" class="svelte-1n46o8q"></path><path d="M10,11 V5 H15 V11" class="svelte-1n46o8q"></path><line x1="12.5" y1="5" x2="12.5" y2="11" class="svelte-1n46o8q"></line></svg> Packages <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" stroke="none" style="vertical-align: middle" class="svelte-1n46o8q"><path fill-rule="evenodd" d="M2,0 H14 A2,2 0 0,1 16,2 V14 A2,2 0 0,1 14,16 H0 V2 A2,2 0 0,1 2,0 Z M0,16 L0,12 A4,4 0 0,1 4,16 Z M0,10.5 A5.5,5.5 0 0,1 5.5,16 L9,16 A9,9 0 0,0 0,7 Z M0,5.5 A10.5,10.5 0 0,1 10.5,16 L13.5,16 A13.5,13.5 0 0,0 0,2.5 Z" class="svelte-1n46o8q"></path></svg> MQTT <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><rect x="2.5" y="7" width="11" height="8" rx="1.5" class="svelte-1n46o8q"></rect><path d="M5.5,7 V5 A2.5,2.5 0,0,1 10.5,5 V7" class="svelte-1n46o8q"></path><circle cx="8" cy="11.5" r="1" fill="currentColor" stroke="none" class="svelte-1n46o8q"></circle></svg> Security</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M8,2 L8,7" class="svelte-1n46o8q"></path><path d="M6,5 L8,7.5 L10,5" class="svelte-1n46o8q"></path><path d="M2.5,14 L6,10" class="svelte-1n46o8q"></path><path d="M6.2,12.8 L6,10 L3.2,10.2" class="svelte-1n46o8q"></path><path d="M13.5,14 L10,10" class="svelte-1n46o8q"></path><path d="M9.8,12.8 L10,10 L12.8,10.2" class="svelte-1n46o8q"></path></svg> Matter <!></button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><ellipse cx="8" cy="4.5" rx="5" ry="1.8" class="svelte-1n46o8q"></ellipse><path d="M3,4.5 v7 a5,1.8 0,0,0 10,0 v-7" class="svelte-1n46o8q"></path><path d="M3,8 a5,1.8 0,0,0 10,0" class="svelte-1n46o8q"></path></svg> DB</button> <button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-1n46o8q"><line x1="2" y1="5" x2="14" y2="5" class="svelte-1n46o8q"></line><line x1="2" y1="8" x2="14" y2="8" class="svelte-1n46o8q"></line><line x1="2" y1="11" x2="9" y2="11" class="svelte-1n46o8q"></line></svg> Logs <!></button> <div class="nav-spacer svelte-1n46o8q"></div> <div class="nav-right svelte-1n46o8q"><a class="nav-icon svelte-1n46o8q" href="https://github.com/hobbyquaker/she" target="_blank" rel="noopener" title="GitHub"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" class="svelte-1n46o8q"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" class="svelte-1n46o8q"></path></svg></a> <div class="version-wrap svelte-1n46o8q"><button class="version svelte-1n46o8q"> <!></button> <!></div> <div class="stats-wrap svelte-1n46o8q"><button class="nav-icon svelte-1n46o8q" title="Daemon status"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><line x1="18" y1="20" x2="18" y2="10" class="svelte-1n46o8q"></line><line x1="12" y1="20" x2="12" y2="4" class="svelte-1n46o8q"></line><line x1="6" y1="20" x2="6" y2="14" class="svelte-1n46o8q"></line></svg></button> <!></div> <button title="Settings"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" class="svelte-1n46o8q"></path><circle cx="12" cy="12" r="3" class="svelte-1n46o8q"></circle></svg></button> <!></div></nav> <main class="svelte-1n46o8q"><!> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div> <div><!></div></main></div>'),Aee=P('<div class="login-error svelte-1n46o8q"> </div>'),Oee=P('<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>'),Fee=P('<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>'),Hee=P('<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>'),Wee=P("<!> <!> <!> <!>",1);function Bee(o,e){Fs(e,!0);const t=["scripts","mqtt","matter","security","db","logs","config","packages"];function i(){const _t=location.hash.slice(1);return t.includes(_t)?_t:"scripts"}let n=T(ki(i())),s=T(null),r=T(!1),a=T(!1),d=T(!1),u=T(!1),f=T("none"),g=T(""),p=T(!1),w=T(""),y=T(""),x=T(!1),k=T(!1);y7(()=>{m(p,!0)});async function D(){m(y,""),m(x,!0);try{await C7(c(w)),m(w,""),m(p,!1)}catch(_t){m(y,_t.message??"Login failed",!0)}finally{m(x,!1)}}async function M(){if(c(f)==="proxy"&&c(g)){window.location.href=c(g);return}await x7(),m(p,!0)}let F=T(null),K=T(!1),V=T(!1),oe=T(!1),ne=T(!1),Se=T(ki([])),We=T(0),qe=T(ki([]));const Oe=mt(()=>c(qe).filter(_t=>_t.online).length),ut=mt(()=>c(qe).length===0?"none":c(Oe)===c(qe).length?"all":c(Oe)>0?"some":"offline");let kt=T(!1),Pe=T(!1);async function Lt(){if(!await c(F).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;m(K,!0);let _t;try{_t=(await Wg()).startedAt}catch{}try{await VN()}catch{}const Xt=Date.now()+6e4;for(;Date.now()<Xt;){await new Promise(Ye=>setTimeout(Ye,250));try{const Ye=await Wg();if(_t===void 0||Ye.startedAt!==_t){location.reload();return}}catch{}}location.reload()}async function pt(){m(d,!0);try{const _t=await P7();c(s)&&m(s,{...c(s),latestVersion:_t.latestVersion??void 0},!0)}catch{}finally{m(d,!1)}}async function Ot(){var Ye,Ft;if(!await c(F).show(`Update to v${(Ye=c(s))==null?void 0:Ye.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;m(a,!1),m(u,!0);const _t=(Ft=c(s))==null?void 0:Ft.startedAt;try{await D7()}catch{}const Xt=Date.now()+18e4;for(;Date.now()<Xt;){await new Promise(ci=>setTimeout(ci,1e3));try{const ci=await Wg();if(_t===void 0||ci.startedAt!==_t){location.reload();return}}catch{m(u,!1),m(K,!0)}}location.reload()}function Fe(_t){m(n,_t,!0),location.hash=_t}Js(async()=>{location.hash||(location.hash=c(n));const _t=()=>{m(n,i(),!0)};window.addEventListener("hashchange",_t);try{const Jt=await S7();m(f,Jt.mode,!0),m(g,Jt.proxyLogoutUrl??"",!0),c(f)==="password"&&(await fetch("/she/scripts")).status===401&&m(p,!0)}catch{}m(k,!0);async function Xt(){try{m(s,await Wg(),!0)}catch{}try{const[Jt,hi]=await Promise.all([UN(),Pl()]);m(Se,Array.isArray(hi.pinnedPackages)?hi.pinnedPackages:[],!0),m(We,Object.keys(Jt).filter(Ii=>!c(Se).includes(Ii)).length,!0)}catch{}}Xt();const Ye=setInterval(Xt,5e3),Ft=Tr("mqtt:status",Jt=>{Jt.connected===!1?(m(ne,!0),m(V,!1),m(oe,!1)):(m(ne,!1),m(V,Jt.ready===!1),m(oe,Jt.ready===!0))}),ci=Tr("matter:deviceList",Jt=>{Array.isArray(Jt.devices)&&m(qe,Jt.devices.map(hi=>({nodeId:String(hi.nodeId),online:!!hi.online})),!0)}),Li=Tr("matter:deviceStatus",Jt=>{if(Jt.nodeId===void 0)return;const hi=String(Jt.nodeId),Ii=!!Jt.online;m(qe,c(qe).map(Ui=>Ui.nodeId===hi?{...Ui,online:Ii}:Ui),!0)}),Ci=iA();m(kt,Ci.some(Jt=>Jt.level==="error"),!0),m(Pe,!c(kt)&&Ci.some(Jt=>Jt.level==="warn"),!0);const Ct=Tk(Jt=>{Jt.level==="error"?(m(kt,!0),m(Pe,!1)):Jt.level==="warn"&&!c(kt)&&m(Pe,!0)});return()=>{window.removeEventListener("hashchange",_t),clearInterval(Ye),Ft(),ci(),Li(),Ct()}});var Nt=Wee();ds("click",PT,()=>{c(r)&&m(r,!1),c(a)&&m(a,!1)});var et=wt(Nt);{var lt=_t=>{var Xt=Nee(),Ye=b(Xt),Ft=v(b(Ye),2);let ci;var Li=v(Ft,2);let Ci;var Ct=v(b(Li),2);{var Jt=N=>{var G=hee();H(()=>vn(G,"title",`${c(We)??""} package update${c(We)===1?"":"s"} available`)),I(N,G)};O(Ct,N=>{c(We)>0&&N(Jt)})}var hi=v(Li,2);let Ii;var Ui=v(b(hi),2);{var Hi=N=>{var G=fee();I(N,G)},Bi=N=>{var G=gee();I(N,G)},rn=N=>{var G=pee();I(N,G)};O(Ui,N=>{c(ne)?N(Hi):c(V)?N(Bi,1):c(oe)&&N(rn,2)})}var Oi=v(hi,2);let xi;var ji=v(Oi,2);let Ki;var zi=v(b(ji),2);{var Ni=N=>{var G=_ee();I(N,G)},Ve=N=>{var G=mee();I(N,G)},Rt=N=>{var G=vee();I(N,G)};O(zi,N=>{c(ut)==="all"?N(Ni):c(ut)==="some"?N(Ve,1):c(ut)==="offline"&&N(Rt,2)})}var Ut=v(ji,2);let fi;var ni=v(Ut,2);let Zi;var Wi=v(b(ni),2);{var Yi=N=>{var G=bee();I(N,G)},di=N=>{var G=yee();I(N,G)};O(Wi,N=>{c(kt)?N(Yi):c(Pe)&&N(di,1)})}var je=v(ni,4),X=v(b(je),2),He=b(X),ct=b(He);ct.nodeValue="v1.6.1 ";var Tt=v(ct);{var Wt=N=>{var G=wee();I(N,G)};O(Tt,N=>{var G,te;(G=c(s))!=null&&G.latestVersion&&!((te=c(s))!=null&&te.docker)&&N(Wt)})}var z=v(He,2);{var ae=N=>{var G=kee(),te=b(G),ue=v(b(te));ue.textContent="v1.6.1";var Y=v(ue,2);{var re=ke=>{var we=See(),ft=v(wt(we)),at=b(ft);H(()=>A(at,`v${c(s).latestVersion??""}`)),I(ke,we)},Te=ke=>{var we=Cee();I(ke,we)};O(Y,ke=>{var we;(we=c(s))!=null&&we.latestVersion?ke(re):ke(Te,-1)})}var fe=v(te,2),he=b(fe);{var Ze=ke=>{var we=xee(),ft=v(b(we));H(()=>A(ft,` Update to v${c(s).latestVersion??""}`)),$("click",we,Ot),I(ke,we)};O(he,ke=>{var we;(we=c(s))!=null&&we.latestVersion&&ke(Ze)})}var U=v(he,2),ie=b(U);let ye;var Ae=v(ie);H(()=>{U.disabled=c(d),ye=Et(ie,0,"svelte-1n46o8q",null,ye,{spinning:c(d)}),A(Ae,` ${c(d)?"Checking…":"Check for updates"}`)}),$("click",G,ke=>ke.stopPropagation()),$("click",U,pt),I(N,G)};O(z,N=>{var G;c(a)&&!((G=c(s))!=null&&G.docker)&&N(ae)})}var Ee=v(X,2),ot=b(Ee),ht=v(ot,2);{var Q=N=>{var G=Mee(),te=b(G);{var ue=he=>{var Ze=Dee(),U=b(Ze);{var ie=Qe=>{const st=mt(()=>Math.floor((Date.now()-c(s).startedAt)/1e3)),Ge=mt(()=>Math.floor(c(st)/86400)),Ht=mt(()=>Math.floor(c(st)%86400/3600)),Vt=mt(()=>Math.floor(c(st)%3600/60));var Di=Lee(),Gt=v(wt(Di)),_i=b(Gt);H(()=>A(_i,`${c(Ge)>0?c(Ge)+"d ":""}${c(Ht)>0||c(Ge)>0?c(Ht)+"h ":""}${c(Vt)??""}m`)),I(Qe,Di)};O(U,Qe=>{c(s).startedAt&&Qe(ie)})}var ye=v(U,3),Ae=b(ye),ke=v(ye,3),we=b(ke),ft=v(ke,3),at=b(ft),ze=v(ft,2);{var xt=Qe=>{var st=Iee(),Ge=v(wt(st)),Ht=b(Ge),Vt=v(Ge,3),Di=b(Vt);H(()=>{A(Ht,c(s).matterNodes??0),A(Di,c(s).matterEndpoints??0)}),I(Qe,st)};O(ze,Qe=>{c(s).matterEnabled&&Qe(xt)})}var Xe=v(ze,2);{var _e=Qe=>{var st=Eee(),Ge=v(wt(st)),Ht=b(Ge),Vt=v(Ge,3),Di=b(Vt);H(()=>{A(Ht,c(s).dbDocs??"—"),A(Di,c(s).dbViews??"—")}),I(Qe,st)};O(Xe,Qe=>{c(s).dbEnabled&&Qe(_e)})}var Me=v(Xe,3),Ce=b(Me),me=v(Me,3),Je=b(me),de=v(me,3),De=b(de);H(()=>{A(Ae,c(s).scripts),A(we,c(s).topics),A(at,c(s).mqttMsgPerSec??"—"),A(Ce,c(s).handlers??"—"),A(Je,c(s).memMb!=null?c(s).memMb+" MB":"—"),A(De,c(s).cpuPercent!=null?c(s).cpuPercent+" %":"—")}),I(he,Ze)},Y=he=>{var Ze=Pee();I(he,Ze)};O(te,he=>{c(s)?he(ue):he(Y,-1)})}var re=v(te,2),Te=b(re);{var fe=he=>{var Ze=Tee();$("click",Ze,()=>{m(r,!1),Lt()}),I(he,Ze)};O(Te,he=>{var Ze;(Ze=c(s))!=null&&Ze.docker||he(fe)})}$("click",G,he=>he.stopPropagation()),I(N,G)};O(ht,N=>{c(r)&&N(Q)})}var ce=v(Ee,2);let Le;var tt=v(ce,2);{var ei=N=>{var G=Ree();$("click",G,M),I(N,G)};O(tt,N=>{c(f)==="password"&&N(ei)})}var Dt=v(Ye,2),Ke=b(Dt);vs($c(Ke,{}),N=>m(F,N,!0),()=>c(F));var zt=v(Ke,2);let pi;var qt=b(zt);{let N=mt(()=>c(n)==="scripts");PK(qt,{get active(){return c(N)}})}var Pi=v(zt,2);let Mi;var Ei=b(Pi);fJ(Ei,{});var $i=v(Pi,2);let Be;var nt=b($i);KX(nt,{});var vi=v($i,2);let ui;var wi=b(vi);fX(wi,{});var gi=v(vi,2);let le;var $e=b(gi);uee($e,{});var gt=v(gi,2);let Mt;var ti=b(gt);CY(ti,{});var bt=v(gt,2);let bi;var W=b(bt);pZ(W,{});var J=v(bt,2);let se;var j=b(J);bZ(j,{}),H(()=>{ci=Et(Ft,1,"svelte-1n46o8q",null,ci,{active:c(n)==="scripts"}),Ci=Et(Li,1,"svelte-1n46o8q",null,Ci,{active:c(n)==="packages"}),Ii=Et(hi,1,"svelte-1n46o8q",null,Ii,{active:c(n)==="mqtt"}),xi=Et(Oi,1,"svelte-1n46o8q",null,xi,{active:c(n)==="security"}),Ki=Et(ji,1,"svelte-1n46o8q",null,Ki,{active:c(n)==="matter"}),fi=Et(Ut,1,"svelte-1n46o8q",null,fi,{active:c(n)==="db"}),Zi=Et(ni,1,"svelte-1n46o8q",null,Zi,{active:c(n)==="logs"}),Le=Et(ce,1,"nav-settings svelte-1n46o8q",null,Le,{active:c(n)==="config"}),pi=Et(zt,1,"page-wrap svelte-1n46o8q",null,pi,{hidden:c(n)!=="scripts"}),Mi=Et(Pi,1,"page-wrap svelte-1n46o8q",null,Mi,{hidden:c(n)!=="packages"}),Be=Et($i,1,"page-wrap svelte-1n46o8q",null,Be,{hidden:c(n)!=="mqtt"}),ui=Et(vi,1,"page-wrap svelte-1n46o8q",null,ui,{hidden:c(n)!=="matter"}),le=Et(gi,1,"page-wrap svelte-1n46o8q",null,le,{hidden:c(n)!=="security"}),Mt=Et(gt,1,"page-wrap svelte-1n46o8q",null,Mt,{hidden:c(n)!=="db"}),bi=Et(bt,1,"page-wrap svelte-1n46o8q",null,bi,{hidden:c(n)!=="config"}),se=Et(J,1,"page-wrap svelte-1n46o8q",null,se,{hidden:c(n)!=="logs"})}),$("click",Ft,()=>Fe("scripts")),$("click",Li,()=>Fe("packages")),$("click",hi,()=>Fe("mqtt")),$("click",Oi,()=>Fe("security")),$("click",ji,()=>Fe("matter")),$("click",Ut,()=>Fe("db")),$("click",ni,()=>{Fe("logs"),m(kt,!1),m(Pe,!1)}),$("click",He,N=>{N.stopPropagation(),m(a,!c(a)),m(r,!1)}),$("click",ot,N=>{N.stopPropagation(),m(r,!c(r)),m(a,!1)}),$("click",ce,()=>Fe("config")),I(_t,Xt)};O(et,_t=>{c(k)&&!c(p)&&_t(lt)})}var $t=v(et,2);{var xe=_t=>{var Xt=Oee(),Ye=b(Xt),Ft=v(b(Ye),4),ci=v(b(Ft),2),Li=v(Ft,2);{var Ci=hi=>{var Ii=Aee(),Ui=b(Ii);H(()=>A(Ui,c(y))),I(hi,Ii)};O(Li,hi=>{c(y)&&hi(Ci)})}var Ct=v(Li,2),Jt=b(Ct);H(()=>{ci.disabled=c(x),Ct.disabled=c(x)||!c(w),A(Jt,c(x)?"Signing in…":"Sign in")}),ds("submit",Ye,hi=>{hi.preventDefault(),D()}),Kt(ci,()=>c(w),hi=>m(w,hi)),I(_t,Xt)};O($t,_t=>{c(p)&&_t(xe)})}var rt=v($t,2);{var dt=_t=>{var Xt=Fee();I(_t,Xt)};O(rt,_t=>{c(K)&&_t(dt)})}var It=v(rt,2);{var Si=_t=>{var Xt=Hee();I(_t,Xt)};O(It,_t=>{c(u)&&_t(Si)})}I(o,Nt),Hs()}eo(["click"]);BH(Bee,{target:document.getElementById("app")});export{dM as t};
|