smart-home-engine 1.19.0 → 1.19.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-DXWg2fgD.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-DeZpXliO.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)),Bn=(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),Fn=(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 Bi,A as Ao,C as Ke,I as rs,D as wp,a as ws,g as xA,M as hi,b as Qi,E as da,c as q,r as Gn,d as Wr,e as S,f as s3,h as is,R as Ln,S as Ki,i as lo,j as zr,k as On,n as vn,o as Re,p as St,K as ks,q as Si,s as $t,t as Ns,u as ee,v as kn,O as za,w as Is,P as Fi,x as nC,y as Sp,z as vA,B as _l,F as ua,G as s1,H as Ys,U as Zn,J as Lf,L as Li,N as Sl,Q as o3,T as Eo,V as o1,W as r3,X as mA,$ as wi,Y as zn,Z as Nn,a0 as us,a1 as on,a2 as or,a3 as Bg,a4 as Vt,a5 as Xx,a6 as a3,a7 as l3,a8 as Rs,a9 as c3,aa as ha,ab as ko,ac as Ri,ad as _A,ae as ss,af as d3,ag as u3,ah as wo,ai as a0,aj as Bs,ak as z_,al as vo,am as Zc,an as Pw,ao as V_,ap as Gs,aq as If,ar as Ks,as as j_,at as $_,au as h3,av as Dp,aw as l0,ax as Rl,ay as f3,az as c0,aA as g3,aB as Tw,aC as p3,aD as x3,aE as MS,aF as ys,aG as bl,aH as mo,aI as fn,aJ as pl,aK as v3,aL as Ua,aM as ir,aN as $s,aO as fa,aP as Mw,aQ as Os,aR as Cs,aS as Sv,aT as hn,aU as bA,aV as m3,aW as Rw,aX as U_,aY as Nw,aZ as Ow,a_ as Ld,a$ as _3,b0 as Hw,b1 as b3,b2 as Ww,b3 as Nl,b4 as Ol,b5 as Pf,b6 as Fg,b7 as Oo,b8 as Ap,b9 as Dv,ba as sC,bb as Yn,bc as zw,bd as kp,be as q_,bf as C3,bg as CA,bh as Lg,bi as Tf,bj as Ig,bk as Bp,bl as G_,bm as Hn,bn as Xc,bo as Fp,bp as E3,bq as y3,br as Vw,bs as w3,bt as Av,bu as mr,bv as jw,bw as Mf,bx as Hl,by as d0,bz as Sn,bA as Rf,bB as EA,bC as Lp,bD as S3,bE as Id,bF as xi,bG as RS,bH as Yx,bI as yA,bJ as $r,bK as ra,bL as Jn,bM as Nf,bN as Tr,bO as Of,bP as ds,bQ as Pg,bR as Zu,bS as r1,bT as wA,bU as SA,bV as DA,bW as $w,bX as Io,bY as Un,bZ as Ip,b_ as AA,b$ as Cl,c0 as K_,c1 as D3,c2 as zh,c3 as NS,c4 as Pp,c5 as kA,c6 as Vh,c7 as A3,c8 as Ar,c9 as Z_,ca as k3,cb as Bo,cc as ga,cd as Tp,ce as Tg,cf as BA,cg as pr,ch as Mp,ci as X_,cj as B3,ck as F3,cl as L3,cm as u0,cn as qa,co as Us,cp as I3,cq as Uw,cr as P3,cs as T3,ct as OS,cu as M3,cv as Rp,cw as Dl,cx as a1,cy as Bu,cz as Al,cA as R3,cB as Va,cC as Mr,cD as Yo,cE as HS,cF as uo,cG as Np,cH as Wc,cI as Ga,cJ as N3,cK as pa,cL as Mg,cM as Y_,cN as FA,cO as O3,cP as H3,cQ as qw,cR as W3,cS as Rg,cT as z3,cU as fc,cV as Ng,cW as WS,cX as V3,cY as j3,cZ as Xa,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 fs,dd as X3,de as Zw,df as Y3,dg as jh,dh as zS,di as Q3,dj as J3,dk as e4,dl as t4,dm as i4,dn as n4,dp as Hf,dq as Q_,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 kv,dL as zA,dM as J_,dN as f4,dO as g4,dP as zc,dQ as Xw,dR as p4,dS as $S,dT as US,dU as x4,dV as $h,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 ja,e5 as qS,e6 as E4,e7 as Op,e8 as y4,e9 as $0,ea as GA,eb as GS,ec as Og,ed as KA,ee as Bv,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 kl,eo as eb,ep as k4,eq as JA,er as nr,es as Pd,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 Hg,eC as I4,eD as P4,eE as T4,eF as M4,eG as P0,eH as KS,eI as R4,eJ as N4,eK as O4,eL as Fv,eM as eo,eN as H4,eO as u1,eP as Xu,eQ as W4,eR as fl,eS as z4,eT as V4,eU as ok,eV as j4,eW as ag,eX as $4,eY as U4,eZ as q4,e_ as G4,e$ as ZS,f0 as XS,f1 as YS,f2 as Yu,f3 as Yw,f4 as rk,f5 as h1,f6 as Qx,f7 as ak,f8 as Lv,f9 as K4,fa as Z4,fb as X4,fc as Y4,fd as Qw,fe as lk,ff as Q4,fg as Iv,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 Pv,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 Ta,fL as Vc,fM as pL,fN as t8,fO as Jx,fP as xL,fQ as xl,fR as tb,fS as f1,fT as vL,fU as vk,fV as mk,fW as ho,fX as i8,fY as xx,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 Wf,gb as lg,gc as _k,gd as BL,ge as e9,gf as ev,gg as vx,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 ib,gr as ML,gs as Tv,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 mh,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 bc,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 Bl,hl as Rk,hm as a9,hn as d8,ho as o7,hp as Nk,hq as r7,hr as a7,hs as nb,ht as sb,hu as Qu,hv as ob,hw as Hp,hx as l7,hy as rb,hz as c7,hA as d7,hB as u7,hC as Ok,hD as T0,hE as h7,hF as f7,hG as g7,hH as p7,hI as Wp,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 vd,i8 as Go,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,Mv=Array.prototype.includes,ab=Array.from,O7=Object.defineProperty,lf=Object.getOwnPropertyDescriptor,H7=Object.getOwnPropertyDescriptors,W7=Object.prototype,z7=Array.prototype,Uk=Object.getPrototypeOf,h8=Object.isExtensible;const lb=()=>{};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 po=2,zf=4,cb=8,Gk=1<<24,aa=16,ca=32,jc=64,b1=128,Or=512,to=1024,oo=2048,Ka=4096,To=8192,Hr=16384,h0=32768,C1=1<<25,Vf=65536,Rv=1<<17,$7=1<<18,f0=1<<19,U7=1<<20,Oa=1<<25,Fu=65536,Nv=1<<21,cf=1<<22,Cc=1<<23,Td=Symbol("$state"),q7=Symbol("legacy props"),G7=Symbol(""),tv=Symbol("attributes"),E1=Symbol("class"),y1=Symbol("style"),U0=Symbol("text"),iv=Symbol("form reset"),db=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,Js=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,go=null;function jf(o){go=o}function Ts(o,e=!1,t){go={p:go,i:!1,c:null,e:null,s:o,x:null,r:qn,l:null}}function Ms(o){var e=go,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,go=e.p,o??{}}function Jk(){return!0}let Ed=[];function e6(){var o=Ed;Ed=[],V7(o)}function Ec(o){if(Ed.length===0&&!dg){var e=Ed;queueMicrotask(()=>{e===Ed&&e6()})}Ed.push(o)}function yI(){for(;Ed.length>0;)e6()}function t6(o){var e=qn;if(e===null)return $n.f|=Cc,o;if((e.f&h0)===0&&(e.f&zf)===0)throw o;gc(o,e)}function gc(o,e){for(;e!==null;){if((e.f&b1)!==0){if((e.f&h0)===0)throw o;try{e.b.error(o);return}catch(t){o=t}}e=e.parent}throw o}const wI=-7169;function zs(o,e){o.f=o.f&wI|e}function c9(o){(o.f&Or)!==0||o.deps===null?zs(o,to):zs(o,Ka)}function i6(o){if(o!==null)for(const e of o)(e.f&po)===0||(e.f&Fu)===0||(e.f^=Fu,i6(e.deps))}function n6(o,e,t){(o.f&oo)!==0?e.add(o):(o.f&Ka)!==0&&t.add(o),i6(o.deps),zs(o,to)}let mx=!1;function SI(o){var e=mx;try{return mx=!1,[o(),mx]}finally{mx=e}}let dC=null,_h=null,ln=null,cg=null,co=null,w1=null,dg=!1,uC=!1,Uh=null,nv=null;var g8=0;let DI=1;var ff,dc,Dd,gf,pf,xf,cl,vf,Ko,mp,dl,Yr,Fa,mf,Ad,gs,S1,q0,D1,s6,o6,Mh,AI,G0;const Km=class Km{constructor(){Bn(this,gs);Mn(this,"id",DI++);Bn(this,ff,!1);Mn(this,"linked",!0);Bn(this,dc,null);Bn(this,Dd,null);Mn(this,"async_deriveds",new Map);Mn(this,"current",new Map);Mn(this,"previous",new Map);Bn(this,gf,new Set);Bn(this,pf,new Set);Bn(this,xf,0);Bn(this,cl,new Map);Bn(this,vf,null);Bn(this,Ko,[]);Bn(this,mp,[]);Bn(this,dl,new Set);Bn(this,Yr,new Set);Bn(this,Fa,new Map);Bn(this,mf,new Set);Mn(this,"is_fork",!1);Bn(this,Ad,!1);_h===null?dC=_h=this:(Fn(_h,Dd,this),Fn(this,dc,_h)),_h=this}skip_effect(e){Be(this,Fa).has(e)||Be(this,Fa).set(e,{d:[],m:[]}),Be(this,mf).delete(e)}unskip_effect(e,t=i=>this.schedule(i)){var i=Be(this,Fa).get(e);if(i){Be(this,Fa).delete(e);for(var n of i.d)zs(n,oo),t(n);for(n of i.m)zs(n,Ka),t(n)}Be(this,mf).add(e)}capture(e,t,i=!1){e.v!==Js&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&Cc)===0&&(this.current.set(e,[t,i]),co==null||co.set(e,t)),this.is_fork||(e.v=t)}activate(){ln=this}deactivate(){ln=null,co=null}flush(){try{uC=!0,ln=this,ns(this,gs,q0).call(this)}finally{g8=0,w1=null,Uh=null,nv=null,uC=!1,ln=null,co=null,Md.clear()}}discard(){var e;for(const t of Be(this,pf))t(this);Be(this,pf).clear(),ns(this,gs,G0).call(this),(e=Be(this,vf))==null||e.resolve()}register_created_effect(e){Be(this,mp).push(e)}increment(e,t){if(Fn(this,xf,Be(this,xf)+1),e){let i=Be(this,cl).get(t)??0;Be(this,cl).set(t,i+1)}}decrement(e,t){if(Fn(this,xf,Be(this,xf)-1),e){let i=Be(this,cl).get(t)??0;i===1?Be(this,cl).delete(t):Be(this,cl).set(t,i-1)}Be(this,Ad)||(Fn(this,Ad,!0),Ec(()=>{Fn(this,Ad,!1),this.linked&&this.flush()}))}transfer_effects(e,t){for(const i of e)Be(this,dl).add(i);for(const i of t)Be(this,Yr).add(i);e.clear(),t.clear()}oncommit(e){Be(this,gf).add(e)}ondiscard(e){Be(this,pf).add(e)}settled(){return(Be(this,vf)??Fn(this,vf,qk())).promise}static ensure(){if(ln===null){const e=ln=new Km;!uC&&!dg&&Ec(()=>{Be(e,ff)||e.flush()})}return ln}apply(){{co=null;return}}schedule(e){var n;if(w1=e,(n=e.b)!=null&&n.is_pending&&(e.f&(zf|cb|Gk))!==0&&(e.f&h0)===0){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var i=t.f;if(Uh!==null&&t===qn&&($n===null||($n.f&po)===0))return;if((i&(jc|ca))!==0){if((i&to)===0)return;t.f^=to}}Be(this,Ko).push(t)}};ff=new WeakMap,dc=new WeakMap,Dd=new WeakMap,gf=new WeakMap,pf=new WeakMap,xf=new WeakMap,cl=new WeakMap,vf=new WeakMap,Ko=new WeakMap,mp=new WeakMap,dl=new WeakMap,Yr=new WeakMap,Fa=new WeakMap,mf=new WeakMap,Ad=new WeakMap,gs=new WeakSet,S1=function(){if(this.is_fork)return!0;for(const i of Be(this,cl).keys()){for(var e=i,t=!1;e.parent!==null;){if(Be(this,Fa).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1},q0=function(){var d,u,f,g;Fn(this,ff,!0),g8++>1e3&&(ns(this,gs,G0).call(this),BI());for(const p of Be(this,dl))Be(this,Yr).delete(p),zs(p,oo),this.schedule(p);for(const p of Be(this,Yr))zs(p,Ka),this.schedule(p);const e=Be(this,Ko);Fn(this,Ko,[]),this.apply();var t=Uh=[],i=[],n=nv=[];for(const p of e)try{ns(this,gs,D1).call(this,p,t,i)}catch(C){throw l6(p),ns(this,gs,S1).call(this)||this.discard(),C}if(ln=null,n.length>0){var s=Km.ensure();for(const p of n)s.schedule(p)}if(Uh=null,nv=null,ns(this,gs,S1).call(this)){ns(this,gs,Mh).call(this,i),ns(this,gs,Mh).call(this,t);for(const[p,C]of Be(this,Fa))a6(p,C);n.length>0&&ns(d=ln,gs,q0).call(d);return}const r=ns(this,gs,s6).call(this);if(r){ns(this,gs,Mh).call(this,i),ns(this,gs,Mh).call(this,t),ns(u=r,gs,o6).call(u,this);return}Be(this,dl).clear(),Be(this,Yr).clear();for(const p of Be(this,gf))p(this);Be(this,gf).clear(),cg=this,p8(i),p8(t),cg=null,(f=Be(this,vf))==null||f.resolve();var a=ln;if(Be(this,xf)===0&&(Be(this,Ko).length===0||a!==null)&&ns(this,gs,G0).call(this),Be(this,Ko).length>0)if(a!==null){const p=a;Be(p,Ko).push(...Be(this,Ko).filter(C=>!Be(p,Ko).includes(C)))}else a=this;a!==null&&ns(g=a,gs,q0).call(g)},D1=function(e,t,i){e.f^=to;for(var n=e.first;n!==null;){var s=n.f,r=(s&(ca|jc))!==0,a=r&&(s&to)!==0,d=a||(s&To)!==0||Be(this,Fa).has(n);if(!d&&n.fn!==null){r?n.f^=to:(s&zf)!==0?t.push(n):Vp(n)&&((s&aa)!==0&&Be(this,Yr).add(n),Uf(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,dc);e!==null;){if(!e.is_fork){for(const[t,[,i]]of this.current)if(e.current.has(t)&&!i)return e}e=Be(e,dc)}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,dl),Be(e,Yr));const t=n=>{var s=n.reactions;if(s!==null)for(const d of s){var r=d.f;if((r&po)!==0)t(d);else{var a=d;r&(cf|aa)&&!this.async_deriveds.has(a)&&(Be(this,Yr).delete(a),zs(a,oo),this.schedule(a))}}};for(const n of this.current.keys())t(n);this.oncommit(()=>e.discard()),ns(i=e,gs,G0).call(i),ln=this,ns(this,gs,q0).call(this)},Mh=function(e){for(var t=0;t<e.length;t+=1)n6(e[t],Be(this,dl),Be(this,Yr))},AI=function(){var f;for(let g=dC;g!==null;g=Be(g,Dd)){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,ff)){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,mf))g.unskip_effect(p,C=>{var b;(C.f&(aa|cf))!==0?g.schedule(C):ns(b=g,gs,Mh).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,mp))(p.f&(Hr|To|Rv))===0&&d9(p,d,r)&&((p.f&(cf|aa))!==0?(zs(p,oo),g.schedule(p)):Be(g,dl).add(p));if(Be(g,Ko).length>0&&!Be(g,Ad)){g.apply();for(var u of Be(g,Ko))ns(f=g,gs,D1).call(f,u,[],[]);Fn(g,Ko,[])}g.deactivate()}}}},G0=function(){if(this.linked){var e=Be(this,dc),t=Be(this,Dd);e===null?dC=t:Fn(e,Dd,t),t===null?_h=e:Fn(t,dc,e),this.linked=!1}};let Lu=Km;function kI(o){var e=dg;dg=!0;try{for(var t;;){if(yI(),ln===null)return t;ln.flush()}}finally{dg=e}}function BI(){try{eI()}catch(o){gc(o,w1)}}let Kr=null;function p8(o){var e=o.length;if(e!==0){for(var t=0;t<e;){var i=o[t++];if((i.f&(Hr|To))===0&&Vp(i)&&(Kr=new Set,Uf(i),i.deps===null&&i.first===null&&i.nodes===null&&i.teardown===null&&i.ac===null&&y6(i),(Kr==null?void 0:Kr.size)>0)){Md.clear();for(const n of Kr){if((n.f&(Hr|To))!==0)continue;const s=[n];let r=n.parent;for(;r!==null;)Kr.has(r)&&(Kr.delete(r),s.push(r)),r=r.parent;for(let a=s.length-1;a>=0;a--){const d=s[a];(d.f&(Hr|To))===0&&Uf(d)}}Kr.clear()}}Kr=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&po)!==0?r6(n,e,t,i):(s&(cf|aa))!==0&&(s&oo)===0&&d9(n,e,i)&&(zs(n,oo),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(Mv.call(e,n))return!0;if((n.f&po)!==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&ca)!==0&&(o.f&to)!==0)){(o.f&oo)!==0?e.d.push(o):(o.f&Ka)!==0&&e.m.push(o),zs(o,to);for(var t=o.first;t!==null;)a6(t,e),t=t.next}}function l6(o){zs(o,to);for(var e=o.first;e!==null;)l6(e),e=e.next}function FI(o){let e=0,t=Iu(0),i;return()=>{p9()&&(l(t),hb(()=>(e===0&&(i=zl(()=>o(()=>ug(t)))),e+=1,()=>{Ec(()=>{e-=1,e===0&&(i==null||i(),i=void 0,ug(t))})})))}}var LI=Vf|f0;function II(o,e,t,i){new PI(o,e,t,i)}var Br,Iw,Fr,kd,Zo,Lr,Fo,ur,ul,Bd,uc,_f,_p,bp,hl,Zm,Vs,TI,MI,RI,A1,sv,ov,k1,B1;class PI{constructor(e,t,i,n){Bn(this,Vs);Mn(this,"parent");Mn(this,"is_pending",!1);Mn(this,"transform_error");Bn(this,Br);Bn(this,Iw,null);Bn(this,Fr);Bn(this,kd);Bn(this,Zo);Bn(this,Lr,null);Bn(this,Fo,null);Bn(this,ur,null);Bn(this,ul,null);Bn(this,Bd,0);Bn(this,uc,0);Bn(this,_f,!1);Bn(this,_p,new Set);Bn(this,bp,new Set);Bn(this,hl,null);Bn(this,Zm,FI(()=>(Fn(this,hl,Iu(Be(this,Bd))),()=>{Fn(this,hl,null)})));var s;Fn(this,Br,e),Fn(this,Fr,t),Fn(this,kd,r=>{var a=qn;a.b=this,a.f|=b1,i(r)}),this.parent=qn.b,this.transform_error=n??((s=this.parent)==null?void 0:s.transform_error)??(r=>r),Fn(this,Zo,m9(()=>{ns(this,Vs,A1).call(this)},LI))}defer_effect(e){n6(e,Be(this,_p),Be(this,bp))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!Be(this,Fr).pending}update_pending_count(e,t){ns(this,Vs,k1).call(this,e,t),Fn(this,Bd,Be(this,Bd)+e),!(!Be(this,hl)||Be(this,_f))&&(Fn(this,_f,!0),Ec(()=>{Fn(this,_f,!1),Be(this,hl)&&$f(Be(this,hl),Be(this,Bd))}))}get_effect_pending(){return Be(this,Zm).call(this),l(Be(this,hl))}error(e){if(!Be(this,Fr).onerror&&!Be(this,Fr).failed)throw e;ln!=null&&ln.is_fork?(Be(this,Lr)&&ln.skip_effect(Be(this,Lr)),Be(this,Fo)&&ln.skip_effect(Be(this,Fo)),Be(this,ur)&&ln.skip_effect(Be(this,ur)),ln.oncommit(()=>{ns(this,Vs,B1).call(this,e)})):ns(this,Vs,B1).call(this,e)}}Br=new WeakMap,Iw=new WeakMap,Fr=new WeakMap,kd=new WeakMap,Zo=new WeakMap,Lr=new WeakMap,Fo=new WeakMap,ur=new WeakMap,ul=new WeakMap,Bd=new WeakMap,uc=new WeakMap,_f=new WeakMap,_p=new WeakMap,bp=new WeakMap,hl=new WeakMap,Zm=new WeakMap,Vs=new WeakSet,TI=function(){try{Fn(this,Lr,Ir(()=>Be(this,kd).call(this,Be(this,Br))))}catch(e){this.error(e)}},MI=function(e){const t=Be(this,Fr).failed;t&&Fn(this,ur,Ir(()=>{t(Be(this,Br),()=>e,()=>()=>{})}))},RI=function(){const e=Be(this,Fr).pending;e&&(this.is_pending=!0,Fn(this,Fo,Ir(()=>e(Be(this,Br)))),Ec(()=>{var t=Fn(this,ul,document.createDocumentFragment()),i=El();t.append(i),Fn(this,Lr,ns(this,Vs,ov).call(this,()=>Ir(()=>Be(this,kd).call(this,i)))),Be(this,uc)===0&&(Be(this,Br).before(t),Fn(this,ul,null),Nd(Be(this,Fo),()=>{Fn(this,Fo,null)}),ns(this,Vs,sv).call(this,ln))}))},A1=function(){try{if(this.is_pending=this.has_pending_snippet(),Fn(this,uc,0),Fn(this,Bd,0),Fn(this,Lr,Ir(()=>{Be(this,kd).call(this,Be(this,Br))})),Be(this,uc)>0){var e=Fn(this,ul,document.createDocumentFragment());b9(Be(this,Lr),e);const t=Be(this,Fr).pending;Fn(this,Fo,Ir(()=>t(Be(this,Br))))}else ns(this,Vs,sv).call(this,ln)}catch(t){this.error(t)}},sv=function(e){this.is_pending=!1,e.transfer_effects(Be(this,_p),Be(this,bp))},ov=function(e){var t=qn,i=$n,n=go;Za(Be(this,Zo)),Vr(Be(this,Zo)),jf(Be(this,Zo).ctx);try{return Lu.ensure(),e()}catch(s){return t6(s),null}finally{Za(t),Vr(i),jf(n)}},k1=function(e,t){var i;if(!this.has_pending_snippet()){this.parent&&ns(i=this.parent,Vs,k1).call(i,e,t);return}Fn(this,uc,Be(this,uc)+e),Be(this,uc)===0&&(ns(this,Vs,sv).call(this,t),Be(this,Fo)&&Nd(Be(this,Fo),()=>{Fn(this,Fo,null)}),Be(this,ul)&&(Be(this,Br).before(Be(this,ul)),Fn(this,ul,null)))},B1=function(e){Be(this,Lr)&&(sr(Be(this,Lr)),Fn(this,Lr,null)),Be(this,Fo)&&(sr(Be(this,Fo)),Fn(this,Fo,null)),Be(this,ur)&&(sr(Be(this,ur)),Fn(this,ur,null));var t=Be(this,Fr).onerror;let i=Be(this,Fr).failed;var n=!1,s=!1;const r=()=>{if(n){bI();return}n=!0,s&&oI(),Be(this,ur)!==null&&Nd(Be(this,ur),()=>{Fn(this,ur,null)}),ns(this,Vs,ov).call(this,()=>{ns(this,Vs,A1).call(this)})},a=d=>{try{s=!0,t==null||t(d,r),s=!1}catch(u){gc(u,Be(this,Zo)&&Be(this,Zo).parent)}i&&Fn(this,ur,ns(this,Vs,ov).call(this,()=>{try{return Ir(()=>{var u=qn;u.b=this,u.f|=b1,i(Be(this,Br),()=>d,()=>r)})}catch(u){return gc(u,Be(this,Zo).parent),null}}))};Ec(()=>{var d;try{d=this.transform_error(e)}catch(u){gc(u,Be(this,Zo)&&Be(this,Zo).parent);return}d!==null&&typeof d=="object"&&typeof d.then=="function"?d.then(a,u=>gc(u,Be(this,Zo)&&Be(this,Zo).parent)):a(d)})};function NI(o,e,t,i){const n=Wg;var s=o.filter(p=>!p.settled);if(t.length===0&&s.length===0){i(e.map(n));return}var r=qn,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&Hr)===0){a();try{i(p)}catch(C){gc(C,r)}Ov()}}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=>gc(p,r)).finally(f)}d?d.then(()=>{a(),g(),Ov()}):g()}function OI(){var o=qn,e=$n,t=go,i=ln;return function(s=!0){Za(o),Vr(e),jf(t),s&&(o.f&Hr)===0&&(i==null||i.activate(),i==null||i.apply())}}function Ov(o=!0){Za(null),Vr(null),jf(null),o&&(ln==null||ln.deactivate())}function c6(){var o=qn,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 Wg(o){var e=po|oo;return qn!==null&&(qn.f|=f0),{ctx:go,deps:null,effects:null,equals:Yk,f:e,fn:o,reactions:null,rv:0,v:Js,wv:0,parent:qn,ac:null}}const _x=Symbol("obsolete");function HI(o,e,t){let i=qn;i===null&&Z7();var n=void 0,s=Iu(Js),r=!$n,a=new Set;return YI(()=>{var C,b;var d=qn,u=qk();n=u.promise;try{Promise.resolve(o()).then(u.resolve,y=>{y!==db&&u.reject(y)}).finally(Ov)}catch(y){u.reject(y),Ov()}var f=ln;if(r){if((d.f&h0)!==0)var g=c6();if((C=i.b)!=null&&C.is_rendered())(b=f.async_deriveds.get(d))==null||b.reject(_x);else for(const y of a.values())y.reject(_x);a.add(u),f.async_deriveds.set(d,u)}const p=(y,w=void 0)=>{g==null||g(),a.delete(u),w!==_x&&(f.activate(),w?(s.f|=Cc,$f(s,w)):((s.f&Cc)!==0&&(s.f^=Cc),$f(s,y)),f.deactivate())};u.promise.then(p,y=>p(null,y||"unknown"))}),x9(()=>{for(const d of a)d.reject(_x)}),new Promise(d=>{function u(f){function g(){f===n?d(s):u(n)}f.then(g,g)}u(n)})}function Ot(o){const e=Wg(o);return D6(e),e}function h9(o){const e=Wg(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)sr(e[t])}}function f9(o){var e,t=qn,i=o.parent;if(!Fl&&i!==null&&o.v!==Js&&(i.f&(Hr|To))!==0)return mI(),o.v;Za(i);try{o.f&=~Fu,WI(o),e=F6(o)}finally{Za(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),cg==null||cg.capture(o,e,!0)):o.v=e,o.deps===null))){zs(o,to);return}Fl||(co!==null?(p9()||ln!=null&&ln.is_fork)&&co.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(db),i.fn!==null&&(i.teardown=lb),i.ac=null,zg(i,0),_9(i))}function u6(o){if(o.effects!==null)for(const e of o.effects)e.teardown&&e.fn!==null&&Uf(e)}let Hv=new Set;const Md=new Map;let h6=!1;function Iu(o,e){var t={f:0,v:o,reactions:null,equals:Yk,rv:0,wv:0};return t}function B(o,e){const t=Iu(o);return D6(t),t}function VI(o,e=!1,t=!0){const i=Iu(o);return e||(i.equals=Qk),i}function x(o,e,t=!1){$n!==null&&(!la||($n.f&Rv)!==0)&&Jk()&&($n.f&(po|aa|cf|Rv))!==0&&($a===null||!$a.has(o))&&sI();let i=t?Di(e):e;return $f(o,i,nv)}function $f(o,e,t=null){if(!o.equals(e)){Md.set(o,Fl?e:o.v);var i=Lu.ensure();if(i.capture(o,e),(o.f&po)!==0){const n=o;(o.f&oo)!==0&&f9(n),co===null&&c9(n)}o.wv=k6(),f6(o,oo,t),qn!==null&&(qn.f&to)!==0&&(qn.f&(ca|jc))===0&&(kr===null?JI([o]):kr.push(o)),!i.is_fork&&Hv.size>0&&!h6&&jI()}return e}function jI(){h6=!1;for(const o of Hv){(o.f&to)!==0&&zs(o,Ka);let e;try{e=Vp(o)}catch{e=!0}e&&Uf(o)}Hv.clear()}function x8(o,e=1){var t=l(o),i=e===1?t++:t--;return x(o,t),i}function ug(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&oo)===0;if(d&&zs(r,e),(a&Rv)!==0)Hv.add(r);else if((a&po)!==0){var u=r;co==null||co.delete(u),(a&Fu)===0&&(a&Or&&(qn===null||(qn.f&Nv)===0)&&(r.f|=Fu),f6(u,Ka,t))}else if(d){var f=r;(a&aa)!==0&&Kr!==null&&Kr.add(f),t!==null?t.push(f):u9(f)}}}function Di(o){if(typeof o!="object"||o===null||Td 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=Od,r=a=>{if(Od===s)return a();var d=$n,u=Od;Vr(null),b8(s);var f=a();return Vr(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(Js));t.set(d,f),ug(n)}}else x(u,Js),ug(n);return!0},get(a,d,u){var C;if(d===Td)return o;var f=t.get(d),g=d in a;if(f===void 0&&(!g||(C=lf(a,d))!=null&&C.writable)&&(f=r(()=>{var b=Di(g?a[d]:Js),y=B(b);return y}),t.set(d,f)),f!==void 0){var p=l(f);return p===Js?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!==Js)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(a,d){var p;if(d===Td)return!0;var u=t.get(d),f=u!==void 0&&u.v!==Js||Reflect.has(a,d);if(u!==void 0||qn!==null&&(!f||(p=lf(a,d))!=null&&p.writable)){u===void 0&&(u=r(()=>{var C=f?Di(a[d]):Js,b=B(C);return b}),t.set(d,u));var g=l(u);if(g===Js)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,Js):C in a&&(b=r(()=>B(Js)),t.set(C+"",b))}if(g===void 0)(!p||(M=lf(a,d))!=null&&M.writable)&&(g=r(()=>B(void 0)),x(g,Di(u)),t.set(d,g));else{p=g.v!==Js;var y=r(()=>Di(u));x(g,y)}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)}ug(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!==Js});for(var[u,f]of t)f.v!==Js&&!(u in a)&&d.push(u);return d},setPrototypeOf(){nI()}})}function v8(o){try{if(o!==null&&typeof o=="object"&&Td in o)return o[Td]}catch{}return o}function $I(o,e){return Object.is(v8(o),v8(e))}var Rd,g6,p6,x6,v6;function UI(){if(Rd===void 0){Rd=window,g6=document,p6=/Firefox/.test(navigator.userAgent);var o=Element.prototype,e=Node.prototype,t=Text.prototype;x6=lf(e,"firstChild").get,v6=lf(e,"nextSibling").get,h8(o)&&(o[E1]=void 0,o[tv]=null,o[y1]=void 0,o.__e=void 0),h8(t)&&(t[U0]=void 0)}}function El(o=""){return document.createTextNode(o)}function Ha(o){return x6.call(o)}function zp(o){return v6.call(o)}function m(o,e){return Ha(o)}function bt(o,e=!1){{var t=Ha(o);return t instanceof Comment&&t.data===""?zp(t):t}}function v(o,e=1,t=!1){let i=o;for(;e--;)i=zp(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[iv])==null||e.call(t)})},{capture:!0}))}function ub(o){var e=$n,t=qn;Vr(null),Za(null);try{return o()}finally{Vr(e),Za(t)}}function g9(o,e,t,i=t){o.addEventListener(e,()=>ub(t));const n=o[iv];n?o[iv]=()=>{n(),i(!0)}:o[iv]=()=>i(!0),GI()}function KI(o){qn===null&&($n===null&&J7(),Q7()),Fl&&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 Wl(o,e){var t=qn;t!==null&&(t.f&To)!==0&&(o|=To);var i={ctx:go,deps:null,nodes:null,f:o|oo|Or,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&zf)!==0)Uh!==null?Uh.push(i):Lu.ensure().schedule(i);else if(e!==null){try{Uf(i)}catch(r){throw sr(i),r}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&(n.f&f0)===0&&(n=n.first,(o&aa)!==0&&(o&Vf)!==0&&n!==null&&(n.f|=Vf))}if(n!==null&&(n.parent=t,t!==null&&ZI(n,t),$n!==null&&($n.f&po)!==0&&(o&jc)===0)){var s=$n;(s.effects??(s.effects=[])).push(n)}return i}function p9(){return $n!==null&&!la}function x9(o){const e=Wl(cb,null);return zs(e,to),e.teardown=o,e}function Qn(o){KI();var e=qn.f,t=!$n&&(e&ca)!==0&&go!==null&&!go.i;if(t){var i=go;(i.e??(i.e=[])).push(o)}else return b6(o)}function b6(o){return Wl(zf|U7,o)}function XI(o){Lu.ensure();const e=Wl(jc|f0,o);return(t={})=>new Promise(i=>{t.outro?Nd(e,()=>{sr(e),i(void 0)}):(sr(e),i(void 0))})}function v9(o){return Wl(zf,o)}function YI(o){return Wl(cf|f0,o)}function hb(o,e=0){return Wl(cb|e,o)}function z(o,e=[],t=[],i=[]){NI(i,e,t,n=>{Wl(cb,()=>o(...n.map(l)))})}function m9(o,e=0){var t=Wl(aa|e,o);return t}function Ir(o){return Wl(ca|f0,o)}function C6(o){var e=o.teardown;if(e!==null){const t=Fl,i=$n;_8(!0),Vr(null);try{e.call(null)}finally{_8(t),Vr(i)}}}function _9(o,e=!1){var t=o.first;for(o.first=o.last=null;t!==null;){const n=t.ac;n!==null&&ub(()=>{n.abort(db)});var i=t.next;(t.f&jc)!==0?t.parent=null:sr(t,e),t=i}}function QI(o){for(var e=o.first;e!==null;){var t=e.next;(e.f&ca)===0&&sr(e),e=t}}function sr(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),zs(o,C1),_9(o,e&&!t),zg(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|=Hr;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:zp(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 Nd(o,e,t=!0){var i=[];w6(o,i,!0);var n=()=>{t&&sr(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&To)===0){o.f^=To;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&jc)===0){var r=(n.f&Vf)!==0||(n.f&ca)!==0&&(o.f&aa)!==0;w6(n,e,r?t:!1)}n=s}}}function Wv(o){S6(o,!0)}function S6(o,e){if((o.f&To)!==0){o.f^=To,(o.f&to)===0&&(zs(o,oo),Lu.ensure().schedule(o));for(var t=o.first;t!==null;){var i=t.next,n=(t.f&Vf)!==0||(t.f&ca)!==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:zp(t);e.append(t),t=n}}let rv=!1,Fl=!1;function _8(o){Fl=o}let $n=null,la=!1;function Vr(o){$n=o}let qn=null;function Za(o){qn=o}let $a=null;function D6(o){$n!==null&&($a??($a=new Set)).add(o)}let Xo=null,cr=0,kr=null;function JI(o){kr=o}let A6=1,yd=0,Od=yd;function b8(o){Od=o}function k6(){return++A6}function Vp(o){var e=o.f;if((e&oo)!==0)return!0;if(e&po&&(o.f&=~Fu),(e&Ka)!==0){for(var t=o.deps,i=t.length,n=0;n<i;n++){var s=t[n];if(Vp(s)&&d6(s),s.wv>o.wv)return!0}(e&Or)!==0&&co===null&&zs(o,to)}return!1}function B6(o,e,t=!0){var i=o.reactions;if(i!==null&&!($a!==null&&$a.has(o)))for(var n=0;n<i.length;n++){var s=i[n];(s.f&po)!==0?B6(s,e,!1):e===s&&(t?zs(s,oo):(s.f&to)!==0&&zs(s,Ka),u9(s))}}function F6(o){var y;var e=Xo,t=cr,i=kr,n=$n,s=$a,r=go,a=la,d=Od,u=o.f;Xo=null,cr=0,kr=null,$n=(u&(ca|jc))===0?o:null,$a=null,jf(o.ctx),la=!1,Od=++yd,o.ac!==null&&(ub(()=>{o.ac.abort(db)}),o.ac=null);try{o.f|=Nv;var f=o.fn,g=f();o.f|=h0;var p=o.deps,C=ln==null?void 0:ln.is_fork;if(Xo!==null){var b;if(C||zg(o,cr),p!==null&&cr>0)for(p.length=cr+Xo.length,b=0;b<Xo.length;b++)p[cr+b]=Xo[b];else o.deps=p=Xo;if(p9()&&(o.f&Or)!==0)for(b=cr;b<p.length;b++)((y=p[b]).reactions??(y.reactions=[])).push(o)}else!C&&p!==null&&cr<p.length&&(zg(o,cr),p.length=cr);if(Jk()&&kr!==null&&!la&&p!==null&&(o.f&(po|Ka|oo))===0)for(b=0;b<kr.length;b++)B6(kr[b],o);if(n!==null&&n!==o){if(yd++,n.deps!==null)for(let w=0;w<t;w+=1)n.deps[w].rv=yd;if(e!==null)for(const w of e)w.rv=yd;kr!==null&&(i===null?i=kr:i.push(...kr))}return(o.f&Cc)!==0&&(o.f^=Cc),g}catch(w){return t6(w)}finally{o.f^=Nv,Xo=e,cr=t,kr=i,$n=n,$a=s,jf(r),la=a,Od=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&po)!==0&&(Xo===null||!Mv.call(Xo,e))){var s=e;(s.f&Or)!==0&&(s.f^=Or,s.f&=~Fu),s.v!==Js&&c9(s),zI(s),zg(s,0)}}function zg(o,e){var t=o.deps;if(t!==null)for(var i=e;i<t.length;i++)eP(o,t[i])}function Uf(o){var e=o.f;if((e&Hr)===0){zs(o,to);var t=qn,i=rv;qn=o,rv=!0;try{(e&(aa|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&oo)!==0&&o.deps}finally{rv=i,qn=t}}}async function gl(){await Promise.resolve(),kI()}function l(o){var e=o.f,t=(e&po)!==0;if($n!==null&&!la){var i=qn!==null&&(qn.f&Hr)!==0;if(!i&&($a===null||!$a.has(o))){var n=$n.deps;if(($n.f&Nv)!==0)o.rv<yd&&(o.rv=yd,Xo===null&&n!==null&&n[cr]===o?cr++:Xo===null?Xo=[o]:Xo.push(o));else{$n.deps??($n.deps=[]),Mv.call($n.deps,o)||$n.deps.push(o);var s=o.reactions;s===null?o.reactions=[$n]:Mv.call(s,$n)||s.push($n)}}}if(Fl&&Md.has(o))return Md.get(o);if(t){var r=o;if(Fl){var a=r.v;return((r.f&to)===0&&r.reactions!==null||I6(r))&&(a=f9(r)),Md.set(r,a),a}var d=(r.f&Or)===0&&!la&&$n!==null&&(rv||($n.f&Or)!==0),u=(r.f&h0)===0;Vp(r)&&(d&&(r.f|=Or),d6(r)),d&&!u&&(u6(r),L6(r))}if(co!=null&&co.has(o))return co.get(o);if((o.f&Cc)!==0)throw o.v;return o.v}function L6(o){if(o.f|=Or,o.deps!==null)for(const e of o.deps)(e.reactions??(e.reactions=[])).push(o),(e.f&po)!==0&&(e.f&Or)===0&&(u6(e),L6(e))}function I6(o){if(o.v===Js)return!0;if(o.deps===null)return!1;for(const e of o.deps)if(Md.has(e)||(e.f&po)!==0&&I6(e))return!0;return!1}function zl(o){var e=la;try{return la=!0,o()}finally{la=e}}const tP=["touchstart","touchmove"];function iP(o){return tP.includes(o)}const wd=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 ub(()=>t==null?void 0:t.call(this,s))}return o.startsWith("pointer")||o.startsWith("touch")||o==="wheel"?Ec(()=>{e.addEventListener(o,n,i)}):e.addEventListener(o,n,i),n}function _s(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[wd]??(e[wd]={}))[o]=t}function qs(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 y,w;var e=this,t=e.ownerDocument,i=o.type,n=((y=o.composedPath)==null?void 0:y.call(o))||[],s=n[0]||o.target;C8=o;var r=0,a=C8===o&&o[wd];if(a){var d=n.indexOf(a);if(d!==-1&&(e===document||e===window)){o[wd]=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=$n,g=qn;Vr(null),Za(null);try{for(var p,C=[];s!==null&&s!==e;){try{var b=(w=s[wd])==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[wd]=e,delete o.currentTarget,Vr(f),Za(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 Pu(o,e){var t=qn;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=Ha(n)));var r=i||p6?document.importNode(n,!0):n.cloneNode(!0);if(t){var a=Ha(r),d=r.lastChild;Pu(a,d)}else Pu(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=Ha(r);s=Ha(a)}var d=s.cloneNode(!0);return Pu(d,d),d}}function fb(o,e){return oP(o,e,"svg")}function ro(o=""){{var e=El(o+"");return Pu(e,e),e}}function As(){var o=document.createDocumentFragment(),e=document.createComment(""),t=El();return o.append(e,t),Pu(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[U0]??(o[U0]=o.nodeValue))&&(o[U0]=t,o.nodeValue=`${t}`)}function rP(o,e){return aP(o,e)}const bx=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(El());II(f,{pending:()=>{}},C=>{Ts({});var b=go;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 y=C[b];if(!g.has(y)){g.add(y);var w=iP(y);for(const M of[e,document]){var A=bx.get(M);A===void 0&&(A=new Map,bx.set(M,A));var I=A.get(y);I===void 0?(M.addEventListener(y,L1,{passive:w}),A.set(y,1)):A.set(y,I+1)}}}};return p(ab(P6)),F1.add(p),()=>{var w;for(var C of g)for(const A of[e,document]){var b=bx.get(A),y=b.get(C);--y==0?(A.removeEventListener(C,L1),b.delete(C),b.size===0&&bx.delete(A)):b.set(C,y)}F1.delete(p),f!==t&&((w=f.parentNode)==null||w.removeChild(f))}});return lP.set(d,u),d}let lP=new WeakMap;var Qr,La,hr,Fd,Cp,Ep,Xm;class cP{constructor(e,t=!0){Mn(this,"anchor");Bn(this,Qr,new Map);Bn(this,La,new Map);Bn(this,hr,new Map);Bn(this,Fd,new Set);Bn(this,Cp,!0);Bn(this,Ep,e=>{if(Be(this,Qr).has(e)){var t=Be(this,Qr).get(e),i=Be(this,La).get(t);if(i)Wv(i),Be(this,Fd).delete(t);else{var n=Be(this,hr).get(t);n&&(Wv(n.effect),Be(this,La).set(t,n.effect),Be(this,hr).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[s,r]of Be(this,Qr)){if(Be(this,Qr).delete(s),s===e)break;const a=Be(this,hr).get(r);a&&(sr(a.effect),Be(this,hr).delete(r))}for(const[s,r]of Be(this,La)){if(s===t||Be(this,Fd).has(s))continue;const a=()=>{if(Array.from(Be(this,Qr).values()).includes(s)){var u=document.createDocumentFragment();b9(r,u),u.append(El()),Be(this,hr).set(s,{effect:r,fragment:u})}else sr(r);Be(this,Fd).delete(s),Be(this,La).delete(s)};Be(this,Cp)||!i?(Be(this,Fd).add(s),Nd(r,a,!1)):a()}}});Bn(this,Xm,e=>{Be(this,Qr).delete(e);const t=Array.from(Be(this,Qr).values());for(const[i,n]of Be(this,hr))t.includes(i)||(sr(n.effect),Be(this,hr).delete(i))});this.anchor=e,Fn(this,Cp,t)}ensure(e,t){var i=ln,n=m6();if(t&&!Be(this,La).has(e)&&!Be(this,hr).has(e))if(n){var s=document.createDocumentFragment(),r=El();s.append(r),Be(this,hr).set(e,{effect:Ir(()=>t(r)),fragment:s})}else Be(this,La).set(e,Ir(()=>t(this.anchor)));if(Be(this,Qr).set(i,e),n){for(const[a,d]of Be(this,La))a===e?i.unskip_effect(d):i.skip_effect(d);for(const[a,d]of Be(this,hr))a===e?i.unskip_effect(d.effect):i.skip_effect(d.effect);i.oncommit(Be(this,Ep)),i.ondiscard(Be(this,Xm))}else Be(this,Ep).call(this,i)}}Qr=new WeakMap,La=new WeakMap,hr=new WeakMap,Fd=new WeakMap,Cp=new WeakMap,Ep=new WeakMap,Xm=new WeakMap;function H(o,e,t=!1){var i=new cP(o),n=t?Vf: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 Vi(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];Nd(g,()=>{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var p=o.outrogroups;I1(o,ab(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|=Oa;const r=document.createDocumentFragment();b9(s,r)}else sr(e[n],t)}}var E8;function ri(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(El())}var f=null,g=h9(()=>{var M=t();return l9(M)?M:M==null?[]:ab(M)}),p,C=new Map,b=!0;function y(M){(I.effect.f&Hr)===0&&(I.pending.delete(M),I.fallback=f,uP(I,p,r,e,i),f!==null&&(p.length===0?(f.f&Oa)===0?Wv(f):(f.f^=Oa,K0(f,null,r)):Nd(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 J=p[$],re=i(J,$),fe=b?null:a.get(re);fe?(fe.v&&$f(fe.v,J),fe.i&&$f(fe.i,$),V&&P.unskip_effect(fe.e)):(fe=hP(a,b?r:E8??(E8=El()),J,re,$,n,e,t),b||(fe.e.f|=Oa),a.set(re,fe)),R.add(re)}if(M===0&&s&&!f&&(b?f=Ir(()=>s(r)):(f=Ir(()=>s(E8??(E8=El()))),f.f|=Oa)),M>R.size&&X7(),!b)if(C.set(P,R),V){for(const[Z,de]of a)R.has(Z)||P.skip_effect(de.e);P.oncommit(y),P.ondiscard(w)}else y(P);l(g)}),I={effect:A,items:a,pending:C,outrogroups:null,fallback:f};b=!1}function M0(o){for(;o!==null&&(o.f&ca)===0;)o=o.next;return o}function uP(o,e,t,i,n){var fe,Z,de,ve,se,ue,Se,Ie,xe;var s=(i&lI)!==0,r=e.length,a=o.items,d=M0(o.effect.first),u,f=null,g,p=[],C=[],b,y,w,A;if(s)for(A=0;A<r;A+=1)b=e[A],y=n(b,A),w=a.get(y).e,(w.f&Oa)===0&&((Z=(fe=w.nodes)==null?void 0:fe.a)==null||Z.measure(),(g??(g=new Set)).add(w));for(A=0;A<r;A+=1){if(b=e[A],y=n(b,A),w=a.get(y).e,o.outrogroups!==null)for(const Ne of o.outrogroups)Ne.pending.delete(w),Ne.done.delete(w);if((w.f&To)!==0&&(Wv(w),s&&((ve=(de=w.nodes)==null?void 0:de.a)==null||ve.unfix(),(g??(g=new Set)).delete(w))),(w.f&Oa)!==0)if(w.f^=Oa,w===d)K0(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),Yl(o,f,w),Yl(o,w,I),K0(w,I,t),f=w,p=[],C=[],d=M0(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)K0(p[R],M,t);for(R=0;R<C.length;R+=1)u.delete(C[R]);Yl(o,P.prev,V.next),Yl(o,f,P),Yl(o,V,M),d=M,f=V,A-=1,p=[],C=[]}else u.delete(w),K0(w,d,t),Yl(o,w.prev,w.next),Yl(o,w,f===null?o.effect.first:f.next),Yl(o,f,w),f=w;continue}for(p=[],C=[];d!==null&&d!==w;)(u??(u=new Set)).add(d),C.push(d),d=M0(d.next);if(d===null)continue}(w.f&Oa)===0&&p.push(w),f=w,d=M0(w.next)}if(o.outrogroups!==null){for(const Ne of o.outrogroups)Ne.pending.size===0&&(I1(o,ab(Ne.done)),(se=o.outrogroups)==null||se.delete(Ne));o.outrogroups.size===0&&(o.outrogroups=null)}if(d!==null||u!==void 0){var $=[];if(u!==void 0)for(w of u)(w.f&To)===0&&$.push(w);for(;d!==null;)(d.f&To)===0&&d!==o.fallback&&$.push(d),d=M0(d.next);var J=$.length;if(J>0){var re=(i&Zk)!==0&&r===0?t:null;if(s){for(A=0;A<J;A+=1)(Se=(ue=$[A].nodes)==null?void 0:ue.a)==null||Se.measure();for(A=0;A<J;A+=1)(xe=(Ie=$[A].nodes)==null?void 0:Ie.a)==null||xe.fix()}dP(o,$,re)}}s&&Ec(()=>{var Ne,ze;if(g!==void 0)for(w of g)(ze=(Ne=w.nodes)==null?void 0:Ne.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):Iu(t):null,u=(r&aI)!==0?Iu(n):null;return{v:d,i:u,e:Ir(()=>(s(e,d??t,u??n,a),()=>{o.delete(i)}))}}function K0(o,e,t){if(o.nodes)for(var i=o.nodes.start,n=o.nodes.end,s=e&&(e.f&Oa)===0?e.nodes.start:t;i!==null;){var r=zp(i);if(s.before(i),i===n)return;i=r}}function Yl(o,e,t){e===null?o.effect.first=t:e.next=t,t===null?o.effect.last=e:t.prev=e}function pc(o,e,t=!1,i=!1,n=!1,s=!1){var r=o,a="";if(t)var d=o;z(()=>{var u=qn;if(a!==(a=e()??"")){if(t){u.nodes=null,d.innerHTML=a,a!==""&&Pu(Ha(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(Pu(Ha(p),p.lastChild),i||n)for(;Ha(p);)r.before(Ha(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 hg(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 y=o.length;for(var g=0;g<y;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===y-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 Bt(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 Co(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 zv(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(fg(i));return}for(i of o.options){var n=fg(i);if($I(n,e)){i.selected=!0;return}}(!t||e!==void 0)&&(o.selectedIndex=-1)}function P1(o){var e=new MutationObserver(()=>{zv(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),fg);else{var d=o.querySelector(r)??o.querySelector("option:not([disabled])");a=d&&fg(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(zv(o,s,n),n&&s===void 0){var a=o.querySelector(":checked");a!==null&&(s=fg(a),t(s))}o.__value=s,n=!1}),P1(o)}function fg(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 er(o,e){var t=C9(o);t.checked!==(t.checked=e??void 0)&&(o.checked=e)}function un(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[tv]??(o[tv]={[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 Nt(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 gl(),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))}}}),zl(e)==null&&o.value&&(t(pC(o)?xC(o.value):o.value),ln!==null&&i.add(ln)),hb(()=>{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 bs(o,e,t=e){g9(o,"change",i=>{var n=i?o.defaultChecked:o.checked;t(n)}),zl(e)==null&&t(o.checked),hb(()=>{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 hc,bf,yp,Ym,R6;const Qm=class Qm{constructor(e){Bn(this,Ym);Bn(this,hc,new WeakMap);Bn(this,bf);Bn(this,yp);Fn(this,yp,e)}observe(e,t){var i=Be(this,hc).get(e)||new Set;return i.add(t),Be(this,hc).set(e,i),ns(this,Ym,R6).call(this).observe(e,Be(this,yp)),()=>{var n=Be(this,hc).get(e);n.delete(t),n.size===0&&(Be(this,hc).delete(e),Be(this,bf).unobserve(e))}}};hc=new WeakMap,bf=new WeakMap,yp=new WeakMap,Ym=new WeakSet,R6=function(){return Be(this,bf)??Fn(this,bf,new ResizeObserver(e=>{for(var t of e){Qm.entries.set(t.target,t);for(var i of Be(this,hc).get(t.target)||[])i(t)}}))},Mn(Qm,"entries",new WeakMap);let M1=Qm;var bP=new M1({box:"border-box"});function CP(o,e,t){var i=bP.observe(o,()=>t(o[e]));v9(()=>(zl(()=>t(o[e])),i))}function vC(o,e){return o===e||(o==null?void 0:o[Td])===e}function hs(o={},e,t,i){var n=go.r,s=qn;return v9(()=>{var r,a;return hb(()=>{r=a,a=[],zl(()=>{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 Tu(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=Wg(i)),l(u)):(d&&(d=!1,a=r?zl(i):i),a);let g;if(s){var p=Td in o||q7 in o;g=((R=lf(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 y;if(y=()=>{var P=o[e];return P===void 0?f():(d=!0,P)},(t&uI)===0)return y;if(g){var w=o.$$legacy;return(function(P,V){return arguments.length>0?((!V||w||b)&&g(V?y():P),P):y()})}var A=!1,I=((t&dI)!==0?Wg:h9)(()=>(A=!1,y()));s&&l(I);var M=qn;return(function(P,V){if(arguments.length>0){const $=V?l(I):s?Di(P):P;return x(I,$),A=!0,a!==void 0&&(a=$),P}return Fl&&A||(M.f&Hr)!==0?I.v:l(I)})}function js(o){go===null&&Kk(),Qn(()=>{const e=zl(o);if(typeof e=="function")return e})}function jp(o){go===null&&Kk(),js(()=>()=>zl(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",qf={};OP(qf,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 qf.Emitter,this._onDidExtraLibsChange=new qf.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=()=>gb().then(o=>o.getTypeScriptWorker()),VP=()=>gb().then(o=>o.getJavaScriptWorker());qf.languages.typescript={ModuleKind:H6,JsxEmit:W6,NewLineKind:z6,ScriptTarget:V6,ModuleResolutionKind:j6,typescriptVersion:WP,typescriptDefaults:q6,javascriptDefaults:G6,getTypeScriptWorker:zP,getJavaScriptWorker:VP};function gb(){return gA(()=>import("./tsMode-DXWg2fgD.js"),__vite__mapDeps([3,1,2]))}qf.languages.onLanguage("typescript",()=>gb().then(o=>o.setupTypeScript(q6)));qf.languages.onLanguage("javascript",()=>gb().then(o=>o.setupJavaScript(G6)));class jP extends Ao{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Bi("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Qi.map,toggled:Ke.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ke.has("isInDiffEditor"),menu:{when:Ke.has("isInDiffEditor"),id:hi.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 Ao{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Bi("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 Ao{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Bi("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 Up=Bi("diffEditor","Diff Editor");class $P extends da{constructor(){super({id:"diffEditor.switchSide",title:Bi("switchSide","Switch Side"),icon:Qi.arrowSwap,precondition:Ke.has("isInDiffEditor"),f1:!0,category:Up})}runEditorCommand(e,t,i){const n=g0(e);if(n instanceof wp){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class UP extends da{constructor(){super({id:"diffEditor.exitCompareMove",title:Bi("exitCompareMove","Exit Compare Move"),icon:Qi.close,precondition:q.comparingMovedCode,f1:!1,category:Up,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=g0(e);n instanceof wp&&n.exitCompareMove()}}class qP extends da{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Bi("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Qi.fold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:Up})}runEditorCommand(e,t,...i){const n=g0(e);n instanceof wp&&n.collapseAllUnchangedRegions()}}class GP extends da{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Bi("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Qi.unfold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:Up})}runEditorCommand(e,t,...i){const n=g0(e);n instanceof wp&&n.showAllUnchangedRegions()}}class R1 extends Ao{constructor(){super({id:"diffEditor.revert",title:Bi("revert","Revert"),f1:!1,category:Up})}run(e,t){const i=KP(e,t.originalUri,t.modifiedUri);i instanceof wp&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const X6=Bi("accessibleDiffViewer","Accessible Diff Viewer"),Jm=class Jm extends Ao{constructor(){super({id:Jm.id,title:Bi("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=g0(e);t==null||t.accessibleDiffViewerNext()}};Jm.id="editor.action.accessibleDiffViewer.next";let Vg=Jm;const e_=class e_ extends Ao{constructor(){super({id:e_.id,title:Bi("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=g0(e);t==null||t.accessibleDiffViewerPrev()}};e_.id="editor.action.accessibleDiffViewer.prev";let Vv=e_;function KP(o,e,t){return o.get(ws).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 g0(o){const t=o.get(ws).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}Gn(jP);Gn(K6);Gn(Z6);Wr.appendMenuItem(hi.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"))});Wr.appendMenuItem(hi.EditorTitle,{command:{id:new K6().desc.id,title:S("showMoves","Show Moved Code Blocks"),icon:Qi.move,toggled:s3.create("config.diffEditor.experimental.showMoves",!0),precondition:Ke.has("isInDiffEditor")},order:10,group:"1_diff",when:Ke.has("isInDiffEditor")});Gn(R1);for(const o of[{icon:Qi.arrowRight,key:q.diffEditorInlineMode.toNegated()},{icon:Qi.discard,key:q.diffEditorInlineMode}])Wr.appendMenuItem(hi.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"}),Wr.appendMenuItem(hi.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"});Gn($P);Gn(UP);Gn(qP);Gn(GP);Wr.appendMenuItem(hi.EditorTitle,{command:{id:Vg.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",Vg.id);Gn(Vg);is.registerCommandAlias("editor.action.diffReview.prev",Vv.id);Gn(Vv);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 pb=new Ln("selectionAnchorSet",!1);var Vd;let $c=(Vd=class{static get(e){return e.getContribution(N1.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=pb.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(Ki.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new lo().appendText(S("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),zr(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(Ki.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=Vd,Vd.ID="editor.contrib.selectionAnchorController",Vd);$c=N1=XP([YP(1,On)],$c);class QP extends St{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=$c.get(t))==null||i.setSelectionAnchor()}}class JP extends St{constructor(){super({id:"editor.action.goToSelectionAnchor",label:S("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:pb})}async run(e,t){var i;(i=$c.get(t))==null||i.goToSelectionAnchor()}}class eT extends St{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:S("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:pb,kbOpts:{kbExpr:q.editorTextFocus,primary:ks(2089,2089),weight:100}})}async run(e,t){var i;(i=$c.get(t))==null||i.selectFromAnchorToCursor()}}class tT extends St{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:S("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:pb,kbOpts:{kbExpr:q.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=$c.get(t))==null||i.cancelSelectionAnchor()}}vn($c.ID,$c,4);Re(QP);Re(JP);Re(eT);Re(tT);const iT=Si("editorOverviewRuler.bracketMatchForeground","#A0A0A0",S("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class nT extends St{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=Mu.get(t))==null||i.jumpToBracket()}}class sT extends St{constructor(){super({id:"editor.action.selectToBracket",label:S("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Bi("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=Mu.get(t))==null||s.selectToBracket(n)}}class oT extends St{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=Mu.get(t))==null||i.removeBrackets(this.id)}}class rT{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const oc=class oc extends $t{static get(e){return e.getContribution(oc.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 Ki(r.lineNumber,r.column,r.lineNumber,r.column):new Ki(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 Ki(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(Fi.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),y=oc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!b&&this._matchBrackets==="always"&&(b=t.bracketPairs.findEnclosingBrackets(C,20),y=oc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new rT(C,b,y)}}this._lastBracketsData=a,this._lastVersionId=i}};oc.ID="editor.contrib.bracketMatchingController",oc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=kn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:Is(iT),position:za.Center}}),oc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=kn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Mu=oc;vn(Mu.ID,Mu,1);Re(sT);Re(nT);Re(oT);Wr.appendMenuItem(hi.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 Ki(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Ki(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class Y6 extends St{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 St{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)),y=ee.fromPositions(p,f);n.push(new Sp(y,b+C))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}Re(dT);const xb=(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:xb(),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 _l.some(this,([i,n])=>n.asFile())&&t.push("files"),e5(jv(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 jv(e)}}function jv(o){return o.toLowerCase()}function J6(o,e){return e5(jv(o),e.map(jv))}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 vb=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",qf={};OP(qf,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 qf.Emitter,this._onDidExtraLibsChange=new qf.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=()=>gb().then(o=>o.getTypeScriptWorker()),VP=()=>gb().then(o=>o.getJavaScriptWorker());qf.languages.typescript={ModuleKind:H6,JsxEmit:W6,NewLineKind:z6,ScriptTarget:V6,ModuleResolutionKind:j6,typescriptVersion:WP,typescriptDefaults:q6,javascriptDefaults:G6,getTypeScriptWorker:zP,getJavaScriptWorker:VP};function gb(){return gA(()=>import("./tsMode-DeZpXliO.js"),__vite__mapDeps([3,1,2]))}qf.languages.onLanguage("typescript",()=>gb().then(o=>o.setupTypeScript(q6)));qf.languages.onLanguage("javascript",()=>gb().then(o=>o.setupJavaScript(G6)));class jP extends Ao{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Bi("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Qi.map,toggled:Ke.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Ke.has("isInDiffEditor"),menu:{when:Ke.has("isInDiffEditor"),id:hi.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 Ao{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Bi("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 Ao{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Bi("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 Up=Bi("diffEditor","Diff Editor");class $P extends da{constructor(){super({id:"diffEditor.switchSide",title:Bi("switchSide","Switch Side"),icon:Qi.arrowSwap,precondition:Ke.has("isInDiffEditor"),f1:!0,category:Up})}runEditorCommand(e,t,i){const n=g0(e);if(n instanceof wp){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class UP extends da{constructor(){super({id:"diffEditor.exitCompareMove",title:Bi("exitCompareMove","Exit Compare Move"),icon:Qi.close,precondition:q.comparingMovedCode,f1:!1,category:Up,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=g0(e);n instanceof wp&&n.exitCompareMove()}}class qP extends da{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Bi("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Qi.fold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:Up})}runEditorCommand(e,t,...i){const n=g0(e);n instanceof wp&&n.collapseAllUnchangedRegions()}}class GP extends da{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Bi("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Qi.unfold,precondition:Ke.has("isInDiffEditor"),f1:!0,category:Up})}runEditorCommand(e,t,...i){const n=g0(e);n instanceof wp&&n.showAllUnchangedRegions()}}class R1 extends Ao{constructor(){super({id:"diffEditor.revert",title:Bi("revert","Revert"),f1:!1,category:Up})}run(e,t){const i=KP(e,t.originalUri,t.modifiedUri);i instanceof wp&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const X6=Bi("accessibleDiffViewer","Accessible Diff Viewer"),Jm=class Jm extends Ao{constructor(){super({id:Jm.id,title:Bi("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=g0(e);t==null||t.accessibleDiffViewerNext()}};Jm.id="editor.action.accessibleDiffViewer.next";let Vg=Jm;const e_=class e_ extends Ao{constructor(){super({id:e_.id,title:Bi("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=g0(e);t==null||t.accessibleDiffViewerPrev()}};e_.id="editor.action.accessibleDiffViewer.prev";let Vv=e_;function KP(o,e,t){return o.get(ws).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 g0(o){const t=o.get(ws).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}Gn(jP);Gn(K6);Gn(Z6);Wr.appendMenuItem(hi.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"))});Wr.appendMenuItem(hi.EditorTitle,{command:{id:new K6().desc.id,title:S("showMoves","Show Moved Code Blocks"),icon:Qi.move,toggled:s3.create("config.diffEditor.experimental.showMoves",!0),precondition:Ke.has("isInDiffEditor")},order:10,group:"1_diff",when:Ke.has("isInDiffEditor")});Gn(R1);for(const o of[{icon:Qi.arrowRight,key:q.diffEditorInlineMode.toNegated()},{icon:Qi.discard,key:q.diffEditorInlineMode}])Wr.appendMenuItem(hi.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"}),Wr.appendMenuItem(hi.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"});Gn($P);Gn(UP);Gn(qP);Gn(GP);Wr.appendMenuItem(hi.EditorTitle,{command:{id:Vg.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",Vg.id);Gn(Vg);is.registerCommandAlias("editor.action.diffReview.prev",Vv.id);Gn(Vv);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 pb=new Ln("selectionAnchorSet",!1);var Vd;let $c=(Vd=class{static get(e){return e.getContribution(N1.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=pb.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(Ki.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new lo().appendText(S("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),zr(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(Ki.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=Vd,Vd.ID="editor.contrib.selectionAnchorController",Vd);$c=N1=XP([YP(1,On)],$c);class QP extends St{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=$c.get(t))==null||i.setSelectionAnchor()}}class JP extends St{constructor(){super({id:"editor.action.goToSelectionAnchor",label:S("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:pb})}async run(e,t){var i;(i=$c.get(t))==null||i.goToSelectionAnchor()}}class eT extends St{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:S("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:pb,kbOpts:{kbExpr:q.editorTextFocus,primary:ks(2089,2089),weight:100}})}async run(e,t){var i;(i=$c.get(t))==null||i.selectFromAnchorToCursor()}}class tT extends St{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:S("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:pb,kbOpts:{kbExpr:q.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=$c.get(t))==null||i.cancelSelectionAnchor()}}vn($c.ID,$c,4);Re(QP);Re(JP);Re(eT);Re(tT);const iT=Si("editorOverviewRuler.bracketMatchForeground","#A0A0A0",S("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class nT extends St{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=Mu.get(t))==null||i.jumpToBracket()}}class sT extends St{constructor(){super({id:"editor.action.selectToBracket",label:S("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Bi("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=Mu.get(t))==null||s.selectToBracket(n)}}class oT extends St{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=Mu.get(t))==null||i.removeBrackets(this.id)}}class rT{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const oc=class oc extends $t{static get(e){return e.getContribution(oc.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 Ki(r.lineNumber,r.column,r.lineNumber,r.column):new Ki(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 Ki(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(Fi.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),y=oc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!b&&this._matchBrackets==="always"&&(b=t.bracketPairs.findEnclosingBrackets(C,20),y=oc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[d++]=new rT(C,b,y)}}this._lastBracketsData=a,this._lastVersionId=i}};oc.ID="editor.contrib.bracketMatchingController",oc._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=kn.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:Is(iT),position:za.Center}}),oc._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=kn.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let Mu=oc;vn(Mu.ID,Mu,1);Re(sT);Re(nT);Re(oT);Wr.appendMenuItem(hi.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 Ki(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Ki(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class Y6 extends St{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 St{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)),y=ee.fromPositions(p,f);n.push(new Sp(y,b+C))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}Re(dT);const xb=(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:xb(),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 _l.some(this,([i,n])=>n.asFile())&&t.push("files"),e5(jv(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 jv(e)}}function jv(o){return o.toLowerCase()}function J6(o,e){return e5(jv(o),e.map(jv))}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 vb=Object.freeze({create:o=>vA(o.map(e=>e.toString())).join(`\r
14
14
  `),split:o=>o.split(`\r
15
15
  `),parse:o=>vb.split(o).filter(e=>!e.startsWith("#"))}),Da=class Da{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+Da.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Da((this.value?[this.value,...e]:e).join(Da.sep))}};Da.sep=".",Da.None=new Da("@@none@@"),Da.Empty=new Da("");let os=Da;const D8={EDITORS:"CodeEditors",FILES:"CodeFiles"};class hT{}const fT={DragAndDropContribution:"workbench.contributions.dragAndDrop"};ua.add(fT.DragAndDropContribution,new hT);const Sg=class Sg{constructor(){}static getInstance(){return Sg.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};Sg.INSTANCE=new Sg;let O1=Sg;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?Zn.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(Ys.uriList,i);else if(e||!t.has(Ys.uriList)){const n=[];for(const s of o.items){const r=s.getAsFile();if(r){const a=r.path;try{a?n.push(Zn.file(a).toString()):n.push(Zn.parse(r.name,!0).toString())}catch{}}}n.length&&t.replace(Ys.uriList,E9(vb.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},jg=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 Dg=class Dg extends w9{constructor(){super(...arguments),this.kind=Dg.kind,this.dropMimeTypes=[Ys.text],this.pasteMimeTypes=[Ys.text]}async getEdit(e,t){const i=e.get(Ys.text);if(!i||e.has(Ys.uriList))return;const n=await i.asString();return{handledMimeType:Ys.text,title:S("text.label","Insert Plain Text"),insertText:n,kind:this.kind}}};Dg.id="text",Dg.kind=new os("text.plain");let Ru=Dg;class n5 extends w9{constructor(){super(...arguments),this.kind=new os("uri.absolute"),this.dropMimeTypes=[Ys.uriList],this.pasteMimeTypes=[Ys.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===Eo.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:Ys.uriList,insertText:s,title:r,kind:this.kind}}}let $v=class extends w9{constructor(e){super(),this._workspaceContextService=e,this.kind=new os("uri.relative"),this.dropMimeTypes=[Ys.uriList],this.pasteMimeTypes=[Ys.uriList]}async getEdit(e,t){const i=await s5(e);if(!i.length||t.isCancellationRequested)return;const n=Sl(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?o3(r.uri,s):void 0}));if(n.length)return{handledMimeType:Ys.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}}};$v=y9([jg(0,Lf)],$v);class xT{constructor(){this.kind=new os("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Ys.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(Ys.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const n of vb.parse(t))try{i.push({uri:Zn.parse(n),originalText:n})}catch{}return i}let H1=class extends $t{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new Ru)),this._register(e.documentDropEditProvider.register("*",new n5)),this._register(e.documentDropEditProvider.register("*",new $v(t)))}};H1=y9([jg(0,Li),jg(1,Lf)],H1);let W1=class extends $t{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new Ru)),this._register(e.documentPasteEditProvider.register("*",new n5)),this._register(e.documentPasteEditProvider.register("*",new $v(t))),this._register(e.documentPasteEditProvider.register("*",new xT))}};W1=y9([jg(0,Li),jg(1,Lf)],W1);const wr=class wr{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=wr._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(wr.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(wr.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(wr.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(wr.isVariableCharacter(i)||wr.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 wr._table[i]>"u"&&!wr.isDigitCharacter(i)&&!wr.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}};wr._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=wr;class p0{constructor(){this._children=[]}appendChild(e){return e instanceof Po&&this._children[this._children.length-1]instanceof Po?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 qp)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}let Po=class o5 extends p0{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new o5(this.value)}};class r5 extends p0{}class xr 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 x0?this._children[0]:void 0}clone(){const e=new xr(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class x0 extends p0{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Po&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new x0;return this.options.forEach(e.appendChild,e),e}}class S9 extends p0{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,n=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(s=>s instanceof Jr&&!!s.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof Jr){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new 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 Jr extends p0{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,n)=>n===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new Jr(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class $g 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 Po(t)],!0):!1}clone(){const e=new $g(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 qp extends p0{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof xr&&(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 xr&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof $g&&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 qp;return this._children=this.children.map(t=>t.clone()),e}walk(e){A8(this.children,e)}}class Nu{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 qp;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 xr&&(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 xr(d.index);g.transform=d.transform;for(const p of f){const C=p.clone();g.appendChild(C),C instanceof xr&&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 xr(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 Po(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 xr(Number(t)):new $g(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 xr(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Po("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else if(s.index>0&&this._accept(7)){const r=new x0;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 Po(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 $g(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Po("${"+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 Po(s));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,n)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const n=this._accept(8,!0);if(n)if(i){if(this._accept(4))return e.appendChild(new Jr(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Jr(Number(n))),!0;else return this._backTo(t),!1;if(this._accept(6)){const s=this._accept(9,!0);return!s||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new Jr(Number(n),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return e.appendChild(new Jr(Number(n),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return e.appendChild(new Jr(Number(n),void 0,void 0,s)),!0}else if(this._accept(13)){const s=this._until(1);if(s){const r=this._until(4);if(r)return e.appendChild(new Jr(Number(n),void 0,s,r)),!0}}else{const s=this._until(4);if(s)return e.appendChild(new Jr(Number(n),void 0,void 0,s)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Po(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"?Nu.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=kn.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:mA,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),t_=class t_ extends $t{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=wi(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=wi("span.icon");this.domNode.append(t),t.classList.add(...zn.asClassNameArray(Qi.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,us.CLICK,n=>{this.delegate.cancel()}))}getId(){return t_.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)}};t_.baseId="editor.widget.inlineProgressWidget";let V1=t_,Uv=class extends $t{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new or),this._currentWidget=this._register(new or),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=Bg(()=>{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()}};Uv=vT([mT(2,on)],Uv);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)}},av,wc;let Mo=(wc=class{static get(e){return e.getContribution(av.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new or,this._messageListeners=new Vt,this._mouseOverMessage=!1,this._editor=e,this._visible=av.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){zr(Xx(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=Xx(e)?a3(e,{actionHandler:{callback:n=>{this.closeMessage(),l3(this._openerService,n,Xx(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(),us.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(Nn(this._messageWidget.value.getDomNode(),us.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))}},av=wc,wc.ID="editor.contrib.messageController",wc.MESSAGE_VISIBLE=new Ln("messageVisible",!1,S("messageVisible","Whether the editor is currently showing an inline message")),wc);Mo=av=bT([k8(1,On),k8(2,ha)],Mo);const CT=ko.bindToContribution(Mo.get);Ri(new CT({id:"leaveEditorMessage",precondition:Mo.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)}};vn(Mo.ID,Mo,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 qv(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=Sl(o),i=qv(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},df=function(o,e){return function(t,i){e(t,i,o)}},j1,jd;let $1=(jd=class extends $t{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=wi(".post-edit-widget"),this.button=this._register(new d3(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(Nn(this.domNode,us.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=wo(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=jd,jd.baseId="editor.widget.postEditWidget",jd);$1=j1=c5([df(7,a0),df(8,On),df(9,Bs)],$1);let Gv=class extends $t{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 or),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)=>{Zc(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
  `):Pe:"",!0),x(b,ue("max_connections"),!0),x(y,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(de,Se("log_dest"),!0),x(ve,Se("log_type"),!0),x(i,"")}catch(Pe){x(i,Pe.message??"Failed to load config",!0)}}async function xe(){if(l(t)){x(n,!0),x(s,""),x(r,!1);try{let Ee=function(gi,Qt){Qt!==""?Pe[gi]=Qt:delete Pe[gi]};const Pe={...l(t).managed};Ee("persistence",l(f)),Ee("persistence_location",l(g)),Ee("sys_interval",l(p));const Gt=l(C).split(`
232
232
  `).map(gi=>gi.trim()).filter(Boolean);Gt.length>0?Pe.include_dir=Gt.length===1?Gt[0]:Gt:delete Pe.include_dir,Ee("max_connections",l(b)),Ee("max_inflight_messages",l(y)),Ee("max_queued_messages",l(w)),Ee("max_packet_size",l(A)),Ee("message_size_limit",l(I)),Ee("max_keepalive",l(M)),Ee("persistent_client_expiration",l(R)),Ee("retain_available",l(P)),Ee("set_tcp_nodelay",l(V)),Ee("connection_messages",l($)),l(de).size>0?Pe.log_dest=l(de).size===1?[...l(de)][0]:[...l(de)]:delete Pe.log_dest,l(ve).size>0?Pe.log_type=l(ve).size===1?[...l(ve)][0]:[...l(ve)]:delete Pe.log_type,await TF({listeners:l(t).listeners,managed:Pe,passthrough:l(t).passthrough,checksum:l(u)}),x(r,!0),setTimeout(()=>x(r,!1),3e3),await Ie()}catch(Pe){x(s,Pe.message??"Save failed",!0)}finally{x(n,!1)}}}async function Ne(){x(a,!0),x(d,"");try{const Pe=await Nb();x(d,Pe.stderr||Pe.stdout||"Reloaded",!0)}catch(Pe){x(d,"Error: "+(Pe.message??"reload failed"))}finally{x(a,!1)}}var ze=bee(),me=m(ze),dt=v(m(me),2),Pt=m(dt),Ye=m(Pt),yt=v(Pt,2),ye=m(yt),Oe=v(me,2);{var ht=Pe=>{var Ee=oA(),Gt=m(Ee);z(()=>O(Gt,l(i))),D(Pe,Ee)};H(Oe,Pe=>{l(i)&&Pe(ht)})}var At=v(Oe,2);{var ft=Pe=>{var Ee=oA(),Gt=m(Ee);z(()=>O(Gt,l(s))),D(Pe,Ee)};H(At,Pe=>{l(s)&&Pe(ft)})}var Lt=v(At,2);{var mi=Pe=>{var Ee=xee();D(Pe,Ee)};H(Lt,Pe=>{l(r)&&Pe(mi)})}var fi=v(Lt,2);{var Ei=Pe=>{var Ee=vee(),Gt=m(Ee);z(()=>O(Gt,l(d))),D(Pe,Ee)};H(fi,Pe=>{l(d)&&Pe(Ei)})}var xt=v(fi,2);{var ui=Pe=>{var Ee=_ee(),Gt=bt(Ee),gi=v(m(Gt),2),Qt=m(gi),Ni=m(Qt),Zi=v(m(Ni),2),vi=m(Zi);vi.value=vi.__value="";var gn=v(vi);gn.value=gn.__value="true";var cn=v(gn);cn.value=cn.__value="false";var rn=v(Qt,2),mn=m(rn),Ct=v(m(mn),2),Zt=v(rn,2),Ii=m(Zt),Wi=v(m(Ii),2),Pi=v(gi,2),pn=m(Pi),Dn=v(m(pn),2);un(Dn,"rows",3);var Ui=v(Gt,2),Xe=v(m(Ui),2),ci=v(m(Xe),2);ri(ci,21,()=>J,Vi,(Ue,$e)=>{var Tt=t1(),pt=m(Tt),Qe=v(pt,3);z(wt=>{er(pt,wt),O(Qe,` ${l($e)??""}`)},[()=>l(de).has(l($e))]),j("change",pt,()=>{x(de,se(l(de),l($e)),!0)}),D(Ue,Tt)});var Oi=v(Xe,2),ii=v(m(Oi),2),zi=m(ii),Gi=v(m(zi),2);ri(Gi,17,()=>re,Vi,(Ue,$e)=>{var Tt=t1(),pt=m(Tt),Qe=v(pt,3);z(wt=>{er(pt,wt),O(Qe,` ${l($e)??""}`)},[()=>l(ve).has(l($e))]),j("change",pt,()=>{x(ve,se(l(ve),l($e)),!0)}),D(Ue,Tt)});var qi=v(zi,2),K=v(m(qi),2);ri(K,17,()=>fe,Vi,(Ue,$e)=>{var Tt=t1(),pt=m(Tt),Qe=v(pt,3);z(wt=>{er(pt,wt),O(Qe,` ${l($e)??""}`)},[()=>l(ve).has(l($e))]),j("change",pt,()=>{x(ve,se(l(ve),l($e)),!0)}),D(Ue,Tt)});var ke=v(qi,2),rt=m(ke);ri(rt,17,()=>Z,Vi,(Ue,$e)=>{var Tt=mee(),pt=m(Tt),Qe=v(pt,4),wt=m(Qe);z(Dt=>{er(pt,Dt),O(wt,l($e))},[()=>l(ve).has(l($e))]),j("change",pt,()=>{x(ve,se(l(ve),l($e)),!0)}),D(Ue,Tt)});var Ze=v(Ui,2),zt=v(m(Ze),2),ni=m(zt),mt=m(ni),et=v(m(mt),2),X=v(ni,2),Te=m(X),le=v(m(Te),2),ge=v(X,2),Jt=m(ge),ai=v(m(Jt),2),bi=v(ge,2),Ci=m(bi),Hi=v(m(Ci),2),ie=v(Ze,2),tt=v(m(ie),2),_e=m(tt),Ve=m(_e),_t=v(m(Ve),2),It=v(_e,2),Ai=m(It),ei=v(m(Ai),2),pe=v(ie,2),He=v(m(pe),2),Je=m(He),Fe=m(Je),Et=v(m(Fe),2),gt=v(Je,2),Kt=m(gt),U=v(m(Kt),2),T=m(U);T.value=T.__value="";var W=v(T);W.value=W.__value="true";var Y=v(W);Y.value=Y.__value="false";var ne=v(pe,2),ae=v(m(ne),2),oe=m(ae),we=m(oe),je=v(m(we),2),Ce=m(je);Ce.value=Ce.__value="";var Le=v(Ce);Le.value=Le.__value="true";var Me=v(Le);Me.value=Me.__value="false";var ot=v(oe,2),li=m(ot),Q=v(m(li),2),ce=m(Q);ce.value=ce.__value="";var Ge=v(ce);Ge.value=Ge.__value="true";var Mt=v(Ge);Mt.value=Mt.__value="false",Ps(Zi,()=>l(f),Ue=>x(f,Ue)),Nt(Ct,()=>l(g),Ue=>x(g,Ue)),Nt(Wi,()=>l(p),Ue=>x(p,Ue)),Nt(Dn,()=>l(C),Ue=>x(C,Ue)),Nt(et,()=>l(b),Ue=>x(b,Ue)),Nt(le,()=>l(M),Ue=>x(M,Ue)),Nt(ai,()=>l(y),Ue=>x(y,Ue)),Nt(Hi,()=>l(w),Ue=>x(w,Ue)),Nt(_t,()=>l(A),Ue=>x(A,Ue)),Nt(ei,()=>l(I),Ue=>x(I,Ue)),Nt(Et,()=>l(R),Ue=>x(R,Ue)),Ps(U,()=>l(P),Ue=>x(P,Ue)),Ps(je,()=>l(V),Ue=>x(V,Ue)),Ps(Q,()=>l($),Ue=>x($,Ue)),D(Pe,Ee)};H(xt,Pe=>{l(t)&&Pe(ui)})}z(()=>{Pt.disabled=l(n),O(Ye,l(n)?"Saving…":"Save"),yt.disabled=l(a),O(ye,l(a)?"Reloading…":"Apply & Reload")}),j("click",Pt,xe),j("click",yt,Ne),D(o,ze),Ms()}qs(["click","change"]);var ol=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(Di([])),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(""),y=B(""),w=B(!1),A=B(""),I=B(""),M=B(""),R=B(!1),P=B(""),V=B(!1),$=B(!1),J=B("pem"),re=B(""),fe=B(""),Z=B(""),de=B(""),ve=B(""),se=B(!1),ue=B(!1),Se=B(""),Ie=B(!1),xe=B(""),Ne=B(""),ze=B(!1),me=B(""),dt=B(Di([])),Pt=B(Di([])),Ye=B(!1),yt=B("pem"),ye=B(""),Oe=B(!1),ht=B(""),At=B(""),ft=B(Di([])),Lt=B(!1),mi=B("");async function fi(){try{const[_e,Ve]=await Promise.allSettled([QU(),tq()]);_e.status==="fulfilled"&&x(t,_e.value.server,!0),Ve.status==="fulfilled"&&x(i,Ve.value.certs,!0),x(n,"")}catch(_e){x(n,_e.message,!0)}}js(()=>{fi()});async function Ei(){x(g,""),x(f,!0),x(p,null);try{const _e=l(d).split(",").map(_t=>_t.trim()).filter(Boolean),Ve=await JU({cn:l(a),san:_e,days:l(u)});x(p,{fingerprint:Ve.fingerprint,expires:Ve.expires},!0),await fi()}catch(_e){x(g,_e.message,!0)}finally{x(f,!1)}}async function xt(){x(A,""),x(w,!0),x(I,"");try{const _e=l(y).split(",").map(_t=>_t.trim()).filter(Boolean),Ve=await eq({cn:l(b),san:_e});x(I,Ve.csrPem,!0)}catch(_e){x(A,_e.message,!0)}finally{x(w,!1)}}async function ui(){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 fi()}catch(_e){x(P,_e.message,!0)}finally{x(R,!1)}}function Pe(){navigator.clipboard.writeText(l(I)).catch(()=>{})}function Ee(_e){var It;const Ve=(It=_e.target.files)==null?void 0:It[0];if(!Ve)return;x(de,Ve.name,!0);const _t=new FileReader;_t.onload=()=>{const Ai=_t.result;x(Z,btoa(String.fromCharCode(...new Uint8Array(Ai))),!0)},_t.readAsArrayBuffer(Ve)}async function Gt(){x(Se,""),x(ue,!0);try{if(l(J)==="p12"){if(!l(Z))throw new Error("Select a .p12 / .pfx file");await YC({p12base64:l(Z),passphrase:l(ve)})}else{if(!l(re).trim())throw new Error("Certificate PEM is required");await YC({cert:l(re),key:l(fe)||void 0})}x($,!1),await fi()}catch(_e){x(Se,_e.message,!0)}finally{x(ue,!1)}}function gi(_e){let Ve;return _t=>{const It=_t.target.value;clearTimeout(Ve),Ve=setTimeout(async()=>{if(!It.startsWith("/")||It.length<2){_e([]);return}try{_e((await sq(It)).suggestions)}catch{_e([])}},280)}}const Qt=gi(_e=>{x(dt,_e,!0)}),Ni=gi(_e=>{x(Pt,_e,!0)}),Zi=gi(_e=>{x(ft,_e,!0)});async function vi(){x(me,""),x(ze,!0);try{await oq({certPath:l(xe),keyPath:l(Ne)}),x(Ie,!1),await fi()}catch(_e){x(me,_e.message,!0)}finally{x(ze,!1)}}async function gn(){x(ht,""),x(Oe,!0);try{await iq(l(ye)),x(ye,""),x(Ye,!1),await fi()}catch(_e){x(ht,_e.message,!0)}finally{x(Oe,!1)}}async function cn(){x(mi,""),x(Lt,!0);try{await rq(l(At)),x(At,""),x(Ye,!1),await fi()}catch(_e){x(mi,_e.message,!0)}finally{x(Lt,!1)}}async function rn(_e){if(confirm("Remove this trusted CA cert?"))try{await nq(_e),await fi()}catch(Ve){x(s,Ve.message,!0)}}function mn(_e){const Ve=new Date(_e).getTime()-Date.now();return Ve<0?"expired":Ve<30*864e5?"expiring":""}function Ct(_e){return new Date(_e).toLocaleDateString()}var Zt=zee(),Ii=bt(Zt),Wi=m(Ii),Pi=m(Wi),pn=v(Wi,2);{var Dn=_e=>{var Ve=ol(),_t=m(Ve);z(()=>O(_t,l(n))),D(_e,Ve)};H(pn,_e=>{l(n)&&_e(Dn)})}var Ui=v(pn,2);{var Xe=_e=>{var Ve=ol(),_t=m(Ve);z(()=>O(_t,l(s))),D(_e,Ve)};H(Ui,_e=>{l(s)&&_e(Xe)})}var ci=v(Ui,2),Oi=m(ci),ii=v(m(Oi),2),zi=v(ii,2),Gi=v(zi,2),qi=v(Gi,2),K=v(Oi,2);{var ke=_e=>{var Ve=Eee(),_t=m(Ve),It=v(m(_t)),Ai=m(It),ei=v(It,3),pe=m(ei),He=v(ei,3),Je=m(He);z((Fe,Et)=>{O(Ai,l(t).cn),O(pe,l(t).fingerprint),Bt(He,1,Fe,"svelte-9auejo"),O(Je,Et)},[()=>hg(mn(l(t).expires)),()=>Ct(l(t).expires)]),D(_e,Ve)},rt=_e=>{var Ve=yee();D(_e,Ve)};H(K,_e=>{l(t)?_e(ke):_e(rt,-1)})}var Ze=v(ci,2),zt=m(Ze),ni=v(m(zt),2),mt=v(zt,2);{var et=_e=>{var Ve=wee();D(_e,Ve)},X=_e=>{var Ve=Dee(),_t=v(m(Ve));ri(_t,21,()=>l(i),Vi,(It,Ai)=>{var ei=See(),pe=m(ei),He=m(pe),Je=v(pe),Fe=m(Je),Et=v(Je),gt=m(Et),Kt=v(Et),U=m(Kt);z((T,W,Y)=>{O(He,l(Ai).cn),O(Fe,`${T??""}…`),Bt(Et,1,W,"svelte-9auejo"),O(gt,Y)},[()=>l(Ai).fingerprint.slice(0,29),()=>hg(mn(l(Ai).expires)),()=>Ct(l(Ai).expires)]),j("click",U,()=>rn(l(Ai).fingerprint)),D(It,ei)}),D(_e,Ve)};H(mt,_e=>{l(i).length===0?_e(et):_e(X,-1)})}var Te=v(Ii,2);{var le=_e=>{var Ve=kee(),_t=m(Ve),It=v(m(_t),2),Ai=v(m(It)),ei=v(It,2),pe=v(m(ei)),He=v(ei,2),Je=v(m(He)),Fe=v(He,2);{var Et=ne=>{var ae=ol(),oe=m(ae);z(()=>O(oe,l(g))),D(ne,ae)};H(Fe,ne=>{l(g)&&ne(Et)})}var gt=v(Fe,2);{var Kt=ne=>{var ae=Aee(),oe=v(m(ae),2),we=v(m(oe)),je=m(we),Ce=v(we,2),Le=m(Ce);z(Me=>{O(je,l(p).fingerprint),O(Le,Me)},[()=>Ct(l(p).expires)]),D(ne,ae)};H(gt,ne=>{l(p)&&ne(Kt)})}var U=v(gt,2),T=m(U),W=v(T,2);{var Y=ne=>{var ae=rA(),oe=m(ae);z(()=>{ae.disabled=l(f),O(oe,l(f)?"Generating…":"Generate")}),j("click",ae,Ei),D(ne,ae)};H(W,ne=>{l(p)||ne(Y)})}Nt(Ai,()=>l(a),ne=>x(a,ne)),Nt(pe,()=>l(d),ne=>x(d,ne)),Nt(Je,()=>l(u),ne=>x(u,ne)),j("click",T,()=>x(r,!1)),D(_e,Ve)};H(Te,_e=>{l(r)&&_e(le)})}var ge=v(Te,2);{var Jt=_e=>{var Ve=Iee(),_t=m(Ve),It=v(m(_t),2);{var Ai=pe=>{var He=Bee(),Je=bt(He),Fe=v(m(Je)),Et=v(Je,2),gt=v(m(Et)),Kt=v(Et,4);{var U=ae=>{var oe=ol(),we=m(oe);z(()=>O(we,l(A))),D(ae,oe)};H(Kt,ae=>{l(A)&&ae(U)})}var T=v(Kt,2),W=m(T),Y=v(W,2),ne=m(Y);z(()=>{Y.disabled=l(w),O(ne,l(w)?"Generating…":"Generate key + CSR")}),Nt(Fe,()=>l(b),ae=>x(b,ae)),Nt(gt,()=>l(y),ae=>x(y,ae)),j("click",W,()=>x(C,!1)),j("click",Y,xt),D(pe,He)},ei=pe=>{var He=Lee(),Je=v(bt(He),2),Fe=v(m(Je)),Et=v(Je,2),gt=m(Et),Kt=v(gt,2),U=v(Et,4),T=v(m(U)),W=v(U,2);{var Y=Le=>{var Me=ol(),ot=m(Me);z(()=>O(ot,l(P))),D(Le,Me)};H(W,Le=>{l(P)&&Le(Y)})}var ne=v(W,2);{var ae=Le=>{var Me=Fee();D(Le,Me)};H(ne,Le=>{l(V)&&Le(ae)})}var oe=v(ne,2),we=m(oe),je=v(we,2);{var Ce=Le=>{var Me=rA(),ot=m(Me);z(li=>{Me.disabled=li,O(ot,l(R)?"Uploading…":"Upload signed cert")},[()=>l(R)||!l(M).trim()]),j("click",Me,ui),D(Le,Me)};H(je,Le=>{l(V)||Le(Ce)})}z(Le=>{T1(Fe,l(I)),un(Kt,"href",`data:application/pkcs10;charset=utf-8,${Le??""}`)},[()=>encodeURIComponent(l(I))]),j("click",gt,Pe),Nt(T,()=>l(M),Le=>x(M,Le)),j("click",we,()=>x(C,!1)),D(pe,He)};H(It,pe=>{l(I)?pe(ei,-1):pe(Ai)})}D(_e,Ve)};H(ge,_e=>{l(C)&&_e(Jt)})}var ai=v(ge,2);{var bi=_e=>{var Ve=Ree(),_t=m(Ve),It=v(m(_t),2),Ai=m(It);let ei;var pe=v(Ai,2);let He;var Je=v(It,2);{var Fe=ne=>{var ae=Pee(),oe=bt(ae),we=v(m(oe)),je=v(oe,2),Ce=v(m(je));Nt(we,()=>l(re),Le=>x(re,Le)),Nt(Ce,()=>l(fe),Le=>x(fe,Le)),D(ne,ae)},Et=ne=>{var ae=Mee(),oe=bt(ae),we=v(m(oe)),je=m(we),Ce=v(je,2);{var Le=Ge=>{var Mt=Tee(),Ue=m(Mt);z(()=>O(Ue,l(de))),D(Ge,Mt)};H(Ce,Ge=>{l(de)&&Ge(Le)})}var Me=v(oe,2),ot=v(m(Me)),li=m(ot),Q=v(li,2),ce=m(Q);z(()=>{un(li,"type",l(se)?"text":"password"),O(ce,l(se)?"Hide":"Show")}),j("change",je,Ee),Nt(li,()=>l(ve),Ge=>x(ve,Ge)),j("click",Q,()=>x(se,!l(se))),D(ne,ae)};H(Je,ne=>{l(J)==="pem"?ne(Fe):ne(Et,-1)})}var gt=v(Je,2);{var Kt=ne=>{var ae=ol(),oe=m(ae);z(()=>O(oe,l(Se))),D(ne,ae)};H(gt,ne=>{l(Se)&&ne(Kt)})}var U=v(gt,2),T=m(U),W=v(T,2),Y=m(W);z(()=>{ei=Bt(Ai,1,"svelte-9auejo",null,ei,{active:l(J)==="pem"}),He=Bt(pe,1,"svelte-9auejo",null,He,{active:l(J)==="p12"}),W.disabled=l(ue),O(Y,l(ue)?"Importing…":"Import")}),j("click",Ai,()=>x(J,"pem")),j("click",pe,()=>x(J,"p12")),j("click",T,()=>x($,!1)),j("click",W,Gt),D(_e,Ve)};H(ai,_e=>{l($)&&_e(bi)})}var Ci=v(ai,2);{var Hi=_e=>{var Ve=Nee(),_t=m(Ve),It=v(m(_t),4),Ai=v(m(It)),ei=v(Ai,2);ri(ei,21,()=>l(dt),Vi,(W,Y)=>{var ne=i1(),ae={};z(()=>{ae!==(ae=l(Y))&&(ne.value=(ne.__value=l(Y))??"")}),D(W,ne)});var pe=v(It,2),He=v(m(pe)),Je=v(He,2);ri(Je,21,()=>l(Pt),Vi,(W,Y)=>{var ne=i1(),ae={};z(()=>{ae!==(ae=l(Y))&&(ne.value=(ne.__value=l(Y))??"")}),D(W,ne)});var Fe=v(pe,2);{var Et=W=>{var Y=ol(),ne=m(Y);z(()=>O(ne,l(me))),D(W,Y)};H(Fe,W=>{l(me)&&W(Et)})}var gt=v(Fe,2),Kt=m(gt),U=v(Kt,2),T=m(U);z(W=>{U.disabled=W,O(T,l(ze)?"Installing…":"Install")},[()=>l(ze)||!l(xe).trim()||!l(Ne).trim()]),j("input",Ai,Qt),Nt(Ai,()=>l(xe),W=>x(xe,W)),j("input",He,Ni),Nt(He,()=>l(Ne),W=>x(Ne,W)),j("click",Kt,()=>x(Ie,!1)),j("click",U,vi),D(_e,Ve)};H(Ci,_e=>{l(Ie)&&_e(Hi)})}var ie=v(Ci,2);{var tt=_e=>{var Ve=Wee(),_t=m(Ve),It=v(m(_t),2),Ai=m(It);let ei;var pe=v(Ai,2);let He;var Je=v(It,2);{var Fe=gt=>{var Kt=Oee(),U=bt(Kt),T=v(m(U)),W=v(U,2);{var Y=je=>{var Ce=ol(),Le=m(Ce);z(()=>O(Le,l(ht))),D(je,Ce)};H(W,je=>{l(ht)&&je(Y)})}var ne=v(W,2),ae=m(ne),oe=v(ae,2),we=m(oe);z(je=>{oe.disabled=je,O(we,l(Oe)?"Adding…":"Add CA cert")},[()=>l(Oe)||!l(ye).trim()]),Nt(T,()=>l(ye),je=>x(ye,je)),j("click",ae,()=>x(Ye,!1)),j("click",oe,gn),D(gt,Kt)},Et=gt=>{var Kt=Hee(),U=v(bt(Kt),2),T=v(m(U)),W=v(T,2);ri(W,21,()=>l(ft),Vi,(Ce,Le)=>{var Me=i1(),ot={};z(()=>{ot!==(ot=l(Le))&&(Me.value=(Me.__value=l(Le))??"")}),D(Ce,Me)});var Y=v(U,2);{var ne=Ce=>{var Le=ol(),Me=m(Le);z(()=>O(Me,l(mi))),D(Ce,Le)};H(Y,Ce=>{l(mi)&&Ce(ne)})}var ae=v(Y,2),oe=m(ae),we=v(oe,2),je=m(we);z(Ce=>{we.disabled=Ce,O(je,l(Lt)?"Adding…":"Add CA cert")},[()=>l(Lt)||!l(At).trim()]),j("input",T,Zi),Nt(T,()=>l(At),Ce=>x(At,Ce)),j("click",oe,()=>x(Ye,!1)),j("click",we,cn),D(gt,Kt)};H(Je,gt=>{l(yt)==="pem"?gt(Fe):gt(Et,-1)})}z(()=>{ei=Bt(Ai,1,"svelte-9auejo",null,ei,{active:l(yt)==="pem"}),He=Bt(pe,1,"svelte-9auejo",null,He,{active:l(yt)==="path"})}),j("click",Ai,()=>x(yt,"pem")),j("click",pe,()=>x(yt,"path")),D(_e,Ve)};H(ie,_e=>{l(Ye)&&_e(tt)})}j("click",Pi,fi),j("click",ii,()=>{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(Se,""),x(J,"pem"),x(re,""),x(fe,""),x(Z,""),x(de,""),x(ve,""),x(se,!1)}),j("click",qi,()=>{x(Ie,!0),x(me,""),x(xe,""),x(Ne,""),x(dt,[],!0),x(Pt,[],!0)}),j("click",ni,()=>{x(Ye,!0),x(ht,""),x(ye,""),x(yt,"pem"),x(mi,""),x(At,""),x(ft,[],!0)}),D(o,Zt),Ms()}qs(["click","change","input"]);var Kx=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(Di({})),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(""),y=B(!1),w=B(""),A=B(Di({}));js(async()=>{try{const[ft,Lt,mi]=await Promise.all([Ml(),Rb(),fetch("/she/broker/ssh/pubkey").then(Ei=>Ei.json()).catch(()=>({publicKey:null}))]);x(A,ft,!0),Lt.sshKeyDefault&&x(a,Lt.sshKeyDefault,!0);const fi=l(A).broker??{};x(t,fi.ssh??{},!0),l(t).port||(l(t).port=22),l(t).identityFile||(l(t).identityFile=l(a)),mi.publicKey&&x(p,mi.publicKey,!0),x(d,l(t).host?"ssh":"local",!0),l(d)==="local"&&I()}catch(ft){x(i,ft.message,!0)}});async function I(){x(f,!0),x(g,"");try{x(u,await mU(),!0)}catch(ft){x(g,ft.message??"Check failed",!0)}finally{x(f,!1)}}async function M(){x(n,!0),x(r,""),x(s,!1);try{const ft=l(A).broker??{},Lt=l(d)==="local"?{...l(t),host:""}:l(t),mi={...l(A),broker:{...ft,ssh:Lt}};await xp(mi),x(s,!0),setTimeout(()=>x(s,!1),3e3)}catch(ft){x(r,ft.message,!0)}finally{x(n,!1)}}async function R(){x(C,!0),x(b,"");try{const ft=await fetch("/she/broker/ssh/keygen",{method:"POST",headers:{"Content-Type":"application/json"}}),Lt=await ft.json();if(!ft.ok)throw new Error(Lt.error??ft.statusText);x(p,Lt.publicKey,!0)}catch(ft){x(b,ft.message,!0)}finally{x(C,!1)}}async function P(){x(y,!0),x(w,"");try{const ft=await fetch("/she/broker/ssh/test",{method:"POST",headers:{"Content-Type":"application/json"}}),Lt=await ft.json();if(!ft.ok)throw new Error(Lt.error??ft.statusText);x(w,Lt.ok?"✓ Connection successful":"✗ "+(Lt.error??"Failed"),!0)}catch(ft){x(w,"✗ "+ft.message)}finally{x(y,!1)}}function V(ft){navigator.clipboard.writeText(ft).catch(()=>{})}const $=Ot(()=>l(t).identityFile&&l(t).user&&l(t).host?`ssh-copy-id -i ${l(t).identityFile}.pub ${l(t).user}@${l(t).host}`:"");var J=Qee(),re=m(J);{var fe=ft=>{var Lt=Kx(),mi=m(Lt);z(()=>O(mi,l(i))),D(ft,Lt)};H(re,ft=>{l(i)&&ft(fe)})}var Z=v(re,2),de=v(m(Z),2),ve=m(de);let se;var ue=v(ve,2);let Se;var Ie=v(de,2),xe=m(Ie),Ne=v(Z,2);{var ze=ft=>{var Lt=Uee(),mi=v(m(Lt),4);{var fi=gi=>{var Qt=Kx(),Ni=m(Qt);z(()=>O(Ni,l(g))),D(gi,Qt)};H(mi,gi=>{l(g)&&gi(fi)})}var Ei=v(mi,2);{var xt=gi=>{var Qt=jee(),Ni=m(Qt),Zi=m(Ni);let vi;var gn=m(Zi),cn=v(Zi,4);let rn;var mn=m(cn),Ct=v(Ni,2),Zt=m(Ct);let Ii;var Wi=m(Zt),Pi=v(Zt,4);let pn;var Dn=m(Pi);z(()=>{vi=Bt(Zi,1,"check-icon svelte-17yczfe",null,vi,{ok:l(u).mosquittoCtrl,fail:!l(u).mosquittoCtrl}),O(gn,l(u).mosquittoCtrl?"✓":"✗"),rn=Bt(cn,1,"check-note svelte-17yczfe",null,rn,{ok:l(u).mosquittoCtrl,fail:!l(u).mosquittoCtrl}),O(mn,l(u).mosquittoCtrl?"found in PATH":"not found — install the mosquitto or mosquitto-clients package"),Ii=Bt(Zt,1,"check-icon svelte-17yczfe",null,Ii,{ok:l(u).mosquitto,fail:!l(u).mosquitto}),O(Wi,l(u).mosquitto?"✓":"✗"),pn=Bt(Pi,1,"check-note svelte-17yczfe",null,pn,{ok:l(u).mosquitto,fail:!l(u).mosquitto}),O(Dn,l(u).mosquitto?"found in PATH":"not found — install the mosquitto package")}),D(gi,Qt)},ui=gi=>{var Qt=$ee();D(gi,Qt)};H(Ei,gi=>{l(u)?gi(xt):l(f)&&gi(ui,1)})}var Pe=v(Ei,2),Ee=m(Pe),Gt=m(Ee);z(()=>{Ee.disabled=l(f),O(Gt,l(f)?"Checking…":l(u)?"Re-check":"Check tools")}),j("click",Ee,I),D(ft,Lt)};H(Ne,ft=>{l(d)==="local"&&ft(ze)})}var me=v(Ne,2);{var dt=ft=>{var Lt=Xee(),mi=bt(Lt),fi=v(m(mi),4),Ei=m(fi),xt=v(m(Ei)),ui=v(Ei,2),Pe=v(m(ui)),Ee=v(ui,2),Gt=v(m(Ee)),gi=v(Ee,2),Qt=v(m(gi)),Ni=v(mi,2),Zi=v(m(Ni),2),vi=v(m(Zi)),gn=m(vi),cn=v(Zi,2);{var rn=Xe=>{var ci=Gee(),Oi=bt(ci),ii=v(m(Oi)),zi=m(ii),Gi=v(zi,2),qi=v(Oi,2);{var K=zt=>{var ni=qee(),mt=v(m(ni)),et=m(mt),X=v(et,2);z(()=>T1(et,l($))),j("click",X,()=>V(l($))),D(zt,ni)};H(qi,zt=>{l($)&&zt(K)})}var ke=v(qi,2),rt=m(ke),Ze=m(rt);z(()=>{T1(zi,l(p)),rt.disabled=l(C),O(Ze,l(C)?"Generating…":"Regenerate keypair")}),j("click",Gi,()=>V(l(p))),j("click",rt,R),D(Xe,ci)},mn=Xe=>{var ci=Kee(),Oi=m(ci),ii=m(Oi);z(()=>{Oi.disabled=l(C),O(ii,l(C)?"Generating…":"Generate keypair")}),j("click",Oi,R),D(Xe,ci)};H(cn,Xe=>{l(p)?Xe(rn):Xe(mn,-1)})}var Ct=v(cn,2);{var Zt=Xe=>{var ci=Kx(),Oi=m(ci);z(()=>O(Oi,l(b))),D(Xe,ci)};H(Ct,Xe=>{l(b)&&Xe(Zt)})}var Ii=v(Ni,2),Wi=v(m(Ii),2),Pi=m(Wi),pn=m(Pi),Dn=v(Pi,2);{var Ui=Xe=>{var ci=Zee();let Oi;var ii=m(ci);z(zi=>{Oi=Bt(ci,1,"test-result svelte-17yczfe",null,Oi,zi),O(ii,l(w))},[()=>({ok:l(w).startsWith("✓"),fail:l(w).startsWith("✗")})]),D(Xe,ci)};H(Dn,Xe=>{l(w)&&Xe(Ui)})}z(()=>{un(Qt,"placeholder",l(a)),O(gn,l(t).identityFile||l(a)),Pi.disabled=l(y)||!l(t).host,O(pn,l(y)?"Testing…":"Test SSH connection")}),Nt(xt,()=>l(t).host,Xe=>l(t).host=Xe),Nt(Pe,()=>l(t).port,Xe=>l(t).port=Xe),Nt(Gt,()=>l(t).user,Xe=>l(t).user=Xe),Nt(Qt,()=>l(t).identityFile,Xe=>l(t).identityFile=Xe),j("click",Pi,P),D(ft,Lt)};H(me,ft=>{l(d)==="ssh"&&ft(dt)})}var Pt=v(me,2);{var Ye=ft=>{var Lt=Kx(),mi=m(Lt);z(()=>O(mi,l(r))),D(ft,Lt)};H(Pt,ft=>{l(r)&&ft(Ye)})}var yt=v(Pt,2);{var ye=ft=>{var Lt=Yee();D(ft,Lt)};H(yt,ft=>{l(s)&&ft(ye)})}var Oe=v(yt,2),ht=m(Oe),At=m(ht);z(()=>{se=Bt(ve,1,"svelte-17yczfe",null,se,{active:l(d)==="local"}),Se=Bt(ue,1,"svelte-17yczfe",null,Se,{active:l(d)==="ssh"}),O(xe,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"),ht.disabled=l(n),O(At,l(n)?"Saving…":"Save")}),j("click",ve,()=>{x(d,"local"),l(u)||I()}),j("click",ue,()=>x(d,"ssh")),j("click",ht,M),D(o,J),Ms()}qs(["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(Di([])),r=B(!0),a=B(Di(new Set(["D","I","N","W","E"]))),d=B(void 0),u=B(!1),f=B(null),g=null;js(async()=>{const Z=await bU().catch(()=>[]),de=cq(),ve=new Set,se=[...Z,...de].filter(ue=>n.has(ue.level)).map(ue=>({ts:ue.ts,level:ue.level,msg:ue.msg}));se.sort((ue,Se)=>ue.ts-Se.ts),x(s,se.filter(ue=>{const Se=`${ue.ts}\0${ue.msg}`;return ve.has(Se)?!1:(ve.add(Se),!0)}).slice(-500),!0),l(s).length>0&&(x(u,!0),gl().then(p)),g=tr("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)&&gl().then(p))}),tx().then(ue=>{const Se=ue.managed.log_dest,Ie=Array.isArray(Se)?Se:Se?[Se]:[];x(f,Ie.includes("topic"),!0)}).catch(()=>{x(f,null)})}),jp(()=>{g==null||g()});function p(){l(d)&&(l(d).scrollTop=l(d).scrollHeight)}function C(Z){const de=new Set(l(a));de.has(Z)?de.delete(Z):de.add(Z),x(a,de,!0)}function b(){x(s,[],!0),x(u,!1)}let y=Ot(()=>l(s).filter(Z=>l(a).has(Z.level)));function w(Z){const de=new Date(Z);return de.toTimeString().slice(0,8)+"."+String(de.getMilliseconds()).padStart(3,"0")}var A=rte(),I=m(A),M=m(I);ri(M,20,()=>["D","I","N","W","E"],Vi,(Z,de)=>{var ve=ete();let se;var ue=m(ve);z(Se=>{se=Bt(ve,1,`lvl-btn ${i[de]??""}`,"svelte-1yc29ow",se,Se),un(ve,"title",`Toggle ${de??""} messages`),O(ue,t[de])},[()=>({active:l(a).has(de)})]),j("click",ve,()=>C(de)),D(Z,ve)});var R=v(M,4),P=m(R),V=v(R,2),$=v(I,2),J=m($);{var re=Z=>{var de=ste(),ve=m(de);{var se=Se=>{var Ie=As(),xe=bt(Ie);{var Ne=dt=>{var Pt=tte();D(dt,Pt)},ze=dt=>{var Pt=ite();D(dt,Pt)},me=dt=>{var Pt=nte();D(dt,Pt)};H(xe,dt=>{l(f)===!1?dt(Ne):l(f)===!0?dt(ze,1):dt(me,-1)})}D(Se,Ie)},ue=Se=>{var Ie=ro("No messages match the current filter.");D(Se,Ie)};H(ve,Se=>{l(u)?Se(ue,-1):Se(se)})}D(Z,de)},fe=Z=>{var de=As(),ve=bt(de);ri(ve,17,()=>l(y),se=>se.ts+se.msg,(se,ue)=>{var Se=ote(),Ie=m(Se),xe=m(Ie),Ne=v(Ie,2),ze=m(Ne),me=v(Ne,2),dt=m(me);z(Pt=>{O(xe,Pt),Bt(Ne,1,`badge ${i[l(ue).level]??""}`,"svelte-1yc29ow"),O(ze,t[l(ue).level]),O(dt,l(ue).msg)},[()=>w(l(ue).ts)]),D(se,Se)}),D(Z,de)};H(J,Z=>{l(y).length===0?Z(re):Z(fe,-1)})}hs($,Z=>x(d,Z),()=>l(d)),bs(P,()=>l(r),Z=>x(r,Z)),j("click",V,b),D(o,A),Ms()}qs(["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 y(){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 Se=await Ml(),Ie=Se.broker??{};await xp({...Se,broker:{...Ie,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 Ml(),ue=se.broker??{};await xp({...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(),Se=m(ue);z(()=>O(Se,l(i))),D(se,ue)};H(P,se=>{l(i)&&se(V)})}var $=v(P,2);{var J=se=>{var ue=cte(),Se=v(m(ue),6),Ie=m(Se);z(()=>Ie.disabled=l(n)),j("click",Ie,()=>{x(t,"probe"),b()}),D(se,ue)},re=se=>{var ue=dte(),Se=m(ue),Ie=m(Se);z(()=>O(Ie,l(n)?"Probing dynsec…":"Checking dynsec status…")),D(se,ue)},fe=se=>{var ue=ute(),Se=v(m(ue),2),Ie=v(m(Se)),xe=v(Se,2),Ne=v(m(xe)),ze=v(xe,2),me=v(m(ze)),dt=v(ze,2),Pt=m(dt),Ye=m(Pt);z(()=>{Pt.disabled=l(n)||!l(s),O(Ye,l(n)?"Bootstrapping…":"Bootstrap dynsec")}),Nt(Ie,()=>l(s),yt=>x(s,yt)),Nt(Ne,()=>l(r),yt=>x(r,yt)),Nt(me,()=>l(a),yt=>x(a,yt)),j("click",Pt,y),D(se,ue)},Z=se=>{var ue=fte(),Se=v(m(ue),2),Ie=v(m(Se),3),xe=m(Ie),Ne=v(Se,4),ze=m(Ne),me=m(ze),dt=v(ze,2),Pt=v(Ne,2);{var Ye=yt=>{var ye=hte();D(yt,ye)};H(Pt,yt=>{l(f)&&yt(Ye)})}z(()=>{O(xe,l(d).confFilePath),ze.disabled=l(f),O(me,l(f)?"Restarting…":"Restart mosquitto now")}),j("click",ze,w),j("click",dt,()=>{x(t,"done")}),D(se,ue)},de=se=>{var ue=gte(),Se=v(m(ue),4),Ie=m(Se);j("click",Ie,function(...xe){var Ne;(Ne=e.onDone)==null||Ne.apply(this,xe)}),D(se,ue)},ve=se=>{var ue=pte(),Se=v(m(ue),2),Ie=v(m(Se)),xe=v(Se,2),Ne=v(m(xe)),ze=v(xe,2),me=m(ze),dt=v(me,2),Pt=m(dt);z(()=>{dt.disabled=l(C)||!l(g)||!l(p),O(Pt,l(C)?"Saving…":"Save credentials")}),Nt(Ie,()=>l(g),Ye=>x(g,Ye)),Nt(Ne,()=>l(p),Ye=>x(p,Ye)),j("click",me,()=>x(t,"intro")),j("click",dt,A),D(se,ue)};H($,se=>{l(t)==="intro"?se(J):l(t)==="probe"?se(re,1):l(t)==="config"?se(fe,2):l(t)==="restart"&&l(d)?se(Z,3):l(t)==="done"?se(de,4):l(t)==="manual"&&se(ve,5)})}j("click",R,()=>x(t,"manual")),D(o,I),Ms()}qs(["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(Di([])),s=B(!0),r=B(""),a=B(!1),d=B(""),u=B(!1),f=B(!1),g=B(""),p=B(""),C;js(()=>{b()});async function b(){x(s,!0),x(r,"");try{const Oe=await tx();x(t,Oe.raw??"",!0),x(i,Oe.checksum,!0),x(n,Oe.backups??[],!0)}catch(Oe){x(r,Oe.message??"Failed to load config",!0)}finally{x(s,!1)}}async function y(){var Oe;x(a,!0),x(d,""),x(u,!1);try{await CU(l(t),l(i)),x(u,!0),await b(),x(u,!0)}catch(ht){(Oe=ht.message)!=null&&Oe.includes("external_modify")||ht.status===409?x(d,"mosquitto.conf was modified externally since last read. Reload first."):x(d,ht.message??"Save failed",!0)}finally{x(a,!1)}}async function w(){x(f,!0),x(g,"");try{const Oe=await Nb();x(g,Oe.stderr||Oe.stdout||"Reloaded",!0)}catch(Oe){x(g,"Error: "+(Oe.message??"reload failed"))}finally{x(f,!1)}}async function A(Oe){if(await C.show(`Restore backup "${Oe}"? Current mosquitto.conf will be overwritten.`,{confirm:"Restore",danger:!0})){x(p,Oe,!0),x(d,"");try{await yU(Oe),await b()}catch(ht){x(d,ht.message??"Restore failed",!0)}finally{x(p,"")}}}async function I(){try{const Oe=await EU();x(n,Oe.backups,!0)}catch{}}function M(Oe){const ht=Oe.match(/\.bak-(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})/);return ht?`${ht[1]}-${ht[2]}-${ht[3]} ${ht[4]}:${ht[5]}:${ht[6]}`:Oe}var R=yte(),P=bt(R),V=m(P),$=v(m(V),2),J=m($),re=m(J),fe=v(J,2),Z=m(fe),de=v(V,2);{var ve=Oe=>{var ht=aA(),At=m(ht);z(()=>O(At,l(r))),D(Oe,ht)};H(de,Oe=>{l(r)&&Oe(ve)})}var se=v(de,2);{var ue=Oe=>{var ht=aA(),At=m(ht);z(()=>O(At,l(d))),D(Oe,ht)};H(se,Oe=>{l(d)&&Oe(ue)})}var Se=v(se,2);{var Ie=Oe=>{var ht=mte();D(Oe,ht)};H(Se,Oe=>{l(u)&&Oe(Ie)})}var xe=v(Se,2);{var Ne=Oe=>{var ht=_te(),At=m(ht);z(()=>O(At,l(g))),D(Oe,ht)};H(xe,Oe=>{l(g)&&Oe(Ne)})}var ze=v(xe,2),me=m(ze);{var dt=Oe=>{var ht=bte();D(Oe,ht)},Pt=Oe=>{wg(Oe,{language:"ini",onSave:y,get value(){return l(t)},set value(ht){x(t,ht,!0)}})};H(me,Oe=>{l(s)?Oe(dt):Oe(Pt,-1)})}var Ye=v(ze,2);{var yt=Oe=>{var ht=Ete(),At=m(ht),ft=v(m(At),2),Lt=v(At,2);ri(Lt,21,()=>l(n),Vi,(mi,fi)=>{var Ei=Cte(),xt=m(Ei),ui=m(xt),Pe=v(xt,2),Ee=m(Pe);z(Gt=>{O(ui,Gt),Pe.disabled=l(p)===l(fi),O(Ee,l(p)===l(fi)?"Restoring…":"Restore")},[()=>M(l(fi))]),j("click",Pe,()=>A(l(fi))),D(mi,Ei)}),j("click",ft,I),D(Oe,ht)};H(Ye,Oe=>{l(n).length>0&&Oe(yt)})}var ye=v(P,2);hs(Qa(ye,{}),Oe=>C=Oe,()=>C),z(()=>{J.disabled=l(a)||l(s),O(re,l(a)?"Saving…":"Save"),fe.disabled=l(f),O(Z,l(f)?"Reloading…":"Apply & Reload")}),j("click",J,y),j("click",fe,w),D(o,R),Ms()}qs(["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(Di([])),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(""),y=B(!1),w=B(""),A=B(null),I=B("/etc/mosquitto/acl"),M=B(""),R=B(!1),P=B(""),V=B(""),$=B(!1),J=B(!1),re=B(""),fe;js(async()=>{try{const Xe=await tx(),ci=Xe.listeners.find(ii=>ii.password_file);ci!=null&&ci.password_file&&x(t,ci.password_file,!0);const Oi=Xe.listeners.find(ii=>ii.acl_file);Oi!=null&&Oi.acl_file&&x(I,Oi.acl_file,!0),!(ci!=null&&ci.password_file)&&Xe.managed.password_file&&x(t,String(Xe.managed.password_file),!0),!(Oi!=null&&Oi.acl_file)&&Xe.managed.acl_file&&x(I,String(Xe.managed.acl_file),!0)}catch{}await Z(),await Se()});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 de(){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 ve(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(y,!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(y,!1)}}async function ue(Xe){if(await fe.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(ci){x(s,ci.message??"Delete failed",!0)}finally{x(A,null)}}}async function Se(){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 Ie(){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 xe(){x(J,!0),x(re,"");try{const Xe=await Nb();x(re,Xe.stderr||Xe.stdout||"Reloaded",!0)}catch(Xe){x(re,"Error: "+(Xe.message??"reload failed"))}finally{x(J,!1)}}var Ne=Pte(),ze=bt(Ne),me=m(ze),dt=m(me),Pt=v(m(dt),2),Ye=m(Pt),yt=m(Ye),ye=v(dt,2),Oe=m(ye),ht=v(m(Oe),2),At=v(Oe,2),ft=v(ye,2);{var Lt=Xe=>{var ci=Ste(),Oi=m(ci);z(()=>O(Oi,l(re))),D(Xe,ci)};H(ft,Xe=>{l(re)&&Xe(Lt)})}var mi=v(ft,2);{var fi=Xe=>{var ci=n1(),Oi=m(ci);z(()=>O(Oi,l(s))),D(Xe,ci)};H(mi,Xe=>{l(s)&&Xe(fi)})}var Ei=v(mi,2);{var xt=Xe=>{var ci=lA(),Oi=m(ci);z(()=>O(Oi,l(r))),D(Xe,ci)};H(Ei,Xe=>{l(r)&&Xe(xt)})}var ui=v(Ei,2);{var Pe=Xe=>{var ci=cA();D(Xe,ci)},Ee=Xe=>{var ci=Ite(),Oi=bt(ci);{var ii=et=>{var X=Fte(),Te=v(m(X));ri(Te,21,()=>l(i),Vi,(le,ge)=>{var Jt=Bte(),ai=m(Jt),bi=m(ai),Ci=v(ai),Hi=m(Ci);{var ie=_e=>{var Ve=Ate(),_t=m(Ve),It=v(_t,2),Ai=v(It,2);{var ei=Fe=>{var Et=Dte(),gt=m(Et);z(()=>O(gt,l(w))),D(Fe,Et)};H(Ai,Fe=>{l(w)&&Fe(ei)})}var pe=v(Ai,2),He=m(pe),Je=v(pe,2);z(()=>{pe.disabled=l(y),O(He,l(y)?"…":"Save")}),Nt(_t,()=>l(C),Fe=>x(C,Fe)),Nt(It,()=>l(b),Fe=>x(b,Fe)),j("click",pe,se),j("click",Je,()=>x(p,null)),D(_e,Ve)},tt=_e=>{var Ve=kte(),_t=bt(Ve),It=v(_t,2),Ai=m(It);z(()=>{It.disabled=l(A)===l(ge),O(Ai,l(A)===l(ge)?"…":"Delete")}),j("click",_t,()=>ve(l(ge))),j("click",It,()=>ue(l(ge))),D(_e,Ve)};H(Hi,_e=>{l(p)===l(ge)?_e(ie):_e(tt,-1)})}z(()=>O(bi,l(ge))),D(le,Jt)}),D(et,X)},zi=et=>{var X=Lte();D(et,X)};H(Oi,et=>{l(i).length>0?et(ii):l(s)||et(zi,1)})}var Gi=v(Oi,2),qi=v(m(Gi),2),K=m(qi),ke=v(K,2),rt=v(ke,2),Ze=v(rt,2),zt=m(Ze),ni=v(qi,2);{var mt=et=>{var X=n1(),Te=m(X);z(()=>O(Te,l(g))),D(et,X)};H(ni,et=>{l(g)&&et(mt)})}z(()=>{Ze.disabled=l(f),O(zt,l(f)?"Adding…":"Add")}),Nt(K,()=>l(a),et=>x(a,et)),Nt(ke,()=>l(d),et=>x(d,et)),Nt(rt,()=>l(u),et=>x(u,et)),j("click",Ze,de),D(Xe,ci)};H(ui,Xe=>{l(n)?Xe(Pe):Xe(Ee,-1)})}var Gt=v(me,2),gi=m(Gt),Qt=v(m(gi),2),Ni=m(Qt),Zi=m(Ni),vi=v(gi,2),gn=m(vi),cn=v(m(gn),2),rn=v(gn,2),mn=v(vi,2);{var Ct=Xe=>{var ci=n1(),Oi=m(ci);z(()=>O(Oi,l(P))),D(Xe,ci)};H(mn,Xe=>{l(P)&&Xe(Ct)})}var Zt=v(mn,2);{var Ii=Xe=>{var ci=lA(),Oi=m(ci);z(()=>O(Oi,l(V))),D(Xe,ci)};H(Zt,Xe=>{l(V)&&Xe(Ii)})}var Wi=v(Zt,2),Pi=m(Wi);{var pn=Xe=>{var ci=cA();D(Xe,ci)},Dn=Xe=>{wg(Xe,{language:"plaintext",onSave:Ie,get value(){return l(M)},set value(ci){x(M,ci,!0)}})};H(Pi,Xe=>{l(R)?Xe(pn):Xe(Dn,-1)})}var Ui=v(ze,2);hs(Qa(Ui,{}),Xe=>fe=Xe,()=>fe),z(()=>{Ye.disabled=l(J),O(yt,l(J)?"Reloading…":"Apply & Reload"),At.disabled=l(n),Ni.disabled=l($),O(Zi,l($)?"Saving…":"Save"),rn.disabled=l(R)}),j("click",Ye,xe),j("change",ht,Z),Nt(ht,()=>l(t),Xe=>x(t,Xe)),j("click",At,Z),j("click",Ni,Ie),j("change",cn,Se),Nt(cn,()=>l(I),Xe=>x(I,Xe)),j("click",rn,Se),D(o,Ne),Ms()}qs(["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(Di(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 Rb(),!0),x(g,"")}catch(xt){x(g,xt.message??"Failed to load broker status",!0)}finally{x(p,!1)}}js(()=>{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 y(){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 Pe;if(!((Pe=l(f))!=null&&Pe.sys))return"—";const ui=l(f).sys[xt];return ui?String(ui.val??"—"):"—"}function A(xt){if(xt==="—")return xt;const ui=xt.match(/^(\d+)/),Pe=ui?parseInt(ui[1]):NaN;if(isNaN(Pe))return xt;const Ee=Math.floor(Pe/86400),Gt=Math.floor(Pe%86400/3600),gi=Math.floor(Pe%3600/60),Qt=Pe%60,Ni=Zi=>String(Zi).padStart(2,"0");return Ee>0?`${Ee}d ${Ni(Gt)}:${Ni(gi)}:${Ni(Qt)}`:`${Ni(Gt)}:${Ni(gi)}:${Ni(Qt)}`}function I(xt){if(xt==="—")return xt;const ui=parseInt(xt);return isNaN(ui)?xt:ui<1024?`${ui} B`:ui<1048576?`${(ui/1024).toFixed(1)} KB`:ui<1073741824?`${(ui/1048576).toFixed(1)} MB`:`${(ui/1073741824).toFixed(1)} GB`}var M=Yte(),R=bt(M),P=m(R),V=m(P);let $;var J=v(V,2);let re;var fe=v(J,2);let Z;var de=v(fe,2);let ve;var se=v(de,2);let ue;var Se=v(se,2);let Ie;var xe=v(Se,2);let Ne;var ze=v(xe,2);let me;var dt=v(ze,2);let Pt;var Ye=v(P,2);{var yt=xt=>{var ui=Xte(),Pe=m(ui);{var Ee=Qt=>{var Ni=Mte();D(Qt,Ni)},Gt=Qt=>{var Ni=Rte(),Zi=m(Ni);z(()=>O(Zi,l(g))),D(Qt,Ni)},gi=Qt=>{var Ni=Zte(),Zi=bt(Ni),vi=m(Zi),gn=m(vi),cn=v(m(gn),4),rn=m(cn),mn=v(gn,2);{var Ct=ii=>{var zi=Nte(),Gi=m(zi);let qi;var K=v(Gi,4);let ke;var rt=m(K);{var Ze=X=>{var Te=ro("plugin active");D(X,Te)},zt=X=>{var Te=ro("connected — plugin not responding");D(X,Te)},ni=X=>{var Te=ro("disconnected");D(X,Te)};H(rt,X=>{l(f).dynsec.dynsecReady?X(Ze):l(f).dynsec.connected?X(zt,1):X(ni,-1)})}var mt=v(K,2),et=m(mt);z(()=>{qi=Bt(Gi,1,"dot svelte-zuhcpo",null,qi,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,"dot-err":!l(f).dynsec.connected}),ke=Bt(K,1,"conn-detail svelte-zuhcpo",null,ke,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,err:!l(f).dynsec.connected}),mt.disabled=l(n),O(et,l(n)?"…":"deactivate")}),j("click",mt,y),D(ii,zi)},Zt=ii=>{var zi=Hte(),Gi=v(m(zi),6);{var qi=K=>{var ke=Ote();j("click",ke,()=>x(t,!0)),D(K,ke)};H(Gi,K=>{l(t)||K(qi)})}D(ii,zi)};H(mn,ii=>{l(f).dynsec.configured?ii(Ct):ii(Zt,-1)})}var Ii=v(mn,2);{var Wi=ii=>{var zi=Wte(),Gi=m(zi);z(()=>O(Gi,l(s))),D(ii,zi)};H(Ii,ii=>{l(s)&&ii(Wi)})}var Pi=v(vi,2);{var pn=ii=>{var zi=qte(),Gi=m(zi);{var qi=Ze=>{var zt=zte(),ni=m(zt);z(()=>{zt.disabled=l(r),O(ni,l(r)?"Running diagnostics…":"Run diagnostics")}),j("click",zt,b),D(Ze,zt)},K=Ze=>{var zt=$te(),ni=bt(zt);let mt;var et=m(ni);{var X=Jt=>{var ai=dA(),bi=m(ai);z(()=>O(bi,`⚠ ${l(a).error??""}`)),D(Jt,ai)},Te=Jt=>{var ai=jte(),bi=bt(ai),Ci=v(m(bi)),Hi=m(Ci),ie=v(bi,2),tt=v(m(ie)),_e=m(tt),Ve=v(ie,2),_t=v(m(Ve)),It=m(_t),Ai=v(Ve,2),ei=v(m(Ai)),pe=m(ei),He=v(Ai,2);ri(He,17,()=>l(a).issues,Vi,(Et,gt)=>{var Kt=dA(),U=m(Kt);z(()=>O(U,`⚠ ${l(gt)??""}`)),D(Et,Kt)});var Je=v(He,2);{var Fe=Et=>{var gt=Vte();D(Et,gt)};H(Je,Et=>{l(a).ok&&Et(Fe)})}z(()=>{O(Hi,l(a).dynSecPath),Bt(tt,1,hg(l(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),O(_e,l(a).adminClientExists?"✓ yes":"✗ no"),Bt(_t,1,hg(l(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),O(It,l(a).hasAdminRole?"✓ yes":"✗ no"),Bt(ei,1,hg(l(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),O(pe,l(a).hasControlSendAcl?"✓ present":"✗ missing")}),D(Jt,ai)};H(et,Jt=>{l(a).error?Jt(X):Jt(Te,-1)})}var le=v(ni,2),ge=m(le);z(()=>{mt=Bt(ni,1,"diag-card svelte-zuhcpo",null,mt,{"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(qi)})}var ke=v(Gi,2);{var rt=Ze=>{var zt=Ute();j("click",zt,()=>x(t,!0)),D(Ze,zt)};H(ke,Ze=>{l(t)||Ze(rt)})}D(ii,zi)};H(Pi,ii=>{l(f).dynsec.configured&&l(f).dynsec.connected&&!l(f).dynsec.dynsecReady&&ii(pn)})}var Dn=v(Pi,2);{var Ui=ii=>{var zi=Gte(),Gi=m(zi),qi=v(m(Gi)),K=m(qi),ke=v(qi,3),rt=m(ke),Ze=v(ke,3),zt=m(Ze),ni=v(Ze,3),mt=m(ni),et=v(ni,3),X=m(et),Te=v(et,3),le=m(Te);z((ge,Jt,ai,bi,Ci,Hi,ie,tt,_e,Ve,_t,It)=>{O(K,ge),O(rt,Jt),O(zt,`${ai??""} connected · ${bi??""} max · ${Ci??""} total`),O(mt,`${Hi??""} rcv · ${ie??""} sent · ${tt??""} stored`),O(X,`${_e??""} retained · ${Ve??""} subscriptions`),O(le,`${_t??""} in · ${It??""} 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(ii,zi)},Xe=Ot(()=>Object.keys(l(f).sys).length>0);H(Dn,ii=>{l(Xe)&&ii(Ui)})}var ci=v(Zi,2);{var Oi=ii=>{var zi=Kte(),Gi=m(zi);vte(Gi,{onDone:()=>{x(t,!1),C()}}),D(ii,zi)};H(ci,ii=>{l(t)&&(!l(f).dynsec.configured||!l(f).dynsec.dynsecReady)&&ii(Oi)})}z(()=>O(rn,l(f).sshConfigured?`ssh — ${l(f).sshHost}`:"local")),D(Qt,Ni)};H(Pe,Qt=>{l(p)?Qt(Ee):l(g)?Qt(Gt,1):l(f)&&Qt(gi,2)})}D(xt,ui)},ye=xt=>{{let ui=Ot(()=>{var Pe;return((Pe=l(f))==null?void 0:Pe.dynsec.dynsecReady)??!1});tee(xt,{get dynsecReady(){return l(ui)}})}},Oe=xt=>{Cee(xt,{})},ht=xt=>{wte(xt,{})},At=xt=>{Tte(xt,{})},ft=xt=>{pee(xt,{})},Lt=xt=>{Vee(xt,{})},mi=xt=>{Jee(xt,{})},fi=xt=>{ate(xt,{})};H(Ye,xt=>{l(u)==="status"?xt(yt):l(u)==="users"?xt(ye,1):l(u)==="brokerconfig"?xt(Oe,2):l(u)==="advanced"?xt(ht,3):l(u)==="passwd"?xt(At,4):l(u)==="listeners"?xt(ft,5):l(u)==="certs"?xt(Lt,6):l(u)==="ssh"?xt(mi,7):l(u)==="logs"&&xt(fi,8)})}var Ei=v(R,2);hs(Qa(Ei,{}),xt=>i=xt,()=>i),z(()=>{$=Bt(V,1,"svelte-zuhcpo",null,$,{active:l(u)==="status"}),re=Bt(J,1,"svelte-zuhcpo",null,re,{active:l(u)==="users"}),Z=Bt(fe,1,"svelte-zuhcpo",null,Z,{active:l(u)==="brokerconfig"}),ve=Bt(de,1,"svelte-zuhcpo",null,ve,{active:l(u)==="advanced"}),ue=Bt(se,1,"svelte-zuhcpo",null,ue,{active:l(u)==="passwd"}),Ie=Bt(Se,1,"svelte-zuhcpo",null,Ie,{active:l(u)==="listeners"}),Ne=Bt(xe,1,"svelte-zuhcpo",null,Ne,{active:l(u)==="certs"}),me=Bt(ze,1,"svelte-zuhcpo",null,me,{active:l(u)==="ssh"}),Pt=Bt(dt,1,"svelte-zuhcpo",null,Pt,{active:l(u)==="logs"})}),j("click",V,()=>x(u,"status")),j("click",J,()=>x(u,"users")),j("click",fe,()=>x(u,"brokerconfig")),j("click",de,()=>x(u,"advanced")),j("click",se,()=>x(u,"passwd")),j("click",Se,()=>x(u,"listeners")),j("click",xe,()=>x(u,"certs")),j("click",ze,()=>x(u,"ssh")),j("click",dt,()=>x(u,"logs")),D(o,M),Ms()}qs(["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> <dt class="svelte-1n46o8q">EL util</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">EL lag mean</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">EL lag p99</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(Di(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(""),y=B(!1),w=B(!1);V$(()=>{x(p,!0)});async function A(){x(b,""),x(y,!0);try{await U$(l(C)),x(C,""),x(p,!1)}catch(At){x(b,At.message??"Login failed",!0)}finally{x(y,!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),J=B(Di([])),re=B(0),fe=B(!1),Z=B(Di([]));const de=Ot(()=>l(Z).filter(At=>At.online).length),ve=Ot(()=>l(Z).length===0?"none":l(de)===l(Z).length?"all":l(de)>0?"some":"offline");let se=B(!1),ue=B(!1);async function Se(){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 ef()).startedAt}catch{}try{await SF()}catch{}const ft=Date.now()+6e4;for(;Date.now()<ft;){await new Promise(Lt=>setTimeout(Lt,250));try{const Lt=await ef();if(At===void 0||Lt.startedAt!==At){location.reload();return}}catch{}}location.reload()}async function Ie(){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 xe(){var Lt,mi;if(!await l(M).show(`Update to v${(Lt=l(s))==null?void 0:Lt.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;x(a,!1),x(u,!0);const At=(mi=l(s))==null?void 0:mi.startedAt;try{await Y$()}catch{}const ft=Date.now()+18e4;for(;Date.now()<ft;){await new Promise(fi=>setTimeout(fi,1e3));try{const fi=await ef();if(At===void 0||fi.startedAt!==At){location.reload();return}}catch{x(u,!1),x(R,!0)}}location.reload()}function Ne(At){x(n,At,!0),location.hash=At}js(async()=>{location.hash||(location.hash=l(n));const At=()=>{x(n,i(),!0)};window.addEventListener("hashchange",At);try{const Pe=await $$();x(f,Pe.mode,!0),x(g,Pe.proxyLogoutUrl??"",!0),l(f)==="password"&&(await fetch("/she/scripts")).status===401&&x(p,!0)}catch{}x(w,!0);async function ft(){var Pe,Ee,Gt;try{x(s,await ef(),!0)}catch{}try{const[gi,Qt]=await Promise.all([kF(),Ml()]);x(J,Array.isArray(Qt.pinnedPackages)?Qt.pinnedPackages:[],!0),x(re,Object.keys(gi).filter(Zi=>!l(J).includes(Zi)).length,!0);const Ni=l(fe);x(fe,((Pe=Qt.broker)==null?void 0:Pe.enabled)===!0),Ni&&!l(fe)&&l(n)==="security"&&Ne("scripts")}catch{}!((Ee=l(s))!=null&&Ee.matterEnabled)&&l(n)==="matter"&&Ne("scripts"),!((Gt=l(s))!=null&&Gt.dbEnabled)&&l(n)==="db"&&Ne("scripts")}ft();const Lt=setInterval(ft,5e3),mi=tr("mqtt:status",Pe=>{Pe.connected===!1?(x($,!0),x(P,!1),x(V,!1)):(x($,!1),x(P,Pe.ready===!1),x(V,Pe.ready===!0))}),fi=tr("matter:deviceList",Pe=>{Array.isArray(Pe.devices)&&x(Z,Pe.devices.map(Ee=>({nodeId:String(Ee.nodeId),online:!!Ee.online})),!0)}),Ei=tr("matter:deviceStatus",Pe=>{if(Pe.nodeId===void 0)return;const Ee=String(Pe.nodeId),Gt=!!Pe.online;x(Z,l(Z).map(gi=>gi.nodeId===Ee?{...gi,online:Gt}:gi),!0)}),xt=RF();x(se,xt.some(Pe=>Pe.level==="error"),!0),x(ue,!l(se)&&xt.some(Pe=>Pe.level==="warn"),!0);const ui=vS(Pe=>{Pe.level==="error"?(x(se,!0),x(ue,!1)):Pe.level==="warn"&&!l(se)&&x(ue,!0)});return()=>{window.removeEventListener("hashchange",At),clearInterval(Lt),mi(),fi(),Ei(),ui()}});var ze=Bie();_s("click",g6,()=>{l(r)&&x(r,!1),l(a)&&x(a,!1)});var me=bt(ze);{var dt=At=>{var ft=wie(),Lt=m(ft),mi=v(m(Lt),2);let fi;var Ei=v(mi,2);let xt;var ui=v(m(Ei),2);{var Pe=T=>{var W=Jte();z(()=>un(W,"title",`${l(re)??""} package update${l(re)===1?"":"s"} available`)),D(T,W)};H(ui,T=>{l(re)>0&&T(Pe)})}var Ee=v(Ei,2);let Gt;var gi=v(m(Ee),2);{var Qt=T=>{var W=eie();D(T,W)},Ni=T=>{var W=tie();D(T,W)},Zi=T=>{var W=iie();D(T,W)};H(gi,T=>{l($)?T(Qt):l(P)?T(Ni,1):l(V)&&T(Zi,2)})}var vi=v(Ee,2);{var gn=T=>{var W=nie();let Y;z(()=>Y=Bt(W,1,"svelte-1n46o8q",null,Y,{active:l(n)==="security"})),j("click",W,()=>Ne("security")),D(T,W)};H(vi,T=>{l(fe)&&T(gn)})}var cn=v(vi,2);{var rn=T=>{var W=aie();let Y;var ne=v(m(W),2);{var ae=je=>{var Ce=sie();D(je,Ce)},oe=je=>{var Ce=oie();D(je,Ce)},we=je=>{var Ce=rie();D(je,Ce)};H(ne,je=>{l(ve)==="all"?je(ae):l(ve)==="some"?je(oe,1):l(ve)==="offline"&&je(we,2)})}z(()=>Y=Bt(W,1,"svelte-1n46o8q",null,Y,{active:l(n)==="matter"})),j("click",W,()=>Ne("matter")),D(T,W)};H(cn,T=>{var W;(W=l(s))!=null&&W.matterEnabled&&T(rn)})}var mn=v(cn,2);{var Ct=T=>{var W=lie();let Y;z(()=>Y=Bt(W,1,"svelte-1n46o8q",null,Y,{active:l(n)==="db"})),j("click",W,()=>Ne("db")),D(T,W)};H(mn,T=>{var W;(W=l(s))!=null&&W.dbEnabled&&T(Ct)})}var Zt=v(mn,2);let Ii;var Wi=v(m(Zt),2);{var Pi=T=>{var W=cie();D(T,W)},pn=T=>{var W=die();D(T,W)};H(Wi,T=>{l(se)?T(Pi):l(ue)&&T(pn,1)})}var Dn=v(Zt,4),Ui=v(m(Dn),2),Xe=m(Ui),ci=m(Xe);ci.nodeValue="v1.19.0 ";var Oi=v(ci);{var ii=T=>{var W=uie();D(T,W)};H(Oi,T=>{var W,Y;(W=l(s))!=null&&W.latestVersion&&!((Y=l(s))!=null&&Y.docker)&&T(ii)})}var zi=v(Xe,2);{var Gi=T=>{var W=pie(),Y=m(W),ne=v(m(Y));ne.textContent="v1.19.0";var ae=v(ne,2);{var oe=ce=>{var Ge=hie(),Mt=v(bt(Ge)),Ue=m(Mt);z(()=>O(Ue,`v${l(s).latestVersion??""}`)),D(ce,Ge)},we=ce=>{var Ge=fie();D(ce,Ge)};H(ae,ce=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion?ce(oe):ce(we,-1)})}var je=v(Y,2),Ce=m(je);{var Le=ce=>{var Ge=gie(),Mt=v(m(Ge));z(()=>O(Mt,` Update to v${l(s).latestVersion??""}`)),j("click",Ge,xe),D(ce,Ge)};H(Ce,ce=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion&&ce(Le)})}var Me=v(Ce,2),ot=m(Me);let li;var Q=v(ot);z(()=>{Me.disabled=l(d),li=Bt(ot,0,"svelte-1n46o8q",null,li,{spinning:l(d)}),O(Q,` ${l(d)?"Checking…":"Check for updates"}`)}),j("click",W,ce=>ce.stopPropagation()),j("click",Me,Ie),D(T,W)};H(zi,T=>{var W;l(a)&&!((W=l(s))!=null&&W.docker)&&T(Gi)})}var qi=v(Ui,2),K=m(qi),ke=v(K,2);{var rt=T=>{var W=Eie(),Y=m(W);{var ne=Ce=>{var Le=_ie(),Me=m(Le);{var ot=nt=>{const kt=Ot(()=>Math.floor((Date.now()-l(s).startedAt)/1e3)),ti=Ot(()=>Math.floor(l(kt)/86400)),Yt=Ot(()=>Math.floor(l(kt)%86400/3600)),Ht=Ot(()=>Math.floor(l(kt)%3600/60));var Wt=xie(),Ft=v(bt(Wt)),jt=m(Ft);z(()=>O(jt,`${l(ti)>0?l(ti)+"d ":""}${l(Yt)>0||l(ti)>0?l(Yt)+"h ":""}${l(Ht)??""}m`)),D(nt,Wt)};H(Me,nt=>{l(s).startedAt&&nt(ot)})}var li=v(Me,3),Q=m(li),ce=v(li,3),Ge=m(ce),Mt=v(ce,3),Ue=m(Mt),$e=v(Mt,2);{var Tt=nt=>{var kt=vie(),ti=v(bt(kt)),Yt=m(ti),Ht=v(ti,3),Wt=m(Ht);z(()=>{O(Yt,l(s).matterNodes??0),O(Wt,l(s).matterEndpoints??0)}),D(nt,kt)};H($e,nt=>{l(s).matterEnabled&&nt(Tt)})}var pt=v($e,2);{var Qe=nt=>{var kt=mie(),ti=v(bt(kt)),Yt=m(ti),Ht=v(ti,3),Wt=m(Ht);z(()=>{O(Yt,l(s).dbDocs??"—"),O(Wt,l(s).dbViews??"—")}),D(nt,kt)};H(pt,nt=>{l(s).dbEnabled&&nt(Qe)})}var wt=v(pt,3),Dt=m(wt),st=v(wt,3),Rt=m(st),si=v(st,3),Ut=m(si),De=v(si,3),be=m(De),qe=v(De,3),at=m(qe),Xt=v(qe,3),it=m(Xt);z(()=>{O(Q,l(s).scripts),O(Ge,l(s).topics),O(Ue,l(s).mqttMsgPerSec??"—"),O(Dt,l(s).handlers??"—"),O(Rt,l(s).memMb!=null?l(s).memMb+" MB":"—"),O(Ut,l(s).cpuPercent!=null?l(s).cpuPercent+" %":"—"),O(be,l(s).eluPercent!=null?l(s).eluPercent+" %":"—"),O(at,l(s).elMeanMs!=null?l(s).elMeanMs+" ms":"—"),O(it,l(s).elP99Ms!=null?l(s).elP99Ms+" ms":"—")}),D(Ce,Le)},ae=Ce=>{var Le=bie();D(Ce,Le)};H(Y,Ce=>{l(s)?Ce(ne):Ce(ae,-1)})}var oe=v(Y,2),we=m(oe);{var je=Ce=>{var Le=Cie();j("click",Le,()=>{x(r,!1),Se()}),D(Ce,Le)};H(we,Ce=>{var Le;(Le=l(s))!=null&&Le.docker||Ce(je)})}j("click",W,Ce=>Ce.stopPropagation()),D(T,W)};H(ke,T=>{l(r)&&T(rt)})}var Ze=v(qi,2);let zt;var ni=v(Ze,2);{var mt=T=>{var W=yie();j("click",W,I),D(T,W)};H(ni,T=>{l(f)==="password"&&T(mt)})}var et=v(Lt,2),X=m(et);hs(Qa(X,{}),T=>x(M,T,!0),()=>l(M));var Te=v(X,2);let le;var ge=m(Te);{let T=Ot(()=>l(n)==="scripts");yZ(ge,{get active(){return l(T)}})}var Jt=v(Te,2);let ai;var bi=m(Jt);bJ(bi,{});var Ci=v(Jt,2);let Hi;var ie=m(Ci);tJ(ie,{});var tt=v(Ci,2);let _e;var Ve=m(tt);_Q(Ve,{});var _t=v(tt,2);let It;var Ai=m(_t);Qte(Ai,{});var ei=v(_t,2);let pe;var He=m(ei);EY(He,{});var Je=v(ei,2);let Fe;var Et=m(Je);uX(Et,{});var gt=v(Je,2);let Kt;var U=m(gt);xX(U,{}),z(()=>{fi=Bt(mi,1,"svelte-1n46o8q",null,fi,{active:l(n)==="scripts"}),xt=Bt(Ei,1,"svelte-1n46o8q",null,xt,{active:l(n)==="packages"}),Gt=Bt(Ee,1,"svelte-1n46o8q",null,Gt,{active:l(n)==="mqtt"}),Ii=Bt(Zt,1,"svelte-1n46o8q",null,Ii,{active:l(n)==="logs"}),zt=Bt(Ze,1,"nav-settings svelte-1n46o8q",null,zt,{active:l(n)==="config"}),le=Bt(Te,1,"page-wrap svelte-1n46o8q",null,le,{hidden:l(n)!=="scripts"}),ai=Bt(Jt,1,"page-wrap svelte-1n46o8q",null,ai,{hidden:l(n)!=="packages"}),Hi=Bt(Ci,1,"page-wrap svelte-1n46o8q",null,Hi,{hidden:l(n)!=="mqtt"}),_e=Bt(tt,1,"page-wrap svelte-1n46o8q",null,_e,{hidden:l(n)!=="matter"}),It=Bt(_t,1,"page-wrap svelte-1n46o8q",null,It,{hidden:l(n)!=="security"}),pe=Bt(ei,1,"page-wrap svelte-1n46o8q",null,pe,{hidden:l(n)!=="db"}),Fe=Bt(Je,1,"page-wrap svelte-1n46o8q",null,Fe,{hidden:l(n)!=="config"}),Kt=Bt(gt,1,"page-wrap svelte-1n46o8q",null,Kt,{hidden:l(n)!=="logs"})}),j("click",mi,()=>Ne("scripts")),j("click",Ei,()=>Ne("packages")),j("click",Ee,()=>Ne("mqtt")),j("click",Zt,()=>{Ne("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,()=>Ne("config")),D(At,ft)};H(me,At=>{l(w)&&!l(p)&&At(dt)})}var Pt=v(me,2);{var Ye=At=>{var ft=Die(),Lt=m(ft),mi=v(m(Lt),4),fi=v(m(mi),2),Ei=v(mi,2);{var xt=Ee=>{var Gt=Sie(),gi=m(Gt);z(()=>O(gi,l(b))),D(Ee,Gt)};H(Ei,Ee=>{l(b)&&Ee(xt)})}var ui=v(Ei,2),Pe=m(ui);z(()=>{fi.disabled=l(y),ui.disabled=l(y)||!l(C),O(Pe,l(y)?"Signing in…":"Sign in")}),_s("submit",Lt,Ee=>{Ee.preventDefault(),A()}),Nt(fi,()=>l(C),Ee=>x(C,Ee)),D(At,ft)};H(Pt,At=>{l(p)&&At(Ye)})}var yt=v(Pt,2);{var ye=At=>{var ft=Aie();D(At,ft)};H(yt,At=>{l(R)&&At(ye)})}var Oe=v(yt,2);{var ht=At=>{var ft=kie();D(At,ft)};H(Oe,At=>{l(u)&&At(ht)})}D(o,ze),Ms()}qs(["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(Di([])),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(""),y=B(!1),w=B(""),A=B(null),I=B("/etc/mosquitto/acl"),M=B(""),R=B(!1),P=B(""),V=B(""),$=B(!1),J=B(!1),re=B(""),fe;js(async()=>{try{const Xe=await tx(),ci=Xe.listeners.find(ii=>ii.password_file);ci!=null&&ci.password_file&&x(t,ci.password_file,!0);const Oi=Xe.listeners.find(ii=>ii.acl_file);Oi!=null&&Oi.acl_file&&x(I,Oi.acl_file,!0),!(ci!=null&&ci.password_file)&&Xe.managed.password_file&&x(t,String(Xe.managed.password_file),!0),!(Oi!=null&&Oi.acl_file)&&Xe.managed.acl_file&&x(I,String(Xe.managed.acl_file),!0)}catch{}await Z(),await Se()});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 de(){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 ve(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(y,!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(y,!1)}}async function ue(Xe){if(await fe.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(ci){x(s,ci.message??"Delete failed",!0)}finally{x(A,null)}}}async function Se(){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 Ie(){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 xe(){x(J,!0),x(re,"");try{const Xe=await Nb();x(re,Xe.stderr||Xe.stdout||"Reloaded",!0)}catch(Xe){x(re,"Error: "+(Xe.message??"reload failed"))}finally{x(J,!1)}}var Ne=Pte(),ze=bt(Ne),me=m(ze),dt=m(me),Pt=v(m(dt),2),Ye=m(Pt),yt=m(Ye),ye=v(dt,2),Oe=m(ye),ht=v(m(Oe),2),At=v(Oe,2),ft=v(ye,2);{var Lt=Xe=>{var ci=Ste(),Oi=m(ci);z(()=>O(Oi,l(re))),D(Xe,ci)};H(ft,Xe=>{l(re)&&Xe(Lt)})}var mi=v(ft,2);{var fi=Xe=>{var ci=n1(),Oi=m(ci);z(()=>O(Oi,l(s))),D(Xe,ci)};H(mi,Xe=>{l(s)&&Xe(fi)})}var Ei=v(mi,2);{var xt=Xe=>{var ci=lA(),Oi=m(ci);z(()=>O(Oi,l(r))),D(Xe,ci)};H(Ei,Xe=>{l(r)&&Xe(xt)})}var ui=v(Ei,2);{var Pe=Xe=>{var ci=cA();D(Xe,ci)},Ee=Xe=>{var ci=Ite(),Oi=bt(ci);{var ii=et=>{var X=Fte(),Te=v(m(X));ri(Te,21,()=>l(i),Vi,(le,ge)=>{var Jt=Bte(),ai=m(Jt),bi=m(ai),Ci=v(ai),Hi=m(Ci);{var ie=_e=>{var Ve=Ate(),_t=m(Ve),It=v(_t,2),Ai=v(It,2);{var ei=Fe=>{var Et=Dte(),gt=m(Et);z(()=>O(gt,l(w))),D(Fe,Et)};H(Ai,Fe=>{l(w)&&Fe(ei)})}var pe=v(Ai,2),He=m(pe),Je=v(pe,2);z(()=>{pe.disabled=l(y),O(He,l(y)?"…":"Save")}),Nt(_t,()=>l(C),Fe=>x(C,Fe)),Nt(It,()=>l(b),Fe=>x(b,Fe)),j("click",pe,se),j("click",Je,()=>x(p,null)),D(_e,Ve)},tt=_e=>{var Ve=kte(),_t=bt(Ve),It=v(_t,2),Ai=m(It);z(()=>{It.disabled=l(A)===l(ge),O(Ai,l(A)===l(ge)?"…":"Delete")}),j("click",_t,()=>ve(l(ge))),j("click",It,()=>ue(l(ge))),D(_e,Ve)};H(Hi,_e=>{l(p)===l(ge)?_e(ie):_e(tt,-1)})}z(()=>O(bi,l(ge))),D(le,Jt)}),D(et,X)},zi=et=>{var X=Lte();D(et,X)};H(Oi,et=>{l(i).length>0?et(ii):l(s)||et(zi,1)})}var Gi=v(Oi,2),qi=v(m(Gi),2),K=m(qi),ke=v(K,2),rt=v(ke,2),Ze=v(rt,2),zt=m(Ze),ni=v(qi,2);{var mt=et=>{var X=n1(),Te=m(X);z(()=>O(Te,l(g))),D(et,X)};H(ni,et=>{l(g)&&et(mt)})}z(()=>{Ze.disabled=l(f),O(zt,l(f)?"Adding…":"Add")}),Nt(K,()=>l(a),et=>x(a,et)),Nt(ke,()=>l(d),et=>x(d,et)),Nt(rt,()=>l(u),et=>x(u,et)),j("click",Ze,de),D(Xe,ci)};H(ui,Xe=>{l(n)?Xe(Pe):Xe(Ee,-1)})}var Gt=v(me,2),gi=m(Gt),Qt=v(m(gi),2),Ni=m(Qt),Zi=m(Ni),vi=v(gi,2),gn=m(vi),cn=v(m(gn),2),rn=v(gn,2),mn=v(vi,2);{var Ct=Xe=>{var ci=n1(),Oi=m(ci);z(()=>O(Oi,l(P))),D(Xe,ci)};H(mn,Xe=>{l(P)&&Xe(Ct)})}var Zt=v(mn,2);{var Ii=Xe=>{var ci=lA(),Oi=m(ci);z(()=>O(Oi,l(V))),D(Xe,ci)};H(Zt,Xe=>{l(V)&&Xe(Ii)})}var Wi=v(Zt,2),Pi=m(Wi);{var pn=Xe=>{var ci=cA();D(Xe,ci)},Dn=Xe=>{wg(Xe,{language:"plaintext",onSave:Ie,get value(){return l(M)},set value(ci){x(M,ci,!0)}})};H(Pi,Xe=>{l(R)?Xe(pn):Xe(Dn,-1)})}var Ui=v(ze,2);hs(Qa(Ui,{}),Xe=>fe=Xe,()=>fe),z(()=>{Ye.disabled=l(J),O(yt,l(J)?"Reloading…":"Apply & Reload"),At.disabled=l(n),Ni.disabled=l($),O(Zi,l($)?"Saving…":"Save"),rn.disabled=l(R)}),j("click",Ye,xe),j("change",ht,Z),Nt(ht,()=>l(t),Xe=>x(t,Xe)),j("click",At,Z),j("click",Ni,Ie),j("change",cn,Se),Nt(cn,()=>l(I),Xe=>x(I,Xe)),j("click",rn,Se),D(o,Ne),Ms()}qs(["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(Di(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 Rb(),!0),x(g,"")}catch(xt){x(g,xt.message??"Failed to load broker status",!0)}finally{x(p,!1)}}js(()=>{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 y(){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 Pe;if(!((Pe=l(f))!=null&&Pe.sys))return"—";const ui=l(f).sys[xt];return ui?String(ui.val??"—"):"—"}function A(xt){if(xt==="—")return xt;const ui=xt.match(/^(\d+)/),Pe=ui?parseInt(ui[1]):NaN;if(isNaN(Pe))return xt;const Ee=Math.floor(Pe/86400),Gt=Math.floor(Pe%86400/3600),gi=Math.floor(Pe%3600/60),Qt=Pe%60,Ni=Zi=>String(Zi).padStart(2,"0");return Ee>0?`${Ee}d ${Ni(Gt)}:${Ni(gi)}:${Ni(Qt)}`:`${Ni(Gt)}:${Ni(gi)}:${Ni(Qt)}`}function I(xt){if(xt==="—")return xt;const ui=parseInt(xt);return isNaN(ui)?xt:ui<1024?`${ui} B`:ui<1048576?`${(ui/1024).toFixed(1)} KB`:ui<1073741824?`${(ui/1048576).toFixed(1)} MB`:`${(ui/1073741824).toFixed(1)} GB`}var M=Yte(),R=bt(M),P=m(R),V=m(P);let $;var J=v(V,2);let re;var fe=v(J,2);let Z;var de=v(fe,2);let ve;var se=v(de,2);let ue;var Se=v(se,2);let Ie;var xe=v(Se,2);let Ne;var ze=v(xe,2);let me;var dt=v(ze,2);let Pt;var Ye=v(P,2);{var yt=xt=>{var ui=Xte(),Pe=m(ui);{var Ee=Qt=>{var Ni=Mte();D(Qt,Ni)},Gt=Qt=>{var Ni=Rte(),Zi=m(Ni);z(()=>O(Zi,l(g))),D(Qt,Ni)},gi=Qt=>{var Ni=Zte(),Zi=bt(Ni),vi=m(Zi),gn=m(vi),cn=v(m(gn),4),rn=m(cn),mn=v(gn,2);{var Ct=ii=>{var zi=Nte(),Gi=m(zi);let qi;var K=v(Gi,4);let ke;var rt=m(K);{var Ze=X=>{var Te=ro("plugin active");D(X,Te)},zt=X=>{var Te=ro("connected — plugin not responding");D(X,Te)},ni=X=>{var Te=ro("disconnected");D(X,Te)};H(rt,X=>{l(f).dynsec.dynsecReady?X(Ze):l(f).dynsec.connected?X(zt,1):X(ni,-1)})}var mt=v(K,2),et=m(mt);z(()=>{qi=Bt(Gi,1,"dot svelte-zuhcpo",null,qi,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,"dot-err":!l(f).dynsec.connected}),ke=Bt(K,1,"conn-detail svelte-zuhcpo",null,ke,{ok:l(f).dynsec.dynsecReady,warn:l(f).dynsec.connected&&!l(f).dynsec.dynsecReady,err:!l(f).dynsec.connected}),mt.disabled=l(n),O(et,l(n)?"…":"deactivate")}),j("click",mt,y),D(ii,zi)},Zt=ii=>{var zi=Hte(),Gi=v(m(zi),6);{var qi=K=>{var ke=Ote();j("click",ke,()=>x(t,!0)),D(K,ke)};H(Gi,K=>{l(t)||K(qi)})}D(ii,zi)};H(mn,ii=>{l(f).dynsec.configured?ii(Ct):ii(Zt,-1)})}var Ii=v(mn,2);{var Wi=ii=>{var zi=Wte(),Gi=m(zi);z(()=>O(Gi,l(s))),D(ii,zi)};H(Ii,ii=>{l(s)&&ii(Wi)})}var Pi=v(vi,2);{var pn=ii=>{var zi=qte(),Gi=m(zi);{var qi=Ze=>{var zt=zte(),ni=m(zt);z(()=>{zt.disabled=l(r),O(ni,l(r)?"Running diagnostics…":"Run diagnostics")}),j("click",zt,b),D(Ze,zt)},K=Ze=>{var zt=$te(),ni=bt(zt);let mt;var et=m(ni);{var X=Jt=>{var ai=dA(),bi=m(ai);z(()=>O(bi,`⚠ ${l(a).error??""}`)),D(Jt,ai)},Te=Jt=>{var ai=jte(),bi=bt(ai),Ci=v(m(bi)),Hi=m(Ci),ie=v(bi,2),tt=v(m(ie)),_e=m(tt),Ve=v(ie,2),_t=v(m(Ve)),It=m(_t),Ai=v(Ve,2),ei=v(m(Ai)),pe=m(ei),He=v(Ai,2);ri(He,17,()=>l(a).issues,Vi,(Et,gt)=>{var Kt=dA(),U=m(Kt);z(()=>O(U,`⚠ ${l(gt)??""}`)),D(Et,Kt)});var Je=v(He,2);{var Fe=Et=>{var gt=Vte();D(Et,gt)};H(Je,Et=>{l(a).ok&&Et(Fe)})}z(()=>{O(Hi,l(a).dynSecPath),Bt(tt,1,hg(l(a).adminClientExists?"ok":"fail"),"svelte-zuhcpo"),O(_e,l(a).adminClientExists?"✓ yes":"✗ no"),Bt(_t,1,hg(l(a).hasAdminRole?"ok":"fail"),"svelte-zuhcpo"),O(It,l(a).hasAdminRole?"✓ yes":"✗ no"),Bt(ei,1,hg(l(a).hasControlSendAcl?"ok":"fail"),"svelte-zuhcpo"),O(pe,l(a).hasControlSendAcl?"✓ present":"✗ missing")}),D(Jt,ai)};H(et,Jt=>{l(a).error?Jt(X):Jt(Te,-1)})}var le=v(ni,2),ge=m(le);z(()=>{mt=Bt(ni,1,"diag-card svelte-zuhcpo",null,mt,{"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(qi)})}var ke=v(Gi,2);{var rt=Ze=>{var zt=Ute();j("click",zt,()=>x(t,!0)),D(Ze,zt)};H(ke,Ze=>{l(t)||Ze(rt)})}D(ii,zi)};H(Pi,ii=>{l(f).dynsec.configured&&l(f).dynsec.connected&&!l(f).dynsec.dynsecReady&&ii(pn)})}var Dn=v(Pi,2);{var Ui=ii=>{var zi=Gte(),Gi=m(zi),qi=v(m(Gi)),K=m(qi),ke=v(qi,3),rt=m(ke),Ze=v(ke,3),zt=m(Ze),ni=v(Ze,3),mt=m(ni),et=v(ni,3),X=m(et),Te=v(et,3),le=m(Te);z((ge,Jt,ai,bi,Ci,Hi,ie,tt,_e,Ve,_t,It)=>{O(K,ge),O(rt,Jt),O(zt,`${ai??""} connected · ${bi??""} max · ${Ci??""} total`),O(mt,`${Hi??""} rcv · ${ie??""} sent · ${tt??""} stored`),O(X,`${_e??""} retained · ${Ve??""} subscriptions`),O(le,`${_t??""} in · ${It??""} 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(ii,zi)},Xe=Ot(()=>Object.keys(l(f).sys).length>0);H(Dn,ii=>{l(Xe)&&ii(Ui)})}var ci=v(Zi,2);{var Oi=ii=>{var zi=Kte(),Gi=m(zi);vte(Gi,{onDone:()=>{x(t,!1),C()}}),D(ii,zi)};H(ci,ii=>{l(t)&&(!l(f).dynsec.configured||!l(f).dynsec.dynsecReady)&&ii(Oi)})}z(()=>O(rn,l(f).sshConfigured?`ssh — ${l(f).sshHost}`:"local")),D(Qt,Ni)};H(Pe,Qt=>{l(p)?Qt(Ee):l(g)?Qt(Gt,1):l(f)&&Qt(gi,2)})}D(xt,ui)},ye=xt=>{{let ui=Ot(()=>{var Pe;return((Pe=l(f))==null?void 0:Pe.dynsec.dynsecReady)??!1});tee(xt,{get dynsecReady(){return l(ui)}})}},Oe=xt=>{Cee(xt,{})},ht=xt=>{wte(xt,{})},At=xt=>{Tte(xt,{})},ft=xt=>{pee(xt,{})},Lt=xt=>{Vee(xt,{})},mi=xt=>{Jee(xt,{})},fi=xt=>{ate(xt,{})};H(Ye,xt=>{l(u)==="status"?xt(yt):l(u)==="users"?xt(ye,1):l(u)==="brokerconfig"?xt(Oe,2):l(u)==="advanced"?xt(ht,3):l(u)==="passwd"?xt(At,4):l(u)==="listeners"?xt(ft,5):l(u)==="certs"?xt(Lt,6):l(u)==="ssh"?xt(mi,7):l(u)==="logs"&&xt(fi,8)})}var Ei=v(R,2);hs(Qa(Ei,{}),xt=>i=xt,()=>i),z(()=>{$=Bt(V,1,"svelte-zuhcpo",null,$,{active:l(u)==="status"}),re=Bt(J,1,"svelte-zuhcpo",null,re,{active:l(u)==="users"}),Z=Bt(fe,1,"svelte-zuhcpo",null,Z,{active:l(u)==="brokerconfig"}),ve=Bt(de,1,"svelte-zuhcpo",null,ve,{active:l(u)==="advanced"}),ue=Bt(se,1,"svelte-zuhcpo",null,ue,{active:l(u)==="passwd"}),Ie=Bt(Se,1,"svelte-zuhcpo",null,Ie,{active:l(u)==="listeners"}),Ne=Bt(xe,1,"svelte-zuhcpo",null,Ne,{active:l(u)==="certs"}),me=Bt(ze,1,"svelte-zuhcpo",null,me,{active:l(u)==="ssh"}),Pt=Bt(dt,1,"svelte-zuhcpo",null,Pt,{active:l(u)==="logs"})}),j("click",V,()=>x(u,"status")),j("click",J,()=>x(u,"users")),j("click",fe,()=>x(u,"brokerconfig")),j("click",de,()=>x(u,"advanced")),j("click",se,()=>x(u,"passwd")),j("click",Se,()=>x(u,"listeners")),j("click",xe,()=>x(u,"certs")),j("click",ze,()=>x(u,"ssh")),j("click",dt,()=>x(u,"logs")),D(o,M),Ms()}qs(["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> <dt class="svelte-1n46o8q">EL util</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">EL lag mean</dt><dd class="svelte-1n46o8q"> </dd> <dt class="svelte-1n46o8q">EL lag max</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(Di(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(""),y=B(!1),w=B(!1);V$(()=>{x(p,!0)});async function A(){x(b,""),x(y,!0);try{await U$(l(C)),x(C,""),x(p,!1)}catch(At){x(b,At.message??"Login failed",!0)}finally{x(y,!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),J=B(Di([])),re=B(0),fe=B(!1),Z=B(Di([]));const de=Ot(()=>l(Z).filter(At=>At.online).length),ve=Ot(()=>l(Z).length===0?"none":l(de)===l(Z).length?"all":l(de)>0?"some":"offline");let se=B(!1),ue=B(!1);async function Se(){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 ef()).startedAt}catch{}try{await SF()}catch{}const ft=Date.now()+6e4;for(;Date.now()<ft;){await new Promise(Lt=>setTimeout(Lt,250));try{const Lt=await ef();if(At===void 0||Lt.startedAt!==At){location.reload();return}}catch{}}location.reload()}async function Ie(){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 xe(){var Lt,mi;if(!await l(M).show(`Update to v${(Lt=l(s))==null?void 0:Lt.latestVersion}? The daemon will restart after the update completes.`,{confirm:"Update"}))return;x(a,!1),x(u,!0);const At=(mi=l(s))==null?void 0:mi.startedAt;try{await Y$()}catch{}const ft=Date.now()+18e4;for(;Date.now()<ft;){await new Promise(fi=>setTimeout(fi,1e3));try{const fi=await ef();if(At===void 0||fi.startedAt!==At){location.reload();return}}catch{x(u,!1),x(R,!0)}}location.reload()}function Ne(At){x(n,At,!0),location.hash=At}js(async()=>{location.hash||(location.hash=l(n));const At=()=>{x(n,i(),!0)};window.addEventListener("hashchange",At);try{const Pe=await $$();x(f,Pe.mode,!0),x(g,Pe.proxyLogoutUrl??"",!0),l(f)==="password"&&(await fetch("/she/scripts")).status===401&&x(p,!0)}catch{}x(w,!0);async function ft(){var Pe,Ee,Gt;try{x(s,await ef(),!0)}catch{}try{const[gi,Qt]=await Promise.all([kF(),Ml()]);x(J,Array.isArray(Qt.pinnedPackages)?Qt.pinnedPackages:[],!0),x(re,Object.keys(gi).filter(Zi=>!l(J).includes(Zi)).length,!0);const Ni=l(fe);x(fe,((Pe=Qt.broker)==null?void 0:Pe.enabled)===!0),Ni&&!l(fe)&&l(n)==="security"&&Ne("scripts")}catch{}!((Ee=l(s))!=null&&Ee.matterEnabled)&&l(n)==="matter"&&Ne("scripts"),!((Gt=l(s))!=null&&Gt.dbEnabled)&&l(n)==="db"&&Ne("scripts")}ft();const Lt=setInterval(ft,5e3),mi=tr("mqtt:status",Pe=>{Pe.connected===!1?(x($,!0),x(P,!1),x(V,!1)):(x($,!1),x(P,Pe.ready===!1),x(V,Pe.ready===!0))}),fi=tr("matter:deviceList",Pe=>{Array.isArray(Pe.devices)&&x(Z,Pe.devices.map(Ee=>({nodeId:String(Ee.nodeId),online:!!Ee.online})),!0)}),Ei=tr("matter:deviceStatus",Pe=>{if(Pe.nodeId===void 0)return;const Ee=String(Pe.nodeId),Gt=!!Pe.online;x(Z,l(Z).map(gi=>gi.nodeId===Ee?{...gi,online:Gt}:gi),!0)}),xt=RF();x(se,xt.some(Pe=>Pe.level==="error"),!0),x(ue,!l(se)&&xt.some(Pe=>Pe.level==="warn"),!0);const ui=vS(Pe=>{Pe.level==="error"?(x(se,!0),x(ue,!1)):Pe.level==="warn"&&!l(se)&&x(ue,!0)});return()=>{window.removeEventListener("hashchange",At),clearInterval(Lt),mi(),fi(),Ei(),ui()}});var ze=Bie();_s("click",g6,()=>{l(r)&&x(r,!1),l(a)&&x(a,!1)});var me=bt(ze);{var dt=At=>{var ft=wie(),Lt=m(ft),mi=v(m(Lt),2);let fi;var Ei=v(mi,2);let xt;var ui=v(m(Ei),2);{var Pe=T=>{var W=Jte();z(()=>un(W,"title",`${l(re)??""} package update${l(re)===1?"":"s"} available`)),D(T,W)};H(ui,T=>{l(re)>0&&T(Pe)})}var Ee=v(Ei,2);let Gt;var gi=v(m(Ee),2);{var Qt=T=>{var W=eie();D(T,W)},Ni=T=>{var W=tie();D(T,W)},Zi=T=>{var W=iie();D(T,W)};H(gi,T=>{l($)?T(Qt):l(P)?T(Ni,1):l(V)&&T(Zi,2)})}var vi=v(Ee,2);{var gn=T=>{var W=nie();let Y;z(()=>Y=Bt(W,1,"svelte-1n46o8q",null,Y,{active:l(n)==="security"})),j("click",W,()=>Ne("security")),D(T,W)};H(vi,T=>{l(fe)&&T(gn)})}var cn=v(vi,2);{var rn=T=>{var W=aie();let Y;var ne=v(m(W),2);{var ae=je=>{var Ce=sie();D(je,Ce)},oe=je=>{var Ce=oie();D(je,Ce)},we=je=>{var Ce=rie();D(je,Ce)};H(ne,je=>{l(ve)==="all"?je(ae):l(ve)==="some"?je(oe,1):l(ve)==="offline"&&je(we,2)})}z(()=>Y=Bt(W,1,"svelte-1n46o8q",null,Y,{active:l(n)==="matter"})),j("click",W,()=>Ne("matter")),D(T,W)};H(cn,T=>{var W;(W=l(s))!=null&&W.matterEnabled&&T(rn)})}var mn=v(cn,2);{var Ct=T=>{var W=lie();let Y;z(()=>Y=Bt(W,1,"svelte-1n46o8q",null,Y,{active:l(n)==="db"})),j("click",W,()=>Ne("db")),D(T,W)};H(mn,T=>{var W;(W=l(s))!=null&&W.dbEnabled&&T(Ct)})}var Zt=v(mn,2);let Ii;var Wi=v(m(Zt),2);{var Pi=T=>{var W=cie();D(T,W)},pn=T=>{var W=die();D(T,W)};H(Wi,T=>{l(se)?T(Pi):l(ue)&&T(pn,1)})}var Dn=v(Zt,4),Ui=v(m(Dn),2),Xe=m(Ui),ci=m(Xe);ci.nodeValue="v1.19.1 ";var Oi=v(ci);{var ii=T=>{var W=uie();D(T,W)};H(Oi,T=>{var W,Y;(W=l(s))!=null&&W.latestVersion&&!((Y=l(s))!=null&&Y.docker)&&T(ii)})}var zi=v(Xe,2);{var Gi=T=>{var W=pie(),Y=m(W),ne=v(m(Y));ne.textContent="v1.19.1";var ae=v(ne,2);{var oe=ce=>{var Ge=hie(),Mt=v(bt(Ge)),Ue=m(Mt);z(()=>O(Ue,`v${l(s).latestVersion??""}`)),D(ce,Ge)},we=ce=>{var Ge=fie();D(ce,Ge)};H(ae,ce=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion?ce(oe):ce(we,-1)})}var je=v(Y,2),Ce=m(je);{var Le=ce=>{var Ge=gie(),Mt=v(m(Ge));z(()=>O(Mt,` Update to v${l(s).latestVersion??""}`)),j("click",Ge,xe),D(ce,Ge)};H(Ce,ce=>{var Ge;(Ge=l(s))!=null&&Ge.latestVersion&&ce(Le)})}var Me=v(Ce,2),ot=m(Me);let li;var Q=v(ot);z(()=>{Me.disabled=l(d),li=Bt(ot,0,"svelte-1n46o8q",null,li,{spinning:l(d)}),O(Q,` ${l(d)?"Checking…":"Check for updates"}`)}),j("click",W,ce=>ce.stopPropagation()),j("click",Me,Ie),D(T,W)};H(zi,T=>{var W;l(a)&&!((W=l(s))!=null&&W.docker)&&T(Gi)})}var qi=v(Ui,2),K=m(qi),ke=v(K,2);{var rt=T=>{var W=Eie(),Y=m(W);{var ne=Ce=>{var Le=_ie(),Me=m(Le);{var ot=nt=>{const kt=Ot(()=>Math.floor((Date.now()-l(s).startedAt)/1e3)),ti=Ot(()=>Math.floor(l(kt)/86400)),Yt=Ot(()=>Math.floor(l(kt)%86400/3600)),Ht=Ot(()=>Math.floor(l(kt)%3600/60));var Wt=xie(),Ft=v(bt(Wt)),jt=m(Ft);z(()=>O(jt,`${l(ti)>0?l(ti)+"d ":""}${l(Yt)>0||l(ti)>0?l(Yt)+"h ":""}${l(Ht)??""}m`)),D(nt,Wt)};H(Me,nt=>{l(s).startedAt&&nt(ot)})}var li=v(Me,3),Q=m(li),ce=v(li,3),Ge=m(ce),Mt=v(ce,3),Ue=m(Mt),$e=v(Mt,2);{var Tt=nt=>{var kt=vie(),ti=v(bt(kt)),Yt=m(ti),Ht=v(ti,3),Wt=m(Ht);z(()=>{O(Yt,l(s).matterNodes??0),O(Wt,l(s).matterEndpoints??0)}),D(nt,kt)};H($e,nt=>{l(s).matterEnabled&&nt(Tt)})}var pt=v($e,2);{var Qe=nt=>{var kt=mie(),ti=v(bt(kt)),Yt=m(ti),Ht=v(ti,3),Wt=m(Ht);z(()=>{O(Yt,l(s).dbDocs??"—"),O(Wt,l(s).dbViews??"—")}),D(nt,kt)};H(pt,nt=>{l(s).dbEnabled&&nt(Qe)})}var wt=v(pt,3),Dt=m(wt),st=v(wt,3),Rt=m(st),si=v(st,3),Ut=m(si),De=v(si,3),be=m(De),qe=v(De,3),at=m(qe),Xt=v(qe,3),it=m(Xt);z(()=>{O(Q,l(s).scripts),O(Ge,l(s).topics),O(Ue,l(s).mqttMsgPerSec??"—"),O(Dt,l(s).handlers??"—"),O(Rt,l(s).memMb!=null?l(s).memMb+" MB":"—"),O(Ut,l(s).cpuPercent!=null?l(s).cpuPercent+" %":"—"),O(be,l(s).eluPercent!=null?l(s).eluPercent+" %":"—"),O(at,l(s).elMeanMs!=null?l(s).elMeanMs+" ms":"—"),O(it,l(s).elMaxMs!=null?l(s).elMaxMs+" ms":"—")}),D(Ce,Le)},ae=Ce=>{var Le=bie();D(Ce,Le)};H(Y,Ce=>{l(s)?Ce(ne):Ce(ae,-1)})}var oe=v(Y,2),we=m(oe);{var je=Ce=>{var Le=Cie();j("click",Le,()=>{x(r,!1),Se()}),D(Ce,Le)};H(we,Ce=>{var Le;(Le=l(s))!=null&&Le.docker||Ce(je)})}j("click",W,Ce=>Ce.stopPropagation()),D(T,W)};H(ke,T=>{l(r)&&T(rt)})}var Ze=v(qi,2);let zt;var ni=v(Ze,2);{var mt=T=>{var W=yie();j("click",W,I),D(T,W)};H(ni,T=>{l(f)==="password"&&T(mt)})}var et=v(Lt,2),X=m(et);hs(Qa(X,{}),T=>x(M,T,!0),()=>l(M));var Te=v(X,2);let le;var ge=m(Te);{let T=Ot(()=>l(n)==="scripts");yZ(ge,{get active(){return l(T)}})}var Jt=v(Te,2);let ai;var bi=m(Jt);bJ(bi,{});var Ci=v(Jt,2);let Hi;var ie=m(Ci);tJ(ie,{});var tt=v(Ci,2);let _e;var Ve=m(tt);_Q(Ve,{});var _t=v(tt,2);let It;var Ai=m(_t);Qte(Ai,{});var ei=v(_t,2);let pe;var He=m(ei);EY(He,{});var Je=v(ei,2);let Fe;var Et=m(Je);uX(Et,{});var gt=v(Je,2);let Kt;var U=m(gt);xX(U,{}),z(()=>{fi=Bt(mi,1,"svelte-1n46o8q",null,fi,{active:l(n)==="scripts"}),xt=Bt(Ei,1,"svelte-1n46o8q",null,xt,{active:l(n)==="packages"}),Gt=Bt(Ee,1,"svelte-1n46o8q",null,Gt,{active:l(n)==="mqtt"}),Ii=Bt(Zt,1,"svelte-1n46o8q",null,Ii,{active:l(n)==="logs"}),zt=Bt(Ze,1,"nav-settings svelte-1n46o8q",null,zt,{active:l(n)==="config"}),le=Bt(Te,1,"page-wrap svelte-1n46o8q",null,le,{hidden:l(n)!=="scripts"}),ai=Bt(Jt,1,"page-wrap svelte-1n46o8q",null,ai,{hidden:l(n)!=="packages"}),Hi=Bt(Ci,1,"page-wrap svelte-1n46o8q",null,Hi,{hidden:l(n)!=="mqtt"}),_e=Bt(tt,1,"page-wrap svelte-1n46o8q",null,_e,{hidden:l(n)!=="matter"}),It=Bt(_t,1,"page-wrap svelte-1n46o8q",null,It,{hidden:l(n)!=="security"}),pe=Bt(ei,1,"page-wrap svelte-1n46o8q",null,pe,{hidden:l(n)!=="db"}),Fe=Bt(Je,1,"page-wrap svelte-1n46o8q",null,Fe,{hidden:l(n)!=="config"}),Kt=Bt(gt,1,"page-wrap svelte-1n46o8q",null,Kt,{hidden:l(n)!=="logs"})}),j("click",mi,()=>Ne("scripts")),j("click",Ei,()=>Ne("packages")),j("click",Ee,()=>Ne("mqtt")),j("click",Zt,()=>{Ne("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,()=>Ne("config")),D(At,ft)};H(me,At=>{l(w)&&!l(p)&&At(dt)})}var Pt=v(me,2);{var Ye=At=>{var ft=Die(),Lt=m(ft),mi=v(m(Lt),4),fi=v(m(mi),2),Ei=v(mi,2);{var xt=Ee=>{var Gt=Sie(),gi=m(Gt);z(()=>O(gi,l(b))),D(Ee,Gt)};H(Ei,Ee=>{l(b)&&Ee(xt)})}var ui=v(Ei,2),Pe=m(ui);z(()=>{fi.disabled=l(y),ui.disabled=l(y)||!l(C),O(Pe,l(y)?"Signing in…":"Sign in")}),_s("submit",Lt,Ee=>{Ee.preventDefault(),A()}),Nt(fi,()=>l(C),Ee=>x(C,Ee)),D(At,ft)};H(Pt,At=>{l(p)&&At(Ye)})}var yt=v(Pt,2);{var ye=At=>{var ft=Aie();D(At,ft)};H(yt,At=>{l(R)&&At(ye)})}var Oe=v(yt,2);{var ht=At=>{var ft=kie();D(At,ft)};H(Oe,At=>{l(u)&&At(ht)})}D(o,ze),Ms()}qs(["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-xdnNresq.js";/*!-----------------------------------------------------------------------------
1
+ import{m as O}from"./monaco-langs-Dt8a9eeo.js";import{t as I}from"./index-BAMNkTvJ.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-xdnNresq.js"></script>
175
+ <script type="module" crossorigin src="/assets/index-BAMNkTvJ.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-nf1nG74s.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-home-engine",
3
- "version": "1.19.0",
3
+ "version": "1.19.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
@@ -194,14 +194,15 @@ const _global = {};
194
194
 
195
195
  // ── Event-loop heartbeat ─────────────────────────────────────────────────────
196
196
  let _blockingScript = null;
197
+ let _blockingScriptTs = 0; // timestamp when the last _dispatch() call finished
197
198
 
198
199
  /** Wrap a user callback dispatch so the heartbeat can identify the active script. */
199
200
  function _dispatch(label, fn) {
200
201
  _blockingScript = label;
201
202
  fn();
202
- setImmediate(() => {
203
- _blockingScript = null;
204
- });
203
+ // Record end-time synchronously — no setImmediate, which would race with the
204
+ // heartbeat timer when blocking occurs inside a poll-phase (I/O) callback.
205
+ _blockingScriptTs = Date.now();
205
206
  }
206
207
 
207
208
  // Sun scheduling
@@ -361,7 +362,7 @@ require('./web/server').setStatsProvider(() => {
361
362
  const eluDelta = performance.eventLoopUtilization(_prevElu);
362
363
  _prevElu = performance.eventLoopUtilization();
363
364
  const elMeanMs = Math.round(_elHisto.mean / 1e6);
364
- const elP99Ms = Math.round(_elHisto.percentile(99) / 1e6);
365
+ const elMaxMs = Math.round(_elHisto.max / 1e6);
365
366
  _elHisto.reset();
366
367
  const mem = process.memoryUsage();
367
368
  const memMb = Math.round(mem.rss / 1048576);
@@ -402,7 +403,7 @@ require('./web/server').setStatsProvider(() => {
402
403
  cpuPercent,
403
404
  eluPercent: Math.round(eluDelta.utilization * 100),
404
405
  elMeanMs,
405
- elP99Ms,
406
+ elMaxMs,
406
407
  };
407
408
  });
408
409
 
@@ -1512,9 +1513,11 @@ function start() {
1512
1513
  const _hbTimer = setInterval(() => {
1513
1514
  const now = Date.now();
1514
1515
  const lag = now - _lastBeat - _hbInterval;
1516
+ const prevBeat = _lastBeat;
1515
1517
  _lastBeat = now;
1516
1518
  if (lag > _hbThreshold) {
1517
- const label = _blockingScript ?? 'unknown';
1519
+ // Attribute to a script only if it dispatched a callback since the previous beat.
1520
+ const label = _blockingScriptTs >= prevBeat ? (_blockingScript ?? 'unknown') : 'unknown';
1518
1521
  if (lag > 2000) {
1519
1522
  log.warn(`event loop blocked ${lag}ms — script: ${label}`);
1520
1523
  } else {