@devframes/hub-ui
Advanced tools
| import{At as e,Dt as t,Ot as n,P as r,St as i,Tt as a,a as o,at as s,ft as c,ht as l,i as u,it as d,jt as f,kt as ee,n as p,o as m,pt as h,r as g,t as _,u as v,ut as y,xt as b}from"./docks-DFXStXQt.js";import{D as x,F as S,H as C,I as te,L as ne,M as re,N as ie,R as w,U as T,W as E,d as ae,f as D,j as oe,k as se,l as ce,n as O,p as k,r as A,s as j,z as le}from"./keybindings-Ck-Pl3aa.js";var M=new WeakMap;async function ue(e,t,n,i){if(M.has(t))return M.get(t);let a=await t.sharedState.get(`devframe:commands`,{initialValue:[]}),o=u(a),s=c(new Map),l=u(n),d=r(()=>l.value.commandShortcuts??{}),f=h(!1),ee=k(),p=()=>i?i():{clientType:e,dockOpen:!1,paletteOpen:f.value,dockSelectedId:``,popupOpen:ee.value},m=r(()=>[...o.value,...Array.from(s.values())]),g=r(()=>{let e=p();return A(m.value,e).filter(e=>e.showInPalette!==!1)});function _(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function v(e){let t=m.value.find(t=>t.id===e);if(t)return t;for(let t of m.value)if(t.children){let n=t.children.find(t=>t.id===e);if(n)return n}}async function b(e,...n){let r=v(e);if(!r)throw Error(`Command "${e}" not found`);if(r.when){let t=p();if(!C(r.when,t))throw Error(`Command "${e}" is not available in the current context`)}if(r.source===`server`)return t.call(`hub:commands:execute`,e,...n);if(r.action)return r.action(...n);throw Error(`Command "${e}" has no action`)}function x(e){let t=d.value[e];return t===void 0?v(e)?.keybindings??[]:t}typeof window<`u`&&N(p,m,x,b);let S=c({commands:m,paletteCommands:g,register:_,execute:b,getKeybindings:x,settings:y(n),paletteOpen:f});return M.set(t,S),S}function N(e,t,n,r){let i=i=>{let a=j(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let o=e(),s=O(t,n);for(let{id:e,keybinding:n}of s){if(n.key!==a)continue;let s=t.value.find(t=>t.id===e)??t.value.flatMap(e=>e.children??[]).find(t=>t.id===e);if(!(s?.when&&!C(s.when,o))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),d(D(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function de(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function P(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function F(e,t){let n=P(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);let r=E(n.importFrom,{template:t.rpc.connectionMeta?.configs?.dock?.clientModuleResolution,metaBaseUrl:t.rpc.connection?.metaBaseUrl});try{let e=(await a(()=>import(r),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${r}" exports no callable "${n.importName??`default`}"`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script from ${r}${T(n.importFrom,r)}`,e),e}}var I=new Map;function fe(e,t){if(e.type!==`action`&&I.has(e.id))return I.get(e.id);let n=F(e,t);return e.type!==`action`&&I.set(e.id,n),n}var L=new WeakMap;async function R(a,C,T,E){if(L.has(C))return L.get(C);let{entries:D,initialSyncComplete:O}=await o(C),A={},j=await C.sharedState.get(e,{initialValue:A}),M=u(j),N=m(j,A),P=c(new Map),F=r(()=>{let e=D.value,t;if(P.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(P.get(t.id)??t);for(let[e,t]of P)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===w.id)?t:[...t,w]});E||=h(p());let I={...E.value},R=h(I.open&&I.selectedDockId!=null),z=r({get:()=>E.value.selectedDockId,set:e=>{E.value.selectedDockId=e}}),pe=r({get:()=>E.value.selectedDockRoute,set:e=>{E.value.selectedDockRoute=e}}),B=r(()=>R.value?null:F.value.find(e=>e.id===z.value)??ne.find(e=>e.id===z.value)??null),V=c(new Map);s(()=>{for(let e of F.value){if(V.has(e.id)){V.get(e.id).entryMeta=e;continue}V.set(e.id,g(e,B))}});let me=(e,t=!1)=>{if(P.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return P.set(e.id,e),V.has(e.id)||V.set(e.id,g(e,B)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=P.get(e.id);n&&P.set(e.id,{...n,...t})},dispose:()=>{P.delete(e.id)&&(V.delete(e.id),z.value===e.id&&(z.value=null))}}},he=e=>{if(!P.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);P.set(e.id,e)};T||=h(_());let H,ge,U=y(await(async()=>(ge||=C.sharedState.get(`devframe:user-settings`,{initialValue:ee()}),ge))()),W=u(U),G,_e=k(),K=()=>({clientType:a,dockOpen:E.value.open,paletteOpen:G?.paletteOpen??!1,dockSelectedId:z.value??``,popupOpen:_e.value}),q=new Map,J=async(e=null)=>{if(e==null)return R.value=!1,z.value=null,E.value.open=!1,E.value.selectedDockRoute=null,!0;if(e===`~client-auth-notice`)return R.value=!1,z.value=e,E.value.open=!0,!0;let t=F.value.find(t=>t.id===e);if(!t)return!1;if(t.type===`group`){let e=te(F.value,t.id,t.defaultChildId,K())?.id??oe(F.value,t.id)[0]?.id;return e?J(e):!1}if(t.type===`iframe`&&t.subTabs){let n=t.frameId??t.id,r=q.get(n);if(r&&r!==e&&F.value.some(e=>e.id===r))return J(r)}if(t.type===`action`&&await ae(a,t.id)!=null)return!1;if(t.type===`action`||t.type===`custom-render`||t.type===`iframe`&&t.clientScript){let n=V.get(e),r=de(C);await fe(t,c({...l(H),current:n,messages:r,logs:r}))}return t.type===`iframe`&&t.frameId&&!t.subTabs&&q.set(t.frameId,t.id),R.value=!1,z.value=t.id,E.value.open=!0,t.type!==`iframe`&&(E.value.selectedDockRoute=null),!0},Y=async e=>z.value===e?J(null):J(e),X=new Map,Z=new Map,ve=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=X.get(n);if(r){if(r.iframe===t)return;r.dispose(),X.delete(n)}let i=b({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:me,switchEntry:J,getStateById:e=>V.get(e)}});X.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};d(F,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),Z.has(n.id)))continue;let e=V.get(n.id);e&&(Z.set(n.id,n.frameId??n.id),ve(n,e))}for(let[e,n]of[...Z])t.has(e)||(Z.delete(e),X.get(n)?.dispose(),X.delete(n))},{immediate:!0}),C.client.register({name:f.broadcast.docksActivate,type:`action`,handler:e=>{e?.dockId&&J(e.dockId)}});let Q=C.connectionMeta.configs?.ui?.dockPreferences?.categoryOrder,ye=r(()=>x(F.value,W.value,{whenContext:K(),collapseGroups:!0,categoryOrderOverride:Q}));G=await ue(a,C,U,K),G.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{G.paletteOpen=!G.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{E.value.open=!1,z.value=null}},{id:`devframes:open-settings`,source:`client`,title:`Open Settings`,icon:`ph:gear-duotone`,action:()=>{J(`~settings`)}},{id:`devframes:hide`,source:`client`,title:`Hide ${v().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(le))}},{id:`devframes:dock-mode`,source:`client`,title:`Dock Mode`,icon:`ph:layout-duotone`,when:a===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:`Float Mode`,icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`edge`}}]}]);let be;s(()=>{be?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:S(e.icon),action:()=>{Y(e.id)}}),t=ie(F.value),n=F.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&t.has(e.groupId))).map(t=>{if(t.type!==`group`)return e(t);let n=re(F.value,t.id,W.value,{whenContext:K()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:se(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&(be=G.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))});let $=I.selectedDockId==null?null:I.selectedDockRoute;H=c({panel:{store:T,session:E,isDragging:!1,isResizing:!1,isVertical:r(()=>T.value.position===`left`||T.value.position===`right`),consumeBootRoute:e=>{if($!=null&&e===I.selectedDockId){let e=$;return $=null,e}return null}},docks:{selectedId:z,selectedRoute:pe,selected:B,entries:F,entryToStateMap:y(V),groupedEntries:ye,categoryOrder:Q?{...n,...Q}:n,settings:U,getStateById:e=>V.get(e),switchEntry:J,toggleEntry:Y,register:me,update:he},commands:G,when:{get context(){return K()}},connection:{get status(){return C.status},get error(){return C.connectionError},events:C.events},renderers:y(i({context:()=>H,manifest:()=>M.value})),rpc:y(C),clientType:a}),ce(a,async e=>{let t=F.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:J(t.id)});let xe=async()=>{C.isTrusted||await new Promise(e=>{let n=C.events.on(t.client.isTrustedUpdated,t=>{t&&(n(),e())})})};return(async()=>{let e=I.selectedDockId;if(!(!I.open||e==null)&&(await Promise.all([xe(),O,N]),R.value)){if(z.value!==e){R.value=!1;return}R.value=!1,await J(e)}})(),L.set(C,H),H}export{R as createDocksContext}; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./context-B4i6GqYV.js","./docks-DFXStXQt.js","./keybindings-Ck-Pl3aa.js","./DockStandalone-BVr1VMtK.js"])))=>i.map(i=>d[i]); | ||
| import{Ct as e,Dt as t,Et as n,Tt as r,at as i,c as a,l as o,n as s,p as c,s as l,y as u}from"./docks-DFXStXQt.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),String.fromCharCode;var d=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,f=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,p=/^([/\\]\s*){2,}[^/\\]/,m=/\/$|\/\?|\/#/,h=/^\.?\//;function g(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?d.test(e):f.test(e)||(t.acceptRelative?p.test(e):!1)}function _(e=``,t){return t?m.test(e):e.endsWith(`/`)}function v(e=``,t){if(!t)return(_(e)?e.slice(0,-1):e)||`/`;if(!_(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function y(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(_(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function b(e,t){if(x(t)||g(e))return e;let n=v(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return ee(n,e)}function x(e){return!e||e===`/`}function S(e){return e&&e!==`/`}function ee(e,...t){let n=e||``;for(let e of t.filter(e=>S(e)))if(n){let t=e.replace(h,``);n=y(n)+t}else n=e;return n}function C(e,t){let n=e.match(f);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function te(e){return typeof e==`string`?`'${e}'`:new ie().serialize(e)}var ne=` _-,;:!?.'"()[]{}@*/\\&#%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,w=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[ne.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function re(e,t){if(e===t)return 0;let n=Math.min(e.length,t.length),r=0;for(let i=0;i<n;i++){let n=e.charCodeAt(i),a=t.charCodeAt(i);if(n===a)continue;let o=n<128&&w[n]?w[n]:n+128,s=a<128&&w[a]?w[a]:a+128;if(o!==s)return o<s?-1:1;r===0&&(r=n>a?-1:1)}return e.length===t.length?r:e.length<t.length?-1:1}var ie=(function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?re(e,t):n===`number`&&r===`number`?e-t:re(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}let i=Object.keys(e).sort(re),a=`${r}{`;for(let t=0;t<i.length;t++){let n=i[t];a+=`${n}:${this.serialize(e[n])}`,t<i.length-1&&(a+=`,`)}return a+`}`}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e})(),ae=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],oe=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],se=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,T=[],ce=class{_data=new le;_hash=new le([...ae]);_nDataBytes=0;_minBufferSize=0;finalize(e){e&&this._append(e);let t=this._nDataBytes*8,n=this._data.sigBytes*8;return this._data.words[n>>>5]|=128<<24-n%32,this._data.words[(n+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(n+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(e,t){let n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7];for(let n=0;n<64;n++){if(n<16)T[n]=e[t+n]|0;else{let e=T[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=T[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;T[n]=t+T[n-7]+i+T[n-16]}let d=s&c^~s&l,f=r&i^r&a^i&a,p=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),m=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),h=u+m+d+oe[n]+T[n],g=p+f;u=l,l=c,c=s,s=o+h|0,o=a,a=i,i=r,r=h+g|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+u|0}_append(e){typeof e==`string`&&(e=le.fromUtf8(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(e){let t,n=this._data.sigBytes/64;n=e?Math.ceil(n):Math.max((n|0)-this._minBufferSize,0);let r=n*16,i=Math.min(r*4,this._data.sigBytes);if(r){for(let e=0;e<r;e+=16)this._doProcessBlock(this._data.words,e);t=this._data.words.splice(0,r),this._data.sigBytes-=i}return new le(t,i)}},le=class e{words;sigBytes;constructor(e,t){e=this.words=e||[],this.sigBytes=t===void 0?e.length*4:t}static fromUtf8(t){let n=unescape(encodeURIComponent(t)),r=n.length,i=[];for(let e=0;e<r;e++)i[e>>>2]|=(n.charCodeAt(e)&255)<<24-e%4*8;return new e(i,r)}toBase64(){let e=[];for(let t=0;t<this.sigBytes;t+=3){let n=this.words[t>>>2]>>>24-t%4*8&255,r=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,i=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,a=n<<16|r<<8|i;for(let n=0;n<4&&t*8+n*6<this.sigBytes*8;n++)e.push(se.charAt(a>>>6*(3-n)&63))}return e.join(``)}concat(e){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t<e.sigBytes;t++){let n=e.words[t>>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=n<<24-(this.sigBytes+t)%4*8}else for(let t=0;t<e.sigBytes;t+=4)this.words[this.sigBytes+t>>>2]=e.words[t>>>2];this.sigBytes+=e.sigBytes}};function ue(e){return new ce().finalize(e).toBase64()}function de(e){return ue(te(e))}function fe(e){return de(e)}function E(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e<i.length;e++)a+=i[e],e<t.length&&(a+=String(t[e]));return`${n}${a}${r}`}return`${n}${String(e)}${r}`})}var pe={blue:E(34,39),cyan:E(36,39),gray:E(90,39),green:E(32,39),red:E(31,39),yellow:E(33,39),bold:E(1,22),dim:E(2,22),reset:E(0,0),underline:E(4,24)},me=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function he(e=21){let t=``,n=e;for(;n--;)t+=me[Math.random()*64|0];return t}var ge=Symbol.for(`immer-nothing`),D=Symbol.for(`immer-draftable`),O=Symbol.for(`immer-state`),_e=[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},`This object has been frozen and should not be mutated`,function(e){return`Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? `+e},`An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.`,`Immer forbids circular references`,"The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},`Object.defineProperty() cannot be used on an Immer draft`,`Object.setPrototypeOf() cannot be used on an Immer draft`,`Immer only supports deleting array indices`,`Immer only supports setting array indices and the 'length' property`,function(e){return`'original' expects a draft, got: ${e}`}];function k(e,...t){{let n=_e[e],r=H(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var A=Object,j=A.getPrototypeOf,ve=`constructor`,ye=`prototype`,be=`configurable`,xe=`enumerable`,Se=`writable`,Ce=`value`,M=e=>!!e&&!!e[O];function N(e){return e?Ee(e)||R(e)||!!e[D]||!!e[ve]?.[D]||z(e)||B(e):!1}var we=A[ye][ve].toString(),Te=new WeakMap;function Ee(e){if(!e||!V(e))return!1;let t=j(e);if(t===null||t===A[ye])return!0;let n=A.hasOwnProperty.call(t,ve)&&t[ve];if(n===Object)return!0;if(!H(n))return!1;let r=Te.get(n);return r===void 0&&(r=Function.toString.call(n),Te.set(n,r)),r===we}function P(e,t,n=!0){F(e)===0?(n?Reflect.ownKeys(e):A.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function F(e){let t=e[O];return t?t.type_:R(e)?1:z(e)?2:B(e)?3:0}var I=(e,t,n=F(e))=>n===2?e.has(t):A[ye].hasOwnProperty.call(e,t),L=(e,t,n=F(e))=>n===2?e.get(t):e[t],De=(e,t,n,r=F(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Oe(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var R=Array.isArray,z=e=>e instanceof Map,B=e=>e instanceof Set,V=e=>typeof e==`object`,H=e=>typeof e==`function`,ke=e=>typeof e==`boolean`;function Ae(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var je=e=>V(e)?e?.[O]:null,U=e=>e.copy_||e.base_,Me=e=>e.modified_?e.copy_:e.base_;function Ne(e,t){if(z(e))return new Map(e);if(B(e))return new Set(e);if(R(e))return Array[ye].slice.call(e);let n=Ee(e);if(t===!0||t===`class_only`&&!n){let t=A.getOwnPropertyDescriptors(e);delete t[O];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[Se]===!1&&(a[Se]=!0,a[be]=!0),(a.get||a.set)&&(t[i]={[be]:!0,[Se]:!0,[xe]:a[xe],[Ce]:e[i]})}return A.create(j(e),t)}{let t=j(e);if(t!==null&&n)return{...e};let r=A.create(t);return A.assign(r,e)}}function Pe(e,t=!1){return Le(e)||M(e)||!N(e)?e:(F(e)>1&&A.defineProperties(e,{set:Ie,add:Ie,clear:Ie,delete:Ie}),A.freeze(e),t&&P(e,(e,t)=>{Pe(t,!0)},!1),e)}function Fe(){k(2)}var Ie={[Ce]:Fe};function Le(e){return e===null||!V(e)||A.isFrozen(e)}var Re=`MapSet`,ze=`Patches`,Be=`ArrayMethods`,Ve={};function W(e){let t=Ve[e];return t||k(0,e),t}var He=e=>!!Ve[e];function Ue(e,t){Ve[e]||(Ve[e]=t)}var G,We=()=>G,Ge=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:He(Re)?W(Re):void 0,arrayMethodsPlugin_:He(Be)?W(Be):void 0});function Ke(e,t){t&&(e.patchPlugin_=W(ze),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function qe(e){Je(e),e.drafts_.forEach(Xe),e.drafts_=null}function Je(e){e===G&&(G=e.parent_)}var Ye=e=>G=Ge(G,e);function Xe(e){let t=e[O];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ze(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[O].modified_&&(qe(t),k(4)),N(e)&&(e=Qe(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[O].base_,e,t)}else e=Qe(t,n);return $e(t,e,!0),qe(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===ge?void 0:e}function Qe(e,t){if(Le(t))return t;let n=t[O];if(!n)return st(t,e.handledSet_,e);if(!tt(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);at(n,e)}return n.copy_}function $e(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Pe(t,n)}function et(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var tt=(e,t)=>e.scope_===t,nt=[];function rt(e,t,n,r){let i=U(e),a=e.type_;if(r!==void 0&&L(i,r,a)===t){De(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;P(i,(e,n)=>{if(M(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??nt;for(let e of o)De(i,e,n,a)}function it(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!tt(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Me(i);rt(e,i.draft_??i,a,n),at(i,r)})}function at(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}et(e)}}function ot(e,t,n){let{scope_:r}=e;if(M(n)){let i=n[O];tt(i,r)&&i.callbacks_.push(function(){ht(e),rt(e,n,Me(i),t)})}else N(n)&&e.callbacks_.push(function(){let i=U(e);e.type_===3?i.has(n)&&st(n,r.handledSet_,r):L(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&st(L(e.copy_,t,e.type_),r.handledSet_,r)})}function st(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||M(e)||t.has(e)||!N(e)||Le(e)?e:(t.add(e),P(e,(r,i)=>{if(M(i)){let t=i[O];tt(t,n)&&(De(e,r,Me(t),e.type_),et(t))}else N(i)&&st(i,t,n)}),e)}function ct(e,t){let n=R(e),r={type_:+!!n,scope_:t?t.scope_:We(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=lt;n&&(i=[r],a=K);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var lt={get(e,t){if(t===O)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=U(e);if(!I(i,t,e.type_))return ft(e,i,t);let a=i[t];if(e.finalized_||!N(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Ae(t))return a;if(a===ut(e.base_,t)||dt(e,t,a)){ht(e);let n=e.type_===1?+t:t,r=_t(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in U(e)},ownKeys(e){return Reflect.ownKeys(U(e))},set(e,t,n){let r=pt(U(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=ut(U(e),t),i=r?.[O];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Oe(n,r)&&(n!==void 0||I(e.base_,t,e.type_)))return!0;ht(e),mt(e)}return e.copy_[t]===n&&(n!==void 0||I(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),ot(e,t,n),!0)},deleteProperty(e,t){return ht(e),ut(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),mt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=U(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[Se]:!0,[be]:e.type_!==1||t!==`length`,[xe]:r[xe],[Ce]:n[t]}},defineProperty(){k(11)},getPrototypeOf(e){return j(e.base_)},setPrototypeOf(){k(12)}},K={};for(let e in lt){let t=lt[e];K[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}K.deleteProperty=function(e,t){return isNaN(parseInt(t))&&k(13),K.set.call(this,e,t,void 0)},K.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&k(14),lt.set.call(this,e[0],t,n,e[0])};function ut(e,t){let n=e[O];return(n?U(n):e)[t]}function dt(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!N(n)||n[O]?!1:e.baseRefs_.has(n)}function ft(e,t,n){let r=pt(t,n);return r?Ce in r?r[Ce]:r.get?.call(e.draft_):void 0}function pt(e,t){if(!(t in e))return;let n=j(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=j(n)}}function mt(e){e.modified_||(e.modified_=!0,e.parent_&&mt(e.parent_))}function ht(e){e.copy_||=(e.assigned_=new Map,Ne(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var gt=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(H(e)&&!H(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}H(t)||k(6),n!==void 0&&!H(n)&&k(7);let r;if(N(e)){let i=Ye(this),a=_t(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?qe(i):Je(i)}return Ke(i,n),Ze(r,i)}if(!e||!V(e)){if(r=t(e),r===void 0&&(r=e),r===ge&&(r=void 0),this.autoFreeze_&&Pe(r,!0),n){let t=[],i=[];W(ze).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}k(1,e)},this.produceWithPatches=(e,t)=>{if(H(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},ke(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),ke(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),ke(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){N(e)||k(8),M(e)&&(e=vt(e));let t=Ye(this),n=_t(t,e,void 0);return n[O].isManual_=!0,Je(t),n}finishDraft(e,t){let n=e&&e[O];(!n||!n.isManual_)&&k(9);let{scope_:r}=n;return Ke(r,t),Ze(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=W(ze).applyPatches_;return M(e)?r(e,t):this.produce(e,e=>r(e,t))}};function _t(e,t,n,r){let[i,a]=z(t)?W(Re).proxyMap_(t,n):B(t)?W(Re).proxySet_(t,n):ct(t,n);return(n?.scope_??We()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?it(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function vt(e){return M(e)||k(10,e),yt(e)}function yt(e){if(!N(e)||Le(e))return e;let t=e[O],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Ne(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Ne(e,!0);return P(n,(e,t)=>{De(n,e,yt(t))},r),t&&(t.finalized_=!1),n}function bt(){_e.push(`Sets cannot have "replace" patches.`,function(e){return`Unsupported patch operation: `+e},function(e){return`Cannot apply patch, path doesn't resolve: `+e},`Patching reserved attributes like __proto__, prototype and constructor is not allowed`);function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=je(L(e,n.key_)),i=L(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||I(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=L(n,r),!V(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[O];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;P(e.assigned_,(e,l)=>{let u=L(o,e,c),f=L(s,e,c),p=l?I(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===ge?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=F(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===ve)&&k(19),H(o)&&n===ye&&k(19),o=L(o,n),(o===null||!V(o))&&k(18,i.join(`/`))}let s=F(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:k(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:k(17,a)}}),e}function u(e){if(!N(e))return e;if(R(e))return e.map(u);if(z(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(B(e))return new Set(Array.from(e).map(u));let t=Object.create(j(e));for(let n in e)t[n]=u(e[n]);return I(e,D)&&(t[D]=e[D]),t}function d(e){return M(e)?u(e):e}Ue(ze,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var xt=new gt,St=xt.produce,Ct=xt.produceWithPatches.bind(xt),wt=xt.applyPatches.bind(xt),Tt=1e3;function Et(e,t){if(e.add(t),e.size>Tt){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Dt(e){let{enablePatches:t=!1}=e;t&&bt();let r=n(),i=e.initialValue,a=new Set;return{on:r.on,value:()=>i,patch:(e,t=he())=>{a.has(t)||(bt(),i=wt(i,e),Et(a,t),r.emit(`updated`,i,void 0,t))},mutate:(e,n=he())=>{if(!a.has(n)){if(Et(a,n),t){let[t,a]=Ct(i,e);i=t,r.emit(`updated`,i,a,n)}else i=St(i,e),r.emit(`updated`,i,void 0,n)}},syncIds:a}}var Ot=typeof self==`object`?self:globalThis,kt=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),At=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function jt(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=kt.has(e)?Ot[e]:void 0;return n(new(r??Ot.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&At.has(a))return n(new Ot[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function Mt(e){return jt(new Map,e)(0)}var q=``,{toString:Nt}={},{keys:Pt}=Object;function Ft(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Nt.call(e).slice(8,-1);switch(n){case`Array`:return[1,q];case`Object`:return[2,q];case`Date`:return[3,q];case`RegExp`:return[4,q];case`Map`:return[5,q];case`Set`:return[6,q];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function It([e,t]){return e===0&&(t===`function`||t===`symbol`)}function Lt(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Ft(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of Pt(r))(e||!It(Ft(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(It(Ft(n))||It(Ft(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!It(Ft(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Rt(e,t={}){let n=[];return Lt(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:zt,stringify:Bt}=JSON,Vt={json:!0,lossy:!0};function Ht(e){return Mt(zt(e))}function Ut(e){return Bt(Rt(e,Vt))}function Wt(e){return Mt(e)}function Gt(e){return Ut(e)}function Kt(e){return Ht(e)}var qt=256,Jt=class extends Error{name=`StreamClosedError`};function Yt(e={}){let t=e.id??he(),r=Math.max(0,e.replayWindow??0),i=n(),a=new AbortController,o=[],s=!1,c=0;function l(e){if(s)throw new Jt(`Cannot write to a closed stream "${t}"`);c+=1,r>0&&(o.push({seq:c,chunk:e}),o.length>r&&o.splice(0,o.length-r)),i.emit(`chunk`,c,e)}function u(e){if(s)return;s=!0;let t=Zt(e);a.abort(e),i.emit(`end`,t)}function d(){s||(s=!0,a.signal.aborted||a.abort(`stream closed`),i.emit(`end`,void 0))}function f(e){s||a.signal.aborted||a.abort(e??`aborted`)}let p=new WritableStream({write(e){l(e)},close(){d()},abort(e){u(e)}});return{id:t,signal:a.signal,get closed(){return s},get lastSeq(){return c},write:l,error:u,close:d,abort:f,writable:p,events:i,buffer:o}}function Xt(e={}){let t=e.id??he(),n=Math.max(1,e.highWaterMark??qt),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function Zt(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}function Qt(e,...t){return typeof e==`function`?e(...t):e}var $t=Error.captureStackTrace,en=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,$t?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function tn(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function nn(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||tn(r,i),s=(e={},n={})=>{let r=new en({code:i,why:Qt(a.why,e),fix:Qt(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function rn(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n<r.length-1?`├▶`:`╰▶`)} ${t}`)].join(` | ||
| `)}}function an(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var on=Math.random.bind(Math),sn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function cn(e=21){let t=``,n=e;for(;n--;)t+=sn[on()*64|0];return t}var ln=6e4,un=e=>e,dn=un,{clearTimeout:fn,setTimeout:pn}=globalThis;function mn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=un,deserialize:s=dn,resolver:c,bind:l=`rpc`,timeout:u=ln,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=an(),_=cn();s.i=_;let v;async function y(n=s){return u>=0&&(v=pn(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{fn(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&(fn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}var hn=`__connection.json`,gn=`__DEVFRAME_CONNECTION__`,_n=`x-birpc-session`,vn=`__rpc-dump/index.json`,yn=`devframe:services`,bn=`devframe_otp`,xn=`devframe_auth_token`;t.postMessage.remoteAssetsError;var Sn=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>fe(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}},Cn=rn(pe);function wn(e,{method:t=`warn`}={}){console[t](Cn(e))}function Tn(e){return nn({...e,reporters:[wn,...e.reporters??[]]})}var J=Tn({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is not \`true\` — MCP requires JSON-serializable data.`,fix:"Set `jsonSerializable: true` if the payload is JSON-safe, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});async function En(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function Dn(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function On(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r<t.length;r++){let i=t[r];if(!i)continue;let a=await En(i,n[r]);if(a.issues)throw J.DF0043({name:e,index:r,issues:Dn(a.issues)})}return r}async function kn(e,t,n){if(!t)return n;let r=await En(t,n);if(r.issues)throw J.DF0044({name:e,issues:Dn(r.issues)});return n}async function An(e,t){if(!e.setup)return{};if(typeof t==`object`&&t){e.__cache??=new WeakMap;let n=e.__cache,r=n.get(t);return r||(r=Promise.resolve(e.setup(t)),r.catch(()=>{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function jn(e,t){let n=e.handler;if(!n){let r=await An(e,t);if(!r.handler)throw J.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await On(e.name,r,t),o=await a(...n);return await kn(e.name,i,o)}}var Mn=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return jn(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw J.DF0021({name:e.name});Nn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw J.DF0022({name:e.name});Nn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await jn(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw J.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function Nn(e){if(e.agent&&e.jsonSerializable!==!0)throw J.DF0019({name:e.name})}function Pn(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw Y(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw Y(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw Y(t,`Map`,r,e);if(i instanceof Set)throw Y(t,`Set`,r,e);if(i instanceof Date)throw Y(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw Y(t,i.constructor?.name??`class instance`,r,e)}return n})}function Y(e,t,n,r){let i=Fn(n,r);return J.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Fn(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}var In=`__DEVFRAME_CONNECTION_META__`,Ln=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Rn(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function zn(){return Rn(gn)}function Bn(){return Rn(In)}function X(e){if(e)return e;try{let e=localStorage.getItem(Ln);if(e)return e}catch{}return Rn(Ln)}function Vn(e){globalThis[gn]=e,globalThis[In]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Hn(e.authToken)}function Hn(e){try{localStorage.setItem(Ln,e)}catch{}globalThis[Ln]=e;let t=zn();t&&(globalThis[gn]={...t,authToken:e})}function Un(e){let t=b(hn,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Wn(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Gn(){let e=zn();if(e)return Wn(e,X()??e.authToken??e.connectionMeta.authToken);let t=Bn();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Un(`./`),authToken:X(t.authToken)}}async function Kn(e={}){if(e.connection){let t=Wn(e.connection,X(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return Vn(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Un(t[0]??`./`),authToken:X(e.authToken??e.connectionMeta.authToken)};return Vn(n),n}let n=Gn();if(n){let t=Wn(n,X(e.authToken??n.authToken??n.connectionMeta.authToken));return Vn(t),t}let r=[];for(let n of t){let t=b(hn,n),i=Un(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a={connectionMeta:r,metaBaseUrl:n.url||i,authToken:X(e.authToken??r.authToken)};return Vn(a),a}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var Z=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function qn(e=bn){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function Jn(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function Yn(e=bn){let t=qn(e);return t&&Jn(e),t}async function Xn(e,t={}){let n=Yn(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Zn(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(yn,{initialValue:{}}).then(e=>(t=e.value(),e.on(`updated`,e=>{t=e}),e)),r);return i(),{state:i,has:e=>e in t,keys:()=>Object.keys(t),get:r=>{let i=t[r];if(!i)return;let a=n.get(i);return a||(a={...i,rpc:e.scope(i.scope).rpc},n.set(i,a)),a}}}function Qn(e){let n=new Map,r=new Map,i=new Map,a=new Set,o=e.connectionMeta.backend===`static`;function s(e,t){let n=i.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:t.broadcast.clientStateUpdated,type:`event`,handler:(e,t,r)=>{let i=n.get(e);!i||i.syncIds.has(r)||i.mutate(()=>s(e,t),r)}}),e.client.register({name:t.broadcast.clientStatePatch,type:`event`,handler:(e,t,r)=>{let i=n.get(e);!i||i.syncIds.has(r)||i.patch(t,r)}});function c(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{o||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(n.keys()),onKeyAdded(e){return a.add(e),()=>{a.delete(e)}},delete(e){let t=r.get(e);r.delete(e);let a=n.delete(e);return i.delete(e),t?.(),a},get:async(l,u)=>{if(u?.initialValue!==void 0&&i.set(l,u.initialValue),n.has(l))return n.get(l);let d=Dt({initialValue:u?.initialValue,enablePatches:!1});async function f(){if(o||e.callEvent(`devframe:rpc:server-state:subscribe`,l),u?.initialValue!==void 0){n.set(l,d);for(let e of a)e(l);return e.call(`devframe:rpc:server-state:get`,l).then(e=>{e!==void 0&&d.mutate(()=>s(l,e))}).catch(e=>{console.error(`Error getting server state`,e)}),r.set(l,c(l,d)),d}{let t=await e.call(`devframe:rpc:server-state:get`,l);d.mutate(()=>s(l,t)),n.set(l,d);for(let e of a)e(l);return r.set(l,c(l,d)),d}}return new Promise(n=>{if(e.isTrusted)f().then(n);else{n(d);let r=!1;e.events.on(t.client.isTrustedUpdated,e=>{e&&!r&&(r=!0,f())})}})}}}var $n=new Map;function er(e=$n){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?Pn(n,r??``):`s:${Gt(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Kt(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function tr(){}function nr(e){let{onConnected:t=tr,onError:n=tr,onDisconnected:r=tr,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${xn}=${encodeURIComponent(e.authToken)}`);let s=er(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function h(e){l||(l=!0,p(e),n(e),r())}function g(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function _(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function v(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=r.search(/\n\n|\r\n\r\n/);if(e<0)break;let t=r.slice(0,e);r=r.slice(e+(r[e]===`\r`?4:2));let n=`message`,i=[];for(let e of t.split(/\r?\n/))e.startsWith(`:`)||(e.startsWith(`event:`)?n=e.slice(6).trimStart():e.startsWith(`data:`)&&i.push(e.slice(5).replace(/^ /,``)));i.length>0&&_(n,i.join(` | ||
| `))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[_n]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function rr(e,t){let{channel:n,rpcOptions:r={}}=t;return mn(e,{...n,timeout:-1,...r,proxify:!1})}function ir(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function ar(e){let{transport:n,authToken:r,connectionMeta:i,events:a,clientRpc:o,rpcOptions:s={},callTimeout:c=0}=e,l=!1,u=`connecting`,d=null,f=ir();function p(e,n=null){if(n?d=n:e===`connected`&&(d=null),e===u)return;let r=u;u=e,a.emit(t.client.connectionStatus,e,r)}let m=new Set;function h(e){for(let t of[...m])t.reject(e)}function g(){return u===`disconnected`||u===`error`?new Z(`connection`,`[devframe] Not connected to the devframe server`,{cause:d??void 0}):u===`unauthorized`?new Z(`auth`,`[devframe] Not authorized by the devframe server`,{cause:d??void 0}):null}function _(e,n){return new Promise((r,i)=>{let o=!1,s,l={reject(e){o||(u(),a.emit(t.client.error,e,n),i(e))}};function u(){o=!0,m.delete(l),s&&clearTimeout(s)}m.add(l),c>0&&(s=setTimeout(()=>{l.reject(new Z(`timeout`,`[devframe] RPC call "${n}" timed out after ${c}ms`))},c)),e.then(e=>{o||(u(),r(e))},e=>{if(o)return;u();let r=e instanceof Error?e:Error(String(e));a.emit(t.client.error,r,n),i(r)})})}let v=new Map;for(let e of i.jsonSerializableMethods??[])v.set(e,{jsonSerializable:!0});let y=e.createChannel({definitions:v,onError(e){p(`error`,e),a.emit(t.client.connectionError,e),h(new Z(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){u!==`error`&&p(`disconnected`),h(new Z(`connection`,`[devframe] Disconnected from the devframe server`,{cause:d??void 0}))}}),b=rr(o.functions,{channel:y,rpcOptions:s});o.register({name:t.broadcast.authRevoked,type:`event`,handler:()=>{l=!1;let e=new Z(`auth`,`[devframe] The devframe server revoked this client's trust`);p(`unauthorized`,e),a.emit(t.client.connectionError,e),h(e),a.emit(t.client.isTrustedUpdated,!1)}});let x=r;async function S(e){x=e;let n=await b.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(l=n.isTrusted,l)f.resolve(!0),p(`connected`);else{let e=new Z(`auth`,`[devframe] The devframe server refused this client's credentials`);p(`unauthorized`,e),a.emit(t.client.connectionError,e)}return a.emit(t.client.isTrustedUpdated,l),n.isTrusted}async function ee(e){let n=(await b.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return n&&(x=n,l=!0,f.resolve(!0),p(`connected`),a.emit(t.client.isTrustedUpdated,!0)),n}async function C(){return l?!0:S(x??``)}async function te(e=6e4){if(l&&f.resolve(!0),e<=0)return f.promise;let t=()=>{};return await Promise.race([f.promise.then(t),new Promise((n,r)=>{let i=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e);t=()=>clearTimeout(i)})]),l}return{transport:n,get isTrusted(){return l},get status(){return u},get connectionError(){return d},requestTrust:C,requestTrustWithToken:S,requestTrustWithCode:ee,ensureTrusted:te,call:(...e)=>{let n=String(e[0]),r=g();return r?(a.emit(t.client.error,r,n),Promise.reject(r)):_(b.$call(...e),n)},callEvent:(...e)=>{let n=g();if(n){a.emit(t.client.error,n,String(e[0]));return}return b.$callEvent(...e)},callOptional:(...e)=>{let n=String(e[0]),r=g();return r?(a.emit(t.client.error,r,n),Promise.reject(r)):_(b.$callOptional(...e),n)},close:()=>{y.close()}}}function or(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function sr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=or(n.sse,r??`./`,location);return ar({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>nr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function cr(e){let t=e.cause instanceof Error?e.cause:lr(e.cause)?cr(e.cause):e.cause,n=t===void 0?Error(e.message):Error(e.message,{cause:t});n.name=e.name;for(let t of Object.keys(e))t!==`name`&&t!==`message`&&t!==`cause`&&(n[t]=e[t]);return n}function lr(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function ur(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function dr(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function fr(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function pr(e){if(e.error)throw cr(e.error);return e.output}function mr(e){return e.some(e=>e!=null)}function hr(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function gr(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?Wt(e):e}function a(e,t){return i(hr(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return fr(r)?pr(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(ur(r)){if(mr(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(dr(r)){let e=fe(n),i=r.records[e];if(i)return pr(await s(i,r.serialization));if(r.fallback)return pr(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!mr(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function _r(e){let t=gr(await e.fetchJsonFromBases(vn),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var vr=``;function Q(e,t){return`${e}${vr}${t}`}function yr(e){let n=new Map,r=new Map;e.client.register({name:t.broadcast.streamingChunk,type:`event`,handler(e,t,r,i){n.get(Q(e,t))?._push(r,i)}}),e.client.register({name:t.broadcast.streamingEnd,type:`event`,handler(e,t,r){let i=Q(e,t),a=n.get(i);a&&(a._end(r),n.delete(i))}}),e.client.register({name:t.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let n=Q(e,t),i=r.get(n);i&&(i.abort(`server cancelled upload`),r.delete(n))}}),e.events.on(t.client.isTrustedUpdated,t=>{if(t)for(let[t,r]of n){if(r.cancelled||r.done)continue;let n=t.indexOf(vr);if(n<0)continue;let i=t.slice(0,n),a=t.slice(n+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function i(r,i,a={}){let o=Q(r,i),s=n.get(o);if(s)return s;let c=Xt({id:i,highWaterMark:a.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${r}#${i}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,r,i),n.delete(o)}});if(n.set(o,c),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,r,i,{afterSeq:0});else{let a=e.events.on(t.client.isTrustedUpdated,t=>{t&&(a(),n.has(o)&&!c.cancelled&&!c.done&&e.callEvent(`devframe:streaming:subscribe`,r,i,{afterSeq:c.lastSeenSeq}))})}return c}function a(t,n){let i=Q(t,n),a=r.get(i);if(a)return a;let o=Yt({id:n});return o.events.on(`chunk`,(r,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,n,r,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,n,a),r.delete(i)}),r.set(i,o),o}return{subscribe:i,upload:a}}function br(){}var xr=new Map;function Sr(e){let t=e.url;e.authToken&&(t=`${t}?${xn}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=br,onError:i=br,onDisconnected:a=br,definitions:o=xr}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=er(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function Cr(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return C(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function wr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Cr(n.websocket,r??`./`,location);return ar({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Sr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function Tr(e){return e.includes(`:`)}function $(e,t){return Tr(t)?t:`${e}:${t}`}function Er(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return{async get(e){return(await a()).value()[e]},async set(e,t){(await a()).mutate(n=>{n[e]=t})},async delete(e){(await a()).mutate(t=>{delete t[e]})},async all(){return(await a()).value()},async onChange(e){return(await a()).on(`updated`,t=>e(t))}}}function Dr(e,t){return{global:Er(e,t,`global`),project:Er(e,t,`project`)}}function Or(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(Tr(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call($(t,n),...r)),callEvent:((n,...r)=>e.callEvent($(t,n),...r)),callOptional:((n,...r)=>e.callOptional($(t,n),...r)),sharedState:((n,r)=>e.sharedState.get($(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe($(t,n),r,i),upload:(n,r)=>e.streaming.upload($(t,n),r)}},settings:Dr(e,t),scope:e.scope}}function kr(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none") — nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function Ar(e={}){let{baseURL:t=`./`,rpcOptions:r={},cacheOptions:i=!1}=e,a=n(),o=Array.isArray(t)?t:[t],s=await Kn(e),{connectionMeta:c,metaBaseUrl:l,authToken:u}=s,d=o[0]??`./`;try{d=new URL(`.`,l).href}catch{}let f=new Sn({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),p={rpc:void 0},m=new Mn(p);async function h(e){let t=[d,...o.filter(e=>e!==d)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(b(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let g={authToken:u,connectionMeta:c,metaBaseUrl:l,events:a,clientRpc:m,callTimeout:e.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&f?.validate(e.m)){if(f.has(e.m,e.a))return n(f.cached(e.m,e.a));let r=await t(e);f.apply(e,r)}else await t(e)}}},_=kr(e.transport??`auto`,c),v=_===`static`?await _r({fetchJsonFromBases:h}):_===`sse`?sr({...g,sseOptions:e.sseOptions}):wr({...g,wsOptions:e.wsOptions}),y;try{y=new BroadcastChannel(`devframe-auth`)}catch{}let x,S=!1;function ee(e){return((...t)=>S||!x?e(...t):x.then(()=>e(...t)))}let C={events:a,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return s},connectionMeta:c,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Hn(e),s={...s,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Hn(t),s={...s,authToken:t};try{y?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:ee(v.call),callEvent:ee(v.callEvent),callOptional:ee(v.callOptional),client:m,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:f,scope:void 0,close:()=>v.close?.()};C.sharedState=Qn(C),C.streaming=yr(C),C.services=Zn(C);let te=new Map;C.scope=(e=>{if(!e)return C;let t=te.get(e);return t||(t=Or(C,e),te.set(e,t)),t}),p.rpc=C;function ne(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function w(){if(!(e.simpleAuth===!1||!ne())&&typeof globalThis.prompt==`function`)for(;!C.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await C.requestTrustWithCode(t))return}}async function re(){let t=await v.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Xn(C,{param:n}):!1;t||r||C.isTrusted||await w()}return x=re().then(()=>{S=!0},()=>{S=!0}),y&&(y.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&C.requestTrustWithToken(e.data.authToken)}),C}i(()=>{let e=document.documentElement;e.classList.toggle(`dark`,c.value),e.classList.toggle(`light`,!c.value),e.style.colorScheme=c.value?`dark`:`light`});async function jr(){let t=import.meta.url,n=await Ar({baseURL:[`./`,new URL(`./`,t).href],simpleAuth:!1}),i=o(n.connectionMeta.configs?.ui?.branding||{});l(document,i);let c=u(`devframes-dock-session`,s(),{mergeDefaults:!0}),{createDocksContext:d}=await r(async()=>{let{createDocksContext:e}=await import(`./context-B4i6GqYV.js`);return{createDocksContext:e}},__vite__mapDeps([0,1,2]),import.meta.url),f=await d(`standalone`,n,void 0,c);e(f);let{DockStandalone:p}=await r(async()=>{let{DockStandalone:e}=await import(`./DockStandalone-BVr1VMtK.js`);return{DockStandalone:e}},__vite__mapDeps([3,1,2]),import.meta.url),m=new p({context:f});a(m,i.primaryColor),document.getElementById(`app`).appendChild(m)}jr(); |
| const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-BVr1VMtK.js","./docks-DFXStXQt.js"])))=>i.map(i=>d[i]); | ||
| import{Dt as e,Et as t,Ot as n,Tt as r,c as i,it as a,mt as o,p as s,s as c,u as l}from"./docks-DFXStXQt.js";var u=`devframe-remote-connection`,d=e.postMessage.remoteAssetsError,f=/^[a-z][a-z\d+.-]*:/i;function p(e){let t=e.trim();return!!t&&!t.startsWith(`/`)&&!t.startsWith(`./`)&&!t.startsWith(`../`)&&!f.test(t)}function m(e,t={}){if(!p(e))return e;let n=t.resolveClientModule?.(e);if(n)return n;if(!t.template)return e;let r=t.template.includes(`{specifier}`)?t.template.replaceAll(`{specifier}`,e):t.template+e;try{return new URL(r,t.metaBaseUrl).href}catch{return r}}function h(e,t){return p(e)?t===e?" — the specifier is a bare npm specifier and this host advertises no client-module resolution (`ConnectionMeta.configs.dock.clientModuleResolution`). Serve the script as a self-contained bundle by URL, pass `resolveClientModule` to this client host, or run under a host that resolves bare specifiers (e.g. Vite: `/@id/{specifier}`).":` — the host resolved the bare specifier "${e}" to this URL but could not serve the module. Check the package is installed and resolvable from the host project's root (and built, if its exports point at build output).`:``}function g(e){function t(e){let t=e.split(`&`),n=t.filter(e=>e.split(`=`)[0]!==u);return[n.join(`&`),n.length!==t.length]}let n=e.indexOf(`#`),r=n===-1?e:e.slice(0,n),i=n===-1?void 0:e.slice(n+1),a=!1;if(i!==void 0){let e=i.indexOf(`?`);if(e===-1){let[e,n]=t(i);i=e,a||=n}else{let n=i.slice(0,e),[r,o]=t(i.slice(e+1));o&&(i=r?`${n}?${r}`:n,a=!0)}}let o=r.indexOf(`?`);if(o!==-1){let e=r.slice(0,o),[n,i]=t(r.slice(o+1));i&&(r=n?`${e}?${n}`:e,a=!0)}return a?i?`${r}#${i}`:r:e}var _=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],v=/[a-z_$]/i,ee=/[\w$.:]/,y=/\d/,te=/\s/;function ne(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(te.test(r)){n++;continue}if(r===`(`){t.push({type:`lparen`}),n++;continue}if(r===`)`){t.push({type:`rparen`}),n++;continue}let i=!1;for(let r of _)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(y.test(r)){let r=n;for(;r<e.length&&y.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&y.test(e[r+1]))for(r++;r<e.length&&y.test(e[r]);)r++;t.push({type:`number`,value:Number(e.slice(n,r))}),n=r;continue}if(r===`"`||r===`'`){let i=r,a=n+1,o=``;for(;a<e.length&&e[a]!==i;)if(e[a]===`\\`&&a+1<e.length){let t=e[a+1];o+=t===`n`?` | ||
| `:t===`t`?` `:t,a+=2}else o+=e[a],a++;if(a>=e.length)throw Error(`Unterminated string literal at position ${n}`);a++,t.push({type:`string`,value:o}),n=a;continue}if(v.test(r)){let r=n;for(;r<e.length&&ee.test(e[r]);)r++;let i=e.slice(n,r);i===`true`?t.push({type:`bool`,value:!0}):i===`false`?t.push({type:`bool`,value:!1}):t.push({type:`ident`,value:i}),n=r;continue}throw Error(`Unexpected character "${r}" at position ${n}`)}}return t.push({type:`eof`}),t}function re(e){let t=ne(e),n=0,r=()=>t[n],i=()=>t[n++],a=e=>{let t=r();return t.type===`op`&&t.value===e},o=()=>{let e=i();if(e.type!==`op`)throw Error(`internal: expected operator token, got ${b(e)}`);return e.value};function s(){let e=c();for(;a(`||`);)i(),e={type:`binary`,op:`||`,left:e,right:c()};return e}function c(){let e=l();for(;a(`&&`);)i(),e={type:`binary`,op:`&&`,left:e,right:l()};return e}function l(){let e=u();for(;a(`===`)||a(`!==`)||a(`==`)||a(`!=`);){let t=o(),n=t===`==`||t===`!=`?h():u();e={type:`binary`,op:t,left:e,right:n}}return e}function u(){let e=d();for(;a(`<=`)||a(`>=`)||a(`<`)||a(`>`);)e={type:`binary`,op:o(),left:e,right:d()};return e}function d(){let e=f();for(;a(`+`)||a(`-`);)e={type:`binary`,op:o(),left:e,right:f()};return e}function f(){let e=p();for(;a(`*`)||a(`/`)||a(`%`);)e={type:`binary`,op:o(),left:e,right:p()};return e}function p(){return a(`!`)||a(`-`)||a(`+`)?{type:`unary`,op:o(),operand:p()}:m()}function m(){let e=r();if(e.type===`number`||e.type===`string`||e.type===`bool`)return i(),{type:`literal`,value:e.value};if(e.type===`ident`)return i(),{type:`key`,key:e.value};if(e.type===`lparen`){i();let e=s(),t=r();if(t.type!==`rparen`)throw Error(`Expected ")" but got ${b(t)}`);return i(),e}throw Error(`Unexpected token: ${b(e)}`)}function h(){let e=r();if(e.type===`string`)return i(),{type:`literal`,value:e.value};if(e.type===`number`||e.type===`bool`)return i(),{type:`literal`,value:String(e.value)};if(e.type===`ident`)return i(),{type:`literal`,value:e.value};throw Error(`Expected value literal or identifier on right side of equality, got ${b(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${b(_)}`);return g}function b(e){switch(e.type){case`eof`:return`end of expression`;case`lparen`:return`"("`;case`rparen`:return`")"`;case`op`:case`ident`:case`string`:return`"${e.value}"`;case`number`:case`bool`:return`"${String(e.value)}"`}}function ie(e,t,n={}){let{strict:r=!1}=n;return!!x(e,t,r)}function x(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return se(e.key,t,n);case`unary`:return S(e.op,x(e.operand,t,n));case`binary`:return ae(e,t,n)}}function S(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function ae(e,t,n){let{op:r}=e;if(r===`&&`)return x(e.left,t,n)&&x(e.right,t,n);if(r===`||`)return x(e.left,t,n)||x(e.right,t,n);let i=x(e.left,t,n),a=x(e.right,t,n);switch(r){case`==`:return String(i)===String(a);case`!=`:return String(i)!==String(a);case`===`:return i===a;case`!==`:return i!==a;case`<`:return i<a;case`>`:return i>a;case`<=`:return i<=a;case`>=`:return i>=a;case`+`:return i+a;case`-`:return i-a;case`*`:return i*a;case`/`:return i/a;case`%`:return i%a}}function oe(e,t,n){return ie(re(e),t,n)}function se(e,t,n){let{found:r,value:i}=ce(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function ce(e,t){if(e in t)return{found:!0,value:t[e]};let n=e.includes(`.`)?`.`:e.includes(`:`)?`:`:null;if(n){let r=e.split(n),i=t;for(let e of r){if(typeof i!=`object`||!i)return{found:!1,value:void 0};let t=i;if(!(e in t))return{found:!1,value:void 0};i=t[e]}return{found:!0,value:i}}return{found:!1,value:void 0}}function C(e,t,n){return oe(e,t,n)}var le=`devframes:hub-ui:hide`,ue=`devframes_plugin_terminals`,de=`devframes_plugin_messages`,fe=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),w=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),pe=Object.freeze([fe,w]),T=`~pinned`,me=-1e5;function E(e,t){return e===T?me:t?.[e]??n[e]??0}function he(e){return typeof e==`string`?e:e?.light??e?.dark}var ge={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[T]:`Pinned`};function _e(e){return e!==`~builtin`&&e!==T}function ve(e){return ge[e]??e}function ye(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function be(e,t){if(!t||t.type===`group`||!t.groupId)return;let n=e.find(e=>e.id===t.groupId);return n?.type===`group`?n:void 0}function D(e,t,n,r){let i=e.filter(e=>e.type!==`group`&&e.groupId===t);if(!n)return i.length?[[`default`,i]]:[];let a=e.find(e=>e.type===`group`&&e.id===t);return O(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function xe(e,t,n,r){return D(e,t,n,r).flatMap(([,e])=>e)}function Se(e,t,n,r){if(!n)return;let i=e.find(e=>e.type!==`group`&&e.groupId===t&&e.id===n);if(i){if(i.when){if(r){if(!C(i.when,r))return}else if(i.when===`false`)return}return i}}function O(e,t,n){let{docksHidden:r,docksCategoriesHidden:i,docksCustomOrder:a,docksPinned:o}=t,{includeHidden:s=!1,whenContext:c,collapseGroups:l=!1,ignoreCategoryHidden:u=!1,categoryOrderOverride:d}=n??{},f=new Map;for(let t of e)t.type===`group`&&f.set(t.id,t.category??`default`);let p=new Map;for(let n of e){let e=n.type!==`group`&&n.groupId?f.get(n.groupId):void 0;if(l&&e!==void 0||n.when&&c&&!C(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!C(n.visibility,c)&&!s||n.visibility&&!c&&n.visibility===`false`&&!s||!s&&n.id===`devframes_plugin_inspect`&&!t.showDevframeInspector||!s&&r.includes(n.id))continue;let a=e??n.category??`default`,d=o.includes(n.id)&&e===void 0?T:a;!s&&!u&&i.includes(d)||(p.has(d)||p.set(d,[]),p.get(d).push(n))}let m=Array.from(p.entries()).sort(([e],[t])=>{let n=E(e,d),r=E(t,d);return r===n?t.localeCompare(e):n-r});return m.forEach(([e,t])=>{t.sort((e,t)=>{let n=a[e.id]??0,r=a[t.id]??0;if(n!==r)return n-r;let i=e.defaultOrder??0,o=t.defaultOrder??0;return o===i?t.title.localeCompare(e.title):i-o})}),m}function k(e){let{availableHeight:t,reservedHeight:n,itemHeight:r,dividerHeight:i,moreButtonHeight:a,dividerCount:o,totalItems:s}=e;if(s<=0||r<=0)return 0;let c=t-n-Math.max(0,o)*i;if(Math.floor(c/r)>=s)return s;let l=Math.floor((c-a)/r);return Math.max(0,l)}function A(e,t){let n=[],r=[],i=t;for(let[t,a]of e)i<=0?r.push([t,a]):a.length>i?(n.push([t,a.slice(0,i)]),r.push([t,a.slice(i)]),i=0):(i-=a.length,n.push([t,a]));return r.reduce((e,[,t])=>e+t.length,0)===1?{visible:[...n,...r],overflow:[]}:{visible:n,overflow:r}}var j=o(null),M=o(null),N=o(null),P=o(null);function Ce(e){j.value=e}function we(){return j}function F(e){M.value=e}function Te(){return M}function Ee(e){N.value=e}function De(){return N}var I=o(null);function Oe(e){I.value=e}function ke(){return I}function Ae(e){P.value=e}function je(){return P}var L=o(null);function Me(e){L.value=e}function Ne(){return L}var R=20,z=100,Pe=320,Fe=240,B=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,V=`__DEVFRAME_CONNECTION_META__`,H=o(null),U=o(!1),W=t(),G,K,q,J,Ie=async()=>await r(()=>import(`./DockStandalone-BVr1VMtK.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1]),import.meta.url);W.on(`popup:open-requested`,e=>{qe(e)});function Y(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Le(){G?.(),G=void 0,K?.(),K=void 0}function Re(e){return a(s,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function ze(){q?.remove(),q=void 0}function X(){Le(),ze(),H.value=null,U.value=!1;let e=J;J=void 0,e?.docks.switchEntry(null)}function Z(e,t,n){return Math.min(Math.max(e,t),n)}function Be(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Z(Math.round(t.innerWidth/window.innerWidth*100),R,z),e.panel.store.height=Z(Math.round(t.innerHeight/window.innerHeight*100),R,z))}async function Ve(e,t){let n=await Ie(),r=t.document.createElement(`style`);r.textContent=[`html, body {`,` margin: 0;`,` padding: 0;`,` width: 100%;`,` height: 100%;`,` overflow: hidden;`,` background: transparent;`,`}`,`#devframes-popup-root {`,` width: 100vw;`,` height: 100vh;`,`}`,`#devframes-popup-root > devframes-dock-standalone {`,` display: block;`,` width: 100%;`,` height: 100%;`,`}`].join(` | ||
| `),c(t.document,l().value),t.document.head?.appendChild(r),t.document.body.textContent=``,t[V]=globalThis[V]??e.rpc.connectionMeta;let a=t.document.createElement(`div`);a.id=`devframes-popup-root`,t.document.body.appendChild(a);let o=new n({context:e});i(o,l().value.primaryColor),q=o,a.appendChild(o)}function He(){return!!Y()?.requestWindow}function Ue(e,t){typeof window>`u`||e!==`standalone`&&(window[B]=t)}async function We(e,t){if(!(typeof window>`u`)&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[B];return typeof n==`function`?await n(t):void 0}catch{return}}function Ge(){return H}function Q(){return U}function Ke(e){W.emit(`popup:open-requested`,e)}async function qe(e){F(null);let t=H.value;if(t?.closed)X();else if(t)return t.focus(),t;let n=Y();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(Pe,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(Fe,Math.round(window.innerHeight*e.panel.store.height/100))});await Ve(e,t),K=Re(t);let i=()=>Be(e,t),a=()=>{H.value===t&&X()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),G=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},J=e,H.value=t,U.value=!0,t}catch{return r&&!r.closed&&r.close(),X(),null}}var $=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform??``);function Je(e){return e.split(`+`).map(e=>e===`Mod`?$?`⌘`:`Ctrl`:e===`Shift`?$?`⇧`:`Shift`:e===`Alt`?$?`⌥`:`Alt`:e)}function Ye(e){let t=[];($?e.metaKey:e.ctrlKey)&&t.push(`Mod`),($?e.ctrlKey:e.metaKey)&&t.push($?`Ctrl`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n.length===1&&(n=n.toUpperCase()),[`Control`,`Meta`,`Alt`,`Shift`].includes(n)||t.push(n),t.join(`+`)}function Xe(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>e.key===r[t]?.key)}function Ze(e,t){return e!==void 0&&!Xe(e,t)}function Qe(e,t){let n=e=>!e.when||C(e.when,t),r=[];for(let t of e){if(!n(t))continue;if(!t.children){r.push(t);continue}let e=t.children.filter(n);r.push({...t,children:e})}return r}function $e(e,t){let n=[];for(let r of e.value){for(let e of t(r.id))n.push({id:r.id,keybinding:e});if(r.children)for(let e of r.children)for(let r of t(e.id))n.push({id:e.id,keybinding:r})}return n}var et={"Mod+T":`Open new tab`,"Mod+W":`Close tab`,"Mod+N":`Open new window`,"Mod+L":`Focus address bar`,"Mod+D":`Bookmark page`,"Mod+Q":`Quit browser`,"Mod+Shift+T":`Reopen closed tab`,"Mod+Shift+N":`Open incognito window`,"Mod+Shift+W":`Close window`,"Mod+Shift+Q":`Quit browser (Chrome)`,"Alt+F4":`Close window (Windows)`,"Mod+R":`Reload page`,"Mod+Shift+R":`Hard reload page`,"Mod+F":`Find in page`};export{be as A,de as B,De as C,O as D,k as E,he as F,g as G,C as H,Se as I,d as K,pe as L,D as M,ye as N,A as O,_e as P,w as R,Te as S,we as T,h as U,ue as V,m as W,Ee as _,Ze as a,je as b,He as c,We as d,Ge as f,F as g,Oe as h,Je as i,xe as j,ve as k,Ue as l,Ae as m,$e as n,$ as o,Q as p,Qe as r,Ye as s,et as t,Ke as u,Me as v,Ne as w,ke as x,Ce as y,le as z}; |
@@ -23,4 +23,4 @@ <!doctype html> | ||
| </style> | ||
| <script type="module" crossorigin src="./assets/index-C3xPut_V.js"></script> | ||
| <link rel="modulepreload" crossorigin href="./assets/docks-N5v0F-cv.js"> | ||
| <script type="module" crossorigin src="./assets/index-Bj2-UvZ0.js"></script> | ||
| <link rel="modulepreload" crossorigin href="./assets/docks-DFXStXQt.js"> | ||
| </head> | ||
@@ -27,0 +27,0 @@ <body> |
+2
-2
@@ -137,3 +137,3 @@ import { DevframeHubUi } from "@devframes/hub/initiate"; | ||
| * prebuilt from this package's web components (the floating `DockEmbedded` | ||
| * bootstrap and the standalone `DockStandalone` viewer), styled with the | ||
| * bootstrap and the standalone `DockStandalone` SPA), styled with the | ||
| * shared devframe design system. | ||
@@ -149,3 +149,3 @@ * | ||
| * The hub stays headless either way — this object is one implementation of | ||
| * the slot; a viewer product (or your own) supplies a different one to the | ||
| * the slot; a hub UI provider (a product's or your own) supplies a different one to the | ||
| * same option and reuses all the infrastructure. | ||
@@ -152,0 +152,0 @@ */ |
+2
-2
@@ -20,3 +20,3 @@ import { existsSync } from "node:fs"; | ||
| * prebuilt from this package's web components (the floating `DockEmbedded` | ||
| * bootstrap and the standalone `DockStandalone` viewer), styled with the | ||
| * bootstrap and the standalone `DockStandalone` SPA), styled with the | ||
| * shared devframe design system. | ||
@@ -32,3 +32,3 @@ * | ||
| * The hub stays headless either way — this object is one implementation of | ||
| * the slot; a viewer product (or your own) supplies a different one to the | ||
| * the slot; a hub UI provider (a product's or your own) supplies a different one to the | ||
| * same option and reuses all the infrastructure. | ||
@@ -35,0 +35,0 @@ */ |
+8
-8
| { | ||
| "name": "@devframes/hub-ui", | ||
| "type": "module", | ||
| "version": "0.9.5", | ||
| "version": "0.9.6", | ||
| "description": "Reference UI for the devframe hub, providing the floating dock and standalone viewer.", | ||
@@ -32,5 +32,5 @@ "author": "Anthony Fu <anthonyfu117@hotmail.com>", | ||
| "peerDependencies": { | ||
| "@devframes/hub": "0.9.5", | ||
| "@devframes/json-render": "0.9.5", | ||
| "devframe": "0.9.5" | ||
| "@devframes/json-render": "0.9.6", | ||
| "@devframes/hub": "0.9.6", | ||
| "devframe": "0.9.6" | ||
| }, | ||
@@ -60,6 +60,6 @@ "peerDependenciesMeta": { | ||
| "vue": "^3.5.41", | ||
| "@devframes/hub": "0.9.5", | ||
| "@devframes/plugin-git": "0.9.5", | ||
| "@devframes/json-render": "0.9.5", | ||
| "devframe": "0.9.5" | ||
| "@devframes/hub": "0.9.6", | ||
| "@devframes/json-render": "0.9.6", | ||
| "@devframes/plugin-git": "0.9.6", | ||
| "devframe": "0.9.6" | ||
| }, | ||
@@ -66,0 +66,0 @@ "scripts": { |
| import{At as e,Dt as t,Ot as n,P as r,St as i,Tt as a,a as o,at as s,ft as c,ht as ee,i as l,it as u,kt as d,n as f,o as p,pt as m,r as h,t as g,u as _,ut as v,xt as y}from"./docks-N5v0F-cv.js";import{D as b,F as x,H as S,I as C,L as te,M as ne,N as re,R as w,U as T,W as E,d as ie,f as D,j as ae,k as oe,l as se,n as O,p as k,q as ce,r as A,s as j,z as le}from"./keybindings-BCnz_dMa.js";var M=new WeakMap;async function ue(e,t,n,i){if(M.has(t))return M.get(t);let a=await t.sharedState.get(`devframe:commands`,{initialValue:[]}),o=l(a),s=c(new Map),ee=l(n),u=r(()=>ee.value.commandShortcuts??{}),d=m(!1),f=k(),p=()=>i?i():{clientType:e,dockOpen:!1,paletteOpen:d.value,dockSelectedId:``,popupOpen:f.value},h=r(()=>[...o.value,...Array.from(s.values())]),g=r(()=>{let e=p();return A(h.value,e).filter(e=>e.showInPalette!==!1)});function _(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function y(e){let t=h.value.find(t=>t.id===e);if(t)return t;for(let t of h.value)if(t.children){let n=t.children.find(t=>t.id===e);if(n)return n}}async function b(e,...n){let r=y(e);if(!r)throw Error(`Command "${e}" not found`);if(r.when){let t=p();if(!S(r.when,t))throw Error(`Command "${e}" is not available in the current context`)}if(r.source===`server`)return t.call(`hub:commands:execute`,e,...n);if(r.action)return r.action(...n);throw Error(`Command "${e}" has no action`)}function x(e){let t=u.value[e];return t===void 0?y(e)?.keybindings??[]:t}typeof window<`u`&&N(p,h,x,b);let C=c({commands:h,paletteCommands:g,register:_,execute:b,getKeybindings:x,settings:v(n),paletteOpen:d});return M.set(t,C),C}function N(e,t,n,r){let i=i=>{let a=j(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let o=e(),s=O(t,n);for(let{id:e,keybinding:n}of s){if(n.key!==a)continue;let s=t.value.find(t=>t.id===e)??t.value.flatMap(e=>e.children??[]).find(t=>t.id===e);if(!(s?.when&&!S(s.when,o))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),u(D(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function de(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function P(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function F(e,t){let n=P(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);let r=E(n.importFrom,{template:t.rpc.connectionMeta?.configs?.dock?.clientModuleResolution,metaBaseUrl:t.rpc.connection?.metaBaseUrl});try{let e=(await a(()=>import(r),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${r}" exports no callable "${n.importName??`default`}"`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script from ${r}${T(n.importFrom,r)}`,e),e}}var I=new Map;function fe(e,t){if(e.type!==`action`&&I.has(e.id))return I.get(e.id);let n=F(e,t);return e.type!==`action`&&I.set(e.id,n),n}var L=new WeakMap;async function R(a,S,T,E){if(L.has(S))return L.get(S);let{entries:D,initialSyncComplete:O}=await o(S),A={},j=await S.sharedState.get(d,{initialValue:A}),M=l(j),N=p(j,A),P=c(new Map),F=r(()=>{let e=D.value,t;if(P.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(P.get(t.id)??t);for(let[e,t]of P)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===w.id)?t:[...t,w]});E||=m(f());let I={...E.value},R=m(I.open&&I.selectedDockId!=null),z=r({get:()=>E.value.selectedDockId,set:e=>{E.value.selectedDockId=e}}),pe=r({get:()=>E.value.selectedDockRoute,set:e=>{E.value.selectedDockRoute=e}}),B=r(()=>R.value?null:F.value.find(e=>e.id===z.value)??te.find(e=>e.id===z.value)??null),V=c(new Map);s(()=>{for(let e of F.value){if(V.has(e.id)){V.get(e.id).entryMeta=e;continue}V.set(e.id,h(e,B))}});let H=(e,t=!1)=>{if(P.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return P.set(e.id,e),V.has(e.id)||V.set(e.id,h(e,B)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=P.get(e.id);n&&P.set(e.id,{...n,...t})},dispose:()=>{P.delete(e.id)&&(V.delete(e.id),z.value===e.id&&(z.value=null))}}},me=e=>{if(!P.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);P.set(e.id,e)};T||=m(g());let U,W,G=v(await(async()=>(W||=S.sharedState.get(`devframe:user-settings`,{initialValue:n()}),W))()),K=l(G),q,he=k(),J=()=>({clientType:a,dockOpen:E.value.open,paletteOpen:q?.paletteOpen??!1,dockSelectedId:z.value??``,popupOpen:he.value}),ge=new Map,Y=async(e=null)=>{if(e==null)return R.value=!1,z.value=null,E.value.open=!1,E.value.selectedDockRoute=null,!0;if(e===`~client-auth-notice`)return R.value=!1,z.value=e,E.value.open=!0,!0;let t=F.value.find(t=>t.id===e);if(!t)return!1;if(t.type===`group`){let e=C(F.value,t.id,t.defaultChildId,J())?.id??ae(F.value,t.id)[0]?.id;return e?Y(e):!1}if(t.type===`iframe`&&t.subTabs){let n=t.frameId??t.id,r=ge.get(n);if(r&&r!==e&&F.value.some(e=>e.id===r))return Y(r)}if(t.type===`action`&&await ie(a,t.id)!=null)return!1;if(t.type===`action`||t.type===`custom-render`||t.type===`iframe`&&t.clientScript){let n=V.get(e),r=de(S);await fe(t,c({...ee(U),current:n,messages:r,logs:r}))}return t.type===`iframe`&&t.frameId&&!t.subTabs&&ge.set(t.frameId,t.id),R.value=!1,z.value=t.id,E.value.open=!0,t.type!==`iframe`&&(E.value.selectedDockRoute=null),!0},_e=async e=>z.value===e?Y(null):Y(e),X=new Map,Z=new Map,ve=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=X.get(n);if(r){if(r.iframe===t)return;r.dispose(),X.delete(n)}let i=y({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:H,switchEntry:Y,getStateById:e=>V.get(e)}});X.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};u(F,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),Z.has(n.id)))continue;let e=V.get(n.id);e&&(Z.set(n.id,n.frameId??n.id),ve(n,e))}for(let[e,n]of[...Z])t.has(e)||(Z.delete(e),X.get(n)?.dispose(),X.delete(n))},{immediate:!0}),S.client.register({name:e.broadcast.docksActivate,type:`action`,handler:e=>{e?.dockId&&Y(e.dockId)}});let Q=S.connectionMeta.configs?.ui?.dockPreferences?.categoryOrder,ye=r(()=>b(F.value,K.value,{whenContext:J(),collapseGroups:!0,categoryOrderOverride:Q}));q=await ue(a,S,G,J),q.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{q.paletteOpen=!q.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{E.value.open=!1,z.value=null}},{id:`devframes:open-settings`,source:`client`,title:`Open Settings`,icon:`ph:gear-duotone`,action:()=>{Y(`~settings`)}},{id:`devframes:hide`,source:`client`,title:`Hide ${_().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(le))}},{id:`devframes:dock-mode`,source:`client`,title:`Dock Mode`,icon:`ph:layout-duotone`,when:a===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:`Float Mode`,icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`edge`}}]}]);let be;s(()=>{be?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:x(e.icon),action:()=>{_e(e.id)}}),t=re(F.value),n=F.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&t.has(e.groupId))).map(t=>{if(t.type!==`group`)return e(t);let n=ne(F.value,t.id,K.value,{whenContext:J()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:oe(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&(be=q.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))});let $=I.selectedDockId==null?null:I.selectedDockRoute;U=c({panel:{store:T,session:E,isDragging:!1,isResizing:!1,isVertical:r(()=>T.value.position===`left`||T.value.position===`right`),consumeBootRoute:e=>{if($!=null&&e===I.selectedDockId){let e=$;return $=null,e}return null}},docks:{selectedId:z,selectedRoute:pe,selected:B,entries:F,entryToStateMap:v(V),groupedEntries:ye,categoryOrder:Q?{...t,...Q}:t,settings:G,getStateById:e=>V.get(e),switchEntry:Y,toggleEntry:_e,register:H,update:me},commands:q,when:{get context(){return J()}},connection:{get status(){return S.status},get error(){return S.connectionError},events:S.events},renderers:v(i({context:()=>U,manifest:()=>M.value})),rpc:v(S),clientType:a}),se(a,async e=>{let t=F.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:Y(t.id)});let xe=async()=>{S.isTrusted||await new Promise(e=>{let t=S.events.on(ce.client.isTrustedUpdated,n=>{n&&(t(),e())})})};return(async()=>{let e=I.selectedDockId;if(!(!I.open||e==null)&&(await Promise.all([xe(),O,N]),R.value)){if(z.value!==e){R.value=!1;return}R.value=!1,await Y(e)}})(),L.set(S,U),U}export{R as createDocksContext}; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./context-ls7djbvO.js","./docks-N5v0F-cv.js","./keybindings-BCnz_dMa.js","./DockStandalone-BFVG1OxE.js"])))=>i.map(i=>d[i]); | ||
| import{Ct as e,Et as t,Tt as n,at as r,c as i,l as a,n as o,p as s,s as c,y as l}from"./docks-N5v0F-cv.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),String.fromCharCode;var u=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,d=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,f=/^([/\\]\s*){2,}[^/\\]/,p=/\/$|\/\?|\/#/,m=/^\.?\//;function h(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?u.test(e):d.test(e)||(t.acceptRelative?f.test(e):!1)}function g(e=``,t){return t?p.test(e):e.endsWith(`/`)}function _(e=``,t){if(!t)return(g(e)?e.slice(0,-1):e)||`/`;if(!g(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function v(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(g(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function y(e,t){if(b(t)||h(e))return e;let n=_(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return ee(n,e)}function b(e){return!e||e===`/`}function x(e){return e&&e!==`/`}function ee(e,...t){let n=e||``;for(let e of t.filter(e=>x(e)))if(n){let t=e.replace(m,``);n=v(n)+t}else n=e;return n}function S(e,t){let n=e.match(d);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function C(e){return typeof e==`string`?`'${e}'`:new re().serialize(e)}var te=` _-,;:!?.'"()[]{}@*/\\&#%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,w=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[te.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function ne(e,t){if(e===t)return 0;let n=Math.min(e.length,t.length),r=0;for(let i=0;i<n;i++){let n=e.charCodeAt(i),a=t.charCodeAt(i);if(n===a)continue;let o=n<128&&w[n]?w[n]:n+128,s=a<128&&w[a]?w[a]:a+128;if(o!==s)return o<s?-1:1;r===0&&(r=n>a?-1:1)}return e.length===t.length?r:e.length<t.length?-1:1}var re=(function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?ne(e,t):n===`number`&&r===`number`?e-t:ne(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}let i=Object.keys(e).sort(ne),a=`${r}{`;for(let t=0;t<i.length;t++){let n=i[t];a+=`${n}:${this.serialize(e[n])}`,t<i.length-1&&(a+=`,`)}return a+`}`}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e})(),ie=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],ae=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],oe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,T=[],se=class{_data=new ce;_hash=new ce([...ie]);_nDataBytes=0;_minBufferSize=0;finalize(e){e&&this._append(e);let t=this._nDataBytes*8,n=this._data.sigBytes*8;return this._data.words[n>>>5]|=128<<24-n%32,this._data.words[(n+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(n+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(e,t){let n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7];for(let n=0;n<64;n++){if(n<16)T[n]=e[t+n]|0;else{let e=T[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=T[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;T[n]=t+T[n-7]+i+T[n-16]}let d=s&c^~s&l,f=r&i^r&a^i&a,p=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),m=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),h=u+m+d+ae[n]+T[n],g=p+f;u=l,l=c,c=s,s=o+h|0,o=a,a=i,i=r,r=h+g|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+u|0}_append(e){typeof e==`string`&&(e=ce.fromUtf8(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(e){let t,n=this._data.sigBytes/64;n=e?Math.ceil(n):Math.max((n|0)-this._minBufferSize,0);let r=n*16,i=Math.min(r*4,this._data.sigBytes);if(r){for(let e=0;e<r;e+=16)this._doProcessBlock(this._data.words,e);t=this._data.words.splice(0,r),this._data.sigBytes-=i}return new ce(t,i)}},ce=class e{words;sigBytes;constructor(e,t){e=this.words=e||[],this.sigBytes=t===void 0?e.length*4:t}static fromUtf8(t){let n=unescape(encodeURIComponent(t)),r=n.length,i=[];for(let e=0;e<r;e++)i[e>>>2]|=(n.charCodeAt(e)&255)<<24-e%4*8;return new e(i,r)}toBase64(){let e=[];for(let t=0;t<this.sigBytes;t+=3){let n=this.words[t>>>2]>>>24-t%4*8&255,r=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,i=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,a=n<<16|r<<8|i;for(let n=0;n<4&&t*8+n*6<this.sigBytes*8;n++)e.push(oe.charAt(a>>>6*(3-n)&63))}return e.join(``)}concat(e){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t<e.sigBytes;t++){let n=e.words[t>>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=n<<24-(this.sigBytes+t)%4*8}else for(let t=0;t<e.sigBytes;t+=4)this.words[this.sigBytes+t>>>2]=e.words[t>>>2];this.sigBytes+=e.sigBytes}};function le(e){return new se().finalize(e).toBase64()}function ue(e){return le(C(e))}function de(e){return ue(e)}function E(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e<i.length;e++)a+=i[e],e<t.length&&(a+=String(t[e]));return`${n}${a}${r}`}return`${n}${String(e)}${r}`})}var fe={blue:E(34,39),cyan:E(36,39),gray:E(90,39),green:E(32,39),red:E(31,39),yellow:E(33,39),bold:E(1,22),dim:E(2,22),reset:E(0,0),underline:E(4,24)},pe=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function me(e=21){let t=``,n=e;for(;n--;)t+=pe[Math.random()*64|0];return t}var he=Symbol.for(`immer-nothing`),D=Symbol.for(`immer-draftable`),O=Symbol.for(`immer-state`),ge=[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},`This object has been frozen and should not be mutated`,function(e){return`Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? `+e},`An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.`,`Immer forbids circular references`,"The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},`Object.defineProperty() cannot be used on an Immer draft`,`Object.setPrototypeOf() cannot be used on an Immer draft`,`Immer only supports deleting array indices`,`Immer only supports setting array indices and the 'length' property`,function(e){return`'original' expects a draft, got: ${e}`}];function k(e,...t){{let n=ge[e],r=U(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var A=Object,j=A.getPrototypeOf,M=`constructor`,_e=`prototype`,ve=`configurable`,ye=`enumerable`,be=`writable`,xe=`value`,N=e=>!!e&&!!e[O];function P(e){return e?we(e)||z(e)||!!e[D]||!!e[M]?.[D]||B(e)||V(e):!1}var Se=A[_e][M].toString(),Ce=new WeakMap;function we(e){if(!e||!H(e))return!1;let t=j(e);if(t===null||t===A[_e])return!0;let n=A.hasOwnProperty.call(t,M)&&t[M];if(n===Object)return!0;if(!U(n))return!1;let r=Ce.get(n);return r===void 0&&(r=Function.toString.call(n),Ce.set(n,r)),r===Se}function F(e,t,n=!0){I(e)===0?(n?Reflect.ownKeys(e):A.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function I(e){let t=e[O];return t?t.type_:z(e)?1:B(e)?2:V(e)?3:0}var L=(e,t,n=I(e))=>n===2?e.has(t):A[_e].hasOwnProperty.call(e,t),R=(e,t,n=I(e))=>n===2?e.get(t):e[t],Te=(e,t,n,r=I(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Ee(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var z=Array.isArray,B=e=>e instanceof Map,V=e=>e instanceof Set,H=e=>typeof e==`object`,U=e=>typeof e==`function`,De=e=>typeof e==`boolean`;function Oe(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var ke=e=>H(e)?e?.[O]:null,W=e=>e.copy_||e.base_,Ae=e=>e.modified_?e.copy_:e.base_;function je(e,t){if(B(e))return new Map(e);if(V(e))return new Set(e);if(z(e))return Array[_e].slice.call(e);let n=we(e);if(t===!0||t===`class_only`&&!n){let t=A.getOwnPropertyDescriptors(e);delete t[O];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[be]===!1&&(a[be]=!0,a[ve]=!0),(a.get||a.set)&&(t[i]={[ve]:!0,[be]:!0,[ye]:a[ye],[xe]:e[i]})}return A.create(j(e),t)}{let t=j(e);if(t!==null&&n)return{...e};let r=A.create(t);return A.assign(r,e)}}function Me(e,t=!1){return Fe(e)||N(e)||!P(e)?e:(I(e)>1&&A.defineProperties(e,{set:Pe,add:Pe,clear:Pe,delete:Pe}),A.freeze(e),t&&F(e,(e,t)=>{Me(t,!0)},!1),e)}function Ne(){k(2)}var Pe={[xe]:Ne};function Fe(e){return e===null||!H(e)||A.isFrozen(e)}var Ie=`MapSet`,Le=`Patches`,Re=`ArrayMethods`,ze={};function G(e){let t=ze[e];return t||k(0,e),t}var Be=e=>!!ze[e];function Ve(e,t){ze[e]||(ze[e]=t)}var K,He=()=>K,Ue=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Be(Ie)?G(Ie):void 0,arrayMethodsPlugin_:Be(Re)?G(Re):void 0});function We(e,t){t&&(e.patchPlugin_=G(Le),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ge(e){Ke(e),e.drafts_.forEach(Je),e.drafts_=null}function Ke(e){e===K&&(K=e.parent_)}var qe=e=>K=Ue(K,e);function Je(e){let t=e[O];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ye(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[O].modified_&&(Ge(t),k(4)),P(e)&&(e=Xe(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[O].base_,e,t)}else e=Xe(t,n);return Ze(t,e,!0),Ge(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===he?void 0:e}function Xe(e,t){if(Fe(t))return t;let n=t[O];if(!n)return at(t,e.handledSet_,e);if(!$e(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);rt(n,e)}return n.copy_}function Ze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Me(t,n)}function Qe(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var $e=(e,t)=>e.scope_===t,et=[];function tt(e,t,n,r){let i=W(e),a=e.type_;if(r!==void 0&&R(i,r,a)===t){Te(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;F(i,(e,n)=>{if(N(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??et;for(let e of o)Te(i,e,n,a)}function nt(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!$e(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ae(i);tt(e,i.draft_??i,a,n),rt(i,r)})}function rt(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Qe(e)}}function it(e,t,n){let{scope_:r}=e;if(N(n)){let i=n[O];$e(i,r)&&i.callbacks_.push(function(){mt(e),tt(e,n,Ae(i),t)})}else P(n)&&e.callbacks_.push(function(){let i=W(e);e.type_===3?i.has(n)&&at(n,r.handledSet_,r):R(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&at(R(e.copy_,t,e.type_),r.handledSet_,r)})}function at(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||N(e)||t.has(e)||!P(e)||Fe(e)?e:(t.add(e),F(e,(r,i)=>{if(N(i)){let t=i[O];$e(t,n)&&(Te(e,r,Ae(t),e.type_),Qe(t))}else P(i)&&at(i,t,n)}),e)}function ot(e,t){let n=z(e),r={type_:+!!n,scope_:t?t.scope_:He(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=st;n&&(i=[r],a=ct);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var st={get(e,t){if(t===O)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=W(e);if(!L(i,t,e.type_))return dt(e,i,t);let a=i[t];if(e.finalized_||!P(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Oe(t))return a;if(a===lt(e.base_,t)||ut(e,t,a)){mt(e);let n=e.type_===1?+t:t,r=gt(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in W(e)},ownKeys(e){return Reflect.ownKeys(W(e))},set(e,t,n){let r=ft(W(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=lt(W(e),t),i=r?.[O];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Ee(n,r)&&(n!==void 0||L(e.base_,t,e.type_)))return!0;mt(e),pt(e)}return e.copy_[t]===n&&(n!==void 0||L(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),it(e,t,n),!0)},deleteProperty(e,t){return mt(e),lt(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),pt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=W(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[be]:!0,[ve]:e.type_!==1||t!==`length`,[ye]:r[ye],[xe]:n[t]}},defineProperty(){k(11)},getPrototypeOf(e){return j(e.base_)},setPrototypeOf(){k(12)}},ct={};for(let e in st){let t=st[e];ct[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}ct.deleteProperty=function(e,t){return isNaN(parseInt(t))&&k(13),ct.set.call(this,e,t,void 0)},ct.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&k(14),st.set.call(this,e[0],t,n,e[0])};function lt(e,t){let n=e[O];return(n?W(n):e)[t]}function ut(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!P(n)||n[O]?!1:e.baseRefs_.has(n)}function dt(e,t,n){let r=ft(t,n);return r?xe in r?r[xe]:r.get?.call(e.draft_):void 0}function ft(e,t){if(!(t in e))return;let n=j(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=j(n)}}function pt(e){e.modified_||(e.modified_=!0,e.parent_&&pt(e.parent_))}function mt(e){e.copy_||=(e.assigned_=new Map,je(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ht=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(U(e)&&!U(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}U(t)||k(6),n!==void 0&&!U(n)&&k(7);let r;if(P(e)){let i=qe(this),a=gt(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Ge(i):Ke(i)}return We(i,n),Ye(r,i)}if(!e||!H(e)){if(r=t(e),r===void 0&&(r=e),r===he&&(r=void 0),this.autoFreeze_&&Me(r,!0),n){let t=[],i=[];G(Le).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}k(1,e)},this.produceWithPatches=(e,t)=>{if(U(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},De(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),De(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),De(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){P(e)||k(8),N(e)&&(e=_t(e));let t=qe(this),n=gt(t,e,void 0);return n[O].isManual_=!0,Ke(t),n}finishDraft(e,t){let n=e&&e[O];(!n||!n.isManual_)&&k(9);let{scope_:r}=n;return We(r,t),Ye(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=G(Le).applyPatches_;return N(e)?r(e,t):this.produce(e,e=>r(e,t))}};function gt(e,t,n,r){let[i,a]=B(t)?G(Ie).proxyMap_(t,n):V(t)?G(Ie).proxySet_(t,n):ot(t,n);return(n?.scope_??He()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?nt(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function _t(e){return N(e)||k(10,e),vt(e)}function vt(e){if(!P(e)||Fe(e))return e;let t=e[O],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=je(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=je(e,!0);return F(n,(e,t)=>{Te(n,e,vt(t))},r),t&&(t.finalized_=!1),n}function yt(){ge.push(`Sets cannot have "replace" patches.`,function(e){return`Unsupported patch operation: `+e},function(e){return`Cannot apply patch, path doesn't resolve: `+e},`Patching reserved attributes like __proto__, prototype and constructor is not allowed`);function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=ke(R(e,n.key_)),i=R(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||L(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=R(n,r),!H(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[O];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;F(e.assigned_,(e,l)=>{let u=R(o,e,c),f=R(s,e,c),p=l?L(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===he?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=I(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===M)&&k(19),U(o)&&n===_e&&k(19),o=R(o,n),(o===null||!H(o))&&k(18,i.join(`/`))}let s=I(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:k(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:k(17,a)}}),e}function u(e){if(!P(e))return e;if(z(e))return e.map(u);if(B(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(V(e))return new Set(Array.from(e).map(u));let t=Object.create(j(e));for(let n in e)t[n]=u(e[n]);return L(e,D)&&(t[D]=e[D]),t}function d(e){return N(e)?u(e):e}Ve(Le,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var bt=new ht,xt=bt.produce,St=bt.produceWithPatches.bind(bt),Ct=bt.applyPatches.bind(bt),wt=1e3;function Tt(e,t){if(e.add(t),e.size>wt){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Et(e){let{enablePatches:n=!1}=e;n&&yt();let r=t(),i=e.initialValue,a=new Set;return{on:r.on,value:()=>i,patch:(e,t=me())=>{a.has(t)||(yt(),i=Ct(i,e),Tt(a,t),r.emit(`updated`,i,void 0,t))},mutate:(e,t=me())=>{if(!a.has(t)){if(Tt(a,t),n){let[n,a]=St(i,e);i=n,r.emit(`updated`,i,a,t)}else i=xt(i,e),r.emit(`updated`,i,void 0,t)}},syncIds:a}}var Dt=typeof self==`object`?self:globalThis,Ot=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),kt=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function At(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=Ot.has(e)?Dt[e]:void 0;return n(new(r??Dt.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&kt.has(a))return n(new Dt[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function jt(e){return At(new Map,e)(0)}var q=``,{toString:Mt}={},{keys:Nt}=Object;function Pt(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Mt.call(e).slice(8,-1);switch(n){case`Array`:return[1,q];case`Object`:return[2,q];case`Date`:return[3,q];case`RegExp`:return[4,q];case`Map`:return[5,q];case`Set`:return[6,q];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function Ft([e,t]){return e===0&&(t===`function`||t===`symbol`)}function It(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Pt(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of Nt(r))(e||!Ft(Pt(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(Ft(Pt(n))||Ft(Pt(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!Ft(Pt(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Lt(e,t={}){let n=[];return It(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Rt,stringify:zt}=JSON,Bt={json:!0,lossy:!0};function Vt(e){return jt(Rt(e))}function Ht(e){return zt(Lt(e,Bt))}function Ut(e){return jt(e)}function Wt(e){return Ht(e)}function Gt(e){return Vt(e)}var Kt=256,qt=class extends Error{name=`StreamClosedError`};function Jt(e={}){let n=e.id??me(),r=Math.max(0,e.replayWindow??0),i=t(),a=new AbortController,o=[],s=!1,c=0;function l(e){if(s)throw new qt(`Cannot write to a closed stream "${n}"`);c+=1,r>0&&(o.push({seq:c,chunk:e}),o.length>r&&o.splice(0,o.length-r)),i.emit(`chunk`,c,e)}function u(e){if(s)return;s=!0;let t=Xt(e);a.abort(e),i.emit(`end`,t)}function d(){s||(s=!0,a.signal.aborted||a.abort(`stream closed`),i.emit(`end`,void 0))}function f(e){s||a.signal.aborted||a.abort(e??`aborted`)}let p=new WritableStream({write(e){l(e)},close(){d()},abort(e){u(e)}});return{id:n,signal:a.signal,get closed(){return s},get lastSeq(){return c},write:l,error:u,close:d,abort:f,writable:p,events:i,buffer:o}}function Yt(e={}){let t=e.id??me(),n=Math.max(1,e.highWaterMark??Kt),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function Xt(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}function Zt(e,...t){return typeof e==`function`?e(...t):e}var Qt=Error.captureStackTrace,$t=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,Qt?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function en(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function tn(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||en(r,i),s=(e={},n={})=>{let r=new $t({code:i,why:Zt(a.why,e),fix:Zt(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function nn(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n<r.length-1?`├▶`:`╰▶`)} ${t}`)].join(` | ||
| `)}}function rn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var an=Math.random.bind(Math),on=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function sn(e=21){let t=``,n=e;for(;n--;)t+=on[an()*64|0];return t}var cn=6e4,ln=e=>e,un=ln,{clearTimeout:dn,setTimeout:fn}=globalThis;function pn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=ln,deserialize:s=un,resolver:c,bind:l=`rpc`,timeout:u=cn,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=rn(),_=sn();s.i=_;let v;async function y(n=s){return u>=0&&(v=fn(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{dn(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&(dn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}var J={bus:{agentManifestChanged:`agent:manifest:changed`,agentToolRegistered:`agent:tool:registered`,agentToolUnregistered:`agent:tool:unregistered`,agentResourceRegistered:`agent:resource:registered`,agentResourceUnregistered:`agent:resource:unregistered`},client:{isTrustedUpdated:`rpc:is-trusted:updated`,error:`rpc:error`,connectionStatus:`connection:status`,connectionError:`connection:error`},broadcast:{authRevoked:`devframe:auth:revoked`,clientStateUpdated:`devframe:rpc:client-state:updated`,clientStatePatch:`devframe:rpc:client-state:patch`,streamingChunk:`devframe:streaming:chunk`,streamingEnd:`devframe:streaming:end`,streamingUploadCancel:`devframe:streaming:upload-cancel`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`}},mn=`__connection.json`,hn=`__DEVFRAME_CONNECTION__`,gn=`x-birpc-session`,_n=`__rpc-dump/index.json`,vn=`devframe:services`,yn=`devframe_otp`,bn=`devframe_auth_token`;J.postMessage.remoteAssetsError;var xn=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>de(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}},Sn=nn(fe);function Cn(e,{method:t=`warn`}={}){console[t](Sn(e))}function wn(e){return tn({...e,reporters:[Cn,...e.reporters??[]]})}var Y=wn({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is not \`true\` — MCP requires JSON-serializable data.`,fix:"Set `jsonSerializable: true` if the payload is JSON-safe, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});async function Tn(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function En(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function Dn(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r<t.length;r++){let i=t[r];if(!i)continue;let a=await Tn(i,n[r]);if(a.issues)throw Y.DF0043({name:e,index:r,issues:En(a.issues)})}return r}async function On(e,t,n){if(!t)return n;let r=await Tn(t,n);if(r.issues)throw Y.DF0044({name:e,issues:En(r.issues)});return n}async function kn(e,t){if(!e.setup)return{};if(typeof t==`object`&&t){e.__cache??=new WeakMap;let n=e.__cache,r=n.get(t);return r||(r=Promise.resolve(e.setup(t)),r.catch(()=>{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function An(e,t){let n=e.handler;if(!n){let r=await kn(e,t);if(!r.handler)throw Y.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await Dn(e.name,r,t),o=await a(...n);return await On(e.name,i,o)}}var jn=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return An(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw Y.DF0021({name:e.name});Mn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw Y.DF0022({name:e.name});Mn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await An(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw Y.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function Mn(e){if(e.agent&&e.jsonSerializable!==!0)throw Y.DF0019({name:e.name})}function Nn(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw X(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw X(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw X(t,`Map`,r,e);if(i instanceof Set)throw X(t,`Set`,r,e);if(i instanceof Date)throw X(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw X(t,i.constructor?.name??`class instance`,r,e)}return n})}function X(e,t,n,r){let i=Pn(n,r);return Y.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Pn(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}var Fn=`__DEVFRAME_CONNECTION_META__`,In=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Ln(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function Rn(){return Ln(hn)}function zn(){return Ln(Fn)}function Z(e){if(e)return e;try{let e=localStorage.getItem(In);if(e)return e}catch{}return Ln(In)}function Bn(e){globalThis[hn]=e,globalThis[Fn]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Vn(e.authToken)}function Vn(e){try{localStorage.setItem(In,e)}catch{}globalThis[In]=e;let t=Rn();t&&(globalThis[hn]={...t,authToken:e})}function Hn(e){let t=y(mn,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Un(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Wn(){let e=Rn();if(e)return Un(e,Z()??e.authToken??e.connectionMeta.authToken);let t=zn();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Hn(`./`),authToken:Z(t.authToken)}}async function Gn(e={}){if(e.connection){let t=Un(e.connection,Z(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return Bn(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Hn(t[0]??`./`),authToken:Z(e.authToken??e.connectionMeta.authToken)};return Bn(n),n}let n=Wn();if(n){let t=Un(n,Z(e.authToken??n.authToken??n.connectionMeta.authToken));return Bn(t),t}let r=[];for(let n of t){let t=y(mn,n),i=Hn(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a={connectionMeta:r,metaBaseUrl:n.url||i,authToken:Z(e.authToken??r.authToken)};return Bn(a),a}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var Q=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Kn(e=yn){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function qn(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function Jn(e=yn){let t=Kn(e);return t&&qn(e),t}async function Yn(e,t={}){let n=Jn(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Xn(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(vn,{initialValue:{}}).then(e=>(t=e.value(),e.on(`updated`,e=>{t=e}),e)),r);return i(),{state:i,has:e=>e in t,keys:()=>Object.keys(t),get:r=>{let i=t[r];if(!i)return;let a=n.get(i);return a||(a={...i,rpc:e.scope(i.scope).rpc},n.set(i,a)),a}}}function Zn(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=e.connectionMeta.backend===`static`;function o(e,t){let n=r.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:J.broadcast.clientStateUpdated,type:`event`,handler:(e,n,r)=>{let i=t.get(e);!i||i.syncIds.has(r)||i.mutate(()=>o(e,n),r)}}),e.client.register({name:J.broadcast.clientStatePatch,type:`event`,handler:(e,n,r)=>{let i=t.get(e);!i||i.syncIds.has(r)||i.patch(n,r)}});function s(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{a||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return i.add(e),()=>{i.delete(e)}},delete(e){let i=n.get(e);n.delete(e);let a=t.delete(e);return r.delete(e),i?.(),a},get:async(c,l)=>{if(l?.initialValue!==void 0&&r.set(c,l.initialValue),t.has(c))return t.get(c);let u=Et({initialValue:l?.initialValue,enablePatches:!1});async function d(){if(a||e.callEvent(`devframe:rpc:server-state:subscribe`,c),l?.initialValue!==void 0){t.set(c,u);for(let e of i)e(c);return e.call(`devframe:rpc:server-state:get`,c).then(e=>{e!==void 0&&u.mutate(()=>o(c,e))}).catch(e=>{console.error(`Error getting server state`,e)}),n.set(c,s(c,u)),u}{let r=await e.call(`devframe:rpc:server-state:get`,c);u.mutate(()=>o(c,r)),t.set(c,u);for(let e of i)e(c);return n.set(c,s(c,u)),u}}return new Promise(t=>{if(e.isTrusted)d().then(t);else{t(u);let n=!1;e.events.on(J.client.isTrustedUpdated,e=>{e&&!n&&(n=!0,d())})}})}}}var Qn=new Map;function $n(e=Qn){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?Nn(n,r??``):`s:${Wt(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Gt(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function er(){}function tr(e){let{onConnected:t=er,onError:n=er,onDisconnected:r=er,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${bn}=${encodeURIComponent(e.authToken)}`);let s=$n(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function h(e){l||(l=!0,p(e),n(e),r())}function g(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function _(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function v(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=r.search(/\n\n|\r\n\r\n/);if(e<0)break;let t=r.slice(0,e);r=r.slice(e+(r[e]===`\r`?4:2));let n=`message`,i=[];for(let e of t.split(/\r?\n/))e.startsWith(`:`)||(e.startsWith(`event:`)?n=e.slice(6).trimStart():e.startsWith(`data:`)&&i.push(e.slice(5).replace(/^ /,``)));i.length>0&&_(n,i.join(` | ||
| `))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[gn]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function nr(e,t){let{channel:n,rpcOptions:r={}}=t;return pn(e,{...n,timeout:-1,...r,proxify:!1})}function rr(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function ir(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=rr();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(J.client.connectionStatus,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function h(){return l===`disconnected`||l===`error`?new Q(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new Q(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function g(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(J.client.error,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new Q(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(J.client.error,n,t),r(n)})})}let _=new Map;for(let e of r.jsonSerializableMethods??[])_.set(e,{jsonSerializable:!0});let v=e.createChannel({definitions:_,onError(e){f(`error`,e),i.emit(J.client.connectionError,e),m(new Q(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new Q(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=nr(a.functions,{channel:v,rpcOptions:o});a.register({name:J.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new Q(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(J.client.connectionError,e),m(e),i.emit(J.client.isTrustedUpdated,!1)}});let b=n;async function x(e){b=e;let t=await y.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new Q(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(J.client.connectionError,e)}return i.emit(J.client.isTrustedUpdated,c),t.isTrusted}async function ee(e){let t=(await y.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return t&&(b=t,c=!0,d.resolve(!0),f(`connected`),i.emit(J.client.isTrustedUpdated,!0)),t}async function S(){return c?!0:x(b??``)}async function C(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t=()=>{};return await Promise.race([d.promise.then(t),new Promise((n,r)=>{let i=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e);t=()=>clearTimeout(i)})]),c}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:S,requestTrustWithToken:x,requestTrustWithCode:ee,ensureTrusted:C,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(J.client.error,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(J.client.error,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(J.client.error,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function ar(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function or(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=ar(n.sse,r??`./`,location);return ir({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>tr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function sr(e){let t=e.cause instanceof Error?e.cause:cr(e.cause)?sr(e.cause):e.cause,n=t===void 0?Error(e.message):Error(e.message,{cause:t});n.name=e.name;for(let t of Object.keys(e))t!==`name`&&t!==`message`&&t!==`cause`&&(n[t]=e[t]);return n}function cr(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function lr(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function ur(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function dr(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function fr(e){if(e.error)throw sr(e.error);return e.output}function pr(e){return e.some(e=>e!=null)}function mr(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function hr(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?Ut(e):e}function a(e,t){return i(mr(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return dr(r)?fr(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(lr(r)){if(pr(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(ur(r)){let e=de(n),i=r.records[e];if(i)return fr(await s(i,r.serialization));if(r.fallback)return fr(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!pr(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function gr(e){let t=hr(await e.fetchJsonFromBases(_n),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var _r=``;function vr(e,t){return`${e}${_r}${t}`}function yr(e){let t=new Map,n=new Map;e.client.register({name:J.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(vr(e,n))?._push(r,i)}}),e.client.register({name:J.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=vr(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:J.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=vr(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(J.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(_r);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=vr(n,r),o=t.get(a);if(o)return o;let s=Yt({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(J.client.isTrustedUpdated,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=vr(t,r),a=n.get(i);if(a)return a;let o=Jt({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function br(){}var xr=new Map;function Sr(e){let t=e.url;e.authToken&&(t=`${t}?${bn}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=br,onError:i=br,onDisconnected:a=br,definitions:o=xr}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=$n(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function Cr(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return S(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function wr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Cr(n.websocket,r??`./`,location);return ir({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Sr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function Tr(e){return e.includes(`:`)}function $(e,t){return Tr(t)?t:`${e}:${t}`}function Er(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return{async get(e){return(await a()).value()[e]},async set(e,t){(await a()).mutate(n=>{n[e]=t})},async delete(e){(await a()).mutate(t=>{delete t[e]})},async all(){return(await a()).value()},async onChange(e){return(await a()).on(`updated`,t=>e(t))}}}function Dr(e,t){return{global:Er(e,t,`global`),project:Er(e,t,`project`)}}function Or(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(Tr(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call($(t,n),...r)),callEvent:((n,...r)=>e.callEvent($(t,n),...r)),callOptional:((n,...r)=>e.callOptional($(t,n),...r)),sharedState:((n,r)=>e.sharedState.get($(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe($(t,n),r,i),upload:(n,r)=>e.streaming.upload($(t,n),r)}},settings:Dr(e,t),scope:e.scope}}function kr(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none") — nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function Ar(e={}){let{baseURL:n=`./`,rpcOptions:r={},cacheOptions:i=!1}=e,a=t(),o=Array.isArray(n)?n:[n],s=await Gn(e),{connectionMeta:c,metaBaseUrl:l,authToken:u}=s,d=o[0]??`./`;try{d=new URL(`.`,l).href}catch{}let f=new xn({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),p={rpc:void 0},m=new jn(p);async function h(e){let t=[d,...o.filter(e=>e!==d)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(y(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let g={authToken:u,connectionMeta:c,metaBaseUrl:l,events:a,clientRpc:m,callTimeout:e.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&f?.validate(e.m)){if(f.has(e.m,e.a))return n(f.cached(e.m,e.a));let r=await t(e);f.apply(e,r)}else await t(e)}}},_=kr(e.transport??`auto`,c),v=_===`static`?await gr({fetchJsonFromBases:h}):_===`sse`?or({...g,sseOptions:e.sseOptions}):wr({...g,wsOptions:e.wsOptions}),b;try{b=new BroadcastChannel(`devframe-auth`)}catch{}let x,ee=!1;function S(e){return((...t)=>ee||!x?e(...t):x.then(()=>e(...t)))}let C={events:a,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return s},connectionMeta:c,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Vn(e),s={...s,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Vn(t),s={...s,authToken:t};try{b?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:S(v.call),callEvent:S(v.callEvent),callOptional:S(v.callOptional),client:m,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:f,scope:void 0,close:()=>v.close?.()};C.sharedState=Zn(C),C.streaming=yr(C),C.services=Xn(C);let te=new Map;C.scope=(e=>{if(!e)return C;let t=te.get(e);return t||(t=Or(C,e),te.set(e,t)),t}),p.rpc=C;function w(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function ne(){if(!(e.simpleAuth===!1||!w())&&typeof globalThis.prompt==`function`)for(;!C.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await C.requestTrustWithCode(t))return}}async function re(){let t=await v.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Yn(C,{param:n}):!1;t||r||C.isTrusted||await ne()}return x=re().then(()=>{ee=!0},()=>{ee=!0}),b&&(b.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&C.requestTrustWithToken(e.data.authToken)}),C}r(()=>{let e=document.documentElement;e.classList.toggle(`dark`,s.value),e.classList.toggle(`light`,!s.value),e.style.colorScheme=s.value?`dark`:`light`});async function jr(){let t=import.meta.url,r=await Ar({baseURL:[`./`,new URL(`./`,t).href],simpleAuth:!1}),s=a(r.connectionMeta.configs?.ui?.branding||{});c(document,s);let u=l(`devframes-dock-session`,o(),{mergeDefaults:!0}),{createDocksContext:d}=await n(async()=>{let{createDocksContext:e}=await import(`./context-ls7djbvO.js`);return{createDocksContext:e}},__vite__mapDeps([0,1,2]),import.meta.url),f=await d(`standalone`,r,void 0,u);e(f);let{DockStandalone:p}=await n(async()=>{let{DockStandalone:e}=await import(`./DockStandalone-BFVG1OxE.js`);return{DockStandalone:e}},__vite__mapDeps([3,1,2]),import.meta.url),m=new p({context:f});i(m,s.primaryColor),document.getElementById(`app`).appendChild(m)}jr(); |
| const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-BFVG1OxE.js","./docks-N5v0F-cv.js"])))=>i.map(i=>d[i]); | ||
| import{Dt as e,Et as t,Tt as n,c as r,it as i,mt as a,p as o,s,u as c}from"./docks-N5v0F-cv.js";var l={bus:{agentManifestChanged:`agent:manifest:changed`,agentToolRegistered:`agent:tool:registered`,agentToolUnregistered:`agent:tool:unregistered`,agentResourceRegistered:`agent:resource:registered`,agentResourceUnregistered:`agent:resource:unregistered`},client:{isTrustedUpdated:`rpc:is-trusted:updated`,error:`rpc:error`,connectionStatus:`connection:status`,connectionError:`connection:error`},broadcast:{authRevoked:`devframe:auth:revoked`,clientStateUpdated:`devframe:rpc:client-state:updated`,clientStatePatch:`devframe:rpc:client-state:patch`,streamingChunk:`devframe:streaming:chunk`,streamingEnd:`devframe:streaming:end`,streamingUploadCancel:`devframe:streaming:upload-cancel`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`}},u=`devframe-remote-connection`,d=l.postMessage.remoteAssetsError,f=/^[a-z][a-z\d+.-]*:/i;function p(e){let t=e.trim();return!!t&&!t.startsWith(`/`)&&!t.startsWith(`./`)&&!t.startsWith(`../`)&&!f.test(t)}function m(e,t={}){if(!p(e))return e;let n=t.resolveClientModule?.(e);if(n)return n;if(!t.template)return e;let r=t.template.includes(`{specifier}`)?t.template.replaceAll(`{specifier}`,e):t.template+e;try{return new URL(r,t.metaBaseUrl).href}catch{return r}}function h(e,t){return p(e)?t===e?" — the specifier is a bare npm specifier and this host advertises no client-module resolution (`ConnectionMeta.configs.dock.clientModuleResolution`). Serve the script as a self-contained bundle by URL, pass `resolveClientModule` to this client host, or run under a host that resolves bare specifiers (e.g. Vite: `/@id/{specifier}`).":` — the host resolved the bare specifier "${e}" to this URL but could not serve the module. Check the package is installed and resolvable from the host project's root (and built, if its exports point at build output).`:``}function g(e){function t(e){let t=e.split(`&`),n=t.filter(e=>e.split(`=`)[0]!==u);return[n.join(`&`),n.length!==t.length]}let n=e.indexOf(`#`),r=n===-1?e:e.slice(0,n),i=n===-1?void 0:e.slice(n+1),a=!1;if(i!==void 0){let e=i.indexOf(`?`);if(e===-1){let[e,n]=t(i);i=e,a||=n}else{let n=i.slice(0,e),[r,o]=t(i.slice(e+1));o&&(i=r?`${n}?${r}`:n,a=!0)}}let o=r.indexOf(`?`);if(o!==-1){let e=r.slice(0,o),[n,i]=t(r.slice(o+1));i&&(r=n?`${e}?${n}`:e,a=!0)}return a?i?`${r}#${i}`:r:e}var _=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],v=/[a-z_$]/i,ee=/[\w$.:]/,y=/\d/,te=/\s/;function ne(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(te.test(r)){n++;continue}if(r===`(`){t.push({type:`lparen`}),n++;continue}if(r===`)`){t.push({type:`rparen`}),n++;continue}let i=!1;for(let r of _)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(y.test(r)){let r=n;for(;r<e.length&&y.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&y.test(e[r+1]))for(r++;r<e.length&&y.test(e[r]);)r++;t.push({type:`number`,value:Number(e.slice(n,r))}),n=r;continue}if(r===`"`||r===`'`){let i=r,a=n+1,o=``;for(;a<e.length&&e[a]!==i;)if(e[a]===`\\`&&a+1<e.length){let t=e[a+1];o+=t===`n`?` | ||
| `:t===`t`?` `:t,a+=2}else o+=e[a],a++;if(a>=e.length)throw Error(`Unterminated string literal at position ${n}`);a++,t.push({type:`string`,value:o}),n=a;continue}if(v.test(r)){let r=n;for(;r<e.length&&ee.test(e[r]);)r++;let i=e.slice(n,r);i===`true`?t.push({type:`bool`,value:!0}):i===`false`?t.push({type:`bool`,value:!1}):t.push({type:`ident`,value:i}),n=r;continue}throw Error(`Unexpected character "${r}" at position ${n}`)}}return t.push({type:`eof`}),t}function re(e){let t=ne(e),n=0,r=()=>t[n],i=()=>t[n++],a=e=>{let t=r();return t.type===`op`&&t.value===e},o=()=>{let e=i();if(e.type!==`op`)throw Error(`internal: expected operator token, got ${b(e)}`);return e.value};function s(){let e=c();for(;a(`||`);)i(),e={type:`binary`,op:`||`,left:e,right:c()};return e}function c(){let e=l();for(;a(`&&`);)i(),e={type:`binary`,op:`&&`,left:e,right:l()};return e}function l(){let e=u();for(;a(`===`)||a(`!==`)||a(`==`)||a(`!=`);){let t=o(),n=t===`==`||t===`!=`?h():u();e={type:`binary`,op:t,left:e,right:n}}return e}function u(){let e=d();for(;a(`<=`)||a(`>=`)||a(`<`)||a(`>`);)e={type:`binary`,op:o(),left:e,right:d()};return e}function d(){let e=f();for(;a(`+`)||a(`-`);)e={type:`binary`,op:o(),left:e,right:f()};return e}function f(){let e=p();for(;a(`*`)||a(`/`)||a(`%`);)e={type:`binary`,op:o(),left:e,right:p()};return e}function p(){return a(`!`)||a(`-`)||a(`+`)?{type:`unary`,op:o(),operand:p()}:m()}function m(){let e=r();if(e.type===`number`||e.type===`string`||e.type===`bool`)return i(),{type:`literal`,value:e.value};if(e.type===`ident`)return i(),{type:`key`,key:e.value};if(e.type===`lparen`){i();let e=s(),t=r();if(t.type!==`rparen`)throw Error(`Expected ")" but got ${b(t)}`);return i(),e}throw Error(`Unexpected token: ${b(e)}`)}function h(){let e=r();if(e.type===`string`)return i(),{type:`literal`,value:e.value};if(e.type===`number`||e.type===`bool`)return i(),{type:`literal`,value:String(e.value)};if(e.type===`ident`)return i(),{type:`literal`,value:e.value};throw Error(`Expected value literal or identifier on right side of equality, got ${b(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${b(_)}`);return g}function b(e){switch(e.type){case`eof`:return`end of expression`;case`lparen`:return`"("`;case`rparen`:return`")"`;case`op`:case`ident`:case`string`:return`"${e.value}"`;case`number`:case`bool`:return`"${String(e.value)}"`}}function ie(e,t,n={}){let{strict:r=!1}=n;return!!x(e,t,r)}function x(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return se(e.key,t,n);case`unary`:return S(e.op,x(e.operand,t,n));case`binary`:return ae(e,t,n)}}function S(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function ae(e,t,n){let{op:r}=e;if(r===`&&`)return x(e.left,t,n)&&x(e.right,t,n);if(r===`||`)return x(e.left,t,n)||x(e.right,t,n);let i=x(e.left,t,n),a=x(e.right,t,n);switch(r){case`==`:return String(i)===String(a);case`!=`:return String(i)!==String(a);case`===`:return i===a;case`!==`:return i!==a;case`<`:return i<a;case`>`:return i>a;case`<=`:return i<=a;case`>=`:return i>=a;case`+`:return i+a;case`-`:return i-a;case`*`:return i*a;case`/`:return i/a;case`%`:return i%a}}function oe(e,t,n){return ie(re(e),t,n)}function se(e,t,n){let{found:r,value:i}=ce(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function ce(e,t){if(e in t)return{found:!0,value:t[e]};let n=e.includes(`.`)?`.`:e.includes(`:`)?`:`:null;if(n){let r=e.split(n),i=t;for(let e of r){if(typeof i!=`object`||!i)return{found:!1,value:void 0};let t=i;if(!(e in t))return{found:!1,value:void 0};i=t[e]}return{found:!0,value:i}}return{found:!1,value:void 0}}function C(e,t,n){return oe(e,t,n)}var le=`devframes:hub-ui:hide`,ue=`devframes_plugin_terminals`,de=`devframes_plugin_messages`,fe=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),w=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),pe=Object.freeze([fe,w]),T=`~pinned`,me=-1e5;function E(t,n){return t===T?me:n?.[t]??e[t]??0}function he(e){return typeof e==`string`?e:e?.light??e?.dark}var ge={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[T]:`Pinned`};function _e(e){return e!==`~builtin`&&e!==T}function ve(e){return ge[e]??e}function ye(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function be(e,t){if(!t||t.type===`group`||!t.groupId)return;let n=e.find(e=>e.id===t.groupId);return n?.type===`group`?n:void 0}function D(e,t,n,r){let i=e.filter(e=>e.type!==`group`&&e.groupId===t);if(!n)return i.length?[[`default`,i]]:[];let a=e.find(e=>e.type===`group`&&e.id===t);return O(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function xe(e,t,n,r){return D(e,t,n,r).flatMap(([,e])=>e)}function Se(e,t,n,r){if(!n)return;let i=e.find(e=>e.type!==`group`&&e.groupId===t&&e.id===n);if(i){if(i.when){if(r){if(!C(i.when,r))return}else if(i.when===`false`)return}return i}}function O(e,t,n){let{docksHidden:r,docksCategoriesHidden:i,docksCustomOrder:a,docksPinned:o}=t,{includeHidden:s=!1,whenContext:c,collapseGroups:l=!1,ignoreCategoryHidden:u=!1,categoryOrderOverride:d}=n??{},f=new Map;for(let t of e)t.type===`group`&&f.set(t.id,t.category??`default`);let p=new Map;for(let n of e){let e=n.type!==`group`&&n.groupId?f.get(n.groupId):void 0;if(l&&e!==void 0||n.when&&c&&!C(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!C(n.visibility,c)&&!s||n.visibility&&!c&&n.visibility===`false`&&!s||!s&&n.id===`devframes_plugin_inspect`&&!t.showDevframeInspector||!s&&r.includes(n.id))continue;let a=e??n.category??`default`,d=o.includes(n.id)&&e===void 0?T:a;!s&&!u&&i.includes(d)||(p.has(d)||p.set(d,[]),p.get(d).push(n))}let m=Array.from(p.entries()).sort(([e],[t])=>{let n=E(e,d),r=E(t,d);return r===n?t.localeCompare(e):n-r});return m.forEach(([e,t])=>{t.sort((e,t)=>{let n=a[e.id]??0,r=a[t.id]??0;if(n!==r)return n-r;let i=e.defaultOrder??0,o=t.defaultOrder??0;return o===i?t.title.localeCompare(e.title):i-o})}),m}function k(e){let{availableHeight:t,reservedHeight:n,itemHeight:r,dividerHeight:i,moreButtonHeight:a,dividerCount:o,totalItems:s}=e;if(s<=0||r<=0)return 0;let c=t-n-Math.max(0,o)*i;if(Math.floor(c/r)>=s)return s;let l=Math.floor((c-a)/r);return Math.max(0,l)}function A(e,t){let n=[],r=[],i=t;for(let[t,a]of e)i<=0?r.push([t,a]):a.length>i?(n.push([t,a.slice(0,i)]),r.push([t,a.slice(i)]),i=0):(i-=a.length,n.push([t,a]));return r.reduce((e,[,t])=>e+t.length,0)===1?{visible:[...n,...r],overflow:[]}:{visible:n,overflow:r}}var j=a(null),M=a(null),N=a(null),P=a(null);function Ce(e){j.value=e}function we(){return j}function F(e){M.value=e}function Te(){return M}function Ee(e){N.value=e}function De(){return N}var I=a(null);function Oe(e){I.value=e}function ke(){return I}function Ae(e){P.value=e}function je(){return P}var L=a(null);function Me(e){L.value=e}function Ne(){return L}var R=20,z=100,Pe=320,Fe=240,B=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,V=`__DEVFRAME_CONNECTION_META__`,H=a(null),U=a(!1),W=t(),G,K,q,J,Ie=async()=>await n(()=>import(`./DockStandalone-BFVG1OxE.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1]),import.meta.url);W.on(`popup:open-requested`,e=>{qe(e)});function Y(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Le(){G?.(),G=void 0,K?.(),K=void 0}function Re(e){return i(o,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function ze(){q?.remove(),q=void 0}function X(){Le(),ze(),H.value=null,U.value=!1;let e=J;J=void 0,e?.docks.switchEntry(null)}function Z(e,t,n){return Math.min(Math.max(e,t),n)}function Be(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Z(Math.round(t.innerWidth/window.innerWidth*100),R,z),e.panel.store.height=Z(Math.round(t.innerHeight/window.innerHeight*100),R,z))}async function Ve(e,t){let n=await Ie(),i=t.document.createElement(`style`);i.textContent=[`html, body {`,` margin: 0;`,` padding: 0;`,` width: 100%;`,` height: 100%;`,` overflow: hidden;`,` background: transparent;`,`}`,`#devframes-popup-root {`,` width: 100vw;`,` height: 100vh;`,`}`,`#devframes-popup-root > devframes-dock-standalone {`,` display: block;`,` width: 100%;`,` height: 100%;`,`}`].join(` | ||
| `),s(t.document,c().value),t.document.head?.appendChild(i),t.document.body.textContent=``,t[V]=globalThis[V]??e.rpc.connectionMeta;let a=t.document.createElement(`div`);a.id=`devframes-popup-root`,t.document.body.appendChild(a);let o=new n({context:e});r(o,c().value.primaryColor),q=o,a.appendChild(o)}function He(){return!!Y()?.requestWindow}function Ue(e,t){typeof window>`u`||e!==`standalone`&&(window[B]=t)}async function We(e,t){if(!(typeof window>`u`)&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[B];return typeof n==`function`?await n(t):void 0}catch{return}}function Ge(){return H}function Q(){return U}function Ke(e){W.emit(`popup:open-requested`,e)}async function qe(e){F(null);let t=H.value;if(t?.closed)X();else if(t)return t.focus(),t;let n=Y();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(Pe,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(Fe,Math.round(window.innerHeight*e.panel.store.height/100))});await Ve(e,t),K=Re(t);let i=()=>Be(e,t),a=()=>{H.value===t&&X()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),G=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},J=e,H.value=t,U.value=!0,t}catch{return r&&!r.closed&&r.close(),X(),null}}var $=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform??``);function Je(e){return e.split(`+`).map(e=>e===`Mod`?$?`⌘`:`Ctrl`:e===`Shift`?$?`⇧`:`Shift`:e===`Alt`?$?`⌥`:`Alt`:e)}function Ye(e){let t=[];($?e.metaKey:e.ctrlKey)&&t.push(`Mod`),($?e.ctrlKey:e.metaKey)&&t.push($?`Ctrl`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n.length===1&&(n=n.toUpperCase()),[`Control`,`Meta`,`Alt`,`Shift`].includes(n)||t.push(n),t.join(`+`)}function Xe(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>e.key===r[t]?.key)}function Ze(e,t){return e!==void 0&&!Xe(e,t)}function Qe(e,t){let n=e=>!e.when||C(e.when,t),r=[];for(let t of e){if(!n(t))continue;if(!t.children){r.push(t);continue}let e=t.children.filter(n);r.push({...t,children:e})}return r}function $e(e,t){let n=[];for(let r of e.value){for(let e of t(r.id))n.push({id:r.id,keybinding:e});if(r.children)for(let e of r.children)for(let r of t(e.id))n.push({id:e.id,keybinding:r})}return n}var et={"Mod+T":`Open new tab`,"Mod+W":`Close tab`,"Mod+N":`Open new window`,"Mod+L":`Focus address bar`,"Mod+D":`Bookmark page`,"Mod+Q":`Quit browser`,"Mod+Shift+T":`Reopen closed tab`,"Mod+Shift+N":`Open incognito window`,"Mod+Shift+W":`Close window`,"Mod+Shift+Q":`Quit browser (Chrome)`,"Alt+F4":`Close window (Windows)`,"Mod+R":`Reload page`,"Mod+Shift+R":`Hard reload page`,"Mod+F":`Find in page`};export{be as A,de as B,De as C,O as D,k as E,he as F,g as G,C as H,Se as I,d as K,pe as L,D as M,ye as N,A as O,_e as P,w as R,Te as S,we as T,h as U,ue as V,m as W,Ee as _,Ze as a,je as b,He as c,We as d,Ge as f,F as g,Oe as h,Je as i,xe as j,ve as k,Ue as l,Ae as m,$e as n,$ as o,Q as p,l as q,Qe as r,Ye as s,et as t,Ke as u,Me as v,Ne as w,ke as x,Ce as y,le as z}; |
Sorry, the diff of this file is too big to display
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
6
-14.29%1169501
-0.09%18993
-0.07%