smart-home-engine 1.18.0 → 1.18.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-tUihOf0o.js","assets/monaco-langs-Dt8a9eeo.js","assets/monaco-langs-DyX1CsEw.css","assets/tsMode-kiZuXQi8.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jsonMode-tUihOf0o.js","assets/monaco-langs-Dt8a9eeo.js","assets/monaco-langs-DyX1CsEw.css","assets/tsMode-CPBwsjiU.js"])))=>i.map(i=>d[i]);
2
2
  var i3=Object.defineProperty;var TS=o=>{throw TypeError(o)};var n3=(o,e,t)=>e in o?i3(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Mn=(o,e,t)=>n3(o,typeof e!="symbol"?e+"":e,t),iC=(o,e,t)=>e.has(o)||TS("Cannot "+t);var Be=(o,e,t)=>(iC(o,e,"read from private field"),t?t.call(o):e.get(o)),An=(o,e,t)=>e.has(o)?TS("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),kn=(o,e,t,i)=>(iC(o,e,"write to private field"),i?i.call(o,t):e.set(o,t),t),ns=(o,e,t)=>(iC(o,e,"access private method"),t);import{_ as gA,m as pA,l as Fi,A as Bo,C as Ke,I as rs,D as Sp,a as ys,g as xA,M as di,b as en,E as ua,c as q,r as qn,d as Or,e as S,f as s3,h as is,R as Bn,S as qi,i as co,j as Hr,k as On,n as xn,o as Re,p as wt,K as ks,q as Di,s as Wt,t as Ns,u as ee,v as Sn,O as Va,w as Is,P as Ii,x as nC,y as Dp,z as vA,B as bl,F as ha,G as s1,H as Qs,U as Kn,J as Pf,L as Pi,N as Dl,Q as o3,T as wo,V as o1,W as r3,X as mA,$ as Si,Y as zn,Z as Nn,a0 as cs,a1 as rn,a2 as nr,a3 as Fg,a4 as Ot,a5 as Yx,a6 as a3,a7 as l3,a8 as Rs,a9 as c3,aa as fa,ab as Fo,ac as Oi,ad as _A,ae as ss,af as d3,ag as u3,ah as Do,ai as c0,aj as Bs,ak as V_,al as mo,am as Kc,an as Pw,ao as j_,ap as Ks,aq as Tf,ar as Zs,as as $_,at as U_,au as h3,av as Ap,aw as d0,ax as Nl,ay as f3,az as u0,aA as g3,aB as Tw,aC as p3,aD as x3,aE as MS,aF as Es,aG as Cl,aH as _o,aI as hn,aJ as xl,aK as v3,aL as qa,aM as er,aN as Us,aO as ga,aP as Mw,aQ as Os,aR as _s,aS as Dv,aT as un,aU as bA,aV as m3,aW as Rw,aX as q_,aY as Nw,aZ as Ow,a_ as Fd,a$ as _3,b0 as Hw,b1 as b3,b2 as Ww,b3 as Ol,b4 as Hl,b5 as Mf,b6 as Lg,b7 as zo,b8 as kp,b9 as Av,ba as sC,bb as Yn,bc as zw,bd as Bp,be as G_,bf as C3,bg as CA,bh as Ig,bi as Rf,bj as Pg,bk as Fp,bl as K_,bm as Hn,bn as Zc,bo as Lp,bp as E3,bq as y3,br as Vw,bs as w3,bt as kv,bu as xr,bv as jw,bw as Nf,bx as Wl,by as h0,bz as En,bA as Of,bB as EA,bC as Ip,bD as S3,bE as Ld,bF as gi,bG as RS,bH as Qx,bI as yA,bJ as Vr,bK as aa,bL as Jn,bM as Hf,bN as Ir,bO as Wf,bP as ls,bQ as Tg,bR as Ku,bS as r1,bT as wA,bU as SA,bV as DA,bW as $w,bX as Mo,bY as $n,bZ as Pp,b_ as AA,b$ as El,c0 as Z_,c1 as D3,c2 as jh,c3 as NS,c4 as Tp,c5 as kA,c6 as $h,c7 as A3,c8 as Sr,c9 as X_,ca as k3,cb as Lo,cc as pa,cd as Mp,ce as Mg,cf as BA,cg as fr,ch as Rp,ci as Y_,cj as B3,ck as F3,cl as L3,cm as f0,cn as Ga,co as qs,cp as I3,cq as Uw,cr as P3,cs as T3,ct as OS,cu as M3,cv as Np,cw as Al,cx as a1,cy as ku,cz as kl,cA as R3,cB as ja,cC as Pr,cD as Zo,cE as HS,cF as ho,cG as Op,cH as Hc,cI as Ka,cJ as N3,cK as xa,cL as Rg,cM as Q_,cN as FA,cO as O3,cP as H3,cQ as qw,cR as W3,cS as Ng,cT as z3,cU as hc,cV as Og,cW as WS,cX as V3,cY as j3,cZ as Ya,c_ as $3,c$ as Gw,d0 as LA,d1 as IA,d2 as PA,d3 as TA,d4 as U3,d5 as q3,d6 as MA,d7 as RA,d8 as G3,d9 as Kw,da as K3,db as Z3,dc as hs,dd as X3,de as Zw,df as Y3,dg as Uh,dh as zS,di as Q3,dj as J3,dk as e4,dl as t4,dm as i4,dn as n4,dp as zf,dq as J_,dr as l1,ds as s4,dt as o4,du as VS,dv as c1,dw as r4,dx as jS,dy as oC,dz as a4,dA as NA,dB as l4,dC as OA,dD as d1,dE as c4,dF as d4,dG as u4,dH as HA,dI as WA,dJ as h4,dK as Bv,dL as zA,dM as eb,dN as f4,dO as g4,dP as Wc,dQ as Xw,dR as p4,dS as $S,dT as US,dU as x4,dV as qh,dW as VA,dX as v4,dY as m4,dZ as _4,d_ as b4,d$ as jA,e0 as $A,e1 as UA,e2 as qA,e3 as C4,e4 as $a,e5 as qS,e6 as E4,e7 as Hp,e8 as y4,e9 as U0,ea as GA,eb as GS,ec as Hg,ed as KA,ee as Fv,ef as w4,eg as ZA,eh as S4,ei as XA,ej as D4,ek as A4,el as YA,em as QA,en as Bl,eo as tb,ep as k4,eq as JA,er as tr,es as Id,et as ek,eu as B4,ev as F4,ew as tk,ex as ik,ey as L4,ez as nk,eA as sk,eB as Wg,eC as I4,eD as P4,eE as T4,eF as M4,eG as T0,eH as KS,eI as R4,eJ as N4,eK as O4,eL as Lv,eM as to,eN as H4,eO as u1,eP as Zu,eQ as W4,eR as gl,eS as z4,eT as V4,eU as ok,eV as j4,eW as lg,eX as $4,eY as U4,eZ as q4,e_ as G4,e$ as ZS,f0 as XS,f1 as YS,f2 as Xu,f3 as Yw,f4 as rk,f5 as h1,f6 as Jx,f7 as ak,f8 as Iv,f9 as K4,fa as Z4,fb as X4,fc as Y4,fd as Qw,fe as lk,ff as Q4,fg as Pv,fh as ck,fi as dk,fj as J4,fk as eL,fl as tL,fm as iL,fn as nL,fo as sL,fp as oL,fq as rL,fr as uk,fs as aL,ft as Tv,fu as hk,fv as lL,fw as fk,fx as cL,fy as gk,fz as pk,fA as dL,fB as QS,fC as xk,fD as JS,fE as uL,fF as rC,fG as e8,fH as hL,fI as fL,fJ as gL,fK as Ma,fL as zc,fM as pL,fN as t8,fO as ev,fP as xL,fQ as vl,fR as ib,fS as f1,fT as vL,fU as vk,fV as mk,fW as fo,fX as i8,fY as vx,fZ as Jw,f_ as mL,f$ as _L,g0 as bL,g1 as CL,g2 as EL,g3 as yL,g4 as wL,g5 as SL,g6 as n8,g7 as DL,g8 as AL,g9 as kL,ga as Vf,gb as cg,gc as _k,gd as BL,ge as e9,gf as tv,gg as mx,gh as aC,gi as FL,gj as LL,gk as bk,gl as IL,gm as t9,gn as PL,go as TL,gp as Ck,gq as nb,gr as ML,gs as Mv,gt as i9,gu as n9,gv as s9,gw as Ek,gx as yk,gy as wk,gz as Sk,gA as Dk,gB as Ak,gC as kk,gD as s8,gE as Bk,gF as bh,gG as RL,gH as NL,gI as OL,gJ as HL,gK as Fk,gL as WL,gM as zL,gN as o8,gO as g1,gP as _c,gQ as VL,gR as jL,gS as $L,gT as UL,gU as qL,gV as GL,gW as r8,gX as o9,gY as p1,gZ as KL,g_ as x1,g$ as ZL,h0 as XL,h1 as YL,h2 as QL,h3 as r9,h4 as Lk,h5 as a8,h6 as l8,h7 as JL,h8 as e7,h9 as t7,ha as c8,hb as lC,hc as i7,hd as n7,he as s7,hf as cC,hg as Ik,hh as Pk,hi as Tk,hj as Mk,hk as Fl,hl as Rk,hm as a9,hn as d8,ho as o7,hp as Nk,hq as r7,hr as a7,hs as sb,ht as ob,hu as Yu,hv as rb,hw as Wp,hx as l7,hy as ab,hz as c7,hA as d7,hB as u7,hC as Ok,hD as M0,hE as h7,hF as f7,hG as g7,hH as p7,hI as zp,hJ as x7,hK as Hk,hL as Wk,hM as zk,hN as v1,hO as v7,hP as m7,hQ as _7,hR as b7,hS as C7,hT as m1,hU as E7,hV as y7,hW as w7,hX as S7,hY as D7,hZ as A7,h_ as k7,h$ as B7,i0 as Vk,i1 as F7,i2 as L7,i3 as I7,i4 as u8,i5 as P7,i6 as T7,i7 as xd,i8 as Uo,i9 as _1,ia as jk,ib as M7,ic as R7}from"./monaco-langs-Dt8a9eeo.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 $k=!1;var l9=Array.isArray,N7=Array.prototype.indexOf,Rv=Array.prototype.includes,lb=Array.from,O7=Object.defineProperty,df=Object.getOwnPropertyDescriptor,H7=Object.getOwnPropertyDescriptors,W7=Object.prototype,z7=Array.prototype,Uk=Object.getPrototypeOf,h8=Object.isExtensible;const cb=()=>{};function V7(o){for(var e=0;e<o.length;e++)o[e]()}function qk(){var o,e,t=new Promise((i,n)=>{o=i,e=n});return{promise:t,resolve:o,reject:e}}function j7(o,e,t=!1){return o===void 0?t?e():e:o}function f8(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 xo=2,jf=4,db=8,Gk=1<<24,la=16,da=32,Vc=64,b1=128,Rr=512,io=1024,ro=2048,Za=4096,No=8192,Nr=16384,g0=32768,C1=1<<25,$f=65536,Nv=1<<17,$7=1<<18,p0=1<<19,U7=1<<20,Ha=1<<25,Bu=65536,Ov=1<<21,uf=1<<22,bc=1<<23,Pd=Symbol("$state"),q7=Symbol("legacy props"),G7=Symbol(""),iv=Symbol("attributes"),E1=Symbol("class"),y1=Symbol("style"),q0=Symbol("text"),nv=Symbol("form reset"),ub=new class extends Error{constructor(){super(...arguments);Mn(this,"name","StaleReactionError");Mn(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var uA;const K7=!!((uA=globalThis.document)!=null&&uA.contentType)&&globalThis.document.contentType.includes("xml");function Kk(o){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Z7(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function X7(o,e,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Y7(o){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Q7(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function J7(o){throw new Error("https://svelte.dev/e/effect_orphan")}function eI(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function tI(o){throw new Error("https://svelte.dev/e/props_invalid_value")}function iI(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function nI(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function sI(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function oI(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const rI=1,aI=2,Zk=4,lI=8,cI=16,dI=1,uI=4,hI=8,fI=16,gI=1,pI=2,eo=Symbol("uninitialized"),Xk="http://www.w3.org/1999/xhtml",xI="http://www.w3.org/2000/svg",vI="http://www.w3.org/1998/Math/MathML";function mI(){console.warn("https://svelte.dev/e/derived_inert")}function _I(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function bI(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Yk(o){return o===this.v}function CI(o,e){return o!=o?e==e:o!==e||o!==null&&typeof o=="object"||typeof o=="function"}function Qk(o){return!CI(o,this.v)}let EI=!1,po=null;function Uf(o){po=o}function Ts(o,e=!1,t){po={p:po,i:!1,c:null,e:null,s:o,x:null,r:Un,l:null}}function Ms(o){var e=po,t=e.e;if(t!==null){e.e=null;for(var i of t)b6(i)}return o!==void 0&&(e.x=o),e.i=!0,po=e.p,o??{}}function Jk(){return!0}let Cd=[];function e6(){var o=Cd;Cd=[],V7(o)}function Cc(o){if(Cd.length===0&&!ug){var e=Cd;queueMicrotask(()=>{e===Cd&&e6()})}Cd.push(o)}function yI(){for(;Cd.length>0;)e6()}function t6(o){var e=Un;if(e===null)return jn.f|=bc,o;if((e.f&g0)===0&&(e.f&jf)===0)throw o;fc(o,e)}function fc(o,e){for(;e!==null;){if((e.f&b1)!==0){if((e.f&g0)===0)throw o;try{e.b.error(o);return}catch(t){o=t}}e=e.parent}throw o}const wI=-7169;function Vs(o,e){o.f=o.f&wI|e}function c9(o){(o.f&Rr)!==0||o.deps===null?Vs(o,io):Vs(o,Za)}function i6(o){if(o!==null)for(const e of o)(e.f&xo)===0||(e.f&Bu)===0||(e.f^=Bu,i6(e.deps))}function n6(o,e,t){(o.f&ro)!==0?e.add(o):(o.f&Za)!==0&&t.add(o),i6(o.deps),Vs(o,io)}let _x=!1;function SI(o){var e=_x;try{return _x=!1,[o(),_x]}finally{_x=e}}let dC=null,Ch=null,ln=null,dg=null,uo=null,w1=null,ug=!1,uC=!1,Gh=null,sv=null;var g8=0;let DI=1;var pf,cc,Sd,xf,vf,mf,dl,_f,qo,_p,ul,Qr,La,bf,Dd,fs,S1,G0,D1,s6,o6,Nh,AI,K0;const Zm=class Zm{constructor(){An(this,fs);Mn(this,"id",DI++);An(this,pf,!1);Mn(this,"linked",!0);An(this,cc,null);An(this,Sd,null);Mn(this,"async_deriveds",new Map);Mn(this,"current",new Map);Mn(this,"previous",new Map);An(this,xf,new Set);An(this,vf,new Set);An(this,mf,0);An(this,dl,new Map);An(this,_f,null);An(this,qo,[]);An(this,_p,[]);An(this,ul,new Set);An(this,Qr,new Set);An(this,La,new Map);An(this,bf,new Set);Mn(this,"is_fork",!1);An(this,Dd,!1);Ch===null?dC=Ch=this:(kn(Ch,Sd,this),kn(this,cc,Ch)),Ch=this}skip_effect(e){Be(this,La).has(e)||Be(this,La).set(e,{d:[],m:[]}),Be(this,bf).delete(e)}unskip_effect(e,t=i=>this.schedule(i)){var i=Be(this,La).get(e);if(i){Be(this,La).delete(e);for(var n of i.d)Vs(n,ro),t(n);for(n of i.m)Vs(n,Za),t(n)}Be(this,bf).add(e)}capture(e,t,i=!1){e.v!==eo&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&bc)===0&&(this.current.set(e,[t,i]),uo==null||uo.set(e,t)),this.is_fork||(e.v=t)}activate(){ln=this}deactivate(){ln=null,uo=null}flush(){try{uC=!0,ln=this,ns(this,fs,G0).call(this)}finally{g8=0,w1=null,Gh=null,sv=null,uC=!1,ln=null,uo=null,Td.clear()}}discard(){var e;for(const t of Be(this,vf))t(this);Be(this,vf).clear(),ns(this,fs,K0).call(this),(e=Be(this,_f))==null||e.resolve()}register_created_effect(e){Be(this,_p).push(e)}increment(e,t){if(kn(this,mf,Be(this,mf)+1),e){let i=Be(this,dl).get(t)??0;Be(this,dl).set(t,i+1)}}decrement(e,t){if(kn(this,mf,Be(this,mf)-1),e){let i=Be(this,dl).get(t)??0;i===1?Be(this,dl).delete(t):Be(this,dl).set(t,i-1)}Be(this,Dd)||(kn(this,Dd,!0),Cc(()=>{kn(this,Dd,!1),this.linked&&this.flush()}))}transfer_effects(e,t){for(const i of e)Be(this,ul).add(i);for(const i of t)Be(this,Qr).add(i);e.clear(),t.clear()}oncommit(e){Be(this,xf).add(e)}ondiscard(e){Be(this,vf).add(e)}settled(){return(Be(this,_f)??kn(this,_f,qk())).promise}static ensure(){if(ln===null){const e=ln=new Zm;!uC&&!ug&&Cc(()=>{Be(e,pf)||e.flush()})}return ln}apply(){{uo=null;return}}schedule(e){var n;if(w1=e,(n=e.b)!=null&&n.is_pending&&(e.f&(jf|db|Gk))!==0&&(e.f&g0)===0){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var i=t.f;if(Gh!==null&&t===Un&&(jn===null||(jn.f&xo)===0))return;if((i&(Vc|da))!==0){if((i&io)===0)return;t.f^=io}}Be(this,qo).push(t)}};pf=new WeakMap,cc=new WeakMap,Sd=new WeakMap,xf=new WeakMap,vf=new WeakMap,mf=new WeakMap,dl=new WeakMap,_f=new WeakMap,qo=new WeakMap,_p=new WeakMap,ul=new WeakMap,Qr=new WeakMap,La=new WeakMap,bf=new WeakMap,Dd=new WeakMap,fs=new WeakSet,S1=function(){if(this.is_fork)return!0;for(const i of Be(this,dl).keys()){for(var e=i,t=!1;e.parent!==null;){if(Be(this,La).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1},G0=function(){var d,u,f,g;kn(this,pf,!0),g8++>1e3&&(ns(this,fs,K0).call(this),BI());for(const p of Be(this,ul))Be(this,Qr).delete(p),Vs(p,ro),this.schedule(p);for(const p of Be(this,Qr))Vs(p,Za),this.schedule(p);const e=Be(this,qo);kn(this,qo,[]),this.apply();var t=Gh=[],i=[],n=sv=[];for(const p of e)try{ns(this,fs,D1).call(this,p,t,i)}catch(C){throw l6(p),ns(this,fs,S1).call(this)||this.discard(),C}if(ln=null,n.length>0){var s=Zm.ensure();for(const p of n)s.schedule(p)}if(Gh=null,sv=null,ns(this,fs,S1).call(this)){ns(this,fs,Nh).call(this,i),ns(this,fs,Nh).call(this,t);for(const[p,C]of Be(this,La))a6(p,C);n.length>0&&ns(d=ln,fs,G0).call(d);return}const r=ns(this,fs,s6).call(this);if(r){ns(this,fs,Nh).call(this,i),ns(this,fs,Nh).call(this,t),ns(u=r,fs,o6).call(u,this);return}Be(this,ul).clear(),Be(this,Qr).clear();for(const p of Be(this,xf))p(this);Be(this,xf).clear(),dg=this,p8(i),p8(t),dg=null,(f=Be(this,_f))==null||f.resolve();var a=ln;if(Be(this,mf)===0&&(Be(this,qo).length===0||a!==null)&&ns(this,fs,K0).call(this),Be(this,qo).length>0)if(a!==null){const p=a;Be(p,qo).push(...Be(this,qo).filter(C=>!Be(p,qo).includes(C)))}else a=this;a!==null&&ns(g=a,fs,G0).call(g)},D1=function(e,t,i){e.f^=io;for(var n=e.first;n!==null;){var s=n.f,r=(s&(da|Vc))!==0,a=r&&(s&io)!==0,d=a||(s&No)!==0||Be(this,La).has(n);if(!d&&n.fn!==null){r?n.f^=io:(s&jf)!==0?t.push(n):jp(n)&&((s&la)!==0&&Be(this,Qr).add(n),Gf(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}}},s6=function(){for(var e=Be(this,cc);e!==null;){if(!e.is_fork){for(const[t,[,i]]of this.current)if(e.current.has(t)&&!i)return e}e=Be(e,cc)}return null},o6=function(e){var i;for(const[n,s]of e.current)!this.previous.has(n)&&e.previous.has(n)&&this.previous.set(n,e.previous.get(n)),this.current.set(n,s);for(const[n,s]of e.async_deriveds){const r=this.async_deriveds.get(n);r&&s.promise.then(r.resolve).catch(r.reject)}this.transfer_effects(Be(e,ul),Be(e,Qr));const t=n=>{var s=n.reactions;if(s!==null)for(const d of s){var r=d.f;if((r&xo)!==0)t(d);else{var a=d;r&(uf|la)&&!this.async_deriveds.has(a)&&(Be(this,Qr).delete(a),Vs(a,ro),this.schedule(a))}}};for(const n of this.current.keys())t(n);this.oncommit(()=>e.discard()),ns(i=e,fs,K0).call(i),ln=this,ns(this,fs,G0).call(this)},Nh=function(e){for(var t=0;t<e.length;t+=1)n6(e[t],Be(this,ul),Be(this,Qr))},AI=function(){var f;for(let g=dC;g!==null;g=Be(g,Sd)){var e=g.id<this.id,t=[];for(const[p,[C,b]]of this.current){if(g.current.has(p)){var i=g.current.get(p)[0];if(e&&C!==i)g.current.set(p,[C,b]);else continue}t.push(p)}if(e)for(const[p,C]of this.async_deriveds){const b=g.async_deriveds.get(p);b&&C.promise.then(b.resolve).catch(b.reject)}if(Be(g,pf)){var n=[...g.current.keys()].filter(p=>!g.current.get(p)[1]&&!this.current.has(p));if(n.length===0)e&&g.discard();else if(t.length>0){if(e)for(const p of Be(this,bf))g.unskip_effect(p,C=>{var b;(C.f&(la|uf))!==0?g.schedule(C):ns(b=g,fs,Nh).call(b,[C])});g.activate();var s=new Set,r=new Map;for(var a of t)r6(a,n,s,r);r=new Map;var d=[...g.current].filter(([p,C])=>{const b=this.current.get(p);return b?b[0]!==C[0]||b[1]!==C[1]:!0}).map(([p])=>p);if(d.length>0)for(const p of Be(this,_p))(p.f&(Nr|No|Nv))===0&&d9(p,d,r)&&((p.f&(uf|la))!==0?(Vs(p,ro),g.schedule(p)):Be(g,ul).add(p));if(Be(g,qo).length>0&&!Be(g,Dd)){g.apply();for(var u of Be(g,qo))ns(f=g,fs,D1).call(f,u,[],[]);kn(g,qo,[])}g.deactivate()}}}},K0=function(){if(this.linked){var e=Be(this,cc),t=Be(this,Sd);e===null?dC=t:kn(e,Sd,t),t===null?Ch=e:kn(t,cc,e),this.linked=!1}};let Fu=Zm;function kI(o){var e=ug;ug=!0;try{for(var t;;){if(yI(),ln===null)return t;ln.flush()}}finally{ug=e}}function BI(){try{eI()}catch(o){fc(o,w1)}}let Zr=null;function p8(o){var e=o.length;if(e!==0){for(var t=0;t<e;){var i=o[t++];if((i.f&(Nr|No))===0&&jp(i)&&(Zr=new Set,Gf(i),i.deps===null&&i.first===null&&i.nodes===null&&i.teardown===null&&i.ac===null&&y6(i),(Zr==null?void 0:Zr.size)>0)){Td.clear();for(const n of Zr){if((n.f&(Nr|No))!==0)continue;const s=[n];let r=n.parent;for(;r!==null;)Zr.has(r)&&(Zr.delete(r),s.push(r)),r=r.parent;for(let a=s.length-1;a>=0;a--){const d=s[a];(d.f&(Nr|No))===0&&Gf(d)}}Zr.clear()}}Zr=null}}function r6(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&xo)!==0?r6(n,e,t,i):(s&(uf|la))!==0&&(s&ro)===0&&d9(n,e,i)&&(Vs(n,ro),u9(n))}}function d9(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(Rv.call(e,n))return!0;if((n.f&xo)!==0&&d9(n,e,t))return t.set(n,!0),!0}return t.set(o,!1),!1}function u9(o){ln.schedule(o)}function a6(o,e){if(!((o.f&da)!==0&&(o.f&io)!==0)){(o.f&ro)!==0?e.d.push(o):(o.f&Za)!==0&&e.m.push(o),Vs(o,io);for(var t=o.first;t!==null;)a6(t,e),t=t.next}}function l6(o){Vs(o,io);for(var e=o.first;e!==null;)l6(e),e=e.next}function FI(o){let e=0,t=Lu(0),i;return()=>{p9()&&(l(t),fb(()=>(e===0&&(i=Vl(()=>o(()=>hg(t)))),e+=1,()=>{Cc(()=>{e-=1,e===0&&(i==null||i(),i=void 0,hg(t))})})))}}var LI=$f|p0;function II(o,e,t,i){new PI(o,e,t,i)}var Ar,Iw,kr,Ad,Go,Br,Po,cr,hl,kd,dc,Cf,bp,Cp,fl,Xm,js,TI,MI,RI,A1,ov,rv,k1,B1;class PI{constructor(e,t,i,n){An(this,js);Mn(this,"parent");Mn(this,"is_pending",!1);Mn(this,"transform_error");An(this,Ar);An(this,Iw,null);An(this,kr);An(this,Ad);An(this,Go);An(this,Br,null);An(this,Po,null);An(this,cr,null);An(this,hl,null);An(this,kd,0);An(this,dc,0);An(this,Cf,!1);An(this,bp,new Set);An(this,Cp,new Set);An(this,fl,null);An(this,Xm,FI(()=>(kn(this,fl,Lu(Be(this,kd))),()=>{kn(this,fl,null)})));var s;kn(this,Ar,e),kn(this,kr,t),kn(this,Ad,r=>{var a=Un;a.b=this,a.f|=b1,i(r)}),this.parent=Un.b,this.transform_error=n??((s=this.parent)==null?void 0:s.transform_error)??(r=>r),kn(this,Go,m9(()=>{ns(this,js,A1).call(this)},LI))}defer_effect(e){n6(e,Be(this,bp),Be(this,Cp))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!Be(this,kr).pending}update_pending_count(e,t){ns(this,js,k1).call(this,e,t),kn(this,kd,Be(this,kd)+e),!(!Be(this,fl)||Be(this,Cf))&&(kn(this,Cf,!0),Cc(()=>{kn(this,Cf,!1),Be(this,fl)&&qf(Be(this,fl),Be(this,kd))}))}get_effect_pending(){return Be(this,Xm).call(this),l(Be(this,fl))}error(e){if(!Be(this,kr).onerror&&!Be(this,kr).failed)throw e;ln!=null&&ln.is_fork?(Be(this,Br)&&ln.skip_effect(Be(this,Br)),Be(this,Po)&&ln.skip_effect(Be(this,Po)),Be(this,cr)&&ln.skip_effect(Be(this,cr)),ln.oncommit(()=>{ns(this,js,B1).call(this,e)})):ns(this,js,B1).call(this,e)}}Ar=new WeakMap,Iw=new WeakMap,kr=new WeakMap,Ad=new WeakMap,Go=new WeakMap,Br=new WeakMap,Po=new WeakMap,cr=new WeakMap,hl=new WeakMap,kd=new WeakMap,dc=new WeakMap,Cf=new WeakMap,bp=new WeakMap,Cp=new WeakMap,fl=new WeakMap,Xm=new WeakMap,js=new WeakSet,TI=function(){try{kn(this,Br,Fr(()=>Be(this,Ad).call(this,Be(this,Ar))))}catch(e){this.error(e)}},MI=function(e){const t=Be(this,kr).failed;t&&kn(this,cr,Fr(()=>{t(Be(this,Ar),()=>e,()=>()=>{})}))},RI=function(){const e=Be(this,kr).pending;e&&(this.is_pending=!0,kn(this,Po,Fr(()=>e(Be(this,Ar)))),Cc(()=>{var t=kn(this,hl,document.createDocumentFragment()),i=yl();t.append(i),kn(this,Br,ns(this,js,rv).call(this,()=>Fr(()=>Be(this,Ad).call(this,i)))),Be(this,dc)===0&&(Be(this,Ar).before(t),kn(this,hl,null),Rd(Be(this,Po),()=>{kn(this,Po,null)}),ns(this,js,ov).call(this,ln))}))},A1=function(){try{if(this.is_pending=this.has_pending_snippet(),kn(this,dc,0),kn(this,kd,0),kn(this,Br,Fr(()=>{Be(this,Ad).call(this,Be(this,Ar))})),Be(this,dc)>0){var e=kn(this,hl,document.createDocumentFragment());b9(Be(this,Br),e);const t=Be(this,kr).pending;kn(this,Po,Fr(()=>t(Be(this,Ar))))}else ns(this,js,ov).call(this,ln)}catch(t){this.error(t)}},ov=function(e){this.is_pending=!1,e.transfer_effects(Be(this,bp),Be(this,Cp))},rv=function(e){var t=Un,i=jn,n=po;Xa(Be(this,Go)),Wr(Be(this,Go)),Uf(Be(this,Go).ctx);try{return Fu.ensure(),e()}catch(s){return t6(s),null}finally{Xa(t),Wr(i),Uf(n)}},k1=function(e,t){var i;if(!this.has_pending_snippet()){this.parent&&ns(i=this.parent,js,k1).call(i,e,t);return}kn(this,dc,Be(this,dc)+e),Be(this,dc)===0&&(ns(this,js,ov).call(this,t),Be(this,Po)&&Rd(Be(this,Po),()=>{kn(this,Po,null)}),Be(this,hl)&&(Be(this,Ar).before(Be(this,hl)),kn(this,hl,null)))},B1=function(e){Be(this,Br)&&(ir(Be(this,Br)),kn(this,Br,null)),Be(this,Po)&&(ir(Be(this,Po)),kn(this,Po,null)),Be(this,cr)&&(ir(Be(this,cr)),kn(this,cr,null));var t=Be(this,kr).onerror;let i=Be(this,kr).failed;var n=!1,s=!1;const r=()=>{if(n){bI();return}n=!0,s&&oI(),Be(this,cr)!==null&&Rd(Be(this,cr),()=>{kn(this,cr,null)}),ns(this,js,rv).call(this,()=>{ns(this,js,A1).call(this)})},a=d=>{try{s=!0,t==null||t(d,r),s=!1}catch(u){fc(u,Be(this,Go)&&Be(this,Go).parent)}i&&kn(this,cr,ns(this,js,rv).call(this,()=>{try{return Fr(()=>{var u=Un;u.b=this,u.f|=b1,i(Be(this,Ar),()=>d,()=>r)})}catch(u){return fc(u,Be(this,Go).parent),null}}))};Cc(()=>{var d;try{d=this.transform_error(e)}catch(u){fc(u,Be(this,Go)&&Be(this,Go).parent);return}d!==null&&typeof d=="object"&&typeof d.then=="function"?d.then(a,u=>fc(u,Be(this,Go)&&Be(this,Go).parent)):a(d)})};function NI(o,e,t,i){const n=zg;var s=o.filter(p=>!p.settled);if(t.length===0&&s.length===0){i(e.map(n));return}var r=Un,a=OI(),d=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(p=>p.promise)):null;function u(p){if((r.f&Nr)===0){a();try{i(p)}catch(C){fc(C,r)}Hv()}}var f=c6();if(t.length===0){d.then(()=>u(e.map(n))).finally(f);return}function g(){Promise.all(t.map(p=>HI(p))).then(p=>u([...e.map(n),...p])).catch(p=>fc(p,r)).finally(f)}d?d.then(()=>{a(),g(),Hv()}):g()}function OI(){var o=Un,e=jn,t=po,i=ln;return function(s=!0){Xa(o),Wr(e),Uf(t),s&&(o.f&Nr)===0&&(i==null||i.activate(),i==null||i.apply())}}function Hv(o=!0){Xa(null),Wr(null),Uf(null),o&&(ln==null||ln.deactivate())}function c6(){var o=Un,e=o.b,t=ln,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 zg(o){var e=xo|ro;return Un!==null&&(Un.f|=p0),{ctx:po,deps:null,effects:null,equals:Yk,f:e,fn:o,reactions:null,rv:0,v:eo,wv:0,parent:Un,ac:null}}const bx=Symbol("obsolete");function HI(o,e,t){let i=Un;i===null&&Z7();var n=void 0,s=Lu(eo),r=!jn,a=new Set;return YI(()=>{var C,b;var d=Un,u=qk();n=u.promise;try{Promise.resolve(o()).then(u.resolve,E=>{E!==ub&&u.reject(E)}).finally(Hv)}catch(E){u.reject(E),Hv()}var f=ln;if(r){if((d.f&g0)!==0)var g=c6();if((C=i.b)!=null&&C.is_rendered())(b=f.async_deriveds.get(d))==null||b.reject(bx);else for(const E of a.values())E.reject(bx);a.add(u),f.async_deriveds.set(d,u)}const p=(E,w=void 0)=>{g==null||g(),a.delete(u),w!==bx&&(f.activate(),w?(s.f|=bc,qf(s,w)):((s.f&bc)!==0&&(s.f^=bc),qf(s,E)),f.deactivate())};u.promise.then(p,E=>p(null,E||"unknown"))}),x9(()=>{for(const d of a)d.reject(bx)}),new Promise(d=>{function u(f){function g(){f===n?d(s):u(n)}f.then(g,g)}u(n)})}function Nt(o){const e=zg(o);return D6(e),e}function h9(o){const e=zg(o);return e.equals=Qk,e}function WI(o){var e=o.effects;if(e!==null){o.effects=null;for(var t=0;t<e.length;t+=1)ir(e[t])}}function f9(o){var e,t=Un,i=o.parent;if(!Ll&&i!==null&&o.v!==eo&&(i.f&(Nr|No))!==0)return mI(),o.v;Xa(i);try{o.f&=~Bu,WI(o),e=F6(o)}finally{Xa(t)}return e}function d6(o){var e=f9(o);if(!o.equals(e)&&(o.wv=k6(),(!(ln!=null&&ln.is_fork)||o.deps===null)&&(ln!==null?(ln.capture(o,e,!0),dg==null||dg.capture(o,e,!0)):o.v=e,o.deps===null))){Vs(o,io);return}Ll||(uo!==null?(p9()||ln!=null&&ln.is_fork)&&uo.set(o,e):c9(o))}function zI(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(ub),i.fn!==null&&(i.teardown=cb),i.ac=null,Vg(i,0),_9(i))}function u6(o){if(o.effects!==null)for(const e of o.effects)e.teardown&&e.fn!==null&&Gf(e)}let Wv=new Set;const Td=new Map;let h6=!1;function Lu(o,e){var t={f:0,v:o,reactions:null,equals:Yk,rv:0,wv:0};return t}function B(o,e){const t=Lu(o);return D6(t),t}function VI(o,e=!1,t=!0){const i=Lu(o);return e||(i.equals=Qk),i}function x(o,e,t=!1){jn!==null&&(!ca||(jn.f&Nv)!==0)&&Jk()&&(jn.f&(xo|la|uf|Nv))!==0&&(Ua===null||!Ua.has(o))&&sI();let i=t?ki(e):e;return qf(o,i,sv)}function qf(o,e,t=null){if(!o.equals(e)){Td.set(o,Ll?e:o.v);var i=Fu.ensure();if(i.capture(o,e),(o.f&xo)!==0){const n=o;(o.f&ro)!==0&&f9(n),uo===null&&c9(n)}o.wv=k6(),f6(o,ro,t),Un!==null&&(Un.f&io)!==0&&(Un.f&(da|Vc))===0&&(Dr===null?JI([o]):Dr.push(o)),!i.is_fork&&Wv.size>0&&!h6&&jI()}return e}function jI(){h6=!1;for(const o of Wv){(o.f&io)!==0&&Vs(o,Za);let e;try{e=jp(o)}catch{e=!0}e&&Gf(o)}Wv.clear()}function x8(o,e=1){var t=l(o),i=e===1?t++:t--;return x(o,t),i}function hg(o){x(o,o.v+1)}function f6(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&ro)===0;if(d&&Vs(r,e),(a&Nv)!==0)Wv.add(r);else if((a&xo)!==0){var u=r;uo==null||uo.delete(u),(a&Bu)===0&&(a&Rr&&(Un===null||(Un.f&Ov)===0)&&(r.f|=Bu),f6(u,Za,t))}else if(d){var f=r;(a&la)!==0&&Zr!==null&&Zr.add(f),t!==null?t.push(f):u9(f)}}}function ki(o){if(typeof o!="object"||o===null||Pd in o)return o;const e=Uk(o);if(e!==W7&&e!==z7)return o;var t=new Map,i=l9(o),n=B(0),s=Nd,r=a=>{if(Nd===s)return a();var d=jn,u=Nd;Wr(null),b8(s);var f=a();return Wr(d),b8(u),f};return i&&t.set("length",B(o.length)),new Proxy(o,{defineProperty(a,d,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&iI();var f=t.get(d);return f===void 0?r(()=>{var g=B(u.value);return t.set(d,g),g}):x(f,u.value,!0),!0},deleteProperty(a,d){var u=t.get(d);if(u===void 0){if(d in a){const f=r(()=>B(eo));t.set(d,f),hg(n)}}else x(u,eo),hg(n);return!0},get(a,d,u){var C;if(d===Pd)return o;var f=t.get(d),g=d in a;if(f===void 0&&(!g||(C=df(a,d))!=null&&C.writable)&&(f=r(()=>{var b=ki(g?a[d]:eo),E=B(b);return E}),t.set(d,f)),f!==void 0){var p=l(f);return p===eo?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=l(f))}else if(u===void 0){var g=t.get(d),p=g==null?void 0:g.v;if(g!==void 0&&p!==eo)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(a,d){var p;if(d===Pd)return!0;var u=t.get(d),f=u!==void 0&&u.v!==eo||Reflect.has(a,d);if(u!==void 0||Un!==null&&(!f||(p=df(a,d))!=null&&p.writable)){u===void 0&&(u=r(()=>{var C=f?ki(a[d]):eo,b=B(C);return b}),t.set(d,u));var g=l(u);if(g===eo)return!1}return f},set(a,d,u,f){var M;var g=t.get(d),p=d in a;if(i&&d==="length")for(var C=u;C<g.v;C+=1){var b=t.get(C+"");b!==void 0?x(b,eo):C in a&&(b=r(()=>B(eo)),t.set(C+"",b))}if(g===void 0)(!p||(M=df(a,d))!=null&&M.writable)&&(g=r(()=>B(void 0)),x(g,ki(u)),t.set(d,g));else{p=g.v!==eo;var E=r(()=>ki(u));x(g,E)}var w=Reflect.getOwnPropertyDescriptor(a,d);if(w!=null&&w.set&&w.set.call(f,u),!p){if(i&&typeof d=="string"){var A=t.get("length"),I=Number(d);Number.isInteger(I)&&I>=A.v&&x(A,I+1)}hg(n)}return!0},ownKeys(a){l(n);var d=Reflect.ownKeys(a).filter(g=>{var p=t.get(g);return p===void 0||p.v!==eo});for(var[u,f]of t)f.v!==eo&&!(u in a)&&d.push(u);return d},setPrototypeOf(){nI()}})}function v8(o){try{if(o!==null&&typeof o=="object"&&Pd in o)return o[Pd]}catch{}return o}function $I(o,e){return Object.is(v8(o),v8(e))}var Md,g6,p6,x6,v6;function UI(){if(Md===void 0){Md=window,g6=document,p6=/Firefox/.test(navigator.userAgent);var o=Element.prototype,e=Node.prototype,t=Text.prototype;x6=df(e,"firstChild").get,v6=df(e,"nextSibling").get,h8(o)&&(o[E1]=void 0,o[iv]=null,o[y1]=void 0,o.__e=void 0),h8(t)&&(t[q0]=void 0)}}function yl(o=""){return document.createTextNode(o)}function Wa(o){return x6.call(o)}function Vp(o){return v6.call(o)}function m(o,e){return Wa(o)}function bt(o,e=!1){{var t=Wa(o);return t instanceof Comment&&t.data===""?Vp(t):t}}function v(o,e=1,t=!1){let i=o;for(;e--;)i=Vp(i);return i}function qI(o){o.textContent=""}function m6(){return!1}function _6(o,e,t){return e==null||e===Xk?t?document.createElement(o,{is:t}):document.createElement(o):t?document.createElementNS(e,o,{is:t}):document.createElementNS(e,o)}let m8=!1;function GI(){m8||(m8=!0,document.addEventListener("reset",o=>{Promise.resolve().then(()=>{var e;if(!o.defaultPrevented)for(const t of o.target.elements)(e=t[nv])==null||e.call(t)})},{capture:!0}))}function hb(o){var e=jn,t=Un;Wr(null),Xa(null);try{return o()}finally{Wr(e),Xa(t)}}function g9(o,e,t,i=t){o.addEventListener(e,()=>hb(t));const n=o[nv];n?o[nv]=()=>{n(),i(!0)}:o[nv]=()=>i(!0),GI()}function KI(o){Un===null&&(jn===null&&J7(),Q7()),Ll&&Y7()}function ZI(o,e){var t=e.last;t===null?e.last=e.first=o:(t.next=o,o.prev=t,e.last=o)}function zl(o,e){var t=Un;t!==null&&(t.f&No)!==0&&(o|=No);var i={ctx:po,deps:null,nodes:null,f:o|ro|Rr,first:null,fn:e,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null};ln==null||ln.register_created_effect(i);var n=i;if((o&jf)!==0)Gh!==null?Gh.push(i):Fu.ensure().schedule(i);else if(e!==null){try{Gf(i)}catch(r){throw ir(i),r}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&(n.f&p0)===0&&(n=n.first,(o&la)!==0&&(o&$f)!==0&&n!==null&&(n.f|=$f))}if(n!==null&&(n.parent=t,t!==null&&ZI(n,t),jn!==null&&(jn.f&xo)!==0&&(o&Vc)===0)){var s=jn;(s.effects??(s.effects=[])).push(n)}return i}function p9(){return jn!==null&&!ca}function x9(o){const e=zl(db,null);return Vs(e,io),e.teardown=o,e}function Qn(o){KI();var e=Un.f,t=!jn&&(e&da)!==0&&po!==null&&!po.i;if(t){var i=po;(i.e??(i.e=[])).push(o)}else return b6(o)}function b6(o){return zl(jf|U7,o)}function XI(o){Fu.ensure();const e=zl(Vc|p0,o);return(t={})=>new Promise(i=>{t.outro?Rd(e,()=>{ir(e),i(void 0)}):(ir(e),i(void 0))})}function v9(o){return zl(jf,o)}function YI(o){return zl(uf|p0,o)}function fb(o,e=0){return zl(db|e,o)}function z(o,e=[],t=[],i=[]){NI(i,e,t,n=>{zl(db,()=>o(...n.map(l)))})}function m9(o,e=0){var t=zl(la|e,o);return t}function Fr(o){return zl(da|p0,o)}function C6(o){var e=o.teardown;if(e!==null){const t=Ll,i=jn;_8(!0),Wr(null);try{e.call(null)}finally{_8(t),Wr(i)}}}function _9(o,e=!1){var t=o.first;for(o.first=o.last=null;t!==null;){const n=t.ac;n!==null&&hb(()=>{n.abort(ub)});var i=t.next;(t.f&Vc)!==0?t.parent=null:ir(t,e),t=i}}function QI(o){for(var e=o.first;e!==null;){var t=e.next;(e.f&da)===0&&ir(e),e=t}}function ir(o,e=!0){var t=!1;(e||(o.f&$7)!==0)&&o.nodes!==null&&o.nodes.end!==null&&(E6(o.nodes.start,o.nodes.end),t=!0),Vs(o,C1),_9(o,e&&!t),Vg(o,0);var i=o.nodes&&o.nodes.t;if(i!==null)for(const s of i)s.stop();C6(o),o.f^=C1,o.f|=Nr;var n=o.parent;n!==null&&n.first!==null&&y6(o),o.next=o.prev=o.teardown=o.ctx=o.deps=o.fn=o.nodes=o.ac=o.b=null}function E6(o,e){for(;o!==null;){var t=o===e?null:Vp(o);o.remove(),o=t}}function y6(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 Rd(o,e,t=!0){var i=[];w6(o,i,!0);var n=()=>{t&&ir(o),e&&e()},s=i.length;if(s>0){var r=()=>--s||n();for(var a of i)a.out(r)}else n()}function w6(o,e,t){if((o.f&No)===0){o.f^=No;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&Vc)===0){var r=(n.f&$f)!==0||(n.f&da)!==0&&(o.f&la)!==0;w6(n,e,r?t:!1)}n=s}}}function zv(o){S6(o,!0)}function S6(o,e){if((o.f&No)!==0){o.f^=No,(o.f&io)===0&&(Vs(o,ro),Fu.ensure().schedule(o));for(var t=o.first;t!==null;){var i=t.next,n=(t.f&$f)!==0||(t.f&da)!==0;S6(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 b9(o,e){if(o.nodes)for(var t=o.nodes.start,i=o.nodes.end;t!==null;){var n=t===i?null:Vp(t);e.append(t),t=n}}let av=!1,Ll=!1;function _8(o){Ll=o}let jn=null,ca=!1;function Wr(o){jn=o}let Un=null;function Xa(o){Un=o}let Ua=null;function D6(o){jn!==null&&(Ua??(Ua=new Set)).add(o)}let Ko=null,ar=0,Dr=null;function JI(o){Dr=o}let A6=1,Ed=0,Nd=Ed;function b8(o){Nd=o}function k6(){return++A6}function jp(o){var e=o.f;if((e&ro)!==0)return!0;if(e&xo&&(o.f&=~Bu),(e&Za)!==0){for(var t=o.deps,i=t.length,n=0;n<i;n++){var s=t[n];if(jp(s)&&d6(s),s.wv>o.wv)return!0}(e&Rr)!==0&&uo===null&&Vs(o,io)}return!1}function B6(o,e,t=!0){var i=o.reactions;if(i!==null&&!(Ua!==null&&Ua.has(o)))for(var n=0;n<i.length;n++){var s=i[n];(s.f&xo)!==0?B6(s,e,!1):e===s&&(t?Vs(s,ro):(s.f&io)!==0&&Vs(s,Za),u9(s))}}function F6(o){var E;var e=Ko,t=ar,i=Dr,n=jn,s=Ua,r=po,a=ca,d=Nd,u=o.f;Ko=null,ar=0,Dr=null,jn=(u&(da|Vc))===0?o:null,Ua=null,Uf(o.ctx),ca=!1,Nd=++Ed,o.ac!==null&&(hb(()=>{o.ac.abort(ub)}),o.ac=null);try{o.f|=Ov;var f=o.fn,g=f();o.f|=g0;var p=o.deps,C=ln==null?void 0:ln.is_fork;if(Ko!==null){var b;if(C||Vg(o,ar),p!==null&&ar>0)for(p.length=ar+Ko.length,b=0;b<Ko.length;b++)p[ar+b]=Ko[b];else o.deps=p=Ko;if(p9()&&(o.f&Rr)!==0)for(b=ar;b<p.length;b++)((E=p[b]).reactions??(E.reactions=[])).push(o)}else!C&&p!==null&&ar<p.length&&(Vg(o,ar),p.length=ar);if(Jk()&&Dr!==null&&!ca&&p!==null&&(o.f&(xo|Za|ro))===0)for(b=0;b<Dr.length;b++)B6(Dr[b],o);if(n!==null&&n!==o){if(Ed++,n.deps!==null)for(let w=0;w<t;w+=1)n.deps[w].rv=Ed;if(e!==null)for(const w of e)w.rv=Ed;Dr!==null&&(i===null?i=Dr:i.push(...Dr))}return(o.f&bc)!==0&&(o.f^=bc),g}catch(w){return t6(w)}finally{o.f^=Ov,Ko=e,ar=t,Dr=i,jn=n,Ua=s,Uf(r),ca=a,Nd=d}}function eP(o,e){let t=e.reactions;if(t!==null){var i=N7.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&xo)!==0&&(Ko===null||!Rv.call(Ko,e))){var s=e;(s.f&Rr)!==0&&(s.f^=Rr,s.f&=~Bu),s.v!==eo&&c9(s),zI(s),Vg(s,0)}}function Vg(o,e){var t=o.deps;if(t!==null)for(var i=e;i<t.length;i++)eP(o,t[i])}function Gf(o){var e=o.f;if((e&Nr)===0){Vs(o,io);var t=Un,i=av;Un=o,av=!0;try{(e&(la|Gk))!==0?QI(o):_9(o),C6(o);var n=F6(o);o.teardown=typeof n=="function"?n:null,o.wv=A6;var s;$k&&EI&&(o.f&ro)!==0&&o.deps}finally{av=i,Un=t}}}async function pl(){await Promise.resolve(),kI()}function l(o){var e=o.f,t=(e&xo)!==0;if(jn!==null&&!ca){var i=Un!==null&&(Un.f&Nr)!==0;if(!i&&(Ua===null||!Ua.has(o))){var n=jn.deps;if((jn.f&Ov)!==0)o.rv<Ed&&(o.rv=Ed,Ko===null&&n!==null&&n[ar]===o?ar++:Ko===null?Ko=[o]:Ko.push(o));else{jn.deps??(jn.deps=[]),Rv.call(jn.deps,o)||jn.deps.push(o);var s=o.reactions;s===null?o.reactions=[jn]:Rv.call(s,jn)||s.push(jn)}}}if(Ll&&Td.has(o))return Td.get(o);if(t){var r=o;if(Ll){var a=r.v;return((r.f&io)===0&&r.reactions!==null||I6(r))&&(a=f9(r)),Td.set(r,a),a}var d=(r.f&Rr)===0&&!ca&&jn!==null&&(av||(jn.f&Rr)!==0),u=(r.f&g0)===0;jp(r)&&(d&&(r.f|=Rr),d6(r)),d&&!u&&(u6(r),L6(r))}if(uo!=null&&uo.has(o))return uo.get(o);if((o.f&bc)!==0)throw o.v;return o.v}function L6(o){if(o.f|=Rr,o.deps!==null)for(const e of o.deps)(e.reactions??(e.reactions=[])).push(o),(e.f&xo)!==0&&(e.f&Rr)===0&&(u6(e),L6(e))}function I6(o){if(o.v===eo)return!0;if(o.deps===null)return!1;for(const e of o.deps)if(Td.has(e)||(e.f&xo)!==0&&I6(e))return!0;return!1}function Vl(o){var e=ca;try{return ca=!0,o()}finally{ca=e}}const tP=["touchstart","touchmove"];function iP(o){return tP.includes(o)}const yd=Symbol("events"),P6=new Set,F1=new Set;function nP(o,e,t,i={}){function n(s){if(i.capture||L1.call(e,s),!s.cancelBubble)return hb(()=>t==null?void 0:t.call(this,s))}return o.startsWith("pointer")||o.startsWith("touch")||o==="wheel"?Cc(()=>{e.addEventListener(o,n,i)}):e.addEventListener(o,n,i),n}function ms(o,e,t,i,n){var s={capture:i,passive:n},r=nP(o,e,t,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&x9(()=>{e.removeEventListener(o,r,s)})}function j(o,e,t){(e[yd]??(e[yd]={}))[o]=t}function Gs(o){for(var e=0;e<o.length;e++)P6.add(o[e]);for(var t of F1)t(o)}let C8=null;function L1(o){var E,w;var e=this,t=e.ownerDocument,i=o.type,n=((E=o.composedPath)==null?void 0:E.call(o))||[],s=n[0]||o.target;C8=o;var r=0,a=C8===o&&o[yd];if(a){var d=n.indexOf(a);if(d!==-1&&(e===document||e===window)){o[yd]=e;return}var u=n.indexOf(e);if(u===-1)return;d<=u&&(r=d)}if(s=n[r]||o.target,s!==e){O7(o,"currentTarget",{configurable:!0,get(){return s||t}});var f=jn,g=Un;Wr(null),Xa(null);try{for(var p,C=[];s!==null&&s!==e;){try{var b=(w=s[yd])==null?void 0:w[i];b!=null&&(!s.disabled||o.target===s)&&b.call(s,o)}catch(A){p?C.push(A):p=A}if(o.cancelBubble)break;r++,s=r<n.length?n[r]:null}if(p){for(let A of C)queueMicrotask(()=>{throw A});throw p}}finally{o[yd]=e,delete o.currentTarget,Wr(f),Xa(g)}}}var hA;const hC=((hA=globalThis==null?void 0:globalThis.window)==null?void 0:hA.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:o=>o});function sP(o){return(hC==null?void 0:hC.createHTML(o))??o}function T6(o){var e=_6("template");return e.innerHTML=sP(o.replaceAll("<!>","<!---->")),e.content}function Iu(o,e){var t=Un;t.nodes===null&&(t.nodes={start:o,end:e,a:null,t:null})}function F(o,e){var t=(e&gI)!==0,i=(e&pI)!==0,n,s=!o.startsWith("<!>");return()=>{n===void 0&&(n=T6(s?o:"<!>"+o),t||(n=Wa(n)));var r=i||p6?document.importNode(n,!0):n.cloneNode(!0);if(t){var a=Wa(r),d=r.lastChild;Iu(a,d)}else Iu(r,r);return r}}function oP(o,e,t="svg"){var i=!o.startsWith("<!>"),n=`<${t}>${i?o:"<!>"+o}</${t}>`,s;return()=>{if(!s){var r=T6(n),a=Wa(r);s=Wa(a)}var d=s.cloneNode(!0);return Iu(d,d),d}}function gb(o,e){return oP(o,e,"svg")}function ao(o=""){{var e=yl(o+"");return Iu(e,e),e}}function As(){var o=document.createDocumentFragment(),e=document.createComment(""),t=yl();return o.append(e,t),Iu(e,t),o}function D(o,e){o!==null&&o.before(e)}function O(o,e){var t=e==null?"":typeof e=="object"?`${e}`:e;t!==(o[q0]??(o[q0]=o.nodeValue))&&(o[q0]=t,o.nodeValue=`${t}`)}function rP(o,e){return aP(o,e)}const Cx=new Map;function aP(o,{target:e,anchor:t,props:i={},events:n,context:s,intro:r=!0,transformError:a}){UI();var d=void 0,u=XI(()=>{var f=t??e.appendChild(yl());II(f,{pending:()=>{}},C=>{Ts({});var b=po;s&&(b.c=s),n&&(i.$$events=n),d=o(C,i)||{},Ms()},a);var g=new Set,p=C=>{for(var b=0;b<C.length;b++){var E=C[b];if(!g.has(E)){g.add(E);var w=iP(E);for(const M of[e,document]){var A=Cx.get(M);A===void 0&&(A=new Map,Cx.set(M,A));var I=A.get(E);I===void 0?(M.addEventListener(E,L1,{passive:w}),A.set(E,1)):A.set(E,I+1)}}}};return p(lb(P6)),F1.add(p),()=>{var w;for(var C of g)for(const A of[e,document]){var b=Cx.get(A),E=b.get(C);--E==0?(A.removeEventListener(C,L1),b.delete(C),b.size===0&&Cx.delete(A)):b.set(C,E)}F1.delete(p),f!==t&&((w=f.parentNode)==null||w.removeChild(f))}});return lP.set(d,u),d}let lP=new WeakMap;var Jr,Ia,dr,Bd,Ep,yp,Ym;class cP{constructor(e,t=!0){Mn(this,"anchor");An(this,Jr,new Map);An(this,Ia,new Map);An(this,dr,new Map);An(this,Bd,new Set);An(this,Ep,!0);An(this,yp,e=>{if(Be(this,Jr).has(e)){var t=Be(this,Jr).get(e),i=Be(this,Ia).get(t);if(i)zv(i),Be(this,Bd).delete(t);else{var n=Be(this,dr).get(t);n&&(zv(n.effect),Be(this,Ia).set(t,n.effect),Be(this,dr).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[s,r]of Be(this,Jr)){if(Be(this,Jr).delete(s),s===e)break;const a=Be(this,dr).get(r);a&&(ir(a.effect),Be(this,dr).delete(r))}for(const[s,r]of Be(this,Ia)){if(s===t||Be(this,Bd).has(s))continue;const a=()=>{if(Array.from(Be(this,Jr).values()).includes(s)){var u=document.createDocumentFragment();b9(r,u),u.append(yl()),Be(this,dr).set(s,{effect:r,fragment:u})}else ir(r);Be(this,Bd).delete(s),Be(this,Ia).delete(s)};Be(this,Ep)||!i?(Be(this,Bd).add(s),Rd(r,a,!1)):a()}}});An(this,Ym,e=>{Be(this,Jr).delete(e);const t=Array.from(Be(this,Jr).values());for(const[i,n]of Be(this,dr))t.includes(i)||(ir(n.effect),Be(this,dr).delete(i))});this.anchor=e,kn(this,Ep,t)}ensure(e,t){var i=ln,n=m6();if(t&&!Be(this,Ia).has(e)&&!Be(this,dr).has(e))if(n){var s=document.createDocumentFragment(),r=yl();s.append(r),Be(this,dr).set(e,{effect:Fr(()=>t(r)),fragment:s})}else Be(this,Ia).set(e,Fr(()=>t(this.anchor)));if(Be(this,Jr).set(i,e),n){for(const[a,d]of Be(this,Ia))a===e?i.unskip_effect(d):i.skip_effect(d);for(const[a,d]of Be(this,dr))a===e?i.unskip_effect(d.effect):i.skip_effect(d.effect);i.oncommit(Be(this,yp)),i.ondiscard(Be(this,Ym))}else Be(this,yp).call(this,i)}}Jr=new WeakMap,Ia=new WeakMap,dr=new WeakMap,Bd=new WeakMap,Ep=new WeakMap,yp=new WeakMap,Ym=new WeakMap;function H(o,e,t=!1){var i=new cP(o),n=t?$f:0;function s(r,a){i.ensure(r,a)}m9(()=>{var r=!1;e((a,d=0)=>{r=!0,s(d,a)}),r||s(-1,null)},n)}function ji(o,e){return e}function dP(o,e,t){for(var i=[],n=e.length,s,r=e.length,a=0;a<n;a++){let g=e[a];Rd(g,()=>{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var p=o.outrogroups;I1(o,lb(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;qI(f),f.append(u),o.items.clear()}I1(o,e,!d)}else s={pending:new Set(e),done:new Set},(o.outrogroups??(o.outrogroups=new Set)).add(s)}function I1(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|=Ha;const r=document.createDocumentFragment();b9(s,r)}else ir(e[n],t)}}var E8;function si(o,e,t,i,n,s=null){var r=o,a=new Map,d=(e&Zk)!==0;if(d){var u=o;r=u.appendChild(yl())}var f=null,g=h9(()=>{var M=t();return l9(M)?M:M==null?[]:lb(M)}),p,C=new Map,b=!0;function E(M){(I.effect.f&Nr)===0&&(I.pending.delete(M),I.fallback=f,uP(I,p,r,e,i),f!==null&&(p.length===0?(f.f&Ha)===0?zv(f):(f.f^=Ha,Z0(f,null,r)):Rd(f,()=>{f=null})))}function w(M){I.pending.delete(M)}var A=m9(()=>{p=l(g);for(var M=p.length,R=new Set,P=ln,V=m6(),$=0;$<M;$+=1){var Q=p[$],re=i(Q,$),he=b?null:a.get(re);he?(he.v&&qf(he.v,Q),he.i&&qf(he.i,$),V&&P.unskip_effect(he.e)):(he=hP(a,b?r:E8??(E8=yl()),Q,re,$,n,e,t),b||(he.e.f|=Ha),a.set(re,he)),R.add(re)}if(M===0&&s&&!f&&(b?f=Fr(()=>s(r)):(f=Fr(()=>s(E8??(E8=yl()))),f.f|=Ha)),M>R.size&&X7(),!b)if(C.set(P,R),V){for(const[Z,ce]of a)R.has(Z)||P.skip_effect(ce.e);P.oncommit(E),P.ondiscard(w)}else E(P);l(g)}),I={effect:A,items:a,pending:C,outrogroups:null,fallback:f};b=!1}function R0(o){for(;o!==null&&(o.f&da)===0;)o=o.next;return o}function uP(o,e,t,i,n){var he,Z,ce,me,se,ue,De,Pe,ve;var s=(i&lI)!==0,r=e.length,a=o.items,d=R0(o.effect.first),u,f=null,g,p=[],C=[],b,E,w,A;if(s)for(A=0;A<r;A+=1)b=e[A],E=n(b,A),w=a.get(E).e,(w.f&Ha)===0&&((Z=(he=w.nodes)==null?void 0:he.a)==null||Z.measure(),(g??(g=new Set)).add(w));for(A=0;A<r;A+=1){if(b=e[A],E=n(b,A),w=a.get(E).e,o.outrogroups!==null)for(const Oe of o.outrogroups)Oe.pending.delete(w),Oe.done.delete(w);if((w.f&No)!==0&&(zv(w),s&&((me=(ce=w.nodes)==null?void 0:ce.a)==null||me.unfix(),(g??(g=new Set)).delete(w))),(w.f&Ha)!==0)if(w.f^=Ha,w===d)Z0(w,null,t);else{var I=f?f.next:d;w===o.effect.last&&(o.effect.last=w.prev),w.prev&&(w.prev.next=w.next),w.next&&(w.next.prev=w.prev),Xl(o,f,w),Xl(o,w,I),Z0(w,I,t),f=w,p=[],C=[],d=R0(f.next);continue}if(w!==d){if(u!==void 0&&u.has(w)){if(p.length<C.length){var M=C[0],R;f=M.prev;var P=p[0],V=p[p.length-1];for(R=0;R<p.length;R+=1)Z0(p[R],M,t);for(R=0;R<C.length;R+=1)u.delete(C[R]);Xl(o,P.prev,V.next),Xl(o,f,P),Xl(o,V,M),d=M,f=V,A-=1,p=[],C=[]}else u.delete(w),Z0(w,d,t),Xl(o,w.prev,w.next),Xl(o,w,f===null?o.effect.first:f.next),Xl(o,f,w),f=w;continue}for(p=[],C=[];d!==null&&d!==w;)(u??(u=new Set)).add(d),C.push(d),d=R0(d.next);if(d===null)continue}(w.f&Ha)===0&&p.push(w),f=w,d=R0(w.next)}if(o.outrogroups!==null){for(const Oe of o.outrogroups)Oe.pending.size===0&&(I1(o,lb(Oe.done)),(se=o.outrogroups)==null||se.delete(Oe));o.outrogroups.size===0&&(o.outrogroups=null)}if(d!==null||u!==void 0){var $=[];if(u!==void 0)for(w of u)(w.f&No)===0&&$.push(w);for(;d!==null;)(d.f&No)===0&&d!==o.fallback&&$.push(d),d=R0(d.next);var Q=$.length;if(Q>0){var re=(i&Zk)!==0&&r===0?t:null;if(s){for(A=0;A<Q;A+=1)(De=(ue=$[A].nodes)==null?void 0:ue.a)==null||De.measure();for(A=0;A<Q;A+=1)(ve=(Pe=$[A].nodes)==null?void 0:Pe.a)==null||ve.fix()}dP(o,$,re)}}s&&Cc(()=>{var Oe,ze;if(g!==void 0)for(w of g)(ze=(Oe=w.nodes)==null?void 0:Oe.a)==null||ze.apply()})}function hP(o,e,t,i,n,s,r,a){var d=(r&rI)!==0?(r&cI)===0?VI(t,!1,!1):Lu(t):null,u=(r&aI)!==0?Lu(n):null;return{v:d,i:u,e:Fr(()=>(s(e,d??t,u??n,a),()=>{o.delete(i)}))}}function Z0(o,e,t){if(o.nodes)for(var i=o.nodes.start,n=o.nodes.end,s=e&&(e.f&Ha)===0?e.nodes.start:t;i!==null;){var r=Vp(i);if(s.before(i),i===n)return;i=r}}function Xl(o,e,t){e===null?o.effect.first=t:e.next=t,t===null?o.effect.last=e:t.prev=e}function gc(o,e,t=!1,i=!1,n=!1,s=!1){var r=o,a="";if(t)var d=o;z(()=>{var u=Un;if(a!==(a=e()??"")){if(t){u.nodes=null,d.innerHTML=a,a!==""&&Iu(Wa(d),d.lastChild);return}if(u.nodes!==null&&(E6(u.nodes.start,u.nodes.end),u.nodes=null),a!==""){var f=i?xI:n?vI:void 0,g=_6(i?"svg":n?"math":"template",f);g.innerHTML=a;var p=i||n?g:g.content;if(Iu(Wa(p),p.lastChild),i||n)for(;Wa(p);)r.before(Wa(p));else r.before(p)}}})}function M6(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=M6(o[e]))&&(i&&(i+=" "),i+=t)}else for(t in o)o[t]&&(i&&(i+=" "),i+=t);return i}function fP(){for(var o,e,t=0,i="",n=arguments.length;t<n;t++)(o=arguments[t])&&(e=M6(o))&&(i&&(i+=" "),i+=e);return i}function fg(o){return typeof o=="object"?fP(o):o??""}const y8=[...`
3
3
  \r\f \v\uFEFF`];function gP(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||y8.includes(i[r-1]))&&(a===i.length||y8.includes(i[a]))?i=(r===0?"":i.substring(0,r))+i.substring(a+1):r=a}}return i===""?null:i}function w8(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 fC(o){return o[0]!=="-"||o[1]!=="-"?o.toLowerCase():o}function pP(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(fC)),n&&d.push(...Object.keys(n).map(fC));var u=0,f=-1;const E=o.length;for(var g=0;g<E;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===E-1){if(f!==-1){var C=fC(o.substring(u,f).trim());if(!d.includes(C)){p!==";"&&g++;var b=o.substring(u,g).trim();t+=" "+b+";"}}u=g+1,f=-1}}}}return i&&(t+=w8(i)),n&&(t+=w8(n,!0)),t=t.trim(),t===""?null:t}return o==null?null:String(o)}function kt(o,e,t,i,n,s){var r=o[E1];if(r!==t||r===void 0){var a=gP(t,i,s);a==null?o.removeAttribute("class"):e?o.className=a:o.setAttribute("class",a),o[E1]=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 gC(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 yo(o,e,t,i){var n=o[y1];if(n!==e){var s=pP(e,i);s==null?o.removeAttribute("style"):o.style.cssText=s,o[y1]=e}else i&&(Array.isArray(i)?(gC(o,t==null?void 0:t[0],i[0]),gC(o,t==null?void 0:t[1],i[1],"important")):gC(o,t,i));return i}function Vv(o,e,t=!1){if(o.multiple){if(e==null)return;if(!l9(e))return _I();for(var i of o.options)i.selected=e.includes(gg(i));return}for(i of o.options){var n=gg(i);if($I(n,e)){i.selected=!0;return}}(!t||e!==void 0)&&(o.selectedIndex=-1)}function P1(o){var e=new MutationObserver(()=>{Vv(o,o.__value)});e.observe(o,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),x9(()=>{e.disconnect()})}function Ps(o,e,t=e){var i=new WeakSet,n=!0;g9(o,"change",s=>{var r=s?"[selected]":":checked",a;if(o.multiple)a=[].map.call(o.querySelectorAll(r),gg);else{var d=o.querySelector(r)??o.querySelector("option:not([disabled])");a=d&&gg(d)}t(a),o.__value=a,ln!==null&&i.add(ln)}),v9(()=>{var s=e();if(o===document.activeElement){var r=ln;if(i.has(r))return}if(Vv(o,s,n),n&&s===void 0){var a=o.querySelector(":checked");a!==null&&(s=gg(a),t(s))}o.__value=s,n=!1}),P1(o)}function gg(o){return"__value"in o?o.__value:o.value}const xP=Symbol("is custom element"),vP=Symbol("is html"),mP=K7?"progress":"PROGRESS";function T1(o,e){var t=C9(o);t.value===(t.value=e??void 0)||o.value===e&&(e!==0||o.nodeName!==mP)||(o.value=e??"")}function Qo(o,e){var t=C9(o);t.checked!==(t.checked=e??void 0)&&(o.checked=e)}function dn(o,e,t,i){var n=C9(o);n[e]!==(n[e]=t)&&(e==="loading"&&(o[G7]=t),t==null?o.removeAttribute(e):typeof t!="string"&&_P(o).includes(e)?o[e]=t:o.setAttribute(e,t))}function C9(o){return o[iv]??(o[iv]={[xP]:o.nodeName.includes("-"),[vP]:o.namespaceURI===Xk})}var S8=new Map;function _P(o){var e=o.getAttribute("is")||o.nodeName,t=S8.get(e);if(t)return t;S8.set(e,t=[]);for(var i,n=o,s=Element.prototype;s!==n;){i=H7(n);for(var r in i)i[r].set&&r!=="innerHTML"&&r!=="textContent"&&r!=="innerText"&&t.push(r);n=Uk(n)}return t}function Rt(o,e,t=e){var i=new WeakSet;g9(o,"input",async n=>{var s=n?o.defaultValue:o.value;if(s=pC(o)?xC(s):s,t(s),ln!==null&&i.add(ln),await pl(),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))}}}),Vl(e)==null&&o.value&&(t(pC(o)?xC(o.value):o.value),ln!==null&&i.add(ln)),fb(()=>{var n=e();if(o===document.activeElement){var s=ln;if(i.has(s))return}pC(o)&&n===xC(o.value)||o.type==="date"&&!n&&!o.value||n!==o.value&&(o.value=n??"")})}function Cs(o,e,t=e){g9(o,"change",i=>{var n=i?o.defaultChecked:o.checked;t(n)}),Vl(e)==null&&t(o.checked),fb(()=>{var i=e();o.checked=!!i})}function pC(o){var e=o.type;return e==="number"||e==="range"}function xC(o){return o===""?null:+o}var uc,Ef,wp,Qm,R6;const Jm=class Jm{constructor(e){An(this,Qm);An(this,uc,new WeakMap);An(this,Ef);An(this,wp);kn(this,wp,e)}observe(e,t){var i=Be(this,uc).get(e)||new Set;return i.add(t),Be(this,uc).set(e,i),ns(this,Qm,R6).call(this).observe(e,Be(this,wp)),()=>{var n=Be(this,uc).get(e);n.delete(t),n.size===0&&(Be(this,uc).delete(e),Be(this,Ef).unobserve(e))}}};uc=new WeakMap,Ef=new WeakMap,wp=new WeakMap,Qm=new WeakSet,R6=function(){return Be(this,Ef)??kn(this,Ef,new ResizeObserver(e=>{for(var t of e){Jm.entries.set(t.target,t);for(var i of Be(this,uc).get(t.target)||[])i(t)}}))},Mn(Jm,"entries",new WeakMap);let M1=Jm;var bP=new M1({box:"border-box"});function CP(o,e,t){var i=bP.observe(o,()=>t(o[e]));v9(()=>(Vl(()=>t(o[e])),i))}function vC(o,e){return o===e||(o==null?void 0:o[Pd])===e}function us(o={},e,t,i){var n=po.r,s=Un;return v9(()=>{var r,a;return fb(()=>{r=a,a=[],Vl(()=>{vC(t(...a),o)||(e(o,...a),r&&vC(t(...r),o)&&e(null,...r))})}),()=>{let d=s;for(;d!==n&&d.parent!==null&&d.parent.f&C1;)d=d.parent;const u=()=>{a&&vC(t(...a),o)&&e(null,...a)},f=d.teardown;d.teardown=()=>{u(),f==null||f()}}}),o}function Pu(o,e,t,i){var R;var n=!0,s=(t&hI)!==0,r=(t&fI)!==0,a=i,d=!0,u=void 0,f=()=>r&&n?(u??(u=zg(i)),l(u)):(d&&(d=!1,a=r?Vl(i):i),a);let g;if(s){var p=Pd in o||q7 in o;g=((R=df(o,e))==null?void 0:R.set)??(p&&e in o?P=>o[e]=P:void 0)}var C,b=!1;s?[C,b]=SI(()=>o[e]):C=o[e],C===void 0&&i!==void 0&&(C=f(),g&&(tI(),g(C)));var E;if(E=()=>{var P=o[e];return P===void 0?f():(d=!0,P)},(t&uI)===0)return E;if(g){var w=o.$$legacy;return(function(P,V){return arguments.length>0?((!V||w||b)&&g(V?E():P),P):E()})}var A=!1,I=((t&dI)!==0?zg:h9)(()=>(A=!1,E()));s&&l(I);var M=Un;return(function(P,V){if(arguments.length>0){const $=V?l(I):s?ki(P):P;return x(I,$),A=!0,a!==void 0&&(a=$),P}return Ll&&A||(M.f&Nr)!==0?I.v:l(I)})}function $s(o){po===null&&Kk(),Qn(()=>{const e=Vl(o);if(typeof e=="function")return e})}function $p(o){po===null&&Kk(),$s(()=>()=>Vl(o))}const EP="5";var fA;typeof window<"u"&&((fA=window.__svelte??(window.__svelte={})).v??(fA.v=new Set)).add(EP);/*!-----------------------------------------------------------------------------
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -10,7 +10,7 @@ var i3=Object.defineProperty;var TS=o=>{throw TypeError(o)};var n3=(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 PP=Object.defineProperty,TP=Object.getOwnPropertyDescriptor,MP=Object.getOwnPropertyNames,RP=Object.prototype.hasOwnProperty,NP=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of MP(e))!RP.call(o,n)&&n!==t&&PP(o,n,{get:()=>e[n],enumerable:!(i=TP(e,n))||i.enumerable});return o},OP=(o,e,t)=>(NP(o,e,"default"),t),HP="5.4.5",Kf={};OP(Kf,pA);var H6=(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))(H6||{}),W6=(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))(W6||{}),z6=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(z6||{}),V6=(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))(V6||{}),j6=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(j6||{}),$6=class{constructor(o,e,t,i,n){this._onDidChange=new Kf.Emitter,this._onDidExtraLibsChange=new Kf.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},WP=HP,U6={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},q6=new $6({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},U6),G6=new $6({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},U6),zP=()=>pb().then(o=>o.getTypeScriptWorker()),VP=()=>pb().then(o=>o.getJavaScriptWorker());Kf.languages.typescript={ModuleKind:H6,JsxEmit:W6,NewLineKind:z6,ScriptTarget:V6,ModuleResolutionKind:j6,typescriptVersion:WP,typescriptDefaults:q6,javascriptDefaults:G6,getTypeScriptWorker:zP,getJavaScriptWorker:VP};function pb(){return gA(()=>import("./tsMode-kiZuXQi8.js"),__vite__mapDeps([3,1,2]))}Kf.languages.onLanguage("typescript",()=>pb().then(o=>o.setupTypeScript(q6)));Kf.languages.onLanguage("javascript",()=>pb().then(o=>o.setupJavaScript(G6)));class jP extends Bo{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Fi("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:en.map,toggled:Ke.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ke.has("isInDiffEditor"),menu:{when:Ke.has("isInDiffEditor"),id:di.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(rs),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class K6 extends Bo{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Fi("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Ke.has("isInDiffEditor")})}run(e,...t){const i=e.get(rs),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class Z6 extends Bo{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Fi("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Ke.has("isInDiffEditor")})}run(e,...t){const i=e.get(rs),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const qp=Fi("diffEditor","Diff Editor");class $P extends ua{constructor(){super({id:"diffEditor.switchSide",title:Fi("switchSide","Switch Side"),icon:en.arrowSwap,precondition:Ke.has("isInDiffEditor"),f1:!0,category:qp})}runEditorCommand(e,t,i){const n=x0(e);if(n instanceof Sp){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class UP extends ua{constructor(){super({id:"diffEditor.exitCompareMove",title:Fi("exitCompareMove","Exit Compare Move"),icon:en.close,precondition:q.comparingMovedCode,f1:!1,category:qp,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=x0(e);n instanceof Sp&&n.exitCompareMove()}}class qP extends ua{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Fi("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:en.fold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:qp})}runEditorCommand(e,t,...i){const n=x0(e);n instanceof Sp&&n.collapseAllUnchangedRegions()}}class GP extends ua{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Fi("showAllUnchangedRegions","Show All Unchanged Regions"),icon:en.unfold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:qp})}runEditorCommand(e,t,...i){const n=x0(e);n instanceof Sp&&n.showAllUnchangedRegions()}}class R1 extends Bo{constructor(){super({id:"diffEditor.revert",title:Fi("revert","Revert"),f1:!1,category:qp})}run(e,t){const i=KP(e,t.originalUri,t.modifiedUri);i instanceof Sp&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const X6=Fi("accessibleDiffViewer","Accessible Diff Viewer"),e_=class e_ extends Bo{constructor(){super({id:e_.id,title:Fi("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:X6,precondition:Ke.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=x0(e);t==null||t.accessibleDiffViewerNext()}};e_.id="editor.action.accessibleDiffViewer.next";let jg=e_;const t_=class t_ extends Bo{constructor(){super({id:t_.id,title:Fi("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:X6,precondition:Ke.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=x0(e);t==null||t.accessibleDiffViewerPrev()}};t_.id="editor.action.accessibleDiffViewer.prev";let jv=t_;function KP(o,e,t){return o.get(ys).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 x0(o){const t=o.get(ys).listDiffEditors(),i=xA();if(i)for(const n of t){const s=n.getContainerDomNode();if(ZP(s,i))return n}return null}function ZP(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}qn(jP);qn(K6);qn(Z6);Or.appendMenuItem(di.EditorTitle,{command:{id:new Z6().desc.id,title:S("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Ke.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Ke.has("isInDiffEditor")},order:11,group:"1_diff",when:Ke.and(q.diffEditorRenderSideBySideInlineBreakpointReached,Ke.has("isInDiffEditor"))});Or.appendMenuItem(di.EditorTitle,{command:{id:new K6().desc.id,title:S("showMoves","Show Moved Code Blocks"),icon:en.move,toggled:s3.create("config.diffEditor.experimental.showMoves",!0),precondition:Ke.has("isInDiffEditor")},order:10,group:"1_diff",when:Ke.has("isInDiffEditor")});qn(R1);for(const o of[{icon:en.arrowRight,key:q.diffEditorInlineMode.toNegated()},{icon:en.discard,key:q.diffEditorInlineMode}])Or.appendMenuItem(di.DiffEditorHunkToolbar,{command:{id:new R1().desc.id,title:S("revertHunk","Revert Block"),icon:o.icon},when:Ke.and(q.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Or.appendMenuItem(di.DiffEditorSelectionToolbar,{command:{id:new R1().desc.id,title:S("revertSelection","Revert Selection"),icon:o.icon},when:Ke.and(q.diffEditorModifiedWritable,o.key),order:5,group:"primary"});qn($P);qn(UP);qn(qP);qn(GP);Or.appendMenuItem(di.EditorTitle,{command:{id:jg.id,title:S("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Ke.has("isInDiffEditor")},order:10,group:"2_diff",when:Ke.and(q.accessibleDiffViewerVisible.negate(),Ke.has("isInDiffEditor"))});is.registerCommandAlias("editor.action.diffReview.next",jg.id);qn(jg);is.registerCommandAlias("editor.action.diffReview.prev",jv.id);qn(jv);var XP=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},YP=function(o,e){return function(t,i){e(t,i,o)}},N1;const xb=new Bn("selectionAnchorSet",!1);var zd;let jc=(zd=class{static get(e){return e.getContribution(N1.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=xb.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(qi.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new co().appendText(S("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Hr(S("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(qi.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()}},N1=zd,zd.ID="editor.contrib.selectionAnchorController",zd);jc=N1=XP([YP(1,On)],jc);class QP extends wt{constructor(){super({id:"editor.action.setSelectionAnchor",label:S("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:q.editorTextFocus,primary:ks(2089,2080),weight:100}})}async run(e,t){var i;(i=jc.get(t))==null||i.setSelectionAnchor()}}class JP extends wt{constructor(){super({id:"editor.action.goToSelectionAnchor",label:S("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:xb})}async run(e,t){var i;(i=jc.get(t))==null||i.goToSelectionAnchor()}}class eT extends wt{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:S("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:xb,kbOpts:{kbExpr:q.editorTextFocus,primary:ks(2089,2089),weight:100}})}async run(e,t){var i;(i=jc.get(t))==null||i.selectFromAnchorToCursor()}}class tT extends wt{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:S("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:xb,kbOpts:{kbExpr:q.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=jc.get(t))==null||i.cancelSelectionAnchor()}}xn(jc.ID,jc,4);Re(QP);Re(JP);Re(eT);Re(tT);const iT=Di("editorOverviewRuler.bracketMatchForeground","#A0A0A0",S("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class nT extends wt{constructor(){super({id:"editor.action.jumpToBracket",label:S("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:q.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Tu.get(t))==null||i.jumpToBracket()}}class sT extends wt{constructor(){super({id:"editor.action.selectToBracket",label:S("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Fi("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=Tu.get(t))==null||s.selectToBracket(n)}}class oT extends wt{constructor(){super({id:"editor.action.removeBrackets",label:S("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:q.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Tu.get(t))==null||i.removeBrackets(this.id)}}class rT{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const sc=class sc extends Wt{static get(e){return e.getContribution(sc.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Ns(()=>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 qi(r.lineNumber,r.column,r.lineNumber,r.column):new qi(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(ee.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 qi(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 C=e[g];C.isEmpty()&&(s[r++]=C.getStartPosition())}s.length>1&&s.sort(Ii.compare);const a=[];let d=0,u=0;const f=n.length;for(let g=0,p=s.length;g<p;g++){const C=s[g];for(;u<f&&n[u].position.isBefore(C);)u++;if(u<f&&n[u].position.equals(C))a[d++]=n[u];else{let b=t.bracketPairs.matchBracket(C,20),E=sc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!b&&this._matchBrackets==="always"&&(b=t.bracketPairs.findEnclosingBrackets(C,20),E=sc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new rT(C,b,E)}}this._lastBracketsData=a,this._lastVersionId=i}};sc.ID="editor.contrib.bracketMatchingController",sc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Sn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:Is(iT),position:Va.Center}}),sc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Sn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Tu=sc;xn(Tu.ID,Tu,1);Re(sT);Re(nT);Re(oT);Or.appendMenuItem(di.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:S({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class aT{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 ee(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new ee(i,s,i,s),a)}else{const r=new ee(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new ee(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new qi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new qi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class Y6 extends wt{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 aT(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class lT extends Y6{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:S("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:q.writable})}}class cT extends Y6{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:S("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:q.writable})}}Re(lT);Re(cT);class dT extends wt{constructor(){super({id:"editor.action.transposeLetters",label:S("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:q.writable,kbOpts:{kbExpr:q.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():nC.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=nC.leftPosition(i,f),p=nC.leftPosition(i,g),C=i.getValueInRange(ee.fromPositions(p,g)),b=i.getValueInRange(ee.fromPositions(g,f)),E=ee.fromPositions(p,f);n.push(new Dp(E,b+C))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}Re(dT);const vb=(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 E9(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function uT(o,e,t){const i={id:vb(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class Q6{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 bl.some(this,([i,n])=>n.asFile())&&t.push("files"),e5($v(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 $v(e)}}function $v(o){return o.toLowerCase()}function J6(o,e){return e5($v(o),e.map($v))}function e5(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 mb=Object.freeze({create:o=>vA(o.map(e=>e.toString())).join(`\r
13
+ *-----------------------------------------------------------------------------*/var PP=Object.defineProperty,TP=Object.getOwnPropertyDescriptor,MP=Object.getOwnPropertyNames,RP=Object.prototype.hasOwnProperty,NP=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of MP(e))!RP.call(o,n)&&n!==t&&PP(o,n,{get:()=>e[n],enumerable:!(i=TP(e,n))||i.enumerable});return o},OP=(o,e,t)=>(NP(o,e,"default"),t),HP="5.4.5",Kf={};OP(Kf,pA);var H6=(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))(H6||{}),W6=(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))(W6||{}),z6=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(z6||{}),V6=(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))(V6||{}),j6=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(j6||{}),$6=class{constructor(o,e,t,i,n){this._onDidChange=new Kf.Emitter,this._onDidExtraLibsChange=new Kf.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},WP=HP,U6={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},q6=new $6({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},U6),G6=new $6({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},U6),zP=()=>pb().then(o=>o.getTypeScriptWorker()),VP=()=>pb().then(o=>o.getJavaScriptWorker());Kf.languages.typescript={ModuleKind:H6,JsxEmit:W6,NewLineKind:z6,ScriptTarget:V6,ModuleResolutionKind:j6,typescriptVersion:WP,typescriptDefaults:q6,javascriptDefaults:G6,getTypeScriptWorker:zP,getJavaScriptWorker:VP};function pb(){return gA(()=>import("./tsMode-CPBwsjiU.js"),__vite__mapDeps([3,1,2]))}Kf.languages.onLanguage("typescript",()=>pb().then(o=>o.setupTypeScript(q6)));Kf.languages.onLanguage("javascript",()=>pb().then(o=>o.setupJavaScript(G6)));class jP extends Bo{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Fi("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:en.map,toggled:Ke.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ke.has("isInDiffEditor"),menu:{when:Ke.has("isInDiffEditor"),id:di.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(rs),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class K6 extends Bo{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Fi("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Ke.has("isInDiffEditor")})}run(e,...t){const i=e.get(rs),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class Z6 extends Bo{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Fi("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Ke.has("isInDiffEditor")})}run(e,...t){const i=e.get(rs),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const qp=Fi("diffEditor","Diff Editor");class $P extends ua{constructor(){super({id:"diffEditor.switchSide",title:Fi("switchSide","Switch Side"),icon:en.arrowSwap,precondition:Ke.has("isInDiffEditor"),f1:!0,category:qp})}runEditorCommand(e,t,i){const n=x0(e);if(n instanceof Sp){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class UP extends ua{constructor(){super({id:"diffEditor.exitCompareMove",title:Fi("exitCompareMove","Exit Compare Move"),icon:en.close,precondition:q.comparingMovedCode,f1:!1,category:qp,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=x0(e);n instanceof Sp&&n.exitCompareMove()}}class qP extends ua{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Fi("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:en.fold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:qp})}runEditorCommand(e,t,...i){const n=x0(e);n instanceof Sp&&n.collapseAllUnchangedRegions()}}class GP extends ua{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Fi("showAllUnchangedRegions","Show All Unchanged Regions"),icon:en.unfold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:qp})}runEditorCommand(e,t,...i){const n=x0(e);n instanceof Sp&&n.showAllUnchangedRegions()}}class R1 extends Bo{constructor(){super({id:"diffEditor.revert",title:Fi("revert","Revert"),f1:!1,category:qp})}run(e,t){const i=KP(e,t.originalUri,t.modifiedUri);i instanceof Sp&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const X6=Fi("accessibleDiffViewer","Accessible Diff Viewer"),e_=class e_ extends Bo{constructor(){super({id:e_.id,title:Fi("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:X6,precondition:Ke.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=x0(e);t==null||t.accessibleDiffViewerNext()}};e_.id="editor.action.accessibleDiffViewer.next";let jg=e_;const t_=class t_ extends Bo{constructor(){super({id:t_.id,title:Fi("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:X6,precondition:Ke.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=x0(e);t==null||t.accessibleDiffViewerPrev()}};t_.id="editor.action.accessibleDiffViewer.prev";let jv=t_;function KP(o,e,t){return o.get(ys).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 x0(o){const t=o.get(ys).listDiffEditors(),i=xA();if(i)for(const n of t){const s=n.getContainerDomNode();if(ZP(s,i))return n}return null}function ZP(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}qn(jP);qn(K6);qn(Z6);Or.appendMenuItem(di.EditorTitle,{command:{id:new Z6().desc.id,title:S("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Ke.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Ke.has("isInDiffEditor")},order:11,group:"1_diff",when:Ke.and(q.diffEditorRenderSideBySideInlineBreakpointReached,Ke.has("isInDiffEditor"))});Or.appendMenuItem(di.EditorTitle,{command:{id:new K6().desc.id,title:S("showMoves","Show Moved Code Blocks"),icon:en.move,toggled:s3.create("config.diffEditor.experimental.showMoves",!0),precondition:Ke.has("isInDiffEditor")},order:10,group:"1_diff",when:Ke.has("isInDiffEditor")});qn(R1);for(const o of[{icon:en.arrowRight,key:q.diffEditorInlineMode.toNegated()},{icon:en.discard,key:q.diffEditorInlineMode}])Or.appendMenuItem(di.DiffEditorHunkToolbar,{command:{id:new R1().desc.id,title:S("revertHunk","Revert Block"),icon:o.icon},when:Ke.and(q.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Or.appendMenuItem(di.DiffEditorSelectionToolbar,{command:{id:new R1().desc.id,title:S("revertSelection","Revert Selection"),icon:o.icon},when:Ke.and(q.diffEditorModifiedWritable,o.key),order:5,group:"primary"});qn($P);qn(UP);qn(qP);qn(GP);Or.appendMenuItem(di.EditorTitle,{command:{id:jg.id,title:S("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Ke.has("isInDiffEditor")},order:10,group:"2_diff",when:Ke.and(q.accessibleDiffViewerVisible.negate(),Ke.has("isInDiffEditor"))});is.registerCommandAlias("editor.action.diffReview.next",jg.id);qn(jg);is.registerCommandAlias("editor.action.diffReview.prev",jv.id);qn(jv);var XP=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},YP=function(o,e){return function(t,i){e(t,i,o)}},N1;const xb=new Bn("selectionAnchorSet",!1);var zd;let jc=(zd=class{static get(e){return e.getContribution(N1.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=xb.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(qi.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new co().appendText(S("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),Hr(S("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(qi.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()}},N1=zd,zd.ID="editor.contrib.selectionAnchorController",zd);jc=N1=XP([YP(1,On)],jc);class QP extends wt{constructor(){super({id:"editor.action.setSelectionAnchor",label:S("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:q.editorTextFocus,primary:ks(2089,2080),weight:100}})}async run(e,t){var i;(i=jc.get(t))==null||i.setSelectionAnchor()}}class JP extends wt{constructor(){super({id:"editor.action.goToSelectionAnchor",label:S("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:xb})}async run(e,t){var i;(i=jc.get(t))==null||i.goToSelectionAnchor()}}class eT extends wt{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:S("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:xb,kbOpts:{kbExpr:q.editorTextFocus,primary:ks(2089,2089),weight:100}})}async run(e,t){var i;(i=jc.get(t))==null||i.selectFromAnchorToCursor()}}class tT extends wt{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:S("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:xb,kbOpts:{kbExpr:q.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=jc.get(t))==null||i.cancelSelectionAnchor()}}xn(jc.ID,jc,4);Re(QP);Re(JP);Re(eT);Re(tT);const iT=Di("editorOverviewRuler.bracketMatchForeground","#A0A0A0",S("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class nT extends wt{constructor(){super({id:"editor.action.jumpToBracket",label:S("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:q.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Tu.get(t))==null||i.jumpToBracket()}}class sT extends wt{constructor(){super({id:"editor.action.selectToBracket",label:S("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Fi("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=Tu.get(t))==null||s.selectToBracket(n)}}class oT extends wt{constructor(){super({id:"editor.action.removeBrackets",label:S("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:q.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Tu.get(t))==null||i.removeBrackets(this.id)}}class rT{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const sc=class sc extends Wt{static get(e){return e.getContribution(sc.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Ns(()=>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 qi(r.lineNumber,r.column,r.lineNumber,r.column):new qi(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(ee.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 qi(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 C=e[g];C.isEmpty()&&(s[r++]=C.getStartPosition())}s.length>1&&s.sort(Ii.compare);const a=[];let d=0,u=0;const f=n.length;for(let g=0,p=s.length;g<p;g++){const C=s[g];for(;u<f&&n[u].position.isBefore(C);)u++;if(u<f&&n[u].position.equals(C))a[d++]=n[u];else{let b=t.bracketPairs.matchBracket(C,20),E=sc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!b&&this._matchBrackets==="always"&&(b=t.bracketPairs.findEnclosingBrackets(C,20),E=sc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new rT(C,b,E)}}this._lastBracketsData=a,this._lastVersionId=i}};sc.ID="editor.contrib.bracketMatchingController",sc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Sn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:Is(iT),position:Va.Center}}),sc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Sn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Tu=sc;xn(Tu.ID,Tu,1);Re(sT);Re(nT);Re(oT);Or.appendMenuItem(di.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:S({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class aT{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 ee(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new ee(i,s,i,s),a)}else{const r=new ee(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new ee(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new qi(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new qi(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class Y6 extends wt{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 aT(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class lT extends Y6{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:S("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:q.writable})}}class cT extends Y6{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:S("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:q.writable})}}Re(lT);Re(cT);class dT extends wt{constructor(){super({id:"editor.action.transposeLetters",label:S("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:q.writable,kbOpts:{kbExpr:q.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():nC.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),g=nC.leftPosition(i,f),p=nC.leftPosition(i,g),C=i.getValueInRange(ee.fromPositions(p,g)),b=i.getValueInRange(ee.fromPositions(g,f)),E=ee.fromPositions(p,f);n.push(new Dp(E,b+C))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}Re(dT);const vb=(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 E9(o){return{asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function uT(o,e,t){const i={id:vb(),name:o,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class Q6{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 bl.some(this,([i,n])=>n.asFile())&&t.push("files"),e5($v(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 $v(e)}}function $v(o){return o.toLowerCase()}function J6(o,e){return e5($v(o),e.map($v))}function e5(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 mb=Object.freeze({create:o=>vA(o.map(e=>e.toString())).join(`\r
14
14
  `),split:o=>o.split(`\r
15
15
  `),parse:o=>mb.split(o).filter(e=>!e.startsWith("#"))}),Aa=class Aa{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+Aa.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Aa((this.value?[this.value,...e]:e).join(Aa.sep))}};Aa.sep=".",Aa.None=new Aa("@@none@@"),Aa.Empty=new Aa("");let os=Aa;const D8={EDITORS:"CodeEditors",FILES:"CodeFiles"};class hT{}const fT={DragAndDropContribution:"workbench.contributions.dragAndDrop"};ha.add(fT.DragAndDropContribution,new hT);const Dg=class Dg{constructor(){}static getInstance(){return Dg.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};Dg.INSTANCE=new Dg;let O1=Dg;function t5(o){const e=new Q6;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,E9(n))}else if(t.kind==="file"){const n=t.getAsFile();n&&e.append(i,gT(n))}}return e}function gT(o){const e=o.path?Kn.parse(o.path):void 0;return uT(o.name,e,async()=>new Uint8Array(await o.arrayBuffer()))}const pT=Object.freeze([D8.EDITORS,D8.FILES,s1.RESOURCES,s1.INTERNAL_URI_LIST]);function i5(o,e=!1){const t=t5(o),i=t.get(s1.INTERNAL_URI_LIST);if(i)t.replace(Qs.uriList,i);else if(e||!t.has(Qs.uriList)){const n=[];for(const s of o.items){const r=s.getAsFile();if(r){const a=r.path;try{a?n.push(Kn.file(a).toString()):n.push(Kn.parse(r.name,!0).toString())}catch{}}}n.length&&t.replace(Qs.uriList,E9(mb.create(n)))}for(const n of pT)t.delete(n);return t}var y9=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},$g=function(o,e){return function(t,i){e(t,i,o)}};class w9{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 Ag=class Ag extends w9{constructor(){super(...arguments),this.kind=Ag.kind,this.dropMimeTypes=[Qs.text],this.pasteMimeTypes=[Qs.text]}async getEdit(e,t){const i=e.get(Qs.text);if(!i||e.has(Qs.uriList))return;const n=await i.asString();return{handledMimeType:Qs.text,title:S("text.label","Insert Plain Text"),insertText:n,kind:this.kind}}};Ag.id="text",Ag.kind=new os("text.plain");let Mu=Ag;class n5 extends w9{constructor(){super(...arguments),this.kind=new os("uri.absolute"),this.dropMimeTypes=[Qs.uriList],this.pasteMimeTypes=[Qs.uriList]}async getEdit(e,t){const i=await s5(e);if(!i.length||t.isCancellationRequested)return;let n=0;const s=i.map(({uri:a,originalText:d})=>a.scheme===wo.file?a.fsPath:(n++,d)).join(" ");let r;return n>0?r=i.length>1?S("defaultDropProvider.uriList.uris","Insert Uris"):S("defaultDropProvider.uriList.uri","Insert Uri"):r=i.length>1?S("defaultDropProvider.uriList.paths","Insert Paths"):S("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:Qs.uriList,insertText:s,title:r,kind:this.kind}}}let Uv=class extends w9{constructor(e){super(),this._workspaceContextService=e,this.kind=new os("uri.relative"),this.dropMimeTypes=[Qs.uriList],this.pasteMimeTypes=[Qs.uriList]}async getEdit(e,t){const i=await s5(e);if(!i.length||t.isCancellationRequested)return;const n=Dl(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?o3(r.uri,s):void 0}));if(n.length)return{handledMimeType:Qs.uriList,insertText:n.join(" "),title:i.length>1?S("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):S("defaultDropProvider.uriList.relativePath","Insert Relative Path"),kind:this.kind}}};Uv=y9([$g(0,Pf)],Uv);class xT{constructor(){this.kind=new os("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Qs.text}]}async provideDocumentPasteEdits(e,t,i,n,s){var d;if(n.triggerKind!==o1.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:S("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}}}async function s5(o){const e=o.get(Qs.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const n of mb.parse(t))try{i.push({uri:Kn.parse(n),originalText:n})}catch{}return i}let H1=class extends Wt{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new Mu)),this._register(e.documentDropEditProvider.register("*",new n5)),this._register(e.documentDropEditProvider.register("*",new Uv(t)))}};H1=y9([$g(0,Pi),$g(1,Pf)],H1);let W1=class extends Wt{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new Mu)),this._register(e.documentPasteEditProvider.register("*",new n5)),this._register(e.documentPasteEditProvider.register("*",new Uv(t))),this._register(e.documentPasteEditProvider.register("*",new xT))}};W1=y9([$g(0,Pi),$g(1,Pf)],W1);const Er=class Er{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=Er._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(Er.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(Er.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(Er.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(Er.isVariableCharacter(i)||Er.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 Er._table[i]>"u"&&!Er.isDigitCharacter(i)&&!Er.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}};Er._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let z1=Er;class v0{constructor(){this._children=[]}appendChild(e){return e instanceof Ro&&this._children[this._children.length-1]instanceof Ro?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 Gp)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}let Ro=class o5 extends v0{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new o5(this.value)}};class r5 extends v0{}class gr extends r5{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 m0?this._children[0]:void 0}clone(){const e=new gr(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class m0 extends v0{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Ro&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new m0;return this.options.forEach(e.appendChild,e),e}}class S9 extends v0{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 ea&&!!s.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof ea){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new S9;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 ea extends v0{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 ea(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Ug extends r5{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 Ro(t)],!0):!1}clone(){const e=new Ug(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function A8(o,e){const t=[...o];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class Gp extends v0{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof gr&&(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 A8([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof gr&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof Ug&&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 Gp;return this._children=this.children.map(t=>t.clone()),e}walk(e){A8(this.children,e)}}class Ru{constructor(){this._scanner=new z1,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 Gp;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 gr&&(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 gr(d.index);g.transform=d.transform;for(const p of f){const C=p.clone();g.appendChild(C),C instanceof gr&&n.has(C.index)&&!u.has(C.index)&&(u.add(C.index),r(C,u),u.delete(C.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 gr(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 Ro(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 gr(Number(t)):new Ug(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 gr(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Ro("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else if(s.index>0&&this._accept(7)){const r=new m0;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 Ro(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 Ug(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Ro("${"+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 S9;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 Ro(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 ea(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new ea(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 ea(Number(n),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return e.appendChild(new ea(Number(n),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return e.appendChild(new ea(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 ea(Number(n),void 0,s,r)),!0}}else{const s=this._until(4);if(s)return e.appendChild(new ea(Number(n),void 0,void 0,s)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Ro(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function a5(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 r3(o,{range:s,text:typeof t.insertText=="string"?Ru.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...((n=t.additionalEdit)==null?void 0:n.edits)??[]]}}function l5(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 vT=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},mT=function(o,e){return function(t,i){e(t,i,o)}};const _T=Sn.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:mA,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),i_=class i_ extends Wt{constructor(e,t,i,n,s){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=s,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(n),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=Si(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=Si("span.icon");this.domNode.append(t),t.classList.add(...zn.asClassNameArray(en.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(Nn(this.domNode,cs.CLICK,n=>{this.delegate.cancel()}))}getId(){return i_.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)}};i_.baseId="editor.widget.inlineProgressWidget";let V1=i_,qv=class extends Wt{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new nr),this._currentWidget=this._register(new nr),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=Fg(()=>{const a=ee.fromPositions(e);this._currentDecorations.set([{range:a,options:_T}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(V1,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()}};qv=vT([mT(2,rn)],qv);var bT=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},k8=function(o,e){return function(t,i){e(t,i,o)}},lv,yc;let Oo=(yc=class{static get(e){return e.getContribution(lv.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new nr,this._messageListeners=new Ot,this._mouseOverMessage=!1,this._editor=e,this._visible=lv.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){Hr(Yx(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=Yx(e)?a3(e,{actionHandler:{callback:n=>{this.closeMessage(),l3(this._openerService,n,Yx(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new B8(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(Rs.debounce(this._editor.onDidBlurEditorText,(n,s)=>s,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&c3(xA(),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(Nn(this._messageWidget.value.getDomNode(),cs.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(Nn(this._messageWidget.value.getDomNode(),cs.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 ee(t.lineNumber-3,1,n.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(B8.fadeOut(this._messageWidget.value))}},lv=yc,yc.ID="editor.contrib.messageController",yc.MESSAGE_VISIBLE=new Bn("messageVisible",!1,S("messageVisible","Whether the editor is currently showing an inline message")),yc);Oo=lv=bT([k8(1,On),k8(2,fa)],Oo);const CT=Fo.bindToContribution(Oo.get);Oi(new CT({id:"leaveEditorMessage",precondition:Oo.MESSAGE_VISIBLE,handler:o=>o.closeMessage(),kbOpts:{weight:130,primary:9}}));let B8=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)}};xn(Oo.ID,Oo,4);function mC(o,e){return e&&(o.stack||o.stacktrace)?S("stackTrace.format","{0}: {1}",L8(o),F8(o.stack)||F8(o.stacktrace)):L8(o)}function F8(o){return Array.isArray(o)?o.join(`
16
16
  `):o}function L8(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"?S("nodeExceptionMessage","A system error occurred ({0})",o.message):o.message||S("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function Gv(o=null,e=!1){if(!o)return S("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(o)){const t=Dl(o),i=Gv(t[0],e);return t.length>1?S("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(_A(o))return o;if(o.detail){const t=o.detail;if(t.error)return mC(t.error,e);if(t.exception)return mC(t.exception,e)}return o.stack?mC(o,e):o.message?o.message:S("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var c5=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},hf=function(o,e){return function(t,i){e(t,i,o)}},j1,Vd;let $1=(Vd=class extends Wt{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(ss(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(ss((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(g=>{s.containsPosition(g.position)||this.dispose()})),this._register(Rs.runAndSubscribe(f.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var t;const e=(t=this._keybindingService.lookupKeybinding(this.showCommand.id))==null?void 0:t.getLabel();this.button.element.title=this.showCommand.label+(e?` (${e})`:"")}create(){this.domNode=Si(".post-edit-widget"),this.button=this._register(new d3(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(Nn(this.domNode,cs.CLICK,()=>this.showSelector()))}getId(){return j1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=Do(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>u3({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}},j1=Vd,Vd.baseId="editor.widget.postEditWidget",Vd);$1=j1=c5([hf(7,c0),hf(8,On),hf(9,Bs)],$1);let Kv=class extends Wt{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 nr),this._register(Rs.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 w=>{const A=this._editor.getModel();A&&(await A.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:w,allEdits:t.allEdits},i,n,s))},u=(w,A)=>{Kc(w)||(this._notificationService.error(A),i&&this.show(e[0],t,d))};let f;try{f=await n(a,s)}catch(w){return u(w,S("resolveError",`Error resolving edit '{0}':
@@ -231,4 +231,4 @@ declare const she: {
231
231
  `):Te:"",!0),x(b,ue("max_connections"),!0),x(E,ue("max_inflight_messages"),!0),x(w,ue("max_queued_messages"),!0),x(A,ue("max_packet_size"),!0),x(I,ue("message_size_limit"),!0),x(M,ue("max_keepalive"),!0),x(R,ue("persistent_client_expiration"),!0),x(P,ue("retain_available"),!0),x(V,ue("set_tcp_nodelay"),!0),x($,ue("connection_messages"),!0),x(ce,De("log_dest"),!0),x(me,De("log_type"),!0),x(i,"")}catch(Te){x(i,Te.message??"Failed to load config",!0)}}async function ve(){if(l(t)){x(n,!0),x(s,""),x(r,!1);try{let ye=function(hi,Xt){Xt!==""?Te[hi]=Xt:delete Te[hi]};const Te={...l(t).managed};ye("persistence",l(f)),ye("persistence_location",l(g)),ye("sys_interval",l(p));const Gt=l(C).split(`
232
232
  `).map(hi=>hi.trim()).filter(Boolean);Gt.length>0?Te.include_dir=Gt.length===1?Gt[0]:Gt:delete Te.include_dir,ye("max_connections",l(b)),ye("max_inflight_messages",l(E)),ye("max_queued_messages",l(w)),ye("max_packet_size",l(A)),ye("message_size_limit",l(I)),ye("max_keepalive",l(M)),ye("persistent_client_expiration",l(R)),ye("retain_available",l(P)),ye("set_tcp_nodelay",l(V)),ye("connection_messages",l($)),l(ce).size>0?Te.log_dest=l(ce).size===1?[...l(ce)][0]:[...l(ce)]:delete Te.log_dest,l(me).size>0?Te.log_type=l(me).size===1?[...l(me)][0]:[...l(me)]:delete Te.log_type,await TF({listeners:l(t).listeners,managed:Te,passthrough:l(t).passthrough,checksum:l(u)}),x(r,!0),setTimeout(()=>x(r,!1),3e3),await Pe()}catch(Te){x(s,Te.message??"Save failed",!0)}finally{x(n,!1)}}}async function Oe(){x(a,!0),x(d,"");try{const Te=await Ob();x(d,Te.stderr||Te.stdout||"Reloaded",!0)}catch(Te){x(d,"Error: "+(Te.message??"reload failed"))}finally{x(a,!1)}}var ze=bee(),_e=m(ze),lt=v(m(_e),2),Pt=m(lt),et=m(Pt),Et=v(Pt,2),Se=m(Et),He=v(_e,2);{var ut=Te=>{var ye=oA(),Gt=m(ye);z(()=>O(Gt,l(i))),D(Te,ye)};H(He,Te=>{l(i)&&Te(ut)})}var At=v(He,2);{var ht=Te=>{var ye=oA(),Gt=m(ye);z(()=>O(Gt,l(s))),D(Te,ye)};H(At,Te=>{l(s)&&Te(ht)})}var Bt=v(At,2);{var xi=Te=>{var ye=xee();D(Te,ye)};H(Bt,Te=>{l(r)&&Te(xi)})}var ui=v(Bt,2);{var Ci=Te=>{var ye=vee(),Gt=m(ye);z(()=>O(Gt,l(d))),D(Te,ye)};H(ui,Te=>{l(d)&&Te(Ci)})}var xt=v(ui,2);{var ci=Te=>{var ye=_ee(),Gt=bt(ye),hi=v(m(Gt),2),Xt=m(hi),Hi=m(Xt),Zi=v(m(Hi),2),pi=m(Zi);pi.value=pi.__value="";var fn=v(pi);fn.value=fn.__value="true";var cn=v(fn);cn.value=cn.__value="false";var an=v(Xt,2),vn=m(an),Ct=v(m(vn),2),Zt=v(an,2),Ti=m(Zt),Vi=v(m(Ti),2),Li=v(hi,2),mn=m(Li),gn=v(m(mn),2);dn(gn,"rows",3);var Qi=v(Gt,2),Xe=v(m(Qi),2),ii=v(m(Xe),2);si(ii,21,()=>Q,ji,(Ue,qe)=>{var It=t1(),gt=m(It),tt=v(gt,3);z(vt=>{Qo(gt,vt),O(tt,` ${l(qe)??""}`)},[()=>l(ce).has(l(qe))]),j("change",gt,()=>{x(ce,se(l(ce),l(qe)),!0)}),D(Ue,It)});var ai=v(Xe,2),Ei=v(m(ai),2),zi=m(Ei),Gi=v(m(zi),2);si(Gi,17,()=>re,ji,(Ue,qe)=>{var It=t1(),gt=m(It),tt=v(gt,3);z(vt=>{Qo(gt,vt),O(tt,` ${l(qe)??""}`)},[()=>l(me).has(l(qe))]),j("change",gt,()=>{x(me,se(l(me),l(qe)),!0)}),D(Ue,It)});var Ui=v(zi,2),K=v(m(Ui),2);si(K,17,()=>he,ji,(Ue,qe)=>{var It=t1(),gt=m(It),tt=v(gt,3);z(vt=>{Qo(gt,vt),O(tt,` ${l(qe)??""}`)},[()=>l(me).has(l(qe))]),j("change",gt,()=>{x(me,se(l(me),l(qe)),!0)}),D(Ue,It)});var Ae=v(Ui,2),it=m(Ae);si(it,17,()=>Z,ji,(Ue,qe)=>{var It=mee(),gt=m(It),tt=v(gt,4),vt=m(tt);z(Dt=>{Qo(gt,Dt),O(vt,l(qe))},[()=>l(me).has(l(qe))]),j("change",gt,()=>{x(me,se(l(me),l(qe)),!0)}),D(Ue,It)});var Ze=v(Qi,2),zt=v(m(Ze),2),ei=m(zt),St=m(ei),Qe=v(m(St),2),Y=v(ei,2),Me=m(Y),le=v(m(Me),2),ge=v(Y,2),Yt=m(ge),oi=v(m(Yt),2),_i=v(ge,2),Ai=m(_i),Wi=v(m(Ai),2),te=v(Ze,2),ot=v(m(te),2),be=m(ot),We=m(be),yt=v(m(We),2),Lt=v(be,2),yi=m(Lt),ti=v(m(yi),2),xe=v(te,2),Ve=v(m(xe),2),Je=m(Ve),Le=m(Je),dt=v(m(Le),2),ft=v(Je,2),Kt=m(ft),U=v(m(Kt),2),T=m(U);T.value=T.__value="";var W=v(T);W.value=W.__value="true";var J=v(W);J.value=J.__value="false";var ne=v(xe,2),ae=v(m(ne),2),oe=m(ae),ke=m(oe),$e=v(m(ke),2),Ee=m($e);Ee.value=Ee.__value="";var Ie=v(Ee);Ie.value=Ie.__value="true";var Ne=v(Ie);Ne.value=Ne.__value="false";var rt=v(oe,2),ni=m(rt),X=v(m(ni),2),de=m(X);de.value=de.__value="";var Ge=v(de);Ge.value=Ge.__value="true";var Tt=v(Ge);Tt.value=Tt.__value="false",Ps(Zi,()=>l(f),Ue=>x(f,Ue)),Rt(Ct,()=>l(g),Ue=>x(g,Ue)),Rt(Vi,()=>l(p),Ue=>x(p,Ue)),Rt(gn,()=>l(C),Ue=>x(C,Ue)),Rt(Qe,()=>l(b),Ue=>x(b,Ue)),Rt(le,()=>l(M),Ue=>x(M,Ue)),Rt(oi,()=>l(E),Ue=>x(E,Ue)),Rt(Wi,()=>l(w),Ue=>x(w,Ue)),Rt(yt,()=>l(A),Ue=>x(A,Ue)),Rt(ti,()=>l(I),Ue=>x(I,Ue)),Rt(dt,()=>l(R),Ue=>x(R,Ue)),Ps(U,()=>l(P),Ue=>x(P,Ue)),Ps($e,()=>l(V),Ue=>x(V,Ue)),Ps(X,()=>l($),Ue=>x($,Ue)),D(Te,ye)};H(xt,Te=>{l(t)&&Te(ci)})}z(()=>{Pt.disabled=l(n),O(et,l(n)?"Saving…":"Save"),Et.disabled=l(a),O(Se,l(a)?"Reloading…":"Apply & Reload")}),j("click",Pt,ve),j("click",Et,Oe),D(o,ze),Ms()}Gs(["click","change"]);var rl=F('<div class="err svelte-9auejo"> </div>'),Eee=F('<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>'),yee=F('<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>'),wee=F('<div class="empty svelte-9auejo">No trusted CA certs. Add one to enable client certificate authentication.</div>'),See=F('<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>'),Dee=F('<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>'),Aee=F('<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>'),rA=F('<button class="btn-primary svelte-9auejo"> </button>'),kee=F('<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>'),Bee=F('<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),Fee=F('<div class="ok svelte-9auejo">✓ Certificate installed.</div>'),Lee=F('<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),Iee=F('<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>'),Pee=F('<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),Tee=F('<span class="file-name mono small svelte-9auejo"> </span>'),Mee=F('<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),Ree=F('<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>'),i1=F("<option></option>"),Nee=F('<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>'),Oee=F('<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),Hee=F('<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),Wee=F('<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>'),zee=F('<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 Vee(o,e){Ts(e,!0);let t=B(null),i=B(ki([])),n=B(""),s=B(""),r=B(!1),a=B(""),d=B(""),u=B(365),f=B(!1),g=B(""),p=B(null),C=B(!1),b=B(""),E=B(""),w=B(!1),A=B(""),I=B(""),M=B(""),R=B(!1),P=B(""),V=B(!1),$=B(!1),Q=B("pem"),re=B(""),he=B(""),Z=B(""),ce=B(""),me=B(""),se=B(!1),ue=B(!1),De=B(""),Pe=B(!1),ve=B(""),Oe=B(""),ze=B(!1),_e=B(""),lt=B(ki([])),Pt=B(ki([])),et=B(!1),Et=B("pem"),Se=B(""),He=B(!1),ut=B(""),At=B(""),ht=B(ki([])),Bt=B(!1),xi=B("");async function ui(){try{const[be,We]=await Promise.allSettled([QU(),tq()]);be.status==="fulfilled"&&x(t,be.value.server,!0),We.status==="fulfilled"&&x(i,We.value.certs,!0),x(n,"")}catch(be){x(n,be.message,!0)}}$s(()=>{ui()});async function Ci(){x(g,""),x(f,!0),x(p,null);try{const be=l(d).split(",").map(yt=>yt.trim()).filter(Boolean),We=await JU({cn:l(a),san:be,days:l(u)});x(p,{fingerprint:We.fingerprint,expires:We.expires},!0),await ui()}catch(be){x(g,be.message,!0)}finally{x(f,!1)}}async function xt(){x(A,""),x(w,!0),x(I,"");try{const be=l(E).split(",").map(yt=>yt.trim()).filter(Boolean),We=await eq({cn:l(b),san:be});x(I,We.csrPem,!0)}catch(be){x(A,be.message,!0)}finally{x(w,!1)}}async function ci(){x(P,""),x(R,!0),x(V,!1);try{if(!l(M).trim())throw new Error("Paste the signed certificate PEM");await YC({cert:l(M)}),x(V,!0),await ui()}catch(be){x(P,be.message,!0)}finally{x(R,!1)}}function Te(){navigator.clipboard.writeText(l(I)).catch(()=>{})}function ye(be){var Lt;const We=(Lt=be.target.files)==null?void 0:Lt[0];if(!We)return;x(ce,We.name,!0);const yt=new FileReader;yt.onload=()=>{const yi=yt.result;x(Z,btoa(String.fromCharCode(...new Uint8Array(yi))),!0)},yt.readAsArrayBuffer(We)}async function Gt(){x(De,""),x(ue,!0);try{if(l(Q)==="p12"){if(!l(Z))throw new Error("Select a .p12 / .pfx file");await YC({p12base64:l(Z),passphrase:l(me)})}else{if(!l(re).trim())throw new Error("Certificate PEM is required");await YC({cert:l(re),key:l(he)||void 0})}x($,!1),await ui()}catch(be){x(De,be.message,!0)}finally{x(ue,!1)}}function hi(be){let We;return yt=>{const Lt=yt.target.value;clearTimeout(We),We=setTimeout(async()=>{if(!Lt.startsWith("/")||Lt.length<2){be([]);return}try{be((await sq(Lt)).suggestions)}catch{be([])}},280)}}const Xt=hi(be=>{x(lt,be,!0)}),Hi=hi(be=>{x(Pt,be,!0)}),Zi=hi(be=>{x(ht,be,!0)});async function pi(){x(_e,""),x(ze,!0);try{await oq({certPath:l(ve),keyPath:l(Oe)}),x(Pe,!1),await ui()}catch(be){x(_e,be.message,!0)}finally{x(ze,!1)}}async function fn(){x(ut,""),x(He,!0);try{await iq(l(Se)),x(Se,""),x(et,!1),await ui()}catch(be){x(ut,be.message,!0)}finally{x(He,!1)}}async function cn(){x(xi,""),x(Bt,!0);try{await rq(l(At)),x(At,""),x(et,!1),await ui()}catch(be){x(xi,be.message,!0)}finally{x(Bt,!1)}}async function an(be){if(confirm("Remove this trusted CA cert?"))try{await nq(be),await ui()}catch(We){x(s,We.message,!0)}}function vn(be){const We=new Date(be).getTime()-Date.now();return We<0?"expired":We<30*864e5?"expiring":""}function Ct(be){return new Date(be).toLocaleDateString()}var Zt=zee(),Ti=bt(Zt),Vi=m(Ti),Li=m(Vi),mn=v(Vi,2);{var gn=be=>{var We=rl(),yt=m(We);z(()=>O(yt,l(n))),D(be,We)};H(mn,be=>{l(n)&&be(gn)})}var Qi=v(mn,2);{var Xe=be=>{var We=rl(),yt=m(We);z(()=>O(yt,l(s))),D(be,We)};H(Qi,be=>{l(s)&&be(Xe)})}var ii=v(Qi,2),ai=m(ii),Ei=v(m(ai),2),zi=v(Ei,2),Gi=v(zi,2),Ui=v(Gi,2),K=v(ai,2);{var Ae=be=>{var We=Eee(),yt=m(We),Lt=v(m(yt)),yi=m(Lt),ti=v(Lt,3),xe=m(ti),Ve=v(ti,3),Je=m(Ve);z((Le,dt)=>{O(yi,l(t).cn),O(xe,l(t).fingerprint),kt(Ve,1,Le,"svelte-9auejo"),O(Je,dt)},[()=>fg(vn(l(t).expires)),()=>Ct(l(t).expires)]),D(be,We)},it=be=>{var We=yee();D(be,We)};H(K,be=>{l(t)?be(Ae):be(it,-1)})}var Ze=v(ii,2),zt=m(Ze),ei=v(m(zt),2),St=v(zt,2);{var Qe=be=>{var We=wee();D(be,We)},Y=be=>{var We=Dee(),yt=v(m(We));si(yt,21,()=>l(i),ji,(Lt,yi)=>{var ti=See(),xe=m(ti),Ve=m(xe),Je=v(xe),Le=m(Je),dt=v(Je),ft=m(dt),Kt=v(dt),U=m(Kt);z((T,W,J)=>{O(Ve,l(yi).cn),O(Le,`${T??""}…`),kt(dt,1,W,"svelte-9auejo"),O(ft,J)},[()=>l(yi).fingerprint.slice(0,29),()=>fg(vn(l(yi).expires)),()=>Ct(l(yi).expires)]),j("click",U,()=>an(l(yi).fingerprint)),D(Lt,ti)}),D(be,We)};H(St,be=>{l(i).length===0?be(Qe):be(Y,-1)})}var Me=v(Ti,2);{var le=be=>{var We=kee(),yt=m(We),Lt=v(m(yt),2),yi=v(m(Lt)),ti=v(Lt,2),xe=v(m(ti)),Ve=v(ti,2),Je=v(m(Ve)),Le=v(Ve,2);{var dt=ne=>{var ae=rl(),oe=m(ae);z(()=>O(oe,l(g))),D(ne,ae)};H(Le,ne=>{l(g)&&ne(dt)})}var ft=v(Le,2);{var Kt=ne=>{var ae=Aee(),oe=v(m(ae),2),ke=v(m(oe)),$e=m(ke),Ee=v(ke,2),Ie=m(Ee);z(Ne=>{O($e,l(p).fingerprint),O(Ie,Ne)},[()=>Ct(l(p).expires)]),D(ne,ae)};H(ft,ne=>{l(p)&&ne(Kt)})}var U=v(ft,2),T=m(U),W=v(T,2);{var J=ne=>{var ae=rA(),oe=m(ae);z(()=>{ae.disabled=l(f),O(oe,l(f)?"Generating…":"Generate")}),j("click",ae,Ci),D(ne,ae)};H(W,ne=>{l(p)||ne(J)})}Rt(yi,()=>l(a),ne=>x(a,ne)),Rt(xe,()=>l(d),ne=>x(d,ne)),Rt(Je,()=>l(u),ne=>x(u,ne)),j("click",T,()=>x(r,!1)),D(be,We)};H(Me,be=>{l(r)&&be(le)})}var ge=v(Me,2);{var Yt=be=>{var We=Iee(),yt=m(We),Lt=v(m(yt),2);{var yi=xe=>{var Ve=Bee(),Je=bt(Ve),Le=v(m(Je)),dt=v(Je,2),ft=v(m(dt)),Kt=v(dt,4);{var U=ae=>{var oe=rl(),ke=m(oe);z(()=>O(ke,l(A))),D(ae,oe)};H(Kt,ae=>{l(A)&&ae(U)})}var T=v(Kt,2),W=m(T),J=v(W,2),ne=m(J);z(()=>{J.disabled=l(w),O(ne,l(w)?"Generating…":"Generate key + CSR")}),Rt(Le,()=>l(b),ae=>x(b,ae)),Rt(ft,()=>l(E),ae=>x(E,ae)),j("click",W,()=>x(C,!1)),j("click",J,xt),D(xe,Ve)},ti=xe=>{var Ve=Lee(),Je=v(bt(Ve),2),Le=v(m(Je)),dt=v(Je,2),ft=m(dt),Kt=v(ft,2),U=v(dt,4),T=v(m(U)),W=v(U,2);{var J=Ie=>{var Ne=rl(),rt=m(Ne);z(()=>O(rt,l(P))),D(Ie,Ne)};H(W,Ie=>{l(P)&&Ie(J)})}var ne=v(W,2);{var ae=Ie=>{var Ne=Fee();D(Ie,Ne)};H(ne,Ie=>{l(V)&&Ie(ae)})}var oe=v(ne,2),ke=m(oe),$e=v(ke,2);{var Ee=Ie=>{var Ne=rA(),rt=m(Ne);z(ni=>{Ne.disabled=ni,O(rt,l(R)?"Uploading…":"Upload signed cert")},[()=>l(R)||!l(M).trim()]),j("click",Ne,ci),D(Ie,Ne)};H($e,Ie=>{l(V)||Ie(Ee)})}z(Ie=>{T1(Le,l(I)),dn(Kt,"href",`data:application/pkcs10;charset=utf-8,${Ie??""}`)},[()=>encodeURIComponent(l(I))]),j("click",ft,Te),Rt(T,()=>l(M),Ie=>x(M,Ie)),j("click",ke,()=>x(C,!1)),D(xe,Ve)};H(Lt,xe=>{l(I)?xe(ti,-1):xe(yi)})}D(be,We)};H(ge,be=>{l(C)&&be(Yt)})}var oi=v(ge,2);{var _i=be=>{var We=Ree(),yt=m(We),Lt=v(m(yt),2),yi=m(Lt);let ti;var xe=v(yi,2);let Ve;var Je=v(Lt,2);{var Le=ne=>{var ae=Pee(),oe=bt(ae),ke=v(m(oe)),$e=v(oe,2),Ee=v(m($e));Rt(ke,()=>l(re),Ie=>x(re,Ie)),Rt(Ee,()=>l(he),Ie=>x(he,Ie)),D(ne,ae)},dt=ne=>{var ae=Mee(),oe=bt(ae),ke=v(m(oe)),$e=m(ke),Ee=v($e,2);{var Ie=Ge=>{var Tt=Tee(),Ue=m(Tt);z(()=>O(Ue,l(ce))),D(Ge,Tt)};H(Ee,Ge=>{l(ce)&&Ge(Ie)})}var Ne=v(oe,2),rt=v(m(Ne)),ni=m(rt),X=v(ni,2),de=m(X);z(()=>{dn(ni,"type",l(se)?"text":"password"),O(de,l(se)?"Hide":"Show")}),j("change",$e,ye),Rt(ni,()=>l(me),Ge=>x(me,Ge)),j("click",X,()=>x(se,!l(se))),D(ne,ae)};H(Je,ne=>{l(Q)==="pem"?ne(Le):ne(dt,-1)})}var ft=v(Je,2);{var Kt=ne=>{var ae=rl(),oe=m(ae);z(()=>O(oe,l(De))),D(ne,ae)};H(ft,ne=>{l(De)&&ne(Kt)})}var U=v(ft,2),T=m(U),W=v(T,2),J=m(W);z(()=>{ti=kt(yi,1,"svelte-9auejo",null,ti,{active:l(Q)==="pem"}),Ve=kt(xe,1,"svelte-9auejo",null,Ve,{active:l(Q)==="p12"}),W.disabled=l(ue),O(J,l(ue)?"Importing…":"Import")}),j("click",yi,()=>x(Q,"pem")),j("click",xe,()=>x(Q,"p12")),j("click",T,()=>x($,!1)),j("click",W,Gt),D(be,We)};H(oi,be=>{l($)&&be(_i)})}var Ai=v(oi,2);{var Wi=be=>{var We=Nee(),yt=m(We),Lt=v(m(yt),4),yi=v(m(Lt)),ti=v(yi,2);si(ti,21,()=>l(lt),ji,(W,J)=>{var ne=i1(),ae={};z(()=>{ae!==(ae=l(J))&&(ne.value=(ne.__value=l(J))??"")}),D(W,ne)});var xe=v(Lt,2),Ve=v(m(xe)),Je=v(Ve,2);si(Je,21,()=>l(Pt),ji,(W,J)=>{var ne=i1(),ae={};z(()=>{ae!==(ae=l(J))&&(ne.value=(ne.__value=l(J))??"")}),D(W,ne)});var Le=v(xe,2);{var dt=W=>{var J=rl(),ne=m(J);z(()=>O(ne,l(_e))),D(W,J)};H(Le,W=>{l(_e)&&W(dt)})}var ft=v(Le,2),Kt=m(ft),U=v(Kt,2),T=m(U);z(W=>{U.disabled=W,O(T,l(ze)?"Installing…":"Install")},[()=>l(ze)||!l(ve).trim()||!l(Oe).trim()]),j("input",yi,Xt),Rt(yi,()=>l(ve),W=>x(ve,W)),j("input",Ve,Hi),Rt(Ve,()=>l(Oe),W=>x(Oe,W)),j("click",Kt,()=>x(Pe,!1)),j("click",U,pi),D(be,We)};H(Ai,be=>{l(Pe)&&be(Wi)})}var te=v(Ai,2);{var ot=be=>{var We=Wee(),yt=m(We),Lt=v(m(yt),2),yi=m(Lt);let ti;var xe=v(yi,2);let Ve;var Je=v(Lt,2);{var Le=ft=>{var Kt=Oee(),U=bt(Kt),T=v(m(U)),W=v(U,2);{var J=$e=>{var Ee=rl(),Ie=m(Ee);z(()=>O(Ie,l(ut))),D($e,Ee)};H(W,$e=>{l(ut)&&$e(J)})}var ne=v(W,2),ae=m(ne),oe=v(ae,2),ke=m(oe);z($e=>{oe.disabled=$e,O(ke,l(He)?"Adding…":"Add CA cert")},[()=>l(He)||!l(Se).trim()]),Rt(T,()=>l(Se),$e=>x(Se,$e)),j("click",ae,()=>x(et,!1)),j("click",oe,fn),D(ft,Kt)},dt=ft=>{var Kt=Hee(),U=v(bt(Kt),2),T=v(m(U)),W=v(T,2);si(W,21,()=>l(ht),ji,(Ee,Ie)=>{var Ne=i1(),rt={};z(()=>{rt!==(rt=l(Ie))&&(Ne.value=(Ne.__value=l(Ie))??"")}),D(Ee,Ne)});var J=v(U,2);{var ne=Ee=>{var Ie=rl(),Ne=m(Ie);z(()=>O(Ne,l(xi))),D(Ee,Ie)};H(J,Ee=>{l(xi)&&Ee(ne)})}var ae=v(J,2),oe=m(ae),ke=v(oe,2),$e=m(ke);z(Ee=>{ke.disabled=Ee,O($e,l(Bt)?"Adding…":"Add CA cert")},[()=>l(Bt)||!l(At).trim()]),j("input",T,Zi),Rt(T,()=>l(At),Ee=>x(At,Ee)),j("click",oe,()=>x(et,!1)),j("click",ke,cn),D(ft,Kt)};H(Je,ft=>{l(Et)==="pem"?ft(Le):ft(dt,-1)})}z(()=>{ti=kt(yi,1,"svelte-9auejo",null,ti,{active:l(Et)==="pem"}),Ve=kt(xe,1,"svelte-9auejo",null,Ve,{active:l(Et)==="path"})}),j("click",yi,()=>x(Et,"pem")),j("click",xe,()=>x(Et,"path")),D(be,We)};H(te,be=>{l(et)&&be(ot)})}j("click",Li,ui),j("click",Ei,()=>{x(r,!0),x(g,""),x(p,null)}),j("click",zi,()=>{x(C,!0),x(A,""),x(I,""),x(M,""),x(V,!1),x(P,"")}),j("click",Gi,()=>{x($,!0),x(De,""),x(Q,"pem"),x(re,""),x(he,""),x(Z,""),x(ce,""),x(me,""),x(se,!1)}),j("click",Ui,()=>{x(Pe,!0),x(_e,""),x(ve,""),x(Oe,""),x(lt,[],!0),x(Pt,[],!0)}),j("click",ei,()=>{x(et,!0),x(ut,""),x(Se,""),x(Et,"pem"),x(xi,""),x(At,""),x(ht,[],!0)}),D(o,Zt),Ms()}Gs(["click","change","input"]);var Zx=F('<div class="err svelte-17yczfe"> </div>'),jee=F('<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>'),$ee=F('<div class="checking svelte-17yczfe">Checking…</div>'),Uee=F('<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>'),qee=F('<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>'),Gee=F('<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),Kee=F('<div class="row svelte-17yczfe"><button class="svelte-17yczfe"> </button></div>'),Zee=F("<span> </span>"),Xee=F('<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),Yee=F('<div class="ok svelte-17yczfe">Saved.</div>'),Qee=F('<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 Jee(o,e){Ts(e,!0);let t=B(ki({})),i=B(""),n=B(!1),s=B(!1),r=B(""),a=B("~/.she/ssh/broker_id_ed25519"),d=B("local"),u=B(null),f=B(!1),g=B(""),p=B(""),C=B(!1),b=B(""),E=B(!1),w=B(""),A=B(ki({}));$s(async()=>{try{const[ht,Bt,xi]=await Promise.all([Rl(),Nb(),fetch("/she/broker/ssh/pubkey").then(Ci=>Ci.json()).catch(()=>({publicKey:null}))]);x(A,ht,!0),Bt.sshKeyDefault&&x(a,Bt.sshKeyDefault,!0);const ui=l(A).broker??{};x(t,ui.ssh??{},!0),l(t).port||(l(t).port=22),l(t).identityFile||(l(t).identityFile=l(a)),xi.publicKey&&x(p,xi.publicKey,!0),x(d,l(t).host?"ssh":"local",!0),l(d)==="local"&&I()}catch(ht){x(i,ht.message,!0)}});async function I(){x(f,!0),x(g,"");try{x(u,await mU(),!0)}catch(ht){x(g,ht.message??"Check failed",!0)}finally{x(f,!1)}}async function M(){x(n,!0),x(r,""),x(s,!1);try{const ht=l(A).broker??{},Bt=l(d)==="local"?{...l(t),host:""}:l(t),xi={...l(A),broker:{...ht,ssh:Bt}};await vp(xi),x(s,!0),setTimeout(()=>x(s,!1),3e3)}catch(ht){x(r,ht.message,!0)}finally{x(n,!1)}}async function R(){x(C,!0),x(b,"");try{const ht=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Bt=await ht.json();if(!ht.ok)throw new Error(Bt.error??ht.statusText);x(p,Bt.publicKey,!0)}catch(ht){x(b,ht.message,!0)}finally{x(C,!1)}}async function P(){x(E,!0),x(w,"");try{const ht=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Bt=await ht.json();if(!ht.ok)throw new Error(Bt.error??ht.statusText);x(w,Bt.ok?"✓ Connection successful":"✗ "+(Bt.error??"Failed"),!0)}catch(ht){x(w,"✗ "+ht.message)}finally{x(E,!1)}}function V(ht){navigator.clipboard.writeText(ht).catch(()=>{})}const $=Nt(()=>l(t).identityFile&&l(t).user&&l(t).host?`ssh-copy-id -i ${l(t).identityFile}.pub ${l(t).user}@${l(t).host}`:"");var Q=Qee(),re=m(Q);{var he=ht=>{var Bt=Zx(),xi=m(Bt);z(()=>O(xi,l(i))),D(ht,Bt)};H(re,ht=>{l(i)&&ht(he)})}var Z=v(re,2),ce=v(m(Z),2),me=m(ce);let se;var ue=v(me,2);let De;var Pe=v(ce,2),ve=m(Pe),Oe=v(Z,2);{var ze=ht=>{var Bt=Uee(),xi=v(m(Bt),4);{var ui=hi=>{var Xt=Zx(),Hi=m(Xt);z(()=>O(Hi,l(g))),D(hi,Xt)};H(xi,hi=>{l(g)&&hi(ui)})}var Ci=v(xi,2);{var xt=hi=>{var Xt=jee(),Hi=m(Xt),Zi=m(Hi);let pi;var fn=m(Zi),cn=v(Zi,4);let an;var vn=m(cn),Ct=v(Hi,2),Zt=m(Ct);let Ti;var Vi=m(Zt),Li=v(Zt,4);let mn;var gn=m(Li);z(()=>{pi=kt(Zi,1,"check-icon svelte-17yczfe",null,pi,{ok:l(u).mosquittoCtrl,fail:!l(u).mosquittoCtrl}),O(fn,l(u).mosquittoCtrl?"✓":"✗"),an=kt(cn,1,"check-note svelte-17yczfe",null,an,{ok:l(u).mosquittoCtrl,fail:!l(u).mosquittoCtrl}),O(vn,l(u).mosquittoCtrl?"found in PATH":"not found — install the mosquitto or mosquitto-clients package"),Ti=kt(Zt,1,"check-icon svelte-17yczfe",null,Ti,{ok:l(u).mosquitto,fail:!l(u).mosquitto}),O(Vi,l(u).mosquitto?"✓":"✗"),mn=kt(Li,1,"check-note svelte-17yczfe",null,mn,{ok:l(u).mosquitto,fail:!l(u).mosquitto}),O(gn,l(u).mosquitto?"found in PATH":"not found — install the mosquitto package")}),D(hi,Xt)},ci=hi=>{var Xt=$ee();D(hi,Xt)};H(Ci,hi=>{l(u)?hi(xt):l(f)&&hi(ci,1)})}var Te=v(Ci,2),ye=m(Te),Gt=m(ye);z(()=>{ye.disabled=l(f),O(Gt,l(f)?"Checking…":l(u)?"Re-check":"Check tools")}),j("click",ye,I),D(ht,Bt)};H(Oe,ht=>{l(d)==="local"&&ht(ze)})}var _e=v(Oe,2);{var lt=ht=>{var Bt=Xee(),xi=bt(Bt),ui=v(m(xi),4),Ci=m(ui),xt=v(m(Ci)),ci=v(Ci,2),Te=v(m(ci)),ye=v(ci,2),Gt=v(m(ye)),hi=v(ye,2),Xt=v(m(hi)),Hi=v(xi,2),Zi=v(m(Hi),2),pi=v(m(Zi)),fn=m(pi),cn=v(Zi,2);{var an=Xe=>{var ii=Gee(),ai=bt(ii),Ei=v(m(ai)),zi=m(Ei),Gi=v(zi,2),Ui=v(ai,2);{var K=zt=>{var ei=qee(),St=v(m(ei)),Qe=m(St),Y=v(Qe,2);z(()=>T1(Qe,l($))),j("click",Y,()=>V(l($))),D(zt,ei)};H(Ui,zt=>{l($)&&zt(K)})}var Ae=v(Ui,2),it=m(Ae),Ze=m(it);z(()=>{T1(zi,l(p)),it.disabled=l(C),O(Ze,l(C)?"Generating…":"Regenerate keypair")}),j("click",Gi,()=>V(l(p))),j("click",it,R),D(Xe,ii)},vn=Xe=>{var ii=Kee(),ai=m(ii),Ei=m(ai);z(()=>{ai.disabled=l(C),O(Ei,l(C)?"Generating…":"Generate keypair")}),j("click",ai,R),D(Xe,ii)};H(cn,Xe=>{l(p)?Xe(an):Xe(vn,-1)})}var Ct=v(cn,2);{var Zt=Xe=>{var ii=Zx(),ai=m(ii);z(()=>O(ai,l(b))),D(Xe,ii)};H(Ct,Xe=>{l(b)&&Xe(Zt)})}var Ti=v(Hi,2),Vi=v(m(Ti),2),Li=m(Vi),mn=m(Li),gn=v(Li,2);{var Qi=Xe=>{var ii=Zee();let ai;var Ei=m(ii);z(zi=>{ai=kt(ii,1,"test-result svelte-17yczfe",null,ai,zi),O(Ei,l(w))},[()=>({ok:l(w).startsWith("✓"),fail:l(w).startsWith("✗")})]),D(Xe,ii)};H(gn,Xe=>{l(w)&&Xe(Qi)})}z(()=>{dn(Xt,"placeholder",l(a)),O(fn,l(t).identityFile||l(a)),Li.disabled=l(E)||!l(t).host,O(mn,l(E)?"Testing…":"Test SSH connection")}),Rt(xt,()=>l(t).host,Xe=>l(t).host=Xe),Rt(Te,()=>l(t).port,Xe=>l(t).port=Xe),Rt(Gt,()=>l(t).user,Xe=>l(t).user=Xe),Rt(Xt,()=>l(t).identityFile,Xe=>l(t).identityFile=Xe),j("click",Li,P),D(ht,Bt)};H(_e,ht=>{l(d)==="ssh"&&ht(lt)})}var Pt=v(_e,2);{var et=ht=>{var Bt=Zx(),xi=m(Bt);z(()=>O(xi,l(r))),D(ht,Bt)};H(Pt,ht=>{l(r)&&ht(et)})}var Et=v(Pt,2);{var Se=ht=>{var Bt=Yee();D(ht,Bt)};H(Et,ht=>{l(s)&&ht(Se)})}var He=v(Et,2),ut=m(He),At=m(ut);z(()=>{se=kt(me,1,"svelte-17yczfe",null,se,{active:l(d)==="local"}),De=kt(ue,1,"svelte-17yczfe",null,De,{active:l(d)==="ssh"}),O(ve,l(d)==="local"?"she and mosquitto run on the same machine — local filesystem access":"mosquitto runs on a remote host — file operations go through SSH"),ut.disabled=l(n),O(At,l(n)?"Saving…":"Save")}),j("click",me,()=>{x(d,"local"),l(u)||I()}),j("click",ue,()=>x(d,"ssh")),j("click",ut,M),D(o,Q),Ms()}Gs(["click"]);var ete=F("<button> </button>"),tte=F('<code>log_dest topic</code> is not enabled in mosquitto.conf.<br/> <span class="hint svelte-1yc29ow">Enable it in the <strong>Config</strong> tab, then click <em>Apply &amp; Reload</em>.</span>',1),ite=F('<code>log_dest topic</code> is configured — waiting for messages&hellip;<br/> <span class="hint svelte-1yc29ow">If nothing appears, mosquitto may need a full restart for the change to take effect.</span>',1),nte=F('Waiting for log messages&hellip;<br/> <span class="hint svelte-1yc29ow">Make sure <code class="svelte-1yc29ow">log_dest topic</code> is set in mosquitto.conf.</span>',1),ste=F('<div class="empty svelte-1yc29ow"><!></div>'),ote=F('<div class="entry svelte-1yc29ow"><span class="ts svelte-1yc29ow"> </span> <span> </span> <span class="msg svelte-1yc29ow"> </span></div>'),rte=F('<div class="logs-page svelte-1yc29ow"><div class="toolbar svelte-1yc29ow"><div class="level-filters svelte-1yc29ow"></div> <div class="spacer svelte-1yc29ow"></div> <label class="autoscroll-label svelte-1yc29ow"><input type="checkbox" class="svelte-1yc29ow"/> <span class="checkmark svelte-1yc29ow"></span> Auto-scroll</label> <button class="btn-clear svelte-1yc29ow">Clear</button></div> <div class="log-container svelte-1yc29ow"><!></div></div>');function ate(o,e){Ts(e,!0);const t={D:"DBG",I:"INF",N:"NTC",W:"WRN",E:"ERR"},i={D:"lvl-d",I:"lvl-i",N:"lvl-n",W:"lvl-w",E:"lvl-e"},n=new Set(["D","I","N","W","E"]);let s=B(ki([])),r=B(!0),a=B(ki(new Set(["D","I","N","W","E"]))),d=B(void 0),u=B(!1),f=B(null),g=null;$s(async()=>{const Z=await bU().catch(()=>[]),ce=cq(),me=new Set,se=[...Z,...ce].filter(ue=>n.has(ue.level)).map(ue=>({ts:ue.ts,level:ue.level,msg:ue.msg}));se.sort((ue,De)=>ue.ts-De.ts),x(s,se.filter(ue=>{const De=`${ue.ts}\0${ue.msg}`;return me.has(De)?!1:(me.add(De),!0)}).slice(-500),!0),l(s).length>0&&(x(u,!0),pl().then(p)),g=Jo("brokerLog",ue=>{n.has(ue.level)&&(x(u,!0),x(s,[...l(s).slice(-499),{ts:ue.ts,level:ue.level,msg:ue.msg}],!0),l(r)&&pl().then(p))}),ix().then(ue=>{const De=ue.managed.log_dest,Pe=Array.isArray(De)?De:De?[De]:[];x(f,Pe.includes("topic"),!0)}).catch(()=>{x(f,null)})}),$p(()=>{g==null||g()});function p(){l(d)&&(l(d).scrollTop=l(d).scrollHeight)}function C(Z){const ce=new Set(l(a));ce.has(Z)?ce.delete(Z):ce.add(Z),x(a,ce,!0)}function b(){x(s,[],!0),x(u,!1)}let E=Nt(()=>l(s).filter(Z=>l(a).has(Z.level)));function w(Z){const ce=new Date(Z);return ce.toTimeString().slice(0,8)+"."+String(ce.getMilliseconds()).padStart(3,"0")}var A=rte(),I=m(A),M=m(I);si(M,20,()=>["D","I","N","W","E"],ji,(Z,ce)=>{var me=ete();let se;var ue=m(me);z(De=>{se=kt(me,1,`lvl-btn ${i[ce]??""}`,"svelte-1yc29ow",se,De),dn(me,"title",`Toggle ${ce??""} messages`),O(ue,t[ce])},[()=>({active:l(a).has(ce)})]),j("click",me,()=>C(ce)),D(Z,me)});var R=v(M,4),P=m(R),V=v(R,2),$=v(I,2),Q=m($);{var re=Z=>{var ce=ste(),me=m(ce);{var se=De=>{var Pe=As(),ve=bt(Pe);{var Oe=lt=>{var Pt=tte();D(lt,Pt)},ze=lt=>{var Pt=ite();D(lt,Pt)},_e=lt=>{var Pt=nte();D(lt,Pt)};H(ve,lt=>{l(f)===!1?lt(Oe):l(f)===!0?lt(ze,1):lt(_e,-1)})}D(De,Pe)},ue=De=>{var Pe=ao("No messages match the current filter.");D(De,Pe)};H(me,De=>{l(u)?De(ue,-1):De(se)})}D(Z,ce)},he=Z=>{var ce=As(),me=bt(ce);si(me,17,()=>l(E),se=>se.ts+se.msg,(se,ue)=>{var De=ote(),Pe=m(De),ve=m(Pe),Oe=v(Pe,2),ze=m(Oe),_e=v(Oe,2),lt=m(_e);z(Pt=>{O(ve,Pt),kt(Oe,1,`badge ${i[l(ue).level]??""}`,"svelte-1yc29ow"),O(ze,t[l(ue).level]),O(lt,l(ue).msg)},[()=>w(l(ue).ts)]),D(se,De)}),D(Z,ce)};H(Q,Z=>{l(E).length===0?Z(re):Z(he,-1)})}us($,Z=>x(d,Z),()=>l(d)),Cs(P,()=>l(r),Z=>x(r,Z)),j("click",V,b),D(o,A),Ms()}Gs(["click"]);var lte=F('<div class="err svelte-d31be1"> </div>'),cte=F('<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>'),dte=F('<div class="step svelte-d31be1"><p class="svelte-d31be1"> </p></div>'),ute=F('<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>'),hte=F('<p class="hint svelte-d31be1">Restarting mosquitto… this may take a few seconds.</p>'),fte=F(`<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>`),gte=F('<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>'),pte=F('<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>'),xte=F('<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 vte(o,e){Ts(e,!0);let t=B("intro"),i=B(""),n=B(!1),s=B("she-admin"),r=B(""),a=B("/etc/mosquitto"),d=B(null),u=B(!1),f=B(!1),g=B("she-admin"),p=B(""),C=B(!1);async function b(){x(n,!0),x(i,"");try{(await(await fetch("/she/broker/wizard/probe",{method:"POST",headers:{"Content-Type":"application/json"}})).json()).active?x(t,"done"):x(t,"config")}catch(se){x(i,se.message,!0)}finally{x(n,!1)}}async function E(){x(n,!0),x(i,"");try{const se=await fetch("/she/broker/wizard/bootstrap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adminUsername:l(s),adminPassword:l(r)||void 0,configDir:l(a)})}),ue=await se.json();if(!se.ok||!ue.ok)throw new Error(ue.error??"Bootstrap failed");x(d,ue,!0);const De=await Rl(),Pe=De.broker??{};await vp({...De,broker:{...Pe,dynsec:{adminUsername:ue.adminUsername,adminPassword:ue.adminPassword}}}),await DU().catch(()=>{}),x(t,"restart")}catch(se){x(i,se.message,!0)}finally{x(n,!1)}}async function w(){x(f,!0),x(i,"");try{await wU(),await new Promise(se=>setTimeout(se,2e3)),x(u,!0),x(t,"done")}catch(se){x(i,se.message,!0)}finally{x(f,!1)}}async function A(){x(C,!0),x(i,"");try{const se=await Rl(),ue=se.broker??{};await vp({...se,broker:{...ue,dynsec:{adminUsername:l(g),adminPassword:l(p)}}}),x(t,"done")}catch(se){x(i,se.message,!0)}finally{x(C,!1)}}var I=xte(),M=m(I),R=v(m(M),2),P=v(M,2);{var V=se=>{var ue=lte(),De=m(ue);z(()=>O(De,l(i))),D(se,ue)};H(P,se=>{l(i)&&se(V)})}var $=v(P,2);{var Q=se=>{var ue=cte(),De=v(m(ue),6),Pe=m(De);z(()=>Pe.disabled=l(n)),j("click",Pe,()=>{x(t,"probe"),b()}),D(se,ue)},re=se=>{var ue=dte(),De=m(ue),Pe=m(De);z(()=>O(Pe,l(n)?"Probing dynsec…":"Checking dynsec status…")),D(se,ue)},he=se=>{var ue=ute(),De=v(m(ue),2),Pe=v(m(De)),ve=v(De,2),Oe=v(m(ve)),ze=v(ve,2),_e=v(m(ze)),lt=v(ze,2),Pt=m(lt),et=m(Pt);z(()=>{Pt.disabled=l(n)||!l(s),O(et,l(n)?"Bootstrapping…":"Bootstrap dynsec")}),Rt(Pe,()=>l(s),Et=>x(s,Et)),Rt(Oe,()=>l(r),Et=>x(r,Et)),Rt(_e,()=>l(a),Et=>x(a,Et)),j("click",Pt,E),D(se,ue)},Z=se=>{var ue=fte(),De=v(m(ue),2),Pe=v(m(De),3),ve=m(Pe),Oe=v(De,4),ze=m(Oe),_e=m(ze),lt=v(ze,2),Pt=v(Oe,2);{var et=Et=>{var Se=hte();D(Et,Se)};H(Pt,Et=>{l(f)&&Et(et)})}z(()=>{O(ve,l(d).confFilePath),ze.disabled=l(f),O(_e,l(f)?"Restarting…":"Restart mosquitto now")}),j("click",ze,w),j("click",lt,()=>{x(t,"done")}),D(se,ue)},ce=se=>{var ue=gte(),De=v(m(ue),4),Pe=m(De);j("click",Pe,function(...ve){var Oe;(Oe=e.onDone)==null||Oe.apply(this,ve)}),D(se,ue)},me=se=>{var ue=pte(),De=v(m(ue),2),Pe=v(m(De)),ve=v(De,2),Oe=v(m(ve)),ze=v(ve,2),_e=m(ze),lt=v(_e,2),Pt=m(lt);z(()=>{lt.disabled=l(C)||!l(g)||!l(p),O(Pt,l(C)?"Saving…":"Save credentials")}),Rt(Pe,()=>l(g),et=>x(g,et)),Rt(Oe,()=>l(p),et=>x(p,et)),j("click",_e,()=>x(t,"intro")),j("click",lt,A),D(se,ue)};H($,se=>{l(t)==="intro"?se(Q):l(t)==="probe"?se(re,1):l(t)==="config"?se(he,2):l(t)==="restart"&&l(d)?se(Z,3):l(t)==="done"?se(ce,4):l(t)==="manual"&&se(me,5)})}j("click",R,()=>x(t,"manual")),D(o,I),Ms()}Gs(["click"]);var aA=F('<div class="err svelte-bwar3a"> </div>'),mte=F('<div class="ok svelte-bwar3a">Saved.</div>'),_te=F('<div class="reload-msg svelte-bwar3a"> </div>'),bte=F('<div class="loading svelte-bwar3a">Loading…</div>'),Cte=F('<li class="svelte-bwar3a"><span class="backup-name svelte-bwar3a"> </span> <button class="btn-restore svelte-bwar3a"> </button></li>'),Ete=F('<div class="backups-section svelte-bwar3a"><div class="backups-header svelte-bwar3a"><span class="backups-title svelte-bwar3a">Backups</span> <button class="btn-refresh svelte-bwar3a" title="Refresh backup list">↻</button></div> <ul class="backup-list svelte-bwar3a"></ul></div>'),yte=F('<div class="advanced-page svelte-bwar3a"><div class="page-header svelte-bwar3a"><h3 class="svelte-bwar3a">Advanced — mosquitto.conf</h3> <div class="header-actions svelte-bwar3a"><button class="btn-save svelte-bwar3a"> </button> <button class="svelte-bwar3a"> </button></div></div> <!> <!> <!> <!> <div class="editor-wrap svelte-bwar3a"><!></div> <!></div> <!>',1);function wte(o,e){Ts(e,!0);let t=B(""),i=B(null),n=B(ki([])),s=B(!0),r=B(""),a=B(!1),d=B(""),u=B(!1),f=B(!1),g=B(""),p=B(""),C;$s(()=>{b()});async function b(){x(s,!0),x(r,"");try{const He=await ix();x(t,He.raw??"",!0),x(i,He.checksum,!0),x(n,He.backups??[],!0)}catch(He){x(r,He.message??"Failed to load config",!0)}finally{x(s,!1)}}async function E(){var He;x(a,!0),x(d,""),x(u,!1);try{await CU(l(t),l(i)),x(u,!0),await b(),x(u,!0)}catch(ut){(He=ut.message)!=null&&He.includes("external_modify")||ut.status===409?x(d,"mosquitto.conf was modified externally since last read. Reload first."):x(d,ut.message??"Save failed",!0)}finally{x(a,!1)}}async function w(){x(f,!0),x(g,"");try{const He=await Ob();x(g,He.stderr||He.stdout||"Reloaded",!0)}catch(He){x(g,"Error: "+(He.message??"reload failed"))}finally{x(f,!1)}}async function A(He){if(await C.show(`Restore backup "${He}"? Current mosquitto.conf will be overwritten.`,{confirm:"Restore",danger:!0})){x(p,He,!0),x(d,"");try{await yU(He),await b()}catch(ut){x(d,ut.message??"Restore failed",!0)}finally{x(p,"")}}}async function I(){try{const He=await EU();x(n,He.backups,!0)}catch{}}function M(He){const ut=He.match(/\.bak-(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})/);return ut?`${ut[1]}-${ut[2]}-${ut[3]} ${ut[4]}:${ut[5]}:${ut[6]}`:He}var R=yte(),P=bt(R),V=m(P),$=v(m(V),2),Q=m($),re=m(Q),he=v(Q,2),Z=m(he),ce=v(V,2);{var me=He=>{var ut=aA(),At=m(ut);z(()=>O(At,l(r))),D(He,ut)};H(ce,He=>{l(r)&&He(me)})}var se=v(ce,2);{var ue=He=>{var ut=aA(),At=m(ut);z(()=>O(At,l(d))),D(He,ut)};H(se,He=>{l(d)&&He(ue)})}var De=v(se,2);{var Pe=He=>{var ut=mte();D(He,ut)};H(De,He=>{l(u)&&He(Pe)})}var ve=v(De,2);{var Oe=He=>{var ut=_te(),At=m(ut);z(()=>O(At,l(g))),D(He,ut)};H(ve,He=>{l(g)&&He(Oe)})}var ze=v(ve,2),_e=m(ze);{var lt=He=>{var ut=bte();D(He,ut)},Pt=He=>{Sg(He,{language:"ini",onSave:E,get value(){return l(t)},set value(ut){x(t,ut,!0)}})};H(_e,He=>{l(s)?He(lt):He(Pt,-1)})}var et=v(ze,2);{var Et=He=>{var ut=Ete(),At=m(ut),ht=v(m(At),2),Bt=v(At,2);si(Bt,21,()=>l(n),ji,(xi,ui)=>{var Ci=Cte(),xt=m(Ci),ci=m(xt),Te=v(xt,2),ye=m(Te);z(Gt=>{O(ci,Gt),Te.disabled=l(p)===l(ui),O(ye,l(p)===l(ui)?"Restoring…":"Restore")},[()=>M(l(ui))]),j("click",Te,()=>A(l(ui))),D(xi,Ci)}),j("click",ht,I),D(He,ut)};H(et,He=>{l(n).length>0&&He(Et)})}var Se=v(P,2);us(Ja(Se,{}),He=>C=He,()=>C),z(()=>{Q.disabled=l(a)||l(s),O(re,l(a)?"Saving…":"Save"),he.disabled=l(f),O(Z,l(f)?"Reloading…":"Apply & Reload")}),j("click",Q,E),j("click",he,w),D(o,R),Ms()}Gs(["click"]);var Ste=F('<div class="reload-msg svelte-1q1ovna"> </div>'),n1=F('<div class="err svelte-1q1ovna"> </div>'),lA=F('<div class="ok svelte-1q1ovna"> </div>'),cA=F('<div class="loading svelte-1q1ovna">Loading…</div>'),Dte=F('<span class="inline-err svelte-1q1ovna"> </span>'),Ate=F('<div class="change-form svelte-1q1ovna"><input type="password" placeholder="New password" autocomplete="new-password" class="svelte-1q1ovna"/> <input type="password" placeholder="Confirm password" autocomplete="new-password" class="svelte-1q1ovna"/> <!> <button class="svelte-1q1ovna"> </button> <button class="svelte-1q1ovna">Cancel</button></div>'),kte=F('<button class="svelte-1q1ovna">Change password</button> <button class="btn-danger svelte-1q1ovna"> </button>',1),Bte=F('<tr><td class="user-name svelte-1q1ovna"> </td><td class="user-actions svelte-1q1ovna"><!></td></tr>'),Fte=F('<table class="user-table svelte-1q1ovna"><thead><tr><th class="svelte-1q1ovna">Username</th><th class="svelte-1q1ovna"></th></tr></thead><tbody></tbody></table>'),Lte=F('<p class="empty svelte-1q1ovna">No users found — file may not exist yet.</p>'),Ite=F('<!> <div class="add-form svelte-1q1ovna"><span class="add-title svelte-1q1ovna">Add user</span> <div class="add-fields svelte-1q1ovna"><input placeholder="Username" autocomplete="off" class="svelte-1q1ovna"/> <input type="password" placeholder="Password" autocomplete="new-password" class="svelte-1q1ovna"/> <input type="password" placeholder="Confirm password" autocomplete="new-password" class="svelte-1q1ovna"/> <button class="btn-add svelte-1q1ovna"> </button></div> <!></div>',1),Pte=F(`<div class="passwd-page svelte-1q1ovna"><section class="card svelte-1q1ovna"><div class="card-header svelte-1q1ovna"><h4 class="svelte-1q1ovna">Password File</h4> <div class="header-actions svelte-1q1ovna"><button class="svelte-1q1ovna"> </button></div></div> <div class="file-row svelte-1q1ovna"><label class="file-label svelte-1q1ovna"><span class="svelte-1q1ovna">File path</span> <input placeholder="/etc/mosquitto/passwd" class="svelte-1q1ovna"/></label> <button class="svelte-1q1ovna">↻</button></div> <!> <!> <!> <!></section> <section class="card acl-card svelte-1q1ovna"><div class="card-header svelte-1q1ovna"><h4 class="svelte-1q1ovna">ACL File</h4> <div class="header-actions svelte-1q1ovna"><button class="btn-save svelte-1q1ovna"> </button></div></div> <div class="file-row svelte-1q1ovna"><label class="file-label svelte-1q1ovna"><span class="svelte-1q1ovna">File path</span> <input placeholder="/etc/mosquitto/acl" class="svelte-1q1ovna"/></label> <button class="svelte-1q1ovna">↻</button></div> <!> <!> <div class="acl-editor-wrap svelte-1q1ovna"><!></div> <p class="hint svelte-1q1ovna">Static ACL file format: <code class="svelte-1q1ovna">user &lt;username&gt;</code> followed by <code class="svelte-1q1ovna">topic [read|write|readwrite] &lt;pattern&gt;</code>.
233
233
  Requires <code class="svelte-1q1ovna">acl_file</code> set in mosquitto.conf and no dynsec plugin.
234
- After saving, click <strong>Apply &amp; Reload</strong> above to activate changes.</p></section></div> <!>`,1);function Tte(o,e){Ts(e,!0);let t=B("/etc/mosquitto/passwd"),i=B(ki([])),n=B(!1),s=B(""),r=B(""),a=B(""),d=B(""),u=B(""),f=B(!1),g=B(""),p=B(null),C=B(""),b=B(""),E=B(!1),w=B(""),A=B(null),I=B("/etc/mosquitto/acl"),M=B(""),R=B(!1),P=B(""),V=B(""),$=B(!1),Q=B(!1),re=B(""),he;$s(async()=>{try{const Xe=await ix(),ii=Xe.listeners.find(Ei=>Ei.password_file);ii!=null&&ii.password_file&&x(t,ii.password_file,!0);const ai=Xe.listeners.find(Ei=>Ei.acl_file);ai!=null&&ai.acl_file&&x(I,ai.acl_file,!0),!(ii!=null&&ii.password_file)&&Xe.managed.password_file&&x(t,String(Xe.managed.password_file),!0),!(ai!=null&&ai.acl_file)&&Xe.managed.acl_file&&x(I,String(Xe.managed.acl_file),!0)}catch{}await Z(),await De()});async function Z(){if(l(t)){x(n,!0),x(s,""),x(r,"");try{const Xe=await kU(l(t));x(i,Xe.users,!0)}catch(Xe){x(s,Xe.message??"Failed to load password file",!0)}finally{x(n,!1)}}}async function ce(){if(!l(a).trim()){x(g,"Username required");return}if(!l(d)){x(g,"Password required");return}if(l(d)!==l(u)){x(g,"Passwords do not match");return}x(f,!0),x(g,""),x(r,"");try{await _2(l(t),l(a).trim(),l(d)),x(a,""),x(d,""),x(u,""),x(r,"User added."),await Z()}catch(Xe){x(g,Xe.message??"Failed to add user",!0)}finally{x(f,!1)}}async function me(Xe){x(p,Xe,!0),x(C,""),x(b,""),x(w,"")}async function se(){if(!l(C)){x(w,"Password required");return}if(l(C)!==l(b)){x(w,"Passwords do not match");return}x(E,!0),x(w,""),x(r,"");try{await _2(l(t),l(p),l(C)),x(p,null),x(r,"Password updated.")}catch(Xe){x(w,Xe.message??"Failed to change password",!0)}finally{x(E,!1)}}async function ue(Xe){if(await he.show(`Delete user "${Xe}" from ${l(t)}?`,{confirm:"Delete",danger:!0})){x(A,Xe,!0),x(s,""),x(r,"");try{await BU(l(t),Xe),x(r,`User "${Xe}" deleted.`),await Z()}catch(ii){x(s,ii.message??"Delete failed",!0)}finally{x(A,null)}}}async function De(){if(l(I)){x(R,!0),x(P,""),x(V,"");try{const Xe=await FU(l(I));x(M,Xe.content,!0)}catch(Xe){x(P,Xe.message??"Failed to load ACL file",!0)}finally{x(R,!1)}}}async function Pe(){x($,!0),x(P,""),x(V,"");try{await LU(l(I),l(M)),x(V,"ACL file saved.")}catch(Xe){x(P,Xe.message??"Save failed",!0)}finally{x($,!1)}}async function ve(){x(Q,!0),x(re,"");try{const Xe=await Ob();x(re,Xe.stderr||Xe.stdout||"Reloaded",!0)}catch(Xe){x(re,"Error: "+(Xe.message??"reload failed"))}finally{x(Q,!1)}}var Oe=Pte(),ze=bt(Oe),_e=m(ze),lt=m(_e),Pt=v(m(lt),2),et=m(Pt),Et=m(et),Se=v(lt,2),He=m(Se),ut=v(m(He),2),At=v(He,2),ht=v(Se,2);{var Bt=Xe=>{var ii=Ste(),ai=m(ii);z(()=>O(ai,l(re))),D(Xe,ii)};H(ht,Xe=>{l(re)&&Xe(Bt)})}var xi=v(ht,2);{var ui=Xe=>{var ii=n1(),ai=m(ii);z(()=>O(ai,l(s))),D(Xe,ii)};H(xi,Xe=>{l(s)&&Xe(ui)})}var Ci=v(xi,2);{var xt=Xe=>{var ii=lA(),ai=m(ii);z(()=>O(ai,l(r))),D(Xe,ii)};H(Ci,Xe=>{l(r)&&Xe(xt)})}var ci=v(Ci,2);{var Te=Xe=>{var ii=cA();D(Xe,ii)},ye=Xe=>{var ii=Ite(),ai=bt(ii);{var Ei=Qe=>{var Y=Fte(),Me=v(m(Y));si(Me,21,()=>l(i),ji,(le,ge)=>{var Yt=Bte(),oi=m(Yt),_i=m(oi),Ai=v(oi),Wi=m(Ai);{var te=be=>{var We=Ate(),yt=m(We),Lt=v(yt,2),yi=v(Lt,2);{var ti=Le=>{var dt=Dte(),ft=m(dt);z(()=>O(ft,l(w))),D(Le,dt)};H(yi,Le=>{l(w)&&Le(ti)})}var xe=v(yi,2),Ve=m(xe),Je=v(xe,2);z(()=>{xe.disabled=l(E),O(Ve,l(E)?"…":"Save")}),Rt(yt,()=>l(C),Le=>x(C,Le)),Rt(Lt,()=>l(b),Le=>x(b,Le)),j("click",xe,se),j("click",Je,()=>x(p,null)),D(be,We)},ot=be=>{var We=kte(),yt=bt(We),Lt=v(yt,2),yi=m(Lt);z(()=>{Lt.disabled=l(A)===l(ge),O(yi,l(A)===l(ge)?"…":"Delete")}),j("click",yt,()=>me(l(ge))),j("click",Lt,()=>ue(l(ge))),D(be,We)};H(Wi,be=>{l(p)===l(ge)?be(te):be(ot,-1)})}z(()=>O(_i,l(ge))),D(le,Yt)}),D(Qe,Y)},zi=Qe=>{var Y=Lte();D(Qe,Y)};H(ai,Qe=>{l(i).length>0?Qe(Ei):l(s)||Qe(zi,1)})}var Gi=v(ai,2),Ui=v(m(Gi),2),K=m(Ui),Ae=v(K,2),it=v(Ae,2),Ze=v(it,2),zt=m(Ze),ei=v(Ui,2);{var St=Qe=>{var Y=n1(),Me=m(Y);z(()=>O(Me,l(g))),D(Qe,Y)};H(ei,Qe=>{l(g)&&Qe(St)})}z(()=>{Ze.disabled=l(f),O(zt,l(f)?"Adding…":"Add")}),Rt(K,()=>l(a),Qe=>x(a,Qe)),Rt(Ae,()=>l(d),Qe=>x(d,Qe)),Rt(it,()=>l(u),Qe=>x(u,Qe)),j("click",Ze,ce),D(Xe,ii)};H(ci,Xe=>{l(n)?Xe(Te):Xe(ye,-1)})}var Gt=v(_e,2),hi=m(Gt),Xt=v(m(hi),2),Hi=m(Xt),Zi=m(Hi),pi=v(hi,2),fn=m(pi),cn=v(m(fn),2),an=v(fn,2),vn=v(pi,2);{var Ct=Xe=>{var ii=n1(),ai=m(ii);z(()=>O(ai,l(P))),D(Xe,ii)};H(vn,Xe=>{l(P)&&Xe(Ct)})}var Zt=v(vn,2);{var Ti=Xe=>{var ii=lA(),ai=m(ii);z(()=>O(ai,l(V))),D(Xe,ii)};H(Zt,Xe=>{l(V)&&Xe(Ti)})}var Vi=v(Zt,2),Li=m(Vi);{var mn=Xe=>{var ii=cA();D(Xe,ii)},gn=Xe=>{Sg(Xe,{language:"plaintext",onSave:Pe,get value(){return l(M)},set value(ii){x(M,ii,!0)}})};H(Li,Xe=>{l(R)?Xe(mn):Xe(gn,-1)})}var Qi=v(ze,2);us(Ja(Qi,{}),Xe=>he=Xe,()=>he),z(()=>{et.disabled=l(Q),O(Et,l(Q)?"Reloading…":"Apply & Reload"),At.disabled=l(n),Hi.disabled=l($),O(Zi,l($)?"Saving…":"Save"),an.disabled=l(R)}),j("click",et,ve),j("change",ut,Z),Rt(ut,()=>l(t),Xe=>x(t,Xe)),j("click",At,Z),j("click",Hi,Pe),j("change",cn,De),Rt(cn,()=>l(I),Xe=>x(I,Xe)),j("click",an,De),D(o,Oe),Ms()}Gs(["click","change"]);var Mte=F('<div class="loading svelte-zuhcpo">Loading…</div>'),Rte=F('<div class="error-banner svelte-zuhcpo"> </div>'),Nte=F('<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>'),Ote=F('<button class="btn-wizard-inline svelte-zuhcpo">Setup Wizard ↗</button>'),Hte=F('<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>'),Wte=F('<div class="error-inline svelte-zuhcpo"> </div>'),zte=F('<button class="diag-btn svelte-zuhcpo"> </button>'),dA=F('<p class="diag-issue svelte-zuhcpo"> </p>'),Vte=F('<p class="diag-ok-msg svelte-zuhcpo">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),jte=F('<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),$te=F('<div><!></div> <button class="diag-btn svelte-zuhcpo" style="margin-top:6px"> </button>',1),Ute=F('<button class="wizard-btn svelte-zuhcpo">Run Setup Wizard</button>'),qte=F('<div class="diag-area svelte-zuhcpo"><!> <!></div>'),Gte=F('<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>'),Kte=F('<div style="margin-top: 20px;"><!></div>'),Zte=F('<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),Xte=F('<div class="tab-content svelte-zuhcpo"><!></div>'),Yte=F('<div class="broker-page svelte-zuhcpo"><div class="sub-nav svelte-zuhcpo"><button>Status</button> <button>Directory</button> <button>Config</button> <button>Advanced</button> <button>Auth Files</button> <button>Listeners</button> <button>Certificates</button> <button>Connection</button> <button>Logs</button></div> <!></div> <!>',1);function Qte(o,e){Ts(e,!0);let t=B(!1),i,n=B(!1),s=B(""),r=B(!1),a=B(null);const d="she-broker-tab";let u=B(ki(localStorage.getItem(d)??"status"));Qn(()=>{localStorage.setItem(d,l(u))});let f=B(null),g=B(""),p=B(!0);async function C(){try{x(f,await Nb(),!0),x(g,"")}catch(xt){x(g,xt.message??"Failed to load broker status",!0)}finally{x(p,!1)}}$s(()=>{C();const xt=setInterval(C,1e4);return()=>clearInterval(xt)});async function b(){x(r,!0),x(a,null);try{x(a,await AU(),!0)}catch(xt){x(a,{ok:!1,dynSecPath:"",issues:[xt.message??"Diagnose request failed"]},!0)}finally{x(r,!1)}}async function E(){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})){x(n,!0),x(s,"");try{await SU(),await C()}catch(xt){x(s,xt.message??"Deactivate failed",!0)}finally{x(n,!1)}}}function w(xt){var Te;if(!((Te=l(f))!=null&&Te.sys))return"—";const ci=l(f).sys[xt];return ci?String(ci.val??"—"):"—"}function A(xt){if(xt==="—")return xt;const ci=xt.match(/^(\d+)/),Te=ci?parseInt(ci[1]):NaN;if(isNaN(Te))return xt;const ye=Math.floor(Te/86400),Gt=Math.floor(Te%86400/3600),hi=Math.floor(Te%3600/60),Xt=Te%60,Hi=Zi=>String(Zi).padStart(2,"0");return ye>0?`${ye}d ${Hi(Gt)}:${Hi(hi)}:${Hi(Xt)}`:`${Hi(Gt)}:${Hi(hi)}:${Hi(Xt)}`}function I(xt){if(xt==="—")return xt;const ci=parseInt(xt);return isNaN(ci)?xt:ci<1024?`${ci} B`:ci<1048576?`${(ci/1024).toFixed(1)} KB`:ci<1073741824?`${(ci/1048576).toFixed(1)} MB`:`${(ci/1073741824).toFixed(1)} GB`}var M=Yte(),R=bt(M),P=m(R),V=m(P);let $;var Q=v(V,2);let re;var he=v(Q,2);let Z;var ce=v(he,2);let me;var se=v(ce,2);let ue;var De=v(se,2);let Pe;var ve=v(De,2);let Oe;var ze=v(ve,2);let _e;var lt=v(ze,2);let Pt;var et=v(P,2);{var Et=xt=>{var ci=Xte(),Te=m(ci);{var ye=Xt=>{var Hi=Mte();D(Xt,Hi)},Gt=Xt=>{var Hi=Rte(),Zi=m(Hi);z(()=>O(Zi,l(g))),D(Xt,Hi)},hi=Xt=>{var Hi=Zte(),Zi=bt(Hi),pi=m(Zi),fn=m(pi),cn=v(m(fn),4),an=m(cn),vn=v(fn,2);{var Ct=Ei=>{var zi=Nte(),Gi=m(zi);let Ui;var K=v(Gi,4);let Ae;var it=m(K);{var Ze=Y=>{var Me=ao("plugin active");D(Y,Me)},zt=Y=>{var Me=ao("connected — plugin not responding");D(Y,Me)},ei=Y=>{var Me=ao("disconnected");D(Y,Me)};H(it,Y=>{l(f).dynsec.dynsecReady?Y(Ze):l(f).dynsec.connected?Y(zt,1):Y(ei,-1)})}var St=v(K,2),Qe=m(St);z(()=>{Ui=kt(Gi,1,"dot svelte-zuhcpo",null,Ui,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,"dot-err":!l(f).dynsec.connected}),Ae=kt(K,1,"conn-detail svelte-zuhcpo",null,Ae,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,err:!l(f).dynsec.connected}),St.disabled=l(n),O(Qe,l(n)?"…":"deactivate")}),j("click",St,E),D(Ei,zi)},Zt=Ei=>{var zi=Hte(),Gi=v(m(zi),6);{var Ui=K=>{var Ae=Ote();j("click",Ae,()=>x(t,!0)),D(K,Ae)};H(Gi,K=>{l(t)||K(Ui)})}D(Ei,zi)};H(vn,Ei=>{l(f).dynsec.configured?Ei(Ct):Ei(Zt,-1)})}var Ti=v(vn,2);{var Vi=Ei=>{var zi=Wte(),Gi=m(zi);z(()=>O(Gi,l(s))),D(Ei,zi)};H(Ti,Ei=>{l(s)&&Ei(Vi)})}var Li=v(pi,2);{var mn=Ei=>{var zi=qte(),Gi=m(zi);{var Ui=Ze=>{var zt=zte(),ei=m(zt);z(()=>{zt.disabled=l(r),O(ei,l(r)?"Running diagnostics…":"Run diagnostics")}),j("click",zt,b),D(Ze,zt)},K=Ze=>{var zt=$te(),ei=bt(zt);let St;var Qe=m(ei);{var Y=Yt=>{var oi=dA(),_i=m(oi);z(()=>O(_i,`⚠ ${l(a).error??""}`)),D(Yt,oi)},Me=Yt=>{var oi=jte(),_i=bt(oi),Ai=v(m(_i)),Wi=m(Ai),te=v(_i,2),ot=v(m(te)),be=m(ot),We=v(te,2),yt=v(m(We)),Lt=m(yt),yi=v(We,2),ti=v(m(yi)),xe=m(ti),Ve=v(yi,2);si(Ve,17,()=>l(a).issues,ji,(dt,ft)=>{var Kt=dA(),U=m(Kt);z(()=>O(U,`⚠ ${l(ft)??""}`)),D(dt,Kt)});var Je=v(Ve,2);{var Le=dt=>{var ft=Vte();D(dt,ft)};H(Je,dt=>{l(a).ok&&dt(Le)})}z(()=>{O(Wi,l(a).dynSecPath),kt(ot,1,fg(l(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),O(be,l(a).adminClientExists?"✓ yes":"✗ no"),kt(yt,1,fg(l(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),O(Lt,l(a).hasAdminRole?"✓ yes":"✗ no"),kt(ti,1,fg(l(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),O(xe,l(a).hasControlSendAcl?"✓ present":"✗ missing")}),D(Yt,oi)};H(Qe,Yt=>{l(a).error?Yt(Y):Yt(Me,-1)})}var le=v(ei,2),ge=m(le);z(()=>{St=kt(ei,1,"diag-card svelte-zuhcpo",null,St,{"diag-ok":l(a).ok,"diag-fail":!l(a).ok}),le.disabled=l(r),O(ge,l(r)?"Running…":"Re-run")}),j("click",le,b),D(Ze,zt)};H(Gi,Ze=>{l(a)?Ze(K,-1):Ze(Ui)})}var Ae=v(Gi,2);{var it=Ze=>{var zt=Ute();j("click",zt,()=>x(t,!0)),D(Ze,zt)};H(Ae,Ze=>{l(t)||Ze(it)})}D(Ei,zi)};H(Li,Ei=>{l(f).dynsec.configured&&l(f).dynsec.connected&&!l(f).dynsec.dynsecReady&&Ei(mn)})}var gn=v(Li,2);{var Qi=Ei=>{var zi=Gte(),Gi=m(zi),Ui=v(m(Gi)),K=m(Ui),Ae=v(Ui,3),it=m(Ae),Ze=v(Ae,3),zt=m(Ze),ei=v(Ze,3),St=m(ei),Qe=v(ei,3),Y=m(Qe),Me=v(Qe,3),le=m(Me);z((ge,Yt,oi,_i,Ai,Wi,te,ot,be,We,yt,Lt)=>{O(K,ge),O(it,Yt),O(zt,`${oi??""} connected · ${_i??""} max · ${Ai??""} total`),O(St,`${Wi??""} rcv · ${te??""} sent · ${ot??""} stored`),O(Y,`${be??""} retained · ${We??""} subscriptions`),O(le,`${yt??""} in · ${Lt??""} out`)},[()=>w("$SYS/broker/version"),()=>A(w("$SYS/broker/uptime")),()=>w("$SYS/broker/clients/connected"),()=>w("$SYS/broker/clients/maximum"),()=>w("$SYS/broker/clients/total"),()=>w("$SYS/broker/messages/received"),()=>w("$SYS/broker/messages/sent"),()=>w("$SYS/broker/messages/stored"),()=>w("$SYS/broker/retained messages/count"),()=>w("$SYS/broker/subscriptions/count"),()=>I(w("$SYS/broker/bytes/received")),()=>I(w("$SYS/broker/bytes/sent"))]),D(Ei,zi)},Xe=Nt(()=>Object.keys(l(f).sys).length>0);H(gn,Ei=>{l(Xe)&&Ei(Qi)})}var ii=v(Zi,2);{var ai=Ei=>{var zi=Kte(),Gi=m(zi);vte(Gi,{onDone:()=>{x(t,!1),C()}}),D(Ei,zi)};H(ii,Ei=>{l(t)&&(!l(f).dynsec.configured||!l(f).dynsec.dynsecReady)&&Ei(ai)})}z(()=>O(an,l(f).sshConfigured?`ssh — ${l(f).sshHost}`:"local")),D(Xt,Hi)};H(Te,Xt=>{l(p)?Xt(ye):l(g)?Xt(Gt,1):l(f)&&Xt(hi,2)})}D(xt,ci)},Se=xt=>{{let ci=Nt(()=>{var Te;return((Te=l(f))==null?void 0:Te.dynsec.dynsecReady)??!1});tee(xt,{get dynsecReady(){return l(ci)}})}},He=xt=>{Cee(xt,{})},ut=xt=>{wte(xt,{})},At=xt=>{Tte(xt,{})},ht=xt=>{pee(xt,{})},Bt=xt=>{Vee(xt,{})},xi=xt=>{Jee(xt,{})},ui=xt=>{ate(xt,{})};H(et,xt=>{l(u)==="status"?xt(Et):l(u)==="users"?xt(Se,1):l(u)==="brokerconfig"?xt(He,2):l(u)==="advanced"?xt(ut,3):l(u)==="passwd"?xt(At,4):l(u)==="listeners"?xt(ht,5):l(u)==="certs"?xt(Bt,6):l(u)==="ssh"?xt(xi,7):l(u)==="logs"&&xt(ui,8)})}var Ci=v(R,2);us(Ja(Ci,{}),xt=>i=xt,()=>i),z(()=>{$=kt(V,1,"svelte-zuhcpo",null,$,{active:l(u)==="status"}),re=kt(Q,1,"svelte-zuhcpo",null,re,{active:l(u)==="users"}),Z=kt(he,1,"svelte-zuhcpo",null,Z,{active:l(u)==="brokerconfig"}),me=kt(ce,1,"svelte-zuhcpo",null,me,{active:l(u)==="advanced"}),ue=kt(se,1,"svelte-zuhcpo",null,ue,{active:l(u)==="passwd"}),Pe=kt(De,1,"svelte-zuhcpo",null,Pe,{active:l(u)==="listeners"}),Oe=kt(ve,1,"svelte-zuhcpo",null,Oe,{active:l(u)==="certs"}),_e=kt(ze,1,"svelte-zuhcpo",null,_e,{active:l(u)==="ssh"}),Pt=kt(lt,1,"svelte-zuhcpo",null,Pt,{active:l(u)==="logs"})}),j("click",V,()=>x(u,"status")),j("click",Q,()=>x(u,"users")),j("click",he,()=>x(u,"brokerconfig")),j("click",ce,()=>x(u,"advanced")),j("click",se,()=>x(u,"passwd")),j("click",De,()=>x(u,"listeners")),j("click",ve,()=>x(u,"certs")),j("click",ze,()=>x(u,"ssh")),j("click",lt,()=>x(u,"logs")),D(o,M),Ms()}Gs(["click"]);var Jte=F('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),eie=F('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),tie=F('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),iie=F('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),nie=F('<button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><circle cx="8" cy="10" r="2" class="svelte-1n46o8q"></circle><path d="M5,7 A4,4 0,0,1 11,7" class="svelte-1n46o8q"></path><path d="M3,5 A6.5,6.5 0,0,1 13,5" class="svelte-1n46o8q"></path><line x1="8" y1="12" x2="8" y2="15" class="svelte-1n46o8q"></line></svg> Broker</button>'),sie=F('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),oie=F('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),rie=F('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),aie=F('<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>'),lie=F('<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>'),cie=F('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),die=F('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),uie=F('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),hie=F('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),fie=F('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),gie=F('<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>'),pie=F('<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>'),xie=F('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),vie=F('<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),mie=F('<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),_ie=F('<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>'),bie=F('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),Cie=F('<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>'),Eie=F('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),yie=F('<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>'),wie=F('<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" 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>'),Sie=F('<div class="login-error svelte-1n46o8q"> </div>'),Die=F('<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>'),Aie=F('<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>'),kie=F('<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>'),Bie=F("<!> <!> <!> <!>",1);function Fie(o,e){Ts(e,!0);const t=["scripts","mqtt","matter","security","db","logs","config","packages"];function i(){const At=location.hash.slice(1);return t.includes(At)?At:"scripts"}let n=B(ki(i())),s=B(null),r=B(!1),a=B(!1),d=B(!1),u=B(!1),f=B("none"),g=B(""),p=B(!1),C=B(""),b=B(""),E=B(!1),w=B(!1);V$(()=>{x(p,!0)});async function A(){x(b,""),x(E,!0);try{await U$(l(C)),x(C,""),x(p,!1)}catch(At){x(b,At.message??"Login failed",!0)}finally{x(E,!1)}}async function I(){if(l(f)==="proxy"&&l(g)){window.location.href=l(g);return}await q$(),x(p,!0)}let M=B(null),R=B(!1),P=B(!1),V=B(!1),$=B(!1),Q=B(ki([])),re=B(0),he=B(!1),Z=B(ki([]));const ce=Nt(()=>l(Z).filter(At=>At.online).length),me=Nt(()=>l(Z).length===0?"none":l(ce)===l(Z).length?"all":l(ce)>0?"some":"offline");let se=B(!1),ue=B(!1);async function De(){if(!await l(M).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;x(R,!0);let At;try{At=(await nf()).startedAt}catch{}try{await SF()}catch{}const ht=Date.now()+6e4;for(;Date.now()<ht;){await new Promise(Bt=>setTimeout(Bt,250));try{const Bt=await nf();if(At===void 0||Bt.startedAt!==At){location.reload();return}}catch{}}location.reload()}async function Pe(){x(d,!0);try{const At=await Q$();l(s)&&x(s,{...l(s),latestVersion:At.latestVersion??void 0},!0)}catch{}finally{x(d,!1)}}async function ve(){var Bt,xi;if(!await l(M).show(`Update to v${(Bt=l(s))==null?void 0:Bt.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;x(a,!1),x(u,!0);const At=(xi=l(s))==null?void 0:xi.startedAt;try{await Y$()}catch{}const ht=Date.now()+18e4;for(;Date.now()<ht;){await new Promise(ui=>setTimeout(ui,1e3));try{const ui=await nf();if(At===void 0||ui.startedAt!==At){location.reload();return}}catch{x(u,!1),x(R,!0)}}location.reload()}function Oe(At){x(n,At,!0),location.hash=At}$s(async()=>{location.hash||(location.hash=l(n));const At=()=>{x(n,i(),!0)};window.addEventListener("hashchange",At);try{const Te=await $$();x(f,Te.mode,!0),x(g,Te.proxyLogoutUrl??"",!0),l(f)==="password"&&(await fetch("/she/scripts")).status===401&&x(p,!0)}catch{}x(w,!0);async function ht(){var Te,ye,Gt;try{x(s,await nf(),!0)}catch{}try{const[hi,Xt]=await Promise.all([kF(),Rl()]);x(Q,Array.isArray(Xt.pinnedPackages)?Xt.pinnedPackages:[],!0),x(re,Object.keys(hi).filter(Zi=>!l(Q).includes(Zi)).length,!0);const Hi=l(he);x(he,((Te=Xt.broker)==null?void 0:Te.enabled)===!0),Hi&&!l(he)&&l(n)==="security"&&Oe("scripts")}catch{}!((ye=l(s))!=null&&ye.matterEnabled)&&l(n)==="matter"&&Oe("scripts"),!((Gt=l(s))!=null&&Gt.dbEnabled)&&l(n)==="db"&&Oe("scripts")}ht();const Bt=setInterval(ht,5e3),xi=Jo("mqtt:status",Te=>{Te.connected===!1?(x($,!0),x(P,!1),x(V,!1)):(x($,!1),x(P,Te.ready===!1),x(V,Te.ready===!0))}),ui=Jo("matter:deviceList",Te=>{Array.isArray(Te.devices)&&x(Z,Te.devices.map(ye=>({nodeId:String(ye.nodeId),online:!!ye.online})),!0)}),Ci=Jo("matter:deviceStatus",Te=>{if(Te.nodeId===void 0)return;const ye=String(Te.nodeId),Gt=!!Te.online;x(Z,l(Z).map(hi=>hi.nodeId===ye?{...hi,online:Gt}:hi),!0)}),xt=RF();x(se,xt.some(Te=>Te.level==="error"),!0),x(ue,!l(se)&&xt.some(Te=>Te.level==="warn"),!0);const ci=vS(Te=>{Te.level==="error"?(x(se,!0),x(ue,!1)):Te.level==="warn"&&!l(se)&&x(ue,!0)});return()=>{window.removeEventListener("hashchange",At),clearInterval(Bt),xi(),ui(),Ci(),ci()}});var ze=Bie();ms("click",g6,()=>{l(r)&&x(r,!1),l(a)&&x(a,!1)});var _e=bt(ze);{var lt=At=>{var ht=wie(),Bt=m(ht),xi=v(m(Bt),2);let ui;var Ci=v(xi,2);let xt;var ci=v(m(Ci),2);{var Te=T=>{var W=Jte();z(()=>dn(W,"title",`${l(re)??""} package update${l(re)===1?"":"s"} available`)),D(T,W)};H(ci,T=>{l(re)>0&&T(Te)})}var ye=v(Ci,2);let Gt;var hi=v(m(ye),2);{var Xt=T=>{var W=eie();D(T,W)},Hi=T=>{var W=tie();D(T,W)},Zi=T=>{var W=iie();D(T,W)};H(hi,T=>{l($)?T(Xt):l(P)?T(Hi,1):l(V)&&T(Zi,2)})}var pi=v(ye,2);{var fn=T=>{var W=nie();let J;z(()=>J=kt(W,1,"svelte-1n46o8q",null,J,{active:l(n)==="security"})),j("click",W,()=>Oe("security")),D(T,W)};H(pi,T=>{l(he)&&T(fn)})}var cn=v(pi,2);{var an=T=>{var W=aie();let J;var ne=v(m(W),2);{var ae=$e=>{var Ee=sie();D($e,Ee)},oe=$e=>{var Ee=oie();D($e,Ee)},ke=$e=>{var Ee=rie();D($e,Ee)};H(ne,$e=>{l(me)==="all"?$e(ae):l(me)==="some"?$e(oe,1):l(me)==="offline"&&$e(ke,2)})}z(()=>J=kt(W,1,"svelte-1n46o8q",null,J,{active:l(n)==="matter"})),j("click",W,()=>Oe("matter")),D(T,W)};H(cn,T=>{var W;(W=l(s))!=null&&W.matterEnabled&&T(an)})}var vn=v(cn,2);{var Ct=T=>{var W=lie();let J;z(()=>J=kt(W,1,"svelte-1n46o8q",null,J,{active:l(n)==="db"})),j("click",W,()=>Oe("db")),D(T,W)};H(vn,T=>{var W;(W=l(s))!=null&&W.dbEnabled&&T(Ct)})}var Zt=v(vn,2);let Ti;var Vi=v(m(Zt),2);{var Li=T=>{var W=cie();D(T,W)},mn=T=>{var W=die();D(T,W)};H(Vi,T=>{l(se)?T(Li):l(ue)&&T(mn,1)})}var gn=v(Zt,4),Qi=v(m(gn),2),Xe=m(Qi),ii=m(Xe);ii.nodeValue="v1.18.0 ";var ai=v(ii);{var Ei=T=>{var W=uie();D(T,W)};H(ai,T=>{var W,J;(W=l(s))!=null&&W.latestVersion&&!((J=l(s))!=null&&J.docker)&&T(Ei)})}var zi=v(Xe,2);{var Gi=T=>{var W=pie(),J=m(W),ne=v(m(J));ne.textContent="v1.18.0";var ae=v(ne,2);{var oe=de=>{var Ge=hie(),Tt=v(bt(Ge)),Ue=m(Tt);z(()=>O(Ue,`v${l(s).latestVersion??""}`)),D(de,Ge)},ke=de=>{var Ge=fie();D(de,Ge)};H(ae,de=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion?de(oe):de(ke,-1)})}var $e=v(J,2),Ee=m($e);{var Ie=de=>{var Ge=gie(),Tt=v(m(Ge));z(()=>O(Tt,` Update to v${l(s).latestVersion??""}`)),j("click",Ge,ve),D(de,Ge)};H(Ee,de=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion&&de(Ie)})}var Ne=v(Ee,2),rt=m(Ne);let ni;var X=v(rt);z(()=>{Ne.disabled=l(d),ni=kt(rt,0,"svelte-1n46o8q",null,ni,{spinning:l(d)}),O(X,` ${l(d)?"Checking…":"Check for updates"}`)}),j("click",W,de=>de.stopPropagation()),j("click",Ne,Pe),D(T,W)};H(zi,T=>{var W;l(a)&&!((W=l(s))!=null&&W.docker)&&T(Gi)})}var Ui=v(Qi,2),K=m(Ui),Ae=v(K,2);{var it=T=>{var W=Eie(),J=m(W);{var ne=Ee=>{var Ie=_ie(),Ne=m(Ie);{var rt=Ce=>{const pe=Nt(()=>Math.floor((Date.now()-l(s).startedAt)/1e3)),je=Nt(()=>Math.floor(l(pe)/86400)),nt=Nt(()=>Math.floor(l(pe)%86400/3600)),Ut=Nt(()=>Math.floor(l(pe)%3600/60));var Ye=xie(),_t=v(bt(Ye)),Mt=m(_t);z(()=>O(Mt,`${l(je)>0?l(je)+"d ":""}${l(nt)>0||l(je)>0?l(nt)+"h ":""}${l(Ut)??""}m`)),D(Ce,Ye)};H(Ne,Ce=>{l(s).startedAt&&Ce(rt)})}var ni=v(Ne,3),X=m(ni),de=v(ni,3),Ge=m(de),Tt=v(de,3),Ue=m(Tt),qe=v(Tt,2);{var It=Ce=>{var pe=vie(),je=v(bt(pe)),nt=m(je),Ut=v(je,3),Ye=m(Ut);z(()=>{O(nt,l(s).matterNodes??0),O(Ye,l(s).matterEndpoints??0)}),D(Ce,pe)};H(qe,Ce=>{l(s).matterEnabled&&Ce(It)})}var gt=v(qe,2);{var tt=Ce=>{var pe=mie(),je=v(bt(pe)),nt=m(je),Ut=v(je,3),Ye=m(Ut);z(()=>{O(nt,l(s).dbDocs??"—"),O(Ye,l(s).dbViews??"—")}),D(Ce,pe)};H(gt,Ce=>{l(s).dbEnabled&&Ce(tt)})}var vt=v(gt,3),Dt=m(vt),at=v(vt,3),Ht=m(at),ri=v(at,3),Vt=m(ri);z(()=>{O(X,l(s).scripts),O(Ge,l(s).topics),O(Ue,l(s).mqttMsgPerSec??"—"),O(Dt,l(s).handlers??"—"),O(Ht,l(s).memMb!=null?l(s).memMb+" MB":"—"),O(Vt,l(s).cpuPercent!=null?l(s).cpuPercent+" %":"—")}),D(Ee,Ie)},ae=Ee=>{var Ie=bie();D(Ee,Ie)};H(J,Ee=>{l(s)?Ee(ne):Ee(ae,-1)})}var oe=v(J,2),ke=m(oe);{var $e=Ee=>{var Ie=Cie();j("click",Ie,()=>{x(r,!1),De()}),D(Ee,Ie)};H(ke,Ee=>{var Ie;(Ie=l(s))!=null&&Ie.docker||Ee($e)})}j("click",W,Ee=>Ee.stopPropagation()),D(T,W)};H(Ae,T=>{l(r)&&T(it)})}var Ze=v(Ui,2);let zt;var ei=v(Ze,2);{var St=T=>{var W=yie();j("click",W,I),D(T,W)};H(ei,T=>{l(f)==="password"&&T(St)})}var Qe=v(Bt,2),Y=m(Qe);us(Ja(Y,{}),T=>x(M,T,!0),()=>l(M));var Me=v(Y,2);let le;var ge=m(Me);{let T=Nt(()=>l(n)==="scripts");yZ(ge,{get active(){return l(T)}})}var Yt=v(Me,2);let oi;var _i=m(Yt);bJ(_i,{});var Ai=v(Yt,2);let Wi;var te=m(Ai);tJ(te,{});var ot=v(Ai,2);let be;var We=m(ot);_Q(We,{});var yt=v(ot,2);let Lt;var yi=m(yt);Qte(yi,{});var ti=v(yt,2);let xe;var Ve=m(ti);EY(Ve,{});var Je=v(ti,2);let Le;var dt=m(Je);uX(dt,{});var ft=v(Je,2);let Kt;var U=m(ft);xX(U,{}),z(()=>{ui=kt(xi,1,"svelte-1n46o8q",null,ui,{active:l(n)==="scripts"}),xt=kt(Ci,1,"svelte-1n46o8q",null,xt,{active:l(n)==="packages"}),Gt=kt(ye,1,"svelte-1n46o8q",null,Gt,{active:l(n)==="mqtt"}),Ti=kt(Zt,1,"svelte-1n46o8q",null,Ti,{active:l(n)==="logs"}),zt=kt(Ze,1,"nav-settings svelte-1n46o8q",null,zt,{active:l(n)==="config"}),le=kt(Me,1,"page-wrap svelte-1n46o8q",null,le,{hidden:l(n)!=="scripts"}),oi=kt(Yt,1,"page-wrap svelte-1n46o8q",null,oi,{hidden:l(n)!=="packages"}),Wi=kt(Ai,1,"page-wrap svelte-1n46o8q",null,Wi,{hidden:l(n)!=="mqtt"}),be=kt(ot,1,"page-wrap svelte-1n46o8q",null,be,{hidden:l(n)!=="matter"}),Lt=kt(yt,1,"page-wrap svelte-1n46o8q",null,Lt,{hidden:l(n)!=="security"}),xe=kt(ti,1,"page-wrap svelte-1n46o8q",null,xe,{hidden:l(n)!=="db"}),Le=kt(Je,1,"page-wrap svelte-1n46o8q",null,Le,{hidden:l(n)!=="config"}),Kt=kt(ft,1,"page-wrap svelte-1n46o8q",null,Kt,{hidden:l(n)!=="logs"})}),j("click",xi,()=>Oe("scripts")),j("click",Ci,()=>Oe("packages")),j("click",ye,()=>Oe("mqtt")),j("click",Zt,()=>{Oe("logs"),x(se,!1),x(ue,!1)}),j("click",Xe,T=>{T.stopPropagation(),x(a,!l(a)),x(r,!1)}),j("click",K,T=>{T.stopPropagation(),x(r,!l(r)),x(a,!1)}),j("click",Ze,()=>Oe("config")),D(At,ht)};H(_e,At=>{l(w)&&!l(p)&&At(lt)})}var Pt=v(_e,2);{var et=At=>{var ht=Die(),Bt=m(ht),xi=v(m(Bt),4),ui=v(m(xi),2),Ci=v(xi,2);{var xt=ye=>{var Gt=Sie(),hi=m(Gt);z(()=>O(hi,l(b))),D(ye,Gt)};H(Ci,ye=>{l(b)&&ye(xt)})}var ci=v(Ci,2),Te=m(ci);z(()=>{ui.disabled=l(E),ci.disabled=l(E)||!l(C),O(Te,l(E)?"Signing in…":"Sign in")}),ms("submit",Bt,ye=>{ye.preventDefault(),A()}),Rt(ui,()=>l(C),ye=>x(C,ye)),D(At,ht)};H(Pt,At=>{l(p)&&At(et)})}var Et=v(Pt,2);{var Se=At=>{var ht=Aie();D(At,ht)};H(Et,At=>{l(R)&&At(Se)})}var He=v(Et,2);{var ut=At=>{var ht=kie();D(At,ht)};H(He,At=>{l(u)&&At(ut)})}D(o,ze),Ms()}Gs(["click"]);rP(Fie,{target:document.getElementById("app")});export{q6 as t};
234
+ After saving, click <strong>Apply &amp; Reload</strong> above to activate changes.</p></section></div> <!>`,1);function Tte(o,e){Ts(e,!0);let t=B("/etc/mosquitto/passwd"),i=B(ki([])),n=B(!1),s=B(""),r=B(""),a=B(""),d=B(""),u=B(""),f=B(!1),g=B(""),p=B(null),C=B(""),b=B(""),E=B(!1),w=B(""),A=B(null),I=B("/etc/mosquitto/acl"),M=B(""),R=B(!1),P=B(""),V=B(""),$=B(!1),Q=B(!1),re=B(""),he;$s(async()=>{try{const Xe=await ix(),ii=Xe.listeners.find(Ei=>Ei.password_file);ii!=null&&ii.password_file&&x(t,ii.password_file,!0);const ai=Xe.listeners.find(Ei=>Ei.acl_file);ai!=null&&ai.acl_file&&x(I,ai.acl_file,!0),!(ii!=null&&ii.password_file)&&Xe.managed.password_file&&x(t,String(Xe.managed.password_file),!0),!(ai!=null&&ai.acl_file)&&Xe.managed.acl_file&&x(I,String(Xe.managed.acl_file),!0)}catch{}await Z(),await De()});async function Z(){if(l(t)){x(n,!0),x(s,""),x(r,"");try{const Xe=await kU(l(t));x(i,Xe.users,!0)}catch(Xe){x(s,Xe.message??"Failed to load password file",!0)}finally{x(n,!1)}}}async function ce(){if(!l(a).trim()){x(g,"Username required");return}if(!l(d)){x(g,"Password required");return}if(l(d)!==l(u)){x(g,"Passwords do not match");return}x(f,!0),x(g,""),x(r,"");try{await _2(l(t),l(a).trim(),l(d)),x(a,""),x(d,""),x(u,""),x(r,"User added."),await Z()}catch(Xe){x(g,Xe.message??"Failed to add user",!0)}finally{x(f,!1)}}async function me(Xe){x(p,Xe,!0),x(C,""),x(b,""),x(w,"")}async function se(){if(!l(C)){x(w,"Password required");return}if(l(C)!==l(b)){x(w,"Passwords do not match");return}x(E,!0),x(w,""),x(r,"");try{await _2(l(t),l(p),l(C)),x(p,null),x(r,"Password updated.")}catch(Xe){x(w,Xe.message??"Failed to change password",!0)}finally{x(E,!1)}}async function ue(Xe){if(await he.show(`Delete user "${Xe}" from ${l(t)}?`,{confirm:"Delete",danger:!0})){x(A,Xe,!0),x(s,""),x(r,"");try{await BU(l(t),Xe),x(r,`User "${Xe}" deleted.`),await Z()}catch(ii){x(s,ii.message??"Delete failed",!0)}finally{x(A,null)}}}async function De(){if(l(I)){x(R,!0),x(P,""),x(V,"");try{const Xe=await FU(l(I));x(M,Xe.content,!0)}catch(Xe){x(P,Xe.message??"Failed to load ACL file",!0)}finally{x(R,!1)}}}async function Pe(){x($,!0),x(P,""),x(V,"");try{await LU(l(I),l(M)),x(V,"ACL file saved.")}catch(Xe){x(P,Xe.message??"Save failed",!0)}finally{x($,!1)}}async function ve(){x(Q,!0),x(re,"");try{const Xe=await Ob();x(re,Xe.stderr||Xe.stdout||"Reloaded",!0)}catch(Xe){x(re,"Error: "+(Xe.message??"reload failed"))}finally{x(Q,!1)}}var Oe=Pte(),ze=bt(Oe),_e=m(ze),lt=m(_e),Pt=v(m(lt),2),et=m(Pt),Et=m(et),Se=v(lt,2),He=m(Se),ut=v(m(He),2),At=v(He,2),ht=v(Se,2);{var Bt=Xe=>{var ii=Ste(),ai=m(ii);z(()=>O(ai,l(re))),D(Xe,ii)};H(ht,Xe=>{l(re)&&Xe(Bt)})}var xi=v(ht,2);{var ui=Xe=>{var ii=n1(),ai=m(ii);z(()=>O(ai,l(s))),D(Xe,ii)};H(xi,Xe=>{l(s)&&Xe(ui)})}var Ci=v(xi,2);{var xt=Xe=>{var ii=lA(),ai=m(ii);z(()=>O(ai,l(r))),D(Xe,ii)};H(Ci,Xe=>{l(r)&&Xe(xt)})}var ci=v(Ci,2);{var Te=Xe=>{var ii=cA();D(Xe,ii)},ye=Xe=>{var ii=Ite(),ai=bt(ii);{var Ei=Qe=>{var Y=Fte(),Me=v(m(Y));si(Me,21,()=>l(i),ji,(le,ge)=>{var Yt=Bte(),oi=m(Yt),_i=m(oi),Ai=v(oi),Wi=m(Ai);{var te=be=>{var We=Ate(),yt=m(We),Lt=v(yt,2),yi=v(Lt,2);{var ti=Le=>{var dt=Dte(),ft=m(dt);z(()=>O(ft,l(w))),D(Le,dt)};H(yi,Le=>{l(w)&&Le(ti)})}var xe=v(yi,2),Ve=m(xe),Je=v(xe,2);z(()=>{xe.disabled=l(E),O(Ve,l(E)?"…":"Save")}),Rt(yt,()=>l(C),Le=>x(C,Le)),Rt(Lt,()=>l(b),Le=>x(b,Le)),j("click",xe,se),j("click",Je,()=>x(p,null)),D(be,We)},ot=be=>{var We=kte(),yt=bt(We),Lt=v(yt,2),yi=m(Lt);z(()=>{Lt.disabled=l(A)===l(ge),O(yi,l(A)===l(ge)?"…":"Delete")}),j("click",yt,()=>me(l(ge))),j("click",Lt,()=>ue(l(ge))),D(be,We)};H(Wi,be=>{l(p)===l(ge)?be(te):be(ot,-1)})}z(()=>O(_i,l(ge))),D(le,Yt)}),D(Qe,Y)},zi=Qe=>{var Y=Lte();D(Qe,Y)};H(ai,Qe=>{l(i).length>0?Qe(Ei):l(s)||Qe(zi,1)})}var Gi=v(ai,2),Ui=v(m(Gi),2),K=m(Ui),Ae=v(K,2),it=v(Ae,2),Ze=v(it,2),zt=m(Ze),ei=v(Ui,2);{var St=Qe=>{var Y=n1(),Me=m(Y);z(()=>O(Me,l(g))),D(Qe,Y)};H(ei,Qe=>{l(g)&&Qe(St)})}z(()=>{Ze.disabled=l(f),O(zt,l(f)?"Adding…":"Add")}),Rt(K,()=>l(a),Qe=>x(a,Qe)),Rt(Ae,()=>l(d),Qe=>x(d,Qe)),Rt(it,()=>l(u),Qe=>x(u,Qe)),j("click",Ze,ce),D(Xe,ii)};H(ci,Xe=>{l(n)?Xe(Te):Xe(ye,-1)})}var Gt=v(_e,2),hi=m(Gt),Xt=v(m(hi),2),Hi=m(Xt),Zi=m(Hi),pi=v(hi,2),fn=m(pi),cn=v(m(fn),2),an=v(fn,2),vn=v(pi,2);{var Ct=Xe=>{var ii=n1(),ai=m(ii);z(()=>O(ai,l(P))),D(Xe,ii)};H(vn,Xe=>{l(P)&&Xe(Ct)})}var Zt=v(vn,2);{var Ti=Xe=>{var ii=lA(),ai=m(ii);z(()=>O(ai,l(V))),D(Xe,ii)};H(Zt,Xe=>{l(V)&&Xe(Ti)})}var Vi=v(Zt,2),Li=m(Vi);{var mn=Xe=>{var ii=cA();D(Xe,ii)},gn=Xe=>{Sg(Xe,{language:"plaintext",onSave:Pe,get value(){return l(M)},set value(ii){x(M,ii,!0)}})};H(Li,Xe=>{l(R)?Xe(mn):Xe(gn,-1)})}var Qi=v(ze,2);us(Ja(Qi,{}),Xe=>he=Xe,()=>he),z(()=>{et.disabled=l(Q),O(Et,l(Q)?"Reloading…":"Apply & Reload"),At.disabled=l(n),Hi.disabled=l($),O(Zi,l($)?"Saving…":"Save"),an.disabled=l(R)}),j("click",et,ve),j("change",ut,Z),Rt(ut,()=>l(t),Xe=>x(t,Xe)),j("click",At,Z),j("click",Hi,Pe),j("change",cn,De),Rt(cn,()=>l(I),Xe=>x(I,Xe)),j("click",an,De),D(o,Oe),Ms()}Gs(["click","change"]);var Mte=F('<div class="loading svelte-zuhcpo">Loading…</div>'),Rte=F('<div class="error-banner svelte-zuhcpo"> </div>'),Nte=F('<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>'),Ote=F('<button class="btn-wizard-inline svelte-zuhcpo">Setup Wizard ↗</button>'),Hte=F('<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>'),Wte=F('<div class="error-inline svelte-zuhcpo"> </div>'),zte=F('<button class="diag-btn svelte-zuhcpo"> </button>'),dA=F('<p class="diag-issue svelte-zuhcpo"> </p>'),Vte=F('<p class="diag-ok-msg svelte-zuhcpo">✓ dynamic-security.json looks correct. Verify mosquitto restarted with the plugin loaded.</p>'),jte=F('<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),$te=F('<div><!></div> <button class="diag-btn svelte-zuhcpo" style="margin-top:6px"> </button>',1),Ute=F('<button class="wizard-btn svelte-zuhcpo">Run Setup Wizard</button>'),qte=F('<div class="diag-area svelte-zuhcpo"><!> <!></div>'),Gte=F('<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>'),Kte=F('<div style="margin-top: 20px;"><!></div>'),Zte=F('<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),Xte=F('<div class="tab-content svelte-zuhcpo"><!></div>'),Yte=F('<div class="broker-page svelte-zuhcpo"><div class="sub-nav svelte-zuhcpo"><button>Status</button> <button>Directory</button> <button>Config</button> <button>Advanced</button> <button>Auth Files</button> <button>Listeners</button> <button>Certificates</button> <button>Connection</button> <button>Logs</button></div> <!></div> <!>',1);function Qte(o,e){Ts(e,!0);let t=B(!1),i,n=B(!1),s=B(""),r=B(!1),a=B(null);const d="she-broker-tab";let u=B(ki(localStorage.getItem(d)??"status"));Qn(()=>{localStorage.setItem(d,l(u))});let f=B(null),g=B(""),p=B(!0);async function C(){try{x(f,await Nb(),!0),x(g,"")}catch(xt){x(g,xt.message??"Failed to load broker status",!0)}finally{x(p,!1)}}$s(()=>{C();const xt=setInterval(C,1e4);return()=>clearInterval(xt)});async function b(){x(r,!0),x(a,null);try{x(a,await AU(),!0)}catch(xt){x(a,{ok:!1,dynSecPath:"",issues:[xt.message??"Diagnose request failed"]},!0)}finally{x(r,!1)}}async function E(){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})){x(n,!0),x(s,"");try{await SU(),await C()}catch(xt){x(s,xt.message??"Deactivate failed",!0)}finally{x(n,!1)}}}function w(xt){var Te;if(!((Te=l(f))!=null&&Te.sys))return"—";const ci=l(f).sys[xt];return ci?String(ci.val??"—"):"—"}function A(xt){if(xt==="—")return xt;const ci=xt.match(/^(\d+)/),Te=ci?parseInt(ci[1]):NaN;if(isNaN(Te))return xt;const ye=Math.floor(Te/86400),Gt=Math.floor(Te%86400/3600),hi=Math.floor(Te%3600/60),Xt=Te%60,Hi=Zi=>String(Zi).padStart(2,"0");return ye>0?`${ye}d ${Hi(Gt)}:${Hi(hi)}:${Hi(Xt)}`:`${Hi(Gt)}:${Hi(hi)}:${Hi(Xt)}`}function I(xt){if(xt==="—")return xt;const ci=parseInt(xt);return isNaN(ci)?xt:ci<1024?`${ci} B`:ci<1048576?`${(ci/1024).toFixed(1)} KB`:ci<1073741824?`${(ci/1048576).toFixed(1)} MB`:`${(ci/1073741824).toFixed(1)} GB`}var M=Yte(),R=bt(M),P=m(R),V=m(P);let $;var Q=v(V,2);let re;var he=v(Q,2);let Z;var ce=v(he,2);let me;var se=v(ce,2);let ue;var De=v(se,2);let Pe;var ve=v(De,2);let Oe;var ze=v(ve,2);let _e;var lt=v(ze,2);let Pt;var et=v(P,2);{var Et=xt=>{var ci=Xte(),Te=m(ci);{var ye=Xt=>{var Hi=Mte();D(Xt,Hi)},Gt=Xt=>{var Hi=Rte(),Zi=m(Hi);z(()=>O(Zi,l(g))),D(Xt,Hi)},hi=Xt=>{var Hi=Zte(),Zi=bt(Hi),pi=m(Zi),fn=m(pi),cn=v(m(fn),4),an=m(cn),vn=v(fn,2);{var Ct=Ei=>{var zi=Nte(),Gi=m(zi);let Ui;var K=v(Gi,4);let Ae;var it=m(K);{var Ze=Y=>{var Me=ao("plugin active");D(Y,Me)},zt=Y=>{var Me=ao("connected — plugin not responding");D(Y,Me)},ei=Y=>{var Me=ao("disconnected");D(Y,Me)};H(it,Y=>{l(f).dynsec.dynsecReady?Y(Ze):l(f).dynsec.connected?Y(zt,1):Y(ei,-1)})}var St=v(K,2),Qe=m(St);z(()=>{Ui=kt(Gi,1,"dot svelte-zuhcpo",null,Ui,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,"dot-err":!l(f).dynsec.connected}),Ae=kt(K,1,"conn-detail svelte-zuhcpo",null,Ae,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,err:!l(f).dynsec.connected}),St.disabled=l(n),O(Qe,l(n)?"…":"deactivate")}),j("click",St,E),D(Ei,zi)},Zt=Ei=>{var zi=Hte(),Gi=v(m(zi),6);{var Ui=K=>{var Ae=Ote();j("click",Ae,()=>x(t,!0)),D(K,Ae)};H(Gi,K=>{l(t)||K(Ui)})}D(Ei,zi)};H(vn,Ei=>{l(f).dynsec.configured?Ei(Ct):Ei(Zt,-1)})}var Ti=v(vn,2);{var Vi=Ei=>{var zi=Wte(),Gi=m(zi);z(()=>O(Gi,l(s))),D(Ei,zi)};H(Ti,Ei=>{l(s)&&Ei(Vi)})}var Li=v(pi,2);{var mn=Ei=>{var zi=qte(),Gi=m(zi);{var Ui=Ze=>{var zt=zte(),ei=m(zt);z(()=>{zt.disabled=l(r),O(ei,l(r)?"Running diagnostics…":"Run diagnostics")}),j("click",zt,b),D(Ze,zt)},K=Ze=>{var zt=$te(),ei=bt(zt);let St;var Qe=m(ei);{var Y=Yt=>{var oi=dA(),_i=m(oi);z(()=>O(_i,`⚠ ${l(a).error??""}`)),D(Yt,oi)},Me=Yt=>{var oi=jte(),_i=bt(oi),Ai=v(m(_i)),Wi=m(Ai),te=v(_i,2),ot=v(m(te)),be=m(ot),We=v(te,2),yt=v(m(We)),Lt=m(yt),yi=v(We,2),ti=v(m(yi)),xe=m(ti),Ve=v(yi,2);si(Ve,17,()=>l(a).issues,ji,(dt,ft)=>{var Kt=dA(),U=m(Kt);z(()=>O(U,`⚠ ${l(ft)??""}`)),D(dt,Kt)});var Je=v(Ve,2);{var Le=dt=>{var ft=Vte();D(dt,ft)};H(Je,dt=>{l(a).ok&&dt(Le)})}z(()=>{O(Wi,l(a).dynSecPath),kt(ot,1,fg(l(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),O(be,l(a).adminClientExists?"✓ yes":"✗ no"),kt(yt,1,fg(l(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),O(Lt,l(a).hasAdminRole?"✓ yes":"✗ no"),kt(ti,1,fg(l(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),O(xe,l(a).hasControlSendAcl?"✓ present":"✗ missing")}),D(Yt,oi)};H(Qe,Yt=>{l(a).error?Yt(Y):Yt(Me,-1)})}var le=v(ei,2),ge=m(le);z(()=>{St=kt(ei,1,"diag-card svelte-zuhcpo",null,St,{"diag-ok":l(a).ok,"diag-fail":!l(a).ok}),le.disabled=l(r),O(ge,l(r)?"Running…":"Re-run")}),j("click",le,b),D(Ze,zt)};H(Gi,Ze=>{l(a)?Ze(K,-1):Ze(Ui)})}var Ae=v(Gi,2);{var it=Ze=>{var zt=Ute();j("click",zt,()=>x(t,!0)),D(Ze,zt)};H(Ae,Ze=>{l(t)||Ze(it)})}D(Ei,zi)};H(Li,Ei=>{l(f).dynsec.configured&&l(f).dynsec.connected&&!l(f).dynsec.dynsecReady&&Ei(mn)})}var gn=v(Li,2);{var Qi=Ei=>{var zi=Gte(),Gi=m(zi),Ui=v(m(Gi)),K=m(Ui),Ae=v(Ui,3),it=m(Ae),Ze=v(Ae,3),zt=m(Ze),ei=v(Ze,3),St=m(ei),Qe=v(ei,3),Y=m(Qe),Me=v(Qe,3),le=m(Me);z((ge,Yt,oi,_i,Ai,Wi,te,ot,be,We,yt,Lt)=>{O(K,ge),O(it,Yt),O(zt,`${oi??""} connected · ${_i??""} max · ${Ai??""} total`),O(St,`${Wi??""} rcv · ${te??""} sent · ${ot??""} stored`),O(Y,`${be??""} retained · ${We??""} subscriptions`),O(le,`${yt??""} in · ${Lt??""} out`)},[()=>w("$SYS/broker/version"),()=>A(w("$SYS/broker/uptime")),()=>w("$SYS/broker/clients/connected"),()=>w("$SYS/broker/clients/maximum"),()=>w("$SYS/broker/clients/total"),()=>w("$SYS/broker/messages/received"),()=>w("$SYS/broker/messages/sent"),()=>w("$SYS/broker/messages/stored"),()=>w("$SYS/broker/retained messages/count"),()=>w("$SYS/broker/subscriptions/count"),()=>I(w("$SYS/broker/bytes/received")),()=>I(w("$SYS/broker/bytes/sent"))]),D(Ei,zi)},Xe=Nt(()=>Object.keys(l(f).sys).length>0);H(gn,Ei=>{l(Xe)&&Ei(Qi)})}var ii=v(Zi,2);{var ai=Ei=>{var zi=Kte(),Gi=m(zi);vte(Gi,{onDone:()=>{x(t,!1),C()}}),D(Ei,zi)};H(ii,Ei=>{l(t)&&(!l(f).dynsec.configured||!l(f).dynsec.dynsecReady)&&Ei(ai)})}z(()=>O(an,l(f).sshConfigured?`ssh — ${l(f).sshHost}`:"local")),D(Xt,Hi)};H(Te,Xt=>{l(p)?Xt(ye):l(g)?Xt(Gt,1):l(f)&&Xt(hi,2)})}D(xt,ci)},Se=xt=>{{let ci=Nt(()=>{var Te;return((Te=l(f))==null?void 0:Te.dynsec.dynsecReady)??!1});tee(xt,{get dynsecReady(){return l(ci)}})}},He=xt=>{Cee(xt,{})},ut=xt=>{wte(xt,{})},At=xt=>{Tte(xt,{})},ht=xt=>{pee(xt,{})},Bt=xt=>{Vee(xt,{})},xi=xt=>{Jee(xt,{})},ui=xt=>{ate(xt,{})};H(et,xt=>{l(u)==="status"?xt(Et):l(u)==="users"?xt(Se,1):l(u)==="brokerconfig"?xt(He,2):l(u)==="advanced"?xt(ut,3):l(u)==="passwd"?xt(At,4):l(u)==="listeners"?xt(ht,5):l(u)==="certs"?xt(Bt,6):l(u)==="ssh"?xt(xi,7):l(u)==="logs"&&xt(ui,8)})}var Ci=v(R,2);us(Ja(Ci,{}),xt=>i=xt,()=>i),z(()=>{$=kt(V,1,"svelte-zuhcpo",null,$,{active:l(u)==="status"}),re=kt(Q,1,"svelte-zuhcpo",null,re,{active:l(u)==="users"}),Z=kt(he,1,"svelte-zuhcpo",null,Z,{active:l(u)==="brokerconfig"}),me=kt(ce,1,"svelte-zuhcpo",null,me,{active:l(u)==="advanced"}),ue=kt(se,1,"svelte-zuhcpo",null,ue,{active:l(u)==="passwd"}),Pe=kt(De,1,"svelte-zuhcpo",null,Pe,{active:l(u)==="listeners"}),Oe=kt(ve,1,"svelte-zuhcpo",null,Oe,{active:l(u)==="certs"}),_e=kt(ze,1,"svelte-zuhcpo",null,_e,{active:l(u)==="ssh"}),Pt=kt(lt,1,"svelte-zuhcpo",null,Pt,{active:l(u)==="logs"})}),j("click",V,()=>x(u,"status")),j("click",Q,()=>x(u,"users")),j("click",he,()=>x(u,"brokerconfig")),j("click",ce,()=>x(u,"advanced")),j("click",se,()=>x(u,"passwd")),j("click",De,()=>x(u,"listeners")),j("click",ve,()=>x(u,"certs")),j("click",ze,()=>x(u,"ssh")),j("click",lt,()=>x(u,"logs")),D(o,M),Ms()}Gs(["click"]);var Jte=F('<span class="nav-dot nav-dot--warn svelte-1n46o8q"></span>'),eie=F('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="MQTT broker not connected"></span>'),tie=F('<span class="nav-dot nav-dot--warn nav-dot--blink svelte-1n46o8q" title="Waiting for retained MQTT state"></span>'),iie=F('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="MQTT connected"></span>'),nie=F('<button><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1n46o8q"><circle cx="8" cy="10" r="2" class="svelte-1n46o8q"></circle><path d="M5,7 A4,4 0,0,1 11,7" class="svelte-1n46o8q"></path><path d="M3,5 A6.5,6.5 0,0,1 13,5" class="svelte-1n46o8q"></path><line x1="8" y1="12" x2="8" y2="15" class="svelte-1n46o8q"></line></svg> Broker</button>'),sie=F('<span class="nav-dot nav-dot--ok svelte-1n46o8q" title="All Matter devices online"></span>'),oie=F('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Some Matter devices offline"></span>'),rie=F('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="No Matter devices online"></span>'),aie=F('<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>'),lie=F('<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>'),cie=F('<span class="nav-dot nav-dot--err svelte-1n46o8q" title="Errors in recent logs"></span>'),die=F('<span class="nav-dot nav-dot--warn svelte-1n46o8q" title="Warnings in recent logs"></span>'),uie=F('<span class="update-dot svelte-1n46o8q" title="Update available"></span>'),hie=F('<dt class="svelte-1n46o8q">Latest</dt><dd style="color: #f90" class="svelte-1n46o8q"> </dd>',1),fie=F('<dt class="svelte-1n46o8q">Latest</dt><dd class="svelte-1n46o8q">up to date</dd>',1),gie=F('<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>'),pie=F('<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>'),xie=F('<dt class="svelte-1n46o8q">Uptime</dt><dd class="svelte-1n46o8q"> </dd>',1),vie=F('<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),mie=F('<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),_ie=F('<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>'),bie=F('<span class="stats-empty svelte-1n46o8q">Loading…</span>'),Cie=F('<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>'),Eie=F('<div class="stats-popup svelte-1n46o8q"><!> <div class="stats-actions svelte-1n46o8q"><!></div></div>'),yie=F('<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>'),wie=F('<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" 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>'),Sie=F('<div class="login-error svelte-1n46o8q"> </div>'),Die=F('<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>'),Aie=F('<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>'),kie=F('<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>'),Bie=F("<!> <!> <!> <!>",1);function Fie(o,e){Ts(e,!0);const t=["scripts","mqtt","matter","security","db","logs","config","packages"];function i(){const At=location.hash.slice(1);return t.includes(At)?At:"scripts"}let n=B(ki(i())),s=B(null),r=B(!1),a=B(!1),d=B(!1),u=B(!1),f=B("none"),g=B(""),p=B(!1),C=B(""),b=B(""),E=B(!1),w=B(!1);V$(()=>{x(p,!0)});async function A(){x(b,""),x(E,!0);try{await U$(l(C)),x(C,""),x(p,!1)}catch(At){x(b,At.message??"Login failed",!0)}finally{x(E,!1)}}async function I(){if(l(f)==="proxy"&&l(g)){window.location.href=l(g);return}await q$(),x(p,!0)}let M=B(null),R=B(!1),P=B(!1),V=B(!1),$=B(!1),Q=B(ki([])),re=B(0),he=B(!1),Z=B(ki([]));const ce=Nt(()=>l(Z).filter(At=>At.online).length),me=Nt(()=>l(Z).length===0?"none":l(ce)===l(Z).length?"all":l(ce)>0?"some":"offline");let se=B(!1),ue=B(!1);async function De(){if(!await l(M).show("Restart the she daemon? The page will reload after a moment.",{confirm:"Restart"}))return;x(R,!0);let At;try{At=(await nf()).startedAt}catch{}try{await SF()}catch{}const ht=Date.now()+6e4;for(;Date.now()<ht;){await new Promise(Bt=>setTimeout(Bt,250));try{const Bt=await nf();if(At===void 0||Bt.startedAt!==At){location.reload();return}}catch{}}location.reload()}async function Pe(){x(d,!0);try{const At=await Q$();l(s)&&x(s,{...l(s),latestVersion:At.latestVersion??void 0},!0)}catch{}finally{x(d,!1)}}async function ve(){var Bt,xi;if(!await l(M).show(`Update to v${(Bt=l(s))==null?void 0:Bt.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;x(a,!1),x(u,!0);const At=(xi=l(s))==null?void 0:xi.startedAt;try{await Y$()}catch{}const ht=Date.now()+18e4;for(;Date.now()<ht;){await new Promise(ui=>setTimeout(ui,1e3));try{const ui=await nf();if(At===void 0||ui.startedAt!==At){location.reload();return}}catch{x(u,!1),x(R,!0)}}location.reload()}function Oe(At){x(n,At,!0),location.hash=At}$s(async()=>{location.hash||(location.hash=l(n));const At=()=>{x(n,i(),!0)};window.addEventListener("hashchange",At);try{const Te=await $$();x(f,Te.mode,!0),x(g,Te.proxyLogoutUrl??"",!0),l(f)==="password"&&(await fetch("/she/scripts")).status===401&&x(p,!0)}catch{}x(w,!0);async function ht(){var Te,ye,Gt;try{x(s,await nf(),!0)}catch{}try{const[hi,Xt]=await Promise.all([kF(),Rl()]);x(Q,Array.isArray(Xt.pinnedPackages)?Xt.pinnedPackages:[],!0),x(re,Object.keys(hi).filter(Zi=>!l(Q).includes(Zi)).length,!0);const Hi=l(he);x(he,((Te=Xt.broker)==null?void 0:Te.enabled)===!0),Hi&&!l(he)&&l(n)==="security"&&Oe("scripts")}catch{}!((ye=l(s))!=null&&ye.matterEnabled)&&l(n)==="matter"&&Oe("scripts"),!((Gt=l(s))!=null&&Gt.dbEnabled)&&l(n)==="db"&&Oe("scripts")}ht();const Bt=setInterval(ht,5e3),xi=Jo("mqtt:status",Te=>{Te.connected===!1?(x($,!0),x(P,!1),x(V,!1)):(x($,!1),x(P,Te.ready===!1),x(V,Te.ready===!0))}),ui=Jo("matter:deviceList",Te=>{Array.isArray(Te.devices)&&x(Z,Te.devices.map(ye=>({nodeId:String(ye.nodeId),online:!!ye.online})),!0)}),Ci=Jo("matter:deviceStatus",Te=>{if(Te.nodeId===void 0)return;const ye=String(Te.nodeId),Gt=!!Te.online;x(Z,l(Z).map(hi=>hi.nodeId===ye?{...hi,online:Gt}:hi),!0)}),xt=RF();x(se,xt.some(Te=>Te.level==="error"),!0),x(ue,!l(se)&&xt.some(Te=>Te.level==="warn"),!0);const ci=vS(Te=>{Te.level==="error"?(x(se,!0),x(ue,!1)):Te.level==="warn"&&!l(se)&&x(ue,!0)});return()=>{window.removeEventListener("hashchange",At),clearInterval(Bt),xi(),ui(),Ci(),ci()}});var ze=Bie();ms("click",g6,()=>{l(r)&&x(r,!1),l(a)&&x(a,!1)});var _e=bt(ze);{var lt=At=>{var ht=wie(),Bt=m(ht),xi=v(m(Bt),2);let ui;var Ci=v(xi,2);let xt;var ci=v(m(Ci),2);{var Te=T=>{var W=Jte();z(()=>dn(W,"title",`${l(re)??""} package update${l(re)===1?"":"s"} available`)),D(T,W)};H(ci,T=>{l(re)>0&&T(Te)})}var ye=v(Ci,2);let Gt;var hi=v(m(ye),2);{var Xt=T=>{var W=eie();D(T,W)},Hi=T=>{var W=tie();D(T,W)},Zi=T=>{var W=iie();D(T,W)};H(hi,T=>{l($)?T(Xt):l(P)?T(Hi,1):l(V)&&T(Zi,2)})}var pi=v(ye,2);{var fn=T=>{var W=nie();let J;z(()=>J=kt(W,1,"svelte-1n46o8q",null,J,{active:l(n)==="security"})),j("click",W,()=>Oe("security")),D(T,W)};H(pi,T=>{l(he)&&T(fn)})}var cn=v(pi,2);{var an=T=>{var W=aie();let J;var ne=v(m(W),2);{var ae=$e=>{var Ee=sie();D($e,Ee)},oe=$e=>{var Ee=oie();D($e,Ee)},ke=$e=>{var Ee=rie();D($e,Ee)};H(ne,$e=>{l(me)==="all"?$e(ae):l(me)==="some"?$e(oe,1):l(me)==="offline"&&$e(ke,2)})}z(()=>J=kt(W,1,"svelte-1n46o8q",null,J,{active:l(n)==="matter"})),j("click",W,()=>Oe("matter")),D(T,W)};H(cn,T=>{var W;(W=l(s))!=null&&W.matterEnabled&&T(an)})}var vn=v(cn,2);{var Ct=T=>{var W=lie();let J;z(()=>J=kt(W,1,"svelte-1n46o8q",null,J,{active:l(n)==="db"})),j("click",W,()=>Oe("db")),D(T,W)};H(vn,T=>{var W;(W=l(s))!=null&&W.dbEnabled&&T(Ct)})}var Zt=v(vn,2);let Ti;var Vi=v(m(Zt),2);{var Li=T=>{var W=cie();D(T,W)},mn=T=>{var W=die();D(T,W)};H(Vi,T=>{l(se)?T(Li):l(ue)&&T(mn,1)})}var gn=v(Zt,4),Qi=v(m(gn),2),Xe=m(Qi),ii=m(Xe);ii.nodeValue="v1.18.1 ";var ai=v(ii);{var Ei=T=>{var W=uie();D(T,W)};H(ai,T=>{var W,J;(W=l(s))!=null&&W.latestVersion&&!((J=l(s))!=null&&J.docker)&&T(Ei)})}var zi=v(Xe,2);{var Gi=T=>{var W=pie(),J=m(W),ne=v(m(J));ne.textContent="v1.18.1";var ae=v(ne,2);{var oe=de=>{var Ge=hie(),Tt=v(bt(Ge)),Ue=m(Tt);z(()=>O(Ue,`v${l(s).latestVersion??""}`)),D(de,Ge)},ke=de=>{var Ge=fie();D(de,Ge)};H(ae,de=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion?de(oe):de(ke,-1)})}var $e=v(J,2),Ee=m($e);{var Ie=de=>{var Ge=gie(),Tt=v(m(Ge));z(()=>O(Tt,` Update to v${l(s).latestVersion??""}`)),j("click",Ge,ve),D(de,Ge)};H(Ee,de=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion&&de(Ie)})}var Ne=v(Ee,2),rt=m(Ne);let ni;var X=v(rt);z(()=>{Ne.disabled=l(d),ni=kt(rt,0,"svelte-1n46o8q",null,ni,{spinning:l(d)}),O(X,` ${l(d)?"Checking…":"Check for updates"}`)}),j("click",W,de=>de.stopPropagation()),j("click",Ne,Pe),D(T,W)};H(zi,T=>{var W;l(a)&&!((W=l(s))!=null&&W.docker)&&T(Gi)})}var Ui=v(Qi,2),K=m(Ui),Ae=v(K,2);{var it=T=>{var W=Eie(),J=m(W);{var ne=Ee=>{var Ie=_ie(),Ne=m(Ie);{var rt=Ce=>{const pe=Nt(()=>Math.floor((Date.now()-l(s).startedAt)/1e3)),je=Nt(()=>Math.floor(l(pe)/86400)),nt=Nt(()=>Math.floor(l(pe)%86400/3600)),Ut=Nt(()=>Math.floor(l(pe)%3600/60));var Ye=xie(),_t=v(bt(Ye)),Mt=m(_t);z(()=>O(Mt,`${l(je)>0?l(je)+"d ":""}${l(nt)>0||l(je)>0?l(nt)+"h ":""}${l(Ut)??""}m`)),D(Ce,Ye)};H(Ne,Ce=>{l(s).startedAt&&Ce(rt)})}var ni=v(Ne,3),X=m(ni),de=v(ni,3),Ge=m(de),Tt=v(de,3),Ue=m(Tt),qe=v(Tt,2);{var It=Ce=>{var pe=vie(),je=v(bt(pe)),nt=m(je),Ut=v(je,3),Ye=m(Ut);z(()=>{O(nt,l(s).matterNodes??0),O(Ye,l(s).matterEndpoints??0)}),D(Ce,pe)};H(qe,Ce=>{l(s).matterEnabled&&Ce(It)})}var gt=v(qe,2);{var tt=Ce=>{var pe=mie(),je=v(bt(pe)),nt=m(je),Ut=v(je,3),Ye=m(Ut);z(()=>{O(nt,l(s).dbDocs??"—"),O(Ye,l(s).dbViews??"—")}),D(Ce,pe)};H(gt,Ce=>{l(s).dbEnabled&&Ce(tt)})}var vt=v(gt,3),Dt=m(vt),at=v(vt,3),Ht=m(at),ri=v(at,3),Vt=m(ri);z(()=>{O(X,l(s).scripts),O(Ge,l(s).topics),O(Ue,l(s).mqttMsgPerSec??"—"),O(Dt,l(s).handlers??"—"),O(Ht,l(s).memMb!=null?l(s).memMb+" MB":"—"),O(Vt,l(s).cpuPercent!=null?l(s).cpuPercent+" %":"—")}),D(Ee,Ie)},ae=Ee=>{var Ie=bie();D(Ee,Ie)};H(J,Ee=>{l(s)?Ee(ne):Ee(ae,-1)})}var oe=v(J,2),ke=m(oe);{var $e=Ee=>{var Ie=Cie();j("click",Ie,()=>{x(r,!1),De()}),D(Ee,Ie)};H(ke,Ee=>{var Ie;(Ie=l(s))!=null&&Ie.docker||Ee($e)})}j("click",W,Ee=>Ee.stopPropagation()),D(T,W)};H(Ae,T=>{l(r)&&T(it)})}var Ze=v(Ui,2);let zt;var ei=v(Ze,2);{var St=T=>{var W=yie();j("click",W,I),D(T,W)};H(ei,T=>{l(f)==="password"&&T(St)})}var Qe=v(Bt,2),Y=m(Qe);us(Ja(Y,{}),T=>x(M,T,!0),()=>l(M));var Me=v(Y,2);let le;var ge=m(Me);{let T=Nt(()=>l(n)==="scripts");yZ(ge,{get active(){return l(T)}})}var Yt=v(Me,2);let oi;var _i=m(Yt);bJ(_i,{});var Ai=v(Yt,2);let Wi;var te=m(Ai);tJ(te,{});var ot=v(Ai,2);let be;var We=m(ot);_Q(We,{});var yt=v(ot,2);let Lt;var yi=m(yt);Qte(yi,{});var ti=v(yt,2);let xe;var Ve=m(ti);EY(Ve,{});var Je=v(ti,2);let Le;var dt=m(Je);uX(dt,{});var ft=v(Je,2);let Kt;var U=m(ft);xX(U,{}),z(()=>{ui=kt(xi,1,"svelte-1n46o8q",null,ui,{active:l(n)==="scripts"}),xt=kt(Ci,1,"svelte-1n46o8q",null,xt,{active:l(n)==="packages"}),Gt=kt(ye,1,"svelte-1n46o8q",null,Gt,{active:l(n)==="mqtt"}),Ti=kt(Zt,1,"svelte-1n46o8q",null,Ti,{active:l(n)==="logs"}),zt=kt(Ze,1,"nav-settings svelte-1n46o8q",null,zt,{active:l(n)==="config"}),le=kt(Me,1,"page-wrap svelte-1n46o8q",null,le,{hidden:l(n)!=="scripts"}),oi=kt(Yt,1,"page-wrap svelte-1n46o8q",null,oi,{hidden:l(n)!=="packages"}),Wi=kt(Ai,1,"page-wrap svelte-1n46o8q",null,Wi,{hidden:l(n)!=="mqtt"}),be=kt(ot,1,"page-wrap svelte-1n46o8q",null,be,{hidden:l(n)!=="matter"}),Lt=kt(yt,1,"page-wrap svelte-1n46o8q",null,Lt,{hidden:l(n)!=="security"}),xe=kt(ti,1,"page-wrap svelte-1n46o8q",null,xe,{hidden:l(n)!=="db"}),Le=kt(Je,1,"page-wrap svelte-1n46o8q",null,Le,{hidden:l(n)!=="config"}),Kt=kt(ft,1,"page-wrap svelte-1n46o8q",null,Kt,{hidden:l(n)!=="logs"})}),j("click",xi,()=>Oe("scripts")),j("click",Ci,()=>Oe("packages")),j("click",ye,()=>Oe("mqtt")),j("click",Zt,()=>{Oe("logs"),x(se,!1),x(ue,!1)}),j("click",Xe,T=>{T.stopPropagation(),x(a,!l(a)),x(r,!1)}),j("click",K,T=>{T.stopPropagation(),x(r,!l(r)),x(a,!1)}),j("click",Ze,()=>Oe("config")),D(At,ht)};H(_e,At=>{l(w)&&!l(p)&&At(lt)})}var Pt=v(_e,2);{var et=At=>{var ht=Die(),Bt=m(ht),xi=v(m(Bt),4),ui=v(m(xi),2),Ci=v(xi,2);{var xt=ye=>{var Gt=Sie(),hi=m(Gt);z(()=>O(hi,l(b))),D(ye,Gt)};H(Ci,ye=>{l(b)&&ye(xt)})}var ci=v(Ci,2),Te=m(ci);z(()=>{ui.disabled=l(E),ci.disabled=l(E)||!l(C),O(Te,l(E)?"Signing in…":"Sign in")}),ms("submit",Bt,ye=>{ye.preventDefault(),A()}),Rt(ui,()=>l(C),ye=>x(C,ye)),D(At,ht)};H(Pt,At=>{l(p)&&At(et)})}var Et=v(Pt,2);{var Se=At=>{var ht=Aie();D(At,ht)};H(Et,At=>{l(R)&&At(Se)})}var He=v(Et,2);{var ut=At=>{var ht=kie();D(At,ht)};H(He,At=>{l(u)&&At(ut)})}D(o,ze),Ms()}Gs(["click"]);rP(Fie,{target:document.getElementById("app")});export{q6 as t};
@@ -1,4 +1,4 @@
1
- import{m as O}from"./monaco-langs-Dt8a9eeo.js";import{t as I}from"./index-CEmLX_uw.js";/*!-----------------------------------------------------------------------------
1
+ import{m as O}from"./monaco-langs-Dt8a9eeo.js";import{t as I}from"./index-D8qyUbwO.js";/*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
4
4
  * Released under the MIT license
@@ -172,7 +172,7 @@
172
172
  }
173
173
  })();
174
174
  </script>
175
- <script type="module" crossorigin src="/assets/index-CEmLX_uw.js"></script>
175
+ <script type="module" crossorigin src="/assets/index-D8qyUbwO.js"></script>
176
176
  <link rel="modulepreload" crossorigin href="/assets/monaco-langs-Dt8a9eeo.js">
177
177
  <link rel="stylesheet" crossorigin href="/assets/monaco-langs-DyX1CsEw.css">
178
178
  <link rel="stylesheet" crossorigin href="/assets/index-BvKmwc2a.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-home-engine",
3
- "version": "1.18.0",
3
+ "version": "1.18.1",
4
4
  "description": "Node.js based script runner for use in MQTT based Smart Home environments",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -384,26 +384,6 @@ require('./web/server').setStatsProvider(() => {
384
384
  // Push current script:running state so the UI green dots survive a browser reload.
385
385
  setWelcomeProvider(() => Object.keys(scripts).map((f) => ({ type: 'script:running', path: makeLabel(f).slice(0, -1), running: true })));
386
386
 
387
- if (config.heartbeat?.enabled) {
388
- const _hbInterval = typeof config.heartbeat.interval === 'number' ? config.heartbeat.interval : 50;
389
- const _hbThreshold = typeof config.heartbeat.threshold === 'number' ? config.heartbeat.threshold : 300;
390
- let _lastBeat = Date.now();
391
- const _hbTimer = setInterval(() => {
392
- const now = Date.now();
393
- const lag = now - _lastBeat - _hbInterval;
394
- _lastBeat = now;
395
- if (lag > _hbThreshold) {
396
- const label = _blockingScript ?? 'unknown';
397
- if (lag > 2000) {
398
- log.warn(`event loop blocked ${lag}ms — script: ${label}`);
399
- } else {
400
- log.warn(`event loop lag ${lag}ms — last active script: ${label}`);
401
- }
402
- }
403
- }, _hbInterval);
404
- _hbTimer.unref();
405
- }
406
-
407
387
  if (!config.url) {
408
388
  log.warn('no MQTT broker URL configured — set "url" in ' + path.join(require('os').homedir(), '.she', 'config.json'));
409
389
  }
@@ -1497,6 +1477,26 @@ function loadDir(dir) {
1497
1477
  }
1498
1478
  }
1499
1479
  function start() {
1480
+ if (config.heartbeat?.enabled) {
1481
+ const _hbInterval = typeof config.heartbeat.interval === 'number' ? config.heartbeat.interval : 50;
1482
+ const _hbThreshold = typeof config.heartbeat.threshold === 'number' ? config.heartbeat.threshold : 300;
1483
+ let _lastBeat = Date.now();
1484
+ const _hbTimer = setInterval(() => {
1485
+ const now = Date.now();
1486
+ const lag = now - _lastBeat - _hbInterval;
1487
+ _lastBeat = now;
1488
+ if (lag > _hbThreshold) {
1489
+ const label = _blockingScript ?? 'unknown';
1490
+ if (lag > 2000) {
1491
+ log.warn(`event loop blocked ${lag}ms — script: ${label}`);
1492
+ } else {
1493
+ log.warn(`event loop lag ${lag}ms — last active script: ${label}`);
1494
+ }
1495
+ }
1496
+ }, _hbInterval);
1497
+ _hbTimer.unref();
1498
+ }
1499
+
1500
1500
  if (config.file) {
1501
1501
  if (typeof config.file === 'string') {
1502
1502
  loadScript(config.file);