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