@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-DZd0ZNrd.js";import{B as x,D as S,F as te,G as C,K as w,L as ne,M as re,N as ie,V as ae,W as T,d as oe,f as E,j as se,k as ce,l as le,n as D,p as O,r as k,s as A,z as ue}from"./keybindings-D1V7S3LX.js";var j=new WeakMap;async function de(e,t,n,i){if(j.has(t))return j.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=O(),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 k(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(!T(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`&&M(p,m,x,b);let S=c({commands:m,paletteCommands:g,register:_,execute:b,getKeybindings:x,settings:y(n),paletteOpen:f});return j.set(t,S),S}function M(e,t,n,r){let i=i=>{let a=A(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let o=e(),s=D(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&&!T(s.when,o))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),d(E(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function fe(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 N(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function P(e,t){let n=N(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);let r=w(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}${C(n.importFrom,r)}`,e),e}}var F=new Map;function pe(e,t){if(e.type!==`action`&&F.has(e.id))return F.get(e.id);let n=P(e,t);return e.type!==`action`&&F.set(e.id,n),n}var I=new WeakMap;async function L(a,C,w,T){if(I.has(C))return I.get(C);let{entries:E,initialSyncComplete:D}=await o(C),k={},A=await C.sharedState.get(e,{initialValue:k}),j=u(A),M=m(A,k),N=c(new Map),P=r(()=>{let e=E.value,t;if(N.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(N.get(t.id)??t);for(let[e,t]of N)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===x.id)?t:[...t,x]});T||=h(p());let F={...T.value},L=h(F.open&&F.selectedDockId!=null),R=r({get:()=>T.value.selectedDockId,set:e=>{T.value.selectedDockId=e}}),me=r({get:()=>T.value.selectedDockRoute,set:e=>{T.value.selectedDockRoute=e}}),z=r(()=>L.value?null:P.value.find(e=>e.id===R.value)??ue.find(e=>e.id===R.value)??null),B=c(new Map);s(()=>{for(let e of P.value){if(B.has(e.id)){B.get(e.id).entryMeta=e;continue}B.set(e.id,g(e,z))}});let V=(e,t=!1)=>{if(N.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return N.set(e.id,e),B.has(e.id)||B.set(e.id,g(e,z)),{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=N.get(e.id);n&&N.set(e.id,{...n,...t})},dispose:()=>{N.delete(e.id)&&(B.delete(e.id),R.value===e.id&&(R.value=null))}}},he=e=>{if(!N.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);N.set(e.id,e)};w||=h(_());let H,U,W=y(await(async()=>(U||=C.sharedState.get(`devframe:user-settings`,{initialValue:ee()}),U))()),G=u(W),K,ge=O(),q=()=>({clientType:a,dockOpen:T.value.open,paletteOpen:K?.paletteOpen??!1,dockSelectedId:R.value??``,popupOpen:ge.value}),J=new Map,Y=async(e=null)=>{if(e==null)return L.value=!1,R.value=null,T.value.open=!1,T.value.selectedDockRoute=null,!0;if(e===`~client-auth-notice`)return L.value=!1,R.value=e,T.value.open=!0,!0;let t=P.value.find(t=>t.id===e);if(!t)return!1;if(t.type===`group`){let e=ne(P.value,t,T.value.groupLastChildIds?.[t.id],q())?.id??se(P.value,t.id)[0]?.id;return e?Y(e):!1}if(t.type===`iframe`&&t.subTabs){let n=t.frameId??t.id,r=J.get(n);if(r&&r!==e&&P.value.some(e=>e.id===r))return Y(r)}if(t.type===`action`&&await oe(a,t.id)!=null)return!1;if(t.type===`action`||t.type===`custom-render`||t.type===`iframe`&&t.clientScript){let n=B.get(e),r=fe(C);await pe(t,c({...l(H),current:n,messages:r,logs:r}))}return t.type===`iframe`&&t.frameId&&!t.subTabs&&J.set(t.frameId,t.id),t.groupId&&((T.value.groupLastChildIds??={})[t.groupId]=t.id),L.value=!1,R.value=t.id,T.value.open=!0,t.type!==`iframe`&&(T.value.selectedDockRoute=null),!0},_e=async e=>R.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=b({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:V,switchEntry:Y,getStateById:e=>B.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(P,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=B.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&&Y(e.dockId)}});let Q=C.connectionMeta.configs?.ui?.dockPreferences?.categoryOrder,ye=r(()=>S(P.value,G.value,{whenContext:q(),collapseGroups:!0,categoryOrderOverride:Q}));K=await de(a,C,W,q),K.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{K.paletteOpen=!K.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{T.value.open=!1,R.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 ${v().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(ae))}},{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:()=>{w.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{w.value.mode=`edge`}}]}]);let be;s(()=>{be?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:te(e.icon),action:()=>{_e(e.id)}}),t=ie(P.value),n=P.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(P.value,t.id,G.value,{whenContext:q()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:ce(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&(be=K.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))});let $=F.selectedDockId==null?null:F.selectedDockRoute;H=c({panel:{store:w,session:T,isDragging:!1,isResizing:!1,isVertical:r(()=>w.value.position===`left`||w.value.position===`right`),consumeBootRoute:e=>{if($!=null&&e===F.selectedDockId){let e=$;return $=null,e}return null}},docks:{selectedId:R,selectedRoute:me,selected:z,entries:P,entryToStateMap:y(B),groupedEntries:ye,categoryOrder:Q?{...n,...Q}:n,settings:W,getStateById:e=>B.get(e),switchEntry:Y,toggleEntry:_e,register:V,update:he},commands:K,when:{get context(){return q()}},connection:{get status(){return C.status},get error(){return C.connectionError},events:C.events},renderers:y(i({context:()=>H,manifest:()=>j.value})),rpc:y(C),clientType:a}),le(a,async e=>{let t=P.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:Y(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=F.selectedDockId;if(!(!F.open||e==null)&&(await Promise.all([xe(),D,M]),L.value)){if(R.value!==e){L.value=!1;return}L.value=!1,await Y(e)}})(),I.set(C,H),H}export{L 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-XVfTZFii.js","./docks-DZd0ZNrd.js","./keybindings-D1V7S3LX.js","./DockStandalone-CUnO93Bh.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-DZd0ZNrd.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-XVfTZFii.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-CUnO93Bh.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-CUnO93Bh.js","./docks-DZd0ZNrd.js"])))=>i.map(i=>d[i]); | ||
| import{Dt as e,Et as t,Ot as n,P as r,Tt as i,c as a,i as o,it as s,mt as c,p as l,s as u,u as d}from"./docks-DZd0ZNrd.js";var f=`devframe-remote-connection`,p=e.postMessage.remoteAssetsError,m=/^[a-z][a-z\d+.-]*:/i;function h(e){let t=e.trim();return!!t&&!t.startsWith(`/`)&&!t.startsWith(`./`)&&!t.startsWith(`../`)&&!m.test(t)}function g(e,t={}){if(!h(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 _(e,t){return h(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 ee(e){function t(e){let t=e.split(`&`),n=t.filter(e=>e.split(`=`)[0]!==f);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 te=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],ne=/[a-z_$]/i,re=/[\w$.:]/,v=/\d/,ie=/\s/;function ae(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(ie.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 te)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(v.test(r)){let r=n;for(;r<e.length&&v.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&v.test(e[r+1]))for(r++;r<e.length&&v.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(ne.test(r)){let r=n;for(;r<e.length&&re.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 oe(e){let t=ae(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 ${y(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 ${y(t)}`);return i(),e}throw Error(`Unexpected token: ${y(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 ${y(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${y(_)}`);return g}function y(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 se(e,t,n={}){let{strict:r=!1}=n;return!!b(e,t,r)}function b(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return de(e.key,t,n);case`unary`:return ce(e.op,b(e.operand,t,n));case`binary`:return le(e,t,n)}}function ce(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function le(e,t,n){let{op:r}=e;if(r===`&&`)return b(e.left,t,n)&&b(e.right,t,n);if(r===`||`)return b(e.left,t,n)||b(e.right,t,n);let i=b(e.left,t,n),a=b(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 ue(e,t,n){return se(oe(e),t,n)}function de(e,t,n){let{found:r,value:i}=fe(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function fe(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 x(e,t,n){return ue(e,t,n)}var pe=`devframes:hub-ui:hide`,me=`devframes_plugin_terminals`,he=`devframes_plugin_messages`,ge=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),S=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),_e=Object.freeze([ge,S]),C=Object.freeze({showIframeAddressBar:!1,closeOnOutsideClick:!1,autoCollapseEdgeToolbar:!0,showDevframeInspector:!1});function ve(e,t){return e?.[t]??C[t]}var w=new WeakMap;function ye(e){let t=w.get(e);if(!t){let n=o(e.docks.settings);t=r(()=>({...C,...n.value})),w.set(e,t)}return t}var T=`~pinned`,be=-1e5;function E(e,t){return e===T?be:t?.[e]??n[e]??0}function xe(e){return typeof e==`string`?e:e?.light??e?.dark}var Se={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[T]:`Pinned`};function Ce(e){return e!==`~builtin`&&e!==T}function we(e){return Se[e]??e}function Te(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function Ee(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 k(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function De(e,t,n,r){return D(e,t,n,r).flatMap(([,e])=>e)}function O(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(!x(i.when,r))return}else if(i.when===`false`)return}return i}}function Oe(e,t,n,r){return O(e,t.id,n,r)??O(e,t.id,t.defaultChildId,r)}function k(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&&!x(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!x(n.visibility,c)&&!s||n.visibility&&!c&&n.visibility===`false`&&!s||!s&&n.id===`devframes_plugin_inspect`&&!ve(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 ke(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{visible:n,overflow:r}}function Ae(e,t){return e.some(([,e])=>e.some(e=>e.id===t))}function je(e,t,n=null){let r=A(e,t);if(r.overflow.reduce((e,[,t])=>e+t.length,0)===1)return{visible:[...r.visible,...r.overflow],overflow:[],recent:null};if(!n||r.overflow.length===0||Ae(r.visible,n.id))return{...r,recent:null};let i=A(e,Math.max(t-1,0)),a=i.overflow.map(([e,t])=>[e,t.filter(e=>e.id!==n.id)]).filter(([,e])=>e.length>0);return{visible:i.visible,overflow:a,recent:n}}var j=c(null),M=c(null),N=c(null),P=c(null);function Me(e){j.value=e}function Ne(){return j}function F(e){M.value=e}function Pe(){return M}function Fe(e){N.value=e}function Ie(){return N}var I=c(null);function Le(e){I.value=e}function Re(){return I}function L(e){P.value=e}function ze(){return P}var R=c(null);function Be(e){R.value=e}function Ve(){return R}var z=20,B=100,He=320,Ue=240,V=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,H=`__DEVFRAME_CONNECTION_META__`,U=c(null),W=c(!1),G=t(),K,q,J,Y,We=async()=>await i(()=>import(`./DockStandalone-CUnO93Bh.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1]),import.meta.url);G.on(`popup:open-requested`,e=>{nt(e)});function X(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Ge(){K?.(),K=void 0,q?.(),q=void 0}function Ke(e){return s(l,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function qe(){J?.remove(),J=void 0}function Z(){Ge(),qe(),U.value=null,W.value=!1;let e=Y;Y=void 0,e?.docks.switchEntry(null)}function Q(e,t,n){return Math.min(Math.max(e,t),n)}function Je(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Q(Math.round(t.innerWidth/window.innerWidth*100),z,B),e.panel.store.height=Q(Math.round(t.innerHeight/window.innerHeight*100),z,B))}async function Ye(e,t){let n=await We(),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(` | ||
| `),u(t.document,d().value),t.document.head?.appendChild(r),t.document.body.textContent=``,t[H]=globalThis[H]??e.rpc.connectionMeta;let i=t.document.createElement(`div`);i.id=`devframes-popup-root`,t.document.body.appendChild(i);let o=new n({context:e});a(o,d().value.primaryColor),J=o,i.appendChild(o)}function Xe(){return!!X()?.requestWindow}function Ze(e,t){typeof window>`u`||e!==`standalone`&&(window[V]=t)}async function Qe(e,t){if(!(typeof window>`u`)&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[V];return typeof n==`function`?await n(t):void 0}catch{return}}function $e(){return U}function et(){return W}function tt(e){G.emit(`popup:open-requested`,e)}async function nt(e){F(null);let t=U.value;if(t?.closed)Z();else if(t)return t.focus(),t;let n=X();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(He,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(Ue,Math.round(window.innerHeight*e.panel.store.height/100))});await Ye(e,t),q=Ke(t);let i=()=>Je(e,t),a=()=>{U.value===t&&Z()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),K=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},Y=e,U.value=t,W.value=!0,t}catch{return r&&!r.closed&&r.close(),Z(),null}}var $=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform??``);function rt(e){return e.split(`+`).map(e=>e===`Mod`?$?`⌘`:`Ctrl`:e===`Shift`?$?`⇧`:`Shift`:e===`Alt`?$?`⌥`:`Alt`:e)}function it(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 at(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>e.key===r[t]?.key)}function ot(e,t){return e!==void 0&&!at(e,t)}function st(e,t){let n=e=>!e.when||x(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 ct(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 lt={"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{Ee as A,S as B,Ie as C,k as D,ke as E,xe as F,_ as G,he as H,O as I,p as J,g as K,Oe as L,D as M,Te as N,je as O,Ce as P,ye as R,Pe as S,Ne as T,me as U,pe as V,x as W,Fe as _,ot as a,ze as b,Xe as c,Qe as d,$e as f,F as g,Le as h,rt as i,De as j,we as k,Ze as l,L as m,ct as n,$ as o,et as p,ee as q,st as r,it as s,lt as t,tt as u,Be as v,Ve as w,Re as x,Me as y,_e as z}; |
@@ -23,4 +23,4 @@ <!doctype html> | ||
| </style> | ||
| <script type="module" crossorigin src="./assets/index-Bj2-UvZ0.js"></script> | ||
| <link rel="modulepreload" crossorigin href="./assets/docks-DFXStXQt.js"> | ||
| <script type="module" crossorigin src="./assets/index-Cm_XqfDS.js"></script> | ||
| <link rel="modulepreload" crossorigin href="./assets/docks-DZd0ZNrd.js"> | ||
| </head> | ||
@@ -27,0 +27,0 @@ <body> |
+8
-8
| { | ||
| "name": "@devframes/hub-ui", | ||
| "type": "module", | ||
| "version": "0.9.6", | ||
| "version": "0.9.7", | ||
| "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/json-render": "0.9.6", | ||
| "@devframes/hub": "0.9.6", | ||
| "devframe": "0.9.6" | ||
| "@devframes/json-render": "0.9.7", | ||
| "@devframes/hub": "0.9.7", | ||
| "devframe": "0.9.7" | ||
| }, | ||
@@ -60,6 +60,6 @@ "peerDependenciesMeta": { | ||
| "vue": "^3.5.41", | ||
| "@devframes/hub": "0.9.6", | ||
| "@devframes/json-render": "0.9.6", | ||
| "@devframes/plugin-git": "0.9.6", | ||
| "devframe": "0.9.6" | ||
| "@devframes/hub": "0.9.7", | ||
| "@devframes/plugin-git": "0.9.7", | ||
| "@devframes/json-render": "0.9.7", | ||
| "devframe": "0.9.7" | ||
| }, | ||
@@ -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 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}; |
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
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.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
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.
1172851
0.29%19077
0.44%