@codexhost/cli-darwin-arm64 0.18.0-beta.3 → 0.18.0-beta.4
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.
- package/README.md +1 -1
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +9 -4
- package/app/console-web.js +9 -4
- package/app/desktop-controller.mjs +9 -4
- package/app/host-runtime.mjs +4751 -2746
- package/app/plugins/antigravity/plugin.mjs +9 -4
- package/app/plugins/claude-code/plugin.mjs +129 -58
- package/app/plugins/codebuddy/plugin.mjs +9 -4
- package/app/plugins/codex-usage/plugin.mjs +9 -4
- package/app/plugins/copilot/plugin.mjs +9 -4
- package/app/plugins/cursor-cli/plugin.mjs +9 -4
- package/app/plugins/deepseek-harness/plugin.mjs +9 -4
- package/app/plugins/devin/plugin.mjs +9 -4
- package/app/plugins/grok/plugin.mjs +9 -4
- package/app/plugins/hermes/plugin.mjs +9 -4
- package/app/plugins/kimi-code/plugin.mjs +9 -4
- package/app/plugins/kiro-cli/plugin.mjs +9 -4
- package/app/plugins/omp/plugin.mjs +9 -4
- package/app/plugins/opencode/plugin.mjs +9 -4
- package/app/plugins/pi/plugin.mjs +9 -4
- package/app/plugins/qoder/plugin.mjs +9 -4
- package/app/plugins/qoder-cn/plugin.mjs +9 -4
- package/app/plugins/qwen-code/plugin.mjs +9 -4
- package/app/plugins/workbuddy/plugin.mjs +9 -4
- package/app/plugins/zcode/plugin.mjs +9 -4
- package/app/renderer-extension.js +9 -4
- package/app/web/assets/{index-aKvkfNJN.js → index-D1dOzBMI.js} +2 -2
- package/app/web/codexhost-settings.js +9 -4
- package/app/web/index.html +1 -1
- package/app/web/plugins/deepseek-ai__dsh-api-gateway/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-api-remotes/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-api-session-controller/client.js +3 -3
- package/app/web/plugins/deepseek-ai__dsh-client-connection/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-codexhost/client.js +63 -63
- package/app/web/plugins/deepseek-ai__dsh-client-ui-conversation/client.js +8 -8
- package/app/web/plugins/deepseek-ai__dsh-client-ui-layout/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-settings/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-settings-general/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-tool/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-workspace/client.js +8 -12
- package/app/web/plugins.json +4 -0
- package/app/web-modules/server.mjs +374 -154
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:`@deepseek-ai/dsh-client-connection`,factory:e=>{var t={exports:{}},n=t.exports;Object.defineProperty(n,Symbol.toStringTag,{value:`Module`});function r(e){return e==null}function i(e){return e&&typeof e==`object`&&!Array.isArray(e)}function a(e,t){return Object.fromEntries(Object.entries(e).filter(([e,n])=>t(e,n)))}function o(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n,e)]))}function s(e,t,n){if(!t)return{...e};let r={};for(let i of t)(n||e[i]!==void 0)&&(r[i]=e[i]);return r}let c=Symbol.for(`cosmokit.volatile.write`);function l(e,t=/* @__PURE__ */ new Set){if(typeof e==`function`)throw TypeError(`volatile config cannot contain functions`);if(typeof e!=`object`||!e)return e;if(t.has(e))throw TypeError(`volatile config cannot contain cycles`);t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(e=>l(e,t)));if(Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw TypeError(`volatile config objects must be plain objects or arrays`);return Object.freeze(Object.fromEntries(Object.entries(e).map(([e,n])=>[e,l(n,t)])))}finally{t.delete(e)}}function u(e){let t=l(e);return Object.freeze({get:()=>t,[c]:e=>{t=e}})}function d(e){return typeof e==`object`&&!!e&&c in e}function f(e,t){return arguments.length===1?t=>f(e,t):e in globalThis&&t instanceof globalThis[e]||Object.prototype.toString.call(t).slice(8,-1)===e}function p(e){return f(`ArrayBuffer`,e)||f(`SharedArrayBuffer`,e)}function m(e){return p(e)||ArrayBuffer.isView(e)}let h;(function(e){e.is=p,e.isSource=m;function t(e){return ArrayBuffer.isView(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e}e.fromSource=t;function n(e){if(e=t(e),typeof Buffer<`u`)return Buffer.from(e).toString(`base64`);let n=``,r=new Uint8Array(e);for(let e=0;e<r.byteLength;e++)n+=String.fromCharCode(r[e]);return btoa(n)}e.toBase64=n;function r(e){return typeof Buffer<`u`?t(Buffer.from(e,`base64`)):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}e.fromBase64=r;function i(e){return e=t(e),typeof Buffer<`u`?Buffer.from(e).toString(`hex`):Array.from(new Uint8Array(e),e=>e.toString(16).padStart(2,`0`)).join(``)}e.toHex=i;function a(e){if(typeof Buffer<`u`)return t(Buffer.from(e,`hex`));let n=e.length%2==0?e:e.slice(0,e.length-1),r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(`${n[e]}${n[e+1]}`,16));return Uint8Array.from(r).buffer}e.fromHex=a})(h||={}),h.fromBase64,h.toBase64,h.fromHex,h.toHex;function g(e,t=/* @__PURE__ */ new Map){if(!e||typeof e!=`object`)return e;if(f(`Date`,e))return new Date(e.valueOf());if(f(`RegExp`,e))return new RegExp(e.source,e.flags);if(p(e))return e.slice(0);if(ArrayBuffer.isView(e))return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);let n=t.get(e);if(n)return n;if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((e,r)=>{n[r]=Reflect.apply(g,null,[e,t])}),n}let r=Object.create(Object.getPrototypeOf(e));t.set(e,r);for(let n of Reflect.ownKeys(e)){let i={...Reflect.getOwnPropertyDescriptor(e,n)};`value`in i&&(i.value=Reflect.apply(g,null,[i.value,t])),Reflect.defineProperty(r,n,i)}return r}function _(e,t,n){let i=/* @__PURE__ */ new Set;function a(e,t){if(e===t)return!0;if(d(e)||d(t))return d(e)&&d(t);if(!n&&r(e)&&r(t))return!0;if(typeof e!=typeof t||typeof e!=`object`||!e||!t||i.has(e))return!1;function o(n,r){return n(e)?n(t)?r(e,t):!1:!n(t)&&void 0}i.add(e);try{return o(Array.isArray,(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!a(e[n],t[n]))return!1;return!0})??o(f(`Date`),(e,t)=>e.valueOf()===t.valueOf())??o(f(`URL`),(e,t)=>e.href===t.href)??o(f(`RegExp`),(e,t)=>e.source===t.source&&e.flags===t.flags)??o(p,(e,t)=>{if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0})??((!n||[e,t].every(e=>Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null))&&Object.keys({...e,...t}).every(n=>a(e[n],t[n])))}finally{i.delete(e)}}return a(e,t)}let v;(function(e){e.millisecond=1;let t=e.second=1e3,n=e.minute=t*60,r=e.hour=n*60,i=e.day=r*24,a=e.week=i*7,o=(/* @__PURE__ */ new Date()).getTimezoneOffset();function s(e){o=e}e.setTimezoneOffset=s;function c(){return o}e.getTimezoneOffset=c;function l(e=/* @__PURE__ */ new Date,t){return typeof e==`number`&&(e=new Date(e)),t===void 0&&(t=o),Math.floor((e.valueOf()/n-t)/1440)}e.getDateNumber=l;function u(e,t){let r=new Date(e*i);return t===void 0&&(t=o),new Date(+r+t*n)}e.fromDateNumber=u;let d=RegExp(`^${[`w(?:eek(?:s)?)?`,`d(?:ay(?:s)?)?`,`h(?:our(?:s)?)?`,`m(?:in(?:ute)?(?:s)?)?`,`s(?:ec(?:ond)?(?:s)?)?`].map(e=>`(\\d+(?:\\.\\d+)?${e})?`).join(``)}$`);function f(e){let o=d.exec(e);return o?(parseFloat(o[1])*a||0)+(parseFloat(o[2])*i||0)+(parseFloat(o[3])*r||0)+(parseFloat(o[4])*n||0)+(parseFloat(o[5])*t||0):0}e.parseTime=f;function p(e){let t=f(e);return t?e=Date.now()+t:/^\d{1,2}(:\d{1,2}){1,2}$/.test(e)?e=`${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${e}`:/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(e)&&(e=`${(/* @__PURE__ */ new Date()).getFullYear()}-${e}`),e?new Date(e):/* @__PURE__ */ new Date}e.parseDate=p;function m(e){let a=Math.abs(e);return a>=i-r/2?Math.round(e/i)+`d`:a>=r-n/2?Math.round(e/r)+`h`:a>=n-t/2?Math.round(e/n)+`m`:a>=t?Math.round(e/t)+`s`:e+`ms`}e.format=m;function h(e,t=2){return e.toString().padStart(t,`0`)}e.toDigits=h;function g(e,t=/* @__PURE__ */ new Date){return e.replace(`yyyy`,t.getFullYear().toString()).replace(`yy`,t.getFullYear().toString().slice(2)).replace(`MM`,h(t.getMonth()+1)).replace(`dd`,h(t.getDate())).replace(`hh`,h(t.getHours())).replace(`mm`,h(t.getMinutes())).replace(`ss`,h(t.getSeconds())).replace(`SSS`,h(t.getMilliseconds(),3))}e.template=g})(v||={});let y=Symbol.for(`schemastery`),b=Symbol.for(`ValidationError`);globalThis.__schemastery_index__??=0,globalThis.__schemastery_refs__=void 0;var x=class extends TypeError{options;name=`ValidationError`;constructor(e,t){let n=`$`;for(let e of t.path||[])typeof e==`string`?n+=`.`+e:typeof e==`number`?n+=`[`+e+`]`:typeof e==`symbol`&&(n+=`[Symbol(${e.toString()})]`);n.startsWith(`.`)&&(n=n.slice(1)),super((n===`$`?``:`${n} `)+e),this.options=t}static is(e){return!!e?.[b]}};Object.defineProperty(x.prototype,b,{value:!0});let S=function(e){let t=function(e,n={}){return S.resolve(e,t,n)[0]};if(e.refs){let t=o(e.refs,e=>new S(e)),n=e=>t[e];for(let e in t){let r=t[e];r.sKey=n(r.sKey),r.inner=n(r.inner),r.list=r.list&&r.list.map(n),r.dict=r.dict&&o(r.dict,n)}return t[e.uid]}if(Object.assign(t,e),typeof t.callback==`string`)try{t.callback=Function(`return `+t.callback)()}catch{}return Object.defineProperty(t,"uid",{value:globalThis.__schemastery_index__++}),Object.setPrototypeOf(t,S.prototype),t.meta||={},t.toString=t.toString.bind(t),t};S.prototype=Object.create(Function.prototype),S.prototype[y]=!0,Object.defineProperty(S.prototype,"~standard",{get(){return{version:1,vendor:`schemastery`,validate:e=>{try{return{value:S.resolve(e,this,{})[0]}}catch(e){if(x.is(e))return{issues:[{message:e.message,path:e.options.path}]};throw e}}}}}),S.ValidationError=x,S.prototype.toJSON=function(){if(globalThis.__schemastery_refs__)return globalThis.__schemastery_refs__[this.uid]??=JSON.parse(JSON.stringify({...this})),this.uid;globalThis.__schemastery_refs__={[this.uid]:{...this}},globalThis.__schemastery_refs__[this.uid]=JSON.parse(JSON.stringify({...this}));let e={uid:this.uid,refs:globalThis.__schemastery_refs__};return globalThis.__schemastery_refs__=void 0,e},S.prototype.set=function(e,t){return this.dict[e]=t,this},S.prototype.push=function(e){return this.list.push(e),this};function C(e,t){let n=typeof e==`string`?{"":e}:{...e};for(let e in t){let r=t[e];r?.$description||r?.$desc?n[e]=r.$description||r.$desc:typeof r==`string`&&(n[e]=r)}return n}function w(e){return e?.$value??e?.$inner}function T(e){return a(e??{},e=>!e.startsWith(`$`))}S.prototype.i18n=function(e){let t=S(this),n=C(t.meta.description,e);return Object.keys(n).length&&(t.meta.description=n),t.dict&&=o(t.dict,(t,n)=>t.i18n(o(e,e=>w(e)?.[n]??e?.[n]))),t.list&&=t.list.map((t,n)=>t.i18n(o(e,(e={})=>Array.isArray(w(e))?w(e)[n]:Array.isArray(e)?e[n]:T(e)))),t.inner&&=t.inner.i18n(o(e,e=>w(e)?w(e):T(e))),t.sKey&&=t.sKey.i18n(o(e,e=>e?.$key)),t},S.prototype.extra=function(e,t){let n=S(this);return n.meta={...n.meta,[e]:t},n};for(let e of[`required`,`disabled`,`collapse`,`hidden`,`loose`])Object.assign(S.prototype,{[e](t=!0){let n=S(this);return n.meta={...n.meta,[e]:t},n}});S.prototype.deprecated=function(){let e=S(this);return e.meta.badges||=[],e.meta.badges.push({text:`deprecated`,type:`danger`}),e},S.prototype.experimental=function(){let e=S(this);return e.meta.badges||=[],e.meta.badges.push({text:`experimental`,type:`warning`}),e},S.prototype.pattern=function(e){let t=S(this),n=s(e,[`source`,`flags`]);return t.meta={...t.meta,pattern:n},t},S.prototype.simplify=function(e){if(d(e)&&(e=e.get()),_(e,this.meta.default,this.type===`dict`))return null;if(r(e))return e;if(this.type===`object`||this.type===`dict`){let t={};for(let n in e){let i=(this.type===`object`?this.dict[n]:this.inner)?.simplify(e[n]);(this.type===`dict`||!r(i))&&(t[n]=i)}return _(t,this.meta.default,this.type===`dict`)?null:t}if(this.type===`array`||this.type===`tuple`){let t=[];return e.forEach((e,n)=>{let r=this.type===`array`?this.inner:this.list[n],i=r?r.simplify(e):e;t.push(i)}),t}if(this.type===`intersect`){let t={};for(let n of this.list)Object.assign(t,n.simplify(e));return t}if(this.type===`union`)for(let t of this.list)try{return S.resolve(e,t,{}),t.simplify(e)}catch{}return e},S.prototype.toString=function(e){return N[this.type]?.(this,e)??`Schema<${this.type}>`},S.prototype.role=function(e,t){let n=S(this);return n.meta={...n.meta,role:e,extra:t},n};for(let e of[`default`,`link`,`comment`,`description`,`max`,`min`,`step`])Object.assign(S.prototype,{[e](t){let n=S(this);return n.meta={...n.meta,[e]:t},n}});S.prototype.volatile=function(){if(this.meta.volatile)throw TypeError(`volatile schema is already wrapped`);return this.extra(`volatile`,!0)};let E={},D=Symbol(`checked-volatile-schema`);function O(e,t=[],n=!1,r=/* @__PURE__ */ new Map){let i=r.get(e)??/* @__PURE__ */ new Set;if(i.has(n))return;if(i.add(n),r.set(e,i),e.meta?.volatile&&n)throw new x(`volatile fields require a fixed object path without an enclosing volatile field`,{path:t});let a=n||!!e.meta?.volatile;if(e.dict)for(let[n,i]of Object.entries(e.dict))O(i,[...t,n],a,r);if(e.sKey&&O(e.sKey,[...t,`<key>`],!0,r),e.inner&&(e.type!==`lazy`||e.inner[y])&&O(e.inner,[...t,`*`],!0,r),e.list)for(let n=0;n<e.list.length;n++)O(e.list[n],[...t,String(n)],!0,r)}S.extend=function(e,t){E[e]=t},S.resolve=function(e,t,n={},i=!1){if(!t)return[e];if(n[D]||(O(t,n.path),n={...n,[D]:!0}),t.meta?.volatile){let r=S(t);r.meta={...t.meta,volatile:!1};let[a,o]=S.resolve(e,r,n,i);try{return[u(a),o]}catch(e){throw new x(e instanceof Error?e.message:String(e),n)}}if(n.ignore?.(e,t))return[e];if(r(e)&&t.type!==`lazy`){if(t.meta.required)throw new x(`missing required value`,n);let i=t,a=t.meta.default;for(;i?.type===`intersect`&&r(a);)i=i.list[0],a=i?.meta.default;if(r(a))return[e];e=g(a)}let a=E[t.type];if(!a)throw new x(`unsupported type "${t.type}"`,n);try{return a(e,t,n,i)}catch(e){if(!t.meta.loose)throw e;return[t.meta.default]}},S.from=function(e){if(r(e))return S.any();if([`string`,`number`,`boolean`].includes(typeof e))return S.const(e).required();if(e[y])return e;if(typeof e==`function`)switch(e){case String:return S.string().required();case Number:return S.number().required();case Boolean:return S.boolean().required();case Function:return S.function().required();default:return S.is(e).required()}else throw TypeError(`cannot infer schema from ${e}`)},S.lazy=function(e){let t=new S({type:`lazy`,builder:e,inner:{toJSON:()=>(t.inner[y]||(t.inner=t.builder(),t.inner.meta={...t.meta,...t.inner.meta}),t.inner.toJSON())}});return t},S.natural=function(){return S.number().step(1).min(0)},S.percent=function(){return S.number().step(.01).min(0).max(1).role(`slider`)},S.date=function(){return S.union([S.is(Date),S.transform(S.string().role(`datetime`),(e,t)=>{let n=new Date(e);if(isNaN(+n))throw new x(`invalid date "${e}"`,t);return n},!0)])},S.regExp=function(e=``){return S.union([S.is(RegExp),S.transform(S.string().role(`regexp`,{flag:e}),(t,n)=>{try{return new RegExp(t,e)}catch(e){throw new x(e.message,n)}},!0)])},S.arrayBuffer=function(e){return S.union([S.is(ArrayBuffer),S.is(SharedArrayBuffer),S.transform(S.any(),(e,t)=>{if(h.isSource(e))return h.fromSource(e);throw new x(`expected ArrayBufferSource but got ${e}`,t)},!0),...e?[S.transform(S.string(),(t,n)=>{try{return e===`base64`?h.fromBase64(t):h.fromHex(t)}catch(e){throw new x(e.message,n)}},!0)]:[]])},S.extend(`lazy`,(e,t,n,r)=>(t.inner[y]||(t.inner=t.builder(),t.inner.meta={...t.meta,...t.inner.meta},O(t.inner,n.path,!0)),S.resolve(e,t.inner,n,r))),S.extend(`any`,e=>[e]),S.extend(`never`,(e,t,n)=>{throw new x(`expected nullable but got ${e}`,n)}),S.extend(`const`,(e,{value:t},n)=>{if(_(e,t))return[t];throw new x(`expected ${t} but got ${e}`,n)});function k(e,t,n,r,i=!1){let{max:a=1/0,min:o=-1/0}=t;if(e>a)throw new x(`expected ${n} <= ${a} but got ${e}`,r);if(e<o&&!i)throw new x(`expected ${n} >= ${o} but got ${e}`,r)}S.extend(`string`,(e,{meta:t},n)=>{if(typeof e!=`string`)throw new x(`expected string but got ${e}`,n);if(t.pattern){let r=new RegExp(t.pattern.source,t.pattern.flags);if(!r.test(e))throw new x(`expect string to match regexp ${r}`,n)}return k(e.length,t,`string length`,n),[e]});function A(e,t){let n=e.toString();if(n.includes(`e`))return e*10**t;let r=n.indexOf(`.`);if(r===-1)return e*10**t;let i=n.slice(r+1),a=n.slice(0,r);return i.length<=t?+(a+i.padEnd(t,`0`)):+(a+i.slice(0,t)+`.`+i.slice(t))}function ee(e,t,n){if(n=Math.abs(n),!/^\d+\.\d+$/.test(n.toString()))return(e-t)%n===0;let r=n.toString().indexOf(`.`),i=n.toString().slice(r+1).length;return Math.abs(A(e,i)-A(t,i))%A(n,i)===0}S.extend(`number`,(e,{meta:t},n)=>{if(typeof e!=`number`)throw new x(`expected number but got ${e}`,n);k(e,t,`number`,n);let{step:r}=t;if(r&&!ee(e,t.min??0,r))throw new x(`expected number multiple of ${r} but got ${e}`,n);return[e]}),S.extend(`boolean`,(e,t,n)=>{if(typeof e==`boolean`)return[e];throw new x(`expected boolean but got ${e}`,n)}),S.extend(`bitset`,(e,{bits:t,meta:n},r)=>{let i=0,a=[];if(typeof e==`number`){i=e;for(let n in t)e&t[n]&&a.push(n)}else if(Array.isArray(e)){a=e;for(let e of a){if(typeof e!=`string`)throw new x(`expected string but got ${e}`,r);e in t&&(i|=t[e])}}else throw new x(`expected number or array but got ${e}`,r);return i===n.default?[i]:[i,a]}),S.extend(`function`,(e,t,n)=>{if(typeof e==`function`)return[e];throw new x(`expected function but got ${e}`,n)}),S.extend(`is`,(e,{constructor:t},n)=>{if(typeof t==`function`){if(e instanceof t)return[e];throw new x(`expected ${t.name} but got ${e}`,n)}{if(r(e))throw new x(`expected ${t} but got ${e}`,n);let i=Object.getPrototypeOf(e);for(;i;){if(i.constructor?.name===t)return[e];i=Object.getPrototypeOf(i)}throw new x(`expected ${t} but got ${e}`,n)}});function j(e,t,n,r){try{let[i,a]=S.resolve(e[t],n,{...r,path:[...r.path||[],t]});return a!==void 0&&(e[t]=a),i}catch(i){if(!r?.autofix)throw i;return delete e[t],n.meta.volatile?u(n.meta.default):n.meta.default}}S.extend(`array`,(e,{inner:t,meta:n},i)=>{if(!Array.isArray(e))throw new x(`expected array but got ${e}`,i);return k(e.length,n,`array length`,i,!r(t.meta.default)),[e.map((n,r)=>j(e,r,t,i))]}),S.extend(`dict`,(e,{inner:t,sKey:n},r,a)=>{if(!i(e))throw new x(`expected object but got ${e}`,r);let o={};for(let i in e){let s;try{s=S.resolve(i,n,r)[0]}catch(e){if(a)continue;throw e}o[s]=j(e,i,t,r),e[s]=e[i],i!==s&&delete e[i]}return[o]}),S.extend(`tuple`,(e,{list:t},n,r)=>{if(!Array.isArray(e))throw new x(`expected array but got ${e}`,n);let i=t.map((t,r)=>j(e,r,t,n));return r||i.push(...e.slice(t.length)),[i]});function M(e,t){for(let n in t)n in e||(e[n]=t[n])}S.extend(`object`,(e,{dict:t},n,a)=>{if(!i(e))throw new x(`expected object but got ${e}`,n);let o={};for(let i in t){let a=j(e,i,t[i],n);(!r(a)||i in e)&&(o[i]=a)}return a||M(o,e),[o]}),S.extend(`union`,(e,{list:t,toString:n},r,i)=>{let a=[];for(let n of t)try{return S.resolve(e,n,r,i)}catch(e){a.push(e)}throw new x(`expected ${n()} but got ${JSON.stringify(e)}`,r)}),S.extend(`intersect`,(e,{list:t,toString:n},a,o)=>{if(!t.length)return[e];let s;for(let i of t){let t=S.resolve(e,i,a,!0)[0];if(!r(t)){if(r(s))s=t;else if(typeof s!=typeof t)throw new x(`expected ${n()} but got ${JSON.stringify(e)}`,a);else if(typeof t==`object`)M(s??={},t);else if(s!==t)throw new x(`expected ${n()} but got ${JSON.stringify(e)}`,a)}}return!o&&i(e)&&M(s,e),[s]}),S.extend(`transform`,(e,{inner:t,callback:n,preserve:r},i)=>{let[a,o=e]=S.resolve(e,t,i,!0);return r?[n(a)]:[n(a),n(o)]});let N={};function P(e,t,n){N[e]=n,Object.assign(S,{[e](...n){let r=new S({type:e});return t.forEach((e,t)=>{switch(e){case`sKey`:r.sKey=n[t]??S.string();break;case`inner`:r.inner=S.from(n[t]);break;case`list`:r.list=n[t].map(S.from);break;case`dict`:r.dict=o(n[t],S.from);break;case`bits`:r.bits={};for(let e in n[t])typeof n[t][e]==`number`&&(r.bits[e]=n[t][e]);break;case`callback`:{let e=r.callback=n[t];e.toJSON||=()=>e.toString();break}case`constructor`:{let e=r.constructor=n[t];typeof e==`function`&&(e.toJSON||=()=>e.name);break}default:r[e]=n[t]}}),e===`object`||e===`dict`?r.meta.default={}:e===`array`||e===`tuple`?r.meta.default=[]:e===`bitset`&&(r.meta.default=0),r}})}P(`is`,[`constructor`],({constructor:e})=>typeof e==`function`?e.name:e),P(`any`,[],()=>`any`),P(`never`,[],()=>`never`),P(`const`,[`value`],({value:e})=>typeof e==`string`?JSON.stringify(e):e),P(`string`,[],()=>`string`),P(`number`,[],()=>`number`),P(`boolean`,[],()=>`boolean`),P(`bitset`,[`bits`],()=>`bitset`),P(`function`,[],()=>`function`),P(`array`,[`inner`],({inner:e})=>`${e.toString(!0)}[]`),P(`dict`,[`inner`,`sKey`],({inner:e,sKey:t})=>`{ [key: ${t.toString()}]: ${e.toString()} }`),P(`tuple`,[`list`],({list:e})=>`[${e.map(e=>e.toString()).join(`, `)}]`),P(`object`,[`dict`],({dict:e})=>Object.keys(e).length===0?`{}`:`{ ${Object.entries(e).map(([e,t])=>`${e}${t.meta.required?``:`?`}: ${t.toString()}`).join(`, `)} }`),P(`union`,[`list`],({list:e},t)=>{let n=e.map(({toString:e})=>e()).join(` | `);return t?`(${n})`:n}),P(`intersect`,[`list`],({list:e})=>`${e.map(e=>e.toString(!0)).join(` & `)}`),P(`transform`,[`inner`,`callback`,`preserve`],({inner:e},t)=>e.toString(t));let F=2147483647,I=S.object({backoffBaseMs:S.natural().min(1).max(F).default(500),backoffFactor:S.number().min(1).max(Number.MAX_VALUE).default(2),backoffMaxMs:S.natural().min(1).max(F).default(1e4),generationReadyWarnMs:S.natural().min(1).max(F).default(3e3),generationReadyTimeoutMs:S.natural().min(1).max(F).default(15e3)});function L(e={}){let t=I(e);if(!Number.isFinite(t.backoffFactor))throw RangeError(`connection recovery backoffFactor must be finite`);return t}let R=/* @__PURE__ */ Error(`connection: manual reconnect requested`),z=/* @__PURE__ */ Error(`connection: browser network state changed`);function B(e,t){return new Promise(n=>{let r=setTimeout(i,e);t.addEventListener(`abort`,i,{once:!0});function i(){clearTimeout(r),t.removeEventListener(`abort`,i),n()}})}function V(e){return e.aborted?Promise.resolve():new Promise(t=>{e.addEventListener(`abort`,()=>{t()},{once:!0})})}var H=class{source;sinks;generation=0;attempt=0;current=null;retryDelay=null;running=!1;immediateRetry=!1;networkAvailable=!0;lastState;config;constructor(e,t={},n={}){this.source=e,this.sinks=t,this.config=L(n)}start(){this.running||(this.running=!0,this.loop())}stop(){this.running=!1,this.current?.abort(),this.current=null,this.retryDelay?.abort(),this.retryDelay=null}reconnect(){this.running&&(this.attempt=0,this.immediateRetry=!0,this.emitState(`connecting`),this.isRunning()&&(this.current?.abort(R),this.retryDelay?.abort(R)))}revalidate(){if(!this.running)return;let e=!1;this.lastState===`connected`&&this.callSink(()=>{e=this.sinks.onProbeRequested?.()===!0}),e||this.reconnect()}setNetworkAvailable(e){this.networkAvailable!==e&&(this.networkAvailable=e,this.attempt=0,this.immediateRetry=!1,this.running&&(this.emitState(e?`connecting`:`disconnected`),this.isRunning()&&(this.current?.abort(z),this.retryDelay?.abort(z))))}backoffCap(e){let{backoffBaseMs:t,backoffFactor:n,backoffMaxMs:r}=this.config;return Math.min(r,t*n**Math.max(0,e-1))}backoffDelay(e){let t=this.backoffCap(e);return t/2+t/2*Math.random()}isRetryInterrupted(e){return this.immediateRetry||!this.networkAvailable&&!e}isRunning(){return this.running}isGenerationActive(e){return this.isRunning()&&!e.signal.aborted}async loop(){let e=!1;for(;this.running;){if(!this.networkAvailable&&!this.immediateRetry){let t=new AbortController;if(this.retryDelay=t,this.emitState(`disconnected`),await V(t.signal),this.retryDelay===t&&(this.retryDelay=null),!this.isRunning())return;e=!0;continue}let t=!1;if(e){let e=this.immediateRetry;this.immediateRetry=!1,e&&(this.attempt=0),t=e;let n=++this.attempt;if(this.emitState(`connecting`),!this.isRunning())return;if(this.isRetryInterrupted(e))continue;if(!e){let e=new AbortController;if(this.retryDelay=e,await B(this.backoffDelay(n),e.signal),this.retryDelay===e&&(this.retryDelay=null),!this.isRunning())return;if(e.signal.aborted)continue}if(console.warn(`[connection] connection lost, retry #${String(n)}`),this.callSink(()=>{this.sinks.onReconnectRequested?.()}),!this.isRunning())return}let n=++this.generation,r=new AbortController;this.current=r;let i=!1,a,o,s,c=new Promise((e,t)=>{a=e,o=t}),l=new Promise((e,t)=>{s=t}),u=e=>{!i&&n===this.generation&&this.isGenerationActive(r)&&(i=!0,a(e))},d=new Promise(e=>{let t=()=>{n===this.generation&&!r.signal.aborted&&r.abort(),e()};Promise.resolve().then(()=>this.source(r.signal,u)).then(()=>{let e=/* @__PURE__ */ Error(`connection generation ended`);i||o(e),s(e),t()},e=>{let n=e instanceof Error?e:Error(`connection generation failed`,{cause:e});i||o(n),s(n),t()})});try{let e=await Promise.race([U(c,this.config,r.signal),l]);if(r.signal.aborted)throw Error(`generation aborted during readiness handshake`);this.attempt=0,this.emitState(`connected`),this.isGenerationActive(r)&&this.callSink(()=>{this.sinks.onConnected?.(e)})}catch(e){r.signal.aborted||r.abort(e)}if(await d,!this.isRunning())return;t&&(this.attempt=0),e=!0}}emitState(e){this.lastState!==e&&(this.lastState=e,this.callSink(()=>this.sinks.onStateChange?.(e)))}callSink(e){try{e()}catch(e){console.error(`[connection] connection sink threw:`,e)}}};function U(e,t,n){return new Promise((r,i)=>{let a=!1,o=setTimeout(()=>{console.warn(`[connection] generation is still not ready after ${String(t.generationReadyWarnMs)}ms`)},t.generationReadyWarnMs),s=setTimeout(()=>{let e=/* @__PURE__ */ Error(`connection generation was not ready within ${String(t.generationReadyTimeoutMs)}ms`);console.warn(`[connection] ${e.message}; cancelling generation`),l({error:e})},t.generationReadyTimeoutMs),c=()=>{l({error:Error(`connection generation aborted`,{cause:n.reason})})},l=e=>{a||(a=!0,clearTimeout(o),clearTimeout(s),n.removeEventListener(`abort`,c),`error`in e?i(e.error):r(e.value))};n.addEventListener(`abort`,c,{once:!0}),e.then(e=>{l({value:e})},e=>{l({error:e})})})}function W(e){return e}function G(e){return{ok:!1,error:{code:`gateway/internal`,message:e instanceof Error?e.message:String(e),details:{}}}}function K(){let e=globalThis.crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16)),t=new DataView(e.buffer,e.byteOffset,e.byteLength);t.setUint8(6,t.getUint8(6)&15|64),t.setUint8(8,t.getUint8(8)&63|128);let n=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}let q=/^\/[A-Za-z0-9._~-]+$/,J=/^[A-Za-z0-9_$.-]+$/;function Y(e,t){let n=e??((e,t)=>globalThis.fetch(e,t));return{async call(e,t,r,i){Q(e,t);let a=W(K()),o={type:`client-request`,rpcId:a,method:t,payload:r},s=`${e}/${t}`.slice(1),c=await n(s,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(o),...i===void 0?{}:{signal:i}});if(!c.ok)throw Error(`transport failure for ${e}/${t}: HTTP ${c.status}`);let l=c.headers.get(`content-type`)?.split(`;`,1)[0]?.trim().toLowerCase()===`multipart/form-data`?await te(c):X(await c.json());if(i?.throwIfAborted(),l.rpcId!==a)throw Error(`rpcId mismatch for ${t}: sent ${a}, got ${l.rpcId}`);return l.result},...t===void 0?{}:{open(e,n,r,i,a){if(Q(e,n),e!==`/api`)throw Error(`connection: worker-local streams require the /api channel, got ${JSON.stringify(e)}`);return t(n,r,i,a)}}}}async function te(e){let t=await e.formData(),n=/* @__PURE__ */ new Map;for(let[e,r]of t){if(n.has(e))throw TypeError(`connection: invalid binary response fields`);n.set(e,r)}let r=n.get(`metadata`);if(n.delete(`metadata`),typeof r!=`string`)throw TypeError(`connection: invalid binary response fields`);let i=JSON.parse(r),a=X(i);if(!a.result.ok||!Z(i)||!Array.isArray(i.attachments)||i.attachments.length===0)throw TypeError(`connection: invalid binary response result`);let o={value:a.result.value};for(let e of i.attachments){if(!Z(e)||e.codec!==`bytes`||typeof e.part!=`string`||!Array.isArray(e.path))throw TypeError(`connection: invalid binary response attachment`);let t=n.get(e.part);if(n.delete(e.part),!(t instanceof Blob))throw TypeError(`connection: invalid binary response fields`);let r=o,i=`value`;for(let t of e.path){let e=Reflect.get(r,i);if(typeof e!=`object`||!e)throw TypeError(`connection: invalid binary response path`);if(Array.isArray(e)){if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0||t>=e.length)throw TypeError(`connection: invalid binary response path`)}else if(typeof t!=`string`)throw TypeError(`connection: invalid binary response path`);if(!Object.hasOwn(e,t))throw TypeError(`connection: invalid binary response path`);r=e,i=t}if(Reflect.get(r,i)!==null)throw TypeError(`connection: invalid binary response placeholder`);Object.defineProperty(r,i,{value:new Uint8Array(await t.arrayBuffer()),enumerable:!0,writable:!0,configurable:!0})}if(n.size!==0)throw TypeError(`connection: invalid binary response fields`);return{rpcId:a.rpcId,result:{ok:!0,value:o.value}}}function X(e){if(!Z(e)||e.type!==`server-response`||typeof e.rpcId!=`string`)throw TypeError(`connection: invalid server-response envelope`);let t=e.result;if(!Z(t))throw TypeError(`connection: invalid server-response result`);if(t.ok===!0)return{rpcId:W(e.rpcId),result:{ok:!0,value:t.value}};if(t.ok!==!1||!Z(t.error))throw TypeError(`connection: invalid server-response result`);let n=t.error;if(typeof n.code!=`string`||typeof n.message!=`string`||!Z(n.details))throw TypeError(`connection: invalid server-response failure`);return{rpcId:W(e.rpcId),result:{ok:!1,error:{code:n.code,message:n.message,details:n.details}}}}function Z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Q(e,t){let n=t.split(`/`);if(!q.test(e)||n.some(e=>e===``||e===`.`||e===`..`||!J.test(e)))throw Error(`connection: invalid RPC target ${JSON.stringify(`${e}/${t}`)}`)}function ne(e){if(e===`localhost`||e===`[::1]`)return!0;let t=e.split(`.`);return t.length===4&&t[0]===`127`&&t.every(e=>/^\d{1,3}$/.test(e)&&Number(e)<=255)}let re=[];function ie(e){let t=globalThis.window,n=t?.navigator?.onLine;if(t===void 0||n===void 0)return()=>{};let r=()=>{e.setNetworkAvailable(!0)},i=()=>{e.setNetworkAvailable(!1)},a=t.document,o=a?.visibilityState===`hidden`,s,c=!1,l=n=>{if(a?.visibilityState===`hidden`||(c||=n,s!==void 0))return;let r=t.navigator?.onLine!==!1;e.setNetworkAvailable(r),r?s=setTimeout(()=>{s=void 0;let n=c;c=!1,a?.visibilityState!==`hidden`&&t.navigator?.onLine!==!1&&(n?e.reconnect():e.revalidate())},0):c=!1},u=()=>{a?.visibilityState===`hidden`?o=!0:o&&(o=!1,l(!1))},d=e=>{e.persisted&&l(!0)};return e.setNetworkAvailable(n),t.addEventListener(`online`,r),t.addEventListener(`offline`,i),t.addEventListener(`pageshow`,d),a?.addEventListener(`visibilitychange`,u),()=>{clearTimeout(s),t.removeEventListener(`online`,r),t.removeEventListener(`offline`,i),t.removeEventListener(`pageshow`,d),a?.removeEventListener(`visibilitychange`,u)}}function $(e,t={}){let n=t.location,r=t.transport,i=t.recovery??{},a=r?.rpc??Y(r?.fetch,r?.openStream),o,s,c=0,l,u,d=/* @__PURE__ */ new Set,f=/* @__PURE__ */ new Set,p=e=>{if(!Object.is(l,e)){l=e;for(let e of[...d])try{e()}catch(e){console.error(`[connection] generation listener threw:`,e)}}},m=e=>{if(u!==e){u=e;for(let e of[...f])try{e()}catch(e){console.error(`[connection] state listener threw:`,e)}}},h=e=>{s===e&&(s=void 0,e.stopNetworkWatch(),e.controller.stop(),p(void 0),m(void 0))},g={isLoopback:r?.ownsHost===!0||n===void 0||ne(n.hostname),generation:{getSnapshot:()=>l,subscribe:e=>(d.add(e),()=>{d.delete(e)})},state:{getSnapshot:()=>u,subscribe:e=>(f.add(e),()=>{f.delete(e)})},rpc:a,reconnect(){s?.controller.reconnect()},registerGenerationSource(e){if(o!==void 0)throw Error(`connection: a generation source is already registered`);return o=e,()=>{if(o!==e)return;o=void 0;let t=s;t?.source===e&&h(t)}},start(e,t){if(s!==void 0)throw Error(`connection: the stream loop is already owned by another consumer`);let n=o;if(n===void 0)throw Error(`connection: no generation source is registered`);let r={},a=()=>s?.token===r,u=new H(n,{...e,onConnected:t=>{let n={id:++c,host:t};p(n),a()&&Object.is(l,n)&&e.onConnected?.(t)},onStateChange:t=>{t!==`connected`&&p(void 0),a()&&(m(t),e.onStateChange?.(t))}},{...i,...t}),d={token:r,source:n,controller:u,stopNetworkWatch:ie(u)};return s=d,u.start(),{stop:()=>{h(d)}}}};e.provide(`connection`,g)}function ae(e){let t=globalThis,n=typeof location>`u`?void 0:location,r=t.__DSH_TRANSPORT__;$(e,{...r===void 0?{}:{transport:r},recovery:L(t.__DSH_CONNECTION_RECOVERY__),...n===void 0?{}:{location:n}})}return n.RpcId=W,n.apply=ae,n.inject=re,n.installConnection=$,n.transportError=G,t.exports}});
|
|
1
|
+
window.__ModuleLoader__.load({id:`@deepseek-ai/dsh-client-connection`,factory:e=>{var t={exports:{}},n=t.exports;Object.defineProperty(n,Symbol.toStringTag,{value:`Module`});function r(e){return e==null}function i(e){return e&&typeof e==`object`&&!Array.isArray(e)}function a(e,t){return Object.fromEntries(Object.entries(e).filter(([e,n])=>t(e,n)))}function o(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n,e)]))}function s(e,t,n){if(!t)return{...e};let r={};for(let i of t)(n||e[i]!==void 0)&&(r[i]=e[i]);return r}let c=Symbol.for(`cosmokit.volatile.write`);function l(e,t=/* @__PURE__ */ new Set){if(typeof e==`function`)throw TypeError(`volatile config cannot contain functions`);if(typeof e!=`object`||!e)return e;if(t.has(e))throw TypeError(`volatile config cannot contain cycles`);t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(e=>l(e,t)));if(Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw TypeError(`volatile config objects must be plain objects or arrays`);return Object.freeze(Object.fromEntries(Object.entries(e).map(([e,n])=>[e,l(n,t)])))}finally{t.delete(e)}}function u(e){let t=l(e);return Object.freeze({get:()=>t,[c]:e=>{t=e}})}function d(e){return typeof e==`object`&&!!e&&c in e}function f(e,t){return arguments.length===1?t=>f(e,t):e in globalThis&&t instanceof globalThis[e]||Object.prototype.toString.call(t).slice(8,-1)===e}function p(e){return f(`ArrayBuffer`,e)||f(`SharedArrayBuffer`,e)}function m(e){return p(e)||ArrayBuffer.isView(e)}let h;(function(e){e.is=p,e.isSource=m;function t(e){return ArrayBuffer.isView(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e}e.fromSource=t;function n(e){if(e=t(e),typeof Buffer<`u`)return Buffer.from(e).toString(`base64`);let n=``,r=new Uint8Array(e);for(let e=0;e<r.byteLength;e++)n+=String.fromCharCode(r[e]);return btoa(n)}e.toBase64=n;function r(e){return typeof Buffer<`u`?t(Buffer.from(e,`base64`)):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}e.fromBase64=r;function i(e){return e=t(e),typeof Buffer<`u`?Buffer.from(e).toString(`hex`):Array.from(new Uint8Array(e),e=>e.toString(16).padStart(2,`0`)).join(``)}e.toHex=i;function a(e){if(typeof Buffer<`u`)return t(Buffer.from(e,`hex`));let n=e.length%2==0?e:e.slice(0,e.length-1),r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(`${n[e]}${n[e+1]}`,16));return Uint8Array.from(r).buffer}e.fromHex=a})(h||={}),h.fromBase64,h.toBase64,h.fromHex,h.toHex;function g(e,t=/* @__PURE__ */ new Map){if(!e||typeof e!=`object`)return e;if(f(`Date`,e))return new Date(e.valueOf());if(f(`RegExp`,e))return new RegExp(e.source,e.flags);if(p(e))return e.slice(0);if(ArrayBuffer.isView(e))return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);let n=t.get(e);if(n)return n;if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((e,r)=>{n[r]=Reflect.apply(g,null,[e,t])}),n}let r=Object.create(Object.getPrototypeOf(e));t.set(e,r);for(let n of Reflect.ownKeys(e)){let i={...Reflect.getOwnPropertyDescriptor(e,n)};`value`in i&&(i.value=Reflect.apply(g,null,[i.value,t])),Reflect.defineProperty(r,n,i)}return r}function _(e,t,n){let i=/* @__PURE__ */ new Set;function a(e,t){if(e===t)return!0;if(d(e)||d(t))return d(e)&&d(t);if(!n&&r(e)&&r(t))return!0;if(typeof e!=typeof t||typeof e!=`object`||!e||!t||i.has(e))return!1;function o(n,r){return n(e)?n(t)?r(e,t):!1:!n(t)&&void 0}i.add(e);try{return o(Array.isArray,(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!a(e[n],t[n]))return!1;return!0})??o(f(`Date`),(e,t)=>e.valueOf()===t.valueOf())??o(f(`URL`),(e,t)=>e.href===t.href)??o(f(`RegExp`),(e,t)=>e.source===t.source&&e.flags===t.flags)??o(p,(e,t)=>{if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0})??((!n||[e,t].every(e=>Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null))&&Object.keys({...e,...t}).every(n=>a(e[n],t[n])))}finally{i.delete(e)}}return a(e,t)}let v;(function(e){e.millisecond=1;let t=e.second=1e3,n=e.minute=t*60,r=e.hour=n*60,i=e.day=r*24,a=e.week=i*7,o=(/* @__PURE__ */ new Date()).getTimezoneOffset();function s(e){o=e}e.setTimezoneOffset=s;function c(){return o}e.getTimezoneOffset=c;function l(e=/* @__PURE__ */ new Date,t){return typeof e==`number`&&(e=new Date(e)),t===void 0&&(t=o),Math.floor((e.valueOf()/n-t)/1440)}e.getDateNumber=l;function u(e,t){let r=new Date(e*i);return t===void 0&&(t=o),new Date(+r+t*n)}e.fromDateNumber=u;let d=RegExp(`^${[`w(?:eek(?:s)?)?`,`d(?:ay(?:s)?)?`,`h(?:our(?:s)?)?`,`m(?:in(?:ute)?(?:s)?)?`,`s(?:ec(?:ond)?(?:s)?)?`].map(e=>`(\\d+(?:\\.\\d+)?${e})?`).join(``)}$`);function f(e){let o=d.exec(e);return o?(parseFloat(o[1])*a||0)+(parseFloat(o[2])*i||0)+(parseFloat(o[3])*r||0)+(parseFloat(o[4])*n||0)+(parseFloat(o[5])*t||0):0}e.parseTime=f;function p(e){let t=f(e);return t?e=Date.now()+t:/^\d{1,2}(:\d{1,2}){1,2}$/.test(e)?e=`${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${e}`:/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(e)&&(e=`${(/* @__PURE__ */ new Date()).getFullYear()}-${e}`),e?new Date(e):/* @__PURE__ */ new Date}e.parseDate=p;function m(e){let a=Math.abs(e);return a>=i-r/2?Math.round(e/i)+`d`:a>=r-n/2?Math.round(e/r)+`h`:a>=n-t/2?Math.round(e/n)+`m`:a>=t?Math.round(e/t)+`s`:e+`ms`}e.format=m;function h(e,t=2){return e.toString().padStart(t,`0`)}e.toDigits=h;function g(e,t=/* @__PURE__ */ new Date){return e.replace(`yyyy`,t.getFullYear().toString()).replace(`yy`,t.getFullYear().toString().slice(2)).replace(`MM`,h(t.getMonth()+1)).replace(`dd`,h(t.getDate())).replace(`hh`,h(t.getHours())).replace(`mm`,h(t.getMinutes())).replace(`ss`,h(t.getSeconds())).replace(`SSS`,h(t.getMilliseconds(),3))}e.template=g})(v||={});let y=Symbol.for(`schemastery`),b=Symbol.for(`ValidationError`);globalThis.__schemastery_index__??=0,globalThis.__schemastery_refs__=void 0;var x=class extends TypeError{options;name=`ValidationError`;constructor(e,t){let n=`$`;for(let e of t.path||[])typeof e==`string`?n+=`.`+e:typeof e==`number`?n+=`[`+e+`]`:typeof e==`symbol`&&(n+=`[Symbol(${e.toString()})]`);n.startsWith(`.`)&&(n=n.slice(1)),super((n===`$`?``:`${n} `)+e),this.options=t}static is(e){return!!e?.[b]}};Object.defineProperty(x.prototype,b,{value:!0});let S=function(e){let t=function(e,n={}){return S.resolve(e,t,n)[0]};if(e.refs){let t=o(e.refs,e=>new S(e)),n=e=>t[e];for(let e in t){let r=t[e];r.sKey=n(r.sKey),r.inner=n(r.inner),r.list=r.list&&r.list.map(n),r.dict=r.dict&&o(r.dict,n)}return t[e.uid]}if(Object.assign(t,e),typeof t.callback==`string`)try{t.callback=Function(`return `+t.callback)()}catch{}return Object.defineProperty(t,"uid",{value:globalThis.__schemastery_index__++}),Object.setPrototypeOf(t,S.prototype),t.meta||={},t.toString=t.toString.bind(t),t};S.prototype=Object.create(Function.prototype),S.prototype[y]=!0,Object.defineProperty(S.prototype,"~standard",{get(){return{version:1,vendor:`schemastery`,validate:e=>{try{return{value:S.resolve(e,this,{})[0]}}catch(e){if(x.is(e))return{issues:[{message:e.message,path:e.options.path}]};throw e}}}}}),S.ValidationError=x,S.prototype.toJSON=function(){if(globalThis.__schemastery_refs__)return globalThis.__schemastery_refs__[this.uid]??=JSON.parse(JSON.stringify({...this})),this.uid;globalThis.__schemastery_refs__={[this.uid]:{...this}},globalThis.__schemastery_refs__[this.uid]=JSON.parse(JSON.stringify({...this}));let e={uid:this.uid,refs:globalThis.__schemastery_refs__};return globalThis.__schemastery_refs__=void 0,e},S.prototype.set=function(e,t){return this.dict[e]=t,this},S.prototype.push=function(e){return this.list.push(e),this};function C(e,t){let n=typeof e==`string`?{"":e}:{...e};for(let e in t){let r=t[e];r?.$description||r?.$desc?n[e]=r.$description||r.$desc:typeof r==`string`&&(n[e]=r)}return n}function w(e){return e?.$value??e?.$inner}function T(e){return a(e??{},e=>!e.startsWith(`$`))}S.prototype.i18n=function(e){let t=S(this),n=C(t.meta.description,e);return Object.keys(n).length&&(t.meta.description=n),t.dict&&=o(t.dict,(t,n)=>t.i18n(o(e,e=>w(e)?.[n]??e?.[n]))),t.list&&=t.list.map((t,n)=>t.i18n(o(e,(e={})=>Array.isArray(w(e))?w(e)[n]:Array.isArray(e)?e[n]:T(e)))),t.inner&&=t.inner.i18n(o(e,e=>w(e)?w(e):T(e))),t.sKey&&=t.sKey.i18n(o(e,e=>e?.$key)),t},S.prototype.extra=function(e,t){let n=S(this);return n.meta={...n.meta,[e]:t},n};for(let e of[`required`,`disabled`,`collapse`,`hidden`,`loose`])Object.assign(S.prototype,{[e](t=!0){let n=S(this);return n.meta={...n.meta,[e]:t},n}});S.prototype.deprecated=function(){let e=S(this);return e.meta.badges||=[],e.meta.badges.push({text:`deprecated`,type:`danger`}),e},S.prototype.experimental=function(){let e=S(this);return e.meta.badges||=[],e.meta.badges.push({text:`experimental`,type:`warning`}),e},S.prototype.pattern=function(e){let t=S(this),n=s(e,[`source`,`flags`]);return t.meta={...t.meta,pattern:n},t},S.prototype.simplify=function(e){if(d(e)&&(e=e.get()),_(e,this.meta.default,this.type===`dict`))return null;if(r(e))return e;if(this.type===`object`||this.type===`dict`){let t={};for(let n in e){let i=(this.type===`object`?this.dict[n]:this.inner)?.simplify(e[n]);(this.type===`dict`||!r(i))&&(t[n]=i)}return _(t,this.meta.default,this.type===`dict`)?null:t}if(this.type===`array`||this.type===`tuple`){let t=[];return e.forEach((e,n)=>{let r=this.type===`array`?this.inner:this.list[n],i=r?r.simplify(e):e;t.push(i)}),t}if(this.type===`intersect`){let t={};for(let n of this.list)Object.assign(t,n.simplify(e));return t}if(this.type===`union`)for(let t of this.list)try{return S.resolve(e,t,{}),t.simplify(e)}catch{}return e},S.prototype.toString=function(e){return N[this.type]?.(this,e)??`Schema<${this.type}>`},S.prototype.role=function(e,t){let n=S(this);return n.meta={...n.meta,role:e,extra:t},n};for(let e of[`default`,`link`,`comment`,`description`,`max`,`min`,`step`])Object.assign(S.prototype,{[e](t){let n=S(this);return n.meta={...n.meta,[e]:t},n}});S.prototype.volatile=function(){if(this.meta.volatile)throw TypeError(`volatile schema is already wrapped`);return this.extra(`volatile`,!0)};let E={},D=Symbol(`checked-volatile-schema`);function O(e,t=[],n=!1,r=/* @__PURE__ */ new Map){let i=r.get(e)??/* @__PURE__ */ new Set;if(i.has(n))return;if(i.add(n),r.set(e,i),e.meta?.volatile&&n)throw new x(`volatile fields require a fixed object path without an enclosing volatile field`,{path:t});let a=n||!!e.meta?.volatile;if(e.dict)for(let[n,i]of Object.entries(e.dict))O(i,[...t,n],a,r);if(e.sKey&&O(e.sKey,[...t,`<key>`],!0,r),e.inner&&(e.type!==`lazy`||e.inner[y])&&O(e.inner,[...t,`*`],!0,r),e.list)for(let n=0;n<e.list.length;n++)O(e.list[n],[...t,String(n)],!0,r)}S.extend=function(e,t){E[e]=t},S.resolve=function(e,t,n={},i=!1){if(!t)return[e];if(n[D]||(O(t,n.path),n={...n,[D]:!0}),t.meta?.volatile){let r=S(t);r.meta={...t.meta,volatile:!1};let[a,o]=S.resolve(e,r,n,i);try{return[u(a),o]}catch(e){throw new x(e instanceof Error?e.message:String(e),n)}}if(n.ignore?.(e,t))return[e];if(r(e)&&t.type!==`lazy`){if(t.meta.required)throw new x(`missing required value`,n);let i=t,a=t.meta.default;for(;i?.type===`intersect`&&r(a);)i=i.list[0],a=i?.meta.default;if(r(a))return[e];e=g(a)}let a=E[t.type];if(!a)throw new x(`unsupported type "${t.type}"`,n);try{return a(e,t,n,i)}catch(e){if(!t.meta.loose)throw e;return[t.meta.default]}},S.from=function(e){if(r(e))return S.any();if([`string`,`number`,`boolean`].includes(typeof e))return S.const(e).required();if(e[y])return e;if(typeof e==`function`)switch(e){case String:return S.string().required();case Number:return S.number().required();case Boolean:return S.boolean().required();case Function:return S.function().required();default:return S.is(e).required()}else throw TypeError(`cannot infer schema from ${e}`)},S.lazy=function(e){let t=new S({type:`lazy`,builder:e,inner:{toJSON:()=>(t.inner[y]||(t.inner=t.builder(),t.inner.meta={...t.meta,...t.inner.meta}),t.inner.toJSON())}});return t},S.natural=function(){return S.number().step(1).min(0)},S.percent=function(){return S.number().step(.01).min(0).max(1).role(`slider`)},S.date=function(){return S.union([S.is(Date),S.transform(S.string().role(`datetime`),(e,t)=>{let n=new Date(e);if(isNaN(+n))throw new x(`invalid date "${e}"`,t);return n},!0)])},S.regExp=function(e=``){return S.union([S.is(RegExp),S.transform(S.string().role(`regexp`,{flag:e}),(t,n)=>{try{return new RegExp(t,e)}catch(e){throw new x(e.message,n)}},!0)])},S.arrayBuffer=function(e){return S.union([S.is(ArrayBuffer),S.is(SharedArrayBuffer),S.transform(S.any(),(e,t)=>{if(h.isSource(e))return h.fromSource(e);throw new x(`expected ArrayBufferSource but got ${e}`,t)},!0),...e?[S.transform(S.string(),(t,n)=>{try{return e===`base64`?h.fromBase64(t):h.fromHex(t)}catch(e){throw new x(e.message,n)}},!0)]:[]])},S.extend(`lazy`,(e,t,n,r)=>(t.inner[y]||(t.inner=t.builder(),t.inner.meta={...t.meta,...t.inner.meta},O(t.inner,n.path,!0)),S.resolve(e,t.inner,n,r))),S.extend(`any`,e=>[e]),S.extend(`never`,(e,t,n)=>{throw new x(`expected nullable but got ${e}`,n)}),S.extend(`const`,(e,{value:t},n)=>{if(_(e,t))return[t];throw new x(`expected ${t} but got ${e}`,n)});function k(e,t,n,r,i=!1){let{max:a=1/0,min:o=-1/0}=t;if(e>a)throw new x(`expected ${n} <= ${a} but got ${e}`,r);if(e<o&&!i)throw new x(`expected ${n} >= ${o} but got ${e}`,r)}S.extend(`string`,(e,{meta:t},n)=>{if(typeof e!=`string`)throw new x(`expected string but got ${e}`,n);if(t.pattern){let r=new RegExp(t.pattern.source,t.pattern.flags);if(!r.test(e))throw new x(`expect string to match regexp ${r}`,n)}return k(e.length,t,`string length`,n),[e]});function A(e,t){let n=e.toString();if(n.includes(`e`))return e*10**t;let r=n.indexOf(`.`);if(r===-1)return e*10**t;let i=n.slice(r+1),a=n.slice(0,r);return i.length<=t?+(a+i.padEnd(t,`0`)):+(a+i.slice(0,t)+`.`+i.slice(t))}function ee(e,t,n){if(n=Math.abs(n),!/^\d+\.\d+$/.test(n.toString()))return(e-t)%n===0;let r=n.toString().indexOf(`.`),i=n.toString().slice(r+1).length;return Math.abs(A(e,i)-A(t,i))%A(n,i)===0}S.extend(`number`,(e,{meta:t},n)=>{if(typeof e!=`number`)throw new x(`expected number but got ${e}`,n);k(e,t,`number`,n);let{step:r}=t;if(r&&!ee(e,t.min??0,r))throw new x(`expected number multiple of ${r} but got ${e}`,n);return[e]}),S.extend(`boolean`,(e,t,n)=>{if(typeof e==`boolean`)return[e];throw new x(`expected boolean but got ${e}`,n)}),S.extend(`bitset`,(e,{bits:t,meta:n},r)=>{let i=0,a=[];if(typeof e==`number`){i=e;for(let n in t)e&t[n]&&a.push(n)}else if(Array.isArray(e)){a=e;for(let e of a){if(typeof e!=`string`)throw new x(`expected string but got ${e}`,r);e in t&&(i|=t[e])}}else throw new x(`expected number or array but got ${e}`,r);return i===n.default?[i]:[i,a]}),S.extend(`function`,(e,t,n)=>{if(typeof e==`function`)return[e];throw new x(`expected function but got ${e}`,n)}),S.extend(`is`,(e,{constructor:t},n)=>{if(typeof t==`function`){if(e instanceof t)return[e];throw new x(`expected ${t.name} but got ${e}`,n)}{if(r(e))throw new x(`expected ${t} but got ${e}`,n);let i=Object.getPrototypeOf(e);for(;i;){if(i.constructor?.name===t)return[e];i=Object.getPrototypeOf(i)}throw new x(`expected ${t} but got ${e}`,n)}});function j(e,t,n,r){try{let[i,a]=S.resolve(e[t],n,{...r,path:[...r.path||[],t]});return a!==void 0&&(e[t]=a),i}catch(i){if(!r?.autofix)throw i;return delete e[t],n.meta.volatile?u(n.meta.default):n.meta.default}}S.extend(`array`,(e,{inner:t,meta:n},i)=>{if(!Array.isArray(e))throw new x(`expected array but got ${e}`,i);return k(e.length,n,`array length`,i,!r(t.meta.default)),[e.map((n,r)=>j(e,r,t,i))]}),S.extend(`dict`,(e,{inner:t,sKey:n},r,a)=>{if(!i(e))throw new x(`expected object but got ${e}`,r);let o={};for(let i in e){let s;try{s=S.resolve(i,n,r)[0]}catch(e){if(a)continue;throw e}o[s]=j(e,i,t,r),e[s]=e[i],i!==s&&delete e[i]}return[o]}),S.extend(`tuple`,(e,{list:t},n,r)=>{if(!Array.isArray(e))throw new x(`expected array but got ${e}`,n);let i=t.map((t,r)=>j(e,r,t,n));return r||i.push(...e.slice(t.length)),[i]});function M(e,t){for(let n in t)n in e||(e[n]=t[n])}S.extend(`object`,(e,{dict:t},n,a)=>{if(!i(e))throw new x(`expected object but got ${e}`,n);let o={};for(let i in t){let a=j(e,i,t[i],n);(!r(a)||i in e)&&(o[i]=a)}return a||M(o,e),[o]}),S.extend(`union`,(e,{list:t,toString:n},r,i)=>{let a=[];for(let n of t)try{return S.resolve(e,n,r,i)}catch(e){a.push(e)}throw new x(`expected ${n()} but got ${JSON.stringify(e)}`,r)}),S.extend(`intersect`,(e,{list:t,toString:n},a,o)=>{if(!t.length)return[e];let s;for(let i of t){let t=S.resolve(e,i,a,!0)[0];if(!r(t)){if(r(s))s=t;else if(typeof s!=typeof t)throw new x(`expected ${n()} but got ${JSON.stringify(e)}`,a);else if(typeof t==`object`)M(s??={},t);else if(s!==t)throw new x(`expected ${n()} but got ${JSON.stringify(e)}`,a)}}return!o&&i(e)&&M(s,e),[s]}),S.extend(`transform`,(e,{inner:t,callback:n,preserve:r},i)=>{let[a,o=e]=S.resolve(e,t,i,!0);return r?[n(a)]:[n(a),n(o)]});let N={};function P(e,t,n){N[e]=n,Object.assign(S,{[e](...n){let r=new S({type:e});return t.forEach((e,t)=>{switch(e){case`sKey`:r.sKey=n[t]??S.string();break;case`inner`:r.inner=S.from(n[t]);break;case`list`:r.list=n[t].map(S.from);break;case`dict`:r.dict=o(n[t],S.from);break;case`bits`:r.bits={};for(let e in n[t])typeof n[t][e]==`number`&&(r.bits[e]=n[t][e]);break;case`callback`:{let e=r.callback=n[t];e.toJSON||=()=>e.toString();break}case`constructor`:{let e=r.constructor=n[t];typeof e==`function`&&(e.toJSON||=()=>e.name);break}default:r[e]=n[t]}}),e===`object`||e===`dict`?r.meta.default={}:e===`array`||e===`tuple`?r.meta.default=[]:e===`bitset`&&(r.meta.default=0),r}})}P(`is`,[`constructor`],({constructor:e})=>typeof e==`function`?e.name:e),P(`any`,[],()=>`any`),P(`never`,[],()=>`never`),P(`const`,[`value`],({value:e})=>typeof e==`string`?JSON.stringify(e):e),P(`string`,[],()=>`string`),P(`number`,[],()=>`number`),P(`boolean`,[],()=>`boolean`),P(`bitset`,[`bits`],()=>`bitset`),P(`function`,[],()=>`function`),P(`array`,[`inner`],({inner:e})=>`${e.toString(!0)}[]`),P(`dict`,[`inner`,`sKey`],({inner:e,sKey:t})=>`{ [key: ${t.toString()}]: ${e.toString()} }`),P(`tuple`,[`list`],({list:e})=>`[${e.map(e=>e.toString()).join(`, `)}]`),P(`object`,[`dict`],({dict:e})=>Object.keys(e).length===0?`{}`:`{ ${Object.entries(e).map(([e,t])=>`${e}${t.meta.required?``:`?`}: ${t.toString()}`).join(`, `)} }`),P(`union`,[`list`],({list:e},t)=>{let n=e.map(({toString:e})=>e()).join(` | `);return t?`(${n})`:n}),P(`intersect`,[`list`],({list:e})=>`${e.map(e=>e.toString(!0)).join(` & `)}`),P(`transform`,[`inner`,`callback`,`preserve`],({inner:e},t)=>e.toString(t));let F=2147483647,I=S.object({backoffBaseMs:S.natural().min(1).max(F).default(500),backoffFactor:S.number().min(1).max(Number.MAX_VALUE).default(2),backoffMaxMs:S.natural().min(1).max(F).default(1e4),generationReadyWarnMs:S.natural().min(1).max(F).default(3e3),generationReadyTimeoutMs:S.natural().min(1).max(F).default(15e3)});function L(e={}){let t=I(e);if(!Number.isFinite(t.backoffFactor))throw RangeError(`connection recovery backoffFactor must be finite`);return t}let R=/* @__PURE__ */ Error(`connection: manual reconnect requested`),z=/* @__PURE__ */ Error(`connection: browser network state changed`);function B(e,t){return new Promise(n=>{let r=setTimeout(i,e);t.addEventListener(`abort`,i,{once:!0});function i(){clearTimeout(r),t.removeEventListener(`abort`,i),n()}})}function V(e){return e.aborted?Promise.resolve():new Promise(t=>{e.addEventListener(`abort`,()=>{t()},{once:!0})})}var H=class{source;sinks;generation=0;attempt=0;current=null;retryDelay=null;running=!1;immediateRetry=!1;networkAvailable=!0;lastState;config;constructor(e,t={},n={}){this.source=e,this.sinks=t,this.config=L(n)}start(){this.running||(this.running=!0,this.loop())}stop(){this.running=!1,this.current?.abort(),this.current=null,this.retryDelay?.abort(),this.retryDelay=null}reconnect(){this.running&&(this.attempt=0,this.immediateRetry=!0,this.emitState(`connecting`),this.isRunning()&&(this.current?.abort(R),this.retryDelay?.abort(R)))}revalidate(){if(!this.running||this.lastState===void 0||this.lastState===`connecting`)return;let e=!1;this.lastState===`connected`&&this.callSink(()=>{e=this.sinks.onProbeRequested?.()===!0}),e||this.reconnect()}setNetworkAvailable(e){this.networkAvailable!==e&&(this.networkAvailable=e,this.attempt=0,this.immediateRetry=e,this.running&&(this.emitState(e?`connecting`:`disconnected`),this.isRunning()&&(this.current?.abort(z),this.retryDelay?.abort(z))))}backoffCap(e){let{backoffBaseMs:t,backoffFactor:n,backoffMaxMs:r}=this.config;return Math.min(r,t*n**Math.max(0,e-1))}backoffDelay(e){let t=this.backoffCap(e);return t/2+t/2*Math.random()}isRetryInterrupted(e){return this.immediateRetry||!this.networkAvailable&&!e}isRunning(){return this.running}isGenerationActive(e){return this.isRunning()&&!e.signal.aborted}async loop(){let e=!1;for(;this.running;){if(!this.networkAvailable&&!this.immediateRetry){let t=new AbortController;if(this.retryDelay=t,this.emitState(`disconnected`),await V(t.signal),this.retryDelay===t&&(this.retryDelay=null),!this.isRunning())return;e=!0;continue}let t=!1;if(e){let e=this.immediateRetry||this.lastState===`connected`;this.immediateRetry=!1,e&&(this.attempt=0),t=e;let n=++this.attempt;if(this.emitState(`connecting`),!this.isRunning())return;if(this.isRetryInterrupted(e))continue;if(!e){let e=new AbortController;if(this.retryDelay=e,await B(this.backoffDelay(n),e.signal),this.retryDelay===e&&(this.retryDelay=null),!this.isRunning())return;if(e.signal.aborted)continue}if(console.warn(`[connection] connection lost, retry #${String(n)}`),this.callSink(()=>{this.sinks.onReconnectRequested?.()}),!this.isRunning())return}let n=++this.generation,r=new AbortController;this.current=r;let i=!1,a,o,s,c=new Promise((e,t)=>{a=e,o=t}),l=new Promise((e,t)=>{s=t}),u=e=>{!i&&n===this.generation&&this.isGenerationActive(r)&&(i=!0,a(e))},d=new Promise(e=>{let t=()=>{n===this.generation&&!r.signal.aborted&&r.abort(),e()};Promise.resolve().then(()=>this.source(r.signal,u)).then(()=>{let e=/* @__PURE__ */ Error(`connection generation ended`);i||o(e),s(e),t()},e=>{let n=e instanceof Error?e:Error(`connection generation failed`,{cause:e});i||o(n),s(n),t()})});try{let e=await Promise.race([U(c,this.config,r.signal),l]);if(r.signal.aborted)throw Error(`generation aborted during readiness handshake`);this.attempt=0,this.emitState(`connected`),this.isGenerationActive(r)&&this.callSink(()=>{this.sinks.onConnected?.(e)})}catch(e){r.signal.aborted||r.abort(e)}if(await d,!this.isRunning())return;t&&(this.attempt=0),e=!0}}emitState(e){this.lastState!==e&&(this.lastState=e,this.callSink(()=>this.sinks.onStateChange?.(e)))}callSink(e){try{e()}catch(e){console.error(`[connection] connection sink threw:`,e)}}};function U(e,t,n){return new Promise((r,i)=>{let a=!1,o=setTimeout(()=>{console.warn(`[connection] generation is still not ready after ${String(t.generationReadyWarnMs)}ms`)},t.generationReadyWarnMs),s=setTimeout(()=>{let e=/* @__PURE__ */ Error(`connection generation was not ready within ${String(t.generationReadyTimeoutMs)}ms`);console.warn(`[connection] ${e.message}; cancelling generation`),l({error:e})},t.generationReadyTimeoutMs),c=()=>{l({error:Error(`connection generation aborted`,{cause:n.reason})})},l=e=>{a||(a=!0,clearTimeout(o),clearTimeout(s),n.removeEventListener(`abort`,c),`error`in e?i(e.error):r(e.value))};n.addEventListener(`abort`,c,{once:!0}),e.then(e=>{l({value:e})},e=>{l({error:e})})})}function W(e){return e}function G(e){return{ok:!1,error:{code:`gateway/internal`,message:e instanceof Error?e.message:String(e),details:{}}}}function K(){let e=globalThis.crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(16)),t=new DataView(e.buffer,e.byteOffset,e.byteLength);t.setUint8(6,t.getUint8(6)&15|64),t.setUint8(8,t.getUint8(8)&63|128);let n=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}let q=/^\/[A-Za-z0-9._~-]+$/,J=/^[A-Za-z0-9_$.-]+$/;function Y(e,t){let n=e??((e,t)=>globalThis.fetch(e,t));return{async call(e,t,r,i){Q(e,t);let a=W(K()),o={type:`client-request`,rpcId:a,method:t,payload:r},s=`${e}/${t}`.slice(1),c=await n(s,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(o),...i===void 0?{}:{signal:i}});if(!c.ok)throw Error(`transport failure for ${e}/${t}: HTTP ${c.status}`);let l=c.headers.get(`content-type`)?.split(`;`,1)[0]?.trim().toLowerCase()===`multipart/form-data`?await te(c):X(await c.json());if(i?.throwIfAborted(),l.rpcId!==a)throw Error(`rpcId mismatch for ${t}: sent ${a}, got ${l.rpcId}`);return l.result},...t===void 0?{}:{open(e,n,r,i,a){if(Q(e,n),e!==`/api`)throw Error(`connection: worker-local streams require the /api channel, got ${JSON.stringify(e)}`);return t(n,r,i,a)}}}}async function te(e){let t=await e.formData(),n=/* @__PURE__ */ new Map;for(let[e,r]of t){if(n.has(e))throw TypeError(`connection: invalid binary response fields`);n.set(e,r)}let r=n.get(`metadata`);if(n.delete(`metadata`),typeof r!=`string`)throw TypeError(`connection: invalid binary response fields`);let i=JSON.parse(r),a=X(i);if(!a.result.ok||!Z(i)||!Array.isArray(i.attachments)||i.attachments.length===0)throw TypeError(`connection: invalid binary response result`);let o={value:a.result.value};for(let e of i.attachments){if(!Z(e)||e.codec!==`bytes`||typeof e.part!=`string`||!Array.isArray(e.path))throw TypeError(`connection: invalid binary response attachment`);let t=n.get(e.part);if(n.delete(e.part),!(t instanceof Blob))throw TypeError(`connection: invalid binary response fields`);let r=o,i=`value`;for(let t of e.path){let e=Reflect.get(r,i);if(typeof e!=`object`||!e)throw TypeError(`connection: invalid binary response path`);if(Array.isArray(e)){if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0||t>=e.length)throw TypeError(`connection: invalid binary response path`)}else if(typeof t!=`string`)throw TypeError(`connection: invalid binary response path`);if(!Object.hasOwn(e,t))throw TypeError(`connection: invalid binary response path`);r=e,i=t}if(Reflect.get(r,i)!==null)throw TypeError(`connection: invalid binary response placeholder`);Object.defineProperty(r,i,{value:new Uint8Array(await t.arrayBuffer()),enumerable:!0,writable:!0,configurable:!0})}if(n.size!==0)throw TypeError(`connection: invalid binary response fields`);return{rpcId:a.rpcId,result:{ok:!0,value:o.value}}}function X(e){if(!Z(e)||e.type!==`server-response`||typeof e.rpcId!=`string`)throw TypeError(`connection: invalid server-response envelope`);let t=e.result;if(!Z(t))throw TypeError(`connection: invalid server-response result`);if(t.ok===!0)return{rpcId:W(e.rpcId),result:{ok:!0,value:t.value}};if(t.ok!==!1||!Z(t.error))throw TypeError(`connection: invalid server-response result`);let n=t.error;if(typeof n.code!=`string`||typeof n.message!=`string`||!Z(n.details))throw TypeError(`connection: invalid server-response failure`);return{rpcId:W(e.rpcId),result:{ok:!1,error:{code:n.code,message:n.message,details:n.details}}}}function Z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Q(e,t){let n=t.split(`/`);if(!q.test(e)||n.some(e=>e===``||e===`.`||e===`..`||!J.test(e)))throw Error(`connection: invalid RPC target ${JSON.stringify(`${e}/${t}`)}`)}function ne(e){if(e===`localhost`||e===`[::1]`)return!0;let t=e.split(`.`);return t.length===4&&t[0]===`127`&&t.every(e=>/^\d{1,3}$/.test(e)&&Number(e)<=255)}let re=[];function ie(e){let t=globalThis.window,n=t?.navigator?.onLine;if(t===void 0||n===void 0)return()=>{};let r=()=>{e.setNetworkAvailable(!0)},i=()=>{e.setNetworkAvailable(!1)},a=t.document,o=a?.visibilityState===`hidden`,s,c=()=>{if(a?.visibilityState===`hidden`||s!==void 0)return;let n=t.navigator?.onLine!==!1;e.setNetworkAvailable(n),n&&(s=setTimeout(()=>{s=void 0,a?.visibilityState!==`hidden`&&t.navigator?.onLine!==!1&&e.revalidate()},0))},l=()=>{a?.visibilityState===`hidden`?o=!0:o&&(o=!1,c())},u=e=>{e.persisted&&c()};return e.setNetworkAvailable(n),t.addEventListener(`online`,r),t.addEventListener(`offline`,i),t.addEventListener(`pageshow`,u),a?.addEventListener(`visibilitychange`,l),()=>{clearTimeout(s),t.removeEventListener(`online`,r),t.removeEventListener(`offline`,i),t.removeEventListener(`pageshow`,u),a?.removeEventListener(`visibilitychange`,l)}}function $(e,t={}){let n=t.location,r=t.transport,i=t.recovery??{},a=r?.rpc??Y(r?.fetch,r?.openStream),o,s,c=0,l,u,d=/* @__PURE__ */ new Set,f=/* @__PURE__ */ new Set,p=e=>{if(!Object.is(l,e)){l=e;for(let e of[...d])try{e()}catch(e){console.error(`[connection] generation listener threw:`,e)}}},m=e=>{if(u!==e){u=e;for(let e of[...f])try{e()}catch(e){console.error(`[connection] state listener threw:`,e)}}},h=e=>{s===e&&(s=void 0,e.stopNetworkWatch(),e.controller.stop(),p(void 0),m(void 0))},g={isLoopback:r?.ownsHost===!0||n===void 0||ne(n.hostname),generation:{getSnapshot:()=>l,subscribe:e=>(d.add(e),()=>{d.delete(e)})},state:{getSnapshot:()=>u,subscribe:e=>(f.add(e),()=>{f.delete(e)})},rpc:a,reconnect(){s?.controller.reconnect()},registerGenerationSource(e){if(o!==void 0)throw Error(`connection: a generation source is already registered`);return o=e,()=>{if(o!==e)return;o=void 0;let t=s;t?.source===e&&h(t)}},start(e,t){if(s!==void 0)throw Error(`connection: the stream loop is already owned by another consumer`);let n=o;if(n===void 0)throw Error(`connection: no generation source is registered`);let r={},a=()=>s?.token===r,u=new H(n,{...e,onConnected:t=>{let n={id:++c,host:t};p(n),a()&&Object.is(l,n)&&e.onConnected?.(t)},onStateChange:t=>{t!==`connected`&&p(void 0),a()&&(m(t),e.onStateChange?.(t))}},{...i,...t}),d={token:r,source:n,controller:u,stopNetworkWatch:ie(u)};return s=d,u.start(),{stop:()=>{h(d)}}}};e.provide(`connection`,g)}function ae(e){let t=globalThis,n=typeof location>`u`?void 0:location,r=t.__DSH_TRANSPORT__;$(e,{...r===void 0?{}:{transport:r},recovery:L(t.__DSH_CONNECTION_RECOVERY__),...n===void 0?{}:{location:n}})}return n.RpcId=W,n.apply=ae,n.inject=re,n.installConnection=$,n.transportError=G,t.exports}});
|