@devframes/plugin-og--assets 0.9.20 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -5,5 +5,5 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en
|
|
|
5
5
|
`)}\n})`}var Su={class:`border border-base rounded-lg overflow-hidden bg-base`},Cu={class:`flex items-center gap-2 border-b border-base bg-secondary px3 py2`},wu={class:`ml-auto color-muted font-mono text-xs tabular-nums`},Tu={key:0,class:`divide-y divide-base`},Eu=[`href`],Du={key:1,class:`min-w-0 truncate color-muted font-mono text-xs`},Ou=[`href`],ku={key:3,class:`min-w-0 break-words color-base text-xs`},Au={key:1,class:`px4 py8 text-center color-muted text-sm`},ju=V({__name:`MetadataTable`,props:{tags:{}},setup(e){let t=new Map(vu.map(e=>[e.name,e.docs]));function n(e){return/^https?:\/\//i.test(e)}return(r,i)=>(G(),K(`section`,Su,[J(`header`,Cu,[i[0]||=J(`span`,{class:`i-ph-tag-duotone color-active`},null,-1),i[1]||=J(`h2`,{class:`m0 text-sm font-semibold`},` Head metadata `,-1),J(`span`,wu,M(e.tags.length),1)]),e.tags.length?(G(),K(`div`,Tu,[(G(!0),K(U,null,la(e.tags,(e,r)=>(G(),K(`div`,{key:`${e.tag}:${e.name}:${r}`,class:`grid grid-cols-[minmax(8rem,0.35fr)_1fr] items-start gap-3 px3 py2 hover:bg-active`},[R(t).get(e.name)?(G(),K(`a`,{key:0,href:R(t).get(e.name),target:`_blank`,rel:`noreferrer`,class:`min-w-0 truncate color-muted font-mono text-xs hover:color-active`},M(e.name),9,Eu)):(G(),K(`span`,Du,M(e.name),1)),n(e.value)?(G(),K(`a`,{key:2,href:e.value,target:`_blank`,rel:`noreferrer`,class:`min-w-0 break-all color-base font-mono text-xs hover:color-active`},M(e.value),9,Ou)):(G(),K(`span`,ku,M(e.value),1))]))),128))])):(G(),K(`div`,Au,` No supported head metadata was found. `))]))}}),Mu=V({__name:`FeedbackSpinner`,props:{size:{default:`1em`}},setup(e){let t=e,n=Z(()=>typeof t.size==`number`?`${t.size}px`:t.size);return(e,t)=>(G(),K(`span`,{class:`border-2 border-current border-t-transparent rounded-full inline-block animate-spin`,style:pe({width:n.value,height:n.value}),role:`status`,"aria-label":`Loading`},null,4))}}),Nu=V({__name:`ActionButton`,props:{as:{},to:{},href:{},icon:{},variant:{default:`action`},size:{default:`md`},loading:{type:Boolean},disabled:{type:Boolean}},setup(e){let t=e,n=Z(()=>t.as?t.as:t.href!=null||t.to!=null?`a`:`button`),r=Z(()=>n.value===`a`),i=Z(()=>n.value===`button`),a=Z(()=>t.size===`sm`),o=Z(()=>t.variant===`primary`?a.value?`btn-primary text-sm`:`btn-primary`:t.variant===`text`?a.value?`btn-text text-sm`:`btn-text`:a.value?`btn-action-sm`:`btn-action`),s=Z(()=>t.disabled||t.loading);return(t,a)=>(G(),q(aa(n.value),{class:j([o.value,{"pointer-events-none op-mute":s.value&&!i.value}]),href:r.value?e.href??e.to:void 0,to:e.as&&e.to!=null?e.to:void 0,disabled:i.value?s.value:void 0,"aria-disabled":s.value||void 0,"aria-busy":e.loading||void 0},{default:B(()=>[e.loading?(G(),q(Mu,{key:0,size:`1em`})):e.icon?(G(),K(`span`,{key:1,class:j(e.icon),"aria-hidden":`true`},null,2)):bs(``,!0),da(t.$slots,`default`)]),_:3},8,[`class`,`href`,`to`,`disabled`,`aria-disabled`,`aria-busy`]))}});function Pu(e){return typeof e==`string`?`'${e}'`:new Ru().serialize(e)}var Fu=` _-,;:!?.'"()[]{}@*/\\&#%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,Iu=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[Fu.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function Lu(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&&Iu[n]?Iu[n]:n+128,s=a<128&&Iu[a]?Iu[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 Ru=(function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?Lu(e,t):n===`number`&&r===`number`?e-t:Lu(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(Lu),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})(),zu=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],Bu=[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],Vu=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,Hu=[],Uu=class{_data=new Wu;_hash=new Wu([...zu]);_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)Hu[n]=e[t+n]|0;else{let e=Hu[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=Hu[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;Hu[n]=t+Hu[n-7]+i+Hu[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+Bu[n]+Hu[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=Wu.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 Wu(t,i)}},Wu=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(Vu.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 Gu(e){return new Uu().finalize(e).toBase64()}function Ku(e){return Gu(Pu(e))}function qu(e,t){let n=typeof e==`string`&&!t?`${e}Context`:t,r=Symbol(n);return[t=>{let n=mr(r,t);if(n||n===null)return n;throw Error(`Injection \`${r.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`)},e=>(pr(r,e),e)]}function Ju(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function Yu(e,t){return Me()?(Ne(e,t),!0):!1}var Xu=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Zu=e=>e!==void 0,Qu=Xu?window:void 0;Xu&&window.document,Xu&&window.navigator,Xu&&window.location;function $u(e){let t=un(e);return t?.$el??t}function ed(){let e=on(!1),t=X();return t&&Ki(()=>{e.value=!0},t),e}function td(e){let t=ed();return Z(()=>(t.value,!!e()))}function nd(e){return JSON.parse(JSON.stringify(e))}function rd(e,t,n={}){let{window:r=Qu,...i}=n,a,o=td(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=xr(Z(()=>{let t=un(e);return Array.isArray(t)?t.map(e=>$u(e)):[$u(t)]}),e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return Yu(l),{isSupported:o,stop:l}}function id(e,t,n,r={}){var i,a;let{clone:o=!1,passive:s=!1,eventName:c,deep:l=!1,defaultValue:u,shouldEmit:d}=r,f=X(),p=n||f?.emit||(f==null||(i=f.$emit)==null?void 0:i.bind(f))||(f==null||(a=f.proxy)==null||(a=a.$emit)==null?void 0:a.bind(f?.proxy)),m=c;t||=`modelValue`,m||=`update:${t.toString()}`;let h=e=>o?typeof o==`function`?o(e):nd(e):e,g=()=>Zu(e[t])?h(e[t]):u,_=e=>{d?d(e)&&p(m,e):p(m,e)};if(s){let n=L(g()),r=!1;return xr(()=>e[t],e=>{r||(r=!0,n.value=h(e),Jn(()=>r=!1))}),xr(n,n=>{!r&&(n!==e[t]||l)&&_(n)},{deep:l}),n}return Z({get(){return g()},set(e){_(e)}})}function ad(e){return e?e.flatMap(e=>e.type===U?ad(e.children):[e]):[]}var[od,sd]=qu(`ConfigProvider`);function cd(e){let t=od({dir:L(`ltr`)});return Z(()=>e?.value||t.dir?.value||`ltr`)}function ld(){let e=X(),t=L(),n=Z(()=>r());Ji(()=>{n.value!==r()&&ln(t)});function r(){return t.value&&`$el`in t.value&&[`#text`,`#comment`].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:$u(t)}let i=Object.assign({},e.exposed),a={};for(let t in e.props)Object.defineProperty(a,t,{enumerable:!0,configurable:!0,get:()=>e.props[t]});if(Object.keys(i).length>0)for(let e in i)Object.defineProperty(a,e,{enumerable:!0,configurable:!0,get:()=>i[e]});Object.defineProperty(a,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=a;function o(n){if(t.value=n,n&&(Object.defineProperty(a,"$el",{enumerable:!0,configurable:!0,get:()=>n instanceof Element?n:n.$el}),!(n instanceof Element)&&!Object.hasOwn(n,`$el`))){let t=n.$.exposed,r=Object.assign({},a);for(let e in t)Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>t[e]});e.exposed=r}}return{forwardRef:o,currentRef:t,currentElement:n}}var ud=0;function dd(e,t=`reka`){if(e)return e;let n,r=od({useId:void 0});return n=r.useId?r.useId():`useId`in gu?ei?.():`${++ud}`,t?`${t}-${n}`:n}function fd(e,t){let n=L(e);function r(e){return t[n.value][e]??n.value}return{state:n,dispatch:e=>{n.value=r(e)}}}function pd(e,t){let n=L({}),r=L(`none`),i=L(e),a=e.value?`mounted`:`unmounted`,o,s=t.value?.ownerDocument.defaultView??Qu,{state:c,dispatch:l}=fd(a,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),u=e=>{if(Xu){let n=new CustomEvent(e,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(n)}};xr(e,async(e,i)=>{let a=i!==e;if(await Jn(),a){let a=r.value,o=md(t.value);e?(l(`MOUNT`),u(`enter`),o===`none`&&u(`after-enter`)):o===`none`||o===`undefined`||n.value?.display===`none`?(l(`UNMOUNT`),u(`leave`),u(`after-leave`)):i&&a!==o?(l(`ANIMATION_OUT`),u(`leave`)):(l(`UNMOUNT`),u(`after-leave`))}},{immediate:!0});let d=e=>{if(e.target!==t.value)return;let n=md(t.value),r=n.includes(CSS.escape(e.animationName)),a=c.value===`mounted`?`enter`:`leave`;if(r&&(u(`after-${a}`),l(`ANIMATION_END`),!i.value)){let e=t.value.style.animationFillMode;t.value.style.animationFillMode=`forwards`,o=s?.setTimeout(()=>{t.value?.style.animationFillMode===`forwards`&&(t.value.style.animationFillMode=e)})}n===`none`&&l(`ANIMATION_END`)},f=e=>{e.target===t.value&&(r.value=md(t.value))},p=xr(t,(e,t)=>{e?(n.value=getComputedStyle(e),e.addEventListener(`animationstart`,f),e.addEventListener(`animationcancel`,d),e.addEventListener(`animationend`,d)):(l(`ANIMATION_END`),o!==void 0&&s?.clearTimeout(o),t?.removeEventListener(`animationstart`,f),t?.removeEventListener(`animationcancel`,d),t?.removeEventListener(`animationend`,d))},{immediate:!0}),m=xr(c,()=>{let e=md(t.value);r.value=c.value===`mounted`?e:`none`});return Xi(()=>{p(),m(),t.value&&(t.value.removeEventListener(`animationstart`,f),t.value.removeEventListener(`animationcancel`,d),t.value.removeEventListener(`animationend`,d)),o!==void 0&&s?.clearTimeout(o)}),{isPresent:Z(()=>[`mounted`,`unmountSuspended`].includes(c.value))}}function md(e){return e&&getComputedStyle(e).animationName||`none`}var hd=V({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){let{present:r,forceMount:i}=hn(e),a=L(),{isPresent:o}=pd(r,a);n({present:o});let s=t.default({present:o.value});s=ad(s||[]);let c=X();if(s&&s?.length>1){let e=c?.parent?.type.name?`<${c.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
|
|
6
6
|
`)].join(`
|
|
7
7
|
`))}return()=>i.value||r.value||o.value?Ys(t.default({present:o.value})[0],{ref:e=>{let t=$u(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),gd=V({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=ad(n.default()),r=e.findIndex(e=>e.type!==W);if(r===-1)return e;let i=e[r];delete i.props?.ref;let a=i.props?ws(t,i.props):t,o=_s({...i,props:{}},a);return e.length===1?o:(e[r]=o,e)}}}),_d=[`area`,`img`,`input`],vd=V({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(e,{attrs:t,slots:n}){let r=e.asChild?`template`:e.as;return typeof r==`string`&&_d.includes(r)?()=>Ys(r,t):r===`template`?()=>Ys(gd,t,{default:n.default}):()=>Ys(e.as,t,{default:n.default})}});function yd(){let e=L();return{primitiveElement:e,currentElement:Z(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:$u(e))}}var bd=`data-reka-collection-item`;function xd(e={}){let{key:t=``,isProvider:n=!1}=e,r=`${t}CollectionProvider`,i;n?(i={collectionRef:L(),itemMap:L(new Map)},pr(r,i)):i=mr(r);let a=(e=!1)=>{let t=i.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${bd}]`)),r=new Map(n.map((e,t)=>[e,t])),a=Array.from(i.itemMap.value.values()).sort((e,t)=>(r.get(e.ref)??-1)-(r.get(t.ref)??-1));return e?a:a.filter(e=>e.ref.dataset.disabled!==``)},o=V({name:`CollectionSlot`,inheritAttrs:!1,setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=yd();return xr(a,()=>{i.collectionRef.value=a.value}),()=>Ys(gd,{ref:r,...n},t)}}),s=V({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=yd();return vr(t=>{if(a.value){let n=nn(a.value);i.itemMap.value.set(n,{ref:a.value,value:e.value}),t(()=>i.itemMap.value.delete(n))}}),()=>Ys(gd,{...n,[bd]:``,ref:r},t)}});return{getItems:a,reactiveItems:Z(()=>Array.from(i.itemMap.value.values())),itemMapSize:Z(()=>i.itemMap.value.size),CollectionSlot:o,CollectionItem:s}}var Sd=`rovingFocusGroup.onEntryFocus`,Cd={bubbles:!1,cancelable:!0},wd={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Td(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Ed(e,t,n){let r=Td(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return wd[r]}function Dd(e,t=!1){let n=Ju();for(let r of e)if(r===n||(r.focus({preventScroll:t}),Ju()!==n))return}function Od(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[kd,Ad]=qu(`RovingFocusGroup`),jd=V({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:t,emit:n}){let r=e,i=n,{loop:a,orientation:o,dir:s}=hn(r),c=cd(s),l=id(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=L(!1),d=L(!1),f=L(0),{getItems:p,CollectionSlot:m}=xd({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(Sd,Cd);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);Dd([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===l.value),...e].filter(Boolean),r.preventScrollOnEntryFocus)}}d.value=!1}function g(){setTimeout(()=>{d.value=!1},1)}return t({getItems:p}),Ad({loop:a,dir:c,orientation:o,currentTabStopId:l,onItemFocus:e=>{l.value=e},onItemShiftTab:()=>{u.value=!0},onFocusableItemAdd:()=>{f.value++},onFocusableItemRemove:()=>{f.value--}}),(e,t)=>(G(),q(R(m),null,{default:B(()=>[Y(R(vd),{tabindex:u.value||f.value===0?-1:0,"data-orientation":R(o),as:e.as,"as-child":e.asChild,dir:R(c),style:{outline:`none`},onMousedown:t[0]||=e=>d.value=!0,onMouseup:g,onFocus:h,onBlur:t[1]||=e=>u.value=!1},{default:B(()=>[da(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),Md=V({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=kd(),r=dd(),i=Z(()=>t.tabStopId||r),a=Z(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=xd();Ki(()=>{t.focusable&&n.onFocusableItemAdd()}),Xi(()=>{t.focusable&&n.onFocusableItemRemove()}),xr(()=>t.focusable,(e,t)=>{e!==t&&(e?n.onFocusableItemAdd():n.onFocusableItemRemove())});function c(e){if(e.key===`Tab`&&e.shiftKey){n.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let r=Ed(e,n.orientation.value,n.dir.value);if(r!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!t.allowShiftKey&&e.shiftKey)return;e.preventDefault();let i=[...o().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(r===`last`)i.reverse();else if(r===`prev`||r===`next`){r===`prev`&&i.reverse();let t=i.indexOf(e.currentTarget);i=n.loop.value?Od(i,t+1):i.slice(t+1)}Jn(()=>Dd(i))}}return(e,t)=>(G(),q(R(s),null,{default:B(()=>[Y(R(vd),{tabindex:a.value?0:-1,"data-orientation":R(n).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?R(n).onItemFocus(i.value):t.preventDefault()},onFocus:t[1]||=e=>R(n).onItemFocus(i.value),onKeydown:c},{default:B(()=>[da(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),[Nd,Pd]=qu(`TabsRoot`),Fd=V({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{orientation:i,unmountOnHide:a,dir:o}=hn(n),s=cd(o);ld();let c=id(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=L(),u=on(new Set);return Pd({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:dd(void 0,`reka-tabs`),tabsList:l,contentIds:u,registerContent:e=>{u.value=new Set([...u.value,e])},unregisterContent:e=>{let t=new Set(u.value);t.delete(e),u.value=t}}),(e,t)=>(G(),q(R(vd),{dir:R(s),"data-orientation":R(i),"as-child":e.asChild,as:e.as},{default:B(()=>[da(e.$slots,`default`,{modelValue:R(c)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function Id(e,t){return`${e}-trigger-${t}`}function Ld(e,t){return`${e}-content-${t}`}var Rd=V({__name:`TabsContent`,props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=ld(),r=Nd(),i=Z(()=>Id(r.baseId,t.value)),a=Z(()=>Ld(r.baseId,t.value)),o=Z(()=>t.value===r.modelValue.value),s=L(o.value);return Ki(()=>{r.registerContent(t.value),requestAnimationFrame(()=>{s.value=!1})}),Yi(()=>{r.unregisterContent(t.value)}),(e,t)=>(G(),q(R(hd),{present:e.forceMount||o.value,"force-mount":``},{default:B(({present:t})=>[Y(R(vd),{id:a.value,ref:R(n),"as-child":e.asChild,as:e.as,role:`tabpanel`,"data-state":o.value?`active`:`inactive`,"data-orientation":R(r).orientation.value,"aria-labelledby":i.value,hidden:!t,tabindex:`0`,style:pe({animationDuration:s.value?`0s`:void 0})},{default:B(()=>[!R(r).unmountOnHide.value||t?da(e.$slots,`default`,{key:0}):bs(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),zd=V({__name:`TabsIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:t}){let n=e,r=Nd();t({updateIndicatorStyle:s}),ld();let i=ed(),a=L({size:null,thickness:null,position:null}),o=L([]);xr(()=>[r.modelValue.value,r?.dir.value],()=>{s()},{immediate:!0,flush:`post`}),yr(()=>{o.value=Array.from(r.tabsList.value?.querySelectorAll(`[role="tab"]`)||[])}),rd(Z(()=>[r.tabsList.value,...o.value]),s);function s(){let e=r.tabsList.value?.querySelector(`[role="tab"][data-state="active"]`);e&&(r.orientation.value===`horizontal`?a.value={size:e.offsetWidth,thickness:e.offsetHeight,position:e.offsetLeft}:a.value={size:e.offsetHeight,thickness:e.offsetWidth,position:e.offsetTop})}return(e,t)=>R(i)&&typeof a.value.size==`number`?(G(),q(R(vd),ws({key:0},n,{style:{"--reka-tabs-indicator-size":`${a.value.size}px`,"--reka-tabs-indicator-thickness":`${a.value.thickness}px`,"--reka-tabs-indicator-position":`${a.value.position}px`}}),{default:B(()=>[da(e.$slots,`default`)]),_:3},16,[`style`])):bs(`v-if`,!0)}}),Bd=V({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=hn(e),{forwardRef:n,currentElement:r}=ld(),i=Nd();return i.tabsList=r,(e,r)=>(G(),q(R(jd),{"as-child":``,orientation:R(i).orientation.value,dir:R(i).dir.value,loop:R(t)},{default:B(()=>[Y(R(vd),{ref:R(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":R(i).orientation.value},{default:B(()=>[da(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),Vd=V({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n}=ld(),r=Nd(),i=Z(()=>Id(r.baseId,t.value)),a=Z(()=>r.contentIds.value.has(t.value)?Ld(r.baseId,t.value):void 0),o=Z(()=>t.value===r.modelValue.value);return(e,t)=>(G(),q(R(Md),{"as-child":``,focusable:!e.disabled,active:o.value},{default:B(()=>[Y(R(vd),{id:i.value,ref:R(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":o.value?`true`:`false`,"aria-controls":a.value,"data-state":o.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":R(r).orientation.value,onMousedown:t[0]||=eu(t=>{!e.disabled&&t.ctrlKey===!1?R(r).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=nu(t=>R(r).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=R(r).activationMode!==`manual`;!o.value&&!e.disabled&&t&&R(r).changeModelValue(e.value)}},{default:B(()=>[da(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),Hd={key:1,class:`text-micro font-mono px-1.5 rounded-full bg-active inline-flex h-5 min-w-5 items-center justify-center tabular-nums`},Ud=V({__name:`LayoutTabs`,props:ja({tabs:{},variant:{default:`underline`},lazy:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=$a(e,`modelValue`);return(n,r)=>(G(),q(R(Fd),{modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e,class:j(e.variant===`segment`?``:`border-b border-base`)},{default:B(()=>[Y(R(Bd),{class:j([`flex items-center relative`,e.variant===`segment`?`gap-1 p-1 rounded-lg bg-sunken w-max`:`gap-1`])},{default:B(()=>[(G(!0),K(U,null,la(e.tabs,t=>(G(),q(R(Vd),{key:t.value,value:t.value,as:t.href?`a`:`button`,href:t.href,disabled:t.disabled,class:j([`text-sm color-muted outline-none flex gap-1.5 transition items-center relative disabled:op50 focus-visible:ring-2 focus-visible:ring-primary-500/40`,e.variant===`segment`?`px-3 py-1 rounded-md data-[state=active]:bg-raised data-[state=active]:color-base data-[state=active]:shadow-sm`:`px-3 py-2 -mb-px border-b-2 border-transparent hover:color-base data-[state=active]:color-active data-[state=active]:border-primary-500 dark:data-[state=active]:border-primary-400`])},{default:B(()=>[t.icon?(G(),K(`span`,{key:0,class:j(t.icon),"aria-hidden":`true`},null,2)):bs(``,!0),vs(` `+M(t.label??t.value)+` `,1),t.count==null?bs(``,!0):(G(),K(`span`,Hd,M(t.count),1))]),_:2},1032,[`value`,`as`,`href`,`disabled`,`class`]))),128)),e.variant===`underline`?(G(),q(R(zd),{key:0,class:`rounded-full bg-primary-500 h-0.5 w-[--reka-tabs-indicator-size] translate-x-[--reka-tabs-indicator-position] transition-all duration-200 bottom-0 left-0 absolute`})):bs(``,!0)]),_:1},8,[`class`]),da(n.$slots,`default`),(G(!0),K(U,null,la(e.tabs,t=>(G(),K(U,{key:`panel-${t.value}`},[n.$slots[t.value]?(G(),q(R(Rd),{key:0,value:t.value,"force-mount":!e.lazy||void 0,class:`py-3 outline-none focus-visible:ring-2 focus-visible:ring-primary-500/40`},{default:B(()=>[da(n.$slots,t.value)]),_:2},1032,[`value`,`force-mount`])):bs(``,!0)],64))),128))]),_:3},8,[`modelValue`,`class`]))}}),Wd={key:0,class:`border border-base rounded-lg overflow-hidden bg-base`},Gd={class:`flex flex-wrap items-center gap-2 border-b border-base bg-secondary px3 py2`},Kd={class:`color-muted text-xs`},qd={key:0,class:`divide-y divide-base`},Jd=[`href`],Yd={key:1,class:`font-mono text-xs color-active`},Xd={class:`color-muted text-xs`},Zd={class:`justify-self-start rounded bg-secondary px1.5 py0.5 color-muted text-2.5 md:justify-self-end`},Qd={key:1,class:`relative p3`},$d={class:`m0 overflow-auto rounded bg-secondary p3 color-base font-mono text-xs leading-relaxed`},ef=V({__name:`MissingTags`,props:{tags:{}},setup(e){let t=e,n=on(`missing`),r=on(!1),i=[{value:`missing`,label:`Missing tags`},{value:`snippet`,label:`Nuxt snippet`}],a=Z(()=>vu.filter(e=>!t.tags.some(t=>t.name===e.name))),o=Z(()=>xu(a.value));async function s(){await navigator.clipboard.writeText(o.value),r.value=!0,window.setTimeout(()=>r.value=!1,1500)}return(e,t)=>a.value.length?(G(),K(`section`,Wd,[J(`header`,Gd,[t[1]||=J(`span`,{class:`i-ph-warning-duotone color-warning`},null,-1),t[2]||=J(`h2`,{class:`m0 text-sm font-semibold`},` Suggestions `,-1),J(`span`,Kd,M(a.value.length)+` missing`,1),Y(Ud,{modelValue:n.value,"onUpdate:modelValue":t[0]||=e=>n.value=e,tabs:i,variant:`segment`,class:`ml-auto`},null,8,[`modelValue`])]),n.value===`missing`?(G(),K(`div`,qd,[(G(!0),K(U,null,la(a.value,e=>(G(),K(`div`,{key:e.name,class:`grid gap-1 px3 py2 md:grid-cols-[9rem_1fr_auto] md:items-center`},[e.docs?(G(),K(`a`,{key:0,href:e.docs,target:`_blank`,rel:`noreferrer`,class:`font-mono text-xs color-active`},M(e.name),9,Jd)):(G(),K(`span`,Yd,M(e.name),1)),J(`span`,Xd,M(e.description),1),J(`span`,Zd,M(e.suggestion),1)]))),128))])):(G(),K(`div`,Qd,[J(`pre`,$d,[J(`code`,null,M(o.value),1)]),Y(Nu,{class:`absolute right5 top5`,size:`sm`,icon:r.value?`i-ph-check-duotone`:`i-ph-copy-duotone`,onClick:s},{default:B(()=>[vs(M(r.value?`Copied`:`Copy`),1)]),_:1},8,[`icon`])]))])):bs(``,!0)}}),tf=[`src`,`alt`],nf=V({__name:`PreviewImage`,props:{src:{},alt:{},class:{}},setup(e){let t=e,n=on(!1);return xr(()=>t.src,()=>n.value=!1),(t,r)=>e.src&&!n.value?(G(),K(`img`,{key:0,src:e.src,alt:e.alt,class:j([t.$props.class,`block bg-secondary object-cover img-outline`]),onError:r[0]||=e=>n.value=!0},null,42,tf)):(G(),K(`div`,{key:1,class:j([t.$props.class,`flex items-center justify-center bg-secondary color-faint img-outline`])},[...r[1]||=[J(`span`,{class:`i-ph-image-broken-duotone text-2xl`},null,-1)]],2))}}),rf={class:`w-full max-w-125 bg-base`},af={class:`border border-t-0 border-base bg-secondary px3 py2.5`},of={class:`truncate color-muted text-xs uppercase`},sf={class:`my1 truncate text-base font-semibold`},cf={class:`m0 truncate color-muted text-sm`},lf=V({__name:`FacebookPreview`,props:{card:{}},setup(e){return(t,n)=>(G(),K(`article`,rf,[Y(nf,{src:e.card.image,alt:e.card.imageAlt,class:`aspect-1.91/1 w-full`},null,8,[`src`,`alt`]),J(`div`,af,[J(`div`,of,M(e.card.hostname),1),J(`h3`,sf,M(e.card.title||`Untitled page`),1),J(`p`,cf,M(e.card.description||`No description provided.`),1)])]))}}),uf={class:`w-full max-w-125 overflow-hidden border border-base rounded-sm bg-base shadow-sm`},df={class:`p3`},ff={class:`m0 truncate text-base font-semibold`},pf={class:`mt1 truncate color-muted text-xs`},mf=V({__name:`LinkedinPreview`,props:{card:{}},setup(e){return(t,n)=>(G(),K(`article`,uf,[Y(nf,{src:e.card.image,alt:e.card.imageAlt,class:`aspect-1.91/1 w-full`},null,8,[`src`,`alt`]),J(`div`,df,[J(`h3`,ff,M(e.card.title||`Untitled page`),1),J(`div`,pf,M(e.card.hostname),1)])]))}}),hf={class:`w-full max-w-105 border border-base rounded-4 rounded-bl-sm bg-base p3 shadow-sm`},gf=[`href`],_f={class:`mt2 grid grid-cols-[2px_1fr] gap-2`},vf={class:`min-w-0`},yf={class:`color-active text-sm font-semibold`},bf={class:`my1 text-sm font-semibold`},xf={class:`m0 color-muted text-sm`},Sf={class:`mt1 text-right color-faint font-mono text-2.5 tabular-nums`},Cf=V({__name:`TelegramPreview`,props:{card:{}},setup(e){let t=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(new Date);return(n,r)=>(G(),K(`article`,hf,[J(`a`,{href:e.card.url,target:`_blank`,rel:`noreferrer`,class:`block truncate color-active text-sm underline`},M(e.card.url),9,gf),J(`div`,_f,[r[0]||=J(`div`,{class:`rounded bg-primary op70`},null,-1),J(`div`,vf,[Y(nf,{src:e.card.image,alt:e.card.imageAlt,class:`mb2 aspect-1.91/1 w-full rounded`},null,8,[`src`,`alt`]),J(`div`,yf,M(e.card.hostname),1),J(`h3`,bf,M(e.card.title||`Untitled page`),1),J(`p`,xf,M(e.card.description||`No description provided.`),1)])]),J(`div`,Sf,M(R(t)),1)]))}}),wf={key:0,class:`w-full max-w-110 overflow-hidden border border-base rounded-4 bg-base`},Tf={class:`p3`},Ef={class:`truncate color-muted text-xs lowercase`},Df={class:`my1 truncate text-sm font-semibold`},Of={class:`m0 line-clamp-2 color-muted text-sm`},kf={key:1,class:`w-full max-w-110 flex overflow-hidden border border-base rounded-4 bg-base`},Af={class:`min-w-0 flex flex-col justify-center p3`},jf={class:`truncate color-muted text-xs lowercase`},Mf={class:`my1 truncate text-sm font-semibold`},Nf={class:`m0 line-clamp-2 color-muted text-sm`},Pf=V({__name:`TwitterPreview`,props:{card:{}},setup(e){return(t,n)=>e.card.twitterCard===`summary`?(G(),K(`article`,kf,[Y(nf,{src:e.card.image,alt:e.card.imageAlt,class:`aspect-square w-32 shrink-0`},null,8,[`src`,`alt`]),J(`div`,Af,[J(`div`,jf,M(e.card.hostname),1),J(`h3`,Mf,M(e.card.title||`Untitled page`),1),J(`p`,Nf,M(e.card.description||`No description provided.`),1)])])):(G(),K(`article`,wf,[Y(nf,{src:e.card.image,alt:e.card.imageAlt,class:`aspect-2/1 w-full`},null,8,[`src`,`alt`]),J(`div`,Tf,[J(`div`,Ef,M(e.card.hostname),1),J(`h3`,Df,M(e.card.title||`Untitled page`),1),J(`p`,Of,M(e.card.description||`No description provided.`),1)])]))}}),Ff={class:`h-full min-h-100 flex flex-col border border-base rounded-lg overflow-hidden bg-base`},If={class:`flex flex-wrap items-center gap-2 border-b border-base bg-secondary px3 py2`},Lf={class:`preview-grid flex flex-1 items-center justify-center overflow-auto p5`},Rf=V({__name:`SocialPreview`,props:{snapshot:{}},setup(e){let t=e,n=on(`twitter`),r=Z(()=>bu(t.snapshot,n.value===`twitter`)),i=[{value:`twitter`,label:`Twitter`},{value:`facebook`,label:`Facebook`},{value:`linkedin`,label:`LinkedIn`},{value:`telegram`,label:`Telegram`}];return(e,t)=>(G(),K(`section`,Ff,[J(`header`,If,[t[1]||=J(`span`,{class:`i-ph-share-network-duotone color-active`},null,-1),t[2]||=J(`h2`,{class:`m0 text-sm font-semibold`},` Social preview `,-1),Y(Ud,{modelValue:n.value,"onUpdate:modelValue":t[0]||=e=>n.value=e,tabs:i,variant:`segment`,class:`ml-auto`},null,8,[`modelValue`])]),J(`div`,Lf,[n.value===`twitter`?(G(),q(Pf,{key:0,card:r.value},null,8,[`card`])):n.value===`facebook`?(G(),q(lf,{key:1,card:r.value},null,8,[`card`])):n.value===`linkedin`?(G(),q(mf,{key:2,card:r.value},null,8,[`card`])):(G(),q(Cf,{key:3,card:r.value},null,8,[`card`]))])]))}}),zf={key:0,class:`flex-1 min-w-0`},Bf={key:1,class:`flex gap-1 items-center`},Vf=V({__name:`LayoutToolbar`,props:{sticky:{type:Boolean,default:!0},glass:{type:Boolean,default:!0}},setup(e){return(t,n)=>(G(),K(`div`,{class:j([`px-3 py-2 border-b border-base flex gap-3 items-center`,[e.sticky?`sticky top-0 z-nav`:``,e.glass?`bg-glass`:`bg-base`]])},[da(t.$slots,`start`,{},()=>[da(t.$slots,`default`)]),t.$slots.search?(G(),K(`div`,zf,[da(t.$slots,`search`)])):bs(``,!0),t.$slots.end?(G(),K(`div`,Bf,[da(t.$slots,`end`)])):bs(``,!0)],2))}}),Hf={class:`flex items-center gap-1.5 shrink-0 font-semibold text-sm select-none`},Uf={key:0,class:`rounded bg-secondary px1.5 py0.5 color-muted text-2.5 font-normal`},Wf={class:`min-w-0 flex flex-1 items-center gap-2 border border-base rounded px3 py1.5 focus-within:border-active`},Gf=[`disabled`],Kf=V({__name:`ViewerToolbar`,props:ja({loading:{type:Boolean},isStatic:{type:Boolean}},{target:{required:!0},targetModifiers:{}}),emits:ja([`inspect`],[`update:target`]),setup(e,{emit:t}){let n=t,r=$a(e,`target`);return(t,i)=>(G(),q(Vf,{glass:!1,class:`h-nav`},{search:B(()=>[J(`form`,{class:`mx-auto w-full max-w-3xl flex items-center gap-2`,onSubmit:i[1]||=eu(e=>n(`inspect`),[`prevent`])},[J(`label`,Wf,[i[4]||=J(`span`,{class:`i-ph-globe-hemisphere-west-duotone color-muted shrink-0`},null,-1),dr(J(`input`,{"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`min-w-0 flex-1 bg-transparent color-base font-mono text-xs outline-none`,inputmode:`url`,placeholder:`http://localhost:3000`,spellcheck:`false`,"aria-label":`Page URL`,disabled:e.isStatic},null,8,Gf),[[zl,r.value]])]),Y(Nu,{variant:`primary`,loading:e.loading,disabled:e.isStatic,icon:`i-ph-magnifying-glass-duotone`,type:`submit`},{default:B(()=>[...i[5]||=[vs(` Inspect `,-1)]]),_:1},8,[`loading`,`disabled`])],32)]),default:B(()=>[J(`div`,Hf,[i[2]||=J(`span`,{class:`i-ph-image-square-duotone text-base color-active`},null,-1),i[3]||=J(`span`,null,`Open Graph`,-1),e.isStatic?(G(),K(`span`,Uf,`static`)):bs(``,!0)])]),_:1}))}}),Q={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`},inPageChannel:{panelStateUpdated:`devframe:in-page:panel-state:updated`,panelStatePatch:`devframe:in-page:panel-state:patch`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`,inPageChannel:`devframe:in-page-channel`}},qf=`__connection.json`,Jf=`__DEVFRAME_CONNECTION__`,Yf=`x-birpc-session`,Xf=`__rpc-dump/index.json`,Zf=`devframe:services`,Qf=`devframe_otp`,$f=`devframe_auth_token`;Q.postMessage.remoteAssetsError;function ep(e){return Ku(e)}var tp=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>ep(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()}};function np(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 rp={blue:np(34,39),cyan:np(36,39),gray:np(90,39),green:np(32,39),red:np(31,39),yellow:np(33,39),bold:np(1,22),dim:np(2,22),reset:np(0,0),underline:np(4,24)};function ip(e,...t){return typeof e==`function`?e(...t):e}var ap=Error.captureStackTrace,op=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,ap?.(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 sp(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function cp(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||sp(r,i),s=(e={},n={})=>{let r=new op({code:i,why:ip(a.why,e),fix:ip(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 lp(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(`
|
|
8
|
-
`)}}var up=lp(rp);function dp(e,{method:t=`warn`}={}){console[t](up(e))}function fp(e){return cp({...e,reporters:[dp,...e.reporters??[]]})}var pp=fp({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is \`false\`; MCP requires JSON-serializable data.`,fix:"Remove `jsonSerializable: false`, 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."}}});function mp(e){if(e.agent&&e.jsonSerializable===!1)throw pp.DF0019({name:e.name});e.agent&&!e.jsonSerializable&&(e.jsonSerializable=!0)}async function hp(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function gp(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 _p(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 hp(i,n[r]);if(a.issues)throw pp.DF0043({name:e,index:r,issues:gp(a.issues)})}return r}async function vp(e,t,n){if(!t)return n;let r=await hp(t,n);if(r.issues)throw pp.DF0044({name:e,issues:gp(r.issues)});return n}async function yp(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 bp(e,t){let n=e.handler;if(!n){let r=await yp(e,t);if(!r.handler)throw pp.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 _p(e.name,r,t),o=await a(...n);return await vp(e.name,i,o)}}var xp=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 bp(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 pp.DF0021({name:e.name});mp(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 pp.DF0022({name:e.name});mp(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 bp(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw pp.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 Sp(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 wp(t,`undefined`,r,e);return n}return i!==null&&Cp(i,r,e,t),n})}function Cp(e,t,n,r){if(typeof e==`bigint`)throw wp(r,`BigInt`,t,n);if(typeof e!=`object`)return;if(e instanceof Map)throw wp(r,`Map`,t,n);if(e instanceof Set)throw wp(r,`Set`,t,n);if(e instanceof Date)throw wp(r,`Date`,t,n);if(Array.isArray(e))return;let i=Object.getPrototypeOf(e);if(i!==null&&i!==Object.prototype)throw wp(r,e.constructor?.name??`class instance`,t,n)}function wp(e,t,n,r){let i=Tp(n,r);return pp.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Tp(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}function Ep(){let e={};function t(t,...n){let r=e[t]||[];for(let e=0,t=r.length;e<t;e++){let t=r[e];t&&t(...n)}}function n(n,...r){t(n,...r),delete e[n]}function r(t,n){return(e[t]||=[]).push(n),()=>{e[t]=e[t]?.filter(e=>n!==e)}}function i(e,t){let n=r(e,((...e)=>(n(),t(...e))));return n}return{_listeners:e,emit:t,emitOnce:n,on:r,once:i}}String.fromCharCode;var Dp=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Op=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,kp=/^([/\\]\s*){2,}[^/\\]/,Ap=/\/$|\/\?|\/#/,jp=/^\.?\//;function Mp(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?Dp.test(e):Op.test(e)||(t.acceptRelative?kp.test(e):!1)}function Np(e=``,t){return t?Ap.test(e):e.endsWith(`/`)}function Pp(e=``,t){if(!t)return(Np(e)?e.slice(0,-1):e)||`/`;if(!Np(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 Fp(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(Np(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 Ip(e,t){if(Lp(t)||Mp(e))return e;let n=Pp(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return zp(n,e)}function Lp(e){return!e||e===`/`}function Rp(e){return e&&e!==`/`}function zp(e,...t){let n=e||``;for(let e of t.filter(e=>Rp(e)))if(n){let t=e.replace(jp,``);n=Fp(n)+t}else n=e;return n}function Bp(e,t){let n=e.match(Op);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}var Vp=`__DEVFRAME_CONNECTION_META__`,Hp=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Up(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 Wp(){return Up(Jf)}function Gp(){return Up(Vp)}function Kp(e){if(e)return e;try{let e=localStorage.getItem(Hp);if(e)return e}catch{}return Up(Hp)}function qp(e){globalThis[Jf]=e,globalThis[Vp]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Jp(e.authToken)}function Jp(e){try{localStorage.setItem(Hp,e)}catch{}globalThis[Hp]=e;let t=Wp();t&&(globalThis[Jf]={...t,authToken:e})}function Yp(e){let t=Ip(qf,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Xp(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Zp(){let e=Wp();if(e)return Xp(e,Kp()??e.authToken??e.connectionMeta.authToken);let t=Gp();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Yp(`./`),authToken:Kp(t.authToken)}}async function Qp(e={}){if(e.connection){let t=Xp(e.connection,Kp(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return qp(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Yp(t[0]??`./`),authToken:Kp(e.authToken??e.connectionMeta.authToken)};return qp(n),n}let n=Zp();if(n){let t=Xp(n,Kp(e.authToken??n.authToken??n.connectionMeta.authToken));return qp(t),t}let r=[];for(let n of t){let t=Ip(qf,n),i=Yp(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=n.url||i,o={connectionMeta:r,metaBaseUrl:r.baseUrl?new URL(r.baseUrl,a).href:a,authToken:Kp(e.authToken??r.authToken)};return qp(o),o}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var $p=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function em(e=Qf){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function tm(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 nm(e=Qf){let t=em(e);return t&&tm(e),t}async function rm(e,t={}){let n=nm(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function im(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(Zf,{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}}}var am=Symbol.for(`immer-nothing`),om=Symbol.for(`immer-draftable`),$=Symbol.for(`immer-state`);function sm(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var cm=Object,lm=cm.getPrototypeOf,um=`constructor`,dm=`prototype`,fm=`configurable`,pm=`enumerable`,mm=`writable`,hm=`value`,gm=e=>!!e&&!!e[$];function _m(e){return e?bm(e)||Dm(e)||!!e[om]||!!e[um]?.[om]||Om(e)||km(e):!1}var vm=cm[dm][um].toString(),ym=new WeakMap;function bm(e){if(!e||!Am(e))return!1;let t=lm(e);if(t===null||t===cm[dm])return!0;let n=cm.hasOwnProperty.call(t,um)&&t[um];if(n===Object)return!0;if(!jm(n))return!1;let r=ym.get(n);return r===void 0&&(r=Function.toString.call(n),ym.set(n,r)),r===vm}function xm(e,t,n=!0){Sm(e)===0?(n?Reflect.ownKeys(e):cm.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Sm(e){let t=e[$];return t?t.type_:Dm(e)?1:Om(e)?2:km(e)?3:0}var Cm=(e,t,n=Sm(e))=>n===2?e.has(t):cm[dm].hasOwnProperty.call(e,t),wm=(e,t,n=Sm(e))=>n===2?e.get(t):e[t],Tm=(e,t,n,r=Sm(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Em(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Dm=Array.isArray,Om=e=>e instanceof Map,km=e=>e instanceof Set,Am=e=>typeof e==`object`,jm=e=>typeof e==`function`,Mm=e=>typeof e==`boolean`;function Nm(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Pm=e=>Am(e)?e?.[$]:null,Fm=e=>e.copy_||e.base_,Im=e=>e.modified_?e.copy_:e.base_;function Lm(e,t){if(Om(e))return new Map(e);if(km(e))return new Set(e);if(Dm(e))return Array[dm].slice.call(e);let n=bm(e);if(t===!0||t===`class_only`&&!n){let t=cm.getOwnPropertyDescriptors(e);delete t[$];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[mm]===!1&&(a[mm]=!0,a[fm]=!0),(a.get||a.set)&&(t[i]={[fm]:!0,[mm]:!0,[pm]:a[pm],[hm]:e[i]})}return cm.create(lm(e),t)}{let t=lm(e);if(t!==null&&n)return{...e};let r=cm.create(t);return cm.assign(r,e)}}function Rm(e,t=!1){return Vm(e)||gm(e)||!_m(e)?e:(Sm(e)>1&&cm.defineProperties(e,{set:Bm,add:Bm,clear:Bm,delete:Bm}),cm.freeze(e),t&&xm(e,(e,t)=>{Rm(t,!0)},!1),e)}function zm(){sm(2)}var Bm={[hm]:zm};function Vm(e){return e===null||!Am(e)||cm.isFrozen(e)}var Hm=`MapSet`,Um=`Patches`,Wm=`ArrayMethods`,Gm={};function Km(e){let t=Gm[e];return t||sm(0,e),t}var qm=e=>!!Gm[e];function Jm(e,t){Gm[e]||(Gm[e]=t)}var Ym,Xm=()=>Ym,Zm=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:qm(Hm)?Km(Hm):void 0,arrayMethodsPlugin_:qm(Wm)?Km(Wm):void 0});function Qm(e,t){t&&(e.patchPlugin_=Km(Um),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function $m(e){eh(e),e.drafts_.forEach(nh),e.drafts_=null}function eh(e){e===Ym&&(Ym=e.parent_)}var th=e=>Ym=Zm(Ym,e);function nh(e){let t=e[$];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rh(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[$].modified_&&($m(t),sm(4)),_m(e)&&(e=ih(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[$].base_,e,t)}else e=ih(t,n);return ah(t,e,!0),$m(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===am?void 0:e}function ih(e,t){if(Vm(t))return t;let n=t[$];if(!n)return ph(t,e.handledSet_,e);if(!sh(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);dh(n,e)}return n.copy_}function ah(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Rm(t,n)}function oh(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var sh=(e,t)=>e.scope_===t,ch=[];function lh(e,t,n,r){let i=Fm(e),a=e.type_;if(r!==void 0&&wm(i,r,a)===t){Tm(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;xm(i,(e,n)=>{if(gm(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??ch;for(let e of o)Tm(i,e,n,a)}function uh(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!sh(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Im(i);lh(e,i.draft_??i,a,n),dh(i,r)})}function dh(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)}oh(e)}}function fh(e,t,n){let{scope_:r}=e;if(gm(n)){let i=n[$];sh(i,r)&&i.callbacks_.push(function(){Sh(e),lh(e,n,Im(i),t)})}else _m(n)&&e.callbacks_.push(function(){let i=Fm(e);e.type_===3?i.has(n)&&ph(n,r.handledSet_,r):wm(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&ph(wm(e.copy_,t,e.type_),r.handledSet_,r)})}function ph(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||gm(e)||t.has(e)||!_m(e)||Vm(e)?e:(t.add(e),xm(e,(r,i)=>{if(gm(i)){let t=i[$];sh(t,n)&&(Tm(e,r,Im(t),e.type_),oh(t))}else _m(i)&&ph(i,t,n)}),e)}function mh(e,t){let n=Dm(e),r={type_:+!!n,scope_:t?t.scope_:Xm(),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=hh;n&&(i=[r],a=gh);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var hh={get(e,t){if(t===$)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=Fm(e);if(!Cm(i,t,e.type_))return yh(e,i,t);let a=i[t];if(e.finalized_||!_m(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Nm(t))return a;if(a===_h(e.base_,t)||vh(e,t,a)){Sh(e);let n=e.type_===1?+t:t,r=wh(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Fm(e)},ownKeys(e){return Reflect.ownKeys(Fm(e))},set(e,t,n){let r=bh(Fm(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=_h(Fm(e),t),i=r?.[$];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Em(n,r)&&(n!==void 0||Cm(e.base_,t,e.type_)))return!0;Sh(e),xh(e)}return e.copy_[t]===n&&(n!==void 0||Cm(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),fh(e,t,n),!0)},deleteProperty(e,t){return Sh(e),_h(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),xh(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Fm(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[mm]:!0,[fm]:e.type_!==1||t!==`length`,[pm]:r[pm],[hm]:n[t]}},defineProperty(){sm(11)},getPrototypeOf(e){return lm(e.base_)},setPrototypeOf(){sm(12)}},gh={};for(let e in hh){let t=hh[e];gh[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}gh.deleteProperty=function(e,t){return gh.set.call(this,e,t,void 0)},gh.set=function(e,t,n){return hh.set.call(this,e[0],t,n,e[0])};function _h(e,t){let n=e[$];return(n?Fm(n):e)[t]}function vh(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!_m(n)||n[$]?!1:e.baseRefs_.has(n)}function yh(e,t,n){let r=bh(t,n);return r?hm in r?r[hm]:r.get?.call(e.draft_):void 0}function bh(e,t){if(!(t in e))return;let n=lm(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=lm(n)}}function xh(e){e.modified_||(e.modified_=!0,e.parent_&&xh(e.parent_))}function Sh(e){e.copy_||=(e.assigned_=new Map,Lm(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Ch=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(jm(e)&&!jm(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}jm(t)||sm(6),n!==void 0&&!jm(n)&&sm(7);let r;if(_m(e)){let i=th(this),a=wh(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?$m(i):eh(i)}return Qm(i,n),rh(r,i)}if(!e||!Am(e)){if(r=t(e),r===void 0&&(r=e),r===am&&(r=void 0),this.autoFreeze_&&Rm(r,!0),n){let t=[],i=[];Km(Um).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}sm(1,e)},this.produceWithPatches=(e,t)=>{if(jm(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]},Mm(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Mm(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Mm(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){_m(e)||sm(8),gm(e)&&(e=Th(e));let t=th(this),n=wh(t,e,void 0);return n[$].isManual_=!0,eh(t),n}finishDraft(e,t){let n=e&&e[$];(!n||!n.isManual_)&&sm(9);let{scope_:r}=n;return Qm(r,t),rh(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=Km(Um).applyPatches_;return gm(e)?r(e,t):this.produce(e,e=>r(e,t))}};function wh(e,t,n,r){let[i,a]=Om(t)?Km(Hm).proxyMap_(t,n):km(t)?Km(Hm).proxySet_(t,n):mh(t,n);return(n?.scope_??Xm()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?uh(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 Th(e){return gm(e)||sm(10,e),Eh(e)}function Eh(e){if(!_m(e)||Vm(e))return e;let t=e[$],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Lm(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Lm(e,!0);return xm(n,(e,t)=>{Tm(n,e,Eh(t))},r),t&&(t.finalized_=!1),n}function Dh(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Pm(wm(e,n.key_)),i=wm(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||Cm(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=wm(n,r),!Am(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?.[$];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;xm(e.assigned_,(e,l)=>{let u=wm(o,e,c),f=wm(s,e,c),p=l?Cm(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===am?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=Sm(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===um)&&sm(19),jm(o)&&n===dm&&sm(19),o=wm(o,n),(o===null||!Am(o))&&sm(18,i.join(`/`))}let s=Sm(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:sm(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:sm(17,a)}}),e}function u(e){if(!_m(e))return e;if(Dm(e))return e.map(u);if(Om(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(km(e))return new Set(Array.from(e).map(u));let t=Object.create(lm(e));for(let n in e)t[n]=u(e[n]);return Cm(e,om)&&(t[om]=e[om]),t}function d(e){return gm(e)?u(e):e}Jm(Um,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}globalThis.Iterator?.from;var Oh=new Ch,kh=Oh.produce,Ah=Oh.produceWithPatches.bind(Oh),jh=Oh.applyPatches.bind(Oh),Mh=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Nh(e=21){let t=``,n=e;for(;n--;)t+=Mh[Math.random()*64|0];return t}var Ph=1e3;function Fh(e,t){if(e.add(t),e.size>Ph){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Ih(e){let{enablePatches:t=!1}=e;t&&Dh();let n=Ep(),r=e.initialValue,i=new Set;return{on:n.on,value:()=>r,patch:(e,t=Nh())=>{i.has(t)||(Dh(),r=jh(r,e),Fh(i,t),n.emit(`updated`,r,void 0,t))},mutate:(e,a=Nh())=>{if(!i.has(a)){if(Fh(i,a),t){let[t,i]=Ah(r,e);if(t===r)return;r=t,n.emit(`updated`,r,i,a)}else{let t=kh(r,e);if(t===r)return;r=t,n.emit(`updated`,r,void 0,a)}}},syncIds:i}}function Lh(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:Q.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:Q.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=Ih({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(Q.client.isTrustedUpdated,e=>{e&&!n&&(n=!0,d())})}})}}}var Rh=typeof self==`object`?self:globalThis,zh=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),Bh=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function Vh(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=zh.has(e)?Rh[e]:void 0;return n(new(r??Rh.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`&&Bh.has(a))return n(new Rh[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function Hh(e){return Vh(new Map,e)(0)}var Uh=``,{toString:Wh}={},{keys:Gh}=Object;function Kh(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Wh.call(e).slice(8,-1);switch(n){case`Array`:return[1,Uh];case`Object`:return[2,Uh];case`Date`:return[3,Uh];case`RegExp`:return[4,Uh];case`Map`:return[5,Uh];case`Set`:return[6,Uh];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function qh([e,t]){return e===0&&(t===`function`||t===`symbol`)}function Jh(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]=Kh(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 Gh(r))(e||!qh(Kh(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||!(qh(Kh(n))||qh(Kh(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!qh(Kh(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Yh(e,t={}){let n=[];return Jh(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Xh,stringify:Zh}=JSON,Qh={json:!0,lossy:!0};function $h(e){return Hh(Xh(e))}function eg(e){return Zh(Yh(e,Qh))}function tg(e){return Hh(e)}function ng(e){return eg(e)}function rg(e){return $h(e)}var ig=new Map;function ag(e=ig){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?Sp(n,r??``):`s:${ng(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?rg(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function og(){}function sg(e){let t=e.search(/\n\n|\r\n\r\n/);if(!(t<0))return{frame:e.slice(0,t),rest:e.slice(t+(e[t]===`\r`?4:2))}}function cg(e){let t=`message`,n=[];for(let r of e.split(/\r?\n/))r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trimStart():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));return{event:t,data:n}}function lg(e){let{onConnected:t=og,onError:n=og,onDisconnected:r=og,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${$f}=${encodeURIComponent(e.authToken)}`);let s=ag(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=sg(r);if(!e)break;r=e.rest;let{event:t,data:n}=cg(e.frame);n.length>0&&_(t,n.join(`
|
|
9
|
-
`))}}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`,[Yf]: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 ug(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var dg=Math.random.bind(Math),fg=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function pg(e=21){let t=``,n=e;for(;n--;)t+=fg[dg()*64|0];return t}var mg=6e4,hg=e=>e,gg=hg,{clearTimeout:_g,setTimeout:vg}=globalThis;function yg(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=hg,deserialize:s=gg,resolver:c,bind:l=`rpc`,timeout:u=mg,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}=ug(),_=pg();s.i=_;let v;async function y(n=s){return u>=0&&(v=vg(()=>{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{_g(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&&(_g(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}function bg(e,t){let{channel:n,rpcOptions:r={}}=t;return yg(e,{...n,timeout:-1,...r,proxify:!1})}function xg(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=Promise.withResolvers();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(Q.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 $p(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new $p(`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(Q.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 $p(`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(Q.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(Q.client.connectionError,e),m(new $p(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new $p(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=bg(a.functions,{channel:v,rpcOptions:o});a.register({name:Q.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new $p(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e),m(e),i.emit(Q.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 $p(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e)}return i.emit(Q.client.isTrustedUpdated,c),t.isTrusted}async function S(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(Q.client.isTrustedUpdated,!0)),t}async function C(e={}){await y.$call(`anonymous:devframe:auth:request-code`,{ua:navigator.userAgent,origin:location.origin,...e.reissue?{reissue:!0}:{}})}async function w(){return c?!0:x(b??``)}async function ee(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t;try{return await Promise.race([d.promise,new Promise((n,r)=>{t=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e)})]),c}finally{clearTimeout(t)}}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:w,requestTrustWithToken:x,requestTrustWithCode:S,requestAuthCode:C,ensureTrusted:ee,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(Q.client.error,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function Sg(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 Cg(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=Sg(n.sse,r??`./`,location);return xg({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>lg({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 wg(e){let{name:t,message:n,cause:r,...i}=e,a=r instanceof Error?r:Tg(r)?wg(r):r,o=a===void 0?Error(n):Error(n,{cause:a});return o.name=t,Object.assign(o,i),o}function Tg(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function Eg(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function Dg(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function Og(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function kg(e){if(e.error)throw wg(e.error);return e.output}function Ag(e){return e.some(e=>e!=null)}function jg(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function Mg(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?tg(e):e}function a(e,t){return i(jg(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 Og(r)?kg(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(Eg(r)){if(Ag(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(Dg(r)){let e=ep(n),i=r.records[e];if(i)return kg(await s(i,r.serialization));if(r.fallback)return kg(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!Ag(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 Ng(e){let t=Mg(await e.fetchJsonFromBases(Xf),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,requestAuthCode:async()=>{},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 Pg=256,Fg=class extends Error{name=`StreamClosedError`};function Ig(e={}){let t=e.id??Nh(),n=Math.max(0,e.replayWindow??0),r=Ep(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new Fg(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&(a.length-n===1?a.shift():a.splice(0,a.length-n))),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=Rg(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function Lg(e={}){let t=e.id??Nh(),n=Math.max(1,e.highWaterMark??Pg),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 Rg(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)}}}var zg=``;function Bg(e,t){return`${e}${zg}${t}`}function Vg(e){let t=new Map,n=new Map;e.client.register({name:Q.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(Bg(e,n))?._push(r,i)}}),e.client.register({name:Q.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=Bg(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:Q.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=Bg(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(Q.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(zg);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=Bg(n,r),o=t.get(a);if(o)return o;let s=Lg({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(Q.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=Bg(t,r),a=n.get(i);if(a)return a;let o=Ig({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 Hg(){}var Ug=new Map;function Wg(e){let t=e.url;e.authToken&&(t=`${t}?${$f}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=Hg,onError:i=Hg,onDisconnected:a=Hg,definitions:o=Ug}=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=ag(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 Gg(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 Bp(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function Kg(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Gg(n.websocket,r??`./`,location);return xg({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Wg({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 qg(e){return e.includes(`:`)}function Jg(e,t){return qg(t)?t:`${e}:${t}`}function Yg(e){return{async get(t){return(await e()).value()[t]},async set(t,n){(await e()).mutate(e=>{e[t]=n})},async delete(t){(await e()).mutate(e=>{delete e[t]})},async all(){return(await e()).value()},async onChange(t){return(await e()).on(`updated`,e=>t(e))}}}function Xg(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return Yg(a)}function Zg(e,t){return{global:Xg(e,t,`global`),project:Xg(e,t,`project`)}}function Qg(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(qg(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(Jg(t,n),...r)),callEvent:((n,...r)=>e.callEvent(Jg(t,n),...r)),callOptional:((n,...r)=>e.callOptional(Jg(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(Jg(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(Jg(t,n),r,i),upload:(n,r)=>e.streaming.upload(Jg(t,n),r)}},settings:Zg(e,t),scope:e.scope}}var $g=128;function e_(e){return e.replace(/[^\w-]+/g,`_`).slice(0,$g)}var t_=Object.freeze({type:`object`,additionalProperties:!0});function n_(e){let t=e[`~standard`];if(t.jsonSchema)try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return t_}return t_}function r_(e){if(!e||e.length===0)return{type:`object`,properties:{}};let t={},n=[];for(let r=0;r<e.length;r++){let i=`arg${r}`;t[i]=n_(e[r]),n.push(i)}return{type:`object`,properties:t,required:n,additionalProperties:!1}}function i_(e,t){if(Array.isArray(e))return e;if(e==null)return[];if(typeof e!=`object`)return;let n=e;if(t!=null)return Array.from({length:t},(e,t)=>n[`arg${t}`]);if(`arg0`in n){let e=[];for(;`arg${e.length}`in n;)e.push(n[`arg${e.length}`]);return e}return Object.keys(n).length===0?[]:void 0}function a_(e,t){return i_(e,t)??[e]}function o_(){if(typeof document<`u`){let e=document.modelContext;if(e)return e}if(typeof navigator<`u`){let e=navigator.modelContext;if(e)return e}}function s_(e,t={}){let n=t.modelContext??o_();if(!n)return()=>{};let r=n,i=new Map,a=new Map;function o(t,n){let o=e_(t.name),s=a.get(o);if(s&&s!==t.name){console.warn(`[devframe] WebMCP tool name "${o}" (from "${t.name}") collides with "${s}"; keeping the first registration.`);return}let c=new AbortController,l=r.registerTool({name:o,description:n.description,inputSchema:r_(t.args),annotations:{title:n.title??t.name,readOnlyHint:c_(t,n)===`read`,destructiveHint:c_(t,n)===`destructive`},execute:n=>l_(t,e.context,n)},{signal:c.signal});l&&`then`in l&&l.then(()=>{},()=>{}),a.set(o,t.name),i.set(t.name,()=>{c.abort(),l&&`unregister`in l&&typeof l.unregister==`function`&&l.unregister(),a.delete(o)})}function s(t){let n=t?[t]:[...e.definitions.keys()];for(let t of n){i.get(t)?.(),i.delete(t);let n=e.definitions.get(t),r=n?.agent;n&&r&&o(n,r)}}s();let c=e.onChanged(e=>s(e));return()=>{c();for(let e of i.values())e();i.clear()}}function c_(e,t){if(t.safety)return t.safety;let n=e.type??`query`;return n===`static`||n===`query`?`read`:`action`}async function l_(e,t,n){try{let r=a_(n,e.args?.length);return{content:[{type:`text`,text:u_(await(await bp(e,t))(...r))}]}}catch(e){return{isError:!0,content:[{type:`text`,text:d_(e)}]}}}function u_(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e,null,2)}function d_(e){if(!(e instanceof Error))return String(e);let t=e.cause instanceof Error?` (cause: ${e.cause.message})`:``;return`${e.name}: ${e.message}${t}`}function f_(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"), so there is nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function p_(e={}){let{baseURL:t=`./`,rpcOptions:n={},cacheOptions:r=!1}=e,i=Ep(),a=Array.isArray(t)?t:[t],o=await Qp(e),{connectionMeta:s,metaBaseUrl:c,authToken:l}=o,u=a[0]??`./`;try{u=new URL(`.`,c).href}catch{}let d=new tp({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),f={rpc:void 0},p=new xp(f),m=e.webmcp===!1?void 0:s_(p);async function h(e){let t=[u,...a.filter(e=>e!==u)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(Ip(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:l,connectionMeta:s,metaBaseUrl:c,events:i,clientRpc:p,callTimeout:e.callTimeout,rpcOptions:{...n,async onRequest(e,t,i){if(await n.onRequest?.call(this,e,t,i),r&&d?.validate(e.m)){if(d.has(e.m,e.a))return i(d.cached(e.m,e.a));let n=await t(e);d.apply(e,n)}else await t(e)}}},_=f_(e.transport??`auto`,s),v=_===`static`?await Ng({fetchJsonFromBases:h}):_===`sse`?Cg({...g,sseOptions:e.sseOptions}):Kg({...g,wsOptions:e.wsOptions}),y;try{y=new BroadcastChannel(`devframe-auth`)}catch{}let b,x=!1;function S(e){return((...t)=>x||!b?e(...t):b.then(()=>e(...t)))}function C(){try{m?.()}finally{try{y?.close()}finally{v.close?.()}}}let w={events:i,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return o},connectionMeta:s,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Jp(e),o={...o,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Jp(t),o={...o,authToken:t};try{y?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},requestAuthCode:e=>v.requestAuthCode(e),call:S(v.call),callEvent:S(v.callEvent),callOptional:S(v.callOptional),client:p,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:d,scope:void 0,close:C};w.sharedState=Lh(w),w.streaming=Vg(w),w.services=im(w);let ee=new Map;w.scope=(e=>{if(!e)return w;let t=ee.get(e);return t||(t=Qg(w,e),ee.set(e,t)),t}),f.rpc=w;function T(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function E(){if(e.simpleAuth!==!1&&T()&&typeof globalThis.prompt==`function`)for(await w.requestAuthCode().catch(()=>{});!w.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 w.requestTrustWithCode(t))return}}async function te(){let t=await v.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await rm(w,{param:n}):!1;t||r||w.isTrusted||await E()}return b=te().then(()=>{x=!0},()=>{x=!0}),y&&(y.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&w.requestTrustWithToken(e.data.authToken)}),w}var m_=p_;function h_(){let e=on(null),t=on(new URLSearchParams(location.search).get(`url`)??``),n=on(null),r=on(!1),i=on(null),a=Z(()=>e.value?.connectionMeta.backend===`static`);async function o(o=t.value){if(!(a.value&&n.value)){t.value=o.trim(),r.value=!0,i.value=null;try{e.value??=await m_(),await e.value.ensureTrusted();let r=await e.value.call(`devframes:plugin:og:resolve-metadata`,{url:t.value});n.value=r,(!t.value||a.value)&&r.requestedUrl&&(t.value=r.requestedUrl);let i=new URL(location.href);t.value?i.searchParams.set(`url`,t.value):i.searchParams.delete(`url`),history.replaceState(null,``,i)}catch(e){i.value=e instanceof Error?e.message:String(e)}finally{r.value=!1}}}return{error:Yt(i),inspect:o,isStatic:a,loading:Yt(r),snapshot:Yt(n),target:t}}var g_={class:`h-100dvh flex flex-col bg-base color-base font-sans`},__={key:0,class:`flex items-start gap-2 border-b border-base bg-red/8 px4 py2 color-red text-xs`},v_={class:`min-h-0 flex-1 overflow-auto`},y_={key:0,class:`h-full flex flex-col items-center justify-center gap-3 color-muted`},b_={key:1,class:`h-full flex flex-col items-center justify-center gap-3 px6 text-center color-muted`},x_={key:2,class:`grid min-h-full gap4 p4 xl:grid-cols-[minmax(0,1fr)_minmax(28rem,0.85fr)]`},S_={class:`min-w-0 flex flex-col gap4`},C_={class:`flex flex-wrap items-center gap-2 color-muted text-xs`},w_=[`href`,`title`],T_={class:`ml-auto font-mono tabular-nums`},E_={class:`min-w-0 xl:sticky xl:top4 xl:h-[calc(100dvh-6.5rem)]`},D_=V({__name:`app`,setup(e){let t=h_();return Ki(()=>t.inspect()),(e,n)=>(G(),K(`div`,g_,[Y(Kf,{target:R(t).target.value,"onUpdate:target":n[0]||=e=>R(t).target.value=e,loading:R(t).loading.value,"is-static":R(t).isStatic.value,onInspect:n[1]||=e=>R(t).inspect()},null,8,[`target`,`loading`,`is-static`]),R(t).error.value?(G(),K(`div`,__,[n[2]||=J(`span`,{class:`i-ph-warning-octagon-duotone mt0.5 shrink-0`},null,-1),J(`span`,null,M(R(t).error.value),1)])):bs(``,!0),J(`main`,v_,[R(t).loading.value&&!R(t).snapshot.value?(G(),K(`div`,y_,[...n[3]||=[J(`span`,{class:`i-ph-circle-notch-duotone animate-spin text-3xl color-active`},null,-1),J(`span`,{class:`text-sm`},`Reading page metadata...`,-1)]])):R(t).snapshot.value?.url?(G(),K(`div`,x_,[J(`div`,S_,[J(`div`,C_,[n[5]||=J(`span`,{class:`i-ph-check-circle-duotone color-active`},null,-1),J(`a`,{href:R(t).snapshot.value.url,target:`_blank`,rel:`noreferrer`,class:`min-w-0 truncate font-mono hover:color-active`,title:R(t).snapshot.value.url},M(R(t).snapshot.value.url),9,w_),J(`span`,T_,`HTTP `+M(R(t).snapshot.value.status),1)]),Y(ju,{tags:R(t).snapshot.value.tags},null,8,[`tags`]),Y(ef,{tags:R(t).snapshot.value.tags},null,8,[`tags`])]),J(`div`,E_,[Y(Rf,{snapshot:R(t).snapshot.value},null,8,[`snapshot`])])])):(G(),K(`div`,b_,[...n[4]||=[J(`span`,{class:`i-ph-image-square-duotone text-4xl color-active op70`},null,-1),J(`div`,null,[J(`h1`,{class:`m0 color-base text-base font-semibold`},` Inspect a social card `),J(`p`,{class:`mb0 mt1 max-w-100 text-sm`},` Enter a page URL to resolve its Open Graph and Twitter metadata. `)],-1)]]))])]))}}),O_=window.matchMedia(`(prefers-color-scheme: dark)`);function k_(e){document.documentElement.classList.toggle(`dark`,e),document.documentElement.classList.toggle(`light`,!e)}k_(O_.matches),O_.addEventListener(`change`,e=>k_(e.matches)),uu(D_).mount(`#app`);
|
|
8
|
+
`)}}var up=lp(rp);function dp(e,{method:t=`warn`}={}){console[t](up(e))}function fp(e){return cp({...e,reporters:[dp,...e.reporters??[]]})}var pp=fp({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is \`false\`; MCP requires JSON-serializable data.`,fix:"Remove `jsonSerializable: false`, 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."}}});function mp(e){if(e.agent&&e.jsonSerializable===!1)throw pp.DF0019({name:e.name});e.agent&&!e.jsonSerializable&&(e.jsonSerializable=!0)}async function hp(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function gp(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 _p(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 hp(i,n[r]);if(a.issues)throw pp.DF0043({name:e,index:r,issues:gp(a.issues)})}return r}async function vp(e,t,n){if(!t)return n;let r=await hp(t,n);if(r.issues)throw pp.DF0044({name:e,issues:gp(r.issues)});return n}async function yp(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 bp(e,t){let n=e.handler;if(!n){let r=await yp(e,t);if(!r.handler)throw pp.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 _p(e.name,r,t),o=await a(...n);return await vp(e.name,i,o)}}var xp=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 bp(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 pp.DF0021({name:e.name});mp(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 pp.DF0022({name:e.name});mp(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 bp(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw pp.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 Sp(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 wp(t,`undefined`,r,e);return n}return i!==null&&Cp(i,r,e,t),n})}function Cp(e,t,n,r){if(typeof e==`bigint`)throw wp(r,`BigInt`,t,n);if(typeof e!=`object`)return;if(e instanceof Map)throw wp(r,`Map`,t,n);if(e instanceof Set)throw wp(r,`Set`,t,n);if(e instanceof Date)throw wp(r,`Date`,t,n);if(Array.isArray(e))return;let i=Object.getPrototypeOf(e);if(i!==null&&i!==Object.prototype)throw wp(r,e.constructor?.name??`class instance`,t,n)}function wp(e,t,n,r){let i=Tp(n,r);return pp.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Tp(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}function Ep(){let e={};function t(t,...n){let r=e[t]||[];for(let e=0,t=r.length;e<t;e++){let t=r[e];t&&t(...n)}}function n(n,...r){t(n,...r),delete e[n]}function r(t,n){return(e[t]||=[]).push(n),()=>{e[t]=e[t]?.filter(e=>n!==e)}}function i(e,t){let n=r(e,((...e)=>(n(),t(...e))));return n}return{_listeners:e,emit:t,emitOnce:n,on:r,once:i}}var Dp=/^[\w+.-]{2,}:\/\//;function Op(e){return e.endsWith(`/`)?e:`${e}/`}function kp(e){return(e.endsWith(`/`)?e.slice(0,-1):e)||`/`}function Ap(e,...t){let n=e;for(let e of t)e&&e!==`/`&&(n=n?Op(n)+e.replace(/^\.?\//,``):e);return n}function jp(e,t){if(!t||t===`/`||Dp.test(e))return e;let n=kp(t);return e.startsWith(n)?e:Ap(n,e)}function Mp(e,t){let n=e.match(Dp);return t+(n?e.slice(n[0].length):e)}var Np=`__DEVFRAME_CONNECTION_META__`,Pp=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Fp(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 Ip(){return Fp(Jf)}function Lp(){return Fp(Np)}function Rp(e){if(e)return e;try{let e=localStorage.getItem(Pp);if(e)return e}catch{}return Fp(Pp)}function zp(e){globalThis[Jf]=e,globalThis[Np]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Bp(e.authToken)}function Bp(e){try{localStorage.setItem(Pp,e)}catch{}globalThis[Pp]=e;let t=Ip();t&&(globalThis[Jf]={...t,authToken:e})}function Vp(e){let t=jp(qf,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Hp(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Up(){let e=Ip();if(e)return Hp(e,Rp()??e.authToken??e.connectionMeta.authToken);let t=Lp();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Vp(`./`),authToken:Rp(t.authToken)}}async function Wp(e={}){if(e.connection){let t=Hp(e.connection,Rp(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return zp(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Vp(t[0]??`./`),authToken:Rp(e.authToken??e.connectionMeta.authToken)};return zp(n),n}let n=Up();if(n){let t=Hp(n,Rp(e.authToken??n.authToken??n.connectionMeta.authToken));return zp(t),t}let r=[];for(let n of t){let t=jp(qf,n),i=Vp(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=n.url||i,o={connectionMeta:r,metaBaseUrl:r.baseUrl?new URL(r.baseUrl,a).href:a,authToken:Rp(e.authToken??r.authToken)};return zp(o),o}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var Gp=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Kp(e=Qf){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function qp(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 Jp(e=Qf){let t=Kp(e);return t&&qp(e),t}async function Yp(e,t={}){let n=Jp(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Xp(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(Zf,{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}}}var Zp=Symbol.for(`immer-nothing`),Qp=Symbol.for(`immer-draftable`),$=Symbol.for(`immer-state`);function $p(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var em=Object,tm=em.getPrototypeOf,nm=`constructor`,rm=`prototype`,im=`configurable`,am=`enumerable`,om=`writable`,sm=`value`,cm=e=>!!e&&!!e[$];function lm(e){return e?fm(e)||ym(e)||!!e[Qp]||!!e[nm]?.[Qp]||bm(e)||xm(e):!1}var um=em[rm][nm].toString(),dm=new WeakMap;function fm(e){if(!e||!Sm(e))return!1;let t=tm(e);if(t===null||t===em[rm])return!0;let n=em.hasOwnProperty.call(t,nm)&&t[nm];if(n===Object)return!0;if(!Cm(n))return!1;let r=dm.get(n);return r===void 0&&(r=Function.toString.call(n),dm.set(n,r)),r===um}function pm(e,t,n=!0){mm(e)===0?(n?Reflect.ownKeys(e):em.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function mm(e){let t=e[$];return t?t.type_:ym(e)?1:bm(e)?2:xm(e)?3:0}var hm=(e,t,n=mm(e))=>n===2?e.has(t):em[rm].hasOwnProperty.call(e,t),gm=(e,t,n=mm(e))=>n===2?e.get(t):e[t],_m=(e,t,n,r=mm(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function vm(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var ym=Array.isArray,bm=e=>e instanceof Map,xm=e=>e instanceof Set,Sm=e=>typeof e==`object`,Cm=e=>typeof e==`function`,wm=e=>typeof e==`boolean`;function Tm(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Em=e=>Sm(e)?e?.[$]:null,Dm=e=>e.copy_||e.base_,Om=e=>e.modified_?e.copy_:e.base_;function km(e,t){if(bm(e))return new Map(e);if(xm(e))return new Set(e);if(ym(e))return Array[rm].slice.call(e);let n=fm(e);if(t===!0||t===`class_only`&&!n){let t=em.getOwnPropertyDescriptors(e);delete t[$];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[om]===!1&&(a[om]=!0,a[im]=!0),(a.get||a.set)&&(t[i]={[im]:!0,[om]:!0,[am]:a[am],[sm]:e[i]})}return em.create(tm(e),t)}{let t=tm(e);if(t!==null&&n)return{...e};let r=em.create(t);return em.assign(r,e)}}function Am(e,t=!1){return Nm(e)||cm(e)||!lm(e)?e:(mm(e)>1&&em.defineProperties(e,{set:Mm,add:Mm,clear:Mm,delete:Mm}),em.freeze(e),t&&pm(e,(e,t)=>{Am(t,!0)},!1),e)}function jm(){$p(2)}var Mm={[sm]:jm};function Nm(e){return e===null||!Sm(e)||em.isFrozen(e)}var Pm=`MapSet`,Fm=`Patches`,Im=`ArrayMethods`,Lm={};function Rm(e){let t=Lm[e];return t||$p(0,e),t}var zm=e=>!!Lm[e];function Bm(e,t){Lm[e]||(Lm[e]=t)}var Vm,Hm=()=>Vm,Um=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:zm(Pm)?Rm(Pm):void 0,arrayMethodsPlugin_:zm(Im)?Rm(Im):void 0});function Wm(e,t){t&&(e.patchPlugin_=Rm(Fm),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Gm(e){Km(e),e.drafts_.forEach(Jm),e.drafts_=null}function Km(e){e===Vm&&(Vm=e.parent_)}var qm=e=>Vm=Um(Vm,e);function Jm(e){let t=e[$];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ym(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[$].modified_&&(Gm(t),$p(4)),lm(e)&&(e=Xm(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[$].base_,e,t)}else e=Xm(t,n);return Zm(t,e,!0),Gm(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===Zp?void 0:e}function Xm(e,t){if(Nm(t))return t;let n=t[$];if(!n)return ah(t,e.handledSet_,e);if(!$m(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);rh(n,e)}return n.copy_}function Zm(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Am(t,n)}function Qm(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var $m=(e,t)=>e.scope_===t,eh=[];function th(e,t,n,r){let i=Dm(e),a=e.type_;if(r!==void 0&&gm(i,r,a)===t){_m(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;pm(i,(e,n)=>{if(cm(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??eh;for(let e of o)_m(i,e,n,a)}function nh(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!$m(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Om(i);th(e,i.draft_??i,a,n),rh(i,r)})}function rh(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)}Qm(e)}}function ih(e,t,n){let{scope_:r}=e;if(cm(n)){let i=n[$];$m(i,r)&&i.callbacks_.push(function(){mh(e),th(e,n,Om(i),t)})}else lm(n)&&e.callbacks_.push(function(){let i=Dm(e);e.type_===3?i.has(n)&&ah(n,r.handledSet_,r):gm(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&ah(gm(e.copy_,t,e.type_),r.handledSet_,r)})}function ah(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||cm(e)||t.has(e)||!lm(e)||Nm(e)?e:(t.add(e),pm(e,(r,i)=>{if(cm(i)){let t=i[$];$m(t,n)&&(_m(e,r,Om(t),e.type_),Qm(t))}else lm(i)&&ah(i,t,n)}),e)}function oh(e,t){let n=ym(e),r={type_:+!!n,scope_:t?t.scope_:Hm(),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=sh;n&&(i=[r],a=ch);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var sh={get(e,t){if(t===$)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=Dm(e);if(!hm(i,t,e.type_))return dh(e,i,t);let a=i[t];if(e.finalized_||!lm(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Tm(t))return a;if(a===lh(e.base_,t)||uh(e,t,a)){mh(e);let n=e.type_===1?+t:t,r=gh(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Dm(e)},ownKeys(e){return Reflect.ownKeys(Dm(e))},set(e,t,n){let r=fh(Dm(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=lh(Dm(e),t),i=r?.[$];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(vm(n,r)&&(n!==void 0||hm(e.base_,t,e.type_)))return!0;mh(e),ph(e)}return e.copy_[t]===n&&(n!==void 0||hm(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),ih(e,t,n),!0)},deleteProperty(e,t){return mh(e),lh(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),ph(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Dm(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[om]:!0,[im]:e.type_!==1||t!==`length`,[am]:r[am],[sm]:n[t]}},defineProperty(){$p(11)},getPrototypeOf(e){return tm(e.base_)},setPrototypeOf(){$p(12)}},ch={};for(let e in sh){let t=sh[e];ch[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}ch.deleteProperty=function(e,t){return ch.set.call(this,e,t,void 0)},ch.set=function(e,t,n){return sh.set.call(this,e[0],t,n,e[0])};function lh(e,t){let n=e[$];return(n?Dm(n):e)[t]}function uh(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!lm(n)||n[$]?!1:e.baseRefs_.has(n)}function dh(e,t,n){let r=fh(t,n);return r?sm in r?r[sm]:r.get?.call(e.draft_):void 0}function fh(e,t){if(!(t in e))return;let n=tm(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=tm(n)}}function ph(e){e.modified_||(e.modified_=!0,e.parent_&&ph(e.parent_))}function mh(e){e.copy_||=(e.assigned_=new Map,km(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var hh=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(Cm(e)&&!Cm(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}Cm(t)||$p(6),n!==void 0&&!Cm(n)&&$p(7);let r;if(lm(e)){let i=qm(this),a=gh(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Gm(i):Km(i)}return Wm(i,n),Ym(r,i)}if(!e||!Sm(e)){if(r=t(e),r===void 0&&(r=e),r===Zp&&(r=void 0),this.autoFreeze_&&Am(r,!0),n){let t=[],i=[];Rm(Fm).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}$p(1,e)},this.produceWithPatches=(e,t)=>{if(Cm(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]},wm(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),wm(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),wm(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){lm(e)||$p(8),cm(e)&&(e=_h(e));let t=qm(this),n=gh(t,e,void 0);return n[$].isManual_=!0,Km(t),n}finishDraft(e,t){let n=e&&e[$];(!n||!n.isManual_)&&$p(9);let{scope_:r}=n;return Wm(r,t),Ym(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=Rm(Fm).applyPatches_;return cm(e)?r(e,t):this.produce(e,e=>r(e,t))}};function gh(e,t,n,r){let[i,a]=bm(t)?Rm(Pm).proxyMap_(t,n):xm(t)?Rm(Pm).proxySet_(t,n):oh(t,n);return(n?.scope_??Hm()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?nh(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 _h(e){return cm(e)||$p(10,e),vh(e)}function vh(e){if(!lm(e)||Nm(e))return e;let t=e[$],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=km(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=km(e,!0);return pm(n,(e,t)=>{_m(n,e,vh(t))},r),t&&(t.finalized_=!1),n}function yh(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Em(gm(e,n.key_)),i=gm(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||hm(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=gm(n,r),!Sm(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?.[$];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;pm(e.assigned_,(e,l)=>{let u=gm(o,e,c),f=gm(s,e,c),p=l?hm(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===Zp?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=mm(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===nm)&&$p(19),Cm(o)&&n===rm&&$p(19),o=gm(o,n),(o===null||!Sm(o))&&$p(18,i.join(`/`))}let s=mm(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:$p(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:$p(17,a)}}),e}function u(e){if(!lm(e))return e;if(ym(e))return e.map(u);if(bm(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(xm(e))return new Set(Array.from(e).map(u));let t=Object.create(tm(e));for(let n in e)t[n]=u(e[n]);return hm(e,Qp)&&(t[Qp]=e[Qp]),t}function d(e){return cm(e)?u(e):e}Bm(Fm,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}globalThis.Iterator?.from;var bh=new hh,xh=bh.produce,Sh=bh.produceWithPatches.bind(bh),Ch=bh.applyPatches.bind(bh),wh=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Th(e=21){let t=``,n=e;for(;n--;)t+=wh[Math.random()*64|0];return t}var Eh=1e3;function Dh(e,t){if(e.add(t),e.size>Eh){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Oh(e){let{enablePatches:t=!1}=e;t&&yh();let n=Ep(),r=e.initialValue,i=new Set;return{on:n.on,value:()=>r,patch:(e,t=Th())=>{i.has(t)||(yh(),r=Ch(r,e),Dh(i,t),n.emit(`updated`,r,void 0,t))},mutate:(e,a=Th())=>{if(!i.has(a)){if(Dh(i,a),t){let[t,i]=Sh(r,e);if(t===r)return;r=t,n.emit(`updated`,r,i,a)}else{let t=xh(r,e);if(t===r)return;r=t,n.emit(`updated`,r,void 0,a)}}},syncIds:i}}function kh(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:Q.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:Q.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=Oh({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(Q.client.isTrustedUpdated,e=>{e&&!n&&(n=!0,d())})}})}}}var Ah=typeof self==`object`?self:globalThis,jh=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),Mh=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function Nh(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=jh.has(e)?Ah[e]:void 0;return n(new(r??Ah.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`&&Mh.has(a))return n(new Ah[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function Ph(e){return Nh(new Map,e)(0)}var Fh=``,{toString:Ih}={},{keys:Lh}=Object;function Rh(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Ih.call(e).slice(8,-1);switch(n){case`Array`:return[1,Fh];case`Object`:return[2,Fh];case`Date`:return[3,Fh];case`RegExp`:return[4,Fh];case`Map`:return[5,Fh];case`Set`:return[6,Fh];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function zh([e,t]){return e===0&&(t===`function`||t===`symbol`)}function Bh(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]=Rh(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 Lh(r))(e||!zh(Rh(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||!(zh(Rh(n))||zh(Rh(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!zh(Rh(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Vh(e,t={}){let n=[];return Bh(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Hh,stringify:Uh}=JSON,Wh={json:!0,lossy:!0};function Gh(e){return Ph(Hh(e))}function Kh(e){return Uh(Vh(e,Wh))}function qh(e){return Ph(e)}function Jh(e){return Kh(e)}function Yh(e){return Gh(e)}var Xh=new Map;function Zh(e=Xh){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?Sp(n,r??``):`s:${Jh(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Yh(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function Qh(){}function $h(e){let t=e.search(/\n\n|\r\n\r\n/);if(!(t<0))return{frame:e.slice(0,t),rest:e.slice(t+(e[t]===`\r`?4:2))}}function eg(e){let t=`message`,n=[];for(let r of e.split(/\r?\n/))r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trimStart():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));return{event:t,data:n}}function tg(e){let{onConnected:t=Qh,onError:n=Qh,onDisconnected:r=Qh,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${$f}=${encodeURIComponent(e.authToken)}`);let s=Zh(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=$h(r);if(!e)break;r=e.rest;let{event:t,data:n}=eg(e.frame);n.length>0&&_(t,n.join(`
|
|
9
|
+
`))}}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`,[Yf]: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 ng(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var rg=Math.random.bind(Math),ig=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function ag(e=21){let t=``,n=e;for(;n--;)t+=ig[rg()*64|0];return t}var og=6e4,sg=e=>e,cg=sg,{clearTimeout:lg,setTimeout:ug}=globalThis;function dg(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=sg,deserialize:s=cg,resolver:c,bind:l=`rpc`,timeout:u=og,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}=ng(),_=ag();s.i=_;let v;async function y(n=s){return u>=0&&(v=ug(()=>{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{lg(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&&(lg(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}function fg(e,t){let{channel:n,rpcOptions:r={}}=t;return dg(e,{...n,timeout:-1,...r,proxify:!1})}function pg(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=Promise.withResolvers();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(Q.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 Gp(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new Gp(`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(Q.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 Gp(`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(Q.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(Q.client.connectionError,e),m(new Gp(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new Gp(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=fg(a.functions,{channel:v,rpcOptions:o});a.register({name:Q.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new Gp(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e),m(e),i.emit(Q.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 Gp(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e)}return i.emit(Q.client.isTrustedUpdated,c),t.isTrusted}async function S(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(Q.client.isTrustedUpdated,!0)),t}async function C(e={}){await y.$call(`anonymous:devframe:auth:request-code`,{ua:navigator.userAgent,origin:location.origin,...e.reissue?{reissue:!0}:{}})}async function w(){return c?!0:x(b??``)}async function ee(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t;try{return await Promise.race([d.promise,new Promise((n,r)=>{t=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e)})]),c}finally{clearTimeout(t)}}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:w,requestTrustWithToken:x,requestTrustWithCode:S,requestAuthCode:C,ensureTrusted:ee,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(Q.client.error,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function mg(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 hg(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=mg(n.sse,r??`./`,location);return pg({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>tg({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 gg(e){let{name:t,message:n,cause:r,...i}=e,a=r instanceof Error?r:_g(r)?gg(r):r,o=a===void 0?Error(n):Error(n,{cause:a});return o.name=t,Object.assign(o,i),o}function _g(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function vg(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function yg(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function bg(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function xg(e){if(e.error)throw gg(e.error);return e.output}function Sg(e){return e.some(e=>e!=null)}function Cg(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function wg(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?qh(e):e}function a(e,t){return i(Cg(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 bg(r)?xg(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(vg(r)){if(Sg(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(yg(r)){let e=ep(n),i=r.records[e];if(i)return xg(await s(i,r.serialization));if(r.fallback)return xg(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!Sg(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 Tg(e){let t=wg(await e.fetchJsonFromBases(Xf),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,requestAuthCode:async()=>{},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 Eg=256,Dg=class extends Error{name=`StreamClosedError`};function Og(e={}){let t=e.id??Th(),n=Math.max(0,e.replayWindow??0),r=Ep(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new Dg(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&(a.length-n===1?a.shift():a.splice(0,a.length-n))),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=Ag(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function kg(e={}){let t=e.id??Th(),n=Math.max(1,e.highWaterMark??Eg),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 Ag(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)}}}var jg=``;function Mg(e,t){return`${e}${jg}${t}`}function Ng(e){let t=new Map,n=new Map;e.client.register({name:Q.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(Mg(e,n))?._push(r,i)}}),e.client.register({name:Q.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=Mg(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:Q.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=Mg(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(Q.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(jg);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=Mg(n,r),o=t.get(a);if(o)return o;let s=kg({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(Q.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=Mg(t,r),a=n.get(i);if(a)return a;let o=Og({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 Pg(){}var Fg=new Map;function Ig(e){let t=e.url;e.authToken&&(t=`${t}?${$f}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=Pg,onError:i=Pg,onDisconnected:a=Pg,definitions:o=Fg}=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=Zh(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 Lg(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 Mp(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function Rg(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Lg(n.websocket,r??`./`,location);return pg({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Ig({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 zg(e){return e.includes(`:`)}function Bg(e,t){return zg(t)?t:`${e}:${t}`}function Vg(e){return{async get(t){return(await e()).value()[t]},async set(t,n){(await e()).mutate(e=>{e[t]=n})},async delete(t){(await e()).mutate(e=>{delete e[t]})},async all(){return(await e()).value()},async onChange(t){return(await e()).on(`updated`,e=>t(e))}}}function Hg(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return Vg(a)}function Ug(e,t){return{global:Hg(e,t,`global`),project:Hg(e,t,`project`)}}function Wg(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(zg(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(Bg(t,n),...r)),callEvent:((n,...r)=>e.callEvent(Bg(t,n),...r)),callOptional:((n,...r)=>e.callOptional(Bg(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(Bg(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(Bg(t,n),r,i),upload:(n,r)=>e.streaming.upload(Bg(t,n),r)}},settings:Ug(e,t),scope:e.scope}}var Gg=128;function Kg(e){return e.replace(/[^\w-]+/g,`_`).slice(0,Gg)}var qg=Object.freeze({type:`object`,additionalProperties:!0});function Jg(e){let t=e[`~standard`];if(t.jsonSchema)try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return qg}return qg}function Yg(e){if(!e||e.length===0)return{type:`object`,properties:{}};let t={},n=[];for(let r=0;r<e.length;r++){let i=`arg${r}`;t[i]=Jg(e[r]),n.push(i)}return{type:`object`,properties:t,required:n,additionalProperties:!1}}function Xg(e,t){if(Array.isArray(e))return e;if(e==null)return[];if(typeof e!=`object`)return;let n=e;if(t!=null)return Array.from({length:t},(e,t)=>n[`arg${t}`]);if(`arg0`in n){let e=[];for(;`arg${e.length}`in n;)e.push(n[`arg${e.length}`]);return e}return Object.keys(n).length===0?[]:void 0}function Zg(e,t){return Xg(e,t)??[e]}function Qg(){if(typeof document<`u`){let e=document.modelContext;if(e)return e}if(typeof navigator<`u`){let e=navigator.modelContext;if(e)return e}}function $g(e,t={}){let n=t.modelContext??Qg();if(!n)return()=>{};let r=n,i=new Map,a=new Map;function o(t,n){let o=Kg(t.name),s=a.get(o);if(s&&s!==t.name){console.warn(`[devframe] WebMCP tool name "${o}" (from "${t.name}") collides with "${s}"; keeping the first registration.`);return}let c=new AbortController,l=r.registerTool({name:o,description:n.description,inputSchema:Yg(t.args),annotations:{title:n.title??t.name,readOnlyHint:e_(t,n)===`read`,destructiveHint:e_(t,n)===`destructive`},execute:n=>t_(t,e.context,n)},{signal:c.signal});l&&`then`in l&&l.then(()=>{},()=>{}),a.set(o,t.name),i.set(t.name,()=>{c.abort(),l&&`unregister`in l&&typeof l.unregister==`function`&&l.unregister(),a.delete(o)})}function s(t){let n=t?[t]:[...e.definitions.keys()];for(let t of n){i.get(t)?.(),i.delete(t);let n=e.definitions.get(t),r=n?.agent;n&&r&&o(n,r)}}s();let c=e.onChanged(e=>s(e));return()=>{c();for(let e of i.values())e();i.clear()}}function e_(e,t){if(t.safety)return t.safety;let n=e.type??`query`;return n===`static`||n===`query`?`read`:`action`}async function t_(e,t,n){try{let r=Zg(n,e.args?.length);return{content:[{type:`text`,text:n_(await(await bp(e,t))(...r))}]}}catch(e){return{isError:!0,content:[{type:`text`,text:r_(e)}]}}}function n_(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e,null,2)}function r_(e){if(!(e instanceof Error))return String(e);let t=e.cause instanceof Error?` (cause: ${e.cause.message})`:``;return`${e.name}: ${e.message}${t}`}function i_(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"), so there is nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function a_(e={}){let{baseURL:t=`./`,rpcOptions:n={},cacheOptions:r=!1}=e,i=Ep(),a=Array.isArray(t)?t:[t],o=await Wp(e),{connectionMeta:s,metaBaseUrl:c,authToken:l}=o,u=a[0]??`./`;try{u=new URL(`.`,c).href}catch{}let d=new tp({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),f={rpc:void 0},p=new xp(f),m=e.webmcp===!1?void 0:$g(p);async function h(e){let t=[u,...a.filter(e=>e!==u)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(jp(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:l,connectionMeta:s,metaBaseUrl:c,events:i,clientRpc:p,callTimeout:e.callTimeout,rpcOptions:{...n,async onRequest(e,t,i){if(await n.onRequest?.call(this,e,t,i),r&&d?.validate(e.m)){if(d.has(e.m,e.a))return i(d.cached(e.m,e.a));let n=await t(e);d.apply(e,n)}else await t(e)}}},_=i_(e.transport??`auto`,s),v=_===`static`?await Tg({fetchJsonFromBases:h}):_===`sse`?hg({...g,sseOptions:e.sseOptions}):Rg({...g,wsOptions:e.wsOptions}),y;try{y=new BroadcastChannel(`devframe-auth`)}catch{}let b,x=!1;function S(e){return((...t)=>x||!b?e(...t):b.then(()=>e(...t)))}function C(){try{m?.()}finally{try{y?.close()}finally{v.close?.()}}}let w={events:i,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return o},connectionMeta:s,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Bp(e),o={...o,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Bp(t),o={...o,authToken:t};try{y?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},requestAuthCode:e=>v.requestAuthCode(e),call:S(v.call),callEvent:S(v.callEvent),callOptional:S(v.callOptional),client:p,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:d,scope:void 0,close:C};w.sharedState=kh(w),w.streaming=Ng(w),w.services=Xp(w);let ee=new Map;w.scope=(e=>{if(!e)return w;let t=ee.get(e);return t||(t=Wg(w,e),ee.set(e,t)),t}),f.rpc=w;function T(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function E(){if(e.simpleAuth!==!1&&T()&&typeof globalThis.prompt==`function`)for(await w.requestAuthCode().catch(()=>{});!w.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 w.requestTrustWithCode(t))return}}async function te(){let t=await v.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Yp(w,{param:n}):!1;t||r||w.isTrusted||await E()}return b=te().then(()=>{x=!0},()=>{x=!0}),y&&(y.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&w.requestTrustWithToken(e.data.authToken)}),w}var o_=a_;function s_(){let e=on(null),t=on(new URLSearchParams(location.search).get(`url`)??``),n=on(null),r=on(!1),i=on(null),a=Z(()=>e.value?.connectionMeta.backend===`static`);async function o(o=t.value){if(!(a.value&&n.value)){t.value=o.trim(),r.value=!0,i.value=null;try{e.value??=await o_(),await e.value.ensureTrusted();let r=await e.value.call(`devframes:plugin:og:resolve-metadata`,{url:t.value});n.value=r,(!t.value||a.value)&&r.requestedUrl&&(t.value=r.requestedUrl);let i=new URL(location.href);t.value?i.searchParams.set(`url`,t.value):i.searchParams.delete(`url`),history.replaceState(null,``,i)}catch(e){i.value=e instanceof Error?e.message:String(e)}finally{r.value=!1}}}return{error:Yt(i),inspect:o,isStatic:a,loading:Yt(r),snapshot:Yt(n),target:t}}var c_={class:`h-100dvh flex flex-col bg-base color-base font-sans`},l_={key:0,class:`flex items-start gap-2 border-b border-base bg-red/8 px4 py2 color-red text-xs`},u_={class:`min-h-0 flex-1 overflow-auto`},d_={key:0,class:`h-full flex flex-col items-center justify-center gap-3 color-muted`},f_={key:1,class:`h-full flex flex-col items-center justify-center gap-3 px6 text-center color-muted`},p_={key:2,class:`grid min-h-full gap4 p4 xl:grid-cols-[minmax(0,1fr)_minmax(28rem,0.85fr)]`},m_={class:`min-w-0 flex flex-col gap4`},h_={class:`flex flex-wrap items-center gap-2 color-muted text-xs`},g_=[`href`,`title`],__={class:`ml-auto font-mono tabular-nums`},v_={class:`min-w-0 xl:sticky xl:top4 xl:h-[calc(100dvh-6.5rem)]`},y_=V({__name:`app`,setup(e){let t=s_();return Ki(()=>t.inspect()),(e,n)=>(G(),K(`div`,c_,[Y(Kf,{target:R(t).target.value,"onUpdate:target":n[0]||=e=>R(t).target.value=e,loading:R(t).loading.value,"is-static":R(t).isStatic.value,onInspect:n[1]||=e=>R(t).inspect()},null,8,[`target`,`loading`,`is-static`]),R(t).error.value?(G(),K(`div`,l_,[n[2]||=J(`span`,{class:`i-ph-warning-octagon-duotone mt0.5 shrink-0`},null,-1),J(`span`,null,M(R(t).error.value),1)])):bs(``,!0),J(`main`,u_,[R(t).loading.value&&!R(t).snapshot.value?(G(),K(`div`,d_,[...n[3]||=[J(`span`,{class:`i-ph-circle-notch-duotone animate-spin text-3xl color-active`},null,-1),J(`span`,{class:`text-sm`},`Reading page metadata...`,-1)]])):R(t).snapshot.value?.url?(G(),K(`div`,p_,[J(`div`,m_,[J(`div`,h_,[n[5]||=J(`span`,{class:`i-ph-check-circle-duotone color-active`},null,-1),J(`a`,{href:R(t).snapshot.value.url,target:`_blank`,rel:`noreferrer`,class:`min-w-0 truncate font-mono hover:color-active`,title:R(t).snapshot.value.url},M(R(t).snapshot.value.url),9,g_),J(`span`,__,`HTTP `+M(R(t).snapshot.value.status),1)]),Y(ju,{tags:R(t).snapshot.value.tags},null,8,[`tags`]),Y(ef,{tags:R(t).snapshot.value.tags},null,8,[`tags`])]),J(`div`,v_,[Y(Rf,{snapshot:R(t).snapshot.value},null,8,[`snapshot`])])])):(G(),K(`div`,f_,[...n[4]||=[J(`span`,{class:`i-ph-image-square-duotone text-4xl color-active op70`},null,-1),J(`div`,null,[J(`h1`,{class:`m0 color-base text-base font-semibold`},` Inspect a social card `),J(`p`,{class:`mb0 mt1 max-w-100 text-sm`},` Enter a page URL to resolve its Open Graph and Twitter metadata. `)],-1)]]))])]))}}),b_=window.matchMedia(`(prefers-color-scheme: dark)`);function x_(e){document.documentElement.classList.toggle(`dark`,e),document.documentElement.classList.toggle(`light`,!e)}x_(b_.matches),b_.addEventListener(`change`,e=>x_(e.matches)),uu(y_).mount(`#app`);
|
package/dist/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
6
6
|
<base href="./" />
|
|
7
7
|
<title>Open Graph Viewer</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-CPDGEZLO.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="./assets/index-ecCZ9DGW.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devframes/plugin-og--assets",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"description": "Prebuilt browser assets (SPA) for @devframes/plugin-og, served on demand through devframe's remote-assets back-proxy.",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|