wire-mesh 3.6.14 → 3.6.16

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.
@@ -26,14 +26,20 @@ ${Vg.repeat(a.depth)}}`:a.close=`}`;break}case W.TAG:o+=String(c),o+=Wg(W.POS_IN
26
26
  `;let n=0;for(let i of e.children){if(Jg(i)){let a=String(n);e.mt===W.MAP?a=n%2?`val ${(n-1)/2}`:`key ${n/2}`:e.mt===W.TAG&&(a=``),r+=Zg(i,t,a)}n++}}}return r}var Qg={...Bg.defaultDecodeOptions,initialDepth:0,noPrefixHex:!1,minCol:0};function $g(e,t){let n={...Qg,...t,ParentType:qg,saveOriginal:!0},r=new Ig(e,n),i,a;for(let e of r){if(a=Bg.create(e,i,n,r),e[2]===Zm.BREAK){if(i?.isStreaming)i.left=1;else throw Error(`Unexpected BREAK`)}if(!Jg(a)){let t=new qg(e,0,i,n);t.leaf=!0,t.children.push(a),nh(t,r.toHere(e[3])),a=t}let t=(a.depth+1)*2,o=a.numBytes();for(o&&(t+=1,t+=o*2),n.minCol=Math.max(n.minCol,t),i&&i.push(a,r,e[3]),i=a;i?.done;)a=i,a.leaf||nh(a,r.toHere(a.offset)),{parent:i}=i}t&&(t.minCol=n.minCol);let o=n.noPrefixHex?``:`0x${uh(r.toHere(0))}
27
27
  `;return o+=Zg(a,n),o}var e_=!hh();function t_(e){if(typeof e==`object`&&e){if(e.constructor!==Number)throw Error(`Expected number: ${e}`)}else if(typeof e!=`number`)throw Error(`Expected number: ${e}`)}function n_(e){if(typeof e==`object`&&e){if(e.constructor!==String)throw Error(`Expected string: ${e}`)}else if(typeof e!=`string`)throw Error(`Expected string: ${e}`)}function r_(e){if(!(e instanceof Uint8Array))throw Error(`Expected Uint8Array: ${e}`)}function i_(e){if(!Array.isArray(e))throw Error(`Expected Array: ${e}`)}Dg(Map,(e,t,n)=>{let r=[...e.entries()].map(e=>[e[0],e[1],Mg(e[0],n)]);if(n.rejectDuplicateKeys){let e=new Set;for(let[t,n,i]of r){let t=uh(i);if(e.has(t))throw Error(`Duplicate map key: 0x${t}`);e.add(t)}}n.sortKeys&&r.sort(n.sortKeys),Og(e,e.size,W.MAP,t,n);for(let[e,i,a]of r)t.write(a),jg(i,t,n)});function a_(e){return n_(e.contents),new Date(e.contents)}a_.comment=e=>{n_(e.contents);let t=new Date(e.contents);return`(String ${e.tag===Jm.DATE_FULL?`Full `:``}Date) ${t.toISOString()}`},$m.registerDecoder(Jm.DATE_STRING,a_),$m.registerDecoder(Jm.DATE_FULL,a_);function o_(e){return t_(e.contents),new Date(e.contents*1e3)}o_.comment=e=>(t_(e.contents),`(Epoch Date) ${new Date(e.contents*1e3).toISOString()}`),$m.registerDecoder(Jm.DATE_EPOCH,o_);var s_=864e5;function c_(e){return t_(e.contents),new Date(e.contents*s_)}c_.comment=e=>(t_(e.contents),`(Epoch Date) ${new Date(e.contents*s_).toISOString()}`),$m.registerDecoder(Jm.DATE_EPOCH_DAYS,c_),Dg(Date,(e,t,n)=>{switch(n.dateTag){case Jm.DATE_EPOCH:return[n.dateTag,e.valueOf()/1e3];case Jm.DATE_STRING:return[n.dateTag,e.toISOString().replace(/\.000Z$/,`Z`)];case Jm.DATE_EPOCH_DAYS:return[n.dateTag,Math.floor(e.valueOf()/s_)];case Jm.DATE_FULL:return[n.dateTag,e.toISOString().split(`T`)[0]];default:throw Error(`Unsupported date tag: ${n.dateTag}`)}});function l_(e,t,n){if(r_(t.contents),n.rejectBigInts)throw Error(`Decoding unwanted big integer: ${t}(h'${uh(t.contents)}')`);if(n.requirePreferred&&t.contents[0]===0)throw Error(`Decoding overly-large bigint: ${t.tag}(h'${uh(t.contents)})`);let r=t.contents.reduce((e,t)=>e<<8n|BigInt(t),0n);e&&(r=-1n-r);let i=r>=-(2**53-1)&&r<=2**53-1;if(n.requirePreferred&&i)throw Error(`Decoding bigint that could have been int: ${r}n`);return n.collapseBigInts&&i&&(r=Number(r)),n.boxed?rh(r,t.contents):r}var u_=l_.bind(null,!1),d_=l_.bind(null,!0);u_.comment=(e,t)=>`(Positive BigInt) ${l_(!1,e,t)}n`,d_.comment=(e,t)=>`(Negative BigInt) ${l_(!0,e,t)}n`,$m.registerDecoder(Jm.POS_BIGINT,u_),$m.registerDecoder(Jm.NEG_BIGINT,d_);function f_(e,t){return r_(e.contents),e}f_.comment=(e,t,n)=>{r_(e.contents);let r={...t,initialDepth:n+2,noPrefixHex:!0},i=eh(e),a=2**((i[0]&31)-24)+1,o=i[a]&31,s=uh(i.subarray(a,++a));o>=24&&(s+=` `,s+=uh(i.subarray(a,a+2**(o-24)))),r.minCol=Math.max(r.minCol,(n+1)*2+s.length);let c=$g(e.contents,r),l=`Embedded CBOR
28
28
  `;return l+=`${``.padStart((n+1)*2,` `)}${s}`.padEnd(r.minCol+1,` `),l+=`-- Bytes (Length: ${e.contents.length})
29
- `,l+=c,l},f_.noChildren=!0,$m.registerDecoder(Jm.CBOR,f_),$m.registerDecoder(Jm.URI,e=>(n_(e.contents),new URL(e.contents)),`URI`),Dg(URL,e=>[Jm.URI,e.toString()]),$m.registerDecoder(Jm.BASE64URL,e=>(n_(e.contents),mh(e.contents)),`Base64url-encoded`),$m.registerDecoder(Jm.BASE64,e=>(n_(e.contents),fh(e.contents)),`Base64-encoded`),$m.registerDecoder(35,e=>(n_(e.contents),new RegExp(e.contents)),`RegExp`),$m.registerDecoder(21065,e=>{n_(e.contents);let t=`^(?:${e.contents})$`;return new RegExp(t,`u`)},`I-RegExp`),$m.registerDecoder(Jm.REGEXP,e=>{if(i_(e.contents),e.contents.length<1||e.contents.length>2)throw Error(`Invalid RegExp Array: ${e.contents}`);return new RegExp(e.contents[0],e.contents[1])},`RegExp`),Dg(RegExp,e=>[Jm.REGEXP,[e.source,e.flags]]),$m.registerDecoder(64,e=>(r_(e.contents),e.contents),`uint8 Typed Array`);function p_(e,t,n){r_(e.contents);let r=e.contents.length;if(r%t.BYTES_PER_ELEMENT!==0)throw Error(`Number of bytes must be divisible by ${t.BYTES_PER_ELEMENT}, got: ${r}`);r/=t.BYTES_PER_ELEMENT;let i=new t(r),a=new DataView(e.contents.buffer,e.contents.byteOffset,e.contents.byteLength),o=a[`get${t.name.replace(/Array/,``)}`].bind(a);for(let e=0;e<r;e++)i[e]=o(e*t.BYTES_PER_ELEMENT,n);return i}function m_(e,t,n,r,i){let a=i.forceEndian??e_;if(bg(a?t:n,e,i),yg(r.byteLength,e,W.BYTE_STRING),e_===a)e.write(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));else{let t=e[`write${r.constructor.name.replace(/Array/,``)}`].bind(e);for(let e of r)t(e,a)}}$m.registerDecoder(65,e=>p_(e,Uint16Array,!1),`uint16, big endian, Typed Array`),$m.registerDecoder(66,e=>p_(e,Uint32Array,!1),`uint32, big endian, Typed Array`),$m.registerDecoder(67,e=>p_(e,BigUint64Array,!1),`uint64, big endian, Typed Array`),$m.registerDecoder(68,e=>(r_(e.contents),new Uint8ClampedArray(e.contents)),`uint8 Typed Array, clamped arithmetic`),Dg(Uint8ClampedArray,e=>[68,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),$m.registerDecoder(69,e=>p_(e,Uint16Array,!0),`uint16, little endian, Typed Array`),Dg(Uint16Array,(e,t,n)=>m_(t,69,65,e,n)),$m.registerDecoder(70,e=>p_(e,Uint32Array,!0),`uint32, little endian, Typed Array`),Dg(Uint32Array,(e,t,n)=>m_(t,70,66,e,n)),$m.registerDecoder(71,e=>p_(e,BigUint64Array,!0),`uint64, little endian, Typed Array`),Dg(BigUint64Array,(e,t,n)=>m_(t,71,67,e,n)),$m.registerDecoder(72,e=>(r_(e.contents),new Int8Array(e.contents)),`sint8 Typed Array`),Dg(Int8Array,e=>[72,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),$m.registerDecoder(73,e=>p_(e,Int16Array,!1),`sint16, big endian, Typed Array`),$m.registerDecoder(74,e=>p_(e,Int32Array,!1),`sint32, big endian, Typed Array`),$m.registerDecoder(75,e=>p_(e,BigInt64Array,!1),`sint64, big endian, Typed Array`),$m.registerDecoder(77,e=>p_(e,Int16Array,!0),`sint16, little endian, Typed Array`),Dg(Int16Array,(e,t,n)=>m_(t,77,73,e,n)),$m.registerDecoder(78,e=>p_(e,Int32Array,!0),`sint32, little endian, Typed Array`),Dg(Int32Array,(e,t,n)=>m_(t,78,74,e,n)),$m.registerDecoder(79,e=>p_(e,BigInt64Array,!0),`sint64, little endian, Typed Array`),Dg(BigInt64Array,(e,t,n)=>m_(t,79,75,e,n)),$m.registerDecoder(81,e=>p_(e,Float32Array,!1),`IEEE 754 binary32, big endian, Typed Array`),$m.registerDecoder(82,e=>p_(e,Float64Array,!1),`IEEE 754 binary64, big endian, Typed Array`),$m.registerDecoder(85,e=>p_(e,Float32Array,!0),`IEEE 754 binary32, little endian, Typed Array`),Dg(Float32Array,(e,t,n)=>m_(t,85,81,e,n)),$m.registerDecoder(86,e=>p_(e,Float64Array,!0),`IEEE 754 binary64, big endian, Typed Array`),Dg(Float64Array,(e,t,n)=>m_(t,86,82,e,n)),$m.registerDecoder(Jm.SET,(e,t)=>{if(i_(e.contents),t.sortKeys){let n=Bg.decodeToEncodeOpts(t),r=null;for(let i of e.contents){let e=[i,void 0,Mg(i,n)];if(r&&t.sortKeys(r,e)>=0)throw Error(`Set items out of order in tag #${Jm.SET}`);r=e}}return new Set(e.contents)},`Set`),Dg(Set,(e,t,n)=>{let r=[...e];if(n.sortKeys){let e=r.map(e=>[e,void 0,Mg(e,n)]);e.sort(n.sortKeys),r=e.map(([e])=>e)}return[Jm.SET,r]}),$m.registerDecoder(Jm.JSON,e=>(n_(e.contents),JSON.parse(e.contents)),`JSON-encoded`);function h_(e){return r_(e.contents),new tg().decode(e.contents)}h_.comment=e=>{r_(e.contents);let t=new tg;return`(WTF8 string): ${JSON.stringify(t.decode(e.contents))}`},$m.registerDecoder(Jm.WTF8,h_),$m.registerDecoder(Jm.SELF_DESCRIBED,e=>e.contents,`Self-Described`),$m.registerDecoder(Jm.INVALID_16,()=>{throw Error(`Tag always invalid: ${Jm.INVALID_16}`)},`Invalid`),$m.registerDecoder(Jm.INVALID_32,()=>{throw Error(`Tag always invalid: ${Jm.INVALID_32}`)},`Invalid`),$m.registerDecoder(Jm.INVALID_64,()=>{throw Error(`Tag always invalid: ${Jm.INVALID_64}`)},`Invalid`),$m.registerDecoder(Jm.SYMBOL,e=>{let t=e.contents;if(Array.isArray(e.contents)){if(e.contents.length!==1)throw Error(`Expected Array of size 1: ${e.contents}`);[t]=e.contents}if(n_(t),!t.length)throw Error(`Expected non-empty string: ${e.contents}`);return Symbol.for(t)},`Symbol`);function g_(e){throw Error(`Encoding ${e.constructor.name} intentionally unimplmented. It is not concrete enough to interoperate. Convert to Uint8Array first.`)}Dg(ArrayBuffer,g_),Dg(DataView,g_),typeof SharedArrayBuffer<`u`&&Dg(SharedArrayBuffer,g_);function __(e){return[NaN,e.valueOf()]}Dg(Boolean,__),Dg(Number,__),Dg(String,__),Dg(BigInt,__);function v_(e){let t={...Bg.defaultDecodeOptions};if(e.dcbor?Object.assign(t,Bg.dcborDecodeOptions):e.cde&&Object.assign(t,Bg.cdeDecodeOptions),Object.assign(t,e),Object.hasOwn(t,`rejectLongNumbers`))throw TypeError(`rejectLongNumbers has changed to requirePreferred`);return t.boxed&&(t.saveOriginal=!0),t}var y_=class{parent=void 0;ret=void 0;step(e,t,n){if(this.ret=Bg.create(e,this.parent,t,n),e[2]===Zm.BREAK){if(this.parent?.isStreaming)this.parent.left=0;else throw Error(`Unexpected BREAK`)}else this.parent&&this.parent.push(this.ret,n,e[3]);for(this.ret instanceof Bg&&(this.parent=this.ret);this.parent?.done;){this.ret=this.parent.convert(n);let e=this.parent.parent;e?.replaceLast(this.ret,this.parent,n),this.parent=e}}};function b_(e,t={}){let n=v_(t),r=new Ig(e,n),i=new y_;for(let e of r)i.step(e,n,r);return i.ret}var{cdeDecodeOptions:x_,dcborDecodeOptions:S_,defaultDecodeOptions:C_}=Bg;function w_(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function T_(e,t=`|`){return e.map(e=>G_(e)).join(t)}function E_(e,t){return typeof t==`bigint`?t.toString():t}function D_(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function O_(e){return e==null}function k_(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function A_(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}var j_=Symbol(`evaluating`);function M_(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==j_)return r===void 0&&(r=j_,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function N_(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function P_(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function F_(e){return JSON.stringify(e)}function I_(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var L_=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function R_(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var z_=D_(()=>{if(Av.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function B_(e){if(R_(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return R_(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function V_(e){return B_(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var H_=new Set([`string`,`number`,`symbol`]);function U_(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function W_(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function G(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function G_(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function K_(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}var q_={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function J_(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return W_(e,P_(e._zod.def,{get shape(){let e={};for(let r of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(n.shape,r))throw Error(`Unrecognized key: "${String(r)}"`);t[r]&&N_(e,r,n.shape[r])}return N_(this,`shape`,e),e},checks:[]}))}function Y_(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return W_(e,P_(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(n.shape,e))throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&delete r[e]}return N_(this,`shape`,r),r},checks:[]}))}function X_(e,t){if(!B_(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return W_(e,P_(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return N_(this,`shape`,n),n}}))}function Z_(e,t){if(!B_(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return W_(e,P_(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return N_(this,`shape`,n),n}}))}function Q_(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return W_(e,P_(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return N_(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function $_(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);return W_(t,P_(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t of Reflect.ownKeys(n)){if(!Object.prototype.hasOwnProperty.call(r,t))throw Error(`Unrecognized key: "${String(t)}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t of Reflect.ownKeys(r))i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return N_(this,`shape`,i),i},checks:[]}))}function ev(e,t,n){return W_(t,P_(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t of Reflect.ownKeys(n)){if(!Object.prototype.hasOwnProperty.call(i,t))throw Error(`Unrecognized key: "${String(t)}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t of Reflect.ownKeys(r))i[t]=new e({type:`nonoptional`,innerType:r[t]});return N_(this,`shape`,i),i}}))}function tv(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function nv(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function rv(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function iv(e){return typeof e==`string`?e:e?.message}function av(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function ov(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:iv(e.inst?._zod.def?.error?.(e))??iv(a?.(e))??iv(t?.error?.(e))??iv(n.customError?.(e))??iv(n.localeError?.(e))??`Invalid input`,{inst:s,schema:c,continue:l,input:u,...d}=e;return d.path??=[],d.message=o,t?.reportInput&&(d.input=u),d}var sv=/[\uD800-\uDBFF]/;function cv(e){let t=e.length;if(!sv.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function lv(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function uv(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function dv(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function fv(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):hv(e,n,r.value)}}function pv(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function mv(e,t,n){return pv(e,t,n,!1)}function hv(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:pv(this,t,n.bind(this))},set(e){pv(this,t,e)}})}function gv(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}var _v,vv=!1,yv={configurable:!0,get(){vv=!0}};function bv(e,t,n){let r=Object.getPrototypeOf(e._zod);if(t in r&&_v!==e._zod){_v=void 0;return}_v=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,yv);let e=vv;vv=!1;try{let r=n(this);return vv?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),vv||=e,r}catch(n){throw delete this[t],vv||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})}function xv(e,t,n,r){let i=gv(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}var Sv=`~constantCatch`;function Cv(e){let t=()=>e;return t[Sv]=!0,t}var wv,Tv={value:void 0,enumerable:!1},Ev=`captureStackTrace`in Error?Error:null;function Dv(e){let t=Ev;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return Ev=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function K(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){Tv.value=new a(r);try{Object.defineProperty(n,"_zod",Tv)}finally{Tv.value=void 0}}if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),fv(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?Dv(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var Ov=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},kv=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(wv=globalThis).__zod_globalConfig??(wv.__zod_globalConfig={});var Av=globalThis.__zod_globalConfig;function jv(e){return e&&Object.assign(Av,e),Av}function Mv(){let e=this._zod;return e.message??=JSON.stringify(e.def,E_,2),e.message}function Nv(e){this._zod.message=e}var Pv={get:Mv,set:Nv,enumerable:!0,configurable:!0},Fv={value:void 0,enumerable:!1},Iv={value:void 0,enumerable:!1},Lv=new WeakSet([Object.prototype,Error.prototype]),Rv=(e,t)=>{e.name=`$ZodError`,Fv.value=e._zod,Object.defineProperty(e,"_zod",Fv),Iv.value=t,Object.defineProperty(e,"issues",Iv),Fv.value=void 0,Iv.value=void 0,Object.defineProperty(e,"message",Pv);let n=Object.getPrototypeOf(e);Lv.has(n)||(Lv.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},zv=K(`$ZodError`,Rv),Bv=K(`$ZodError`,Rv,void 0,{Parent:Error});function Vv(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function Hv(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?Vv(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Uv(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function Wv(e,t){return{callee:t?.callee??e,Err:t?.Err}}var Gv=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Ov;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>ov(e,o,jv())));throw L_(n,a?.callee??t),n}return s.value};return t},Kv=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>ov(e,o,jv())));throw L_(n,a?.callee??t),n}return s.value};return t},qv=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Ov;return a.issues.length?{success:!1,error:new(e??zv)(a.issues.map(e=>ov(e,i,jv())))}:{success:!0,data:a.value}},Jv=qv(Bv),Yv=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>ov(e,i,jv())))}:{success:!0,data:a.value}},Xv=Yv(Bv),Zv=e=>{let t=Gv(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,Wv(n,a))};return n},Qv=e=>{let t=Gv(e),n=(e,r,i,a)=>t(e,r,i,Wv(n,a));return n},$v=e=>{let t=Kv(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,Wv(n,a))};return n},ey=e=>{let t=Kv(e),n=async(e,r,i,a)=>await t(e,r,i,Wv(n,a));return n},ty=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return qv(e)(t,n,i)},ny=e=>(t,n,r)=>qv(e)(t,n,r),ry=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Yv(e)(t,n,i)},iy=e=>async(t,n,r)=>Yv(e)(t,n,r),ay=/^[cC][0-9a-z]{6,}$/,oy=/^[0-9a-z]+$/,sy=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,cy=/^[0-9a-vA-V]{20}$/,ly=/^[A-Za-z0-9]{27}$/,uy=/^[a-zA-Z0-9_-]{21}$/;function dy(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var fy=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,py=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,my=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,hy=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,gy=`^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function _y(){return new RegExp(gy,`u`)}var vy=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,yy=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,by=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,xy=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Sy=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Cy=/^[A-Za-z0-9_-]*$/,wy=/^https?$/,Ty=/^\+[1-9]\d{6,14}$/,Ey=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function Dy(e){return RegExp(`^${e}$`)}var Oy=Dy(Ey);function ky(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Ay(e){return RegExp(`^${ky(e)}$`)}function jy(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${ky({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${ky({precision:e.precision})}`:n;return RegExp(`^${Ey}T(?:${r})$`)}var My=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},Ny=/^-?\d+$/,Py=/^-?\d+(?:\.\d+)?$/,Fy=/^(?:true|false)$/i,Iy=/^null$/i,Ly=/^[^A-Z]*$/,Ry=/^[^a-z]*$/,zy=K(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),By=e=>{let t=e.value;return!O_(t)&&t.length!==void 0},Vy={number:`number`,bigint:`bigint`,object:`date`},Hy=K(`$ZodCheckLessThan`,(e,t)=>{zy.init(e,t);let n=Vy[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:Vy[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Uy=K(`$ZodCheckGreaterThan`,(e,t)=>{zy.init(e,t);let n=Vy[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:Vy[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Wy=K(`$ZodCheckMultipleOf`,(e,t)=>{zy.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):A_(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Gy=K(`$ZodCheckNumberFormat`,(e,t)=>{zy.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=q_[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=Ny)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Ky=K(`$ZodCheckMaxLength`,(e,t)=>{var n;zy.init(e,t),(n=e._zod.def).when??(n.when=By),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?cv(r):i)<=t.maximum)return;let a=lv(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),qy=K(`$ZodCheckMinLength`,(e,t)=>{var n;zy.init(e,t),(n=e._zod.def).when??(n.when=By),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?cv(r):i)>=t.minimum)return;let a=lv(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Jy=K(`$ZodCheckLengthEquals`,(e,t)=>{var n;zy.init(e,t),(n=e._zod.def).when??(n.when=By),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?cv(r):i;if(a===t.length)return;let o=lv(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Yy=K(`$ZodCheckStringFormat`,(e,t)=>{var n,r;zy.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Xy=K(`$ZodCheckRegex`,(e,t)=>{Yy.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Zy=K(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Ly,Yy.init(e,t)}),Qy=K(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Ry,Yy.init(e,t)}),$y=K(`$ZodCheckIncludes`,(e,t)=>{zy.init(e,t);let n=U_(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),eb=K(`$ZodCheckStartsWith`,(e,t)=>{zy.init(e,t);let n=RegExp(`^${U_(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),tb=K(`$ZodCheckEndsWith`,(e,t)=>{zy.init(e,t);let n=RegExp(`.*${U_(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),nb=K(`$ZodCheckOverwrite`,(e,t)=>{zy.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),rb=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
29
+ `,l+=c,l},f_.noChildren=!0,$m.registerDecoder(Jm.CBOR,f_),$m.registerDecoder(Jm.URI,e=>(n_(e.contents),new URL(e.contents)),`URI`),Dg(URL,e=>[Jm.URI,e.toString()]),$m.registerDecoder(Jm.BASE64URL,e=>(n_(e.contents),mh(e.contents)),`Base64url-encoded`),$m.registerDecoder(Jm.BASE64,e=>(n_(e.contents),fh(e.contents)),`Base64-encoded`),$m.registerDecoder(35,e=>(n_(e.contents),new RegExp(e.contents)),`RegExp`),$m.registerDecoder(21065,e=>{n_(e.contents);let t=`^(?:${e.contents})$`;return new RegExp(t,`u`)},`I-RegExp`),$m.registerDecoder(Jm.REGEXP,e=>{if(i_(e.contents),e.contents.length<1||e.contents.length>2)throw Error(`Invalid RegExp Array: ${e.contents}`);return new RegExp(e.contents[0],e.contents[1])},`RegExp`),Dg(RegExp,e=>[Jm.REGEXP,[e.source,e.flags]]),$m.registerDecoder(64,e=>(r_(e.contents),e.contents),`uint8 Typed Array`);function p_(e,t,n){r_(e.contents);let r=e.contents.length;if(r%t.BYTES_PER_ELEMENT!==0)throw Error(`Number of bytes must be divisible by ${t.BYTES_PER_ELEMENT}, got: ${r}`);r/=t.BYTES_PER_ELEMENT;let i=new t(r),a=new DataView(e.contents.buffer,e.contents.byteOffset,e.contents.byteLength),o=a[`get${t.name.replace(/Array/,``)}`].bind(a);for(let e=0;e<r;e++)i[e]=o(e*t.BYTES_PER_ELEMENT,n);return i}function m_(e,t,n,r,i){let a=i.forceEndian??e_;if(bg(a?t:n,e,i),yg(r.byteLength,e,W.BYTE_STRING),e_===a)e.write(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));else{let t=e[`write${r.constructor.name.replace(/Array/,``)}`].bind(e);for(let e of r)t(e,a)}}$m.registerDecoder(65,e=>p_(e,Uint16Array,!1),`uint16, big endian, Typed Array`),$m.registerDecoder(66,e=>p_(e,Uint32Array,!1),`uint32, big endian, Typed Array`),$m.registerDecoder(67,e=>p_(e,BigUint64Array,!1),`uint64, big endian, Typed Array`),$m.registerDecoder(68,e=>(r_(e.contents),new Uint8ClampedArray(e.contents)),`uint8 Typed Array, clamped arithmetic`),Dg(Uint8ClampedArray,e=>[68,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),$m.registerDecoder(69,e=>p_(e,Uint16Array,!0),`uint16, little endian, Typed Array`),Dg(Uint16Array,(e,t,n)=>m_(t,69,65,e,n)),$m.registerDecoder(70,e=>p_(e,Uint32Array,!0),`uint32, little endian, Typed Array`),Dg(Uint32Array,(e,t,n)=>m_(t,70,66,e,n)),$m.registerDecoder(71,e=>p_(e,BigUint64Array,!0),`uint64, little endian, Typed Array`),Dg(BigUint64Array,(e,t,n)=>m_(t,71,67,e,n)),$m.registerDecoder(72,e=>(r_(e.contents),new Int8Array(e.contents)),`sint8 Typed Array`),Dg(Int8Array,e=>[72,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),$m.registerDecoder(73,e=>p_(e,Int16Array,!1),`sint16, big endian, Typed Array`),$m.registerDecoder(74,e=>p_(e,Int32Array,!1),`sint32, big endian, Typed Array`),$m.registerDecoder(75,e=>p_(e,BigInt64Array,!1),`sint64, big endian, Typed Array`),$m.registerDecoder(77,e=>p_(e,Int16Array,!0),`sint16, little endian, Typed Array`),Dg(Int16Array,(e,t,n)=>m_(t,77,73,e,n)),$m.registerDecoder(78,e=>p_(e,Int32Array,!0),`sint32, little endian, Typed Array`),Dg(Int32Array,(e,t,n)=>m_(t,78,74,e,n)),$m.registerDecoder(79,e=>p_(e,BigInt64Array,!0),`sint64, little endian, Typed Array`),Dg(BigInt64Array,(e,t,n)=>m_(t,79,75,e,n)),$m.registerDecoder(81,e=>p_(e,Float32Array,!1),`IEEE 754 binary32, big endian, Typed Array`),$m.registerDecoder(82,e=>p_(e,Float64Array,!1),`IEEE 754 binary64, big endian, Typed Array`),$m.registerDecoder(85,e=>p_(e,Float32Array,!0),`IEEE 754 binary32, little endian, Typed Array`),Dg(Float32Array,(e,t,n)=>m_(t,85,81,e,n)),$m.registerDecoder(86,e=>p_(e,Float64Array,!0),`IEEE 754 binary64, big endian, Typed Array`),Dg(Float64Array,(e,t,n)=>m_(t,86,82,e,n)),$m.registerDecoder(Jm.SET,(e,t)=>{if(i_(e.contents),t.sortKeys){let n=Bg.decodeToEncodeOpts(t),r=null;for(let i of e.contents){let e=[i,void 0,Mg(i,n)];if(r&&t.sortKeys(r,e)>=0)throw Error(`Set items out of order in tag #${Jm.SET}`);r=e}}return new Set(e.contents)},`Set`),Dg(Set,(e,t,n)=>{let r=[...e];if(n.sortKeys){let e=r.map(e=>[e,void 0,Mg(e,n)]);e.sort(n.sortKeys),r=e.map(([e])=>e)}return[Jm.SET,r]}),$m.registerDecoder(Jm.JSON,e=>(n_(e.contents),JSON.parse(e.contents)),`JSON-encoded`);function h_(e){return r_(e.contents),new tg().decode(e.contents)}h_.comment=e=>{r_(e.contents);let t=new tg;return`(WTF8 string): ${JSON.stringify(t.decode(e.contents))}`},$m.registerDecoder(Jm.WTF8,h_),$m.registerDecoder(Jm.SELF_DESCRIBED,e=>e.contents,`Self-Described`),$m.registerDecoder(Jm.INVALID_16,()=>{throw Error(`Tag always invalid: ${Jm.INVALID_16}`)},`Invalid`),$m.registerDecoder(Jm.INVALID_32,()=>{throw Error(`Tag always invalid: ${Jm.INVALID_32}`)},`Invalid`),$m.registerDecoder(Jm.INVALID_64,()=>{throw Error(`Tag always invalid: ${Jm.INVALID_64}`)},`Invalid`),$m.registerDecoder(Jm.SYMBOL,e=>{let t=e.contents;if(Array.isArray(e.contents)){if(e.contents.length!==1)throw Error(`Expected Array of size 1: ${e.contents}`);[t]=e.contents}if(n_(t),!t.length)throw Error(`Expected non-empty string: ${e.contents}`);return Symbol.for(t)},`Symbol`);function g_(e){throw Error(`Encoding ${e.constructor.name} intentionally unimplmented. It is not concrete enough to interoperate. Convert to Uint8Array first.`)}Dg(ArrayBuffer,g_),Dg(DataView,g_),typeof SharedArrayBuffer<`u`&&Dg(SharedArrayBuffer,g_);function __(e){return[NaN,e.valueOf()]}Dg(Boolean,__),Dg(Number,__),Dg(String,__),Dg(BigInt,__);function v_(e){let t={...Bg.defaultDecodeOptions};if(e.dcbor?Object.assign(t,Bg.dcborDecodeOptions):e.cde&&Object.assign(t,Bg.cdeDecodeOptions),Object.assign(t,e),Object.hasOwn(t,`rejectLongNumbers`))throw TypeError(`rejectLongNumbers has changed to requirePreferred`);return t.boxed&&(t.saveOriginal=!0),t}var y_=class{parent=void 0;ret=void 0;step(e,t,n){if(this.ret=Bg.create(e,this.parent,t,n),e[2]===Zm.BREAK){if(this.parent?.isStreaming)this.parent.left=0;else throw Error(`Unexpected BREAK`)}else this.parent&&this.parent.push(this.ret,n,e[3]);for(this.ret instanceof Bg&&(this.parent=this.ret);this.parent?.done;){this.ret=this.parent.convert(n);let e=this.parent.parent;e?.replaceLast(this.ret,this.parent,n),this.parent=e}}};function b_(e,t={}){let n=v_(t),r=new Ig(e,n),i=new y_;for(let e of r)i.step(e,n,r);return i.ret}var{cdeDecodeOptions:x_,dcborDecodeOptions:S_,defaultDecodeOptions:C_}=Bg;function w_(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function T_(e,t=`|`){return e.map(e=>Q_(e)).join(t)}function E_(e,t){return typeof t==`bigint`?t.toString():t}var D_=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function O_(e){return new D_(e)}function k_(e){return e==null}function A_(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function j_(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}var M_=Symbol(`evaluating`);function N_(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==M_)return r===void 0&&(r=M_,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function P_(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function F_(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function I_(e){return F_(e._zod.def)??e._zod.def.shape}function L_(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return P_(this,t,e),e},enumerable:!0,configurable:!0})}function R_(e,t,n){t in e?P_(e,t,n):e[t]=n}function z_(e,t,n,r){let i=I_(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?L_(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):R_(e,a,r?r(n.value,a):n.value))}}function B_(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?L_(e,n,()=>t[n]):R_(e,n,r.value))}}function V_(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function H_(e){return JSON.stringify(e)}function U_(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var W_=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function G_(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var K_=O_(()=>{if(Hv.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function q_(e){if(G_(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return G_(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function J_(e){return q_(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Y_=new Set([`string`,`number`,`symbol`]);function X_(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Z_(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function G(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function Q_(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function $_(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}var ev={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},tv={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]};function nv(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return z_(i,e,rv(e,t)),Z_(e,V_(n,{shape:i,checks:[]}))}function rv(e,t){let n=I_(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function iv(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(rv(e,t)),a={};return z_(a,e,Reflect.ownKeys(I_(e)).filter(e=>!i.has(e))),Z_(e,V_(n,{shape:a,checks:[]}))}function av(e,t){if(!q_(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=I_(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Z_(e,V_(e._zod.def,{shape:ov(e,t)}))}function ov(e,t){let n={};return z_(n,e,Reflect.ownKeys(I_(e))),B_(n,t),n}function sv(e,t){if(!q_(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return Z_(e,V_(e._zod.def,{shape:ov(e,t)}))}function cv(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return z_(n,e,Reflect.ownKeys(I_(e))),z_(n,t,Reflect.ownKeys(I_(t))),Z_(e,V_(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function lv(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(rv(t,n)):void 0,o={};return z_(o,t,Reflect.ownKeys(I_(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),Z_(t,V_(t._zod.def,{shape:o,checks:[]}))}function uv(e,t,n){let r=n?new Set(rv(t,n)):void 0,i={};return z_(i,t,Reflect.ownKeys(I_(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),Z_(t,V_(t._zod.def,{shape:i}))}function dv(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function fv(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function pv(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function mv(e){return typeof e==`string`?e:e?.message}function hv(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function gv(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function _v(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:mv(e.inst?._zod.def?.error?.(e))??mv(a?.(e))??mv(t?.error?.(e))??mv(n.customError?.(e))??mv(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}var vv=/[\uD800-\uDBFF]/;function yv(e){let t=e.length;if(!vv.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function bv(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function xv(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function Sv(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Cv(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Dv(e,n,r.value)}}function wv(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Tv(e,t,n){return wv(e,t,n,!1)}function Ev(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return wv(this,n,r(this))},set(e){wv(this,n,e)}})}return t}function Dv(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:wv(this,t,n.bind(this))},set(e){wv(this,t,e)}})}function Ov(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}var kv,Av=!1,jv={configurable:!0,get(){Av=!0}};function Mv(e,t,n){let r=Object.getPrototypeOf(e._zod);if(t in r&&kv!==e._zod){kv=void 0;return}kv=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,jv);let e=Av;Av=!1;try{let r=n(this);return Av?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),Av||=e,r}catch(n){throw delete this[t],Av||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})}function Nv(e,t,n,r){let i=Ov(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}var Pv=`~constantCatch`;function Fv(e){let t=()=>e;return t[Pv]=!0,t}var Iv,Lv={value:void 0,enumerable:!1},Rv=`captureStackTrace`in Error?Error:null;function zv(e){let t=Rv;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return Rv=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function K(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){Lv.value=new a(r);try{Object.defineProperty(n,"_zod",Lv)}finally{Lv.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Cv(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?zv(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var Bv=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Vv=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Iv=globalThis).__zod_globalConfig??(Iv.__zod_globalConfig={});var Hv=globalThis.__zod_globalConfig;function Uv(e){return e&&Object.assign(Hv,e),Hv}function Wv(){let e=this._zod;return e.message??=JSON.stringify(e.def,E_,2),e.message}function Gv(e){this._zod.message=e}var Kv={get:Wv,set:Gv,enumerable:!0,configurable:!0},qv={value:void 0,enumerable:!1},Jv=new WeakSet([Object.prototype,Error.prototype]),Yv=(e,t)=>{e.name=`$ZodError`,qv.value=t,Object.defineProperty(e,"issues",qv),qv.value=void 0,Object.defineProperty(e,"message",Kv);let n=Object.getPrototypeOf(e);Jv.has(n)||(Jv.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},Xv=K(`$ZodError`,Yv);K(`$ZodError`,Yv,void 0,{Parent:Error});function Zv(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function Qv(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?Zv(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function $v(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function ey(e,t){return{callee:t?.callee??e,Err:t?.Err}}var ty=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Bv;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>_v(e,o,Uv())));throw W_(n,a?.callee??t),n}return s.value};return t},ny=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>_v(e,o,Uv())));throw W_(n,a?.callee??t),n}return s.value};return t},ry=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Bv;return a.issues.length?iy(e,a.issues,i):{success:!0,data:a.value}};function iy(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>_v(e,n,Uv()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}var ay=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?iy(e,a.issues,i):{success:!0,data:a.value}},oy=Symbol.for(`zod.compile.invalid`),sy=Symbol.for(`zod.compile.fallback`),cy=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==oy)return!0;if(r.definite===!0&&n===void 0)return!1}return ly(e,t,n)});function ly(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[sy]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new Bv;return a.issues.length===0}var uy=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},dy=e=>{let t=ty(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,ey(n,a))};return n},fy=e=>{let t=ty(e),n=(e,r,i,a)=>t(e,r,i,ey(n,a));return n},py=e=>{let t=ny(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,ey(n,a))};return n},my=e=>{let t=ny(e),n=async(e,r,i,a)=>await t(e,r,i,ey(n,a));return n},hy=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ry(e)(t,n,i)},gy=e=>(t,n,r)=>ry(e)(t,n,r),_y=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ay(e)(t,n,i)},vy=e=>async(t,n,r)=>ay(e)(t,n,r),yy=/^[cC][0-9a-z]{6,}$/,by=/^[0-9a-z]+$/,xy=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Sy=/^[0-9a-vA-V]{20}$/,Cy=/^[A-Za-z0-9]{27}$/,wy=/^[a-zA-Z0-9_-]{21}$/;function Ty(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var Ey=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Dy=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Oy=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,ky=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ay=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function jy(){return new RegExp(Ay,`u`)}var My=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ny=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Py=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Fy=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Iy=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ly=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Ry=/^https?$/,zy=/^\+[1-9]\d{6,14}$/,By=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function Vy(e){return RegExp(`^${e}$`)}var Hy=Vy(By);function Uy(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Wy(e){return RegExp(`^${Uy(e)}$`)}function Gy(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${Uy({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${Uy({precision:e.precision})}`:n;return RegExp(`^${By}T(?:${r})$`)}var Ky=/^[\s\S]{0,}$/,qy=/^-?\d+$/,Jy=/^-?\d+(?:\.\d+)?$/,Yy=/^(?:true|false)$/i,Xy=/^null$/i,Zy=/^[^A-Z]*$/,Qy=/^[^a-z]*$/,$y=K(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),eb=e=>{let t=e.value;return!k_(t)&&t.length!==void 0},tb={number:`number`,bigint:`bigint`,object:`date`},nb=K(`$ZodCheckLessThan`,(e,t)=>{$y.init(e,t);let n=tb[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:tb[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),rb=K(`$ZodCheckGreaterThan`,(e,t)=>{$y.init(e,t);let n=tb[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:tb[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ib=K(`$ZodCheckMultipleOf`,(e,t)=>{$y.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):j_(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ab=K(`$ZodCheckNumberFormat`,(e,t)=>{$y.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=ev[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),ob=K(`$ZodCheckMaxLength`,(e,t)=>{var n;$y.init(e,t),(n=e._zod.def).when??(n.when=eb),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?yv(r):i)<=t.maximum)return;let a=bv(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),sb=K(`$ZodCheckMinLength`,(e,t)=>{var n;$y.init(e,t),(n=e._zod.def).when??(n.when=eb),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?yv(r):i)>=t.minimum)return;let a=bv(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),cb=K(`$ZodCheckLengthEquals`,(e,t)=>{var n;$y.init(e,t),(n=e._zod.def).when??(n.when=eb),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?yv(r):i;if(a===t.length)return;let o=bv(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),lb=K(`$ZodCheckStringFormat`,(e,t)=>{var n,r;$y.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ub=K(`$ZodCheckRegex`,(e,t)=>{lb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),db=K(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Zy,lb.init(e,t)}),fb=K(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Qy,lb.init(e,t)}),pb=K(`$ZodCheckIncludes`,(e,t)=>{$y.init(e,t);let n=X_(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),mb=K(`$ZodCheckStartsWith`,(e,t)=>{$y.init(e,t);let n=RegExp(`^${X_(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),hb=K(`$ZodCheckEndsWith`,(e,t)=>{$y.init(e,t);let n=RegExp(`.*${X_(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function gb(e,t,n){e.issues.length&&t.issues.push(...pv(n,e.issues))}var _b=K(`$ZodCheckProperties`,(e,t)=>{$y.init(e,t),Tv(e,Symbol.iterator,function*(){yield e});let n;e._zod.check=r=>{if(r.value==null){r.issues.push({expected:`object`,code:`invalid_type`,input:r.value,inst:e});return}n??=Reflect.ownKeys(t.shape).map(e=>[e,t.shape[e]]);let i=r.value,a;for(let[e,t]of n){let n=t._zod.run({value:i[e],issues:[]},{});n instanceof Promise?(a??=[],a.push(n.then(t=>gb(t,r,e)))):gb(n,r,e)}if(a)return Promise.all(a).then(()=>void 0)}}),vb=K(`$ZodCheckOverwrite`,(e,t)=>{$y.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),yb=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
30
30
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
31
- `)}\n};`)(...Object.values(this.closed))}},ib={major:4,minor:5,patch:4},ab=K(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ib;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=tv(t),a;for(let o of n){if(o._zod.def.when){if(nv(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new Ov;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(av(t.issues,n,e),i||=tv(t,n))});else{if(t.issues.length===n)continue;av(t.issues,n,e),i||=tv(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(tv(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new Ov;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new Ov;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return mv(this,`~standard`,sb(this))},set"~standard"(e){pv(this,`~standard`,e)}}),ob=e=>e.success?{value:e.data}:{issues:e.error?.issues};function sb(e){return{validate:t=>{try{return ob(Jv(e,t))}catch{return Xv(e,t).then(ob)}},vendor:`zod`,version:1}}var cb=K(`$ZodString`,(e,t)=>{ab.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??My(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),lb=K(`$ZodStringFormat`,(e,t)=>{Yy.init(e,t),cb.init(e,t)}),ub=K(`$ZodGUID`,(e,t)=>{t.pattern??=py,lb.init(e,t)}),db=K(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=my(e)}else t.pattern??=my();lb.init(e,t)}),fb=K(`$ZodEmail`,(e,t)=>{t.pattern??=hy,lb.init(e,t)});function pb(e,t){if(!t.normalize&&t.protocol?.source===wy.source&&!/^https?:\/\//i.test(e))return 1;try{return new URL(e)}catch{return 2}}var mb=/[\t\n\r]/g;function hb(e){return e.replace(mb,``)}function gb(e,t){return t.lastIndex=0,t.test(e.hostname)}function _b(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}var vb=K(`$ZodURL`,(e,t)=>{lb.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=pb(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}t.hostname&&!gb(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!_b(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:hb(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),yb=K(`$ZodEmoji`,(e,t)=>{t.pattern??=_y(),lb.init(e,t)}),bb=K(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?uy:dy(t.length),lb.init(e,t)}),xb=K(`$ZodCUID`,(e,t)=>{t.pattern??=ay,lb.init(e,t)}),Sb=K(`$ZodCUID2`,(e,t)=>{t.pattern??=oy,lb.init(e,t)}),Cb=K(`$ZodULID`,(e,t)=>{t.pattern??=sy,lb.init(e,t)}),wb=K(`$ZodXID`,(e,t)=>{t.pattern??=cy,lb.init(e,t)}),Tb=K(`$ZodKSUID`,(e,t)=>{t.pattern??=ly,lb.init(e,t)}),Eb=K(`$ZodISODateTime`,(e,t)=>{t.pattern??=jy(t),lb.init(e,t),(t.local||t.precision===-1)&&(e._zod.bag.laxFormat=!0,e._zod.onattach.push(e=>{e._zod.bag.laxFormat=!0}))}),Db=K(`$ZodISODate`,(e,t)=>{t.pattern??=Oy,lb.init(e,t)}),Ob=K(`$ZodISOTime`,(e,t)=>{t.pattern??=Ay(t),lb.init(e,t)}),kb=K(`$ZodISODuration`,(e,t)=>{t.pattern??=fy,lb.init(e,t)}),Ab=K(`$ZodIPv4`,(e,t)=>{t.pattern??=vy,lb.init(e,t),e._zod.bag.format=`ipv4`}),jb=/^[0-9a-fA-F:.]+$/;function Mb(e){if(!jb.test(e))return!1;try{return new URL(`http://[${e}]`),!0}catch{return!1}}var Nb=K(`$ZodIPv6`,(e,t)=>{t.pattern??=yy,lb.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{Mb(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),Pb=K(`$ZodCIDRv4`,(e,t)=>{t.pattern??=by,lb.init(e,t)});function Fb(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:Mb(n)}var Ib=K(`$ZodCIDRv6`,(e,t)=>{t.pattern??=xy,lb.init(e,t),e._zod.check=n=>{Fb(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function Lb(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Rb=K(`$ZodBase64`,(e,t)=>{t.pattern??=Sy,lb.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Lb(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function zb(e){if(!Cy.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Lb(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Bb=K(`$ZodBase64URL`,(e,t)=>{t.pattern??=Cy,lb.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{zb(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Vb=K(`$ZodE164`,(e,t)=>{t.pattern??=Ty,lb.init(e,t)});function Hb(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Ub=K(`$ZodJWT`,(e,t)=>{lb.init(e,t),e._zod.check=n=>{Hb(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),Wb=K(`$ZodNumber`,(e,t)=>{ab.init(e,t),e._zod.pattern=e._zod.bag.pattern??Py,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),Gb=K(`$ZodNumberFormat`,(e,t)=>{Gy.init(e,t),Wb.init(e,t)}),Kb=K(`$ZodBoolean`,(e,t)=>{ab.init(e,t),e._zod.pattern=Fy,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),qb=K(`$ZodNull`,(e,t)=>{ab.init(e,t),e._zod.pattern=Iy,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),Jb=K(`$ZodUnknown`,(e,t)=>{ab.init(e,t),e._zod.parse=e=>e}),Yb=K(`$ZodNever`,(e,t)=>{ab.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function Xb(e,t,n){e.issues.length&&t.issues.push(...rv(n,e.issues)),t.value[n]=e.value}var Zb=K(`$ZodArray`,(e,t)=>{ab.init(e,t);let n=Av.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[];for(let e=0;e<a.length;e++){let n=a[e],s=t.element._zod.run({value:n,issues:[]},i);s instanceof Promise?o.push(s.then(t=>Xb(t,r,e))):Xb(s,r,e)}return o.length?Promise.all(o).then(()=>r):r}});function Qb(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...rv(n,e.issues))}if(!o&&i===void 0){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}}var $b=[];function ex(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:$b,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=K_(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function tx(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin,d=c.optout;for(let i in t){if(s.has(i))continue;if(i===`__proto__`){l===`never`&&o.push(i);continue}if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>Qb(e,n,i,t,u,d))):Qb(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}var nx=new WeakMap,rx=K(`$ZodObject`,(e,t)=>{if(ab.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;nx.set(t,e),Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),nx.set(t,n),n}})}let n=D_(()=>ex(t));bv(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||N_(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let r=R_,i=t.catchall,a,o=Av.memoizer;o?.attach(e),e._zod.parse=(t,s)=>{a??=n.value;let c=t.value;if(!r(c))return t.issues.push({expected:`object`,code:`invalid_type`,input:c,inst:e}),t;t.value=o?o.alloc(e,t,{},s):{};let l=[],u=a.shape;for(let e of a.allKeys){if(e===`__proto__`)continue;let n=u[e],r=n._zod.optin,i=n._zod.optout,a=n._zod.run({value:c[e],issues:[]},s);a instanceof Promise?l.push(a.then(n=>Qb(n,t,e,c,r,i))):Qb(a,t,e,c,r,i)}return i?tx(l,c,t,s,n.value,e):l.length?Promise.all(l).then(()=>t):t}}),ix=K(`$ZodObjectJIT`,(e,t)=>{rx.init(e,t);let n=e._zod.parse,r=D_(()=>ex(t)),i=Av.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new rb([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
31
+ `)}\n};`)(...Object.values(this.closed))}},bb={major:4,minor:6,patch:6},xb=K(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=bb;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=dv(t),a;for(let o of n){if(o._zod.def.when){if(fv(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new Bv;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(gv(t.issues,n,e),i||=dv(t,n))});else{if(t.issues.length===n)continue;gv(t.issues,n,e),i||=dv(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(dv(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new Bv;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new Bv;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return Tv(this,`~standard`,wb(this))},set"~standard"(e){wv(this,`~standard`,e)}}),Sb=(e,t)=>e.issues.length?{issues:e.issues.map(e=>_v(e,t,Uv()))}:{value:e.value};async function Cb(e,t){let n={async:!0};return Sb(await e._zod.run({value:t,issues:[]},n),n)}function wb(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Sb(r,n)}catch{}return Cb(e,t)},vendor:`zod`,version:1}}var Tb=K(`$ZodString`,(e,t)=>{xb.init(e,t),e._zod.pattern=t.pattern??Ky,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),Eb=K(`$ZodStringFormat`,(e,t)=>{lb.init(e,t),Tb.init(e,t)}),Db=K(`$ZodGUID`,(e,t)=>{t.pattern??=Dy,Eb.init(e,t)}),Ob=K(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Oy(e)}else t.pattern??=Oy();Eb.init(e,t)}),kb=K(`$ZodEmail`,(e,t)=>{t.pattern??=ky,Eb.init(e,t)});function Ab(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function jb(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?Ab(e)||2:Mb(e,t)}function Mb(e,t){if(!t.normalize&&t.protocol?.source===Ry.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}var Nb=/[\t\n\r]/g;function Pb(e){return e.replace(Nb,``)}function Fb(e,t){return t.lastIndex=0,t.test(e.hostname)}function Ib(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}var Lb=K(`$ZodURL`,(e,t)=>{Eb.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=jb(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=Pb(r);return}t.hostname&&!Fb(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!Ib(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:Pb(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Rb=K(`$ZodEmoji`,(e,t)=>{t.pattern??=jy(),Eb.init(e,t)}),zb=K(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?wy:Ty(t.length),Eb.init(e,t)}),Bb=K(`$ZodCUID`,(e,t)=>{t.pattern??=yy,Eb.init(e,t)}),Vb=K(`$ZodCUID2`,(e,t)=>{t.pattern??=by,Eb.init(e,t)}),Hb=K(`$ZodULID`,(e,t)=>{t.pattern??=xy,Eb.init(e,t)}),Ub=K(`$ZodXID`,(e,t)=>{t.pattern??=Sy,Eb.init(e,t)}),Wb=K(`$ZodKSUID`,(e,t)=>{t.pattern??=Cy,Eb.init(e,t)}),Gb=K(`$ZodISODateTime`,(e,t)=>{t.pattern??=Gy(t),Eb.init(e,t)}),Kb=K(`$ZodISODate`,(e,t)=>{t.pattern??=Hy,Eb.init(e,t)}),qb=K(`$ZodISOTime`,(e,t)=>{t.pattern??=Wy(t),Eb.init(e,t)}),Jb=K(`$ZodISODuration`,(e,t)=>{t.pattern??=Ey,Eb.init(e,t)}),Yb=K(`$ZodIPv4`,(e,t)=>{t.pattern??=My,Eb.init(e,t)}),Xb=/^[0-9a-fA-F:.]+$/;function Zb(e){return Xb.test(e)?Ab(`http://[${e}]`):!1}var Qb=K(`$ZodIPv6`,(e,t)=>{t.pattern??=Ny,Eb.init(e,t),e._zod.check=n=>{Zb(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),$b=K(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Py,Eb.init(e,t)});function ex(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:Zb(n)}var tx=K(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Fy,Eb.init(e,t),e._zod.check=n=>{ex(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function nx(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var rx=/^[0-9a-zA-Z+/]*={0,2}$/,ix=K(`$ZodBase64`,(e,t)=>{t.pattern??=rx,Eb.init(e,t),e._zod.check=n=>{nx(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),ax=/^[A-Za-z0-9_-]*$/;function ox(e){if(!ax.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return nx(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var sx=K(`$ZodBase64URL`,(e,t)=>{t.pattern??=ax,Eb.init(e,t),e._zod.check=n=>{ox(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),cx=K(`$ZodE164`,(e,t)=>{t.pattern??=zy,Eb.init(e,t)});function lx(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var ux=K(`$ZodJWT`,(e,t)=>{Eb.init(e,t),e._zod.check=n=>{lx(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),dx=K(`$ZodNumber`,(e,t)=>{xb.init(e,t),e._zod.pattern=Jy,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),fx=K(`$ZodNumberFormat`,(e,t)=>{ab.init(e,t),dx.init(e,t)}),px=K(`$ZodBoolean`,(e,t)=>{xb.init(e,t),e._zod.pattern=Yy,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),mx=K(`$ZodNull`,(e,t)=>{xb.init(e,t),e._zod.pattern=Xy,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),hx=K(`$ZodUnknown`,(e,t)=>{xb.init(e,t),e._zod.parse=e=>e}),gx=K(`$ZodNever`,(e,t)=>{xb.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function _x(e,t){let n=hv(e._zod.def.checks);if(!n.length)return;let r=Math.min(...n.map(e=>e[0])),i=e._zod.parse;e._zod.parse=(n,a)=>{let o=t(n.value);if(o>r&&!a?.skipChecks&&a?.direction!==`backward`){for(let[t,r]of hv(e._zod.def.checks))if(o>t&&r._zod.def.when(n)){let t=n.issues.length;return r._zod.check(n),n.issues[t].continue=!1,gv(n.issues,t,e),n}}return i(n,a)}}var vx=e=>Array.isArray(e)?e.length:-1;function yx(e,t,n){e.issues.length&&t.issues.push(...pv(n,e.issues)),t.value[n]=e.value}var bx=K(`$ZodArray`,(e,t)=>{xb.init(e,t);let n=Hv.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;e<a.length;e++){let n=a[e],c=t.element._zod.run({value:n,issues:[]},i);if(c instanceof Promise)o.push(c.then(t=>yx(t,r,e)));else if(yx(c,r,e),s&&c.issues.length!==0&&dv(c))break}return o.length?Promise.all(o).then(()=>r):r},_x(e,vx)});function xx(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...pv(n,e.issues))}if(!o&&i===void 0){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}var Sx=[];function Cx(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:Sx,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=$_(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function wx(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(dv(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>xx(e,n,i,t,d,f))):xx(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}var Tx=K(`$ZodObject`,(e,t)=>{xb.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=O_(()=>Cx(t));Mv(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||P_(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=G_,o=t.catchall,s,c=Hv.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(dv(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>xx(n,t,e,r,a,o))):xx(s,t,e,r,a,o)}return o?wx(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),Ex=K(`$ZodObjectJIT`,(e,t)=>{Tx.init(e,t);let n=e._zod.parse,r=O_(()=>Cx(t)),i=Hv.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new yb([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
32
+ let ${e}_ab = false;
32
33
  for (let i = 0; i < ${e}.issues.length; i++) {
33
34
  const iss = ${e}.issues[i];
34
35
  iss.path = iss.path ? [${t}, ...iss.path] : [${t}];
35
36
  payload.issues.push(iss);
36
- }`;o.write(`const input = payload.value;`);let l=Object.create(null),u=0;for(let e of n.allKeys)l[e]=`key_${u++}`;o.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=l[e],r=typeof e==`symbol`?`syms[${a.indexOf(e)}]`:F_(e),i=`${r} in input`,u=t[e],d=u?._zod?.optin,f=d!==void 0,p=u?._zod?.optout===`optional`;if(o.write(`const ${n} = ${s(r)};`),f&&p){let e=d===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;o.write(`
37
+ if (iss.continue !== true) ${e}_ab = true;
38
+ }
39
+ if (${e}_ab && ctx && ctx.abortEarly) {
40
+ payload.value = newResult;
41
+ return payload;
42
+ }`;o.write(`const input = payload.value;`);let l=Object.create(null),u=0;for(let e of n.allKeys)l[e]=`key_${u++}`;o.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=l[e],r=typeof e==`symbol`?`syms[${a.indexOf(e)}]`:H_(e),i=`${r} in input`,u=t[e],d=u?._zod?.optin,f=d!==void 0,p=u?._zod?.optout===`optional`;if(o.write(`const ${n} = ${s(r)};`),f&&p){let e=d===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;o.write(`
37
43
  const ${n}_present = ${i};
38
44
  if (!${n}.issues.length || ${n}_present) {
39
45
  if (${n}.issues.length) {${c(n,r)}
@@ -44,19 +50,14 @@ ${Vg.repeat(a.depth)}}`:a.close=`}`;break}case W.TAG:o+=String(c),o+=Wg(W.POS_IN
44
50
  }
45
51
  }
46
52
 
47
- `)}else f?o.write(`
53
+ `)}else f?(o.write(`
48
54
  if (${n}.issues.length) {${c(n,r)}
49
55
  }
50
-
51
- if (${n}.value === undefined) {
52
- if (${i}) {
53
- newResult[${r}] = undefined;
54
- }
55
- } else {
56
+ `),d===`defaulted`?o.write(`newResult[${r}] = ${n}.value;`):o.write(`
57
+ if (${n}.value !== undefined || ${i}) {
56
58
  newResult[${r}] = ${n}.value;
57
59
  }
58
-
59
- `):o.write(`
60
+ `)):o.write(`
60
61
  const ${n}_present = ${i};
61
62
  if (${n}.issues.length) {${c(n,r)}
62
63
  }
@@ -67,14 +68,18 @@ ${Vg.repeat(a.depth)}}`:a.close=`}`;break}case W.TAG:o+=String(c),o+=Wg(W.POS_IN
67
68
  input: undefined,
68
69
  path: [${r}]
69
70
  });
71
+ if (ctx && ctx.abortEarly) {
72
+ payload.value = newResult;
73
+ return payload;
74
+ }
70
75
  }
71
76
 
72
77
  if (${n}_present) {
73
78
  newResult[${r}] = ${n}.value;
74
79
  }
75
80
 
76
- `)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=R_,c=!Av.jitless,l=c&&z_.value,u=t.catchall,d;e._zod.parse=(i,f)=>{d??=r.value;let p=i.value;return s(p)?c&&l&&f?.async===!1&&f.jitless!==!0?(o||=a(t.shape),i=o(i,f),u?tx([],p,i,f,d,e):i):n(i,f):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function ax(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!tv(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>ov(e,r,jv())))}),t)}var ox=K(`$ZodUnion`,(e,t)=>{ab.init(e,t),bv(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),bv(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),bv(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),bv(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>k_(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>ax(t,r,e,i)):ax(o,r,e,i)}}),sx=K(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,ox.init(e,t);let n=e._zod.parse;bv(e,`propValues`,e=>{let t={};for(let n of e.def.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${e.def.options.indexOf(n)}"`);for(let[e,n]of Object.entries(r)){Object.prototype.hasOwnProperty.call(t,e)||N_(t,e,new Set);for(let r of n)t[e].add(r)}}return t}),t.options.forEach((e,n)=>{let r=nx.get(e._zod.def);if(r&&!Object.prototype.hasOwnProperty.call(r,t.discriminator))throw Error(`Invalid discriminated union option at index "${n}"`)});let r=D_(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!R_(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()),input:o,path:[t.discriminator],inst:e}),i)}}),cx=K(`$ZodIntersection`,(e,t)=>{ab.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>ux(e,t,n)):ux(e,i,a)}});function lx(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(B_(e)&&B_(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=lx(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=lx(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function ux(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=lx(t.value,n.value);if(!c.valid){if(tv(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var dx=K(`$ZodTuple`,(e,t)=>{ab.init(e,t);let n=t.items,r=Av.memoizer;r?.attach(e),e._zod.parse=(i,a)=>{let o=i.value;if(!Array.isArray(o))return i.issues.push({input:o,inst:e,expected:`tuple`,code:`invalid_type`}),i;i.value=r?r.alloc(e,i,[],a):[];let s=[],c=fx(n,`optin`),l=fx(n,`optout`);if(!t.rest){if(o.length<c)return i.issues.push({code:`too_small`,minimum:c,inclusive:!0,input:o,inst:e,origin:`array`}),i;o.length>n.length&&i.issues.push({code:`too_big`,maximum:n.length,inclusive:!0,input:o,inst:e,origin:`array`})}let u=Array(n.length);for(let e=0;e<n.length;e++){let t=n[e]._zod.run({value:o[e],issues:[]},a);t instanceof Promise?s.push(t.then(t=>{u[e]=t})):u[e]=t}if(t.rest){let e=n.length-1,r=o.slice(n.length);for(let n of r){e++;let r=t.rest._zod.run({value:n,issues:[]},a);r instanceof Promise?s.push(r.then(t=>px(t,i,e))):px(r,i,e)}}return s.length?Promise.all(s).then(()=>mx(u,i,n,o,l)):mx(u,i,n,o,l)}});function fx(e,t){for(let n=e.length-1;n>=0;n--)if(!(t===`optin`?e[n]._zod.optin!==void 0:e[n]._zod.optout===`optional`))return n+1;return 0}function px(e,t,n){e.issues.length&&t.issues.push(...rv(n,e.issues)),t.value[n]=e.value}function mx(e,t,n,r,i){for(let a=0;a<n.length;a++){let o=e[a],s=a<r.length;if(!s&&a>=i&&n[a]._zod.optin===`optional`){t.value.length=a;break}if(o.issues.length){if(!s&&a>=i){t.value.length=a;break}t.issues.push(...rv(a,o.issues))}t.value[a]=o.value}for(let e=t.value.length-1;e>=r.length&&n[e]._zod.optout===`optional`&&t.value[e]===void 0;e--)t.value.length=e;return t}var hx=K(`$ZodRecord`,(e,t)=>{ab.init(e,t);let n=Av.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!B_(a))return r.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),r;let o=[],s=t.keyType._zod.values;if(s&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};let c=new Set;for(let n of s)if(typeof n==`string`||typeof n==`number`||typeof n==`symbol`){if(c.add(typeof n==`number`?n.toString():n),n===`__proto__`)continue;let s=t.keyType._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){r.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>ov(e,i,jv())),input:n,path:[n],inst:e});continue}let l=s.value;if(l===`__proto__`)continue;let u=t.valueType._zod.run({value:a[n],issues:[]},i);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&r.issues.push(...rv(n,e.issues)),r.value[l]=e.value})):(u.issues.length&&r.issues.push(...rv(n,u.issues)),r.value[l]=u.value)}let l;for(let e in a)if(!c.has(e)){if(t.mode===`loose`){if(e===`__proto__`)continue;r.value[e]=a[e]}else l??=[],l.push(e)}l&&l.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:l,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let c;for(let n of Reflect.ownKeys(a)){if(n===`__proto__`||!Object.prototype.propertyIsEnumerable.call(a,n))continue;let l=t.keyType._zod.run({value:n,issues:[]},i);if(l instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof n==`string`&&Py.test(n)&&l.issues.length){let e=t.keyType._zod.run({value:Number(n),issues:[]},i);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(l=e)}if(l.issues.length){t.mode===`loose`?r.value[n]=a[n]:s?(c??=[],c.push(n)):r.issues.push({code:`invalid_key`,origin:`record`,issues:l.issues.map(e=>ov(e,i,jv())),input:n,path:[n],inst:e});continue}let u=l.value;if(u===`__proto__`)continue;let d=t.valueType._zod.run({value:a[n],issues:[]},i);d instanceof Promise?o.push(d.then(e=>{e.issues.length&&r.issues.push(...rv(n,e.issues)),r.value[u]=e.value})):(d.issues.length&&r.issues.push(...rv(n,d.issues)),r.value[u]=d.value)}c&&c.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c,continue:!0})}return o.length?Promise.all(o).then(()=>r):r}}),gx=K(`$ZodEnum`,(e,t)=>{ab.init(e,t);let n=w_(t.entries),r=new Set(n);e._zod.values=r;let i=n.filter(e=>H_.has(typeof e));e._zod.pattern=RegExp(i.length?`^(${i.map(e=>U_(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),_x=K(`$ZodLiteral`,(e,t)=>{ab.init(e,t);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(t.values.length?`^(${t.values.map(e=>typeof e==`string`?U_(e):e?U_(e.toString()):String(e)).join(`|`)})$`:`^[^\\s\\S]$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),vx=K(`$ZodTransform`,(e,t)=>{ab.init(e,t),e._zod.optin=`optional`,Av.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new kv(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new Ov;return n.value=i,n}});function yx(e,t){return e.value=t.issues.length?void 0:t.value,e}var bx=K(`$ZodOptional`,(e,t)=>{ab.init(e,t),bv(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,bv(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),bv(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${k_(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>yx(e,t)):yx(e,r)}return t.innerType._zod.run(e,n)}}),xx=K(`$ZodExactOptional`,(e,t)=>{bx.init(e,t),bv(e,`values`,e=>e.def.innerType._zod.values),bv(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Sx=K(`$ZodNullable`,(e,t)=>{ab.init(e,t),bv(e,`optin`,e=>e.def.innerType._zod.optin),bv(e,`optout`,e=>e.def.innerType._zod.optout),bv(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${k_(t.source)}|null)$`):void 0}),bv(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Cx=K(`$ZodDefault`,(e,t)=>{ab.init(e,t),e._zod.optin=`defaulted`,bv(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>wx(e,t)):wx(r,t)}});function wx(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Tx=K(`$ZodPrefault`,(e,t)=>{ab.init(e,t),e._zod.optin=`defaulted`,bv(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Ex=K(`$ZodNonOptional`,(e,t)=>{ab.init(e,t),bv(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Dx(t,e)):Dx(i,e)}});function Dx(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Ox(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>ov(e,r,jv()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var kx=K(`$ZodCatch`,(e,t)=>{ab.init(e,t),bv(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),bv(e,`optout`,e=>e.def.innerType._zod.optout),bv(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>Ox(e,r,t,n)):Ox(e,r,t,n)}}),Ax=K(`$ZodPipe`,(e,t)=>{ab.init(e,t),bv(e,`values`,e=>e.def.in._zod.values),bv(e,`optin`,e=>e.def.in._zod.optin),bv(e,`optout`,e=>e.def.out._zod.optout),bv(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>jx(e,t.in,n)):jx(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>jx(e,t.out,n)):jx(r,t.out,n)}});function jx(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var Mx=K(`$ZodReadonly`,(e,t)=>{ab.init(e,t),bv(e,`propValues`,e=>e.def.innerType._zod.propValues),bv(e,`values`,e=>e.def.innerType._zod.values),bv(e,`optin`,e=>e.def.innerType?._zod?.optin),bv(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Nx):Nx(r)}});function Nx(e){return e.memo||(e.value=Object.freeze(e.value)),e}var Px=K(`$ZodLazy`,(e,t)=>{ab.init(e,t),M_(e._zod,`innerType`,()=>{let e=t;return e._cachedInner||=t.getter(),e._cachedInner}),bv(e,`pattern`,e=>e.innerType?._zod?.pattern),bv(e,`propValues`,e=>e.innerType?._zod?.propValues),bv(e,`optin`,e=>e.innerType?._zod?.optin??void 0),bv(e,`optout`,e=>e.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),Fx=K(`$ZodCustom`,(e,t)=>{zy.init(e,t),ab.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Ix(t,n,r,e));Ix(i,n,r,e)}});function Ix(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(dv(e))}}var Lx=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},Rx=`~memo`,zx=[];function Bx(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var Vx=new WeakMap;function Hx(e,t){let n=Vx.get(e);if(n!==void 0)return n;if(t.has(e))return!0;t.add(e);let r=!1,i=e=>{!r&&e?._zod&&Hx(e,t)&&(r=!0)},a=e._zod.def;switch(a.type){case`object`:for(let e of Reflect.ownKeys(a.shape))i(a.shape[e]);i(a.catchall);break;case`array`:i(a.element);break;case`tuple`:for(let e of a.items)i(e);i(a.rest);break;case`record`:case`map`:i(a.keyType),i(a.valueType);break;case`set`:i(a.valueType);break;case`union`:for(let e of a.options)i(e);break;case`intersection`:i(a.left),i(a.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:i(a.innerType);break;case`pipe`:i(a.in),i(a.out);break;case`function`:i(a.input),i(a.output);break;case`lazy`:i(e._zod.innerType);break;case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in a){let t=Object.getOwnPropertyDescriptor(a,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)i(n);else if(Array.isArray(n))for(let e of n)i(e)}}}return t.delete(e),Vx.set(e,r),r}function Ux(e,t){let n=e.buckets.get(t);return n||(n=new Map,e.buckets.set(t,n)),n}var Wx,Gx=[],Kx={alloc(e,t,n){let r=Wx;if(!r)return n;Wx=void 0;let i={value:n,issues:null};return r.set(t.value,i),Gx.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&Jx(n,e.value))throw new Lx;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r,i;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,a=(o,s)=>{if(n===void 0&&(n=Hx(e,new Set),!n))return e._zod.parse=t,e._zod.run===a&&(e._zod.run=t),t(o,s);let c=o.value;if(typeof c!=`object`||!c)return t(o,s);let l=s[Rx];l||(l={buckets:new Map,backEdges:void 0},s[Rx]=l);let u;r===s?u=i:(u=Ux(l,e),r=s,i=u);let d=u.get(c);if(d)return o.value=d.value,d.issues?d.issues.length&&o.issues.push(...Bx(d.issues)):(o.memo=!0,l.backEdges??(l.backEdges=new Set),l.backEdges.add(d.value)),o;Wx=u;let f=Gx.length,p=t(o,s);Wx=void 0;let m=Gx.length>f?Gx.pop():void 0;return p instanceof Promise?p.then(e=>(m&&(m.issues=e.issues.length?Bx(e.issues):zx),e)):(m&&(m.issues=p.issues.length?Bx(p.issues):zx),p)};e._zod.parse=a,e._zod.run===t&&(e._zod.run=a)})}};function qx(){return Kx}function Jx(e,t){let n=e[Rx]?.backEdges;return n!==void 0&&typeof t==`object`&&!!t&&n.has(t)}var Yx=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,credit_card:`credit card number`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(uv(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${G_(e.values[0])}`:`Invalid option: expected one of ${T_(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${T_(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function Xx(){return{localeError:Yx()}}var Zx,Qx=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function $x(){return new Qx}(Zx=globalThis).__zod_globalRegistry??(Zx.__zod_globalRegistry=$x());var eS=globalThis.__zod_globalRegistry;function tS(e,t){return new e({type:`string`,...G(t)})}function nS(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...G(t)})}function rS(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...G(t)})}function iS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...G(t)})}function aS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...G(t)})}function oS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...G(t)})}function sS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...G(t)})}function cS(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...G(t)})}function lS(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...G(t)})}function uS(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...G(t)})}function dS(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...G(t)})}function fS(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...G(t)})}function pS(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...G(t)})}function mS(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...G(t)})}function hS(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...G(t)})}function gS(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...G(t)})}function _S(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...G(t)})}function vS(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...G(t)})}function yS(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...G(t)})}function bS(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...G(t)})}function xS(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...G(t)})}function SS(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...G(t)})}function CS(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...G(t)})}function wS(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...G(t)})}function TS(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...G(t)})}function ES(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...G(t)})}function DS(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...G(t)})}function OS(e,t){return new e({type:`number`,checks:[],...G(t)})}function kS(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...G(t)})}function AS(e,t){return new e({type:`boolean`,...G(t)})}function jS(e,t){return new e({type:`null`,...G(t)})}function MS(e){return new e({type:`unknown`})}function NS(e,t){return new e({type:`never`,...G(t)})}function PS(e,t){return new Hy({check:`less_than`,...G(t),value:e,inclusive:!1})}function FS(e,t){return new Hy({check:`less_than`,...G(t),value:e,inclusive:!0})}function IS(e,t){return new Uy({check:`greater_than`,...G(t),value:e,inclusive:!1})}function LS(e,t){return new Uy({check:`greater_than`,...G(t),value:e,inclusive:!0})}function RS(e,t){return new Wy({check:`multiple_of`,...G(t),value:e})}function zS(e,t){return new Ky({check:`max_length`,...G(t),maximum:e})}function BS(e,t){return new qy({check:`min_length`,...G(t),minimum:e})}function VS(e,t){return new Jy({check:`length_equals`,...G(t),length:e})}function HS(e,t){return new Xy({check:`string_format`,format:`regex`,...G(t),pattern:e})}function US(e){return new Zy({check:`string_format`,format:`lowercase`,...G(e)})}function WS(e){return new Qy({check:`string_format`,format:`uppercase`,...G(e)})}function GS(e,t){return new $y({check:`string_format`,format:`includes`,...G(t),includes:e})}function KS(e,t){return new eb({check:`string_format`,format:`starts_with`,...G(t),prefix:e})}function qS(e,t){return new tb({check:`string_format`,format:`ends_with`,...G(t),suffix:e})}function JS(e){return new nb({check:`overwrite`,tx:e})}function YS(e){return JS(t=>t.normalize(e))}function XS(){return JS(e=>e.trim())}function ZS(){return JS(e=>e.toLowerCase())}function QS(){return JS(e=>e.toUpperCase())}function $S(){return JS(e=>I_(e))}function eC(e,t,n){return new e({type:`array`,element:t,...G(n)})}function tC(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...G(n)})}function nC(e,t){let n=rC(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(dv(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(dv(r))}},e(t.value,t)),t);return n}function rC(e,t){let n=new zy({check:`custom`,...G(t)});return n._zod.check=e,n}function iC(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&N_(e,t,n[t]);return e}function aC(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??eS,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function oC(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function sC(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,sC(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&iC(o.schema,c),t.io===`input`&&_C(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function cC(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function lC(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${cC(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+cC(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
81
+ `)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=G_,c=!Hv.jitless,l=c&&K_.value,u=t.catchall,d;e._zod.parse=(i,f)=>{d??=r.value;let p=i.value;return s(p)?c&&l&&f?.async===!1&&f.jitless!==!0?(o||=a(t.shape),i=o(i,f),u?wx([],p,i,f,d,e,f?.abortEarly===!0):i):n(i,f):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function Dx(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!dv(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>_v(e,r,Uv())))}),t)}var Ox=K(`$ZodUnion`,(e,t)=>{xb.init(e,t),Mv(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),Mv(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Mv(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),Mv(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>A_(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>Dx(t,r,e,i)):Dx(o,r,e,i)}});function kx(e){let t=new Map;for(let n of e.options){let r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(let e of r)if(t.has(e)){if(e!==void 0)throw Error(`Duplicate discriminator value "${String(e)}"`);t.set(e,null)}else t.set(e,n)}return t}var Ax=K(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,Ox.init(e,t);let n=e._zod.parse;Mv(e,`propValues`,e=>{let t={},n=0;for(let r of e.def.options){let i=r._zod.propValues;if(!i||Object.keys(i).length===0)throw Error(`Invalid discriminated union option at index "${e.def.options.indexOf(r)}"`);i[e.def.discriminator]?.has(void 0)&&n++;for(let[e,n]of Object.entries(i)){Object.prototype.hasOwnProperty.call(t,e)||P_(t,e,new Set);for(let r of n)t[e].add(r)}}return!e.def.unionFallback&&n>1&&t[e.def.discriminator]?.delete(void 0),t}),t.options.forEach((e,n)=>{let r=F_(e._zod.def);if(r&&!Object.prototype.hasOwnProperty.call(r,t.discriminator))throw Error(`Invalid discriminated union option at index "${n}"`)});let r=O_(()=>kx(t));e._zod.parse=(i,a)=>{let o=i.value;if(!G_(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=o?.[t.discriminator],c=r.value.get(s);return c&&(s!==void 0||a.direction!==`backward`)?c._zod.run(i,a):t.unionFallback||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()).filter(e=>r.value.get(e)!==null),input:o,path:[t.discriminator],inst:e}),i)}}),jx=K(`$ZodIntersection`,(e,t)=>{xb.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Nx(e,t,n)):Nx(e,i,a)}});function Mx(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(q_(e)&&q_(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=Mx(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Mx(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Nx(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=Mx(t.value,n.value);if(!c.valid){if(dv(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var Px=K(`$ZodTuple`,(e,t)=>{xb.init(e,t);let n=t.items,r=Hv.memoizer;r?.attach(e),e._zod.parse=(i,a)=>{let o=i.value;if(!Array.isArray(o))return i.issues.push({input:o,inst:e,expected:`tuple`,code:`invalid_type`}),i;i.value=r?r.alloc(e,i,[],a):[];let s=[],c=Fx(n,`optin`),l=Fx(n,`optout`);if(!t.rest){if(o.length<c)return i.issues.push({code:`too_small`,minimum:c,inclusive:!0,input:o,inst:e,origin:`array`}),i;o.length>n.length&&i.issues.push({code:`too_big`,maximum:n.length,inclusive:!0,input:o,inst:e,origin:`array`})}let u=Array(n.length),d=t.rest?a?.abortEarly:void 0,f=!1;for(let e=0;e<n.length;e++){let t=n[e]._zod.run({value:o[e],issues:[]},a);t instanceof Promise?s.push(t.then(t=>{u[e]=t})):(u[e]=t,d&&!f&&t.issues.length&&(f=dv(t)))}if(t.rest&&!f){let e=n.length-1,r=o.slice(n.length),c=i.issues.length;for(let n of r){if(d&&i.issues.length!==c){if(dv(i,c))break;c=i.issues.length}e++;let r=t.rest._zod.run({value:n,issues:[]},a);r instanceof Promise?s.push(r.then(t=>Ix(t,i,e))):Ix(r,i,e)}}return s.length?Promise.all(s).then(()=>Lx(u,i,n,o,l)):Lx(u,i,n,o,l)}});function Fx(e,t){for(let n=e.length-1;n>=0;n--)if(!(t===`optin`?e[n]._zod.optin!==void 0:e[n]._zod.optout===`optional`))return n+1;return 0}function Ix(e,t,n){e.issues.length&&t.issues.push(...pv(n,e.issues)),t.value[n]=e.value}function Lx(e,t,n,r,i){for(let a=0;a<n.length;a++){let o=e[a],s=a<r.length;if(!s&&a>=i&&n[a]._zod.optin===`optional`){t.value.length=a;break}if(o.issues.length){if(!s&&a>=i){t.value.length=a;break}t.issues.push(...pv(a,o.issues))}t.value[a]=o.value}for(let e=t.value.length-1;e>=r.length&&n[e]._zod.optout===`optional`&&t.value[e]===void 0;e--)t.value.length=e;return t}var Rx=K(`$ZodRecord`,(e,t)=>{xb.init(e,t);let n=Hv.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!q_(a))return r.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),r;let o=[],s=t.keyType._zod.values;if(s&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};let c=new Set;for(let n of s)if(typeof n==`string`||typeof n==`number`||typeof n==`symbol`){if(c.add(typeof n==`number`?n.toString():n),n===`__proto__`)continue;let s=t.keyType._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){r.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>_v(e,i,Uv())),input:n,path:[n],inst:e});continue}let l=s.value;if(l===`__proto__`)continue;let u=t.valueType._zod.run({value:a[n],issues:[]},i);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&r.issues.push(...pv(n,e.issues)),r.value[l]=e.value})):(u.issues.length&&r.issues.push(...pv(n,u.issues)),r.value[l]=u.value)}let l;for(let e in a)if(!c.has(e)){if(t.mode===`loose`){if(e===`__proto__`)continue;r.value[e]=a[e]}else l??=[],l.push(e)}l&&l.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:l,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let c;for(let n of Reflect.ownKeys(a)){if(n===`__proto__`||!Object.prototype.propertyIsEnumerable.call(a,n))continue;let l=t.keyType._zod.run({value:n,issues:[]},i);if(l instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof n==`string`&&Jy.test(n)&&l.issues.length){let e=t.keyType._zod.run({value:Number(n),issues:[]},i);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(l=e)}if(l.issues.length){t.mode===`loose`?r.value[n]=a[n]:s?(c??=[],c.push(n)):r.issues.push({code:`invalid_key`,origin:`record`,issues:l.issues.map(e=>_v(e,i,Uv())),input:n,path:[n],inst:e});continue}let u=l.value;if(u===`__proto__`)continue;let d=t.valueType._zod.run({value:a[n],issues:[]},i);d instanceof Promise?o.push(d.then(e=>{e.issues.length&&r.issues.push(...pv(n,e.issues)),r.value[u]=e.value})):(d.issues.length&&r.issues.push(...pv(n,d.issues)),r.value[u]=d.value)}c&&c.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c,continue:!0})}return o.length?Promise.all(o).then(()=>r):r}}),zx=K(`$ZodEnum`,(e,t)=>{xb.init(e,t);let n=w_(t.entries),r=new Set(n);e._zod.values=r,Mv(e,`pattern`,e=>{let t=w_(e.def.entries).filter(e=>Y_.has(typeof e));return RegExp(t.length?`^(${t.map(e=>X_(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Bx=K(`$ZodLiteral`,(e,t)=>{xb.init(e,t);let n=new Set(t.values);e._zod.values=n,Mv(e,`pattern`,e=>{let t=e.def.values;return RegExp(t.length?`^(${t.map(e=>typeof e==`string`?X_(e):e?X_(e.toString()):String(e)).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Vx=K(`$ZodTransform`,(e,t)=>{xb.init(e,t),e._zod.optin=`optional`,Hv.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Vv(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new Bv;return n.value=i,n}});function Hx(e,t){return e.value=t.issues.length?void 0:t.value,e}var Ux=K(`$ZodOptional`,(e,t)=>{xb.init(e,t),Mv(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,Mv(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),Mv(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${A_(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>Hx(e,t)):Hx(e,r)}return t.innerType._zod.run(e,n)}}),Wx=K(`$ZodExactOptional`,(e,t)=>{Ux.init(e,t),Mv(e,`values`,e=>e.def.innerType._zod.values),Mv(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Gx=K(`$ZodNullable`,(e,t)=>{xb.init(e,t),Mv(e,`optin`,e=>e.def.innerType._zod.optin),Mv(e,`optout`,e=>e.def.innerType._zod.optout),Mv(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${A_(t.source)}|null)$`):void 0}),Mv(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Kx=K(`$ZodDefault`,(e,t)=>{xb.init(e,t),e._zod.optin=`defaulted`,Mv(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>qx(e,t)):qx(r,t)}});function qx(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Jx=K(`$ZodPrefault`,(e,t)=>{xb.init(e,t),e._zod.optin=`defaulted`,Mv(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Yx=K(`$ZodNonOptional`,(e,t)=>{xb.init(e,t),Mv(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Xx(t,e)):Xx(i,e)}});function Xx(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Zx(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>_v(e,r,Uv()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var Qx=K(`$ZodCatch`,(e,t)=>{xb.init(e,t),Mv(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),Mv(e,`optout`,e=>e.def.innerType._zod.optout),Mv(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>Zx(e,r,t,n)):Zx(e,r,t,n)}}),$x=K(`$ZodPipe`,(e,t)=>{xb.init(e,t),Mv(e,`values`,e=>e.def.in._zod.values),Mv(e,`optin`,e=>e.def.in._zod.optin),Mv(e,`optout`,e=>e.def.out._zod.optout),Mv(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>eS(e,t.in,n)):eS(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>eS(e,t.out,n)):eS(r,t.out,n)}});function eS(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var tS=K(`$ZodReadonly`,(e,t)=>{xb.init(e,t),Mv(e,`propValues`,e=>e.def.innerType._zod.propValues),Mv(e,`values`,e=>e.def.innerType._zod.values),Mv(e,`optin`,e=>e.def.innerType?._zod?.optin),Mv(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(nS):nS(r)}});function nS(e){return e.memo||(e.value=Object.freeze(e.value)),e}var rS=K(`$ZodLazy`,(e,t)=>{xb.init(e,t),N_(e._zod,`innerType`,()=>{let e=t;return e._cachedInner||=t.getter(),e._cachedInner}),Mv(e,`pattern`,e=>e.innerType?._zod?.pattern),Mv(e,`propValues`,e=>e.innerType?._zod?.propValues),Mv(e,`optin`,e=>e.innerType?._zod?.optin??void 0),Mv(e,`optout`,e=>e.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),iS=K(`$ZodCustom`,(e,t)=>{$y.init(e,t),xb.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>aS(t,n,r,e));aS(i,n,r,e)}});function aS(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Sv(e))}}var oS=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},sS=`~memo`,cS=[];function lS(e){return typeof e==`object`&&!!e}function uS(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var dS=new WeakMap,fS=0,pS=1,mS=2;function hS(e,t,n){let r=dS.get(e);if(r!==void 0)return r?mS:fS;if(t.has(e))return mS;t.add(e);let i=fS,a=e=>{if(i!==mS&&e?._zod){let r=hS(e,t,n);r>i&&(i=r)}},o=(e,r)=>{let i=fS;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(r&&!o.enumerable)continue;let s=o.get?pS:o.value?._zod?hS(o.value,t,n):fS;s>i&&(i=s)}return i},s=e=>{e>i&&(i=e)},c=e._zod.def;switch(c.type){case`object`:{let e=F_(c);s(e?o(e,!0):pS),a(c.catchall);break}case`array`:a(c.element);break;case`tuple`:for(let e of c.items)a(e);a(c.rest);break;case`record`:case`map`:a(c.keyType),a(c.valueType);break;case`set`:a(c.valueType);break;case`union`:for(let e of c.options)a(e);break;case`intersection`:a(c.left),a(c.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:a(c.innerType);break;case`pipe`:a(c.in),a(c.out);break;case`function`:a(c.input),a(c.output);break;case`lazy`:{let r=c._cachedInner??(n?e._zod.innerType:void 0);s(r?hS(r,t,!1):pS);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in c){let t=Object.getOwnPropertyDescriptor(c,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)a(n);else if(Array.isArray(n))for(let e of n)a(e)}}}return t.delete(e),gS(e,i)}function gS(e,t){return t!==pS&&dS.set(e,t===mS),t}function _S(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}var vS,yS=[],bS={alloc(e,t,n){let r=vS;if(!r)return n;vS=void 0;let i={value:n,issues:null};return r.set(t.value,i),yS.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&SS(n,e.value))throw new oS;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=hS(e,new Set,!1);if(i===fS)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===mS||r?n=!0:r=!0}let l=s.value;if(!lS(l))return t(s,c);let u=c[sS];u||(u={buckets:new WeakMap,backEdges:void 0},c[sS]=u);let d;i===c?d=a:(d=_S(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(...uS(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=new WeakSet),u.backEdges.add(f.value)),s;vS=d;let p=yS.length,m=t(s,c);vS=void 0;let h=yS.length>p?yS.pop():void 0;return m instanceof Promise?m.then(e=>(h&&(h.issues=e.issues.length?uS(e.issues):cS),e)):(h&&(h.issues=m.issues.length?uS(m.issues):cS),m)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function xS(){return bS}function SS(e,t){let n=e[sS]?.backEdges;return n!==void 0&&lS(t)&&n.has(t)}var CS=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(xv(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${Q_(e.values[0])}`:`Invalid option: expected one of ${T_(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${T_(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function wS(){return{localeError:CS()}}var TS,ES=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function DS(){return new ES}(TS=globalThis).__zod_globalRegistry??(TS.__zod_globalRegistry=DS());var OS=globalThis.__zod_globalRegistry;function kS(e){return e.checks&&=[...e.checks],e}function AS(e,t){return new e(kS({type:`string`,...G(t)}))}function jS(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...G(t)})}function MS(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...G(t)})}function NS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...G(t)})}function PS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...G(t)})}function FS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...G(t)})}function IS(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...G(t)})}function LS(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...G(t)})}function RS(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...G(t)})}function zS(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...G(t)})}function BS(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...G(t)})}function VS(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...G(t)})}function HS(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...G(t)})}function US(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...G(t)})}function WS(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...G(t)})}function GS(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...G(t)})}function KS(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...G(t)})}function qS(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...G(t)})}function JS(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...G(t)})}function YS(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...G(t)})}function XS(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...G(t)})}function ZS(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...G(t)})}function QS(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...G(t)})}function $S(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...G(t)})}function eC(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...G(t)})}function tC(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...G(t)})}function nC(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...G(t)})}function rC(e,t){return new e(kS({type:`number`,checks:[],...G(t)}))}function iC(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...G(t)})}function aC(e,t){return new e({type:`boolean`,...G(t)})}function oC(e,t){return new e({type:`null`,...G(t)})}function sC(e){return new e({type:`unknown`})}function cC(e,t){return new e({type:`never`,...G(t)})}function lC(e,t){return new nb({check:`less_than`,...G(t),value:e,inclusive:!1})}function uC(e,t){return new nb({check:`less_than`,...G(t),value:e,inclusive:!0})}function dC(e,t){return new rb({check:`greater_than`,...G(t),value:e,inclusive:!1})}function fC(e,t){return new rb({check:`greater_than`,...G(t),value:e,inclusive:!0})}function pC(e,t){return new ib({check:`multiple_of`,...G(t),value:e})}function mC(e,t){return new ob({check:`max_length`,...G(t),maximum:e})}function hC(e,t){return new sb({check:`min_length`,...G(t),minimum:e})}function gC(e,t){return new cb({check:`length_equals`,...G(t),length:e})}function _C(e,t){return new ub({check:`string_format`,format:`regex`,...G(t),pattern:e})}function vC(e){return new db({check:`string_format`,format:`lowercase`,...G(e)})}function yC(e){return new fb({check:`string_format`,format:`uppercase`,...G(e)})}function bC(e,t){return new pb({check:`string_format`,format:`includes`,...G(t),includes:e})}function xC(e,t){return new mb({check:`string_format`,format:`starts_with`,...G(t),prefix:e})}function SC(e,t){return new hb({check:`string_format`,format:`ends_with`,...G(t),suffix:e})}function CC(e,t){return new _b({check:`properties`,shape:e,...G(t)})}function wC(e){return new vb({check:`overwrite`,tx:e})}function TC(e){return wC(t=>t.normalize(e))}function EC(){return wC(e=>e.trim())}function DC(){return wC(e=>e.toLowerCase())}function OC(){return wC(e=>e.toUpperCase())}function kC(){return wC(e=>U_(e))}function AC(e,t,n){return new e({type:`array`,element:t,...G(n)})}function jC(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...G(n)})}function MC(e,t){let n=NC(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(Sv(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(Sv(r))}},e(t.value,t)),t);return n}function NC(e,t){let n=new $y({check:`custom`,...G(t)});return n._zod.check=e,n}function PC(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&P_(e,t,n[t]);return e}function FC(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??OS,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function IC(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function LC(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,LC(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&PC(o.schema,c),t.io===`input`&&qC(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function RC(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function zC(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${RC(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+RC(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
77
82
 
78
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}e.external&&(e.sharedDefsExtractedFor=e.external)}function uC(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;uC(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var dC=new Set([`type`,`properties`,`required`,`additionalProperties`]),fC=[`oneOf`,`anyOf`];function pC(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function mC(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!dC.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??pC(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}N_(n,r,e.length===1?e[0]:mC(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=pC(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function hC(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of dC)if(t in e)return;let n=t.filter(e=>fC.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=mC(t);else{let e=n[0],i=fC.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>mC([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,iC(e,r))}function gC(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):iC(i,s),iC(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())uC(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])hC(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}iC(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,N_(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:yC(t,`input`,e.processors),output:yC(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function _C(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return _C(r.element,n);if(r.type===`set`)return _C(r.valueType,n);if(r.type===`lazy`)return _C(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return _C(r.innerType,n);if(r.type===`intersection`)return _C(r.left,n)||_C(r.right,n);if(r.type===`record`||r.type===`map`)return _C(r.keyType,n)||_C(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:_C(r.in,n)||_C(r.out,n);if(r.type===`object`){for(let e in r.shape)if(_C(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(_C(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(_C(e,n))return!0;return!!(r.rest&&_C(r.rest,n))}return!1}var vC=(e,t={})=>n=>{let r=aC({...n,processors:t});return sC(e,r),lC(r,e),gC(r,e)},yC=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=aC({...i??{},target:a,io:t,processors:n});return sC(e,o),lC(o,e),gC(o,e)},bC={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},xC=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=bC[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},SC=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(Number.isFinite(c)&&c!==0?i.multipleOf=Math.abs(c):oC(e,t,i,r,`A multipleOf divisor of ${c} cannot be represented in JSON Schema`))},CC=(e,t,n,r)=>{n.type=`boolean`},wC=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},TC=(e,t,n,r)=>{n.not={}},EC=(e,t,n,r)=>{let i=e._zod.def,a=w_(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},DC=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(oC(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(oC(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},OC=(e,t,n,r)=>{oC(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},kC=(e,t,n,r)=>{oC(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},AC=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=sC(a.element,t,{...r,path:[...r.path,`items`]})};function jC(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?jC(t.out):t.type===`catch`?jC(t.innerType):e._zod.optin}var MC=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&oC(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)N_(i.properties,e,sC(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e];return t.io===`input`?jC(n)===void 0:n._zod.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=sC(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},NC=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>sC(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},PC=(e,t,n,r)=>{let i=e._zod.def,a=sC(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=sC(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},FC=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>sC(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?sC(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?jC(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=e._zod.bag;typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function IC(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=IC(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>IC(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?Py:Ny).source),p):p}var LC=new WeakMap;function RC(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=new Map;for(let r of LC.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=IC(t,a,new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}var zC=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=sC(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)N_(i.patternProperties,t.source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=sC(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=LC.get(t);n||(n=[],LC.set(t,n),t.deferred.push(()=>RC(t))),n.push(e)}i.additionalProperties=sC(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&jC(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},BC=(e,t,n,r)=>{let i=e._zod.def,a=sC(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},VC=(e,t,n,r)=>{let i=e._zod.def;sC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},HC=Symbol();function UC(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(oC(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),HC):JSON.parse(o)}var WC=(e,t,n,r)=>{let i=e._zod.def;sC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=UC(i.defaultValue,e,t,n,r);o!==HC&&(n.default=o)},GC=(e,t,n,r)=>{let i=e._zod.def;sC(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=UC(i.defaultValue,e,t,n,r);o!==HC&&(n._prefault=o)},KC=(e,t,n,r)=>{let i=e._zod.def;sC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{oC(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},qC=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;sC(o,t,r);let s=t.seen.get(e);s.ref=o},JC=(e,t,n,r)=>{let i=e._zod.def;sC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},YC=(e,t,n,r)=>{let i=e._zod.def;sC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},XC=(e,t,n,r)=>{let i=e._zod.innerType;sC(i,t,r);let a=t.seen.get(e);a.ref=i},ZC=new WeakSet([Object.prototype,Error.prototype]);function QC(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var $C=K(`ZodError`,(e,t)=>{zv.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);ZC.has(n)||(ZC.add(n),QC(n,`format`,e=>t=>Uv(e,t)),QC(n,`flatten`,e=>t=>Hv(e,t)),QC(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,E_,2)}),QC(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,E_,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),ew=Gv($C),tw=Kv($C),nw=qv($C),rw=Yv($C),iw=Zv($C),aw=Qv($C),ow=$v($C),sw=ey($C),cw=ty($C),lw=ny($C),uw=ry($C),dw=iy($C);function fw(){Av.localeError||jv(Xx())}function pw(){Av.memoizer||jv({memoizer:qx()})}var mw=K(`ZodType`,(e,t)=>(fw(),ab.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(P_(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return W_(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(LT(e,t))},superRefine(e,t){return this.check(RT(e,t))},overwrite(e){return this.check(JS(e))},optional(){return vT(this)},exactOptional(){return bT(this)},nullable(){return ST(this)},nullish(){return vT(ST(this))},nonoptional(e){return OT(this,e)},array(){return $w(this)},or(e){return rT([this,e])},and(e){return sT(this,e)},transform(e){return MT(this,gT(e))},default(e){return wT(this,e)},prefault(e){return ET(this,e)},catch(e){return AT(this,e)},pipe(e){return MT(this,e)},readonly(){return PT(this)},describe(e){let t=this.clone();return eS.add(t,{description:e}),t},meta(...e){if(e.length===0)return eS.get(this);let t=this.clone();return eS.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return mv(this,`~standard`,{...sb(this),jsonSchema:{input:yC(this,`input`),output:yC(this,`output`)}})},set"~standard"(e){pv(this,`~standard`,e)},parse:function e(t,n){return ew(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await tw(this,t,n,{callee:e})},safeParse(e,t){return nw(this,e,t)},async safeParseAsync(e,t){return rw(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){pv(this,`spa`,e)},encode:function e(t,n){return iw(this,t,n,{callee:e})},decode:function e(t,n){return aw(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await ow(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await sw(this,t,n,{callee:e})},safeEncode(e,t){return cw(this,e,t)},safeDecode(e,t){return lw(this,e,t)},async safeEncodeAsync(e,t){return uw(this,e,t)},async safeDecodeAsync(e,t){return dw(this,e,t)},toJSONSchema(e){return vC(this,{})(e)},get description(){return eS.get(this)?.description},get _def(){return this._zod.def}}),hw=K(`_ZodString`,(e,t)=>{cb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xC(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null},{regex(...e){return this.check(HS(...e))},includes(...e){return this.check(GS(...e))},startsWith(...e){return this.check(KS(...e))},endsWith(...e){return this.check(qS(...e))},min(...e){return this.check(BS(...e))},max(...e){return this.check(zS(...e))},length(...e){return this.check(VS(...e))},nonempty(...e){return this.check(BS(1,...e))},lowercase(e){return this.check(US(e))},uppercase(e){return this.check(WS(e))},trim(){return this.check(XS())},normalize(...e){return this.check(YS(...e))},toLowerCase(){return this.check(ZS())},toUpperCase(){return this.check(QS())},slugify(){return this.check($S())}}),gw=K(`ZodString`,(e,t)=>{cb.init(e,t),hw.init(e,t)},{email(e){return this.check(nS(Sw,e))},url(e){return this.check(cS(Tw,e))},jwt(e){return this.check(CS(Bw,e))},emoji(e){return this.check(lS(Ew,e))},guid(e){return this.check(rS(Cw,e))},uuid(e){return this.check(iS(ww,e))},uuidv4(e){return this.check(aS(ww,e))},uuidv6(e){return this.check(oS(ww,e))},uuidv7(e){return this.check(sS(ww,e))},nanoid(e){return this.check(uS(Dw,e))},cuid(e){return this.check(dS(Ow,e))},cuid2(e){return this.check(fS(kw,e))},ulid(e){return this.check(pS(Aw,e))},base64(e){return this.check(bS(Lw,e))},base64url(e){return this.check(xS(Rw,e))},xid(e){return this.check(mS(jw,e))},ksuid(e){return this.check(hS(Mw,e))},ipv4(e){return this.check(gS(Nw,e))},ipv6(e){return this.check(_S(Pw,e))},cidrv4(e){return this.check(vS(Fw,e))},cidrv6(e){return this.check(yS(Iw,e))},e164(e){return this.check(SS(zw,e))},datetime(e){return this.check(wS(vw,e))},date(e){return this.check(TS(yw,e))},time(e){return this.check(ES(bw,e))},duration(e){return this.check(DS(xw,e))}});function q(e){return tS(gw,e)}var _w=K(`ZodStringFormat`,(e,t)=>{lb.init(e,t),hw.init(e,t)}),vw=K(`ZodISODateTime`,(e,t)=>{Eb.init(e,t),_w.init(e,t)}),yw=K(`ZodISODate`,(e,t)=>{Db.init(e,t),_w.init(e,t)}),bw=K(`ZodISOTime`,(e,t)=>{Ob.init(e,t),_w.init(e,t)}),xw=K(`ZodISODuration`,(e,t)=>{kb.init(e,t),_w.init(e,t)}),Sw=K(`ZodEmail`,(e,t)=>{fb.init(e,t),_w.init(e,t)}),Cw=K(`ZodGUID`,(e,t)=>{ub.init(e,t),_w.init(e,t)}),ww=K(`ZodUUID`,(e,t)=>{db.init(e,t),_w.init(e,t)}),Tw=K(`ZodURL`,(e,t)=>{vb.init(e,t),_w.init(e,t)}),Ew=K(`ZodEmoji`,(e,t)=>{yb.init(e,t),_w.init(e,t)}),Dw=K(`ZodNanoID`,(e,t)=>{bb.init(e,t),_w.init(e,t)}),Ow=K(`ZodCUID`,(e,t)=>{xb.init(e,t),_w.init(e,t)}),kw=K(`ZodCUID2`,(e,t)=>{Sb.init(e,t),_w.init(e,t)}),Aw=K(`ZodULID`,(e,t)=>{Cb.init(e,t),_w.init(e,t)}),jw=K(`ZodXID`,(e,t)=>{wb.init(e,t),_w.init(e,t)}),Mw=K(`ZodKSUID`,(e,t)=>{Tb.init(e,t),_w.init(e,t)}),Nw=K(`ZodIPv4`,(e,t)=>{Ab.init(e,t),_w.init(e,t)}),Pw=K(`ZodIPv6`,(e,t)=>{Nb.init(e,t),_w.init(e,t)}),Fw=K(`ZodCIDRv4`,(e,t)=>{Pb.init(e,t),_w.init(e,t)}),Iw=K(`ZodCIDRv6`,(e,t)=>{Ib.init(e,t),_w.init(e,t)}),Lw=K(`ZodBase64`,(e,t)=>{Rb.init(e,t),_w.init(e,t)}),Rw=K(`ZodBase64URL`,(e,t)=>{Bb.init(e,t),_w.init(e,t)}),zw=K(`ZodE164`,(e,t)=>{Vb.init(e,t),_w.init(e,t)}),Bw=K(`ZodJWT`,(e,t)=>{Ub.init(e,t),_w.init(e,t)}),Vw=K(`ZodNumber`,(e,t)=>{Wb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>SC(e,t,n,r);let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null},{gt(e,t){return this.check(IS(e,t))},gte(e,t){return this.check(LS(e,t))},min(e,t){return this.check(LS(e,t))},lt(e,t){return this.check(PS(e,t))},lte(e,t){return this.check(FS(e,t))},max(e,t){return this.check(FS(e,t))},int(e){return this.check(Uw(e))},safe(e){return this.check(Uw(e))},positive(e){return this.check(IS(0,e))},nonnegative(e){return this.check(LS(0,e))},negative(e){return this.check(PS(0,e))},nonpositive(e){return this.check(FS(0,e))},multipleOf(e,t){return this.check(RS(e,t))},step(e,t){return this.check(RS(e,t))},finite(){return this}});function J(e){return OS(Vw,e)}var Hw=K(`ZodNumberFormat`,(e,t)=>{Gb.init(e,t),Vw.init(e,t)});function Uw(e){return kS(Hw,e)}var Ww=K(`ZodBoolean`,(e,t)=>{Kb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>CC(e,t,n,r)});function Gw(e){return AS(Ww,e)}var Kw=K(`ZodNull`,(e,t)=>{qb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wC(e,t,n,r)});function qw(e){return jS(Kw,e)}var Jw=K(`ZodUnknown`,(e,t)=>{Jb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Yw(){return MS(Jw)}var Xw=K(`ZodNever`,(e,t)=>{Yb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>TC(e,t,n,r)});function Zw(e){return NS(Xw,e)}var Qw=K(`ZodArray`,(e,t)=>{pw(),Zb.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>AC(e,t,n,r),e.element=t.element},{min(e,t){return this.check(BS(e,t))},nonempty(e){return this.check(BS(1,e))},max(e,t){return this.check(zS(e,t))},length(e,t){return this.check(VS(e,t))},unwrap(){return this.element}});function $w(e,t){return eC(Qw,e,t)}var eT=K(`ZodObject`,(e,t)=>{pw(),ix.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>MC(e,t,n,r),xv(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return pT(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Yw()})},loose(){return this.clone({...this._zod.def,catchall:Yw()})},strict(){return this.clone({...this._zod.def,catchall:Zw()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return X_(this,e)},safeExtend(e){return Z_(this,e)},merge(e){return Q_(this,e)},pick(e){return J_(this,e)},omit(e){return Y_(this,e)},partial(...e){return $_(_T,this,e[0])},exactPartial(...e){return $_(yT,this,e[0],`exactPartial`)},required(...e){return ev(DT,this,e[0])}});function Y(e,t){return new eT({type:`object`,shape:e??{},...G(t)})}function tT(e,t){return new eT({type:`object`,shape:e,catchall:Zw(),...G(t)})}var nT=K(`ZodUnion`,(e,t)=>{ox.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>NC(e,t,n,r),e.options=t.options});function rT(e,t){return new nT({type:`union`,options:e,...G(t)})}var iT=K(`ZodDiscriminatedUnion`,(e,t)=>{nT.init(e,t),sx.init(e,t)});function aT(e,t,n){return new iT({type:`union`,options:t,discriminator:e,...G(n)})}var oT=K(`ZodIntersection`,(e,t)=>{cx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>PC(e,t,n,r)});function sT(e,t){return new oT({type:`intersection`,left:e,right:t})}var cT=K(`ZodTuple`,(e,t)=>{pw(),dx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>FC(e,t,n,r)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw Error(`.partial() cannot be used on tuple schemas containing refinements`);return this.clone({...e,items:e.items.map(e=>new _T({type:`optional`,innerType:e}))})}});function lT(e,t,n){let r=t instanceof ab;return new cT({type:`tuple`,items:e,rest:r?t:null,...G(r?n:t)})}var uT=K(`ZodRecord`,(e,t)=>{pw(),hx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zC(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function dT(e,t,n){return!t||!t._zod?new uT({type:`record`,keyType:q(),valueType:e,...G(t)}):new uT({type:`record`,keyType:e,valueType:t,...G(n)})}var fT=K(`ZodEnum`,(e,t)=>{gx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>EC(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new fT({...t,checks:[],...G(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new fT({...t,checks:[],...G(r),entries:i})}});function pT(e,t){return new fT({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...G(t)})}var mT=K(`ZodLiteral`,(e,t)=>{_x.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>DC(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function X(e,t){return new mT({type:`literal`,values:Array.isArray(e)?e:[e],...G(t)})}var hT=K(`ZodTransform`,(e,t)=>{pw(),vx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>kC(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new kv(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(dv(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(dv(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function gT(e){return new hT({type:`transform`,transform:e})}var _T=K(`ZodOptional`,(e,t)=>{bx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>YC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function vT(e){return new _T({type:`optional`,innerType:e})}var yT=K(`ZodExactOptional`,(e,t)=>{xx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>YC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function bT(e){return new yT({type:`optional`,innerType:e})}var xT=K(`ZodNullable`,(e,t)=>{Sx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>BC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ST(e){return new xT({type:`nullable`,innerType:e})}var CT=K(`ZodDefault`,(e,t)=>{Cx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>WC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function wT(e,t){return new CT({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():V_(t)}})}var TT=K(`ZodPrefault`,(e,t)=>{Tx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>GC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ET(e,t){return new TT({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():V_(t)}})}var DT=K(`ZodNonOptional`,(e,t)=>{Ex.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>VC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function OT(e,t){return new DT({type:`nonoptional`,innerType:e,...G(t)})}var kT=K(`ZodCatch`,(e,t)=>{kx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>KC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function AT(e,t){return new kT({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Cv(t)})}var jT=K(`ZodPipe`,(e,t)=>{Ax.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qC(e,t,n,r),e.in=t.in,e.out=t.out});function MT(e,t){return new jT({type:`pipe`,in:e,out:t})}var NT=K(`ZodReadonly`,(e,t)=>{Mx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>JC(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function PT(e){return new NT({type:`readonly`,innerType:e})}var FT=K(`ZodLazy`,(e,t)=>{Px.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>XC(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function Z(e){return new FT({type:`lazy`,getter:e})}var IT=K(`ZodCustom`,(e,t)=>{Fx.init(e,t),mw.init(e,t),e._zod.processJSONSchema=(t,n,r)=>OC(e,t,n,r)});function LT(e,t={}){return tC(IT,e,t)}function RT(e,t){return nC(e,t)}function zT(e,t={}){let n=new IT({type:`custom`,check:`custom`,fn:t=>t instanceof e,abort:!0,...G(t)});return n._zod.bag.Class=e,n._zod.check=t=>{t.value instanceof e||t.issues.push({code:`invalid_type`,expected:e.name,input:t.value,inst:n,path:[...n._zod.def.path??[]]})},n}var BT=Z(()=>zT(Uint8Array).refine(e=>e.length===16,{message:`expected exactly 16 bytes`})),VT=Z(()=>Y({verb:X(`bulk.open`),"transfer-id":Z(()=>BT),"total-size":J().int().nonnegative().optional(),"content-type":q().optional()}).catchall(Yw())),HT=Z(()=>Y({verb:X(`bulk.resume`),"transfer-id":Z(()=>BT),"ack-seq":J().int().nonnegative()}).catchall(Yw())),UT=Z(()=>Y({verb:X(`bulk.cancel`),"transfer-id":Z(()=>BT),reason:q().optional()}).catchall(Yw())),WT=Z(()=>rT([rT([Z(()=>VT),Z(()=>HT),Z(()=>UT)]),rT([Z(()=>ZT),Z(()=>QT),Z(()=>$T),Z(()=>eE),Z(()=>tE),Z(()=>nE),Z(()=>rE),Z(()=>iE)]),Y({}).catchall(Yw()),Z(()=>bE),Z(()=>SE),Z(()=>EE),Z(()=>DE),rT([Z(()=>jE),Z(()=>ME),Z(()=>NE),Z(()=>PE)]),rT([Z(()=>IE),Z(()=>LE)]),Z(()=>RE),rT([Z(()=>QE),Z(()=>$E),Z(()=>eD)]),rT([Z(()=>tD),Z(()=>nD),Z(()=>rD)]),Z(()=>OD),rT([Z(()=>jD),Z(()=>MD),Z(()=>ND),Z(()=>kD)])])),GT=Z(()=>Y({type:X(`bulk-data`),"transfer-id":Z(()=>BT),seq:J().int().nonnegative(),bytes:zT(Uint8Array)})),KT=Z(()=>Y({type:X(`bulk-ack`),"transfer-id":Z(()=>BT),"ack-seq":J().int().nonnegative(),window:J().int().nonnegative()})),qT=Z(()=>Y({type:X(`bulk-end`),"transfer-id":Z(()=>BT),digest:zT(Uint8Array)})),JT=Z(()=>Y({type:X(`data-have`),peer:Z(()=>mE),"head-seq":J().int().nonnegative()})),YT=Z(()=>Y({type:X(`data-request`),peer:Z(()=>mE),"from-seq":J().int().nonnegative()})),XT=Z(()=>Y({type:X(`data-entries`),peer:Z(()=>mE),"from-seq":J().int().nonnegative(),entries:$w(zT(Uint8Array))}));Z(()=>Y({handle:q(),"device-id":Z(()=>mE),"identity-key":Z(()=>pE),candidates:$w(Z(()=>yD)).optional(),mailboxes:$w(Z(()=>mE)).optional(),issued:J().int().nonnegative(),expires:J().int().nonnegative()})),Z(()=>Z(()=>uD));var ZT=Z(()=>Y({verb:X(`pty.spawn`),shell:q().optional(),argv:$w(q()),cwd:q().optional(),env:Y({}).catchall(q()),cols:J().int().nonnegative(),rows:J().int().nonnegative()})),QT=Z(()=>Y({verb:X(`pty.write`),session:Z(()=>GE),bytes:zT(Uint8Array)})),$T=Z(()=>Y({verb:X(`pty.resize`),session:Z(()=>GE),cols:J().int().nonnegative(),rows:J().int().nonnegative()})),eE=Z(()=>Y({verb:X(`pty.kill`),session:Z(()=>GE),signal:J().int()})),tE=Z(()=>Y({verb:X(`proc.spawn`),argv:$w(q()),cwd:q().optional(),env:Y({}).catchall(q())})),nE=Z(()=>Y({verb:X(`proc.signal`),session:Z(()=>GE),signal:J().int()})),rE=Z(()=>Y({verb:X(`proc.kill`),session:Z(()=>GE)})),iE=Z(()=>Y({verb:X(`exec.list`)}));Z(()=>Y({session:Z(()=>GE),kind:rT([X(`pty`),X(`proc`)]),argv:$w(q()).optional(),cwd:q().optional()}));var aE=Z(()=>rT([Z(()=>fE),Z(()=>pD),Z(()=>mD),Z(()=>hD),Z(()=>_D),Z(()=>bD),Z(()=>xD),Z(()=>SD),Z(()=>CD),Z(()=>wD),Z(()=>TD),Z(()=>ED),Z(()=>DD),Z(()=>gE),Z(()=>yE),Z(()=>TE),Z(()=>KE),Z(()=>qE),Z(()=>JE),Z(()=>JT),Z(()=>YT),Z(()=>XT),Z(()=>GT),Z(()=>KT),Z(()=>qT),Z(()=>UE),Z(()=>WE)])),oE=Z(()=>Z(()=>aE)),sE=Z(()=>J().int().nonnegative()),cE=Z(()=>rT([Z(()=>lE),Z(()=>uE),Z(()=>dE)])),lE=Z(()=>rT([X(`core/management`),X(`core/exec`),X(`core/data`),X(`core/federation`),X(`core/webrtc`),X(`core/room`),X(`core/bulk`),X(`core/version`)])),uE=Z(()=>q().regex(RegExp(`^(?:[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+/[A-Za-z0-9_.-]+)$`))),dE=Z(()=>q().regex(RegExp(`^(?:x-[A-Za-z0-9_.-]+)$`))),fE=Z(()=>Y({type:X(`handshake`),version:Z(()=>sE),domains:$w(Z(()=>cE)),params:Y({}).catchall(Yw()).optional()})),pE=Z(()=>Y({alg:J().int(),"public-key":zT(Uint8Array)})),mE=Z(()=>zT(Uint8Array).refine(e=>e.length===32,{message:`expected exactly 32 bytes`}));Z(()=>Y({"device-id":Z(()=>mE),"identity-key":Z(()=>pE),certificate:zT(Uint8Array).optional()}));var hE=Z(()=>Y({verb:Z(()=>iD),params:Z(()=>WT)})),gE=Z(()=>Y({type:X(`manage-request`),"request-id":J().int().nonnegative(),command:Z(()=>hE),scope:Z(()=>cD),token:Z(()=>dD).optional()})),_E=Z(()=>Y({result:X(`ok`)}).catchall(Yw())),vE=Z(()=>Y({result:X(`error`),code:q(),message:q().optional()})),yE=Z(()=>Y({type:X(`manage-response`),"request-id":J().int().nonnegative(),outcome:rT([Z(()=>_E),Z(()=>vE)])})),bE=Z(()=>Y({verb:X(`capability.request`),capability:q(),"valid-until":J().int().nonnegative().optional()}).catchall(Yw())),xE=Z(()=>Y({result:X(`ok`),"granted-token":Z(()=>dD)}).catchall(Yw())),SE=Z(()=>Y({verb:X(`capability.grant`),"granted-token":Z(()=>dD)}).catchall(Yw())),CE=Z(()=>Y({"token-id":zT(Uint8Array),issuer:Z(()=>mE),"issuer-key":Z(()=>pE),"revoked-at":J().int().nonnegative(),authorization:zT(Uint8Array).optional()})),wE=Z(()=>Z(()=>uD)),TE=Z(()=>Y({type:X(`revocation-announce`),entries:$w(Z(()=>wE))})),EE=Z(()=>Y({verb:X(`path.trace`)}));Z(()=>Y({result:X(`ok`),relayed:Gw(),"hub-address":q().optional()}).catchall(Yw())),Z(()=>Y({direct:$w(Z(()=>mE)),relayed:$w(Y({device:Z(()=>mE),via:Z(()=>mE).optional()}))}));var DE=Z(()=>Y({verb:X(`topology.get`)})),OE=Z(()=>rT([Z(()=>kE),Z(()=>AE)]));Z(()=>q().regex(RegExp(`^(?:[0-9a-f]{64})$`)));var kE=Z(()=>q().regex(RegExp(`^(?:[0-9a-f]{64}/[A-Za-z0-9_-]+)$`))),AE=Z(()=>q().regex(RegExp(`^(?:[0-9a-f]{64}\\+[0-9a-f]{64})$`))),jE=Z(()=>Y({verb:X(`room.send`),"message-id":zT(Uint8Array),"sent-at":J().int().nonnegative(),text:q(),"content-type":q().optional(),refs:$w(Z(()=>FE)).optional()}).catchall(Yw())),ME=Z(()=>Y({verb:X(`room.read`),messages:$w(zT(Uint8Array)),at:J().int().nonnegative()}).catchall(Yw())),NE=Z(()=>Y({verb:X(`room.leave`)}).catchall(Yw())),PE=Z(()=>Y({verb:X(`room.members`)}).catchall(Yw())),FE=Z(()=>Y({id:zT(Uint8Array),relation:q()})),IE=Z(()=>Y({verb:X(`room.join`)}).catchall(Yw())),LE=Z(()=>Y({verb:X(`room.invite`),invitee:Z(()=>mE),token:Z(()=>dD)}).catchall(Yw())),RE=Z(()=>Y({verb:X(`room.rekey`),"key-epoch":J().int().nonnegative(),"wrapped-key":rT([zT(Uint8Array),$w(zT(Uint8Array))])}).catchall(Yw())),zE=Z(()=>Y({device:Z(()=>mE)}).catchall(Yw())),BE=Z(()=>Y({result:X(`ok`),"granted-token":Z(()=>dD),members:$w(Z(()=>zE))}).catchall(Yw()));Z(()=>Y({result:X(`ok`),members:$w(Z(()=>zE))}).catchall(Yw()));var VE=Z(()=>Z(()=>uD)),HE=Z(()=>Y({room:Z(()=>OE),poster:Z(()=>mE),"poster-key":Z(()=>pE),token:Z(()=>dD),"notice-id":zT(Uint8Array),"posted-at":J().int().nonnegative(),"content-type":q(),content:zT(Uint8Array),refs:$w(Z(()=>FE)).optional(),"valid-until":J().int().nonnegative().optional(),"key-epoch":J().int().nonnegative().optional()}).catchall(Yw())),UE=Z(()=>Y({type:X(`secure-hello`),"ephemeral-key":zT(Uint8Array).refine(e=>e.length===65,{message:`expected exactly 65 bytes`}),nonce:zT(Uint8Array).refine(e=>e.length===16,{message:`expected exactly 16 bytes`}),"identity-key":Z(()=>pE),"to-device":Z(()=>mE),signature:zT(Uint8Array)})),WE=Z(()=>Y({type:X(`secure-data`),counter:J().int().nonnegative(),ciphertext:zT(Uint8Array)})),GE=Z(()=>J().int().nonnegative()),KE=Z(()=>Y({type:X(`stream-data`),session:Z(()=>GE),seq:J().int().nonnegative(),channel:q(),bytes:zT(Uint8Array)})),qE=Z(()=>Y({type:X(`stream-ack`),session:Z(()=>GE),"ack-seq":J().int().nonnegative(),window:J().int().nonnegative()})),JE=Z(()=>Y({type:X(`stream-end`),session:Z(()=>GE),"exit-code":J().int().optional(),"exit-signal":J().int().optional()})),YE=Z(()=>J().int().nonnegative()),XE=Z(()=>Y({kind:rT([X(`capability-token`),X(`revocation-entry`),X(`handle-record`),X(`room-notice`),q()]),protected:zT(Uint8Array),payload:zT(Uint8Array)})),ZE=Z(()=>Y({participant:Z(()=>mE),hiding:zT(Uint8Array),binding:zT(Uint8Array)})),QE=Z(()=>Y({verb:X(`threshold.commit`),"session-id":Z(()=>YE),group:Z(()=>mE),subject:Z(()=>XE),deadline:J().int().nonnegative()})),$E=Z(()=>Y({verb:X(`threshold.sign`),"session-id":Z(()=>YE),commitments:$w(Z(()=>ZE))}));Z(()=>Y({"session-id":Z(()=>YE),group:Z(()=>mE),share:zT(Uint8Array),issuer:Z(()=>mE),"issuer-key":Z(()=>pE)})),Z(()=>Z(()=>uD));var eD=Z(()=>Y({verb:X(`threshold.abort`),"session-id":Z(()=>YE),reason:q().optional()})),tD=Z(()=>Y({verb:X(`threshold.keygen-round1`),"session-id":Z(()=>YE),threshold:J().int().nonnegative(),participants:$w(Z(()=>mE)),commitment:$w(zT(Uint8Array)),"proof-of-knowledge":zT(Uint8Array).optional(),"existing-group-key":zT(Uint8Array).optional()})),nD=Z(()=>Y({verb:X(`threshold.keygen-round2`),"session-id":Z(()=>YE),share:zT(Uint8Array)})),rD=Z(()=>Y({verb:X(`threshold.keygen-confirm`),"session-id":Z(()=>YE),"transcript-digest":zT(Uint8Array),"group-key":zT(Uint8Array)})),iD=Z(()=>rT([Z(()=>aD),Z(()=>oD),Z(()=>sD)])),aD=Z(()=>q().regex(RegExp(`^(?:[a-z][a-z0-9-]*:[a-z][a-z0-9-]*)$`))),oD=Z(()=>q().regex(RegExp(`^(?:[a-z0-9.-]+/[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+)$`))),sD=Z(()=>q().regex(RegExp(`^(?:x-[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+)$`))),cD=Z(()=>Y({kind:q(),path:q().optional()}));Z(()=>X(1)),Z(()=>X(4)),Z(()=>rT([J().int(),q()]));var lD=Z(()=>Y({1:J().int().optional(),4:zT(Uint8Array).optional()}).catchall(Yw())),uD=Z(()=>lT([zT(Uint8Array),Z(()=>lD),rT([zT(Uint8Array),qw()]),zT(Uint8Array)])),dD=Z(()=>Z(()=>uD)),fD=Z(()=>Y({"token-id":zT(Uint8Array),issuer:Z(()=>mE),"issuer-key":Z(()=>pE),bearer:Z(()=>mE),capability:Z(()=>iD),scope:Z(()=>cD),expires:J().int().nonnegative(),"not-before":J().int().nonnegative().optional(),parent:zT(Uint8Array).optional(),"authorised-by":zT(Uint8Array).optional(),"delegations-remaining":J().int().nonnegative().optional(),"valid-until":J().int().nonnegative().optional(),conditions:zT(Uint8Array).optional(),"grants-capability":Z(()=>iD).optional(),"requests-capability":Z(()=>iD).optional()}).catchall(Yw())),pD=Z(()=>Y({type:X(`ping`)})),mD=Z(()=>Y({type:X(`pong`)})),hD=Z(()=>Y({type:X(`close`),reason:q().optional()})),gD=Z(()=>Y({device:Z(()=>mE),addresses:$w(q()),"snapshot-seconds":J().int(),"identity-key":Z(()=>pE),signature:zT(Uint8Array)}).catchall(Yw())),_D=Z(()=>Y({type:X(`gossip`),peers:$w(Z(()=>gD))})),vD=Z(()=>rT([X(`host`),X(`server-reflexive`),X(`relayed`)])),yD=Z(()=>Y({address:q(),kind:Z(()=>vD),priority:J().int().nonnegative()})),bD=Z(()=>Y({type:X(`candidates`),candidates:$w(Z(()=>yD))})),xD=Z(()=>Y({type:X(`sync-punch`),nonce:J().int().nonnegative(),"deadline-unix-ms":J().int().nonnegative()})),SD=Z(()=>Y({type:X(`observed-address`),address:q()})),CD=Z(()=>Y({type:X(`relay-offer`),addresses:$w(q())})),wD=Z(()=>Y({type:X(`relay-connect`),"target-device":Z(()=>mE),"source-device":Z(()=>mE).optional()})),TD=Z(()=>Y({type:X(`relay-data`),payload:zT(Uint8Array),"to-device":Z(()=>mE).optional(),"from-device":Z(()=>mE).optional()})),ED=Z(()=>Y({type:X(`relay-inbound`),"source-device":Z(()=>mE),"target-device":Z(()=>mE).optional()})),DD=Z(()=>Y({type:X(`coordinator`),term:J().int().nonnegative(),coordinator:Z(()=>mE),"capacity-hint":J().int().nonnegative().optional()})),OD=Z(()=>Y({verb:X(`version.get`)})),kD=Z(()=>Y({verb:X(`webrtc.sfu-track-map`),"negotiation-id":J().int().nonnegative(),tracks:$w(Z(()=>AD))})),AD=Z(()=>Y({mid:q(),member:Z(()=>mE),kind:rT([X(`audio`),X(`video`)])})),jD=Z(()=>Y({verb:X(`webrtc.offer`),"negotiation-id":J().int().nonnegative(),sdp:q()})),MD=Z(()=>Y({verb:X(`webrtc.answer`),"negotiation-id":J().int().nonnegative(),sdp:q()})),ND=Z(()=>Y({verb:X(`webrtc.ice-candidate`),"negotiation-id":J().int().nonnegative(),candidate:Z(()=>PD).optional()})),PD=Z(()=>Y({candidate:q(),"sdp-mid":q().optional(),"sdp-m-line-index":J().int().nonnegative().optional(),"username-fragment":q().optional()})),FD=16,ID=2,LD=64;function RD(e){let t=``;for(let n of e)t+=n.toString(FD).padStart(ID,`0`);return t}function zD(e){return RD(e)}function BD(e){if(!/^([0-9a-f]{2})*$/.test(e))throw Error(`expected an even-length, lowercase hex string, got ${JSON.stringify(e)}`);let t=new Uint8Array(e.length/ID);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*ID,(n+1)*ID),FD);return t}function VD(e){if(e.length!==LD)throw Error(`expected a 64-character lowercase hex string, got ${JSON.stringify(e)}`);return mE.parse(BD(e))}var HD=8,UD=3,WD=4,GD=8,KD=255,qD=19,JD=252,YD=32,XD=64,ZD=BigInt(HD),QD=31,$D=127,eO=BigInt(0),tO=BigInt(1),nO=BigInt(2),rO=(tO<<BigInt(KD))-BigInt(qD),iO=(tO<<BigInt(JD))+BigInt(`27742317777372353535851937790883648493`),aO=BigInt(`37095705934669439343138083508754565189542113879843219016388785533085940283555`),oO=new Set([`0`,`1`,`7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec`,`5fc536d880238b13933c6d305acdfd5f098eff289f4c345b027b2c28f95e826`,`7a03ac9277fdc74ec6cc392cfa53202a0f67100d760b3cba4fd84d3d706a17c7`].map(e=>BigInt(`0x${e}`)));function sO(e){let t=eO;for(let n=e.length-1;n>=0;--n)t=t<<ZD|BigInt(e[n]??0);return t}function cO(e){let t=Uint8Array.from(e);return t[QD]=(t[QD]??0)&$D,sO(t)}function lO(e,t){let n=tO,r=e%rO,i=t;for(;i>eO;)(i&tO)===tO&&(n=n*r%rO),r=r*r%rO,i>>=tO;return n}function uO(e){let t=e%rO;return t>=eO?t:t+rO}var dO=lO(nO,(rO-tO)/BigInt(WD));function fO(e){let t=uO(e*e),n=uO(uO(t-tO)*lO(uO(aO*t+tO),rO-nO)),r=lO(n,(rO+BigInt(UD))/BigInt(GD));for(let t of[r,uO(r*dO)])if(uO(t*t)===n)return{x:t,y:e,z:tO,t:uO(t*e)}}function pO(e,t){let n=uO((e.y-e.x)*(t.y-t.x)),r=uO((e.y+e.x)*(t.y+t.x)),i=uO(e.t*nO*aO*t.t),a=uO(e.z*nO*t.z),o=r-n,s=a-i,c=a+i,l=r+n;return{x:uO(o*s),y:uO(c*l),z:uO(s*c),t:uO(o*l)}}var mO={x:eO,y:tO,z:tO,t:eO};function hO(e){let t=mO;for(let n=JD;n>=0;--n)t=pO(t,t),(iO>>BigInt(n)&tO)===tO&&(t=pO(t,e));return t.x===eO&&t.y===t.z}var gO=1024,_O=new Map;function vO(e){if(e.length!==YD)return`wrong_size`;let t=cO(e);if(t>=rO)return`non_canonical`;let n=fO(t);return n===void 0?`not_a_point`:oO.has(t)?`small_order`:hO(n)?void 0:`mixed_order`}function yO(e){if(e.length!==YD)return`wrong_size`;let t=RD(e);if(_O.has(t)){let e=_O.get(t);return _O.delete(t),_O.set(t,e),e}let n=vO(e);_O.set(t,n);for(let e of _O.keys()){if(_O.size<=gO)break;_O.delete(e)}return n}function bO(e){if(e.length!==XD)return!1;let t=e.subarray(0,YD),n=e.subarray(YD),r=cO(t);return sO(n)<iO&&r<rO&&!oO.has(r)}var xO=class extends Error{fault;constructor(e,t,n){super(t,n),this.name=`IdentityKeyError`,this.fault=e}};async function SO(e,t,n,r){try{return await e.verify(t,n,r)}catch(e){if(e instanceof xO)return!1;throw e}}var CO=-7,wO=-8,TO=`web-console/identity/es256`;function EO(e){if(e===CO)return{name:`ECDSA`,hash:`SHA-256`};if(e===wO)return{name:`Ed25519`};throw Error(`unsupported identity-key alg ${String(e)}`)}function DO(e){return Uint8Array.from(e)}async function OO(e){let t=e.alg===CO?{name:`ECDSA`,namedCurve:`P-256`}:e.alg===wO?{name:`Ed25519`}:void 0;if(t===void 0)throw new xO(`unsupported_alg`,`unsupported identity-key alg ${String(e.alg)}`);if(e.alg===wO){let t=yO(e[`public-key`]);if(t!==void 0)throw new xO(`invalid_key`,`identity-key public-key is not a usable Ed25519 key (${t})`)}try{return await crypto.subtle.importKey(`raw`,DO(e[`public-key`]),t,!1,[`verify`])}catch(t){throw new xO(`invalid_key`,`identity-key public-key does not import as an alg ${String(e.alg)} key`,{cause:t})}}async function kO(e){return new Uint8Array(await crypto.subtle.digest(`SHA-256`,DO(e)))}async function AO(e,t,n){let r=await OO(e);return e.alg===wO&&!bO(n)?!1:crypto.subtle.verify(EO(e.alg),r,DO(n),DO(t))}function jO(e){return typeof e!=`object`||!e||!(`privateJwk`in e)||!(`publicKeyRaw`in e)?!1:typeof e.privateJwk==`object`&&e.privateJwk!==null&&e.publicKeyRaw instanceof Uint8Array}async function MO(){let e=await crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!0,[`sign`,`verify`]);return{privateJwk:await crypto.subtle.exportKey(`jwk`,e.privateKey),publicKeyRaw:new Uint8Array(await crypto.subtle.exportKey(`raw`,e.publicKey))}}async function NO(e){let t=await crypto.subtle.importKey(`jwk`,e.privateJwk,{name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`]),n={alg:CO,"public-key":e.publicKeyRaw},r=await kO(e.publicKeyRaw),i={...e.privateJwk,key_ops:[`deriveBits`]};delete i.alg;let a=await crypto.subtle.importKey(`jwk`,i,{name:`ECDH`,namedCurve:`P-256`},!1,[`deriveBits`]);return{deviceId:r,identityKey:n,async sign(e){let n=await crypto.subtle.sign(EO(CO),t,DO(e));return new Uint8Array(n)},verify:AO,deriveDeviceId:kO,async deriveSharedSecret(e){if(e.alg!==CO)throw Error(`ECDH is only defined for an ES256 peer identity-key, got alg ${String(e.alg)}`);let t=await crypto.subtle.importKey(`raw`,DO(e[`public-key`]),{name:`ECDH`,namedCurve:`P-256`},!1,[]),n=await crypto.subtle.deriveBits({name:`ECDH`,public:t},a,256);return new Uint8Array(n)}}}async function PO(e){let t=await e.get(TO);if(t!==void 0){let e=b_(t,x_);if(!jO(e))throw Error(`stored identity envelope is malformed`);return NO(e)}let n=await MO();return await e.set(TO,new Uint8Array(Mg(n,hg))),NO(n)}var FO=`#sha256=`,IO=`,`,LO=/^[0-9a-f]{64}$/,RO=16;function zO(e){let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*2,n*2+2),16);return t}function BO(e,t){return`https://${e}${FO}${t.join(IO)}`}function VO(e){return e.startsWith(`https://`)&&e.includes(FO)}function HO(e){let t=new URL(e),n=t.hash.startsWith(FO)?t.hash.slice(8).split(IO):[];if(t.protocol!==`https:`||n.length===0||!n.every(e=>LO.test(e)))throw Error(`expected "https://host:port${FO}<64 hex digits>[${IO}<64 hex digits>...]", got "${e}"`);return t.hash=``,{url:t.toString(),sha256:n.map(zO)}}var UO=32;function WO(e){return Mg({sha256:e.map(zO)},hg)}function GO(e){let t=b_(e,x_);if(typeof t!=`object`||!t||!(`sha256`in t)||!Array.isArray(t.sha256))throw Error(`expected a map with a sha256 array`);let n=t.sha256;if(n.length===0||n.length>8)throw Error(`expected 1 to 8 hashes, got ${String(n.length)}`);let r=[];for(let e of n){if(!(e instanceof Uint8Array)||e.length!==UO)throw Error(`each hash must be ${String(UO)} bytes`);r.push(new Uint8Array(e))}return r}function KO(e,t){let n=new Set(e.map(qO)),r=[...e];for(let e of t)n.has(qO(e))||(n.add(qO(e)),r.push(e));return r}function qO(e){return Array.from(e,e=>e.toString(RO).padStart(2,`0`)).join(``)}function JO(e,t){let{url:n}=HO(e);return BO(new URL(n).host,t.map(qO))}var YO=`pinned-certificates/`;function XO(e){return{recall:async t=>{let n=await e.get(YO+t);return n===void 0?[]:GO(n)},remember:async(t,n)=>{let r=WO(n.map(e=>RD(e)));await e.set(YO+t,new Uint8Array(r))}}}var ZO=`wire-mesh-console-identity`,QO=`ES256`,$O=16,ek=2,tk=4;function nk(e){let t=new Uint8Array(e.length/ek);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*ek,(n+1)*ek),$O);return t}function rk(e){try{let t=atob(e.replace(/-/g,`+`).replace(/_/g,`/`));return Uint8Array.from(t,e=>e.charCodeAt(0))}catch{throw Error(`the backup's key is not valid base64url`)}}function ik(e){let{kty:t,crv:n,x:r,y:i,d:a}=e;if(t!==`EC`||n!==`P-256`||typeof r!=`string`||typeof i!=`string`||typeof a!=`string`)throw Error(`the backup does not hold a P-256 private key`);return{kty:t,crv:n,x:r,y:i,d:a}}function ak(e){return Uint8Array.from([tk,...rk(e.x),...rk(e.y)])}function ok(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var sk=new TextEncoder().encode(`wire-mesh console identity backup key-pair check`);async function ck(e,t){let n;try{n=await NO({privateJwk:e,publicKeyRaw:t})}catch(e){throw Error(`the backup's private key cannot be loaded: ${e instanceof Error?e.message:String(e)}`,{cause:e})}let r=await n.sign(sk);if(!await n.verify(n.identityKey,sk,r))throw Error(`the private key does not belong to the backup's public key`)}async function lk(e){let t;try{t=JSON.parse(e)}catch{throw Error(`the file is not JSON`)}if(!ok(t)||t.format!==`wire-mesh-console-identity`||t.version!==1||t.alg!==QO||typeof t.deviceId!=`string`||typeof t.publicKey!=`string`||!ok(t.privateJwk))throw Error(`the file is not a wire-mesh console identity backup`);let n=ik(t.privateJwk),r=ak(n);if(RD(r)!==t.publicKey)throw Error(`the private key does not match the backup's public key`);if(zD(await kO(r))!==t.deviceId)throw Error(`the backup's device-id does not match its public key`);return await ck(n,r),{format:ZO,version:1,alg:QO,deviceId:t.deviceId,publicKey:t.publicKey,privateJwk:n}}function uk(e){return{async export(){let t=await e.get(TO);if(t===void 0)throw Error(`no identity is stored on this device`);let n=b_(t,x_);if(!jO(n))throw Error(`stored identity envelope is malformed`);return{format:ZO,version:1,alg:QO,deviceId:zD(await kO(n.publicKeyRaw)),publicKey:RD(n.publicKeyRaw),privateJwk:n.privateJwk}},async restore(t){await e.set(TO,new Uint8Array(Mg({privateJwk:t.privateJwk,publicKeyRaw:nk(t.publicKey)},hg)))}}}async function dk(e,t){let[n,...r]=e;if(n!==void 0)return await t(n)?n:dk(r,t)}async function fk(e,t){await e.reduce(async(e,n,r)=>{await e,await t(n,r)},Promise.resolve())}function pk(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function mk(e){return e.split(`/`).some(e=>e===`.`||e===`..`)}function hk(e,t){return mk(e)||mk(t)?!1:e===t?!0:e.startsWith(t)?t.endsWith(`/`)?!0:e.charAt(t.length)===`/`:!1}function gk(e,t){return e.kind===t.kind?e.path===void 0||t.path!==void 0&&hk(t.path,e.path):!1}var _k=(e,t,n)=>({kind:`complex`,re:e*Math.cos(t),im:e*Math.sin(t),unit:n}),vk=dT(q(),J()),yk=pT([`ms`,`s`,`min`,`h`,`d`]);aT(`kind`,[Y({kind:X(`number`),value:J(),unit:vk.optional()}),Y({kind:X(`text`),value:q()}),Y({kind:X(`boolean`),value:Gw()}),Y({kind:X(`instant`),value:q()}),Y({kind:X(`duration`),value:J(),unit:yk}),Y({kind:X(`complex`),re:J(),im:J(),unit:vk.optional()})]);function bk(e){if(e===void 0)return{};let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}function xk(e,t){let n=bk(e),r=bk(t),i=Object.keys(n),a=Object.keys(r);return i.length===a.length&&i.every(e=>n[e]===r[e])}function Sk(e,t){let n=bk(e),r=bk(t),i={...n};for(let[e,t]of Object.entries(r))i[e]=(i[e]??0)+t;return bk(i)}function Ck(e,t){let n=bk(e),r=bk(t),i={...n};for(let[e,t]of Object.entries(r))i[e]=(i[e]??0)-t;return bk(i)}Y({code:pT([`not-found`,`wrong-type`,`domain-error`]),message:q()});function Q(e){return{status:`definite`,value:e}}function $(e,t){return{status:`indeterminate`,reason:{code:e,message:t}}}function wk(...e){for(let t of e)if(t?.status===`indeterminate`)return t.reason}var Tk=Z(()=>rT([q(),J(),Gw(),qw(),$w(Tk),dT(q(),Tk)])),Ek=pT([`gt`,`gte`,`lt`,`lte`,`eq`,`neq`]),Dk=pT([`equals`,`notEquals`,`matches`,`notMatches`,`portableMatches`,`portableNotMatches`]),Ok=pT([`in`,`notIn`]),kk=pT([`add`,`subtract`,`multiply`,`divide`,`power`,`modulo`]),Ak=pT([`first`,`unique`]),jk=Y({kind:X(`not`),get operand(){return Uk}}),Mk=Y({kind:X(`and`),get left(){return Uk},get right(){return Uk}}),Nk=Y({kind:X(`or`),get left(){return Uk},get right(){return Uk}}),Pk=Y({kind:X(`allOf`),get operands(){return $w(Uk)}}),Fk=Y({kind:X(`anyOf`),get operands(){return $w(Uk)}}),Ik=Y({kind:X(`compare`),op:Ek,get left(){return iA},get right(){return iA}}),Lk=Y({kind:X(`textCompare`),op:Dk,get left(){return iA},get right(){return iA}}),Rk=Y({kind:X(`memberOf`),op:Ok,get operand(){return iA},get candidates(){return $w(iA)}}),zk=Y({kind:X(`exists`),get operand(){return iA}}),Bk=Y({kind:X(`some`),collection:Tk,get item(){return Uk},get filter(){return Uk.optional()}}),Vk=Y({kind:X(`every`),collection:Tk,get item(){return Uk},get filter(){return Uk.optional()}}),Hk=Y({kind:X(`treeReference`),key:Tk}),Uk=aT(`kind`,[jk,Mk,Nk,Pk,Fk,Ik,Lk,Rk,zk,Bk,Vk,Hk]),Wk=Y({kind:X(`numberLiteral`),value:J(),unit:vk.optional()}),Gk=Y({kind:X(`textLiteral`),value:q()}),Kk=Y({kind:X(`booleanLiteral`),value:Gw()}),qk=Y({kind:X(`instantLiteral`),value:q()}),Jk=Y({kind:X(`durationLiteral`),value:J(),unit:yk}),Yk=rT([tT({kind:X(`complexLiteral`),re:J(),im:J(),unit:vk.optional()}),tT({kind:X(`complexLiteral`),magnitude:J(),phase:J(),unit:vk.optional()})]),Xk=Y({kind:X(`reference`),key:Tk,unit:vk.optional()}),Zk=Y({kind:X(`arithmetic`),op:kk,get left(){return iA},get right(){return iA}}),Qk=Y({kind:X(`negate`),get operand(){return iA}}),$k=Y({kind:X(`call`),fn:q(),get args(){return $w(iA)}}),eA=Y({kind:X(`lookup`),table:Tk,get keys(){return $w(iA)}}),tA=Y({get when(){return Uk},get then(){return iA}}),nA=Y({kind:X(`conditional`),hitPolicy:Ak.optional(),get cases(){return $w(tA)},get fallback(){return iA}}),rA=aT(`mode`,[Y({mode:X(`max`),get item(){return iA}}),Y({mode:X(`min`),get item(){return iA}}),Y({mode:X(`reduce`),get initial(){return iA},get combine(){return iA}})]),iA=rT([aT(`kind`,[Wk,Gk,Kk,qk,Jk,Xk,Zk,Qk,$k,eA,nA,Y({kind:X(`fold`),collection:Tk,get filter(){return Uk.optional()},combiner:rA}),Y({kind:X(`accumulator`)}),Y({kind:X(`delegate`),system:q(),payload:Tk}),Hk]),Yk]),aA={},oA=1e4;function sA(e,t){let n=0;return{checkNode(r){if(n+=1,n>e)return $(`domain-error`,`evaluation exceeded the maximum of ${e.toString()} nodes visited in a single call (resource exhausted)`);if(r>=t)return $(`domain-error`,`evaluation nesting depth exceeds the maximum of ${t.toString()} (resource exhausted)`)}}}async function cA(e,t,n,r,i,a,o,s,c,l){let u=await i.resolveCollection(t,r);return Promise.all(u.map(async t=>{if(n===void 0)return{item:t,filterOutcome:`include`};let r=await e(n,t,i,void 0,a,o,s,c,l+1);return r.status===`indeterminate`?{item:t,filterOutcome:r}:{item:t,filterOutcome:r.value?`include`:`exclude`}}))}function lA(e){for(let{filterOutcome:t}of e)if(t!==`include`&&t!==`exclude`&&t.status===`indeterminate`)return t.reason}function uA(e,t){return t>=e.from&&t<=e.to}function dA(e,t){let n=e.ranges.some(e=>uA(e,t));return e.negated?!n:n}var fA=class extends Error{pattern;index;constructor(e,t,n){super(`invalid pattern at index ${String(t)}: ${n}\n ${e}\n ${` `.repeat(t)}^`),this.name=`RegexParseError`,this.pattern=e,this.index=t}};function pA(e){return e.charCodeAt(0)}function mA(e,t){return{from:pA(e),to:pA(t)}}function hA(e){let t=pA(e);return{from:t,to:t}}var gA=[mA(`0`,`9`)],_A=[mA(`A`,`Z`),mA(`a`,`z`),mA(`0`,`9`),hA(`_`)],vA=[hA(` `),hA(` `),hA(`
79
- `),hA(`\r`),hA(`\f`),hA(`\v`)];function yA(e){switch(e){case`d`:return{kind:`charClass`,negated:!1,ranges:gA};case`D`:return{kind:`charClass`,negated:!0,ranges:gA};case`w`:return{kind:`charClass`,negated:!1,ranges:_A};case`W`:return{kind:`charClass`,negated:!0,ranges:_A};case`s`:return{kind:`charClass`,negated:!1,ranges:vA};case`S`:return{kind:`charClass`,negated:!0,ranges:vA};default:throw Error(`unreachable shorthand class letter`)}}var bA=new Set([`|`,`)`]),xA={".":`.`,"*":`*`,"+":`+`,"?":`?`,"(":`(`,")":`)`,"[":`[`,"]":`]`,"{":`{`,"}":`}`,"|":`|`,"^":`^`,$:`$`,"\\":`\\`,"/":`/`,n:`
80
- `,t:` `,r:`\r`,f:`\f`,v:`\v`},SA=class{pattern;pos=0;constructor(e){this.pattern=e}get position(){return this.pos}atEnd(){return this.pos>=this.pattern.length}peek(e=0){return this.pattern[this.pos+e]}advance(){let e=this.pattern[this.pos];if(e===void 0)throw new fA(this.pattern,this.pos,`unexpected end of pattern`);return this.pos+=1,e}parseAlternation(){let e=this.parseSequence(),t=[];for(;this.peek()===`|`;)this.advance(),t.push(this.parseSequence());return t.length===0?e:{kind:`alternation`,branches:[e,...t]}}parseSequence(){if(this.atEnd()||bA.has(this.peek()??``))return{kind:`concat`,operands:[]};let e=this.parseQuantified(),t=[];for(;!this.atEnd()&&!bA.has(this.peek()??``);)t.push(this.parseQuantified());return t.length===0?e:{kind:`concat`,operands:[e,...t]}}parseQuantified(){let e=this.pos,t=this.parseAtom();if(t.kind===`anchorStart`||t.kind===`anchorEnd`){if(this.peekIsQuantifierStart())throw new fA(this.pattern,e,`an anchor ('${t.kind===`anchorStart`?`^`:`$`}') cannot be quantified`);return t}let n=this.tryParseQuantifier();if(n===void 0)return t;if(this.peekIsQuantifierStart())throw new fA(this.pattern,this.pos,`a quantifier cannot itself be quantified -- this grammar has no lazy or possessive modifiers, since a pattern that only ever answers a yes/no match question has no notion for either to change`);switch(n.kind){case`star`:return{kind:`star`,operand:t};case`plus`:return{kind:`plus`,operand:t};case`optional`:return{kind:`optional`,operand:t};case`repeat`:return{kind:`repeat`,operand:t,min:n.min,max:n.max};default:throw Error(`unreachable quantifier kind`)}}peekIsQuantifierStart(){let e=this.peek();if(e===`*`||e===`+`||e===`?`)return!0;if(e===`{`){let e=this.pos,t=this.tryParseBound();return this.pos=e,t!==void 0}return!1}tryParseQuantifier(){let e=this.peek();if(e===`*`)return this.advance(),{kind:`star`};if(e===`+`)return this.advance(),{kind:`plus`};if(e===`?`)return this.advance(),{kind:`optional`};if(e===`{`){let e=this.tryParseBound();return e===void 0?void 0:{kind:`repeat`,min:e.min,max:e.max}}}tryParseBound(){let e=this.pos;this.pos+=1;let t=this.readDigits();if(t===``){this.pos=e;return}let n,r=!1;if(this.peek()===`,`&&(r=!0,this.pos+=1,n=this.readDigits()),this.peek()!==`}`){this.pos=e;return}this.pos+=1;let i=Number.parseInt(t,10),a=r?n===``?void 0:Number.parseInt(n??``,10):i;if(a!==void 0&&a<i)throw new fA(this.pattern,e,`quantifier range is backwards: {${t}${r?`,`+(n??``):``}} would require between ${String(i)} and ${String(a)} repetitions`);return{min:i,max:a}}readDigits(){let e=``;for(;;){let t=this.peek();if(t===void 0||t<`0`||t>`9`)break;e+=t,this.pos+=1}return e}parseAtom(){let e=this.peek();if(e===void 0)throw new fA(this.pattern,this.pos,`unexpected end of pattern`);if(e===`^`)return this.advance(),{kind:`anchorStart`};if(e===`$`)return this.advance(),{kind:`anchorEnd`};if(e===`.`)return this.advance(),{kind:`anyChar`};if(e===`(`)return this.parseGroup();if(e===`[`)return this.parseCharClass();if(e===`\\`)return this.parseEscapedAtom();if(e===`*`||e===`+`||e===`?`)throw new fA(this.pattern,this.pos,`quantifier '${e}' with nothing to repeat`);return this.advance(),{kind:`literal`,codeUnit:e.charCodeAt(0)}}parseGroup(){let e=this.pos;if(this.advance(),this.peek()===`?`&&this.peek(1)===`:`)this.advance(),this.advance();else throw new fA(this.pattern,e,`capturing groups are not supported in this grammar -- there is nothing to capture, since a pattern only ever answers whether it matches. Use '(?:...)' for grouping.`);let t=this.parseAlternation();if(this.peek()!==`)`)throw new fA(this.pattern,this.pos,`expected ')' to close '(?:'`);return this.advance(),t}parseEscapedAtom(){let e=this.pos;if(this.advance(),this.atEnd())throw new fA(this.pattern,e,`trailing backslash with nothing to escape`);let t=this.advance();if(t===`d`||t===`D`||t===`w`||t===`W`||t===`s`||t===`S`)return yA(t);let n=xA[t];if(n!==void 0)return{kind:`literal`,codeUnit:n.charCodeAt(0)};throw new fA(this.pattern,e,`unknown escape sequence '\\${t}'`)}parseCharClass(){let e=this.pos;this.advance();let t=!1;this.peek()===`^`&&(this.advance(),t=!0);let n=[];for(;;){if(this.atEnd())throw new fA(this.pattern,e,`unterminated character class -- missing closing ']'`);if(this.peek()===`]`){if(n.length===0)throw new fA(this.pattern,this.pos,`a character class must contain at least one item -- ']' immediately, or immediately after '[^', is not the empty class here (escape it as '\\]' to match a literal ']')`);this.advance();break}n.push(...this.parseClassItem())}return{kind:`charClass`,negated:t,ranges:n}}parseClassItem(){let e=this.peek();if(e===`\\`){let e=this.pos;if(this.advance(),this.atEnd())throw new fA(this.pattern,e,`trailing backslash with nothing to escape`);let t=this.advance();if(t===`d`||t===`w`||t===`s`)return yA(t).ranges;if(t===`D`||t===`W`||t===`S`)throw new fA(this.pattern,e,`the negated shorthand class '\\${t}' cannot be embedded inside a character class, because its complement cannot be represented as a set of ranges to union with the class's other members -- use it as its own atom instead of embedding it here`);let n=xA[t];if(n===void 0)throw new fA(this.pattern,e,`unknown escape sequence '\\${t}'`);return this.parseOptionalRangeFrom(n.charCodeAt(0))}if(e===void 0)throw new fA(this.pattern,this.pos,`unterminated character class -- missing closing ']'`);return this.advance(),this.parseOptionalRangeFrom(e.charCodeAt(0))}parseOptionalRangeFrom(e){if(this.peek()===`-`&&this.peek(1)!==void 0&&this.peek(1)!==`]`){let t=this.pos;this.advance();let n=this.parseClassRangeEndpoint();if(n<e)throw new fA(this.pattern,t,`invalid range in character class: '${String.fromCharCode(e)}-${String.fromCharCode(n)}' is reversed`);return[{from:e,to:n}]}return[{from:e,to:e}]}parseClassRangeEndpoint(){let e=this.peek();if(e===`\\`){let e=this.pos;if(this.advance(),this.atEnd())throw new fA(this.pattern,e,`trailing backslash with nothing to escape`);let t=this.advance();if(t===`d`||t===`D`||t===`w`||t===`W`||t===`s`||t===`S`)throw new fA(this.pattern,e,`a shorthand class ('\\${t}') cannot be a range endpoint`);let n=xA[t];if(n===void 0)throw new fA(this.pattern,e,`unknown escape sequence '\\${t}'`);return n.charCodeAt(0)}if(e===void 0)throw new fA(this.pattern,this.pos,`unterminated character class -- missing closing ']'`);return this.advance(),e.charCodeAt(0)}};function CA(e){let t=new SA(e),n=t.parseAlternation();if(!t.atEnd())throw new fA(e,t.position,`unexpected character -- if this was meant literally, escape it with a backslash`);return n}var wA=class{states=[];add(e){return this.states.push(e),this.states.length-1}patch(e,t){for(let n of e){let e=this.states[n.state];if(e!==void 0)switch(n.field){case`to`:(e.kind===`char`||e.kind===`anchorStart`||e.kind===`anchorEnd`)&&(e.to=t);break;case`to1`:e.kind===`split`&&(e.to1=t);break;case`to2`:e.kind===`split`&&(e.to2=t)}}}emptyFrag(){let e=this.add({kind:`split`,to1:-1,to2:-1});return{start:e,out:[{state:e,field:`to1`},{state:e,field:`to2`}]}}compileRepeat(e){let{operand:t,min:n,max:r}=e;if(r===void 0){if(n===0)return this.compileNode({kind:`star`,operand:t});let e=[];for(let r=0;r<n-1;r+=1)e.push(t);return e.push({kind:`plus`,operand:t}),this.compileNode({kind:`concat`,operands:e})}let i=[];for(let e=0;e<n;e+=1)i.push(t);for(let e=0;e<r-n;e+=1)i.push({kind:`optional`,operand:t});return i.length===0?this.emptyFrag():this.compileNode({kind:`concat`,operands:i})}compileNode(e){switch(e.kind){case`literal`:{let t=e.codeUnit,n=this.add({kind:`char`,test:e=>e===t,to:-1});return{start:n,out:[{state:n,field:`to`}]}}case`anyChar`:{let e=this.add({kind:`char`,test:()=>!0,to:-1});return{start:e,out:[{state:e,field:`to`}]}}case`charClass`:{let t=this.add({kind:`char`,test:t=>dA(e,t),to:-1});return{start:t,out:[{state:t,field:`to`}]}}case`anchorStart`:{let e=this.add({kind:`anchorStart`,to:-1});return{start:e,out:[{state:e,field:`to`}]}}case`anchorEnd`:{let e=this.add({kind:`anchorEnd`,to:-1});return{start:e,out:[{state:e,field:`to`}]}}case`concat`:{if(e.operands.length===0)return this.emptyFrag();let[t,...n]=e.operands;if(t===void 0)throw Error(`unreachable: a non-empty operands array always has a first element`);let r=this.compileNode(t);for(let e of n){let t=this.compileNode(e);this.patch(r.out,t.start),r={start:r.start,out:t.out}}return r}case`alternation`:{let[t,...n]=e.branches;if(t===void 0)throw Error(`unreachable: AlternationNode always has at least two branches`);let r=this.compileNode(t);for(let e of n){let t=this.compileNode(e);r={start:this.add({kind:`split`,to1:r.start,to2:t.start}),out:[...r.out,...t.out]}}return r}case`star`:{let t=this.compileNode(e.operand),n=this.add({kind:`split`,to1:t.start,to2:-1});return this.patch(t.out,n),{start:n,out:[{state:n,field:`to2`}]}}case`plus`:{let t=this.compileNode(e.operand),n=this.add({kind:`split`,to1:t.start,to2:-1});return this.patch(t.out,n),{start:t.start,out:[{state:n,field:`to2`}]}}case`optional`:{let t=this.compileNode(e.operand),n=this.add({kind:`split`,to1:t.start,to2:-1});return{start:n,out:[...t.out,{state:n,field:`to2`}]}}case`repeat`:return this.compileRepeat(e);default:throw Error(`unreachable regex node kind`)}}build(e){let t=this.compileNode(e),n=this.add({kind:`match`});return this.patch(t.out,n),{states:this.states,start:t.start,matchState:n}}};function TA(e){return new wA().build(e)}function EA(e,t,n,r){let i=new Set,a=new Set,o=[...t];for(;o.length>0;){let t=o.pop();if(t===void 0||a.has(t))continue;a.add(t);let s=e.states[t];if(s!==void 0)switch(s.kind){case`char`:case`match`:i.add(t);break;case`split`:o.push(s.to1,s.to2);break;case`anchorStart`:n===0&&o.push(s.to);break;case`anchorEnd`:n===r&&o.push(s.to)}}return i}function DA(e,t,n){let r=new Set;for(let i of t){let t=e.states[i];t?.kind===`char`&&t.test(n)&&r.add(t.to)}return r}function OA(e,t){let n=t.length,r=EA(e,[e.start],0,n);if(r.has(e.matchState))return!0;for(let i=0;i<n;i+=1){let a=t.charCodeAt(i),o=DA(e,r,a);if(o.add(e.start),r=EA(e,[...o],i+1,n),r.has(e.matchState))return!0}return!1}function kA(e){let t=TA(CA(e));return{test:e=>OA(t,e)}}function AA(e,t){if(e.status===`definite`&&!e.value||t.status===`definite`&&!t.value)return Q(!1);let n=wk(e,t);return n===void 0?Q(!0):{status:`indeterminate`,reason:n}}function jA(e,t){if(e.status===`definite`&&e.value||t.status===`definite`&&t.value)return Q(!0);let n=wk(e,t);return n===void 0?Q(!1):{status:`indeterminate`,reason:n}}function MA(e,t,n){switch(e){case`gt`:return t>n;case`gte`:return t>=n;case`lt`:return t<n;case`lte`:return t<=n;case`eq`:return t===n;case`neq`:return t!==n;default:throw Error(`unreachable comparison operator`)}}var NA={ms:1,s:1e3,min:6e4,h:36e5,d:864e5};function PA(e,t){return e*NA[t]}function FA(e){let t=Date.parse(e);return Number.isNaN(t)?void 0:t}function IA(e){return $(`wrong-type`,`'${e}' is not a parseable ISO-8601 timestamp`)}function LA(e){let t=new Date(e);return Number.isNaN(t.getTime())?$(`domain-error`,`the resulting instant falls outside the representable timestamp range`):Q({kind:`instant`,value:t.toISOString()})}function RA(e,t,n){switch(t.kind){case`number`:return n.kind===`number`?xk(t.unit,n.unit)?Q(MA(e,t.value,n.value)):$(`wrong-type`,`cannot compare numbers with incompatible units`):$(`wrong-type`,`cannot compare a 'number' value with a '${n.kind}' value`);case`text`:return $(`wrong-type`,`text values are not comparable via 'compare'; use 'textCompare'`);case`boolean`:return n.kind===`boolean`?e!==`eq`&&e!==`neq`?$(`wrong-type`,`booleans have no natural ordering; '${e}' is only defined for 'eq'/'neq'`):Q(e===`eq`?t.value===n.value:t.value!==n.value):$(`wrong-type`,`cannot compare a 'boolean' value with a '${n.kind}' value`);case`instant`:{if(n.kind!==`instant`)return $(`wrong-type`,`cannot compare an 'instant' value with a '${n.kind}' value`);let r=FA(t.value);if(r===void 0)return IA(t.value);let i=FA(n.value);return i===void 0?IA(n.value):Q(MA(e,r,i))}case`duration`:return n.kind===`duration`?Q(MA(e,PA(t.value,t.unit),PA(n.value,n.unit))):$(`wrong-type`,`cannot compare a 'duration' value with a '${n.kind}' value`);case`complex`:return e!==`eq`&&e!==`neq`?$(`wrong-type`,`ordering operator '${e}' is not defined for complex values; the complex plane has no total order`):n.kind===`complex`?xk(t.unit,n.unit)?Q(e===`eq`?t.re===n.re&&t.im===n.im:t.re!==n.re||t.im!==n.im):$(`wrong-type`,`cannot compare complex values with incompatible units`):$(`wrong-type`,`cannot compare a 'complex' value with a '${n.kind}' value`);default:throw Error(`unreachable computed-value kind`)}}function zA(e,t,n){if(t.kind!==`text`)return $(`wrong-type`,`'textCompare' requires 'text' operands; the left operand is '${t.kind}'`);if(n.kind!==`text`)return $(`wrong-type`,`'textCompare' requires 'text' operands; the right operand is '${n.kind}'`);switch(e){case`equals`:return Q(t.value===n.value);case`notEquals`:return Q(t.value!==n.value);case`matches`:case`notMatches`:{let r;try{r=new RegExp(n.value)}catch{return $(`wrong-type`,`'${n.value}' is not a valid regular expression pattern`)}let i=r.test(t.value);return Q(e===`matches`?i:!i)}case`portableMatches`:case`portableNotMatches`:{let r;try{r=kA(n.value)}catch(e){let t=e instanceof fA?e.message:String(e);return $(`wrong-type`,`'${n.value}' is not a valid trilean-regex pattern: ${t}`)}let i=r.test(t.value);return Q(e===`portableMatches`?i:!i)}default:throw Error(`unreachable text comparison operator`)}}function BA(e,t){switch(e.kind){case`number`:return t.kind===`number`?xk(e.unit,t.unit)?Q(e.value===t.value):$(`wrong-type`,`cannot compare numbers with incompatible units for membership`):$(`wrong-type`,`cannot compare a 'number' value with a '${t.kind}' value for membership`);case`text`:return t.kind===`text`?Q(e.value===t.value):$(`wrong-type`,`cannot compare a 'text' value with a '${t.kind}' value for membership`);case`boolean`:return t.kind===`boolean`?Q(e.value===t.value):$(`wrong-type`,`cannot compare a 'boolean' value with a '${t.kind}' value for membership`);case`instant`:{if(t.kind!==`instant`)return $(`wrong-type`,`cannot compare an 'instant' value with a '${t.kind}' value for membership`);let n=FA(e.value);if(n===void 0)return IA(e.value);let r=FA(t.value);return r===void 0?IA(t.value):Q(n===r)}case`duration`:return t.kind===`duration`?Q(PA(e.value,e.unit)===PA(t.value,t.unit)):$(`wrong-type`,`cannot compare a 'duration' value with a '${t.kind}' value for membership`);case`complex`:return t.kind===`complex`?xk(e.unit,t.unit)?Q(e.re===t.re&&e.im===t.im):$(`wrong-type`,`cannot compare complex values with incompatible units for membership`):$(`wrong-type`,`cannot compare a 'complex' value with a '${t.kind}' value for membership`);default:throw Error(`unreachable computed-value kind`)}}function VA(e){return xk(e,void 0)}function HA(e){switch(e.kind){case`number`:return Q({kind:`number`,value:-e.value,unit:e.unit});case`duration`:return Q({kind:`duration`,value:-e.value,unit:e.unit});case`complex`:return Q({kind:`complex`,re:-e.re,im:-e.im,unit:e.unit});case`text`:case`instant`:case`boolean`:return $(`wrong-type`,`cannot negate a '${e.kind}' value`);default:throw Error(`unreachable computed-value kind`)}}function UA(e,t,n){switch(e){case`add`:return xk(t.unit,n.unit)?Q({kind:`number`,value:t.value+n.value,unit:t.unit}):$(`wrong-type`,`cannot add numbers with incompatible units`);case`subtract`:return xk(t.unit,n.unit)?Q({kind:`number`,value:t.value-n.value,unit:t.unit}):$(`wrong-type`,`cannot subtract numbers with incompatible units`);case`multiply`:return Q({kind:`number`,value:t.value*n.value,unit:Sk(t.unit,n.unit)});case`divide`:return n.value===0?$(`domain-error`,`division by zero`):Q({kind:`number`,value:t.value/n.value,unit:Ck(t.unit,n.unit)});case`power`:return!VA(t.unit)||!VA(n.unit)?$(`wrong-type`,`'power' requires dimensionless operands`):t.value<0&&!Number.isInteger(n.value)?$(`domain-error`,`a negative base raised to a non-integer power is not a real number`):t.value===0&&n.value<0?$(`domain-error`,`zero raised to a negative power is a division by zero`):Q({kind:`number`,value:t.value**n.value});case`modulo`:return!VA(t.unit)||!VA(n.unit)?$(`wrong-type`,`'modulo' requires dimensionless operands`):n.value===0?$(`domain-error`,`modulo by zero`):Q({kind:`number`,value:t.value%n.value});default:throw Error(`unreachable arithmetic operator`)}}function WA(e,t,n){switch(e){case`add`:return Q({kind:`duration`,value:PA(t.value,t.unit)+PA(n.value,n.unit),unit:`ms`});case`subtract`:return Q({kind:`duration`,value:PA(t.value,t.unit)-PA(n.value,n.unit),unit:`ms`});case`multiply`:case`divide`:case`power`:case`modulo`:return $(`wrong-type`,`arithmetic operator '${e}' is not defined between two 'duration' values`);default:throw Error(`unreachable arithmetic operator`)}}function GA(e){return e.kind===`complex`?e:{kind:`complex`,re:e.value,im:0,unit:e.unit}}function KA(e,t){return{kind:`complex`,re:e.re*t.re-e.im*t.im,im:e.re*t.im+e.im*t.re,unit:Sk(e.unit,t.unit)}}function qA(e,t,n){switch(e){case`add`:return xk(t.unit,n.unit)?Q({kind:`complex`,re:t.re+n.re,im:t.im+n.im,unit:t.unit}):$(`wrong-type`,`cannot add complex values with incompatible units`);case`subtract`:return xk(t.unit,n.unit)?Q({kind:`complex`,re:t.re-n.re,im:t.im-n.im,unit:t.unit}):$(`wrong-type`,`cannot subtract complex values with incompatible units`);case`multiply`:return Q(KA(t,n));case`divide`:{let e=n.re*n.re+n.im*n.im;return e===0?$(`domain-error`,`division by zero`):Q({kind:`complex`,re:(t.re*n.re+t.im*n.im)/e,im:(t.im*n.re-t.re*n.im)/e,unit:Ck(t.unit,n.unit)})}case`modulo`:return $(`domain-error`,`'modulo' is undefined for complex values`);default:throw Error(`unreachable arithmetic operator`)}}function JA(e,t){if(t.kind!==`number`||!Number.isInteger(t.value))return $(`wrong-type`,`'power' with a complex operand requires a real integer exponent`);if(!VA(e.unit)||!VA(t.unit))return $(`wrong-type`,`'power' requires dimensionless operands`);let n={kind:`complex`,re:1,im:0,unit:{}},r=GA(e),i=n;for(let e=0;e<Math.abs(t.value);e+=1)i=KA(i,r);return t.value>=0?Q(i):qA(`divide`,n,i)}function YA(e,t,n){if(t.kind===`instant`&&n.kind===`instant`&&e===`subtract`){let e=FA(t.value);if(e===void 0)return IA(t.value);let r=FA(n.value);return r===void 0?IA(n.value):Q({kind:`duration`,value:e-r,unit:`ms`})}if(t.kind===`instant`&&n.kind===`duration`&&e===`add`){let e=FA(t.value);return e===void 0?IA(t.value):LA(e+PA(n.value,n.unit))}if(t.kind===`duration`&&n.kind===`instant`&&e===`add`){let e=FA(n.value);return e===void 0?IA(n.value):LA(e+PA(t.value,t.unit))}return t.kind===`instant`||n.kind===`instant`?$(`wrong-type`,`arithmetic operator '${e}' is not defined between a '${t.kind}' and a '${n.kind}' value`):t.kind===`duration`&&n.kind===`duration`?WA(e,t,n):t.kind===`duration`||n.kind===`duration`?$(`wrong-type`,`arithmetic operator '${e}' is not defined between a '${t.kind}' and a '${n.kind}' value`):t.kind!==`number`&&t.kind!==`complex`?$(`wrong-type`,`arithmetic requires numeric operands; got a '${t.kind}' value`):n.kind!==`number`&&n.kind!==`complex`?$(`wrong-type`,`arithmetic requires numeric operands; got a '${n.kind}' value`):t.kind===`complex`||n.kind===`complex`?e===`power`?JA(t,n):qA(e,GA(t),GA(n)):UA(e,t,n)}function XA(e,t){if(e!==void 0){if(t.kind!==`number`&&t.kind!==`complex`)return $(`wrong-type`,`a unit was expected on a reference that resolved to a non-numeric value`);if(!xk(e,t.unit))return $(`wrong-type`,`the resolved value's unit does not match the reference's expected unit`)}}function ZA(e,t,n){let r=Object.hasOwn(e,t)?e[t]:void 0;if(r===void 0)return $(`wrong-type`,`no function registered under the name '${t}'`);let i=r(n);return`domainError`in i?$(`domain-error`,i.domainError):Q(i)}async function QA(e,t,n,r,i,a,o,s,c){let l=s.checkNode(c);if(l!==void 0)return l;switch(e.kind){case`not`:{let l=await QA(e.operand,t,n,r,i,a,o,s,c+1);return l.status===`indeterminate`?l:Q(!l.value)}case`and`:{let[l,u]=await Promise.all([QA(e.left,t,n,r,i,a,o,s,c+1),QA(e.right,t,n,r,i,a,o,s,c+1)]);return AA(l,u)}case`or`:{let[l,u]=await Promise.all([QA(e.left,t,n,r,i,a,o,s,c+1),QA(e.right,t,n,r,i,a,o,s,c+1)]);return jA(l,u)}case`allOf`:return(await Promise.all(e.operands.map(async e=>QA(e,t,n,r,i,a,o,s,c+1)))).reduce(AA,Q(!0));case`anyOf`:return(await Promise.all(e.operands.map(async e=>QA(e,t,n,r,i,a,o,s,c+1)))).reduce(jA,Q(!1));case`compare`:{let[l,u]=await Promise.all([$A(e.left,t,n,r,i,a,o,s,c+1),$A(e.right,t,n,r,i,a,o,s,c+1)]);return l.status===`indeterminate`?l:u.status===`indeterminate`?u:RA(e.op,l.value,u.value)}case`textCompare`:{let[l,u]=await Promise.all([$A(e.left,t,n,r,i,a,o,s,c+1),$A(e.right,t,n,r,i,a,o,s,c+1)]);return l.status===`indeterminate`?l:u.status===`indeterminate`?u:zA(e.op,l.value,u.value)}case`memberOf`:{let l=await $A(e.operand,t,n,r,i,a,o,s,c+1);if(l.status===`indeterminate`)return l;let u=await Promise.all(e.candidates.map(async e=>{let u=await $A(e,t,n,r,i,a,o,s,c+1);return u.status===`indeterminate`?u:BA(l.value,u.value)}));for(let t of u)if(t.status===`definite`&&t.value)return Q(e.op===`in`);let d=wk(...u);return d===void 0?Q(e.op===`notIn`):{status:`indeterminate`,reason:d}}case`exists`:{let l=await $A(e.operand,t,n,r,i,a,o,s,c+1);return l.status===`indeterminate`&&l.reason.code===`not-found`?Q(!1):Q(!0)}case`some`:case`every`:{let r=await cA(QA,e.collection,e.filter,t,n,i,a,o,s,c+1),l=(await Promise.all(r.map(async({item:t,filterOutcome:r})=>{if(r!==`exclude`)return r===`include`?QA(e.item,t,n,void 0,i,a,o,s,c+1):r}))).filter(e=>e!==void 0),u=e.kind===`some`?jA:AA,d=e.kind===`some`?Q(!1):Q(!0);return l.reduce(u,d)}case`treeReference`:{if(n.resolveTree===void 0)return $(`wrong-type`,`no tree resolver registered for treeReference nodes`);let l=JSON.stringify(e.key);if(a.has(l))return $(`domain-error`,`circular treeReference detected`);if(o>=100)return $(`domain-error`,`treeReference chain exceeds the maximum depth of 100`);let u=await n.resolveTree(e.key,t);if(!u.found)return $(`not-found`,`treeReference key did not resolve to a tree`);let d=Uk.safeParse(u.node);return d.success?QA(d.data,t,n,r,i,new Set([...a,l]),o+1,s,c+1):$(`wrong-type`,`the referenced tree is not a valid PredicateNode`)}default:throw Error(`unreachable predicate node kind`)}}async function $A(e,t,n,r,i,a,o,s,c){let l=s.checkNode(c);if(l!==void 0)return l;switch(e.kind){case`reference`:{let r=await n.resolveValue(e.key,t);if(!r.found)return $(`not-found`,`no value found for reference key ${JSON.stringify(e.key)}`);let i=XA(e.unit,r.value);return i===void 0?Q(r.value):i}case`accumulator`:return r===void 0?$(`wrong-type`,`accumulator used outside a reduce fold's combine expression`):Q(r);case`call`:{let l=await Promise.all(e.args.map(async e=>$A(e,t,n,r,i,a,o,s,c+1))),u=[];for(let e of l){if(e.status===`indeterminate`)return e;u.push(e.value)}return ZA(i,e.fn,u)}case`numberLiteral`:return Q({kind:`number`,value:e.value,unit:e.unit});case`textLiteral`:return Q({kind:`text`,value:e.value});case`booleanLiteral`:return Q({kind:`boolean`,value:e.value});case`instantLiteral`:return Q({kind:`instant`,value:e.value});case`durationLiteral`:return Q({kind:`duration`,value:e.value,unit:e.unit});case`complexLiteral`:return`re`in e?Q({kind:`complex`,re:e.re,im:e.im,unit:e.unit}):Q(_k(e.magnitude,e.phase,e.unit));case`arithmetic`:{let[l,u]=await Promise.all([$A(e.left,t,n,r,i,a,o,s,c+1),$A(e.right,t,n,r,i,a,o,s,c+1)]);return l.status===`indeterminate`?l:u.status===`indeterminate`?u:YA(e.op,l.value,u.value)}case`negate`:{let l=await $A(e.operand,t,n,r,i,a,o,s,c+1);return l.status===`indeterminate`?l:HA(l.value)}case`lookup`:{let l=await Promise.all(e.keys.map(async e=>$A(e,t,n,r,i,a,o,s,c+1))),u=[];for(let e of l){if(e.status===`indeterminate`)return e;u.push(e.value)}let d=await n.resolveLookup(e.table,u,t);return d.found?Q(d.value):$(`not-found`,`no match found in lookup table ${JSON.stringify(e.table)}`)}case`conditional`:{if((e.hitPolicy??`first`)===`first`){for(let{when:l,then:u}of e.cases){let e=await QA(l,t,n,r,i,a,o,s,c+1);if(e.status===`indeterminate`)return e;if(e.value)return $A(u,t,n,r,i,a,o,s,c+1)}return $A(e.fallback,t,n,r,i,a,o,s,c+1)}let l=await Promise.all(e.cases.map(async({when:e,then:l})=>({then:l,whenResult:await QA(e,t,n,r,i,a,o,s,c+1)}))),u=l.filter(({whenResult:e})=>e.status===`definite`&&e.value);if(u.length>=2)return $(`domain-error`,`more than one case matched under the 'unique' hit policy`);let d=wk(...l.map(({whenResult:e})=>e));if(d!==void 0)return{status:`indeterminate`,reason:d};let[f]=u;return $A(f===void 0?e.fallback:f.then,t,n,r,i,a,o,s,c+1)}case`fold`:{let r=await cA(QA,e.collection,e.filter,t,n,i,a,o,s,c+1),l=lA(r);if(l!==void 0)return{status:`indeterminate`,reason:l};let u=r.filter(({filterOutcome:e})=>e===`include`).map(({item:e})=>e);if(e.combiner.mode===`reduce`){let r=await $A(e.combiner.initial,t,n,void 0,i,a,o,s,c+1);if(r.status===`indeterminate`)return r;let l=r.value;for(let t of u){let r=await $A(e.combiner.combine,t,n,l,i,a,o,s,c+1);if(r.status===`indeterminate`)return r;l=r.value}return Q(l)}if(u.length===0)return $(`domain-error`,`'${e.combiner.mode}' has no participating items to seed a running result from`);let d=e.combiner.mode===`max`?`gt`:`lt`,f;for(let t of u){let r=await $A(e.combiner.item,t,n,void 0,i,a,o,s,c+1);if(r.status===`indeterminate`)return r;if(f===void 0){f=r.value;continue}let l=RA(d,r.value,f);if(l.status===`indeterminate`)return l;l.value&&(f=r.value)}if(f===void 0)throw Error(`unreachable: max/min over a non-empty participating list produced no running result`);return Q(f)}case`delegate`:{if(n.resolveDelegate===void 0)return $(`wrong-type`,`no delegate handler registered for external system '${e.system}'`);let r=await n.resolveDelegate(e.system,e.payload,t);return r.found?Q(r.value):$(`not-found`,`delegate handler for external system '${e.system}' reported no value`)}case`treeReference`:{if(n.resolveTree===void 0)return $(`wrong-type`,`no tree resolver registered for treeReference nodes`);let l=JSON.stringify(e.key);if(a.has(l))return $(`domain-error`,`circular treeReference detected`);if(o>=100)return $(`domain-error`,`treeReference chain exceeds the maximum depth of 100`);let u=await n.resolveTree(e.key,t);if(!u.found)return $(`not-found`,`treeReference key did not resolve to a tree`);let d=iA.safeParse(u.node);return d.success?$A(d.data,t,n,r,i,new Set([...a,l]),o+1,s,c+1):$(`wrong-type`,`the referenced tree is not a valid ExpressionNode`)}default:throw Error(`unreachable expression node kind`)}}function ej({functions:e=aA,maxNodes:t=oA,maxNestingDepth:n=500}){return{evaluatePredicate:async(r,i,a)=>QA(r,i,a,void 0,e,new Set,0,sA(t,n),0),evaluateValue:async(r,i,a)=>$A(r,i,a,void 0,e,new Set,0,sA(t,n),0)}}var{evaluatePredicate:tj,evaluateValue:nj}=ej({}),rj=$w(Uk),ij=`bearer-is`,aj=`expires-at`,oj=`scope-narrows`,sj=`capability-is`,cj=`depth-remaining`,lj=[ij,aj,oj,sj,cj];function uj(e){return e===`bearer-is`||e===`expires-at`||e===`scope-narrows`||e===`capability-is`||e===`depth-remaining`}var dj=`grantee-is`,fj=`granted-capability-is`;function pj(e){return e===`grantee-is`||e===`granted-capability-is`}var mj={[dj]:(e,t)=>t.subject===void 0||typeof e!=`string`?{found:!1}:gj(zD(t.subject.bearer)===e),[fj]:(e,t)=>t.subject===void 0||typeof e!=`string`?{found:!1}:gj(t.subject.capability===e)};function hj(e,t){return{kind:`not`,operand:{kind:`and`,left:vj(fj,e),right:vj(dj,zD(t))}}}function gj(e){return{found:!0,value:{kind:`boolean`,value:e}}}var _j={[ij]:(e,t)=>t.parentClaims===void 0?gj(!1):gj(pk(t.parentClaims.bearer,t.childIssuer)),[aj]:(e,t)=>t.parentClaims===void 0?gj(!1):gj(t.candidate.expires<=t.parentClaims.expires),[oj]:(e,t)=>t.parentClaims===void 0?gj(!1):gj(gk(t.parentClaims.scope,t.candidate.scope)),[sj]:(e,t)=>t.parentClaims===void 0?gj(!1):gj(t.parentClaims.capability===t.candidate.capability),[cj]:(e,t)=>{if(t.parentClaims===void 0)return gj(!1);let n=t.parentClaims[`delegations-remaining`];return gj(n===void 0||t.candidate.delegationsRemaining!==void 0&&t.candidate.delegationsRemaining<n)}};function vj(e,t=null){return{kind:`compare`,op:`eq`,left:{kind:`delegate`,system:e,payload:t},right:{kind:`booleanLiteral`,value:!0}}}var yj=async()=>Promise.resolve({found:!1}),bj=async()=>Promise.resolve({found:!1}),xj=async()=>Promise.resolve([]);async function Sj(e,t,n){let r={childIssuer:t,candidate:n,parentClaims:e},i={resolveValue:yj,resolveLookup:bj,resolveCollection:xj,resolveDelegate:async(e,t)=>uj(e)?_j[e](t,r):{found:!1}};return dk(lj,async e=>{let t=await tj(vj(e),r,i);return t.status!==`definite`||!t.value})}async function Cj(e,t,n,r={},i){let a=i===void 0?{clock:n,claims:t}:{clock:n,claims:t,subject:i},o={resolveValue:yj,resolveLookup:bj,resolveCollection:xj,resolveDelegate:async(e,t)=>{if(i!==void 0&&pj(e))try{return await mj[e](t,a)}catch{return{found:!1}}let n=Object.hasOwn(r,e)?r[e]:void 0;if(n===void 0)return{found:!1};try{return await n(t,a)}catch{return{found:!1}}}};return await dk(e,async e=>{let t=await tj(e,a,o);return t.status!==`definite`||!t.value})===void 0?{ok:!0}:{ok:!1,reason:`not_satisfied`}}var wj=`manage:grant`,Tj=64;function Ej(e,t){return Mg([`Signature1`,e,new Uint8Array,t],hg)}function Dj(e){return Uint8Array.from(e)}function Oj(e){return Dj(Mg(e,hg))}function kj(e){return Oj({1:e.identityKey.alg,4:e.deviceId})}function Aj(e){let[,,t]=e;if(t===null)return;let n;try{n=b_(t,x_)}catch{return}let r=fD.safeParse(n);return r.success?r.data:void 0}async function jj(e,t){let n=await Pj(e,{identity:t.identity,clock:t.clock,revocation:t.revocation,...t.extraPredicateResolvers===void 0?{}:{extraPredicateResolvers:t.extraPredicateResolvers}});return n.ok&&t.expectedBearer!==void 0&&!pk(n.claims.bearer,t.expectedBearer)?{ok:!1,reason:`bearer_mismatch`}:n}async function Mj(e,t,n){if(pk(e.issuer,t.issuer))return!0;if(e.authorization===void 0)return!1;let r;try{r=b_(e.authorization,x_)}catch{return!1}let i=dD.safeParse(r);if(!i.success)return!1;let a=await jj(i.data,{...n,expectedBearer:e.issuer});return a.ok&&a.claims.capability===`manage:revoke`&&gk(a.claims.scope,t.scope)}var Nj={depth:0,seen:new Set};async function Pj(e,t,{subjectClaims:n,depth:r,seen:i}=Nj){let[a,,o,s]=e;if(o===null)return{ok:!1,reason:`malformed`};if(r>=Tj)return{ok:!1,reason:`chain_too_deep`};let c=RD(o);if(i.has(c))return{ok:!1,reason:`chain_cycle`};let l=new Set(i).add(c),u;try{u=b_(o,x_)}catch{return{ok:!1,reason:`malformed`}}let d=fD.safeParse(u);if(!d.success)return{ok:!1,reason:`malformed`};let f=d.data;if(!await SO(t.identity,f[`issuer-key`],Ej(a,o),s))return{ok:!1,reason:`bad_signature`};if(!pk(await t.identity.deriveDeviceId(f[`issuer-key`][`public-key`]),f.issuer))return{ok:!1,reason:`wrong_issuer`};let p=t.clock.now();if(f.expires<=p)return{ok:!1,reason:`expired`};if(f[`not-before`]!==void 0&&f[`not-before`]>p)return{ok:!1,reason:`not_yet_valid`};let m=f[`valid-until`];if(m!==void 0&&m<=p)return{ok:!1,reason:`content_expired`};if(await dk(await t.revocation.entriesFor(f[`token-id`]),async e=>Mj(e,f,t))!==void 0)return{ok:!1,reason:`revoked`};if(f.conditions!==void 0){let e;try{e=b_(f.conditions,x_)}catch{return{ok:!1,reason:`conditions_invalid`}}let r=rj.safeParse(e);if(!r.success)return{ok:!1,reason:`conditions_invalid`};if(!(await Cj(r.data,f,t.clock,t.extraPredicateResolvers,n)).ok)return{ok:!1,reason:`conditions_not_satisfied`}}let h=f.parent,g=f[`authorised-by`];if(f.capability===`manage:grant`&&h!==void 0)return{ok:!1,reason:`authorisation_invalid`};if(h!==void 0&&g!==void 0)return{ok:!1,reason:`malformed`};if(h!==void 0){let e;try{e=b_(h,x_)}catch{return{ok:!1,reason:`parent_invalid`}}let n=dD.safeParse(e);if(!n.success)return{ok:!1,reason:`parent_invalid`};let i=await Pj(n.data,t,{depth:r+1,seen:l});if(!i.ok)return i.reason===`chain_too_deep`||i.reason===`chain_cycle`?{ok:!1,reason:i.reason}:{ok:!1,reason:`parent_invalid`};let a={capability:f.capability,scope:f.scope,expires:f.expires,...f[`delegations-remaining`]===void 0?{}:{delegationsRemaining:f[`delegations-remaining`]}};return await Sj(i.claims,f.issuer,a)===void 0?{ok:!0,claims:f,rootIssuer:i.rootIssuer,rootIssuerKey:i.rootIssuerKey,depth:i.depth+1}:{ok:!1,reason:`delegation_exceeds_parent`}}if(g!==void 0){let e;try{e=b_(g,x_)}catch{return{ok:!1,reason:`authorisation_invalid`}}let n=dD.safeParse(e);if(!n.success)return{ok:!1,reason:`authorisation_invalid`};let i=await Pj(n.data,t,{subjectClaims:f,depth:r+1,seen:l});if(!i.ok)return i.reason===`chain_too_deep`||i.reason===`chain_cycle`?{ok:!1,reason:i.reason}:{ok:!1,reason:`authorisation_invalid`};let a=i.claims,o=a[`grants-capability`];return pk(a.bearer,f.issuer)&&a.capability===`manage:grant`&&(o===void 0||o===f.capability)&&gk(a.scope,f.scope)&&f.expires<=a.expires&&(a[`delegations-remaining`]===void 0||f[`delegations-remaining`]!==void 0&&f[`delegations-remaining`]<a[`delegations-remaining`])?{ok:!0,claims:f,rootIssuer:i.rootIssuer,rootIssuerKey:i.rootIssuerKey,depth:i.depth+1}:{ok:!1,reason:`authorisation_invalid`}}return{ok:!0,claims:f,rootIssuer:f.issuer,rootIssuerKey:f[`issuer-key`],depth:0}}async function Fj(e,t){let[n,,r,i]=e;if(r===null)return{ok:!1,reason:`malformed`};let a;try{a=b_(r,x_)}catch{return{ok:!1,reason:`malformed`}}let o=CE.safeParse(a);if(!o.success)return{ok:!1,reason:`malformed`};let s=o.data;return await SO(t.identity,s[`issuer-key`],Ej(n,r),i)?pk(await t.identity.deriveDeviceId(s[`issuer-key`][`public-key`]),s.issuer)?{ok:!0,claims:s}:{ok:!1,reason:`wrong_issuer`}:{ok:!1,reason:`bad_signature`}}var Ij={"bearer-is":`parent_bearer_mismatch`,"expires-at":`expires_exceeds_parent`,"scope-narrows":`scope_does_not_narrow`,"capability-is":`capability_mismatch`,"depth-remaining":`delegation_exceeds_parent`};async function Lj(e,t,n){let r=await Sj(e,t,n);return r===void 0?void 0:Ij[r]}async function Rj(e,t,n){if(e.parent!==void 0)return`authorisation_parent_forbidden`;if(!pk(e.bearer,t))return`authorisation_bearer_mismatch`;let r=e[`grants-capability`];if(e.capability!==`manage:grant`||r!==void 0&&r!==n.capability)return`authorisation_capability_mismatch`;if(!gk(e.scope,n.scope))return`authorisation_scope_does_not_narrow`;if(n.expires>e.expires)return`authorisation_exceeds_authoriser`;let i=e[`delegations-remaining`];if(i!==void 0&&(n.delegationsRemaining===void 0||n.delegationsRemaining>=i))return`authorisation_delegation_exceeds`;if(e.conditions!==void 0){let t;try{t=b_(e.conditions,x_)}catch{return`authorisation_malformed`}let r=rj.safeParse(t);if(!r.success)return`authorisation_malformed`;if(!(await Cj(r.data,e,{now:()=>0},{},n)).ok)return`authorisation_conditions_not_satisfied`}}async function zj(e){for(let t of[e.capability,e.grantsCapability,e.requestsCapability])if(t!==void 0&&!iD.safeParse(t).success)return{ok:!1,reason:`invalid_capability`};if(e.expires<=e.clock.now())return{ok:!1,reason:`already_expired`};if(e.parent!==void 0&&e.authorisedBy!==void 0)return{ok:!1,reason:`links_exclusive`};if(e.capability===`manage:grant`&&e.parent!==void 0)return{ok:!1,reason:`authorisation_parent_forbidden`};let t;if(e.parent!==void 0){let n=Aj(e.parent);if(n===void 0)return{ok:!1,reason:`parent_malformed`};let r=await Lj(n,e.identity.deviceId,{capability:e.capability,scope:e.scope,expires:e.expires,...e.delegationsRemaining===void 0?{}:{delegationsRemaining:e.delegationsRemaining}});if(r!==void 0)return{ok:!1,reason:r};t=Oj(e.parent)}let n;if(e.authorisedBy!==void 0){let t=Aj(e.authorisedBy);if(t===void 0)return{ok:!1,reason:`authorisation_malformed`};let r=await Rj(t,e.identity.deviceId,{capability:e.capability,scope:e.scope,bearer:e.bearer,expires:e.expires,...e.delegationsRemaining===void 0?{}:{delegationsRemaining:e.delegationsRemaining}});if(r!==void 0)return{ok:!1,reason:r};n=Oj(e.authorisedBy)}let r=Oj({"token-id":e.tokenId,issuer:e.identity.deviceId,"issuer-key":e.identity.identityKey,bearer:e.bearer,capability:e.capability,scope:e.scope,expires:e.expires,...e.notBefore===void 0?{}:{"not-before":e.notBefore},...t===void 0?{}:{parent:t},...e.delegationsRemaining===void 0?{}:{"delegations-remaining":e.delegationsRemaining},...e.conditions===void 0?{}:{conditions:Oj(e.conditions)},...n===void 0?{}:{"authorised-by":n},...e.grantsCapability===void 0?{}:{"grants-capability":e.grantsCapability},...e.requestsCapability===void 0?{}:{"requests-capability":e.requestsCapability}}),i=kj(e.identity);return{ok:!0,token:[i,{},r,await e.identity.sign(Ej(i,r))]}}async function Bj(e){let t=Oj({"token-id":e.tokenId,issuer:e.identity.deviceId,"issuer-key":e.identity.identityKey,"revoked-at":e.revokedAt}),n=kj(e.identity);return[n,{},t,await e.identity.sign(Ej(n,t))]}var Vj=`wm-grant1.`;function Hj(e){let t=e[2];if(t===null)return;let n;try{n=b_(t,x_)}catch{return}let r=fD.safeParse(n);return r.success?r.data:void 0}function Uj(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function Wj(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function Gj(e){return Vj+Uj(Mg(e,hg))}function Kj(e){let t=e.trim();if(!t.startsWith(`wm-grant1.`))throw Error(`a grant code starts with "${Vj}"`);let n;try{n=b_(Wj(t.slice(10)),x_)}catch{throw Error(`the grant code is damaged: it does not decode`)}let r=dD.safeParse(n);if(!r.success||Hj(r.data)===void 0)throw Error(`the grant code does not carry a capability token`);return r.data}async function qj(e,t){let n=await jj(e,t);return n.ok?{kind:`valid`}:{kind:`invalid`,reason:n.reason}}var Jj={malformed:`malformed`,bad_signature:`signature does not verify`,wrong_issuer:`issuer does not match its key`,bearer_mismatch:`names another bearer`,expired:`expired`,not_yet_valid:`not valid yet`,content_expired:`content expired`,revoked:`revoked`,delegation_exceeds_parent:`exceeds what its parent allows`,parent_invalid:`its parent grant is no longer valid`,conditions_invalid:`its conditions are invalid`,conditions_not_satisfied:`its conditions are not met`,authorisation_invalid:`exceeds what its authorising grant allows`,chain_too_deep:`its chain is deeper than allowed`,chain_cycle:`its chain revisits a token`};function Yj(e){return e.kind===`valid`?`valid`:Jj[e.reason]}var Xj=`grant/`;function Zj(e,t){return`${Xj}${e}/${t}`}function Qj(e){let t=e.slice(6).split(`/`)[0];if(t===`held`||t===`issued`)return t;throw Error(`stored grant key ${e} names no direction`)}function $j(e){return typeof e==`object`&&!!e&&`token`in e&&`recordedAt`in e&&typeof e.recordedAt==`number`}function eM(e){let t=new Set;return{async record(n,r,i){let a=Hj(r);if(a===void 0)throw Error(`a grant must carry readable token claims`);let o=Zj(n,RD(a[`token-id`]));if(await e.get(o)===void 0){await e.set(o,new Uint8Array(Mg({token:r,recordedAt:i},hg)));for(let e of t)e()}},async list(){let t=[],n=await e.keys(Xj),r=await Promise.all(n.map(async t=>({key:t,value:await e.get(t)})));for(let{key:e,value:n}of r){if(n===void 0)continue;let r=b_(n,x_);if(!$j(r))throw Error(`stored grant at ${e} is malformed`);let i=dD.safeParse(r.token);if(!i.success)throw Error(`stored grant at ${e} is malformed`);let a=Hj(i.data);if(a===void 0)throw Error(`stored grant at ${e} has unreadable claims`);t.push({tokenId:RD(a[`token-id`]),direction:Qj(e),token:i.data,claims:a,recordedAt:r.recordedAt})}return t.sort((e,t)=>t.recordedAt-e.recordedAt)},subscribe(e){return t.add(e),()=>{t.delete(e)}}}}function tM(e){return RD(e)}function nM(){let e=new Map;return{async entriesFor(t){return Promise.resolve(e.get(tM(t))??[])},async record(t,n){let r=await Fj(t,n);if(r.ok){let t=tM(r.claims[`token-id`]),n=e.get(t);n===void 0?e.set(t,[r.claims]):n.push(r.claims)}return r}}}var rM=`revocation/`;async function iM(e,t,n){let r;try{r=b_(n,x_)}catch{return`it is not valid CBOR`}let i=wE.safeParse(r);if(!i.success)return`it is not a revocation entry`;let a=await e.record(i.data,{identity:t});return a.ok?void 0:`it no longer verifies (${a.reason})`}async function aM(e){let{storage:t,identity:n,clock:r}=e,i=nM(),a=new Set;async function o(e){let r=await i.record(e,{identity:n});if(r.ok){let n=`${rM}${RD(r.claims.issuer)}/${RD(r.claims[`token-id`])}`;await t.set(n,new Uint8Array(Mg(e,hg)));for(let e of a)e()}return r}let s=await t.keys(rM),c=(await Promise.all(s.map(async e=>{let r=await t.get(e);if(r===void 0)return;let a=await iM(i,n,r);return a===void 0?void 0:{key:e,reason:a}}))).filter(e=>e!==void 0);return{view:i,unreadable:()=>c,async discardUnreadable(e){await t.delete(e),c=c.filter(t=>t.key!==e);for(let e of a)e()},subscribe(e){return a.add(e),()=>{a.delete(e)}},ingest:o,async revoke(e){let t=await Bj({identity:n,tokenId:e,revokedAt:r.now()}),i=await o(t);if(!i.ok)throw Error(`the revocation this device signed does not verify (${i.reason})`);return t}}}var oM=`preferences/intro-dismissed`,sM=new Uint8Array([1]);function cM(e){return{async introDismissed(){return await e.get(oM)!==void 0},async setIntroDismissed(t){t?await e.set(oM,new Uint8Array(sM)):await e.delete(oM)}}}var lM=`agent/self`,uM=`wire-mesh-console`;function dM(e){return e.slice(0,12)}var fM=/[\p{Cc}\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu;function pM(e){let t=e.replace(fM,``).trim();if(t!==``)return Array.from(t).slice(0,64).join(``).trimEnd()}function mM(e){let t=e[lM];if(typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`)return pM(t.name)}function hM(e){return{[lM]:{name:e,harness:uM}}}function gM(e,t,n,r){return t===void 0?n===void 0?{primary:dM(e),secondary:void 0,source:`id`,matchesPetname:!1}:{primary:n,secondary:dM(e),source:`self`,matchesPetname:r.has(n)}:{primary:t,secondary:n!==void 0&&n!==t?n:void 0,source:`petname`,matchesPetname:!1}}function _M(e){return e.source===`self`&&e.secondary!==void 0?`${e.primary} (${e.secondary})`:e.primary}var vM=`petname/`,yM=`self-name`,bM=new TextEncoder,xM=new TextDecoder;function SM(e){async function t(t,n){let r=pM(n);if(r===void 0){await e.delete(t);return}await e.set(t,new Uint8Array(bM.encode(r)))}return{async petnames(){let t=new Map,n=await e.keys(vM),r=await Promise.all(n.map(async t=>({key:t,value:await e.get(t)})));for(let{key:e,value:n}of r)n!==void 0&&t.set(e.slice(8),xM.decode(n));return t},async setPetname(e,n){await t(vM+e,n)},async selfName(){let t=await e.get(yM);return t===void 0?void 0:xM.decode(t)},async setSelfName(e){await t(yM,e)}}}var CM=String(2**53-1).length,wM=`message`;function TM(e,t){return`${wM}/${e}/${String(t.sentAt).padStart(CM,`0`)}-${RD(t.messageId)}`}function EM(e){let t=e.slice(`${wM}/`.length);return t.slice(0,t.lastIndexOf(`/`))}function DM(e){return e===`sent`||e===`received`}function OM(e){return typeof e!=`object`||!e||!(`direction`in e)||!(`text`in e)||!(`messageId`in e)||!(`sentAt`in e)?!1:DM(e.direction)&&typeof e.text==`string`&&e.messageId instanceof Uint8Array&&typeof e.sentAt==`number`}function kM(e){return{async append(t,n){await e.set(TM(t,n),new Uint8Array(Mg(n,hg)))},async roomPaths(){let t=await e.keys(`${wM}/`);return[...new Set(t.map(EM))]},async list(t){let n=(await e.keys(`${wM}/${t}/`)).sort(),r=[],i=await Promise.all(n.map(async t=>({key:t,value:await e.get(t)})));for(let{key:e,value:t}of i){if(t===void 0)continue;let n=b_(t,x_);if(!OM(n))throw Error(`stored message at ${e} is malformed`);r.push(n)}return r}}}function AM(e){return new Uint8Array(Mg(e,hg))}function jM(e,t){return{type:`relay-data`,payload:AM(e),...t===void 0?{}:{"to-device":t}}}var MM=class extends Error{constructor(e){super(e),this.name=`SchemaInvalidFrameError`}};function NM(e){let t=b_(new Uint8Array(e),x_),n=oE.safeParse(t);if(!n.success)throw new MM(n.error.message);return n.data}function PM(e){let t;try{t=b_(e,x_)}catch{return null}let n=oE.safeParse(t);return n.success?n.data:null}var FM=16,IM=4096;function LM(e){let t=0;for(let n of e)t+=String(n.length).length+1+n.length;return t}function RM(...e){let t=``;for(let n of e){t+=`${String(n.length)}:`;for(let e=0;e<n.length;e+=IM)t+=String.fromCharCode(...n.subarray(e,e+IM))}return t}async function zM(e){return await e()??!1}function BM(e){let t=new Map,n=0,r=0,i=e=>{let r=t.get(e);r!==void 0&&(t.delete(e),n-=r.cost)};return{async verdict(a,o){let s=LM(a)+FM;if(s>e||r+s>e)return zM(o);let c=RM(...a),l=t.get(c);if(l!==void 0)return t.delete(c),t.set(c,l),l.settled;r+=s;let u=o().then(e=>e===void 0?(i(c),!1):e).finally(()=>{r-=s});t.set(c,{settled:u,cost:s}),n+=s;for(let r of t.keys()){if(n<=e)break;i(r)}return u}}}var VM=1024,HM=VM*VM*8,UM=new WeakMap;function WM(e){let t=UM.get(e);if(t!==void 0)return t;let n=BM(HM);return UM.set(e,n),n}var GM=`signature`,KM=`identity-key`,qM=new TextEncoder().encode(`wire-mesh/peer-advert/v1\0`);function JM(e){let t={};for(let[n,r]of Object.entries(e))n!==`signature`&&(t[n]=r);let n=Mg(t,hg),r=new Uint8Array(qM.length+n.length);return r.set(qM,0),r.set(n,qM.length),r}async function YM(e,t){let n=await e.sign(JM(t));return{...t,[GM]:n}}async function XM(e,t){let n;try{n=JM(t)}catch{return!1}return WM(e).verdict([t[GM],n],async()=>ZM(e,t,n))}async function ZM(e,t,n){let r=t[KM];try{return pk(await e.deriveDeviceId(r[`public-key`]),t.device)?await e.verify(r,n,t[GM]):!1}catch{return}}var QM={name:`wire-mesh-core`,version:`4.1.2`,dependencies:{cbor2:`2.3.0`,"cddl.js":`1.0.1`,trilean:`1.6.2`,zod:`4.5.4`},devDependencies:{"@arethetypeswrong/cli":`0.18.5`,"@exadev/eslint-config":`3.0.0`,"@stryker-mutator/api":`10.0.0`,"@stryker-mutator/core":`10.0.0`,"@stryker-mutator/typescript-checker":`10.0.0`,"@types/node":`26.4.1`,eslint:`10.10.0`,"eslint-config-prettier":`10.1.8`,"eslint-plugin-prettier":`5.5.6`,globals:`17.12.0`,jiti:`2.7.0`,prettier:`3.9.6`,tsdown:`0.23.0`,turbo:`2.10.12`,typescript:`6.0.3`,vitest:`5.0.0`},exports:{"./adapters/byte-stream-connection":{import:`./dist/adapters/byte-stream-connection.mjs`,require:`./dist/adapters/byte-stream-connection.cjs`},"./adapters/frame-codec":{import:`./dist/adapters/frame-codec.mjs`,require:`./dist/adapters/frame-codec.cjs`},"./adapters/memory-storage":{import:`./dist/adapters/memory-storage.mjs`,require:`./dist/adapters/memory-storage.cjs`},"./adapters/node-fs-storage":{import:`./dist/adapters/node-fs-storage.mjs`,require:`./dist/adapters/node-fs-storage.cjs`},"./adapters/node-identity":{import:`./dist/adapters/node-identity.mjs`,require:`./dist/adapters/node-identity.cjs`},"./adapters/system-clock":{import:`./dist/adapters/system-clock.mjs`,require:`./dist/adapters/system-clock.cjs`},"./adapters/tcp-transport":{import:`./dist/adapters/tcp-transport.mjs`,require:`./dist/adapters/tcp-transport.cjs`},"./adapters/threshold-identity":{import:`./dist/adapters/threshold-identity.mjs`,require:`./dist/adapters/threshold-identity.cjs`},"./adapters/threshold-wasm":{import:`./dist/adapters/threshold-wasm.mjs`,require:`./dist/adapters/threshold-wasm.cjs`},"./adapters/tls-transport":{import:`./dist/adapters/tls-transport.mjs`,require:`./dist/adapters/tls-transport.cjs`},"./domain/advert-extension-policy":{import:`./dist/domain/advert-extension-policy.mjs`,require:`./dist/domain/advert-extension-policy.cjs`},"./domain/async-queue":{import:`./dist/domain/async-queue.mjs`,require:`./dist/domain/async-queue.cjs`},"./domain/bulk":{import:`./dist/domain/bulk.mjs`,require:`./dist/domain/bulk.cjs`},"./domain/capability-grant":{import:`./dist/domain/capability-grant.mjs`,require:`./dist/domain/capability-grant.cjs`},"./domain/capability-request":{import:`./dist/domain/capability-request.mjs`,require:`./dist/domain/capability-request.cjs`},"./domain/channel-exhausted-error":{import:`./dist/domain/channel-exhausted-error.mjs`,require:`./dist/domain/channel-exhausted-error.cjs`},"./domain/coordinator-election":{import:`./dist/domain/coordinator-election.mjs`,require:`./dist/domain/coordinator-election.cjs`},"./domain/data-sync":{import:`./dist/domain/data-sync.mjs`,require:`./dist/domain/data-sync.cjs`},"./domain/device-id":{import:`./dist/domain/device-id.mjs`,require:`./dist/domain/device-id.cjs`},"./domain/direct-manage-request":{import:`./dist/domain/direct-manage-request.mjs`,require:`./dist/domain/direct-manage-request.cjs`},"./domain/ed25519-identity-key":{import:`./dist/domain/ed25519-identity-key.mjs`,require:`./dist/domain/ed25519-identity-key.cjs`},"./domain/erasure-coding":{import:`./dist/domain/erasure-coding.mjs`,require:`./dist/domain/erasure-coding.cjs`},"./domain/gossip-expansion":{import:`./dist/domain/gossip-expansion.mjs`,require:`./dist/domain/gossip-expansion.cjs`},"./domain/gossip-extensions":{import:`./dist/domain/gossip-extensions.mjs`,require:`./dist/domain/gossip-extensions.cjs`},"./domain/grant-candidates":{import:`./dist/domain/grant-candidates.mjs`,require:`./dist/domain/grant-candidates.cjs`},"./domain/group-key":{import:`./dist/domain/group-key.mjs`,require:`./dist/domain/group-key.cjs`},"./domain/handshake":{import:`./dist/domain/handshake.mjs`,require:`./dist/domain/handshake.cjs`},"./domain/hub-mailbox":{import:`./dist/domain/hub-mailbox.mjs`,require:`./dist/domain/hub-mailbox.cjs`},"./domain/mesh-session":{import:`./dist/domain/mesh-session.mjs`,require:`./dist/domain/mesh-session.cjs`},"./domain/notice-board":{import:`./dist/domain/notice-board.mjs`,require:`./dist/domain/notice-board.cjs`},"./domain/path-trace":{import:`./dist/domain/path-trace.mjs`,require:`./dist/domain/path-trace.cjs`},"./domain/peer-advert":{import:`./dist/domain/peer-advert.mjs`,require:`./dist/domain/peer-advert.cjs`},"./domain/ping-round-trips":{import:`./dist/domain/ping-round-trips.mjs`,require:`./dist/domain/ping-round-trips.cjs`},"./domain/pinned-address":{import:`./dist/domain/pinned-address.mjs`,require:`./dist/domain/pinned-address.cjs`},"./domain/relay-advert":{import:`./dist/domain/relay-advert.mjs`,require:`./dist/domain/relay-advert.cjs`},"./domain/relay-hub":{import:`./dist/domain/relay-hub.mjs`,require:`./dist/domain/relay-hub.cjs`},"./domain/relay-use-gate":{import:`./dist/domain/relay-use-gate.mjs`,require:`./dist/domain/relay-use-gate.cjs`},"./domain/revocation-view":{import:`./dist/domain/revocation-view.mjs`,require:`./dist/domain/revocation-view.cjs`},"./domain/room":{import:`./dist/domain/room.mjs`,require:`./dist/domain/room.cjs`},"./domain/room-path":{import:`./dist/domain/room-path.mjs`,require:`./dist/domain/room-path.cjs`},"./domain/room-rekey":{import:`./dist/domain/room-rekey.mjs`,require:`./dist/domain/room-rekey.cjs`},"./domain/room-token-verification":{import:`./dist/domain/room-token-verification.mjs`,require:`./dist/domain/room-token-verification.cjs`},"./domain/shard-manifest":{import:`./dist/domain/shard-manifest.mjs`,require:`./dist/domain/shard-manifest.cjs`},"./domain/threshold-subject":{import:`./dist/domain/threshold-subject.mjs`,require:`./dist/domain/threshold-subject.cjs`},"./domain/token-predicates":{import:`./dist/domain/token-predicates.mjs`,require:`./dist/domain/token-predicates.cjs`},"./domain/token-scope":{import:`./dist/domain/token-scope.mjs`,require:`./dist/domain/token-scope.cjs`},"./domain/tokens":{import:`./dist/domain/tokens.mjs`,require:`./dist/domain/tokens.cjs`},"./domain/topology":{import:`./dist/domain/topology.mjs`,require:`./dist/domain/topology.cjs`},"./domain/topology-snapshot":{import:`./dist/domain/topology-snapshot.mjs`,require:`./dist/domain/topology-snapshot.cjs`},"./domain/verdict-cache":{import:`./dist/domain/verdict-cache.mjs`,require:`./dist/domain/verdict-cache.cjs`},"./domain/webrtc-signaling":{import:`./dist/domain/webrtc-signaling.mjs`,require:`./dist/domain/webrtc-signaling.cjs`},"./generated/protocol":{import:`./dist/generated/protocol.mjs`,require:`./dist/generated/protocol.cjs`},"./generated/runtime":{import:`./dist/generated/runtime.mjs`,require:`./dist/generated/runtime.cjs`},"./ports/clock":{import:`./dist/ports/clock.mjs`,require:`./dist/ports/clock.cjs`},"./ports/identity":{import:`./dist/ports/identity.mjs`,require:`./dist/ports/identity.cjs`},"./ports/storage":{import:`./dist/ports/storage.mjs`,require:`./dist/ports/storage.cjs`},"./ports/transport":{import:`./dist/ports/transport.mjs`,require:`./dist/ports/transport.cjs`},"./package.json":`./package.json`},files:[`dist`,`wasm-dist`],license:`MIT`,packageManager:`pnpm@12.4.1+sha512.2e81e399d73fe8390dab25e06aa788ab7a5908248d2f5a370f82b481147a6a7a367bf8048f9a6fdb6460f21a66f0542dedb8b94ca2c8723596741920b1656d4c`,publishConfig:{provenance:!0,access:`public`},repository:{type:`git`,url:`https://github.com/ExaDev/wire-mesh.git`,directory:`ts/packages/core`},scripts:{_build:`tsdown`,"_build-wasm":`./scripts/build-threshold-wasm.sh`,"_conformance-check":`vitest run test/conformance.unit.test.ts`,_generate:`node generate.ts`,_lint:`eslint . --fix --cache --max-warnings 0`,_mutation:`stryker run stryker.config.ts`,_test:`vitest run`,_typecheck:`tsc -p tsconfig.json --noEmit && tsc -p tsconfig.node.json --noEmit`,build:`turbo run _build`,"build-wasm":`turbo run _build-wasm`,"conformance-check":`turbo run _conformance-check`,generate:`turbo run _generate`,lint:`turbo run _lint`,mutation:`turbo run _mutation`,prepack:`node scripts/assert-wasm-dist.ts`,test:`turbo run _test`,typecheck:`turbo run _typecheck`},type:`module`}.version,$M=`wire-mesh/version`,eN=`version.get`;function tN(e){return`verb`in e&&e.verb===eN}function nN(){return{result:`ok`,version:QM}}var rN=new Set([`device`,`addresses`,`snapshot-seconds`,KM,GM]),iN=`topology/peers`,aN=/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/;function oN(e){for(let t of Object.keys(e)){if(rN.has(t))throw Error(`sendGossipUpdate extension key "${t}" collides with a mandatory peer-advert field`);if(t===`topology/peers`)throw Error(`sendGossipUpdate extension key "${t}" collides with a session-managed gossip field`);if(t===`wire-mesh/version`)throw Error(`sendGossipUpdate extension key "${t}" is reserved for wire-mesh-core's own self-reported version`);if(!aN.test(t))throw Error(`sendGossipUpdate extension key "${t}" must be domain-qualified as "<domain>/<field>" (e.g. "presence/status")`)}}function sN(){let e=[],t=[];return{push(n){let r=e.shift();r===void 0?t.push(n):r(n)},stream:{[Symbol.asyncIterator](){return{next:async()=>new Promise(n=>{let r=t.shift();r===void 0?e.push(e=>{n({value:e,done:!1})}):n({value:r,done:!1})})}}}}}var cN=class extends Error{constructor(){super(`the channel's send counter is exhausted`),this.name=`ChannelExhaustedError`}};function lN(e){return{type:`handshake`,version:1,domains:[...e]}}var uN=[`core/federation`];function dN(e,t){let n=Math.min(e.version,t.version),r=e.domains.filter(e=>!uN.includes(e)&&t.domains.includes(e));return{ok:n>=1&&r.length>0,version:n,sharedDomains:r}}function fN(e){return`data/${zD(e)}/head`}function pN(e,t){return`data/${zD(e)}/entry/${String(t)}`}async function mN(e,t){let n=await e.get(fN(t));return n===void 0?0:Number(new TextDecoder().decode(n))}async function hN(e,t,n){await e.set(fN(t),new TextEncoder().encode(String(n)))}async function gN(e,t){return mN(e,t)}async function _N(e,t){let n=await mN(e.storage,e.identity.deviceId)+1;return await e.storage.set(pN(e.identity.deviceId,n),t),await hN(e.storage,e.identity.deviceId,n),{seq:n,haveFrame:{type:`data-have`,peer:e.identity.deviceId,"head-seq":n}}}async function vN(e,t,n,r){let i=[],a=async n=>{if(n>r)return;let o=await e.get(pN(t,n));o!==void 0&&(i.push(o),await a(n+1))};return await a(n),i}async function yN(e,t,n){let r=await mN(e,t.peer);if(r<=t[`from-seq`])return null;let i=Math.min(r,t[`from-seq`]+n),a=await vN(e,t.peer,t[`from-seq`]+1,i);return a.length===0?null:{type:`data-entries`,peer:t.peer,"from-seq":t[`from-seq`],entries:a}}async function bN(e,t){let n=await mN(e,t.peer);return t[`from-seq`]===n?(await fk(t.entries,async(n,r)=>{await e.set(pN(t.peer,t[`from-seq`]+1+r),n)}),await hN(e,t.peer,t[`from-seq`]+t.entries.length),{ok:!0}):{ok:!1,reason:`gap`}}async function xN(e,t,n){let r=await mN(e,t);return vN(e,t,n+1,r)}function SN(e){return e.type===`data-have`||e.type===`data-request`||e.type===`data-entries`}var CN=class extends Error{constructor(){super(`timed out waiting for pong`),this.name=`PingTimeoutError`}};function wN(){let e=[];function t(t){let n=e.findIndex(e=>e.sentAt===t);return n!==-1&&(e.splice(n,1),!0)}return{resolveOldest(t){let n=e.shift();n!==void 0&&n.resolve(t-n.sentAt)},rejectAll(t){for(let n of e.splice(0))n.reject(Error(t))},async sendAndAwait(n,r,i){let a=new Promise((t,r)=>{e.push({sentAt:n,resolve:t,reject:r})});return await r(),i===void 0?a:Promise.race([a,new Promise((e,r)=>{setTimeout(()=>{t(n)&&r(new CN)},i)})])}}}function TN(e){return e.authenticatedPeer===void 0?e.isAccepted?e.firstAdvertisedPeer??void 0:void 0:e.authenticatedPeer}function EN(e){let t=TN(e);return{direct:t===void 0?[]:[t],relayed:e.relayedDevices.map(e=>({device:e,...t===void 0?{}:{via:t}}))}}function DN(e){let t=null;return{recordAdvert:e=>{t??=e},compute:()=>{let n=e.getAuthenticatedPeer();return EN({...n===void 0?{}:{authenticatedPeer:n},firstAdvertisedPeer:t,isAccepted:e.isAccepted,relayedDevices:e.getRelayedDevices()})}}}function ON(){let e=new Map;return{has:t=>e.has(zD(t)),add:t=>{e.set(zD(t),t)},remove:t=>{e.delete(zD(t))},clear:()=>{e.clear()},list:()=>[...e.values()]}}function kN(e){let t=[];return{record:n=>{t.push(n),t.length>e&&t.splice(0,t.length-e)},entries:()=>[...t]}}var AN=16,jN=256,MN=256,NN=12,PN=4,FN=8,IN=new TextEncoder,LN=IN.encode(`wire-mesh/secure-hello/v1\0`),RN=IN.encode(`wire-mesh/secure-channel/v1\0`),zN=IN.encode(`wire-mesh/secure-data/v1\0`),BN=IN.encode(`lo-to-hi`),VN=IN.encode(`hi-to-lo`),HN={name:`ECDH`,namedCurve:`P-256`};function UN(...e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}function WN(e,t){for(let n=0;n<Math.min(e.length,t.length);n+=1){let r=(e[n]??0)-(t[n]??0);if(r!==0)return r}return e.length-t.length}function GN(e){let t=new Uint8Array(FN);return new DataView(t.buffer).setBigUint64(0,BigInt(e),!1),t}function KN(e,t,n,r){return UN(LN,e,t,n,r)}async function qN(e,t){let n=await crypto.subtle.generateKey(HN,!1,[`deriveBits`]),r=new Uint8Array(await crypto.subtle.exportKey(`raw`,n.publicKey)),i=crypto.getRandomValues(new Uint8Array(AN)),a=await e.sign(KN(r,i,e.deviceId,t));return{peer:t,privateKey:n.privateKey,hello:{type:`secure-hello`,"ephemeral-key":r,nonce:i,"identity-key":e.identityKey,"to-device":t,signature:a}}}async function JN(e,t){let n=t[`identity-key`],r=await e.deriveDeviceId(n[`public-key`]);if(!pk(t[`to-device`],e.deviceId))return{ok:!1,reason:`wrong_recipient`};try{return await e.verify(n,KN(t[`ephemeral-key`],t.nonce,r,e.deviceId),t.signature)?{ok:!0,peer:{deviceId:r,identityKey:n}}:{ok:!1,reason:`bad_signature`}}catch(e){if(!(e instanceof xO))throw e;return{ok:!1,reason:e.fault===`unsupported_alg`?`unsupported_identity_alg`:`invalid_identity_key`}}}var YN=2**53-1;function XN(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`firstSendCounter must be a non-negative safe integer`)}function ZN(e){if(e>YN)throw new cN;return{counter:e,next:e+1}}function QN(e){let t=new Uint8Array(NN);return t.set(GN(e),PN),t}function $N(e,t,n){return UN(zN,e,t,GN(n))}async function eP({secret:e,salt:t,low:n,high:r,label:i}){let a=await crypto.subtle.importKey(`raw`,Uint8Array.from(e),`HKDF`,!1,[`deriveKey`]);return crypto.subtle.deriveKey({name:`HKDF`,hash:`SHA-256`,salt:Uint8Array.from(t),info:UN(RN,n,r,i)},a,{name:`AES-GCM`,length:jN},!1,[`encrypt`,`decrypt`])}async function tP(e,{pending:t,remote:n,peer:r,firstSendCounter:i=0}){XN(i);let a;try{let e=await crypto.subtle.importKey(`raw`,Uint8Array.from(n[`ephemeral-key`]),HN,!1,[]);a=new Uint8Array(await crypto.subtle.deriveBits({name:`ECDH`,public:e},t.privateKey,MN))}catch{return}let o=WN(e.deviceId,r.deviceId)<0,s=o?e.deviceId:r.deviceId,c=o?r.deviceId:e.deviceId,l=UN(o?t.hello.nonce:n.nonce,o?n.nonce:t.hello.nonce),u=await eP({secret:a,salt:l,low:s,high:c,label:BN}),d=await eP({secret:a,salt:l,low:s,high:c,label:VN}),f=o?u:d,p=o?d:u,m=i,h=-1,g=Promise.resolve(),_=Promise.resolve();async function v(t,n){return{type:`secure-data`,counter:n,ciphertext:new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:QN(n),additionalData:$N(e.deviceId,r.deviceId,n)},f,AM(t)))}}async function y(t){if(t.counter<=h)return{ok:!1,reason:`replayed`};let n;try{n=new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:QN(t.counter),additionalData:$N(r.deviceId,e.deviceId,t.counter)},p,Uint8Array.from(t.ciphertext)))}catch{return{ok:!1,reason:`unauthentic`}}h=Math.max(h,t.counter);let i=PM(n);return i===null?{ok:!1,reason:`undecodable`}:{ok:!0,frame:i}}let b=async e=>{let t=_.then(async()=>y(e));return _=t.catch(()=>void 0),t};return{peer:r,seal:async e=>{let t=ZN(m),n=t.counter;m=t.next;let r=g.then(async()=>v(e,n));return g=r.catch(()=>void 0),r},open:async e=>{let t=await b(e);return t.ok?t.frame:void 0},openOutcome:b}}function nP(e,t,n={}){n.firstSendCounter!==void 0&&XN(n.firstSendCounter);let r=new Map;function i(e){let t=e=>{console.error(`the local fault callback failed`,e)};try{let r=n.onFault?.(e);typeof r==`object`&&r&&`then`in r&&typeof r.then==`function`&&Promise.resolve(r).catch(t)}catch(e){t(e)}}function a(e,t){let n=t instanceof Error?t:Error(String(t));r.get(e.key)===e&&r.delete(e.key),e.settle.reject(n),e.sent.reject(n)}function o(n,{answering:o,track:s}={answering:!1,track:!0}){let c=zD(n),l=qN(e,n),u={status:`awaiting`,pending:l,settle:Promise.withResolvers(),key:c,sent:Promise.withResolvers()};return u.settle.promise.catch(()=>void 0),u.sent.promise.catch(()=>void 0),l.then(async({hello:e})=>{try{await t(n,e)}catch(e){a(u,e),u.settle.promise.then(e=>{let t=r.get(c);t?.status===`established`&&t.channel===e&&r.delete(c)},()=>void 0),o&&s&&i(e);return}u.sent.resolve(void 0)},e=>{a(u,e)}),s&&r.set(c,u),u}async function s({entry:t,hello:i,peer:o,replaces:s}){let{key:c}=t,l=await tP(e,{pending:await t.pending,remote:i,peer:o,...n.firstSendCounter===void 0?{}:{firstSendCounter:n.firstSendCounter}});if(l===void 0){a(t,Error(`the peer sent an unusable ephemeral key`));return}if(s!==void 0&&await t.sent.promise,r.get(c)!==(s??t))return;let u={...l,seal:async e=>{try{return await l.seal(e)}catch(e){let t=r.get(c);throw e instanceof cN&&t?.status===`established`&&t.channel===u&&r.delete(c),e}}};r.set(c,{status:`established`,channel:u,remoteEphemeralKey:i[`ephemeral-key`]}),t.settle.resolve(u)}return{ensure:async e=>{let t=zD(e),n=r.get(t);return n?.status===`established`?n.channel:(n??o(e)).settle.promise},applyHello:async t=>{let n;try{let i=await JN(e,t);if(!i.ok)return;let a=zD(i.peer.deviceId),c=r.get(a);if(c?.status===`established`&&pk(c.remoteEphemeralKey,t[`ephemeral-key`]))return;let l=c?.status===`established`?c:void 0;n=c?.status===`awaiting`?c:o(i.peer.deviceId,{answering:!0,track:l===void 0}),await s({entry:n,hello:t,peer:i.peer,replaces:l})}catch(e){n!==void 0&&a(n,e),i(e)}},open:async(e,t)=>{if(t===void 0)return;let n=zD(t),i=r.get(n);if(i?.status!==`established`)return;let a=await i.channel.open(e);return a===void 0?void 0:{frame:a,from:i.channel.peer.deviceId}},reset:e=>{for(let t of[...r.values()])t.status===`awaiting`&&a(t,Error(e));r.clear()},forget:e=>{let t=zD(e),n=r.get(t);n?.status===`awaiting`&&a(n,Error(`the relay pairing was lost`)),r.delete(t)}}}var rP=1e3,iP=3e3;function aP(e,t,n,r,i,a=[],o,s,c){let l=null,u={status:`idle`},d={status:`pending`},f=new Map,p=kN(256),m=p.record,h=!1,g=sN(),_=null,v=null,y=0,b=null,x=0,S=ON(),C=DN({getAuthenticatedPeer:()=>l?.peerDeviceId,isAccepted:r===null,getRelayedDevices:()=>S.list()}),w=new Map,T=nP(e,async(e,t)=>{if(l===null)throw Error(`not connected`);m({direction:`sent`,frame:t}),await l.send(jM(t,e)),M()},{onFault:c}),E=sN(),D=sN(),O=sN(),k=sN(),A=wN();function j(){return{state:u,directory:[...f.values()],frameLog:p.entries()}}function M(){g.push(j())}function N(e){for(let t of w.values())t.reject(Error(e));w.clear()}function ee(e,t,n){let r=x;x+=1;let i=n??b;return{type:`manage-request`,"request-id":r,command:e,scope:t,...i===null?{}:{token:i}}}function P(){if(l===null||u.status!==`connected`)throw Error(`not connected`);return l}async function F(e,t,n){if(l===null)throw Error(`not connected`);if(!t){await l.send(e);return}if(n===void 0)throw Error(`a relayed frame needs the device it is for`);let r=await(await T.ensure(n)).seal(e);await l.send(jM(r,n))}function I(e,t){let n=e[`request-id`],r=w.get(n);if(r===void 0)return;let i=r.expectedFrom;(i===void 0?t===void 0:t!==void 0&&zD(t)===zD(i))&&(w.delete(n),r.resolve(e.outcome))}function te(e,t){let n=e[`request-id`],r=t?.fromDevice,i=t?.toDevice,a={requestId:n,command:e.command,scope:e.scope,...e.token===void 0?{}:{token:e.token},...r===void 0?{}:{fromDevice:r},...i===void 0?{}:{toDevice:i},respond:async e=>{let i={type:`manage-response`,"request-id":n,outcome:e};m({direction:`sent`,frame:i}),await F(i,t!==void 0,r),M()}};if(tN(e.command.params)){a.respond(nN()).catch(()=>void 0);return}E.push(a)}async function ne(n){if(n.type===`relay-data`){let e=PM(n.payload);if(e?.type===`secure-hello`){m({direction:`received`,frame:e}),await T.applyHello(e);return}if(e?.type===`secure-data`){let t=await T.open(e,n[`from-device`]);t?.frame.type===`manage-response`?(m({direction:`received`,frame:t.frame}),I(t.frame,t.from)):t!==void 0&&SN(t.frame)?(m({direction:`received`,frame:t.frame}),k.push({frame:t.frame,fromDevice:t.from,...n[`to-device`]===void 0?{}:{toDevice:n[`to-device`]}})):t?.frame.type===`manage-request`&&(m({direction:`received`,frame:t.frame}),te(t.frame,{fromDevice:t.from,...n[`to-device`]===void 0?{}:{toDevice:n[`to-device`]}}));return}m({direction:`received`,frame:n});return}if(m({direction:`received`,frame:n}),n.type===`handshake`)L(n);else if(n.type===`gossip`){let t=await Promise.all(n.peers.map(async t=>XM(e,t)));for(let e of n.peers.filter((e,n)=>t[n]===!0)){let t=zD(e.device),n=f.get(t)?.advert[`snapshot-seconds`];n!==void 0&&e[`snapshot-seconds`]<n||(f.set(t,{device:e.device,advert:e}),C.recordAdvert(e.device),i?.(e))}}else if(n.type===`relay-inbound`)S.add(n[`source-device`]);else if(n.type===`manage-response`)I(n);else if(n.type===`manage-request`)te(n);else if(n.type===`pong`)A.resolveOldest(t.now());else if(n.type===`revocation-announce`)for(let e of n.entries)D.push(e);else SN(n)?k.push({frame:n}):n.type===`coordinator`&&O.push(n)}async function re(e){if(l===null)throw Error(`not connected`);if(S.has(e))return;let t={type:`relay-connect`,"target-device":e};m({direction:`sent`,frame:t}),await l.send(t),S.add(e),M()}let ie=lN([]);function L(e){if(d.status!==`pending`)return;_!==null&&(clearTimeout(_),_=null);let t=dN(ie,e);d=t.ok?{status:`negotiated`,version:t.version,sharedDomains:t.sharedDomains}:{status:`rejected`,reason:`no shared domains or version`},u.status===`connected`&&(u={...u,handshake:d})}function R(e,t){return e.redialAddress?.()??t}function ae(e,t,r){if(!h){if(N(`disconnected before a response arrived`),A.rejectAll(`disconnected before a pong arrived`),n!==null&&y<n.maxAttempts){y+=1;let i=y;u={status:`reconnecting`,address:t,attempt:i,reason:e},M(),v=setTimeout(()=>{v=null,le(t,r).catch(e=>{ae(e instanceof Error?e.message:String(e),t,r)})},n.delayMs(i));return}u={status:`closed`,address:t,reason:e},M()}}async function oe(e,t,n){let r=!1;for await(let t of e.receive()){if(h)return;r||(r=!0,y=0),await ne(t),await o?.(e,t),M()}s?.(e),u.status===`connected`&&ae(`node closed the connection`,R(e,t),n)}async function se(n){return n!==void 0&&oN(n),{type:`gossip`,peers:[await YM(e,{...n,[$M]:QM,[iN]:C.compute(),device:e.deviceId,addresses:[...a],"snapshot-seconds":Math.floor(t.now()/rP),"identity-key":e.identityKey})]}}async function ce(e,t,n){l=e,T.reset(`the connection changed before the channel was ready`),S.clear(),ie=lN(n),d={status:`pending`},u={status:`connected`,address:t,handshake:d},m({direction:`sent`,frame:ie}),await l.send(ie),M();let r=await se();m({direction:`sent`,frame:r}),await l.send(r),M(),_=setTimeout(()=>{_=null,d.status===`pending`&&(d={status:`unanswered`},u.status===`connected`&&(u={...u,handshake:d}),M())},iP),oe(l,t,n).catch(r=>{u.status===`connected`&&ae(r instanceof Error?r.message:String(r),R(e,t),n)})}async function le(e,t){if(r===null)throw Error(`this session is already connected; there is nothing to dial`);_!==null&&(clearTimeout(_),_=null),u={status:`connecting`,address:e},M();let n=await r(e);if(h){await n.close();return}await ce(n,e,t)}return{wireUpConnection:ce,session:{events:g.stream,incomingManageRequests:E.stream,revocationAnnouncements:D.stream,coordinatorFrames:O.stream,incomingDataFrames:k.stream,async connect(e,t){if(l!==null)throw Error(`a session connects once; create a new one to reconnect`);y=0,await le(e,t).catch(n=>{throw ae(n instanceof Error?n.message:String(n),e,t),n})},async sendPing(){let e=P(),t={type:`ping`};m({direction:`sent`,frame:t}),await e.send(t),M()},async sendPingMeasureRtt(e){let n=P();return A.sendAndAwait(t.now(),async()=>{let e={type:`ping`};m({direction:`sent`,frame:e}),await n.send(e),M()},e)},setToken(e){b=e},async sendManageRequest(e,t,n,r,i){P(),n!==void 0&&await re(n);let a=ee(e,t,r),o=a[`request-id`],s=new Promise((e,t)=>{w.set(o,{resolve:e,reject:t,expectedFrom:n})});m({direction:`sent`,frame:a});let c=(async()=>{try{await F(a,n!==void 0,n)}catch(e){throw w.delete(o),s.catch(()=>void 0),e}return M(),s})();if(i===void 0)return c;let l;return Promise.race([c,new Promise(e=>{l=setTimeout(()=>{w.delete(o)&&(n!==void 0&&(S.remove(n),T.forget(n)),e({result:`error`,code:`timeout`}))},i)})]).finally(()=>{clearTimeout(l)})},async sendRevocationAnnounce(e){P();let t={type:`revocation-announce`,entries:[...e]};m({direction:`sent`,frame:t}),await F(t,!1),M()},async sendCoordinatorClaim(e){P();let t={...e};m({direction:`sent`,frame:t}),await F(t,!1),M()},async sendGossipUpdate(e){P();let t=await se(e);m({direction:`sent`,frame:t}),await F(t,!1),M()},getTopologyPeers(){return C.compute()},async sendDataFrame(e,t){P(),t!==void 0&&await re(t),m({direction:`sent`,frame:e}),await F(e,t!==void 0,t),M()},async close(){h=!0,_!==null&&(clearTimeout(_),_=null),v!==null&&(clearTimeout(v),v=null),N(`connection closed before a response arrived`),T.reset(`the session closed before the channel was ready`),A.rejectAll(`connection closed before a pong arrived`),l!==null&&await l.close(),(u.status===`connected`||u.status===`connecting`||u.status===`reconnecting`)&&(u={status:`closed`,address:u.address,reason:`closed by you`}),M()}}}}function oP(e,t,n={now:()=>Date.now()},r=null,i=[],a,o,s){let{session:c}=aP(t,n,r,async t=>e.connect(t),a,i,o,void 0,s);return c}async function sP(e,t,n,r={}){let i=r.clock??{now:()=>Date.now()},a=null,o=new Promise(e=>{a=e}),s=!1,{session:c,wireUpConnection:l}=aP(t,i,null,null,e=>{s||(s=!0,a?.(e.device)),r.onPeerAdvert?.(e)},r.addresses,r.onFrame,r.onSessionEnd);return await l(e,r.label??`accepted`,n),{...c,peerDeviceId:o}}function cP(e){return e instanceof Error?e:Error(String(e))}function lP(e){let t=zD(e.selfDeviceId),n=new Set;async function r(t){let n;try{n=await e.shouldExpand(t)}catch(n){e.onExpansionFailed?.(t,[cP(n)]);return}if(!n){e.onExpansionDeclined?.(t);return}await i(t,t.addresses,[])}async function i(t,n,r){let[a,...o]=n;if(a===void 0){e.onExpansionFailed?.(t,r);return}try{let n=await e.dial(a);e.onExpanded(t,a,n)}catch(e){await i(t,o,[...r,cP(e)])}}return{considerAdvert(e){let i=zD(e.device);i===t||n.has(i)||e.addresses.length===0||(n.add(i),r({device:e.device,addresses:e.addresses}))}}}var uP=/^[0-9a-f]{64}$/,dP=/^[A-Za-z0-9_-]+$/;function fP(e,t){if(!uP.test(e))throw Error(`expected ${t} to be a 64-character lowercase hex device-id, got ${JSON.stringify(e)}`)}function pP(e,t){if(fP(e,`a`),fP(t,`b`),e===t)throw Error(`a DM room path cannot name the same device twice (${e})`);return e<t?`${e}+${t}`:`${t}+${e}`}function mP(e){let t=e.indexOf(`/`);if(t!==-1){let n=e.slice(0,t),r=e.slice(t+1);if(uP.test(n)&&dP.test(r))return{kind:`owner-named`,owner:n,localName:r}}let n=e.indexOf(`+`);if(n!==-1){let t=e.slice(0,n),r=e.slice(n+1);if(uP.test(t)&&uP.test(r)&&t!==r)return{kind:`dm`,participants:[t,r]}}throw Error(`${JSON.stringify(e)} is not a valid room-path`)}var hP=5,gP=1e3,_P=3e4,vP=2,yP={maxAttempts:hP,delayMs:e=>Math.min(gP*vP**(e-1),_P)},bP=4,xP=1024,SP=xP*xP*100,CP=new Uint8Array(bP);function wP(e){let t=Mg(e,hg),n=new Uint8Array(bP+t.length);return new DataView(n.buffer).setUint32(0,t.length),n.set(t,bP),n}function TP(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function EP(e){return{[Symbol.asyncIterator]:()=>({next:async()=>{let t=await e.read();return t.done?{done:!0,value:void 0}:{done:!1,value:t.value}}})}}async function*DP(e){let t=new Uint8Array;try{for await(let n of EP(e))for(t=TP(t,n);t.length>=bP;){let e=new DataView(t.buffer,t.byteOffset).getUint32(0);if(e>104857600)throw Error(`frame of ${String(e)} bytes exceeds the ${String(SP)}-byte limit`);if(t.length<bP+e)break;if(e===0){t=t.slice(bP);continue}let n=t.slice(bP,bP+e);t=t.slice(bP+e);let r=oE.safeParse(b_(n,x_));r.success&&(yield r.data)}}catch(t){throw await e.cancel(t),t}}function OP(e,t={opened:!1}){let n=e.writable.getWriter(),r=e.readable.getReader(),i=DP(r),a=t.opened?n.write(CP):Promise.resolve();return a.catch(()=>void 0),{send:async e=>{await a,await n.write(wP(e))},receive:()=>i,close:async()=>{await Promise.allSettled([n.close(),r.cancel()])}}}var kP=`/wire-mesh`,AP=8e3,jP=`the web console is a client only: it cannot listen`;async function MP(e){let t=[],n=async()=>{let r=await e.read();if(!r.done){if(!(r.value instanceof Uint8Array))throw Error(`the announcement carried something other than bytes`);t.push(r.value),await n()}};return await n(),t}async function NP(e){let t=e.incomingUnidirectionalStreams.getReader(),n=await t.read();if(t.releaseLock(),n.done)throw Error(`the node opened no announcement stream`);let r=n.value;if(!(r instanceof ReadableStream))throw Error(`the announcement stream is not a readable stream`);let i=await MP(r.getReader()),a=new Uint8Array(i.reduce((e,t)=>e+t.length,0)),o=0;for(let e of i)a.set(e,o),o+=e.length;return GO(a)}async function PP(e){let t,n=new Promise(e=>{t=setTimeout(()=>{e(`timed out`)},AP)});try{let t=await Promise.race([e.createBidirectionalStream(),n]);if(t===`timed out`)throw e.close(),Error(`this browser cannot open a stream to this node: it is waiting for flow-control credit the node never grants, which is how Safari behaves with the node's HTTP/3 library (fails-components/webtransport#490); reach the node over wss:// instead`);return t}finally{clearTimeout(t)}}function FP(e){return{async connect(t){if(typeof WebTransport>`u`)throw Error(`this browser does not support WebTransport`);let{url:n,sha256:r}=HO(t),i=new URL(n).host,a=KO(r,await e.recall(i)),o=new WebTransport(new URL(kP,n).toString(),{serverCertificateHashes:a.map(e=>({algorithm:`sha-256`,value:e}))});await o.ready;let s=OP(await PP(o),{opened:!0});o.closed.catch(()=>void 0).then(async()=>s.close());let c;return NP(o).then(async t=>{c=t,await e.remember(i,t)}).catch(()=>void 0),{...s,redialAddress:()=>c===void 0?t:JO(t,c)}},async listen(){return Promise.reject(Error(jP))}}}var IP=1e3,LP=1002,RP=`the web console is a client only: it cannot listen`;function zP(e){let t=[],n=[],r=!1,i=null;function a(){r=!0;for(let e of n.splice(0))e.resolve({value:void 0,done:!0})}function o(e){i=e,r=!0;for(let t of n.splice(0))t.reject(e)}e.addEventListener(`message`,r=>{if(!(r.data instanceof ArrayBuffer)){o(Error(`expected a binary WebSocket message`)),e.close(LP,`protocol error`);return}let i;try{i=NM(r.data)}catch(t){if(t instanceof MM)return;o(t instanceof Error?t:Error(`frame body failed to decode: ${String(t)}`)),e.close(LP,`protocol error`);return}let a=n.shift();a?a.resolve({value:i,done:!1}):t.push(i)}),e.addEventListener(`close`,a),e.addEventListener(`error`,a);let s={[Symbol.asyncIterator](){return{next:async()=>c()}}};async function c(){let e=t.shift();return e===void 0?i===null?r?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{n.push({resolve:e,reject:t})}):Promise.reject(i):Promise.resolve({value:e,done:!1})}return{async send(t){return r?Promise.reject(Error(`connection is closed`)):(e.send(AM(t)),Promise.resolve())},receive:()=>s,async close(){return e.close(IP),Promise.resolve()}}}function BP(){return{async connect(e){let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return Promise.reject(Error(`not a WebSocket address: ${e}`));let n=new WebSocket(t);return n.binaryType=`arraybuffer`,new Promise((e,r)=>{n.addEventListener(`open`,()=>{e()}),n.addEventListener(`error`,()=>{r(Error(`connect to ${t.toString()} failed`))})}).then(()=>zP(n))},async listen(){return Promise.reject(Error(RP))}}}function VP(e){let t=BP(),n=FP(e);return{connect:async e=>VO(e)?n.connect(e):t.connect(e),listen:async(e,n)=>t.listen(e,n)}}var HP=[{urls:`stun:stun.cloudflare.com:3478`}],UP=`webrtc:signal`,WP={kind:`node`};function GP(e){return typeof e==`object`&&`verb`in e&&e.verb===`webrtc.offer`}function KP(e){return typeof e==`object`&&`verb`in e&&e.verb===`webrtc.answer`}function qP(e){return typeof e==`object`&&`verb`in e&&e.verb===`webrtc.ice-candidate`}function JP(e,t){return{verb:UP,params:{verb:`webrtc.offer`,"negotiation-id":e,sdp:t}}}function YP(e,t){return{verb:UP,params:{verb:`webrtc.answer`,"negotiation-id":e,sdp:t}}}function XP(e,t){return{verb:UP,params:{verb:`webrtc.ice-candidate`,"negotiation-id":e,...t===void 0?{}:{candidate:t}}}}function ZP(e){return{candidate:e.candidate,...e.sdpMid===null?{}:{"sdp-mid":e.sdpMid},...e.sdpMLineIndex===null?{}:{"sdp-m-line-index":e.sdpMLineIndex},...e.usernameFragment===null?{}:{"username-fragment":e.usernameFragment}}}function QP(e){return{candidate:e.candidate,...e[`sdp-mid`]===void 0?{}:{sdpMid:e[`sdp-mid`]},...e[`sdp-m-line-index`]===void 0?{}:{sdpMLineIndex:e[`sdp-m-line-index`]},...e[`username-fragment`]===void 0?{}:{usernameFragment:e[`username-fragment`]}}}function $P(){let e=0;return()=>{let t=e;return e+=1,t}}async function eF(e,t){if(e.token===void 0)return!1;let n=await jj(e.token,t);return n.ok?n.claims.capability===`webrtc:signal`&&n.claims.scope.kind===WP.kind:!1}function tF(e){let t=[],n=[],r=!1,i=null;function a(){r=!0;for(let e of n.splice(0))e.resolve({value:void 0,done:!0})}function o(e){i=e,r=!0;for(let t of n.splice(0))t.reject(e)}e.addEventListener(`message`,r=>{if(!(r.data instanceof ArrayBuffer)){o(Error(`expected a binary data channel message`)),e.close();return}let i;try{i=NM(r.data)}catch(t){if(t instanceof MM)return;o(t instanceof Error?t:Error(`frame body failed to decode: ${String(t)}`)),e.close();return}let a=n.shift();a?a.resolve({value:i,done:!1}):t.push(i)}),e.addEventListener(`close`,a),e.addEventListener(`error`,a);let s={[Symbol.asyncIterator](){return{next:async()=>c()}}};async function c(){let e=t.shift();return e===void 0?i===null?r?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{n.push({resolve:e,reject:t})}):Promise.reject(i):Promise.resolve({value:e,done:!1})}return{async send(t){return e.readyState===`open`?(e.send(AM(t)),Promise.resolve()):Promise.reject(Error(`data channel is not open (state: ${e.readyState})`))},receive:()=>s,async close(){return e.close(),Promise.resolve()}}}var nF=`wire-mesh`;function rF(e,t){for(let n of t.localTracks??[])e.addTrack(n);t.onRemoteTrack!==void 0&&e.addEventListener(`track`,t.onRemoteTrack)}function iF(e,t){e.addEventListener(`open`,()=>{t(tF(e))},{once:!0})}var aF=16,oF=36e5;async function sF(e,t){let n=new Uint8Array(aF);crypto.getRandomValues(n);let r=await zj({identity:e,clock:t,tokenId:n,bearer:e.deviceId,capability:UP,scope:WP,expires:t.now()+oF});if(!r.ok)throw Error(`could not mint a webrtc:signal token: ${r.reason}`);return r.token}function cF(e,t){let n={identity:t.identity,clock:t.clock,revocation:t.revocation},r=new Map,i=new Map,a=$P();async function o(t,n){let r=XP(t,n===null?void 0:ZP(n));await e.sendManageRequest(r,WP,i.get(t))}async function s(a,s){if(!await eF(a,n)){await a.respond({result:`error`,code:`unauthorized`});return}let c=s[`negotiation-id`];i.set(c,a.fromDevice);let l=new RTCPeerConnection({iceServers:[...t.iceServers]});r.set(c,l),rF(l,t),l.addEventListener(`icecandidate`,e=>{o(c,e.candidate)}),l.addEventListener(`datachannel`,e=>{let{channel:n}=e;n.binaryType=`arraybuffer`,iF(n,t.onIncomingConnection)}),await l.setRemoteDescription({type:`offer`,sdp:s.sdp});let u=await l.createAnswer();await l.setLocalDescription(u),await a.respond({result:`ok`}),await e.sendManageRequest(YP(c,u.sdp??``),WP,a.fromDevice)}async function c(e,t){let n=r.get(t[`negotiation-id`]);n!==void 0&&await n.setRemoteDescription({type:`answer`,sdp:t.sdp}),await e.respond({result:`ok`})}async function l(e,t){let n=r.get(t[`negotiation-id`]);n!==void 0&&await n.addIceCandidate(t.candidate===void 0?null:QP(t.candidate)),await e.respond({result:`ok`})}async function u(){for await(let t of e.incomingManageRequests){if(t.command.verb!==`webrtc:signal`)continue;let e=t.command.params;GP(e)?await s(t,e):KP(e)?await c(t,e):qP(e)&&await l(t,e)}}return u(),{async initiate(n){let s=a();i.set(s,n);let c=new RTCPeerConnection({iceServers:[...t.iceServers]});r.set(s,c),rF(c,t),c.addEventListener(`icecandidate`,e=>{o(s,e.candidate)});let l=c.createDataChannel(nF);l.binaryType=`arraybuffer`;let u=new Promise((e,t)=>{iF(l,e),l.addEventListener(`error`,()=>{t(Error(`data channel failed to open`))},{once:!0})}),d=await c.createOffer();await c.setLocalDescription(d);let f=await e.sendManageRequest(JP(s,d.sdp??``),WP,n,await sF(t.identity,t.clock));if(f.result===`error`)throw r.delete(s),i.delete(s),c.close(),Error(`webrtc offer rejected: ${f.code}`);return u}}}var lF={frames:0,stage:void 0,handshake:void 0,issued:0,seen:new Set};function uF(e){return zD(e)}function dF(e,t){if(t.type===`gossip`)return e===`received`?t.peers.map(e=>({kind:`peer`,summary:`Peer seen:`,peer:uF(e.device)})):[{kind:`peer`,summary:`Advertised this console to the node`,peer:void 0}];if(t.type===`relay-connect`)return[{kind:`pairing`,summary:`Asked the node to pair this console with`,peer:uF(t[`target-device`])}];if(t.type===`relay-inbound`)return[{kind:`pairing`,summary:`Pairing established with`,peer:uF(t[`source-device`])}];if(t.type===`relay-data`){let n=e===`sent`?t[`to-device`]:t[`from-device`];return[{kind:`relay`,summary:e===`sent`?`Relayed a message to`:`Relayed message received from`,peer:n===void 0?void 0:uF(n)}]}return t.type===`close`?[{kind:`connection`,summary:`The node closed the connection`,peer:void 0}]:[]}function fF(e){return e.status===`reconnecting`?`reconnecting:${String(e.attempt)}`:e.status}function pF(e,t,n){let r=[],i=e=>{r.push({kind:`connection`,summary:e,peer:void 0})};if(fF(t)!==e.stage)switch(t.status){case`connecting`:i(`Connecting to ${t.address}`);break;case`connected`:i(`Connected to ${t.address}`);break;case`reconnecting`:i(`${e.stage?.startsWith(`reconnecting`)===!0?`Retry failed`:`Connection lost`} (${t.reason}); retrying, attempt ${String(t.attempt)}`);break;case`closed`:i(`Closed (${t.reason})`)}return t.status===`connected`&&n!==e.handshake&&(t.handshake.status===`negotiated`?i(`Handshake negotiated: ${t.handshake.sharedDomains.join(`, `)}`):t.handshake.status===`unanswered`?i(`The node does not answer handshakes (a relay-only node)`):t.handshake.status===`rejected`&&i(`Handshake rejected (${t.handshake.reason})`)),r}function mF(e){return e.status===`connected`?e.handshake.status:void 0}function hF(e,t,n){let r=mF(t.state),i=new Set(e.seen),a=[...pF(e,t.state,r),...t.frameLog.slice(e.frames).flatMap(e=>dF(e.direction,e.frame)).filter(e=>e.kind!==`peer`||e.peer===void 0||!i.has(e.peer)&&(i.add(e.peer),!0))].map((t,r)=>({...t,key:`activity-${String(e.issued+r)}`,at:n}));return{tracker:{frames:t.frameLog.length,stage:fF(t.state),handshake:r,issued:e.issued+a.length,seen:i},entries:a}}function gF(e){return e.map(e=>({key:`certificate-${e.key}`,at:e.at,kind:`certificate`,summary:`Certificate changed: ${e.node} announced certificates unlike the remembered ones`,peer:void 0}))}function _F(e,t){let[n,r]=(0,k.useState)({event:void 0,activity:[],statusSince:void 0});return(0,k.useEffect)(()=>{let n={cancelled:!1};return(async()=>{let i=lF;for await(let a of e.events){if(n.cancelled)return;let e=t.now(),o=hF(i,a,e),s=o.tracker.stage!==i.stage;i=o.tracker,r(t=>({event:a,activity:[...t.activity,...o.entries].slice(-500),statusSince:s?e:t.statusSince}))}})(),()=>{n.cancelled=!0}},[e,t]),n}var vF=`local-network-access`,yF=4,bF=255,xF=8,SF=32,CF=[`10.0.0.0/8`,`127.0.0.0/8`,`172.16.0.0/12`,`192.168.0.0/16`,`169.254.0.0/16`,`100.64.0.0/10`];function wF(e){let t=e.split(`.`);if(t.length!==yF)return;let n=0;for(let e of t){let t=/^\d{1,3}$/.test(e)?Number(e):NaN;if(!(t<=bF))return;n=n*2**xF+t}return n}function TF(e,t){let[n,r]=t.split(`/`),i=wF(n??``),a=Number(r);if(i===void 0)return!1;let o=2**(SF-a);return Math.floor(e/o)===Math.floor(i/o)}function EF(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase(),n=wF(t);return n===void 0?t.includes(`:`)?t===`::1`||/^f[cd]/.test(t)||/^fe[89ab]/.test(t):t===`localhost`||t.endsWith(`.local`)||!t.includes(`.`):CF.some(e=>TF(n,e))}function DF(e){try{return new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`ws://${e}`).hostname}catch{return}}function OF(e){return typeof e==`object`&&!!e&&`name`in e&&typeof e.name==`string`}function kF(){if(`permissions`in navigator)return{query:async e=>{if(!OF(e))throw TypeError(`not a permission descriptor`);return navigator.permissions.query(e)}}}async function AF(e,t,n){let r=DF(e);if(r!==void 0&&EF(r)&&!EF(t)&&n!==void 0)try{let{state:e}=await n.query({name:vF});return e===`denied`?`Your browser blocked this page from reaching ${r}, a device on your local network. Allow "Local network access" for this site in the browser's site settings (the icon left of the address), then connect again.`:void 0}catch{return}}var jF=(0,k.createContext)(void 0);function MF(){let e=(0,k.useContext)(jF);if(e===void 0)throw Error(`usePeerNames must be used inside PeerNamesProvider`);return e}var NF={pongTimeoutMs:5e3,intervalMs:15e3};function PF(e,t,n=NF){let[r,i]=(0,k.useState)([]),[a,o]=(0,k.useState)(!1),s=(0,k.useRef)(!1),c=(0,k.useCallback)(()=>{e.sendPingMeasureRtt(n.pongTimeoutMs).then(e=>{s.current=!0,o(!1),i(t=>[...t,e].slice(-40))},e=>{e instanceof CN&&(o(!s.current),i(e=>[...e,void 0].slice(-40)))})},[e,n.pongTimeoutMs]);return(0,k.useEffect)(()=>{if(!t||a)return;c();let e=setInterval(c,n.intervalMs);return()=>{clearInterval(e)}},[t,a,c,n.intervalMs]),{samples:r,unresponsive:a,probe:c}}function FF(e,t,n){let[r,i]=(0,k.useState)(()=>e.now());return(0,k.useEffect)(()=>{if(!t)return;let r=setInterval(()=>{i(e.now())},n);return()=>{clearInterval(r)}},[e,t,n]),r}var IF=1e3,LF=60,RF=60,zF=24;function BF(e){let t=Math.floor(e/IF);if(t<1)return;if(t<LF)return`${String(t)} s`;let n=Math.floor(t/LF);if(n<RF)return`${String(n)} min`;let r=Math.floor(n/RF);return r<zF?`${String(r)} h`:`${String(Math.floor(r/zF))} d`}function VF(e){let t=BF(e);return t===void 0?`just now`:`${t} ago`}function HF(e){let t=BF(e);return t===void 0?`in under a second`:`in ${t}`}function UF(e){return`${String(Math.max(0,Math.ceil(e/IF)))} s`}function WF(e,t,n){if(n.length===0)return{kind:`first-use`,node:e,presented:t};let r=new Set(n),i=t.filter(e=>r.has(e));return i.length>0?{kind:`known`,node:e,trusted:i}:{kind:`changed`,node:e,remembered:n,presented:t}}function GF(e){if(VO(e))try{let{url:t,sha256:n}=HO(e);return{node:new URL(t).host,sha256:[...n]}}catch{return}}function KF(e,t){return{recall:e.recall,remember:async(n,r)=>{let i=WF(n,r.map(e=>RD(e)),(await e.recall(n)).map(e=>RD(e)));await e.remember(n,r),i.kind===`changed`&&t({node:n,remembered:i.remembered,presented:i.presented})}}}var qF=2;function JF(e){let t=[];for(let n=0;n<e.length;n+=qF)t.push(e.slice(n,n+qF).toUpperCase());return t.join(`:`)}var YF=/^([a-z][a-z0-9+.-]*):\/\//i,XF={ws:`ws:`,wss:`wss:`,http:`ws:`,https:`wss:`};function ZF(e){if(VO(e))return e;let t=YF.exec(e);if(t===null)return`ws://${e}`;let n=XF[t[1]?.toLowerCase()??``];if(n===void 0)return e;let r=new URL(e);return r.protocol=n,r.hash=``,r.toString()}function QF({deviceHex:e}){return(0,z.jsx)(z.Fragment,{children:_M(MF().labelOf(e))})}function $F(e){return JSON.stringify(e,(e,t)=>t instanceof Uint8Array?`<${String(t.byteLength)} bytes>`:t)}function eI({activity:e,frameLog:t}){let[n,r]=(0,k.useState)(!1);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(um,{mt:`md`,label:`Show raw frames`,checked:n,onChange:e=>{r(e.currentTarget.checked)}}),n?(0,z.jsx)(km.ScrollContainer,{minWidth:0,h:384,"data-testid":`frame-log`,children:(0,z.jsxs)(km,{children:[(0,z.jsx)(km.Thead,{children:(0,z.jsxs)(km.Tr,{children:[(0,z.jsx)(km.Th,{children:`direction`}),(0,z.jsx)(km.Th,{children:`frame`})]})}),(0,z.jsx)(km.Tbody,{children:t.map((e,t)=>(0,z.jsxs)(km.Tr,{children:[(0,z.jsx)(km.Td,{children:e.direction}),(0,z.jsx)(km.Td,{children:$F(e.frame)})]},t))})]})}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`md`,children:`Activity`}),e.length===0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Nothing has happened yet.`}):(0,z.jsx)(km.ScrollContainer,{minWidth:0,h:384,"data-testid":`activity-log`,children:(0,z.jsx)(km,{children:(0,z.jsx)(km.Tbody,{children:[...e].reverse().map(e=>(0,z.jsxs)(km.Tr,{children:[(0,z.jsx)(km.Td,{children:new Date(e.at).toLocaleTimeString()}),(0,z.jsxs)(km.Td,{children:[e.summary,e.peer!==void 0&&(0,z.jsxs)(z.Fragment,{children:[` `,(0,z.jsx)(QF,{deviceHex:e.peer})]})]})]},e.key))})})})]})]})}var tI=160,nI=32,rI=3,iI=2,aI=26;function oI(e){let t=e.at(-1);return t===void 0?e.length===0?`No round trips measured yet`:`Last ping got no pong`:`Round trip ${String(Math.round(t))} ms`}function sI({samples:e}){let t=e.filter(e=>e!==void 0),n=Math.max(1,...t),r=tI/39,i=(40-e.length)*r,a=e.map((e,t)=>({x:i+t*r,y:e===void 0?void 0:rI+aI*(1-e/n)})),o=a.filter(e=>e.y!==void 0).map(e=>`${e.x.toFixed(1)},${String(e.y)}`).join(` `);return(0,z.jsxs)(`div`,{"data-testid":`rtt-sparkline`,children:[(0,z.jsxs)(`svg`,{role:`img`,"aria-label":oI(e),width:tI,height:nI,viewBox:`0 0 ${String(tI)} ${String(nI)}`,children:[(0,z.jsx)(`polyline`,{points:o,fill:`none`,stroke:`currentColor`,strokeWidth:1.5}),a.map(e=>e.y===void 0?null:(0,z.jsx)(`circle`,{cx:e.x,cy:e.y,r:iI,fill:`currentColor`},e.x)),a.filter(e=>e.y===void 0).map(e=>(0,z.jsx)(`line`,{x1:e.x,x2:e.x,y1:21,y2:29,stroke:`var(--mantine-color-red-6)`,strokeWidth:2},e.x))]}),(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:oI(e)})]})}function cI({state:e,statusSince:t,now:n,policy:r}){let i=t===void 0?void 0:t+r.delayMs(e.attempt),a=i===void 0?0:i-n;return(0,z.jsxs)(U,{size:`sm`,c:`orange`,"data-testid":`reconnect-status`,children:[a>0?`Retrying in ${UF(a)}`:`Retrying now`,` `,`(attempt `,e.attempt,` of `,r.maxAttempts,`). Last failure:`,` `,e.reason]})}function lI({state:e,statusSince:t,now:n,policy:r,health:i}){return e.status===`reconnecting`?(0,z.jsx)(cI,{state:e,statusSince:t,now:n,policy:r}):e.status===`connected`?(0,z.jsxs)(pl,{align:`flex-end`,gap:`md`,mb:`sm`,children:[(0,z.jsx)(sI,{samples:i.samples}),i.unresponsive&&(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:`This node does not answer pings, so round trips are not measured automatically.`})]}):null}function uI(e){e?.focus()}function dI({deviceHex:e}){let t=MF(),n=t.labelOf(e),[r,i]=(0,k.useState)(void 0);return r===void 0?(0,z.jsxs)(pl,{gap:`xs`,wrap:`nowrap`,children:[(0,z.jsxs)(`div`,{children:[n.source===`self`&&(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:`calls itself`}),(0,z.jsx)(U,{size:`sm`,fw:n.source===`petname`?`bold`:`normal`,fs:n.source===`self`?`italic`:`normal`,ff:n.source===`id`?`monospace`:`text`,children:n.primary}),n.matchesPetname&&(0,z.jsx)(_d,{size:`xs`,color:`orange`,variant:`light`,children:`same as a name you set`}),n.secondary!==void 0&&(0,z.jsx)(U,{size:`xs`,c:`dimmed`,ff:n.source===`self`?`monospace`:`text`,children:n.secondary})]}),(0,z.jsx)(zd,{value:e,children:({copied:e,copy:t})=>(0,z.jsx)(Zp,{label:e?`Copied`:`Copy device id`,children:(0,z.jsx)(rl,{size:`sm`,variant:`subtle`,"aria-label":`Copy device id of ${n.primary}`,onClick:t,children:`⧉`})})}),(0,z.jsx)(rl,{size:`sm`,variant:`subtle`,"aria-label":`Rename ${n.primary}`,onClick:()=>{i(t.petnameOf(e)??``)},children:`✎`})]}):(0,z.jsx)(`form`,{onSubmit:n=>{n.preventDefault(),t.rename(e,r).then(()=>{i(void 0)})},children:(0,z.jsxs)(pl,{gap:`xs`,wrap:`nowrap`,children:[(0,z.jsx)(Am,{size:`xs`,"aria-label":`Petname for ${n.primary}`,value:r,ref:uI,onChange:e=>{i(e.currentTarget.value)}}),(0,z.jsx)(rl,{type:`submit`,size:`sm`,"aria-label":`Save petname`,children:`✓`}),(0,z.jsx)(rl,{size:`sm`,variant:`subtle`,"aria-label":`Cancel rename`,onClick:()=>{i(void 0)},children:`×`})]})})}var fI=`q7ltm10`,pI=`q7ltm11`;function mI({columns:e,rows:t}){return(0,z.jsxs)(km,{striped:!0,className:pI,children:[(0,z.jsx)(km.Thead,{role:`rowgroup`,children:(0,z.jsx)(km.Tr,{role:`row`,children:e.map(e=>(0,z.jsx)(km.Th,{role:`columnheader`,children:e.headerless===!0?null:e.label},e.label))})}),(0,z.jsx)(km.Tbody,{role:`rowgroup`,children:t.map(t=>(0,z.jsx)(km.Tr,{role:`row`,children:e.map((e,n)=>(0,z.jsx)(km.Td,{role:`cell`,"data-label":e.label,children:t.cells[n]},e.label))},t.key))})]})}var hI=16,gI=1e3;function _I(e){let t=``;for(let n of e)t+=n.toString(hI).padStart(2,`0`);return t}function vI(e){if(e.state.status!==`connected`)return``;switch(e.state.handshake.status){case`pending`:return` · handshake pending`;case`negotiated`:return` · v${String(e.state.handshake.version)} · ${e.state.handshake.sharedDomains.join(`, `)}`;case`unanswered`:return` · handshake unanswered (relay-only node?)`;case`rejected`:return` · handshake rejected (${e.state.handshake.reason})`}return``}function yI(e){let{state:t}=e;switch(t.status){case`connecting`:return`connecting…`;case`connected`:return`connected${vI(e)}`;case`reconnecting`:return`reconnecting (attempt ${String(t.attempt)}, ${t.reason})…`;case`closed`:return`closed (${t.reason})`;case`idle`:return`idle`}return``}var bI=1e3,xI=[{label:`device`},{label:`addresses`},{label:`advertised`},{label:`actions`,headerless:!0}];function SI({address:e,session:t,clock:n,reconnectPolicy:r,certificateChanges:i,onClose:a,onMessagePeer:o,pageHost:s=window.location.hostname,permissions:c=kF()}){let{event:l,activity:u,statusSince:d}=_F(t,n),f=l?.state.status===`reconnecting`||l?.state.status===`closed`,[p,m]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{let t={value:!0};return f&&AF(e,s,c).then(n=>{t.value&&m({address:e,message:n})}),()=>{t.value=!1}},[f,e,s,c]);let h=f&&p?.address===e?p.message:void 0,{observeDirectory:g,selfName:_}=MF(),v=l?.state.status===`connected`;(0,k.useEffect)(()=>{l!==void 0&&g(l.directory)},[l,g]);let y=(0,k.useRef)(!1),[b,x]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{v&&(_!==void 0||y.current)&&(y.current=_!==void 0,t.sendGossipUpdate(_===void 0?void 0:hM(_)).then(()=>{x(void 0)},e=>{x(e instanceof Error?e.message:String(e))}))},[v,_,t]);let S=l===void 0?`idle`:yI(l),C=l?.directory??[],w=l?.frameLog??[],T=PF(t,v),E=FF(n,l?.state.status===`reconnecting`||C.length>0,bI),D=GF(ZF(e))?.node,O=(0,k.useMemo)(()=>[...u,...gF(i.filter(e=>e.node===D))].sort((e,t)=>e.at-t.at),[u,i,D]);return(0,z.jsxs)(Nd,{withBorder:!0,padding:`md`,radius:`md`,children:[(0,z.jsxs)(pl,{justify:`space-between`,mb:`xs`,children:[(0,z.jsx)(U,{fw:600,children:e}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,disabled:!v,onClick:T.probe,children:`Send ping`}),(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:`light`,onClick:a,children:`Disconnect`})]})]}),(0,z.jsx)(U,{fw:600,size:`sm`,mb:`sm`,children:S}),h===void 0?null:(0,z.jsx)(eu,{color:`yellow`,mb:`sm`,children:h}),b!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`Could not publish your display name`,mb:`sm`,children:b}),l!==void 0&&(0,z.jsx)(lI,{state:l.state,statusSince:d,now:E,policy:r,health:T}),(0,z.jsx)(U,{fw:600,size:`sm`,children:`Peer directory`}),C.length===0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`No gossip received yet.`}):(0,z.jsx)(mI,{columns:xI,rows:C.map(e=>({key:_I(e.device),cells:[(0,z.jsx)(dI,{deviceHex:_I(e.device)},`device`),e.advert.addresses.join(`, `),(0,z.jsx)(Zp,{label:`As the peer advertised it, by its own clock`,children:(0,z.jsx)(`span`,{children:VF(E-e.advert[`snapshot-seconds`]*gI)})},`advertised`),(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{o(e.device)},children:`Message`},`actions`)]}))}),(0,z.jsx)(eI,{activity:O,frameLog:w})]})}var CI=[{label:`device`},{label:`addresses`},{label:`gossiped by`},{label:`actions`,headerless:!0}];function wI({peers:e,onConnect:t,onDismiss:n}){return e.length===0?null:(0,z.jsxs)(Nd,{withBorder:!0,padding:`md`,radius:`md`,"data-testid":`discovered-peers`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mb:`xs`,children:`Discovered peers`}),(0,z.jsx)(U,{size:`sm`,c:`dimmed`,mb:`xs`,children:`Each node below was listed in the directory of a node you are connected to, which is the only thing vouching for it: the address it lists may not be a wire-mesh node at all. Nothing is dialled until you connect.`}),(0,z.jsx)(mI,{columns:CI,rows:e.map(e=>({key:e.key,cells:[(0,z.jsx)(dI,{deviceHex:_I(e.device)},`device`),e.addresses.join(`, `),(0,z.jsxs)(k.Fragment,{children:[e.via.claimedDevice!==void 0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:`claimed to be`}),(0,z.jsx)(dI,{deviceHex:e.via.claimedDevice})]}),(0,z.jsxs)(U,{size:`xs`,c:`dimmed`,children:[`over `,e.via.address]})]},`via`),(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{t(e.key)},children:`Connect`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,color:`red`,onClick:()=>{n(e.key)},children:`Dismiss`})]},`actions`)]}))})]})}function TI({label:e,hashes:t}){return(0,z.jsxs)(`div`,{children:[(0,z.jsx)(U,{size:`sm`,fw:600,children:e}),t.map(e=>(0,z.jsx)(Ld,{block:!0,children:JF(e)},e))]})}function EI({prompt:e}){let{assessment:t,decide:n}=e,r=t.kind===`changed`;return(0,z.jsx)(eu,{color:r?`red`:`blue`,title:r?`Certificate changed for ${t.node}`:`First connection to ${t.node}`,"data-testid":`certificate-prompt`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:r?`This address presents a certificate that shares nothing with the one remembered for this node. The node may have replaced its certificate, or something else may be answering at this address. Only continue if you expected the change.`:`This console has not connected to this node before. Connecting pins the certificate below as the one to expect from it from now on. Compare it with what the node's operator reports before you trust it.`}),r&&(0,z.jsx)(TI,{label:`Remembered`,hashes:t.remembered}),(0,z.jsx)(TI,{label:r?`Presented now`:`Certificate (SHA-256)`,hashes:t.presented}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,color:r?`red`:`blue`,onClick:()=>{n(!0)},children:r?`Trust the new certificate`:`Trust and connect`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{n(!1)},children:`Cancel`})]})]})})}function DI({prompts:e,changes:t,onDismissChange:n}){let r=t.filter(e=>!e.dismissed);return e.length===0&&r.length===0?null:(0,z.jsxs)(rm,{gap:`sm`,"data-testid":`certificate-trust`,children:[e.map(e=>(0,z.jsx)(EI,{prompt:e},e.key)),r.map(e=>(0,z.jsx)(eu,{color:`red`,title:`${e.node} announced different certificates`,withCloseButton:!0,closeButtonLabel:`Dismiss`,onClose:()=>{n(e.key)},children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`The node is still reachable through the certificate you pinned, but it now announces certificates that share nothing with the ones remembered for it, and the announced set is what this console will pin from now on.`}),(0,z.jsx)(TI,{label:`Remembered`,hashes:e.remembered}),(0,z.jsx)(TI,{label:`Announced`,hashes:e.presented})]})},e.key))]})}function OI(e,t){let[n,r]=(0,k.useState)([]),[i,a]=(0,k.useState)([]),o=(0,k.useMemo)(()=>KF(e,e=>{a(n=>[...n,{...e,key:crypto.randomUUID(),at:t.now(),dismissed:!1}])}),[e,t]),s=(0,k.useRef)(new Map),c=(0,k.useRef)(new Map);(0,k.useEffect)(()=>{let e=c.current;return()=>{for(let{refuse:t}of[...e.values()])t()}},[]);let l=(0,k.useCallback)(async e=>{let t=`${e.node} ${[...e.presented].sort().join(`,`)}`,n=s.current.get(t);if(n!==void 0)return n.decision;let i=crypto.randomUUID(),a=new Promise(n=>{let a=!1,o=e=>{a||(a=!0,c.current.get(t)?.promptKey===i&&c.current.delete(t),s.current.get(t)?.promptKey===i&&s.current.delete(t),r(e=>e.filter(e=>e.key!==i)),n(e))};c.current.set(t,{promptKey:i,refuse:()=>{o(!1)}}),r(t=>[...t,{key:i,assessment:e,decide:o}])});return s.current.set(t,{promptKey:i,decision:a}),a},[]);return{prompts:n,changes:i,memory:o,confirmAddress:(0,k.useCallback)(async t=>{let n=GF(t);if(n===void 0)return t;let r=WF(n.node,n.sha256.map(e=>RD(e)),(await e.recall(n.node)).map(e=>RD(e)));if(r.kind===`known`)return JO(t,n.sha256.filter(e=>r.trusted.includes(RD(e))));if(await l(r))return await e.remember(n.node,n.sha256),t},[e,l]),dismissChange:(0,k.useCallback)(e=>{a(t=>t.map(t=>t.key===e?{...t,dismissed:!0}:t))},[])}}function kI({store:e,children:t}){let[n,r]=(0,k.useState)(new Map),[i,a]=(0,k.useState)(new Map),[o,s]=(0,k.useState)(void 0),[c,l]=(0,k.useState)(void 0),u=(0,k.useRef)(Promise.resolve()),d=(0,k.useCallback)(async e=>{u.current=u.current.then(async()=>{try{await e(),l(void 0)}catch(e){l(e instanceof Error?e.message:String(e))}}),await u.current},[]);(0,k.useEffect)(()=>{Promise.all([e.petnames(),e.selfName()]).then(([e,t])=>{r(e),s(t)},e=>{l(e instanceof Error?e.message:String(e))})},[e]);let f=(0,k.useCallback)(async(t,n)=>d(async()=>{await e.setPetname(t,n),r(await e.petnames())}),[e,d]),p=(0,k.useCallback)(async t=>d(async()=>{await e.setSelfName(t),s(await e.selfName())}),[e,d]),m=(0,k.useCallback)(e=>{a(t=>{let n;for(let r of e){let e=mM(r.advert),i=zD(r.device);t.get(i)!==e&&(n??=new Map(t),e===void 0?n.delete(i):n.set(i,e))}return n??t})},[]),h=(0,k.useMemo)(()=>new Set(n.values()),[n]),g=(0,k.useMemo)(()=>({labelOf:e=>gM(e,n.get(e),i.get(e),h),petnameOf:e=>n.get(e),rename:f,selfName:o,setSelfName:p,observeDirectory:m}),[n,h,i,o,f,p,m]);return(0,z.jsxs)(jF.Provider,{value:g,children:[c!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`Saved names are unavailable`,mb:`md`,children:c}),t]})}function AI(){let{selfName:e,setSelfName:t}=MF(),[n,r]=(0,k.useState)(void 0),i=n??e??``;return(0,z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),t(i).then(()=>{r(void 0)})},children:(0,z.jsxs)(pl,{align:`flex-end`,wrap:`wrap`,children:[(0,z.jsx)(Am,{label:`Your display name`,description:`Shown to the peers you connect to, signed by this device's key. Leave empty to show only your short id.`,value:i,maxLength:64,onChange:e=>{r(e.currentTarget.value)},style:{flex:1,minWidth:`16rem`}}),(0,z.jsx)(Ed,{type:`submit`,variant:`light`,disabled:(pM(i)??``)===(e??``),children:`Save name`})]})})}function jI({onDismiss:e}){return(0,z.jsxs)(Nd,{withBorder:!0,padding:`md`,radius:`md`,"data-testid":`onboarding-intro`,children:[(0,z.jsx)(Lm,{order:2,size:`h4`,mb:`xs`,children:`Welcome to the wire-mesh console`}),(0,z.jsxs)(vf,{type:`ordered`,spacing:`xs`,size:`sm`,children:[(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`Connect.`}),` `,`Enter a node's address in the Node field and press Connect. A console served by a node starts with that node's address filled in, so there is usually nothing to type. The status line shows the connection coming up.`]}),(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`See who is here.`}),` `,`Once connected, the node's peer directory lists the devices it knows. Message opens a conversation with one. Devices appear under the name they chose for themselves, or a short id; use the pencil beside a device to give it a name of your own, which only this console keeps.`]}),(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`Discovered peers wait for you.`}),` `,`A node you are connected to can tell you about other nodes. Nothing vouches for those addresses except the node that listed them, and one may not be a wire-mesh node at all, so the console never dials one by itself. Each waits in the Discovered peers list until you press Connect or dismiss it.`]}),(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`Offline.`}),` `,`The console itself loads without a network, and conversations are kept on this device, so history stays readable. Sending needs a route to the peer, through a node or directly; a message that could not be sent stays with its reason until you retry or dismiss it.`]})]}),(0,z.jsx)(Ed,{mt:`md`,size:`xs`,onClick:e,children:`Got it`})]})}function MI(e,t){return e.sentAt===t.sentAt?RD(e.messageId).localeCompare(RD(t.messageId)):e.sentAt-t.sentAt}function NI(e,t){let n=new Set(e.map(e=>RD(e.messageId))),r=t.filter(e=>!n.has(RD(e.messageId)));return r.length===0?e:[...e,...r].sort(MI)}function PI(e,t,n){let r=e.get(t);return r===void 0?e:new Map(e).set(t,n(r))}function FI(e,t){return{roomPath:e,participants:t,direct:void 0,relay:void 0,via:void 0,token:void 0,status:`closed`,messages:[],notices:[],outgoing:[],pendingJoinRequest:void 0,unread:0}}function II(e,t,n){let r=t===void 0?n===void 0?void 0:`hub`:`direct`;return{...e,direct:t,relay:n,via:r,status:r===void 0?`closed`:`connected`}}function LI(e,t){switch(t.type){case`direct-opened`:{let n=e.get(t.roomPath)??FI(t.roomPath,t.participants);return new Map(e).set(t.roomPath,{...II(n,t.session,n.relay),participants:t.participants,notices:[]})}case`relay-opened`:{let n=e.get(t.roomPath)??FI(t.roomPath,t.participants);return new Map(e).set(t.roomPath,II(n,n.direct,t.route))}case`direct-closed`:return PI(e,t.roomPath,e=>II(e,void 0,e.relay));case`hub-closed`:{let n=e;for(let r of e.values())r.relay?.hub===t.hub&&(n=PI(n,r.roomPath,e=>II(e,e.direct,void 0)));return n}case`restored`:return e.get(t.roomPath)===void 0?new Map(e).set(t.roomPath,{...FI(t.roomPath,t.participants),messages:NI([],t.messages)}):PI(e,t.roomPath,e=>({...e,messages:NI(e.messages,t.messages)}));case`notices`:return PI(e,t.roomPath,e=>({...e,notices:t.notices}));case`message`:return PI(e,t.roomPath,e=>{let n=NI(e.messages,[t.message]),r=n!==e.messages;return{...e,messages:n,unread:r&&t.message.direction===`received`?e.unread+1:e.unread}});case`read`:return PI(e,t.roomPath,e=>e.unread===0?e:{...e,unread:0});case`outgoing`:return PI(e,t.roomPath,e=>({...e,outgoing:e.outgoing.some(e=>e.localId===t.entry.localId)?e.outgoing.map(e=>e.localId===t.entry.localId?t.entry:e):[...e.outgoing,t.entry]}));case`outgoing-removed`:return PI(e,t.roomPath,e=>({...e,outgoing:e.outgoing.filter(e=>e.localId!==t.localId)}));case`join-request`:return PI(e,t.roomPath,e=>({...e,pendingJoinRequest:t.request}));case`join-request-settled`:return PI(e,t.roomPath,e=>({...e,pendingJoinRequest:void 0}));case`token`:return PI(e,t.roomPath,e=>({...e,token:t.token}))}return e}function RI(e,t){let n=mP(e);return n.kind===`dm`?n.participants.filter(e=>e!==t):n.owner===t?[]:[n.owner]}function zI(e,t){return e.participants.length===0?e.roomPath:e.participants.map(e=>_M(t.labelOf(e))).join(`, `)}function BI(e){return e.toLowerCase().split(/\s+/).filter(e=>e!==``)}function VI(e,t){let n=e.toLowerCase();return t.every(e=>n.includes(e))}function HI(e,t){let n=BI(t);if(n.length===0)return[];let r=new TextDecoder,i=[];for(let t of e)t.messages.forEach((e,r)=>{VI(e.text,n)&&i.push({key:`${t.roomPath}/message/${String(r)}`,roomPath:t.roomPath,kind:`message`,text:e.text,at:e.sentAt,direction:e.direction})}),t.notices.forEach((e,a)=>{if(e.plaintext===void 0||e.claims===void 0)return;let o=r.decode(e.plaintext);VI(o,n)&&i.push({key:`${t.roomPath}/notice/${String(a)}`,roomPath:t.roomPath,kind:`notice`,text:o,at:e.claims[`posted-at`],direction:void 0})});return i.sort((e,t)=>t.at-e.at).slice(0,50)}function UI({conversations:e,onSelect:t}){let n=MF(),[r,i]=(0,k.useState)(``);if(e.length===0)return null;let a=HI(e,r),o=BI(r).length>0,s=new Map(e.map(e=>[e.roomPath,e]));return(0,z.jsxs)(rm,{gap:`xs`,"data-testid":`search-panel`,children:[(0,z.jsx)(Am,{type:`search`,label:`Search conversations and notices`,value:r,onChange:e=>{i(e.currentTarget.value)}}),o&&a.length===0&&(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Nothing matches.`}),a.map(e=>{let i=s.get(e.roomPath);return(0,z.jsx)(Sf,{label:(0,z.jsx)(nf,{highlight:BI(r),size:`sm`,children:e.text}),description:(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(_d,{size:`xs`,variant:`light`,children:e.kind}),(0,z.jsxs)(U,{size:`xs`,c:`dimmed`,children:[i===void 0?e.roomPath:zI(i,n),` · `,new Date(e.at).toLocaleString()]})]}),onClick:()=>{t(e.roomPath)}},e.key)})]})}var WI=16;function GI(){let e=new Uint8Array(WI);return crypto.getRandomValues(e),e}function KI(e){typeof e==`object`&&e&&`unref`in e&&typeof e.unref==`function`&&Reflect.apply(e.unref,e,[])}function qI(e,t){return{verb:e,params:{verb:`capability.request`,capability:e,...t===void 0?{}:{"valid-until":t}}}}var JI=class extends Error{capability;code;constructor(e,t){super(`capability request for "${e}" was refused (${t})`),this.name=`CapabilityRequestRefusedError`,this.capability=e,this.code=t}};async function YI(e,t,n,r,i,a,o){let s=await e.sendManageRequest(qI(t,a),n,r,o,i);if(s.result!==`ok`)throw new JI(t,s.code);let c=xE.safeParse(s);if(!c.success)throw Error(`capability request for "${t}" response was malformed`);return c.data}var XI=`manage:request`;async function ZI(e,t){if(e.token===void 0)return{ok:!1,code:`token_required`};if(t.revocation===void 0)throw Error(`requireRequestToken needs a revocation view on the handler options`);let n=await jj(e.token,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:t.bearerDevice,...t.extraPredicateResolvers===void 0?{}:{extraPredicateResolvers:t.extraPredicateResolvers}});if(!n.ok)return{ok:!1,code:n.reason};if(n.claims.capability!==`manage:request`)return{ok:!1,code:`capability_mismatch`};let r=n.claims[`requests-capability`];return r!==void 0&&r!==t.capability?{ok:!1,code:`capability_mismatch`}:gk(n.claims.scope,e.scope)?{ok:!0}:{ok:!1,code:`scope_mismatch`}}function QI(e){return async function(t){let n=bE.safeParse(t.command.params);if(!n.success||n.data.capability!==e.capability){await t.respond({result:`error`,code:`malformed`});return}let r=n.data;if(e.requireRequestToken===!0){let n=await ZI(t,e);if(!n.ok){await t.respond({result:`error`,code:n.code});return}}let i=r[`valid-until`];if(i!==void 0&&i<=e.clock.now()){await t.respond({result:`error`,code:`expired`});return}let a=!1,o=setTimeout(()=>{a||(a=!0,t.respond({result:`error`,code:`timeout`,message:`no decision within the capability-request timeout`}).catch(()=>void 0))},e.timeoutMs);KI(o),e.onRequest({scope:t.scope,requesterDevice:e.bearerDevice,async decide(n){if(a)return;if(a=!0,clearTimeout(o),n.kind===`reject`){await t.respond({result:`error`,code:`denied`,...n.reason===void 0?{}:{message:n.reason}});return}let r=await zj({identity:e.identity,clock:e.clock,tokenId:GI(),bearer:e.bearerDevice,capability:n.capability,scope:t.scope,expires:n.expires,...n.delegationsRemaining===void 0?{}:{delegationsRemaining:n.delegationsRemaining}});if(!r.ok){await t.respond({result:`error`,code:`mint_failed`});return}let i=r.token;await t.respond({result:`ok`,"granted-token":i,...n.extensions??{}})}})}}var $I=16,eL=36e5,tL=[{verb:`room:member`,scopeKind:`room`},{verb:`room:join`,scopeKind:`room`},{verb:`room:invite`,scopeKind:`room`},{verb:`webrtc:signal`,scopeKind:`node`},{verb:`relay:use`,scopeKind:`node`},{verb:`pin:write`,scopeKind:`folder`},{verb:`exec:pty`,scopeKind:`folder`},{verb:`exec:proc`,scopeKind:`folder`},{verb:`group:member`,scopeKind:`group`},{verb:wj,scopeKind:`folder`},{verb:XI,scopeKind:`room`}],nL={[wj]:`grantsCapability`,[XI]:`requestsCapability`},rL={invalid_capability:`its capability is not a valid capability verb`,already_expired:`the grant would already have expired`,parent_malformed:`the grant it delegates from is malformed`,parent_bearer_mismatch:`the grant it delegates from is not held by this device`,expires_exceeds_parent:`it would outlast the grant it delegates from`,scope_does_not_narrow:`its scope is wider than the grant it delegates from`,capability_mismatch:`its capability differs from the grant it delegates from`,delegation_exceeds_parent:`it permits more delegation than its parent does`,links_exclusive:`it would carry both a parent grant and an authorising grant`,authorisation_malformed:`the grant authorising it is malformed`,authorisation_parent_forbidden:`a grant permission cannot be delegated from a parent grant`,authorisation_bearer_mismatch:`the grant authorising it is not held by this device`,authorisation_capability_mismatch:`the grant authorising it names a different capability`,authorisation_scope_does_not_narrow:`its scope is wider than the grant authorising it`,authorisation_exceeds_authoriser:`it would outlast the grant authorising it`,authorisation_delegation_exceeds:`it permits more delegation than the grant authorising it does`,authorisation_conditions_not_satisfied:`the grant authorising it does not allow this mint`};function iL(e,t){let n=(t??``).trim();if(n===``)return{ok:!0};let r=nL[e];if(r===void 0)return{ok:!1,error:`only ${wj} and ${XI} name a verb they cover`};let i=iD.safeParse(n);return i.success?{ok:!0,claim:r,verb:i.data}:{ok:!1,error:`the covered verb must look like subsystem:action, for example room:member`}}function aL(){let e=new Uint8Array($I);return crypto.getRandomValues(e),e}async function oL(e,t){let n;try{n=VD(e.bearerHex.trim().toLowerCase())}catch{return{ok:!1,error:`the bearer must be a 64-character hex device-id`}}let r=iD.safeParse(e.capability.trim());if(!r.success)return{ok:!1,error:`the capability must look like subsystem:action, for example room:member`};if(e.scopeKind.trim()===``)return{ok:!1,error:`the scope needs a kind, for example room`};if(!Number.isFinite(e.lifetimeHours)||e.lifetimeHours<=0)return{ok:!1,error:`the lifetime must be more than zero hours`};if(e.delegationsRemaining!==void 0&&!(Number.isSafeInteger(e.delegationsRemaining)&&e.delegationsRemaining>=0))return{ok:!1,error:`further delegations must be a whole number, zero or more`};let i=iL(r.data,e.targetVerb);if(!i.ok)return i;let a=e.selfGrantBars??[];if(a.length>0&&r.data!==`manage:grant`)return{ok:!1,error:`only a ${wj} can bar its holder from granting to itself`};let o=[];for(let e of a){let t=iD.safeParse(e.trim());if(!t.success)return{ok:!1,error:`the barred verb "${e}" must look like subsystem:action`};o.push(hj(t.data,n))}let s=e.scopePath.trim(),c=await zj({identity:t.identity,clock:t.clock,tokenId:aL(),bearer:n,capability:r.data,scope:{kind:e.scopeKind.trim(),...s===``?{}:{path:s}},expires:Math.round(t.clock.now()+e.lifetimeHours*eL),...e.delegationsRemaining===void 0?{}:{delegationsRemaining:e.delegationsRemaining},...e.parent===void 0?{}:{parent:e.parent},...e.authorisedBy===void 0?{}:{authorisedBy:e.authorisedBy},...i.claim===void 0||i.verb===void 0?{}:{[i.claim]:i.verb},...o.length===0?{}:{conditions:o}});return c.ok?{ok:!0,token:c.token}:{ok:!1,error:`refused: ${rL[c.reason]}`}}var sL=3e4;function cL(e){let{identity:t,clock:n,grants:r,revocations:i,announce:a}=e,[o,s]=(0,k.useState)([]),[c,l]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{let e={cancelled:!1,latestLoad:0},a=async()=>{e.latestLoad+=1;let a=e.latestLoad,o=await r.list(),c=await Promise.all(o.map(async e=>({...e,status:await qj(e.token,{identity:t,clock:n,revocation:i.view,...e.direction===`held`?{expectedBearer:t.deviceId}:{}})})));!e.cancelled&&a===e.latestLoad&&(s(c),l(void 0))},o=()=>{a().catch(t=>{e.cancelled||l(t instanceof Error?t.message:String(t))})};o();let c=[r.subscribe(o),i.subscribe(o)],u=setInterval(o,sL);return()=>{e.cancelled=!0,clearInterval(u);for(let e of c)e()}},[t,n,r,i]);let u=(0,k.useCallback)(async e=>{let i=await oL(e,{identity:t,clock:n});return i.ok?(await r.record(`issued`,i.token,n.now()),{ok:!0,code:Gj(i.token)}):i},[t,n,r]),d=(0,k.useCallback)(async e=>{let a;try{a=Kj(e)}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}let o=await qj(a,{identity:t,clock:n,revocation:i.view,expectedBearer:t.deviceId});return o.kind===`invalid`?{ok:!1,error:`this device cannot hold that grant: ${Yj(o)}`}:(await r.record(`held`,a,n.now()),{ok:!0})},[t,n,r,i]),f=(0,k.useCallback)(async e=>{try{let t=await i.revoke(e.claims[`token-id`]);return{ok:!0,announced:await a(t)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}},[i,a]);return(0,k.useMemo)(()=>({rows:o,loadError:c,mint:u,importCode:d,revoke:f}),[o,c,u,d,f])}function lL({label:e,children:t}){return(0,z.jsxs)(U,{size:`sm`,children:[(0,z.jsxs)(U,{span:!0,fw:600,children:[e,`:`]}),` `,t]})}function uL({row:e}){let{claims:t}=e,n=Gj(e.token);return(0,z.jsxs)(rm,{gap:4,"data-testid":`grant-details`,children:[(0,z.jsx)(lL,{label:`Token id`,children:(0,z.jsx)(Ld,{children:e.tokenId})}),(0,z.jsx)(lL,{label:`Issuer`,children:(0,z.jsx)(QF,{deviceHex:zD(t.issuer)})}),(0,z.jsx)(lL,{label:`Bearer`,children:(0,z.jsx)(QF,{deviceHex:zD(t.bearer)})}),(0,z.jsxs)(lL,{label:`Allows`,children:[t.capability,` over `,t.scope.kind,t.scope.path===void 0?``:` ${t.scope.path}`]}),(0,z.jsx)(lL,{label:`Expires`,children:new Date(t.expires).toISOString()}),t[`not-before`]!==void 0&&(0,z.jsx)(lL,{label:`Not before`,children:new Date(t[`not-before`]).toISOString()}),t[`delegations-remaining`]!==void 0&&(0,z.jsx)(lL,{label:`Further delegations`,children:t[`delegations-remaining`]}),t.parent!==void 0&&(0,z.jsx)(lL,{label:`Delegated from`,children:`another grant (its parent rides inside this one)`}),(0,z.jsx)(lL,{label:`Status`,children:Yj(e.status)}),(0,z.jsx)(df,{readOnly:!0,label:`Grant code`,description:`Paste this into the other device's grant import to give it this grant.`,value:n,autosize:!0,minRows:2,maxRows:4}),(0,z.jsx)(zd,{value:n,children:({copied:e,copy:t})=>(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:t,w:`fit-content`,children:e?`Copied`:`Copy grant code`})})]})}function dL(e,t){return e>t?HF(e-t):VF(t-e)}function fL({title:e,rows:t,other:n,now:r,onRevoke:i}){let[a,o]=(0,k.useState)(void 0),[s,c]=(0,k.useState)(void 0);return(0,z.jsxs)(`div`,{"data-testid":`grants-${e.toLowerCase()}`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`sm`,children:e}),t.length===0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`None.`}):(0,z.jsx)(mI,{columns:[{label:`capability`},{label:`over`},{label:n===`issuer`?`from`:`to`},{label:`expires`},{label:`status`},{label:`actions`,headerless:!0}],rows:t.map(e=>({key:`${e.direction}/${e.tokenId}`,cells:[e.claims.capability,`${e.claims.scope.kind}${e.claims.scope.path===void 0?``:` ${e.claims.scope.path}`}`,(0,z.jsx)(dI,{deviceHex:zD(e.claims[n])},`other`),dL(e.claims.expires,r),(0,z.jsx)(_d,{color:e.status.kind===`valid`?`green`:`red`,variant:`light`,children:Yj(e.status)},`status`),(0,z.jsxs)(k.Fragment,{children:[(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{o(a===e.tokenId?void 0:e.tokenId)},children:a===e.tokenId?`Hide`:`Inspect`}),i!==void 0&&e.status.kind===`valid`&&(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:s===e.tokenId?`filled`:`light`,onClick:()=>{s===e.tokenId?(c(void 0),i(e)):c(e.tokenId)},children:s===e.tokenId?`Confirm: revoke for good`:`Revoke`})]}),a===e.tokenId&&(0,z.jsx)(uL,{row:e})]},`actions`)]}))})]})}function pL({onImport:e}){let[t,n]=(0,k.useState)(``),[r,i]=(0,k.useState)(void 0);return(0,z.jsx)(`form`,{onSubmit:r=>{r.preventDefault(),e(t).then(e=>{i(e),e.ok&&n(``)})},children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`md`,children:`Add a grant you were given`}),(0,z.jsx)(df,{label:`Grant code`,value:t,onChange:e=>{n(e.currentTarget.value)},autosize:!0,minRows:2,maxRows:4,required:!0}),(0,z.jsx)(Ed,{type:`submit`,size:`xs`,w:`fit-content`,children:`Add grant`}),r?.ok===!1&&(0,z.jsx)(eu,{color:`red`,title:`Not added`,children:r.error}),r?.ok===!0&&(0,z.jsx)(eu,{color:`green`,title:`Grant added`,children:`It is listed under Held.`})]})})}var mL=24,hL=`root`,gL=`none`;function _L(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function vL({delegable:e,onMint:t}){let[n,r]=(0,k.useState)(``),[i,a]=(0,k.useState)(``),[o,s]=(0,k.useState)(``),[c,l]=(0,k.useState)(``),[u,d]=(0,k.useState)(mL),[f,p]=(0,k.useState)(``),[m,h]=(0,k.useState)(hL),[g,_]=(0,k.useState)(gL),[v,y]=(0,k.useState)(``),[b,x]=(0,k.useState)(``),[S,C]=(0,k.useState)(void 0),w=e.find(e=>e.tokenId===m),T=e.find(e=>e.tokenId===g),E=e.filter(e=>e.claims.capability===wj),D=i===`manage:grant`||i===`manage:request`;function O(){if(m!==hL&&w===void 0){C({ok:!1,error:`the grant you chose to delegate from is no longer valid; choose another, or choose Root grant to mint without one`});return}if(g!==gL&&T===void 0){C({ok:!1,error:`the grant you chose to authorise this is no longer valid; choose another, or choose None to mint without one`});return}t({bearerHex:n,capability:i,scopeKind:o,scopePath:c,lifetimeHours:u,delegationsRemaining:f===``?void 0:f,parent:w?.token,authorisedBy:T?.token,targetVerb:D?v:``,selfGrantBars:i===`manage:grant`?_L(b):[]}).then(C,e=>{C({ok:!1,error:e instanceof Error?e.message:String(e)})})}return(0,z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),O()},children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`md`,children:`Mint a grant`}),(0,z.jsx)(Am,{label:`Bearer device-id`,description:`The device the grant is for: 64 hex characters, copied from a peer's directory row.`,value:n,onChange:e=>{r(e.currentTarget.value)},required:!0}),(0,z.jsx)(md,{label:`Capability`,description:`What it allows, as subsystem:action.`,data:tL.map(e=>e.verb),value:i,onChange:e=>{a(e);let t=tL.find(t=>t.verb===e);t!==void 0&&s(t.scopeKind)},required:!0}),(0,z.jsx)(Am,{label:`Scope kind`,value:o,onChange:e=>{s(e.currentTarget.value)},required:!0}),(0,z.jsx)(Am,{label:`Scope path`,description:`Leave empty for a scope with no path.`,value:c,onChange:e=>{l(e.currentTarget.value)}}),D&&(0,z.jsx)(Am,{label:`Covered verb`,description:i===`manage:grant`?`The one verb the holder may grant, as subsystem:action. Empty means any verb within the scope.`:`The one verb the holder may request, as subsystem:action. Empty means any verb within the scope.`,value:v,onChange:e=>{y(e.currentTarget.value)}}),i===`manage:grant`&&(0,z.jsx)(Am,{label:`Barred from granting to itself`,description:`Comma-separated verbs the holder may not grant to its own device, for example manage:grant to stop it passing on the right to grant.`,value:b,onChange:e=>{x(e.currentTarget.value)}}),(0,z.jsx)(Lp,{label:`Lasts (hours)`,min:0,value:u,onChange:e=>{d(typeof e==`number`?e:0)}}),(0,z.jsx)(Lp,{label:`Further delegations`,description:`How many times the bearer may pass it on. Empty leaves it unset.`,min:0,allowDecimal:!1,value:f,onChange:e=>{p(typeof e==`number`?e:``)}}),(0,z.jsx)($p,{label:`Delegate from`,description:`A grant you hold, which the new grant may only narrow. Root means none.`,allowDeselect:!1,data:[{value:hL,label:`Root grant (none)`},...e.map(e=>({value:e.tokenId,label:`${e.claims.capability} from ${dM(zD(e.claims.issuer))}`}))],value:m,onChange:e=>{h(e??hL)}}),(0,z.jsx)($p,{label:`Authorised by`,description:`A manage:grant you hold that permits this mint; it may bar what you can grant. None means this grant is minted on your own authority.`,allowDeselect:!1,data:[{value:gL,label:`None`},...E.map(e=>({value:e.tokenId,label:`manage:grant from ${dM(zD(e.claims.issuer))}`}))],value:g,onChange:e=>{_(e??gL)}}),(0,z.jsx)(Ed,{type:`submit`,size:`xs`,w:`fit-content`,children:`Mint grant`}),S?.ok===!1&&(0,z.jsx)(eu,{color:`red`,title:`Not minted`,children:S.error}),S?.ok===!0&&(0,z.jsx)(eu,{color:`green`,title:`Grant minted`,children:`It is listed under Issued, where Inspect shows its grant code.`})]})})}var yL=1e3;function bL(e){if(!e.ok)return{color:`red`,title:`Not revoked`,text:e.error};let{attempted:t,reached:n}=e.announced;return t===0?{color:`yellow`,title:`Revoked here only`,text:`No connection was open, so no node was told. This console no longer honours the grant.`}:n<t?{color:`yellow`,title:`Revoked, but not every node was told`,text:`Sent to ${String(n)} of ${String(t)} connected nodes. This console no longer honours the grant.`}:{color:`green`,title:`Revoked`,text:`Sent to ${String(n)} connected ${n===1?`node`:`nodes`}. This console no longer honours the grant.`}}function xL({grants:e,clock:t}){let n=FF(t,!0,yL),[r,i]=(0,k.useState)(void 0),a=r===void 0?void 0:bL(r),o=e.rows.filter(e=>e.direction===`held`),s=e.rows.filter(e=>e.direction===`issued`);return(0,z.jsxs)(rm,{gap:`xs`,"data-testid":`grants-panel`,children:[(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`A grant is a signed statement that one device may do something over something until a time. Revoking one you issued is recorded here, where this console stops honouring it at once, and sent to the nodes you are connected to. A node only passes it on if it relays revocations, which the hub does not.`}),e.loadError!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`Grants could not be read`,children:e.loadError}),(0,z.jsx)(fL,{title:`Held`,rows:o,other:`issuer`,now:n}),(0,z.jsx)(fL,{title:`Issued`,rows:s,other:`bearer`,now:n,onRevoke:t=>{e.revoke(t).then(i,e=>{i({ok:!1,error:e instanceof Error?e.message:String(e)})})}}),a!==void 0&&(0,z.jsx)(eu,{color:a.color,title:a.title,"data-testid":`revocation-report`,children:a.text}),(0,z.jsx)(vL,{delegable:o.filter(e=>e.status.kind===`valid`),onMint:e.mint}),(0,z.jsx)(pL,{onImport:e.importCode})]})}var SL=6e4;function CL(e,t){let n=URL.createObjectURL(new Blob([t],{type:`application/json`})),r=document.createElement(`a`);r.href=n,r.download=e,r.hidden=!0,document.body.append(r),r.click(),r.remove(),setTimeout(()=>{URL.revokeObjectURL(n)},SL)}var wL=`wire-mesh-console-identity.json`,TL=2;function EL(){location.reload()}function DL({identity:e,backup:t,save:n=CL,reload:r=EL}){let i=zD(e.deviceId),[a,o]=(0,k.useState)({kind:`idle`}),[s,c]=(0,k.useState)(!1);async function l(){try{n(wL,JSON.stringify(await t.export(),void 0,TL)),o({kind:`exported`})}catch(e){o({kind:`error`,message:e instanceof Error?e.message:String(e)})}}async function u(e){try{await t.restore(e),o({kind:`restored`})}catch(e){o({kind:`error`,message:e instanceof Error?e.message:String(e)})}}async function d(e){if(e!==null)try{o({kind:`confirm-restore`,backup:await lk(await e.text())})}catch(e){o({kind:`error`,message:e instanceof Error?e.message:String(e)})}}return(0,z.jsxs)(rm,{gap:`xs`,"data-testid":`identity-panel`,children:[(0,z.jsxs)(U,{size:`sm`,children:[`This device is `,(0,z.jsx)(Ld,{"data-testid":`own-device-id`,children:i}),` `,(0,z.jsx)(zd,{value:i,children:({copied:e,copy:t})=>(0,z.jsx)(Ed,{size:`compact-xs`,variant:`subtle`,onClick:t,children:e?`Copied`:`Copy device id`})})]}),(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Its key is ES256 (P-256) and lives in this browser. If this browser's storage is cleared or the device is lost, the identity is gone, along with every grant made to it. A backup file lets you keep it.`}),a.kind===`confirm-export`&&(0,z.jsx)(eu,{color:`orange`,title:`This file holds your private key`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`Anyone who has it can act as this device. Save it somewhere private, and do not send it to anyone. The console does not show the key or keep a copy of the file.`}),(0,z.jsx)(od,{label:`I understand, and I want a backup file`,checked:s,onChange:e=>{c(e.currentTarget.checked)}}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,color:`orange`,disabled:!s,onClick:()=>{l()},children:`Save backup file`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{o({kind:`idle`})},children:`Cancel`})]})]})}),a.kind===`exported`&&(0,z.jsxs)(eu,{color:`green`,title:`Backup file handed to your browser`,children:[(0,z.jsx)(U,{size:`sm`,children:`The browser was asked to save it, and may have asked where. Check that the file is there before you rely on it.`}),(0,z.jsx)(U,{size:`sm`,children:`Keep it private. Restoring it on another browser makes that browser this device.`})]}),a.kind===`confirm-restore`&&(0,z.jsx)(eu,{color:`red`,title:`Replace this device's identity?`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsxs)(U,{size:`sm`,children:[`This device is now `,(0,z.jsx)(Ld,{children:i}),`. The backup is`,` `,(0,z.jsx)(Ld,{children:a.backup.deviceId}),`. Restoring makes this browser the backup's device the next time the console loads, and this identity, with the grants made to it, is gone unless you have a backup of it.`]}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,color:`red`,onClick:()=>{u(a.backup)},children:`Replace this identity`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{o({kind:`idle`})},children:`Cancel`})]})]})}),a.kind===`restored`&&(0,z.jsx)(eu,{color:`green`,title:`Identity restored`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`Reload the console to run as the restored identity.`}),(0,z.jsx)(Ed,{size:`xs`,w:`fit-content`,onClick:r,children:`Reload now`})]})}),a.kind===`error`&&(0,z.jsx)(eu,{color:`red`,title:`That did not work`,children:a.message}),(a.kind===`idle`||a.kind===`exported`||a.kind===`error`)&&(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{c(!1),o({kind:`confirm-export`})},children:`Back up this identity`}),(0,z.jsx)(Wd,{accept:`application/json,.json`,onChange:e=>{d(e)},children:e=>(0,z.jsx)(Ed,{size:`xs`,variant:`light`,color:`red`,...e,children:`Restore from a backup file`})})]})]})}function OL({identity:e,clock:t,grants:n,revocations:r,identityBackup:i,announceRevocation:a}){let o=cL({identity:e,clock:t,grants:n,revocations:r,announce:a});return(0,z.jsxs)(Zl,{multiple:!0,variant:`contained`,"data-testid":`identity-section`,children:[(0,z.jsxs)(Zl.Item,{value:`identity`,children:[(0,z.jsx)(Zl.Control,{children:`Identity`}),(0,z.jsx)(Zl.Panel,{children:(0,z.jsx)(DL,{identity:e,backup:i})})]}),(0,z.jsxs)(Zl.Item,{value:`grants`,children:[(0,z.jsx)(Zl.Control,{children:`Grants`}),(0,z.jsx)(Zl.Panel,{children:(0,z.jsx)(xL,{grants:o,clock:t})})]})]})}function kL({revocations:e,onFailure:t}){let n=(0,k.useSyncExternalStore)(e.subscribe,e.unreadable);return n.length===0?null:(0,z.jsx)(eu,{color:`red`,title:`Some stored revocations could not be loaded`,"data-testid":`unreadable-revocations`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`A grant that one of these revoked may read as valid until it is dealt with. Discarding an entry deletes it from this console's storage.`}),n.map(n=>(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsxs)(U,{size:`sm`,children:[n.key,`: `,n.reason]}),(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:`light`,onClick:()=>{e.discardUnreadable(n.key).catch(e=>{t(e instanceof Error?e.message:String(e))})},children:`Discard`})]},n.key))]})})}function AL(e){return e instanceof Error?e.message:String(e)}function jL(e){let[t,n]=(0,k.useState)(void 0),[r,i]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{e.introDismissed().then(n,e=>{n(!1),i(AL(e))})},[e]);let a=(0,k.useCallback)(t=>{n(t),e.setIntroDismissed(t).then(()=>{i(void 0)},e=>{i(AL(e))})},[e]),o=(0,k.useCallback)(()=>{a(!0)},[a]),s=(0,k.useCallback)(()=>{a(!1)},[a]);return{visible:t===!1,ready:t!==void 0,error:r,dismiss:o,show:s}}function ML({conversations:e,selected:t,onSelect:n}){let r=MF();return e.length===0?null:(0,z.jsxs)(rm,{gap:0,"data-testid":`conversation-list`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mb:`xs`,children:`Conversations`}),e.map(e=>(0,z.jsx)(Sf,{active:e.roomPath===t,label:zI(e,r),description:e.status===`connected`?void 0:`offline`,rightSection:(0,z.jsxs)(pl,{gap:4,wrap:`nowrap`,children:[e.pendingJoinRequest!==void 0&&(0,z.jsx)(_d,{color:`blue`,size:`sm`,children:`request`}),e.unread>0&&(0,z.jsx)(_d,{size:`sm`,"aria-label":`${String(e.unread)} unread`,children:e.unread})]}),onClick:()=>{n(e.roomPath)}},e.roomPath))]})}function NL({placeholder:e,ariaLabel:t,submitLabel:n,onSubmit:r,onCancel:i,size:a,autoFocus:o}){let[s,c]=(0,k.useState)(``),[l,u]=(0,k.useState)(void 0);function d(){let e=s.trim();e!==``&&(u(void 0),Promise.resolve(r(e)).then(()=>{c(``)}).catch(e=>{u(e instanceof Error?e.message:String(e))}))}function f(e){e.key===`Enter`&&d(),e.key===`Escape`&&i?.()}return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(pl,{gap:`xs`,flex:1,children:[(0,z.jsx)(Am,{flex:1,...a===void 0?{}:{size:a},placeholder:e,"aria-label":t,autoComplete:`off`,autoFocus:o,value:s,onChange:e=>{c(e.currentTarget.value)},onKeyDown:f}),(0,z.jsx)(Ed,{...a===void 0?{}:{size:a},onClick:d,children:n})]}),l!==void 0&&(0,z.jsx)(U,{size:`sm`,c:`red`,children:l})]})}var PL=`You`,FL=256,IL=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`});function LL({sentAt:e}){return(0,z.jsx)(U,{component:`time`,size:`xs`,c:`dimmed`,dateTime:new Date(e).toISOString(),children:IL.format(e)})}function RL({messages:e,outgoing:t,peerLabel:n,onRetry:r,onDiscard:i}){let a=(0,k.useRef)(null);return(0,k.useEffect)(()=>{let e=a.current;e!==null&&(e.scrollTop=e.scrollHeight)},[e,t]),(0,z.jsx)(Gs,{h:FL,viewportRef:a,children:(0,z.jsxs)(rm,{gap:4,children:[e.map((t,r)=>{let i=t.direction===`sent`,a=r===0||e[r-1]?.direction!==t.direction;return(0,z.jsxs)(rm,{gap:0,align:i?`flex-end`:`flex-start`,mt:a?`xs`:0,children:[a&&(0,z.jsx)(U,{size:`xs`,fw:600,c:`dimmed`,children:i?PL:n}),(0,z.jsx)(U,{size:`sm`,children:t.text}),(0,z.jsx)(LL,{sentAt:t.sentAt})]},RD(t.messageId))}),t.map(e=>(0,z.jsxs)(rm,{gap:0,align:`flex-end`,mt:`xs`,children:[(0,z.jsx)(U,{size:`xs`,fw:600,c:`dimmed`,children:PL}),(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:e.text}),e.status===`failed`?(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(U,{size:`xs`,c:`red`,children:`Not sent: ${e.error}`}),(0,z.jsx)(Ed,{size:`compact-xs`,variant:`light`,onClick:()=>{r(e.localId)},children:`Retry`}),(0,z.jsx)(Ed,{size:`compact-xs`,variant:`subtle`,color:`gray`,onClick:()=>{i(e.localId)},children:`Dismiss`})]}):(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:e.status===`awaiting-approval`?`Waiting for ${n} to allow messages`:`Sending`})]},e.localId))]})})}function zL(e){if(e.plaintext!==void 0)return new TextDecoder().decode(e.plaintext)}function BL({notices:e}){if(e.length===0)return null;let t=e.map((e,t)=>{let n=zL(e);return(0,z.jsx)(H,{children:n===void 0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,fs:`italic`,children:`encrypted notice -- no key held for its epoch`}):(0,z.jsx)(U,{size:`sm`,children:n})},t)});return(0,z.jsxs)(rm,{gap:4,children:[t,(0,z.jsxs)(_d,{variant:`light`,color:`gray`,size:`sm`,w:`fit-content`,children:[e.length,` notice`,e.length===1?``:`s`]})]})}var VL=864e5;function HL(e){return e===`direct`?`direct`:e===`hub`?`via hub`:`offline`}function UL({view:e,onSend:t,onPostNotice:n,onRetry:r,onDiscard:i}){let a=MF();return(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsx)(U,{fw:600,"data-testid":`conversation-header`,children:zI(e,a)}),(0,z.jsx)(U,{size:`sm`,c:e.status===`connected`?`green`:`dimmed`,children:HL(e.via)})]}),e.pendingJoinRequest&&(0,z.jsx)(eu,{color:`blue`,title:`Message request`,children:(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsxs)(U,{size:`sm`,children:[(0,z.jsx)(QF,{deviceHex:e.pendingJoinRequest.requesterHex}),` `,`wants to message you`]}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{e.pendingJoinRequest?.decide({kind:`accept`,capability:`room:member`,expires:Date.now()+VL})},children:`Allow`}),(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:`light`,onClick:()=>{e.pendingJoinRequest?.decide({kind:`reject`})},children:`Deny`})]})]})}),(0,z.jsx)(RL,{messages:e.messages,outgoing:e.outgoing,peerLabel:zI(e,a),onRetry:r,onDiscard:i}),(0,z.jsx)(pl,{children:(0,z.jsx)(NL,{ariaLabel:`Message`,placeholder:`Message`,submitLabel:`Send`,onSubmit:t})}),(0,z.jsx)(Ud,{label:`Durable notices (encrypted, replicated)`,labelPosition:`center`}),(0,z.jsx)(BL,{notices:e.notices}),e.via===void 0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Durable notices can be posted while the conversation is connected.`}):(0,z.jsx)(pl,{children:(0,z.jsx)(NL,{ariaLabel:`Post a durable notice`,placeholder:`Post a durable notice`,submitLabel:`Post notice`,onSubmit:n})})]})}var WL=`room:member`;async function GL(e,t){let n=await jj(e,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:t.expectedBearer});if(!n.ok)return n;if(n.claims.scope.kind!==`room`)return{ok:!1,reason:`wrong_scope_kind`};if(n.claims.scope.path!==t.roomPath)return{ok:!1,reason:`wrong_scope_path`};let r=mP(t.roomPath),i=zD(n.rootIssuer);if(r.kind===`owner-named`){if(i!==r.owner)return{ok:!1,reason:`wrong_chain_root`}}else if(t.dmRootPolicy===`either-participant`){if(i!==r.participants[0]&&i!==r.participants[1])return{ok:!1,reason:`wrong_chain_root`}}else if(i!==zD(t.identity.deviceId))return{ok:!1,reason:`wrong_chain_root`};return{ok:!0,claims:n.claims,rootIssuerKey:n.rootIssuerKey}}async function KL(e,t,n,r){let i=(await e.list()).filter(e=>{let t=e.claims;if(e.direction!==`held`||t.capability!==`manage:request`)return!1;let i=t[`requests-capability`];return i!==void 0&&i!==n?!1:gk(t.scope,r)}),a=async e=>{let[n,...r]=e;if(n!==void 0)return(await qj(n.token,t)).kind===`valid`?n.token:a(r)};return a(i)}function qL(e){if(e instanceof JI)switch(e.code){case`denied`:return`the other side denied the request`;case`token_required`:return`the other side only accepts requests that present a request permission, and this device holds none that covers this one`;case`capability_mismatch`:return`the request permission presented does not cover this capability`;case`scope_mismatch`:return`the request permission presented does not cover this conversation`;default:return`the request permission presented was refused (${e.code})`}}function JL(e){return async function(t){if(t.command.verb!==e.capability){await t.respond({result:`error`,code:`malformed`});return}let n=SE.safeParse(t.command.params);if(!n.success){await t.respond({result:`error`,code:`malformed`});return}let r=n.data[`granted-token`],i=await jj(r,{identity:e.identity,clock:e.clock,revocation:e.revocation,expectedBearer:e.identity.deviceId});if(!i.ok){await t.respond({result:`error`,code:i.reason});return}if(i.claims.capability!==e.capability){await t.respond({result:`error`,code:`capability_mismatch`});return}if(!gk(i.claims.scope,t.scope)){await t.respond({result:`error`,code:`scope_mismatch`});return}await t.respond({result:`ok`}),e.onGrant({capability:e.capability,grantedToken:r,scope:t.scope,granterDevice:e.granterDevice})}}var YL=16;function XL(){let e=new Uint8Array(YL);return crypto.getRandomValues(e),e}var ZL=3e5;function QL(e,t,n){return{verb:WL,params:{verb:`room.send`,"message-id":t,"sent-at":n,text:e}}}async function $L(e,t,n,{token:r,targetDevice:i}){let a=QL(n,XL(),Date.now());return e.sendManageRequest(a,{kind:`room`,path:t},i,r)}async function eR(e,t,{targetDevice:n,requestToken:r}={}){let i;try{i=await YI(e,WL,{kind:`room`,path:t},n,void 0,void 0,r)}catch(e){let t=qL(e);throw t===void 0?e:Error(t)}let a=BE.safeParse(i);if(!a.success)throw Error(`room.join response for ${t} was malformed`);return{token:a.data[`granted-token`],members:a.data.members.map(e=>e.device)}}function tR(e,t,n){async function r(e,r){let i=e.scope.path;if(i===void 0||e.token===void 0){await e.respond({result:`error`,code:`unauthorized`});return}if(!(await GL(e.token,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:t.peerDevice,roomPath:i})).ok){await e.respond({result:`error`,code:`unauthorized`});return}await e.respond({result:`ok`});let a=r[`message-id`],o=r[`sent-at`],s=r.text;a instanceof Uint8Array&&typeof o==`number`&&typeof s==`string`&&n.onMessage?.({roomPath:i,text:s,messageId:a,sentAt:o})}function i(e){return async n=>{if(n.kind===`reject`){let t={kind:`reject`,...n.reason===void 0?{}:{reason:n.reason}};await e.decide(t);return}let r=[...t.currentMembers?.()??[],t.peerDevice].map(e=>({device:e})),i={kind:`accept`,capability:n.capability,expires:n.expires,...n.delegationsRemaining===void 0?{}:{delegationsRemaining:n.delegationsRemaining},extensions:{members:r}};await e.decide(i)}}let a=QI({capability:WL,identity:t.identity,clock:t.clock,bearerDevice:t.peerDevice,timeoutMs:t.joinRequestTimeoutMs??ZL,onRequest(e){let t=e.scope.path,r=n.onJoinRequest;if(t===void 0||r===void 0){e.decide({kind:`reject`,reason:`unsupported verb`});return}r({roomPath:t,requesterDevice:e.requesterDevice,decide:i(e)})}});async function o(e){if(e.scope.path===void 0){await e.respond({result:`error`,code:`missing_scope_path`});return}if(n.onJoinRequest===void 0){await e.respond({result:`error`,code:`unsupported_verb`});return}await a({...e,respond:async t=>{if(t.result===`ok`){let e=dD.safeParse(t[`granted-token`]);e.success&&n.onGrantIssued?.(e.data)}await e.respond(t)}})}let s=JL({capability:WL,identity:t.identity,clock:t.clock,revocation:t.revocation,granterDevice:t.peerDevice,onGrant(e){let t=e.scope.path,r=n.onRoomInvite;t!==void 0&&r!==void 0&&r({roomPath:t,granterDevice:e.granterDevice,token:e.grantedToken})}});async function c(e){if(e.scope.path===void 0){await e.respond({result:`error`,code:`missing_scope_path`});return}if(n.onRoomInvite===void 0){await e.respond({result:`error`,code:`unsupported_verb`});return}await s(e)}(async()=>{for await(let t of e.incomingManageRequests){if(t.command.verb!==`room:member`)continue;let e=t.command.params;typeof e==`object`&&`verb`in e&&(e.verb===`room.send`?await r(t,e):e.verb===`capability.request`?await o(t):e.verb===`capability.grant`?await c(t):e.verb===`room.rekey`&&n.onRekey!==void 0&&await n.onRekey(t))}})()}var nR=`room-key/`,rR=`room-token/`,iR=`room-key-delivered/`,aR=String(2**53-1).length;function oR(e,t){return`${nR}${e}/${String(t).padStart(aR,`0`)}`}function sR(e){return{get:async(t,n)=>e.get(oR(t,n)),set:async(t,n,r)=>{await e.set(oR(t,n),new Uint8Array(r))},currentEpoch:async t=>{let n=(await e.keys(`${nR}${t}/`)).sort().at(-1);return n===void 0?void 0:Number(n.slice(n.lastIndexOf(`/`)+1))}}}function cR(e,t,n,r){return{get:async i=>{let a=rR+i,o=await e.get(a);if(o===void 0)return;let s=dD.safeParse(b_(o,x_));if(s.success&&(await jj(s.data,{identity:t,clock:n,revocation:r,expectedBearer:t.deviceId})).ok)return s.data;await e.delete(a)},set:async(t,n)=>{await e.set(rR+t,new Uint8Array(Mg(n,hg)))},rooms:async()=>(await e.keys(rR)).map(e=>e.slice(11))}}function lR(e){return{isDelivered:async t=>await e.get(iR+t)!==void 0,markDelivered:async t=>{await e.set(iR+t,new Uint8Array([1]))}}}var uR=32,dR=256,fR=12,pR=4,mR=8,hR=new TextEncoder().encode(`wire-mesh/room-rekey/v1\0`);function gR(){return crypto.getRandomValues(new Uint8Array(uR))}function _R(e){let t=new TextEncoder().encode(e.room),n=new Uint8Array(pR);new DataView(n.buffer).setUint32(0,t.length,!1);let r=new Uint8Array(mR);new DataView(r.buffer).setBigUint64(0,BigInt(e.keyEpoch),!1);let i=new Uint8Array(hR.length+n.length+t.length+r.length),a=0;return i.set(hR,a),a+=hR.length,i.set(n,a),a+=n.length,i.set(t,a),a+=t.length,i.set(r,a),i}async function vR(e,t){let n=await crypto.subtle.importKey(`raw`,Uint8Array.from(e),`HKDF`,!1,[`deriveKey`]);return crypto.subtle.deriveKey({name:`HKDF`,hash:`SHA-256`,salt:Uint8Array.from(new Uint8Array),info:Uint8Array.from(_R(t))},n,{name:`AES-GCM`,length:dR},!1,[`encrypt`,`decrypt`])}async function yR(e,t){let n=crypto.getRandomValues(new Uint8Array(fR)),r=new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},e,Uint8Array.from(t))),i=new Uint8Array(n.length+r.length);return i.set(n,0),i.set(r,n.length),i}async function bR(e,t){if(t.length<fR)throw Error(`ciphertext shorter than the AES-GCM IV it must carry`);let n=t.slice(0,fR),r=t.slice(fR);return new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:n},e,r))}async function xR(e,t){return yR(e,t)}async function SR(e,t){return bR(e,t)}async function CR(e){return crypto.subtle.importKey(`raw`,Uint8Array.from(e),`AES-GCM`,!1,[`encrypt`,`decrypt`])}async function wR(e,t){return yR(await CR(e),t)}async function TR(e,t){return bR(await CR(e),t)}var ER=`+aes256gcm`;function DR(e){return kR(e)?e:`${e}${ER}`}function OR(e){return kR(e)?e.slice(0,e.length-10):e}function kR(e){return e.endsWith(ER)}var AR=`store_failed`;function jR(e,t){return{verb:WL,params:{verb:`room.rekey`,"key-epoch":e,"wrapped-key":t}}}async function MR(e,t,n,r,i,a){return e.sendManageRequest(jR(n,r),{kind:`room`,path:t},i,a)}function NR(e){return async function(t){if(t.command.verb!==`room:member`){await t.respond({result:`error`,code:`malformed`});return}let n=RE.safeParse(t.command.params);if(!n.success){await t.respond({result:`error`,code:`malformed`});return}if(t.scope.kind!==`room`||t.scope.path===void 0){await t.respond({result:`error`,code:`scope_mismatch`});return}let r=t.scope.path,i=await GL(e.ownRoomMemberToken,{identity:e.identity,clock:e.clock,revocation:e.revocation,expectedBearer:e.identity.deviceId,roomPath:r,dmRootPolicy:`either-participant`});if(!i.ok){await t.respond({result:`error`,code:i.reason});return}let a=e.identity.deriveSharedSecret;if(a===void 0){await t.respond({result:`error`,code:`ecdh_unsupported`});return}let o=n.data[`key-epoch`],s=Array.isArray(n.data[`wrapped-key`])?n.data[`wrapped-key`]:[n.data[`wrapped-key`]],c=o-s.length+1,l;try{let e=await a(i.rootIssuerKey);l=await Promise.all(s.map(async(t,n)=>SR(await vR(e,{room:r,keyEpoch:c+n}),t)))}catch{await t.respond({result:`error`,code:`unwrap_failed`});return}try{await e.onRekey({room:r,keyEpoch:o,contentKeys:l})}catch(e){throw await t.respond({result:`error`,code:AR}),e}await t.respond({result:`ok`})}}async function PR(e,t){await e.reduce(async(e,n,r)=>{await e,await t(n,r)},Promise.resolve())}function FR(e){return Uint8Array.from(e)}function IR(e){return FR(Mg(e,hg))}function LR(e){return IR({1:e.identityKey.alg,4:e.deviceId})}function RR(e,t){return Mg([`Signature1`,e,new Uint8Array,t],hg)}function zR(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}async function BR(e,t){let[n,,r,i]=e;if(r===null)return{ok:!1,reason:`malformed`};let a;try{a=b_(r,x_)}catch{return{ok:!1,reason:`malformed`}}let o=HE.safeParse(a);if(!o.success)return{ok:!1,reason:`malformed`};let s=o.data;if(t.expectedRoom!==void 0&&s.room!==t.expectedRoom)return{ok:!1,reason:`wrong_room`};if(!await SO(t.identity,s[`poster-key`],RR(n,r),i))return{ok:!1,reason:`bad_signature`};if(!zR(await t.identity.deriveDeviceId(s[`poster-key`][`public-key`]),s.poster))return{ok:!1,reason:`wrong_poster`};let c=s[`valid-until`];if(c!==void 0&&c<=t.clock.now())return{ok:!1,reason:`content_expired`};let l=s[`key-epoch`];if(kR(s[`content-type`])!==(l!==void 0))return{ok:!1,reason:`key_epoch_mismatch`};let u=await GL(s.token,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:s.poster,roomPath:s.room,...t.dmRootPolicy===void 0?{}:{dmRootPolicy:t.dmRootPolicy}});return u.ok?{ok:!0,claims:s}:{ok:!1,reason:u.reason}}async function VR(e){let t=IR({room:e.room,poster:e.identity.deviceId,"poster-key":e.identity.identityKey,token:e.token,"notice-id":e.noticeId,"posted-at":e.clock.now(),"content-type":e.contentType,content:e.content,...e.refs===void 0?{}:{refs:[...e.refs]},...e.validUntil===void 0?{}:{"valid-until":e.validUntil},...e.keyEpoch===void 0?{}:{"key-epoch":e.keyEpoch}}),n=LR(e.identity);return[n,{},t,await e.identity.sign(RR(n,t))]}var HR=16;function UR(e){return new Uint8Array(Mg(e,hg))}function WR(e){let{identity:t,storage:n,clock:r,revocation:i,roomKeys:a}=e;async function o(e){let i=await a.currentEpoch(e.room);if(i===void 0)throw Error(`no content key held for room ${e.room}: room.rekey this room before posting encrypted notices`);let o=await a.get(e.room,i);if(o===void 0)throw Error(`content key store is inconsistent: epoch ${String(i)} is current for room ${e.room} but holds no key`);let s=e.noticeId??crypto.getRandomValues(new Uint8Array(HR)),c=await wR(o,e.plaintext),l=await VR({identity:t,clock:r,room:e.room,token:e.token,noticeId:s,contentType:DR(e.contentType),content:c,keyEpoch:i}),{haveFrame:u}=await _N({identity:t,storage:n},UR(l));return{dataHave:u,notice:l,keyEpoch:i}}async function s(e,t){let r=await gN(n,e);if(!(await bN(n,{type:`data-entries`,peer:e,"from-seq":r,entries:[t]})).ok)throw Error(`gap rejecting entry for peer log (head ${String(r)})`)}async function c(e,t,r){let i=await xN(n,e,0),a=[];return await fk(i,async e=>{a.push(await l(e,t,r))}),a}async function l(e,n,o){let s=u(e);if(s===void 0)return{verified:!1,reason:`malformed`};let c=await BR(s,{identity:t,clock:r,revocation:i,expectedRoom:n,dmRootPolicy:o});if(!c.ok)return{verified:!1,reason:c.reason};let l=c.claims;if(!kR(l[`content-type`]))return{verified:!0,contentType:l[`content-type`],plaintext:l.content,claims:l};let d=l[`key-epoch`];if(d===void 0)return{verified:!1,reason:`key_epoch_mismatch`};let f=await a.get(l.room,d),p={verified:!0,contentType:OR(l[`content-type`]),claims:l};if(f===void 0)return p;try{let e=await TR(f,l.content);return{...p,plaintext:e}}catch{return p}}function u(e){try{let t=b_(e,x_),n=VE.safeParse(t);return n.success?n.data:void 0}catch{return}}return{postEncryptedNotice:o,ingestPeerEntry:s,readOwnNotices:async e=>c(t.deviceId,e,`either-participant`),readPeerNotices:async(e,t)=>c(e,t,`self`)}}var GR=32;function KR(e){let{senders:t,storage:n,identity:r,clock:i,revocation:a,roomKeys:o,onChange:s}=e,c=WR({identity:r,storage:n,clock:i,revocation:a,roomKeys:o});async function l(e,t){let r=await gN(n,t);await e.sendDataFrame({type:`data-request`,peer:t,"from-seq":r})}async function u(e){let t=await gN(n,r.deviceId);t!==0&&await e.sendDataFrame({type:`data-have`,peer:r.deviceId,"head-seq":t})}function d(e,t){if(e.type===`data-have`){l(t,e.peer).catch(()=>void 0);return}if(e.type===`data-entries`){(async()=>{(await bN(n,e)).ok&&(e.entries.length>=GR&&await l(t,e.peer).catch(()=>void 0),s())})();return}e.type===`data-request`&&(async()=>{let r=await yN(n,e,GR);r!==null&&await t.sendDataFrame(r)})().catch(()=>void 0)}return{handleFrame:d,async post(e){let{dataHave:n}=await c.postEncryptedNotice(e);await Promise.allSettled(t().map(async e=>e.sendDataFrame(n))),s()},async readRoom(e,t){let n=await c.readOwnNotices(e),r=await Promise.all(t.map(async t=>c.readPeerNotices(t,e)));return[...n,...r.flat()]},async sync(e,t){await u(e),await Promise.all(t.map(async t=>l(e,t)))},async pull(e){await Promise.allSettled(t().flatMap(t=>e.map(async e=>l(t,e))))},roomKeys:o}}async function qR(e){let{session:t,target:n,identity:r,clock:i,revocation:a,ownRoomMemberToken:o,roomPath:s,roomKeys:c,delivery:l}=e,u=s.split(`+`)[0]??``;if(u===``||zD(r.deviceId)!==u)return;let d=await c.currentEpoch(s);if(d!==void 0&&d!==1||await l.isDelivered(s))return;let f=await GL(o,{identity:r,clock:i,revocation:a,expectedBearer:r.deviceId,roomPath:s,dmRootPolicy:`either-participant`});if(!f.ok)throw Error(`own room token failed verification: ${f.reason}`);let p=r.deriveSharedSecret;if(p===void 0)throw Error(`this identity cannot derive ECDH shared secrets`);let m=d===void 0?gR():await c.get(s,1);if(m===void 0)throw Error(`room ${s} lost its epoch 1 key`);let h=await xR(await vR(await p(f.rootIssuerKey),{room:s,keyEpoch:1}),m);d===void 0&&await c.set(s,1,m);let g=await MR(t,s,1,h,n,o);if(g.result!==`ok`)throw Error(`room.rekey was refused: ${g.code}`);await l.markDelivered(s)}var JR=[`core/management`,`core/room`],YR=16;function XR(){let e=new Uint8Array(YR);return crypto.getRandomValues(e),e}function ZR(e){if(e?.direct!==void 0)return{session:e.direct,target:void 0};if(e?.relay!==void 0)return{session:e.relay.hub,target:e.relay.peer};throw Error(`conversation is not connected`)}function QR({identity:e,clock:t,messageStore:n,roomStorage:r,capabilities:i}){let{revocation:a,grants:o}=i,[s,c]=(0,k.useReducer)(LI,new Map),l=zD(e.deviceId),[u,d]=(0,k.useState)(void 0),f=(0,k.useCallback)(e=>{e.then(void 0,e=>{d(e instanceof Error?e.message:String(e))})},[]),p=(0,k.useRef)(s);(0,k.useEffect)(()=>{p.current=s},[s]);let m=(0,k.useRef)(new Set),h=(0,k.useRef)(new WeakSet),g=(0,k.useMemo)(()=>sR(r),[r]);function _(){return[...p.current.values()].flatMap(e=>e.participants.map(e=>VD(e)))}let v=(0,k.useRef)(()=>void 0),y=(0,k.useMemo)(()=>KR({senders:()=>[...new Set([...[...p.current.values()].flatMap(e=>[...e.direct===void 0?[]:[e.direct],...e.relay===void 0?[]:[e.relay.hub]]),...m.current])],storage:r,identity:e,clock:t,revocation:a,roomKeys:g,onChange:()=>{v.current()}}),[e,t,r,g,a]);function b(e){let t=p.current.get(e)?.participants;t!==void 0&&y.readRoom(e,t.map(e=>VD(e))).then(t=>{c({type:`notices`,roomPath:e,notices:[...t]})})}(0,k.useEffect)(()=>{v.current=()=>{for(let e of p.current.keys())b(e)}});let x=(0,k.useRef)(new Map),S=(0,k.useMemo)(()=>lR(r),[r]),C=(0,k.useMemo)(()=>cR(r,e,t,a),[r,e,t,a]);async function w(e,t){x.current.set(e,t),await C.set(e,t)}async function T(e){let t=x.current.get(e);if(t!==void 0)return t;let n=await C.get(e);return n!==void 0&&x.current.set(e,n),n}(0,k.useEffect)(()=>{let e=new AbortController,t=()=>e.signal.aborted;return(async()=>{await PR([...new Set([...await n.roomPaths(),...await C.rooms()])],async e=>{if(t())return;let r=await n.list(e);if(t())return;let i=RI(e,l);c({type:`restored`,roomPath:e,participants:i,messages:r}),y.readRoom(e,i.map(e=>VD(e))).then(t=>{c({type:`notices`,roomPath:e,notices:[...t]})})})})(),()=>{e.abort()}},[n,C,y,l]);let E=(0,k.useRef)(new Map);async function D(n,r,i){let o=E.current.get(n);if(o!==void 0)return o;let s=qR({session:i.session,target:i.target,identity:e,clock:t,revocation:a,ownRoomMemberToken:r,roomPath:n,roomKeys:g,delivery:S}).finally(()=>{E.current.delete(n)});return E.current.set(n,s),s}function O(r){return{onMessage:e=>{let t={direction:`received`,text:e.text,messageId:e.messageId,sentAt:e.sentAt};f(n.append(r,t)),c({type:`message`,roomPath:r,message:t}),y.pull((p.current.get(r)?.participants??[]).map(e=>VD(e)))},onGrantIssued:e=>{f(o.record(`issued`,e,t.now()))},onJoinRequest:e=>{c({type:`join-request`,roomPath:r,request:{requesterHex:zD(e.requesterDevice),async decide(t){c({type:`join-request-settled`,roomPath:r}),await e.decide(t),(async()=>{let e=await T(r),t=p.current.get(r);e!==void 0&&t!==void 0&&await D(r,e,ZR(t))})().catch(()=>void 0)}}})},onRekey:async n=>{let i=await T(r);if(i===void 0){await n.respond({result:`error`,code:`no_token`});return}await NR({identity:e,clock:t,revocation:a,ownRoomMemberToken:i,onRekey:async e=>{await PR(e.contentKeys,async(t,n)=>{await g.set(r,e.keyEpoch-e.contentKeys.length+1+n,t)}),b(r)}})(n)}}}let A=(0,k.useCallback)(async(r,i)=>{let o={},u=await sP(r,e,JR,{clock:t,onFrame:(e,t)=>{o.current?.(t)}}),d=i??await u.peerDeviceId,f=zD(d),p=pP(l,f);if(s.get(p)?.direct!==void 0){await u.close();return}o.current=e=>{y.handleFrame(e,u)},c({type:`direct-opened`,roomPath:p,participants:[f],session:u}),c({type:`restored`,roomPath:p,participants:[f],messages:await n.list(p)}),y.sync(u,[d]).catch(()=>void 0),tR(u,{identity:e,clock:t,revocation:a,peerDevice:d,currentMembers:()=>[e.deviceId,d]},O(p)),(async()=>{for await(let e of u.events)e.state.status===`closed`&&c({type:`direct-closed`,roomPath:p})})()},[e,t,l,s,n,y]),j=(0,k.useCallback)(async n=>KL(o,{identity:e,clock:t,revocation:a,expectedBearer:e.deviceId},WL,{kind:`room`,path:n}),[o,e,t,a]),M=(0,k.useCallback)(async(e,r,i)=>{let a=s.get(e),{session:l,target:u}=ZR(a),d=a?.token;if(d===void 0){i(`awaiting-approval`);let n=await eR(l,e,{targetDevice:u,requestToken:await j(e)});i(`sending`),d=n.token,await w(e,d),f(o.record(`held`,d,t.now())),c({type:`token`,roomPath:e,token:d}),await D(e,d,{session:l,target:u}).catch(()=>void 0)}let p=await $L(l,e,r,{token:d,targetDevice:u});if(p.result!==`ok`)throw Error(`send failed: ${p.code}`);let m={direction:`sent`,text:r,messageId:XR(),sentAt:t.now()};return await n.append(e,m),m},[s,t,n,e,g,j]),N=(0,k.useCallback)(async(e,t,n)=>{c({type:`outgoing`,roomPath:e,entry:{localId:t,text:n,status:`sending`}});try{let r=await M(e,n,r=>{c({type:`outgoing`,roomPath:e,entry:{localId:t,text:n,status:r}})});c({type:`message`,roomPath:e,message:r}),c({type:`outgoing-removed`,roomPath:e,localId:t})}catch(r){c({type:`outgoing`,roomPath:e,entry:{localId:t,text:n,status:`failed`,error:r instanceof Error?r.message:String(r)}})}},[M]),ee=(0,k.useCallback)(async(e,t)=>N(e,crypto.randomUUID(),t),[N]),P=(0,k.useCallback)(async(e,t)=>{let n=s.get(e)?.outgoing.find(e=>e.localId===t);n!==void 0&&await N(e,t,n.text)},[s,N]),F=(0,k.useCallback)((e,t)=>{c({type:`outgoing-removed`,roomPath:e,localId:t})},[]),I=(0,k.useCallback)(async(e,n)=>{let r=s.get(e),{session:i,target:a}=ZR(r),l=r?.token??await T(e);l===void 0&&(l=(await eR(i,e,{targetDevice:a,requestToken:await j(e)})).token,await w(e,l),f(o.record(`held`,l,t.now())),c({type:`token`,roomPath:e,token:l})),await D(e,l,{session:i,target:a}),await y.post({room:e,token:l,contentType:`text/plain`,plaintext:new TextEncoder().encode(n)}),b(e)},[s,e,t,g,y,j]),te=(0,k.useCallback)(e=>{c({type:`read`,roomPath:e})},[]),ne=(0,k.useCallback)((e,t)=>{let r=pP(l,zD(t)),i=[zD(t)];c({type:`relay-opened`,roomPath:r,participants:i,route:{hub:e,peer:t}}),n.list(r).then(e=>{c({type:`restored`,roomPath:r,participants:i,messages:e})}),y.sync(e,[t]).catch(()=>void 0)},[l,n,y]),re=(0,k.useCallback)(n=>{let r=new Map;m.current.add(n),(async()=>{for await(let i of n.incomingManageRequests){let o=i.fromDevice;if(o===void 0)continue;let s=zD(o),c=r.get(s);if(c===void 0){c=sN(),r.set(s,c);let i=pP(l,s);ne(n,o),tR({incomingManageRequests:c.stream},{identity:e,clock:t,revocation:a,peerDevice:o,currentMembers:()=>[e.deviceId,o]},O(i))}c.push(i)}})()},[e,t,l,ne]),ie=(0,k.useCallback)(e=>{m.current.delete(e),c({type:`hub-closed`,hub:e})},[]),L=(0,k.useCallback)((e,t,n)=>{h.current.has(t)||(h.current.add(t),y.sync(e,_()).catch(()=>void 0)),y.handleFrame(n,e)},[y]);return{conversations:[...s.values()],persistenceFailure:u,openRelay:ne,watchHub:re,dropHub:ie,onHubFrame:L,attach:A,send:ee,retry:P,discard:F,postNotice:I,markRead:te}}function $R(e,t){let n=new Map(t.map(e=>[e,sN()]));return(async()=>{for await(let t of e)n.get(t.command.verb)?.push(t)})(),{stream:e=>{let t=n.get(e);if(t===void 0)throw Error(`the demux was not built to carry verb ${e}`);return t.stream}}}var ez=8787,tz=/^(localhost|127\.\d+\.\d+\.\d+)(:\d+)?$/;function nz(e){return tz.test(e)}async function rz(e=ez){try{return await fetch(`http://127.0.0.1:${String(e)}/`,{mode:`no-cors`}),`ws://127.0.0.1:${String(e)}`}catch{return}}async function iz(e=typeof location>`u`?``:location.host){return nz(e)?Promise.resolve(void 0):rz()}var az=`ws://localhost:8787`,oz=[`core/management`,`core/exec`,`core/data`],sz=[`core/management`,`core/data`],cz=[UP,WL];function lz({identity:e,clock:t,messageStore:n,roomStorage:r,certificateMemory:i,nameStore:a,preferences:o,grants:s,revocations:c,identityBackup:l,discoverLocalNode:u=iz,defaultAddress:d=az}){let[f,p]=(0,k.useState)(d),[m,h]=(0,k.useState)(sz),[g,_]=(0,k.useState)([]),[v,y]=(0,k.useState)([]),[b,x]=(0,k.useState)([]),[S,C]=(0,k.useState)(void 0),w=jL(o),T=OI(i,t),E=(0,k.useMemo)(()=>({revocation:c.view,grants:s}),[c,s]),D=QR({identity:e,clock:t,messageStore:n,roomStorage:r,capabilities:E}),[O,A]=(0,k.useState)(),j=D.conversations.find(e=>e.roomPath===O)??D.conversations[0],{markRead:M}=D,N=j?.roomPath,ee=j?.unread??0;(0,k.useEffect)(()=>{N!==void 0&&ee>0&&M(N)},[N,ee,M]);let P=(0,k.useRef)(new Map),F=(0,k.useRef)(D.onHubFrame);(0,k.useEffect)(()=>{F.current=D.onHubFrame},[D.onHubFrame]);let I=(0,k.useRef)(D.watchHub);(0,k.useEffect)(()=>{I.current=D.watchHub},[D.watchHub]);let te=(0,k.useRef)(D.attach);(0,k.useEffect)(()=>{te.current=D.attach},[D.attach]);let ne=(0,k.useRef)(g);(0,k.useEffect)(()=>{ne.current=g},[g]);let re=(0,k.useRef)(new Set),ie=(0,k.useRef)(new Map),L=(0,k.useRef)(!1),R=()=>L.current;(0,k.useEffect)(()=>(L.current=!1,()=>{L.current=!0;for(let e of ne.current)e.session.close()}),[]);let ae=(0,k.useRef)(m);(0,k.useEffect)(()=>{ae.current=m},[m]);function oe(n,r){let i=$R(r.incomingManageRequests,cz),a=cF({sendManageRequest:async(...e)=>r.sendManageRequest(...e),incomingManageRequests:i.stream(UP)},{identity:e,clock:t,revocation:E.revocation,iceServers:HP,onIncomingConnection:e=>{te.current(e)}});(async()=>{for await(let e of r.revocationAnnouncements)try{await c.ingest(e)}catch(e){C(e instanceof Error?e.message:String(e))}})();let o={sendManageRequest:async(...e)=>r.sendManageRequest(...e),sendDataFrame:async e=>r.sendDataFrame(e),incomingManageRequests:i.stream(WL)};P.current.set(r,o),I.current(o),_(e=>[...e,{address:n,session:r,hub:o,negotiator:a}])}async function se(e,t){let n=_I(e.device);for(let t of e.addresses){let e=ie.current.get(t)??new Set;e.add(n),ie.current.set(t,e)}return new Promise(r=>{y(i=>[...i,{key:n,device:e.device,addresses:e.addresses,via:t,resolve:r}])})}function ce(e,t){y(n=>(n.find(t=>t.key===e)?.resolve(t),n.filter(t=>t.key!==e)))}function le(n){let r={current:null},i={current:null},a=oP(VP(T.memory),e,t,yP,[],e=>{r.current?.considerAdvert(e)},(e,t)=>{let n=i.current===null?void 0:P.current.get(i.current);n!==void 0&&F.current(n,e,t)});return i.current=a,r.current=lP({selfDeviceId:e.deviceId,shouldExpand:async e=>se(e,n),dial:de,onExpanded:(e,t,n)=>{oe(t,n),ue(e)},onExpansionDeclined:ue,onExpansionFailed:ue}),a}function ue(e){let t=_I(e.device);for(let n of e.addresses){let e=ie.current.get(n);e?.delete(t),e?.size===0&&ie.current.delete(n)}}async function de(e){let t=await T.confirmAddress(ZF(e));if(t===void 0)throw Error(`the certificate of ${e} was not trusted`);if(R())throw Error(`the console was closed before the dial began`);let n=ie.current.get(e),[r]=n??[],i=le({address:e,claimedDevice:n?.size===1?r:void 0});if(await i.connect(t,ae.current),R())throw await i.close(),Error(`the console was closed while the dial was connecting`);return i}function fe(e){ne.current.some(t=>t.address===e)||re.current.has(e)||(re.current.add(e),T.confirmAddress(ZF(e)).then(t=>{if(t===void 0||R())return;let n=le({address:e,claimedDevice:void 0});oe(e,n),n.connect(t,m).catch(()=>{})}).finally(()=>{re.current.delete(e)}))}let pe=(0,k.useRef)(fe);(0,k.useEffect)(()=>{pe.current=fe});let me=(0,k.useRef)(u);(0,k.useEffect)(()=>{me.current=u},[u]);let he=(0,k.useRef)(!1);(0,k.useEffect)(()=>{he.current||(he.current=!0,me.current().then(e=>{e!==void 0&&pe.current(e)}))},[]);function ge(e){e.preventDefault(),fe(f)}async function _e(e){let t=await Promise.allSettled(ne.current.map(async t=>t.session.sendRevocationAnnounce([e])));return{attempted:t.length,reached:t.filter(e=>e.status===`fulfilled`).length}}function ve(e){D.dropHub(e.hub),e.session.close(),_(t=>t.filter(t=>t.session!==e.session))}function ye(t,n){D.openRelay(t.hub,n),A(pP(zD(e.deviceId),zD(n))),t.negotiator.initiate(n).then(async e=>D.attach(e,n)).catch(e=>{x(t=>[...t,{key:crypto.randomUUID(),peer:_I(n),reason:e instanceof Error?e.message:String(e)}])})}return(0,z.jsx)(kI,{store:a,children:(0,z.jsxs)(rm,{className:fI,p:`md`,gap:`lg`,children:[(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsx)(Lm,{order:1,children:`wire-mesh console`}),w.ready&&!w.visible&&(0,z.jsx)(Ed,{size:`xs`,variant:`subtle`,onClick:w.show,children:`How this works`})]}),w.error!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`The first-run intro's setting is unavailable`,children:w.error}),w.visible&&(0,z.jsx)(jI,{onDismiss:w.dismiss}),(0,z.jsx)(AI,{}),(0,z.jsxs)(`form`,{onSubmit:ge,children:[(0,z.jsxs)(pl,{align:`flex-end`,wrap:`wrap`,children:[(0,z.jsx)(Am,{label:`Node`,value:f,onChange:e=>{p(e.currentTarget.value)},required:!0,style:{flex:1,minWidth:`16rem`}}),(0,z.jsx)(Ed,{type:`submit`,children:`Connect`})]}),(0,z.jsx)(od.Group,{label:`Domains offered`,value:m,onChange:h,children:(0,z.jsx)(pl,{mt:`xs`,children:oz.map(e=>(0,z.jsx)(od,{value:e,label:e},e))})})]}),(0,z.jsx)(DI,{prompts:T.prompts,changes:T.changes,onDismissChange:T.dismissChange}),(0,z.jsx)(wI,{peers:v,onConnect:e=>{ce(e,!0)},onDismiss:e=>{ce(e,!1)}}),g.map(e=>(0,z.jsx)(SI,{address:e.address,session:e.session,clock:t,reconnectPolicy:yP,certificateChanges:T.changes,onClose:()=>{ve(e)},onMessagePeer:t=>{ye(e,t)}},e.address)),b.map(e=>(0,z.jsxs)(eu,{color:`yellow`,title:(0,z.jsxs)(z.Fragment,{children:[`No direct connection to `,(0,z.jsx)(QF,{deviceHex:e.peer})]}),withCloseButton:!0,onClose:()=>{x(t=>t.filter(t=>t.key!==e.key))},children:[e.reason,`. Messages go through the hub instead.`]},e.key)),D.persistenceFailure!==void 0&&(0,z.jsxs)(eu,{color:`red`,title:`Could not save to this console's storage`,children:[D.persistenceFailure,`. The conversation carries on, but what failed to save will be missing after a reload.`]}),S!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`A revocation could not be stored`,children:S}),(0,z.jsx)(kL,{revocations:c,onFailure:C}),(0,z.jsx)(UI,{conversations:D.conversations,onSelect:A}),(0,z.jsx)(OL,{identity:e,clock:t,grants:s,revocations:c,identityBackup:l,announceRevocation:_e}),(0,z.jsx)(ML,{conversations:D.conversations,selected:j?.roomPath,onSelect:A}),j!==void 0&&(0,z.jsx)(UL,{view:j,onSend:async e=>D.send(j.roomPath,e),onPostNotice:async e=>D.postNotice(j.roomPath,e),onRetry:e=>{D.retry(j.roomPath,e)},onDiscard:e=>{D.discard(j.roomPath,e)}},j.roomPath)]})})}var uz=`modulepreload`,dz=function(e){return`/`+e},fz={},pz=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=dz(t,n),t=s(t),t in fz)return;fz[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:uz,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},mz=`false`,hz=`false`,gz=mz===`true`,_z=hz===`true`;function vz(e={}){let{immediate:t=!1,onNeedReload:n,onNeedRefresh:r,onOfflineReady:i,onRegistered:a,onRegisteredSW:o,onRegisterError:s}=e,c,l,u,d=async(e=!0)=>{await l,gz||u?.()};async function f(){if(`serviceWorker`in navigator){if(c=await pz(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Bd17z0YL.js`);return{Workbox:e}},[]).then(({Workbox:e})=>new e(`/sw.js`,{scope:`/`,type:`classic`})).catch(e=>{s?.(e)}),!c)return;if(u=()=>{c?.messageSkipWaiting()},!_z){if(gz)c.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&(n?n():window.location.reload())}),c.addEventListener(`installed`,e=>{e.isUpdate||i?.()});else{let e=!1,t=()=>{e=!0,c?.addEventListener(`controlling`,e=>{e.isUpdate&&(n?n():window.location.reload())}),r?.()};c.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&i?.():n.isExternal?t():!e&&i?.():n.isUpdate||i?.()}),c.addEventListener(`waiting`,t)}}c.register({immediate:t}).then(e=>{o?o(`/sw.js`,e):a?.(e)}).catch(e=>{s?.(e)})}}return l=f(),d}function yz(e={}){let{immediate:t=!0,onNeedReload:n,onNeedRefresh:r,onOfflineReady:i,onRegistered:a,onRegisteredSW:o,onRegisterError:s}=e,[c,l]=(0,k.useState)(!1),[u,d]=(0,k.useState)(!1),[f]=(0,k.useState)(()=>vz({immediate:t,onNeedReload:n,onOfflineReady(){d(!0),i?.()},onNeedRefresh(){l(!0),r?.()},onRegistered:a,onRegisteredSW:o,onRegisterError:s}));return{needRefresh:[c,l],offlineReady:[u,d],updateServiceWorker:f}}function bz(){let{offlineReady:[e,t],needRefresh:[n,r],updateServiceWorker:i}=yz();function a(){t(!1),r(!1)}return!e&&!n?null:(0,z.jsx)(Ef,{onClose:a,closeButtonProps:{"aria-label":`Dismiss`},title:n?`Update available`:`Ready to work offline`,pos:`fixed`,bottom:`1rem`,right:`1rem`,style:{zIndex:1e3},children:(0,z.jsx)(pl,{gap:`xs`,children:n?(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{i(!0)},children:`Reload`}):void 0})})}var xz=`ws://localhost:8787`;function Sz(e){return`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}`}function Cz(e,t){return e?xz:Sz(t)}var wz=await qm(),Tz=await PO(wz),Ez={now:()=>Date.now()},Dz=eM(await qm()),Oz=await aM({storage:await qm(),identity:Tz,clock:Ez}),kz=uk(wz),Az=kM(await qm()),jz=await qm(),Mz=XO(await qm()),Nz=SM(await qm()),Pz=cM(await qm()),Fz=Cz(!1,window.location),Iz=document.getElementById(`root`);if(Iz===null)throw Error(`missing #root element`);(0,Rm.createRoot)(Iz).render((0,z.jsx)(k.StrictMode,{children:(0,z.jsxs)(xn,{children:[(0,z.jsx)(lz,{identity:Tz,clock:Ez,messageStore:Az,roomStorage:jz,certificateMemory:Mz,nameStore:Nz,preferences:Pz,grants:Dz,revocations:Oz,identityBackup:kz,defaultAddress:Fz}),(0,z.jsx)(bz,{})]})}));
83
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}r.count>1&&e.reused===`ref`&&a(n)}e.external&&(e.sharedDefsExtractedFor=e.external)}function BC(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;BC(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var VC=new Set([`type`,`properties`,`required`,`additionalProperties`]),HC=[`oneOf`,`anyOf`];function UC(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function WC(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!VC.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??UC(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}P_(n,r,e.length===1?e[0]:WC(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=UC(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function GC(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of VC)if(t in e)return;let n=t.filter(e=>HC.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=WC(t);else{let e=n[0],i=HC.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>WC([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,PC(e,r))}function KC(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):PC(i,s),PC(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())BC(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])GC(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}PC(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,P_(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:YC(t,`input`,e.processors),output:YC(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function qC(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return qC(r.element,n);if(r.type===`set`)return qC(r.valueType,n);if(r.type===`lazy`)return qC(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return qC(r.innerType,n);if(r.type===`intersection`)return qC(r.left,n)||qC(r.right,n);if(r.type===`record`||r.type===`map`)return qC(r.keyType,n)||qC(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:qC(r.in,n)||qC(r.out,n);if(r.type===`object`){for(let e in r.shape)if(qC(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(qC(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(qC(e,n))return!0;return!!(r.rest&&qC(r.rest,n))}return!1}var JC=(e,t={})=>n=>{let r=FC({...n,processors:t});return LC(e,r),zC(r,e),KC(r,e)},YC=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=FC({...i??{},target:a,io:t,processors:n});return LC(e,o),zC(o,e),KC(o,e)},XC=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},ZC=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},QC=(e,t)=>{XC(e,`minimum`,t),ZC(e,`maximum`,t)},$C=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},ew=(e,t)=>{e.patterns??=new Set,e.patterns.add(t)},tw=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},nw=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},rw=(e,t)=>XC(e,`minimum`,t.minimum),iw=(e,t)=>ZC(e,`maximum`,t.maximum),aw=e=>(t,n)=>{nw(t,n.format);let[r,i]=e[n.format];XC(t,`minimum`,r),ZC(t,`maximum`,i)},ow={greater_than:(e,t)=>XC(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>ZC(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>$C(e,t.value),number_format:aw(ev),bigint_format:aw(tv),min_length:rw,max_length:iw,length_equals:(e,t)=>QC(e,t.length),min_size:rw,max_size:iw,size_equals:(e,t)=>QC(e,t.size),string_format:(e,t)=>{nw(e,t.format),t.pattern&&ew(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>tw(e,t.mime)};function sw(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)ow[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&XC(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&XC(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&ZC(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&ZC(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&$C(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&tw(t,i.mime);for(let e of i.patterns??[])ew(t,e);return t}var cw={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},lw=new Map([[rx,Iy],[ax,Ly]]),uw=e=>lw.get(e)??e,dw=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=sw(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=cw[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(uw);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},fw=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=sw(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):IC(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},pw=(e,t,n,r)=>{n.type=`boolean`},mw=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},hw=(e,t,n,r)=>{n.not={}},gw=(e,t,n,r)=>{let i=e._zod.def,a=w_(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},_w=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(IC(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(IC(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},vw=(e,t,n,r)=>{IC(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},yw=(e,t,n,r)=>{IC(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},bw=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=sw(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=LC(a.element,t,{...r,path:[...r.path,`items`]})};function xw(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?xw(t.out):t.type===`catch`?xw(t.innerType):e._zod.optin}var Sw=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&IC(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)P_(i.properties,e,LC(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?xw(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=LC(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Cw=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>LC(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},ww=(e,t,n,r)=>{let i=e._zod.def,a=LC(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=LC(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},Tw=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>LC(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?LC(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?xw(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=sw(e);typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function Ew(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=Ew(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>Ew(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?Jy:qy).source),p):p}var Dw=new WeakMap;function Ow(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=new Map;for(let r of Dw.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=Ew(t,a,new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}var kw=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=sw(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=LC(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)P_(i.patternProperties,uw(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=LC(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=Dw.get(t);n||(n=[],Dw.set(t,n),t.deferred.push(()=>Ow(t))),n.push(e)}i.additionalProperties=LC(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&xw(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},Aw=(e,t,n,r)=>{let i=e._zod.def,a=LC(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},jw=(e,t,n,r)=>{let i=e._zod.def;LC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Mw=Symbol();function Nw(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(IC(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),Mw):JSON.parse(o)}var Pw=(e,t,n,r)=>{let i=e._zod.def;LC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=Nw(i.defaultValue,e,t,n,r);o!==Mw&&(n.default=o)},Fw=(e,t,n,r)=>{let i=e._zod.def;LC(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=Nw(i.defaultValue,e,t,n,r);o!==Mw&&(n._prefault=o)},Iw=(e,t,n,r)=>{let i=e._zod.def;LC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{IC(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},Lw=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;LC(o,t,r);let s=t.seen.get(e);s.ref=o},Rw=(e,t,n,r)=>{let i=e._zod.def;LC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},zw=(e,t,n,r)=>{let i=e._zod.def;LC(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Bw=(e,t,n,r)=>{let i=e._zod.innerType;LC(i,t,r);let a=t.seen.get(e);a.ref=i},Vw=new WeakSet([Object.prototype,Error.prototype]);function Hw(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var Uw=K(`ZodError`,(e,t)=>{Xv.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);Vw.has(n)||(Vw.add(n),Hw(n,`format`,e=>t=>$v(e,t)),Hw(n,`flatten`,e=>t=>Qv(e,t)),Hw(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,E_,2)}),Hw(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,E_,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),Ww=ty(Uw),Gw=ny(Uw),Kw=ry(Uw),qw=ay(Uw),Jw=dy(Uw),Yw=fy(Uw),Xw=py(Uw),Zw=my(Uw),Qw=hy(Uw),$w=gy(Uw),eT=_y(Uw),tT=vy(Uw);function nT(){Hv.localeError||Uv(wS())}function rT(){Hv.memoizer||Uv({memoizer:xS()})}var iT=K(`ZodType`,(e,t)=>(nT(),xb.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(V_(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Z_(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(DE(e,t))},superRefine(e,t){return this.check(OE(e,t))},overwrite(e){return this.check(wC(e))},optional(){return cE(this)},exactOptional(){return uE(this)},nullable(){return fE(this)},nullish(){return cE(fE(this))},nonoptional(e){return vE(this,e)},array(){return UT(this)},or(e){return qT([this,e])},and(e){return ZT(this,e)},transform(e){return SE(this,oE(e))},default(e){return mE(this,e)},prefault(e){return gE(this,e)},catch(e){return bE(this,e)},pipe(e){return SE(this,e)},readonly(){return wE(this)},describe(e){let t=this.clone();return OS.add(t,{description:e}),t},meta(...e){if(e.length===0)return OS.get(this);let t=this.clone();return OS.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Tv(this,`~standard`,{...wb(this),jsonSchema:{input:YC(this,`input`),output:YC(this,`output`)}})},set"~standard"(e){wv(this,`~standard`,e)},parse:function e(t,n){return Ww(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Gw(this,t,n,{callee:e})},safeParse(e,t){return Kw(this,e,t)},async safeParseAsync(e,t){return qw(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){wv(this,`spa`,e)},validate(e,t){return cy(this,e,t)},validateAsync(e,t){return uy(this,e,t)},encode:function e(t,n){return Jw(this,t,n,{callee:e})},decode:function e(t,n){return Yw(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Xw(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await Zw(this,t,n,{callee:e})},safeEncode(e,t){return Qw(this,e,t)},safeDecode(e,t){return $w(this,e,t)},async safeEncodeAsync(e,t){return eT(this,e,t)},async safeDecodeAsync(e,t){return tT(this,e,t)},toJSONSchema(e){return JC(this,{})(e)},get description(){return OS.get(this)?.description},get _def(){return this._zod.def}}),aT=K(`_ZodString`,(e,t)=>{Tb.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>dw(e,t,n,r)},Ev({format:e=>sw(e).format??null,minLength:e=>sw(e).minimum??null,maxLength:e=>sw(e).maximum??null},{regex(...e){return this.check(_C(...e))},includes(...e){return this.check(bC(...e))},startsWith(...e){return this.check(xC(...e))},endsWith(...e){return this.check(SC(...e))},min(...e){return this.check(hC(...e))},max(...e){return this.check(mC(...e))},length(...e){return this.check(gC(...e))},nonempty(...e){return this.check(hC(1,...e))},lowercase(e){return this.check(vC(e))},uppercase(e){return this.check(yC(e))},trim(){return this.check(EC())},normalize(...e){return this.check(TC(...e))},toLowerCase(){return this.check(DC())},toUpperCase(){return this.check(OC())},slugify(){return this.check(kC())}})),oT=K(`ZodString`,(e,t)=>{Tb.init(e,t),aT.init(e,t)},{email(e){return this.check(jS(fT,e))},url(e){return this.check(LS(hT,e))},jwt(e){return this.check(QS(AT,e))},emoji(e){return this.check(RS(gT,e))},guid(e){return this.check(MS(pT,e))},uuid(e){return this.check(NS(mT,e))},uuidv4(e){return this.check(PS(mT,e))},uuidv6(e){return this.check(FS(mT,e))},uuidv7(e){return this.check(IS(mT,e))},nanoid(e){return this.check(zS(_T,e))},cuid(e){return this.check(BS(vT,e))},cuid2(e){return this.check(VS(yT,e))},ulid(e){return this.check(HS(bT,e))},base64(e){return this.check(YS(DT,e))},base64url(e){return this.check(XS(OT,e))},xid(e){return this.check(US(xT,e))},ksuid(e){return this.check(WS(ST,e))},ipv4(e){return this.check(GS(CT,e))},ipv6(e){return this.check(KS(wT,e))},cidrv4(e){return this.check(qS(TT,e))},cidrv6(e){return this.check(JS(ET,e))},e164(e){return this.check(ZS(kT,e))},datetime(e){return this.check($S(cT,e))},date(e){return this.check(eC(lT,e))},time(e){return this.check(tC(uT,e))},duration(e){return this.check(nC(dT,e))}});function q(e){return AS(oT,e)}var sT=K(`ZodStringFormat`,(e,t)=>{Eb.init(e,t),aT.init(e,t)}),cT=K(`ZodISODateTime`,(e,t)=>{Gb.init(e,t),sT.init(e,t)}),lT=K(`ZodISODate`,(e,t)=>{Kb.init(e,t),sT.init(e,t)}),uT=K(`ZodISOTime`,(e,t)=>{qb.init(e,t),sT.init(e,t)}),dT=K(`ZodISODuration`,(e,t)=>{Jb.init(e,t),sT.init(e,t)}),fT=K(`ZodEmail`,(e,t)=>{kb.init(e,t),sT.init(e,t)}),pT=K(`ZodGUID`,(e,t)=>{Db.init(e,t),sT.init(e,t)}),mT=K(`ZodUUID`,(e,t)=>{Ob.init(e,t),sT.init(e,t)}),hT=K(`ZodURL`,(e,t)=>{Lb.init(e,t),sT.init(e,t)}),gT=K(`ZodEmoji`,(e,t)=>{Rb.init(e,t),sT.init(e,t)}),_T=K(`ZodNanoID`,(e,t)=>{zb.init(e,t),sT.init(e,t)}),vT=K(`ZodCUID`,(e,t)=>{Bb.init(e,t),sT.init(e,t)}),yT=K(`ZodCUID2`,(e,t)=>{Vb.init(e,t),sT.init(e,t)}),bT=K(`ZodULID`,(e,t)=>{Hb.init(e,t),sT.init(e,t)}),xT=K(`ZodXID`,(e,t)=>{Ub.init(e,t),sT.init(e,t)}),ST=K(`ZodKSUID`,(e,t)=>{Wb.init(e,t),sT.init(e,t)}),CT=K(`ZodIPv4`,(e,t)=>{Yb.init(e,t),sT.init(e,t)}),wT=K(`ZodIPv6`,(e,t)=>{Qb.init(e,t),sT.init(e,t)}),TT=K(`ZodCIDRv4`,(e,t)=>{$b.init(e,t),sT.init(e,t)}),ET=K(`ZodCIDRv6`,(e,t)=>{tx.init(e,t),sT.init(e,t)}),DT=K(`ZodBase64`,(e,t)=>{ix.init(e,t),sT.init(e,t)}),OT=K(`ZodBase64URL`,(e,t)=>{sx.init(e,t),sT.init(e,t)}),kT=K(`ZodE164`,(e,t)=>{cx.init(e,t),sT.init(e,t)}),AT=K(`ZodJWT`,(e,t)=>{ux.init(e,t),sT.init(e,t)}),jT=K(`ZodNumber`,(e,t)=>{dx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fw(e,t,n,r),e.isFinite=!0},Ev({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=sw(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=sw(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=sw(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>sw(e).format??null},{gt(e,t){return this.check(dC(e,t))},gte(e,t){return this.check(fC(e,t))},min(e,t){return this.check(fC(e,t))},lt(e,t){return this.check(lC(e,t))},lte(e,t){return this.check(uC(e,t))},max(e,t){return this.check(uC(e,t))},int(e){return this.check(NT(e))},safe(e){return this.check(NT(e))},positive(e){return this.check(dC(0,e))},nonnegative(e){return this.check(fC(0,e))},negative(e){return this.check(lC(0,e))},nonpositive(e){return this.check(uC(0,e))},multipleOf(e,t){return this.check(pC(e,t))},step(e,t){return this.check(pC(e,t))},finite(){return this}}));function J(e){return rC(jT,e)}var MT=K(`ZodNumberFormat`,(e,t)=>{fx.init(e,t),jT.init(e,t)});function NT(e){return iC(MT,e)}var PT=K(`ZodBoolean`,(e,t)=>{px.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pw(e,t,n,r)});function FT(e){return aC(PT,e)}var IT=K(`ZodNull`,(e,t)=>{mx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mw(e,t,n,r)});function LT(e){return oC(IT,e)}var RT=K(`ZodUnknown`,(e,t)=>{hx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function zT(){return sC(RT)}var BT=K(`ZodNever`,(e,t)=>{gx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hw(e,t,n,r)});function VT(e){return cC(BT,e)}var HT=K(`ZodArray`,(e,t)=>{rT(),bx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bw(e,t,n,r),e.element=t.element},{min(e,t){return this.check(hC(e,t))},nonempty(e){return this.check(hC(1,e))},max(e,t){return this.check(mC(e,t))},length(e,t){return this.check(gC(e,t))},unwrap(){return this.element}});function UT(e,t){return AC(HT,e,t)}var WT=K(`ZodObject`,(e,t)=>{rT(),Ex.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Sw(e,t,n,r),Nv(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return rE(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(V_(this._zod.def,{catchall:e}))},passthrough(){return this.clone(V_(this._zod.def,{catchall:zT()}))},loose(){return this.clone(V_(this._zod.def,{catchall:zT()}))},strict(){return this.clone(V_(this._zod.def,{catchall:VT()}))},strip(){return this.clone(V_(this._zod.def,{catchall:void 0}))},extend(e){return av(this,e)},safeExtend(e){return sv(this,e)},merge(e){return cv(this,e)},pick(e){return nv(this,e)},omit(e){return iv(this,e)},partial(...e){return lv(sE,this,e[0])},exactPartial(...e){return lv(lE,this,e[0],`exactPartial`)},required(...e){return uv(_E,this,e[0])}});function Y(e,t){return new WT({type:`object`,shape:e??{},...G(t)})}function GT(e,t){return new WT({type:`object`,shape:e,catchall:VT(),...G(t)})}var KT=K(`ZodUnion`,(e,t)=>{Ox.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cw(e,t,n,r),e.options=t.options});function qT(e,t){return new KT({type:`union`,options:e,...G(t)})}var JT=K(`ZodDiscriminatedUnion`,(e,t)=>{KT.init(e,t),Ax.init(e,t)});function YT(e,t,n){return new JT({type:`union`,options:t,discriminator:e,...G(n)})}var XT=K(`ZodIntersection`,(e,t)=>{jx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ww(e,t,n,r)});function ZT(e,t){return new XT({type:`intersection`,left:e,right:t})}var QT=K(`ZodTuple`,(e,t)=>{rT(),Px.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Tw(e,t,n,r)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw Error(`.partial() cannot be used on tuple schemas containing refinements`);return this.clone({...e,items:e.items.map(e=>new sE({type:`optional`,innerType:e}))})}});function $T(e,t,n){let r=t instanceof xb;return new QT({type:`tuple`,items:e,rest:r?t:null,...G(r?n:t)})}var eE=K(`ZodRecord`,(e,t)=>{rT(),Rx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>kw(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function tE(e,t,n){return!t||!t._zod?new eE({type:`record`,keyType:q(),valueType:e,...G(t)}):new eE({type:`record`,keyType:e,valueType:t,...G(n)})}var nE=K(`ZodEnum`,(e,t)=>{zx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gw(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new nE({...t,checks:[],...G(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new nE({...t,checks:[],...G(r),entries:i})}});function rE(e,t){return new nE({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...G(t)})}var iE=K(`ZodLiteral`,(e,t)=>{Bx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_w(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function X(e,t){return new iE({type:`literal`,values:Array.isArray(e)?e:[e],...G(t)})}var aE=K(`ZodTransform`,(e,t)=>{rT(),Vx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yw(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Vv(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Sv(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(Sv(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function oE(e){return new aE({type:`transform`,transform:e})}var sE=K(`ZodOptional`,(e,t)=>{Ux.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function cE(e){return new sE({type:`optional`,innerType:e})}var lE=K(`ZodExactOptional`,(e,t)=>{Wx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function uE(e){return new lE({type:`optional`,innerType:e})}var dE=K(`ZodNullable`,(e,t)=>{Gx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Aw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function fE(e){return new dE({type:`nullable`,innerType:e})}var pE=K(`ZodDefault`,(e,t)=>{Kx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function mE(e,t){return new pE({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():J_(t)}})}var hE=K(`ZodPrefault`,(e,t)=>{Jx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function gE(e,t){return new hE({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():J_(t)}})}var _E=K(`ZodNonOptional`,(e,t)=>{Yx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>jw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function vE(e,t){return new _E({type:`nonoptional`,innerType:e,...G(t)})}var yE=K(`ZodCatch`,(e,t)=>{Qx.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Iw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function bE(e,t){return new yE({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Fv(t)})}var xE=K(`ZodPipe`,(e,t)=>{$x.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lw(e,t,n,r),e.in=t.in,e.out=t.out});function SE(e,t){return new xE({type:`pipe`,in:e,out:t})}var CE=K(`ZodReadonly`,(e,t)=>{tS.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Rw(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function wE(e){return new CE({type:`readonly`,innerType:e})}var TE=K(`ZodLazy`,(e,t)=>{rS.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bw(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function Z(e){return new TE({type:`lazy`,getter:e})}var EE=K(`ZodCustom`,(e,t)=>{iS.init(e,t),iT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vw(e,t,n,r)});function DE(e,t={}){return jC(EE,e,t)}function OE(e,t){return MC(e,t)}var kE=K(`ZodInstanceOf`,(e,t)=>{EE.init(e,t)},{properties(e,t){return this.check(CC(e,t))}});function AE(e,t={}){let n=new kE({type:`custom`,check:`custom`,fn:t=>t instanceof e,abort:!0,...G(t)});return n._zod.bag.Class=e,n._zod.check=t=>{t.value instanceof e||t.issues.push({code:`invalid_type`,expected:e.name,input:t.value,inst:n,path:[...n._zod.def.path??[]]})},n}var jE=Z(()=>AE(Uint8Array).refine(e=>e.length===16,{message:`expected exactly 16 bytes`})),ME=Z(()=>Y({verb:X(`bulk.open`),"transfer-id":Z(()=>jE),"total-size":J().int().nonnegative().optional(),"content-type":q().optional()}).catchall(zT())),NE=Z(()=>Y({verb:X(`bulk.resume`),"transfer-id":Z(()=>jE),"ack-seq":J().int().nonnegative()}).catchall(zT())),PE=Z(()=>Y({verb:X(`bulk.cancel`),"transfer-id":Z(()=>jE),reason:q().optional()}).catchall(zT())),FE=Z(()=>qT([qT([Z(()=>ME),Z(()=>NE),Z(()=>PE)]),qT([Z(()=>HE),Z(()=>UE),Z(()=>WE),Z(()=>GE),Z(()=>KE),Z(()=>qE),Z(()=>JE),Z(()=>YE)]),Y({}).catchall(zT()),Z(()=>dD),Z(()=>pD),Z(()=>_D),Z(()=>vD),qT([Z(()=>SD),Z(()=>CD),Z(()=>wD),Z(()=>TD)]),qT([Z(()=>DD),Z(()=>OD)]),Z(()=>kD),qT([Z(()=>UD),Z(()=>WD),Z(()=>GD)]),qT([Z(()=>KD),Z(()=>qD),Z(()=>JD)]),Z(()=>yO),qT([Z(()=>SO),Z(()=>CO),Z(()=>wO),Z(()=>bO)])])),IE=Z(()=>Y({type:X(`bulk-data`),"transfer-id":Z(()=>jE),seq:J().int().nonnegative(),bytes:AE(Uint8Array)})),LE=Z(()=>Y({type:X(`bulk-ack`),"transfer-id":Z(()=>jE),"ack-seq":J().int().nonnegative(),window:J().int().nonnegative()})),RE=Z(()=>Y({type:X(`bulk-end`),"transfer-id":Z(()=>jE),digest:AE(Uint8Array)})),zE=Z(()=>Y({type:X(`data-have`),peer:Z(()=>aD),"head-seq":J().int().nonnegative()})),BE=Z(()=>Y({type:X(`data-request`),peer:Z(()=>aD),"from-seq":J().int().nonnegative()})),VE=Z(()=>Y({type:X(`data-entries`),peer:Z(()=>aD),"from-seq":J().int().nonnegative(),entries:UT(AE(Uint8Array))}));Z(()=>Y({handle:q(),"device-id":Z(()=>aD),"identity-key":Z(()=>iD),candidates:UT(Z(()=>uO)).optional(),mailboxes:UT(Z(()=>aD)).optional(),issued:J().int().nonnegative(),expires:J().int().nonnegative()})),Z(()=>Z(()=>tO));var HE=Z(()=>Y({verb:X(`pty.spawn`),shell:q().optional(),argv:UT(q()),cwd:q().optional(),env:Y({}).catchall(q()),cols:J().int().nonnegative(),rows:J().int().nonnegative()})),UE=Z(()=>Y({verb:X(`pty.write`),session:Z(()=>ID),bytes:AE(Uint8Array)})),WE=Z(()=>Y({verb:X(`pty.resize`),session:Z(()=>ID),cols:J().int().nonnegative(),rows:J().int().nonnegative()})),GE=Z(()=>Y({verb:X(`pty.kill`),session:Z(()=>ID),signal:J().int()})),KE=Z(()=>Y({verb:X(`proc.spawn`),argv:UT(q()),cwd:q().optional(),env:Y({}).catchall(q())})),qE=Z(()=>Y({verb:X(`proc.signal`),session:Z(()=>ID),signal:J().int()})),JE=Z(()=>Y({verb:X(`proc.kill`),session:Z(()=>ID)})),YE=Z(()=>Y({verb:X(`exec.list`)}));Z(()=>Y({session:Z(()=>ID),kind:qT([X(`pty`),X(`proc`)]),argv:UT(q()).optional(),cwd:q().optional()}));var XE=Z(()=>qT([Z(()=>rD),Z(()=>iO),Z(()=>aO),Z(()=>oO),Z(()=>cO),Z(()=>dO),Z(()=>fO),Z(()=>pO),Z(()=>mO),Z(()=>hO),Z(()=>gO),Z(()=>_O),Z(()=>vO),Z(()=>sD),Z(()=>uD),Z(()=>gD),Z(()=>LD),Z(()=>RD),Z(()=>zD),Z(()=>zE),Z(()=>BE),Z(()=>VE),Z(()=>IE),Z(()=>LE),Z(()=>RE),Z(()=>PD),Z(()=>FD)])),ZE=Z(()=>Z(()=>XE)),QE=Z(()=>J().int().nonnegative()),$E=Z(()=>qT([Z(()=>eD),Z(()=>tD),Z(()=>nD)])),eD=Z(()=>qT([X(`core/management`),X(`core/exec`),X(`core/data`),X(`core/federation`),X(`core/webrtc`),X(`core/room`),X(`core/bulk`),X(`core/version`)])),tD=Z(()=>q().regex(RegExp(`^(?:[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+/[A-Za-z0-9_.-]+)$`,`u`))),nD=Z(()=>q().regex(RegExp(`^(?:x-[A-Za-z0-9_.-]+)$`,`u`))),rD=Z(()=>Y({type:X(`handshake`),version:Z(()=>QE),domains:UT(Z(()=>$E)),params:Y({}).catchall(zT()).optional()})),iD=Z(()=>Y({alg:J().int(),"public-key":AE(Uint8Array)})),aD=Z(()=>AE(Uint8Array).refine(e=>e.length===32,{message:`expected exactly 32 bytes`}));Z(()=>Y({"device-id":Z(()=>aD),"identity-key":Z(()=>iD),certificate:AE(Uint8Array).optional()}));var oD=Z(()=>Y({verb:Z(()=>YD),params:Z(()=>FE)})),sD=Z(()=>Y({type:X(`manage-request`),"request-id":J().int().nonnegative(),command:Z(()=>oD),scope:Z(()=>$D),token:Z(()=>nO).optional()})),cD=Z(()=>Y({result:X(`ok`)}).catchall(zT())),lD=Z(()=>Y({result:X(`error`),code:q(),message:q().optional()})),uD=Z(()=>Y({type:X(`manage-response`),"request-id":J().int().nonnegative(),outcome:qT([Z(()=>cD),Z(()=>lD)])})),dD=Z(()=>Y({verb:X(`capability.request`),capability:q(),"valid-until":J().int().nonnegative().optional()}).catchall(zT())),fD=Z(()=>Y({result:X(`ok`),"granted-token":Z(()=>nO)}).catchall(zT())),pD=Z(()=>Y({verb:X(`capability.grant`),"granted-token":Z(()=>nO)}).catchall(zT())),mD=Z(()=>Y({"token-id":AE(Uint8Array),issuer:Z(()=>aD),"issuer-key":Z(()=>iD),"revoked-at":J().int().nonnegative(),authorization:AE(Uint8Array).optional()})),hD=Z(()=>Z(()=>tO)),gD=Z(()=>Y({type:X(`revocation-announce`),entries:UT(Z(()=>hD))})),_D=Z(()=>Y({verb:X(`path.trace`)}));Z(()=>Y({result:X(`ok`),relayed:FT(),"hub-address":q().optional()}).catchall(zT())),Z(()=>Y({direct:UT(Z(()=>aD)),relayed:UT(Y({device:Z(()=>aD),via:Z(()=>aD).optional()}))}));var vD=Z(()=>Y({verb:X(`topology.get`)})),yD=Z(()=>qT([Z(()=>bD),Z(()=>xD)]));Z(()=>q().regex(RegExp(`^(?:[0-9a-f]{64})$`,`u`)));var bD=Z(()=>q().regex(RegExp(`^(?:[0-9a-f]{64}/[A-Za-z0-9_-]+)$`,`u`))),xD=Z(()=>q().regex(RegExp(`^(?:[0-9a-f]{64}\\+[0-9a-f]{64})$`,`u`))),SD=Z(()=>Y({verb:X(`room.send`),"message-id":AE(Uint8Array),"sent-at":J().int().nonnegative(),text:q(),"content-type":q().optional(),refs:UT(Z(()=>ED)).optional()}).catchall(zT())),CD=Z(()=>Y({verb:X(`room.read`),messages:UT(AE(Uint8Array)),at:J().int().nonnegative()}).catchall(zT())),wD=Z(()=>Y({verb:X(`room.leave`)}).catchall(zT())),TD=Z(()=>Y({verb:X(`room.members`)}).catchall(zT())),ED=Z(()=>Y({id:AE(Uint8Array),relation:q()})),DD=Z(()=>Y({verb:X(`room.join`)}).catchall(zT())),OD=Z(()=>Y({verb:X(`room.invite`),invitee:Z(()=>aD),token:Z(()=>nO)}).catchall(zT())),kD=Z(()=>Y({verb:X(`room.rekey`),"key-epoch":J().int().nonnegative(),"wrapped-key":qT([AE(Uint8Array),UT(AE(Uint8Array))])}).catchall(zT())),AD=Z(()=>Y({device:Z(()=>aD)}).catchall(zT())),jD=Z(()=>Y({result:X(`ok`),"granted-token":Z(()=>nO),members:UT(Z(()=>AD))}).catchall(zT()));Z(()=>Y({result:X(`ok`),members:UT(Z(()=>AD))}).catchall(zT()));var MD=Z(()=>Z(()=>tO)),ND=Z(()=>Y({room:Z(()=>yD),poster:Z(()=>aD),"poster-key":Z(()=>iD),token:Z(()=>nO),"notice-id":AE(Uint8Array),"posted-at":J().int().nonnegative(),"content-type":q(),content:AE(Uint8Array),refs:UT(Z(()=>ED)).optional(),"valid-until":J().int().nonnegative().optional(),"key-epoch":J().int().nonnegative().optional()}).catchall(zT())),PD=Z(()=>Y({type:X(`secure-hello`),"ephemeral-key":AE(Uint8Array).refine(e=>e.length===65,{message:`expected exactly 65 bytes`}),nonce:AE(Uint8Array).refine(e=>e.length===16,{message:`expected exactly 16 bytes`}),"identity-key":Z(()=>iD),"to-device":Z(()=>aD),signature:AE(Uint8Array)})),FD=Z(()=>Y({type:X(`secure-data`),counter:J().int().nonnegative(),ciphertext:AE(Uint8Array)})),ID=Z(()=>J().int().nonnegative()),LD=Z(()=>Y({type:X(`stream-data`),session:Z(()=>ID),seq:J().int().nonnegative(),channel:q(),bytes:AE(Uint8Array)})),RD=Z(()=>Y({type:X(`stream-ack`),session:Z(()=>ID),"ack-seq":J().int().nonnegative(),window:J().int().nonnegative()})),zD=Z(()=>Y({type:X(`stream-end`),session:Z(()=>ID),"exit-code":J().int().optional(),"exit-signal":J().int().optional()})),BD=Z(()=>J().int().nonnegative()),VD=Z(()=>Y({kind:qT([X(`capability-token`),X(`revocation-entry`),X(`handle-record`),X(`room-notice`),q()]),protected:AE(Uint8Array),payload:AE(Uint8Array)})),HD=Z(()=>Y({participant:Z(()=>aD),hiding:AE(Uint8Array),binding:AE(Uint8Array)})),UD=Z(()=>Y({verb:X(`threshold.commit`),"session-id":Z(()=>BD),group:Z(()=>aD),subject:Z(()=>VD),deadline:J().int().nonnegative()})),WD=Z(()=>Y({verb:X(`threshold.sign`),"session-id":Z(()=>BD),commitments:UT(Z(()=>HD))}));Z(()=>Y({"session-id":Z(()=>BD),group:Z(()=>aD),share:AE(Uint8Array),issuer:Z(()=>aD),"issuer-key":Z(()=>iD)})),Z(()=>Z(()=>tO));var GD=Z(()=>Y({verb:X(`threshold.abort`),"session-id":Z(()=>BD),reason:q().optional()})),KD=Z(()=>Y({verb:X(`threshold.keygen-round1`),"session-id":Z(()=>BD),threshold:J().int().nonnegative(),participants:UT(Z(()=>aD)),commitment:UT(AE(Uint8Array)),"proof-of-knowledge":AE(Uint8Array).optional(),"existing-group-key":AE(Uint8Array).optional()})),qD=Z(()=>Y({verb:X(`threshold.keygen-round2`),"session-id":Z(()=>BD),share:AE(Uint8Array)})),JD=Z(()=>Y({verb:X(`threshold.keygen-confirm`),"session-id":Z(()=>BD),"transcript-digest":AE(Uint8Array),"group-key":AE(Uint8Array)})),YD=Z(()=>qT([Z(()=>XD),Z(()=>ZD),Z(()=>QD)])),XD=Z(()=>q().regex(RegExp(`^(?:[a-z][a-z0-9-]*:[a-z][a-z0-9-]*)$`,`u`))),ZD=Z(()=>q().regex(RegExp(`^(?:[a-z0-9.-]+/[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+)$`,`u`))),QD=Z(()=>q().regex(RegExp(`^(?:x-[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+)$`,`u`))),$D=Z(()=>Y({kind:q(),path:q().optional()}));Z(()=>X(1)),Z(()=>X(4)),Z(()=>qT([J().int(),q()]));var eO=Z(()=>Y({1:J().int().optional(),4:AE(Uint8Array).optional()}).catchall(zT())),tO=Z(()=>$T([AE(Uint8Array),Z(()=>eO),qT([AE(Uint8Array),LT()]),AE(Uint8Array)])),nO=Z(()=>Z(()=>tO)),rO=Z(()=>Y({"token-id":AE(Uint8Array),issuer:Z(()=>aD),"issuer-key":Z(()=>iD),bearer:Z(()=>aD),capability:Z(()=>YD),scope:Z(()=>$D),expires:J().int().nonnegative(),"not-before":J().int().nonnegative().optional(),parent:AE(Uint8Array).optional(),"authorised-by":AE(Uint8Array).optional(),"delegations-remaining":J().int().nonnegative().optional(),"valid-until":J().int().nonnegative().optional(),conditions:AE(Uint8Array).optional(),"grants-capability":Z(()=>YD).optional(),"requests-capability":Z(()=>YD).optional()}).catchall(zT())),iO=Z(()=>Y({type:X(`ping`)})),aO=Z(()=>Y({type:X(`pong`)})),oO=Z(()=>Y({type:X(`close`),reason:q().optional()})),sO=Z(()=>Y({device:Z(()=>aD),addresses:UT(q()),"snapshot-seconds":J().int(),"identity-key":Z(()=>iD),signature:AE(Uint8Array)}).catchall(zT())),cO=Z(()=>Y({type:X(`gossip`),peers:UT(Z(()=>sO))})),lO=Z(()=>qT([X(`host`),X(`server-reflexive`),X(`relayed`)])),uO=Z(()=>Y({address:q(),kind:Z(()=>lO),priority:J().int().nonnegative()})),dO=Z(()=>Y({type:X(`candidates`),candidates:UT(Z(()=>uO))})),fO=Z(()=>Y({type:X(`sync-punch`),nonce:J().int().nonnegative(),"deadline-unix-ms":J().int().nonnegative()})),pO=Z(()=>Y({type:X(`observed-address`),address:q()})),mO=Z(()=>Y({type:X(`relay-offer`),addresses:UT(q())})),hO=Z(()=>Y({type:X(`relay-connect`),"target-device":Z(()=>aD),"source-device":Z(()=>aD).optional()})),gO=Z(()=>Y({type:X(`relay-data`),payload:AE(Uint8Array),"to-device":Z(()=>aD).optional(),"from-device":Z(()=>aD).optional()})),_O=Z(()=>Y({type:X(`relay-inbound`),"source-device":Z(()=>aD),"target-device":Z(()=>aD).optional()})),vO=Z(()=>Y({type:X(`coordinator`),term:J().int().nonnegative(),coordinator:Z(()=>aD),"capacity-hint":J().int().nonnegative().optional()})),yO=Z(()=>Y({verb:X(`version.get`)})),bO=Z(()=>Y({verb:X(`webrtc.sfu-track-map`),"negotiation-id":J().int().nonnegative(),tracks:UT(Z(()=>xO))})),xO=Z(()=>Y({mid:q(),member:Z(()=>aD),kind:qT([X(`audio`),X(`video`)])})),SO=Z(()=>Y({verb:X(`webrtc.offer`),"negotiation-id":J().int().nonnegative(),sdp:q()})),CO=Z(()=>Y({verb:X(`webrtc.answer`),"negotiation-id":J().int().nonnegative(),sdp:q()})),wO=Z(()=>Y({verb:X(`webrtc.ice-candidate`),"negotiation-id":J().int().nonnegative(),candidate:Z(()=>TO).optional()})),TO=Z(()=>Y({candidate:q(),"sdp-mid":q().optional(),"sdp-m-line-index":J().int().nonnegative().optional(),"username-fragment":q().optional()})),EO=16,DO=2,OO=64;function kO(e){let t=``;for(let n of e)t+=n.toString(EO).padStart(DO,`0`);return t}function AO(e){return kO(e)}function jO(e){if(!/^([0-9a-f]{2})*$/.test(e))throw Error(`expected an even-length, lowercase hex string, got ${JSON.stringify(e)}`);let t=new Uint8Array(e.length/DO);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*DO,(n+1)*DO),EO);return t}function MO(e){if(e.length!==OO)throw Error(`expected a 64-character lowercase hex string, got ${JSON.stringify(e)}`);return aD.parse(jO(e))}var NO=8,PO=3,FO=4,IO=8,LO=255,RO=19,zO=252,BO=32,VO=64,HO=BigInt(NO),UO=31,WO=127,GO=BigInt(0),KO=BigInt(1),qO=BigInt(2),JO=(KO<<BigInt(LO))-BigInt(RO),YO=(KO<<BigInt(zO))+BigInt(`27742317777372353535851937790883648493`),XO=BigInt(`37095705934669439343138083508754565189542113879843219016388785533085940283555`),ZO=new Set([`0`,`1`,`7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec`,`5fc536d880238b13933c6d305acdfd5f098eff289f4c345b027b2c28f95e826`,`7a03ac9277fdc74ec6cc392cfa53202a0f67100d760b3cba4fd84d3d706a17c7`].map(e=>BigInt(`0x${e}`)));function QO(e){let t=GO;for(let n=e.length-1;n>=0;--n)t=t<<HO|BigInt(e[n]??0);return t}function $O(e){let t=Uint8Array.from(e);return t[UO]=(t[UO]??0)&WO,QO(t)}function ek(e,t){let n=KO,r=e%JO,i=t;for(;i>GO;)(i&KO)===KO&&(n=n*r%JO),r=r*r%JO,i>>=KO;return n}function tk(e){let t=e%JO;return t>=GO?t:t+JO}var nk=ek(qO,(JO-KO)/BigInt(FO));function rk(e){let t=tk(e*e),n=tk(tk(t-KO)*ek(tk(XO*t+KO),JO-qO)),r=ek(n,(JO+BigInt(PO))/BigInt(IO));for(let t of[r,tk(r*nk)])if(tk(t*t)===n)return{x:t,y:e,z:KO,t:tk(t*e)}}function ik(e,t){let n=tk((e.y-e.x)*(t.y-t.x)),r=tk((e.y+e.x)*(t.y+t.x)),i=tk(e.t*qO*XO*t.t),a=tk(e.z*qO*t.z),o=r-n,s=a-i,c=a+i,l=r+n;return{x:tk(o*s),y:tk(c*l),z:tk(s*c),t:tk(o*l)}}var ak={x:GO,y:KO,z:KO,t:GO};function ok(e){let t=ak;for(let n=zO;n>=0;--n)t=ik(t,t),(YO>>BigInt(n)&KO)===KO&&(t=ik(t,e));return t.x===GO&&t.y===t.z}var sk=1024,ck=new Map;function lk(e){if(e.length!==BO)return`wrong_size`;let t=$O(e);if(t>=JO)return`non_canonical`;let n=rk(t);return n===void 0?`not_a_point`:ZO.has(t)?`small_order`:ok(n)?void 0:`mixed_order`}function uk(e){if(e.length!==BO)return`wrong_size`;let t=kO(e);if(ck.has(t)){let e=ck.get(t);return ck.delete(t),ck.set(t,e),e}let n=lk(e);ck.set(t,n);for(let e of ck.keys()){if(ck.size<=sk)break;ck.delete(e)}return n}function dk(e){if(e.length!==VO)return!1;let t=e.subarray(0,BO),n=e.subarray(BO),r=$O(t);return QO(n)<YO&&r<JO&&!ZO.has(r)}var fk=class extends Error{fault;constructor(e,t,n){super(t,n),this.name=`IdentityKeyError`,this.fault=e}};async function pk(e,t,n,r){try{return await e.verify(t,n,r)}catch(e){if(e instanceof fk)return!1;throw e}}var mk=-7,hk=-8,gk=`web-console/identity/es256`;function _k(e){if(e===mk)return{name:`ECDSA`,hash:`SHA-256`};if(e===hk)return{name:`Ed25519`};throw Error(`unsupported identity-key alg ${String(e)}`)}function vk(e){return Uint8Array.from(e)}async function yk(e){let t=e.alg===mk?{name:`ECDSA`,namedCurve:`P-256`}:e.alg===hk?{name:`Ed25519`}:void 0;if(t===void 0)throw new fk(`unsupported_alg`,`unsupported identity-key alg ${String(e.alg)}`);if(e.alg===hk){let t=uk(e[`public-key`]);if(t!==void 0)throw new fk(`invalid_key`,`identity-key public-key is not a usable Ed25519 key (${t})`)}try{return await crypto.subtle.importKey(`raw`,vk(e[`public-key`]),t,!1,[`verify`])}catch(t){throw new fk(`invalid_key`,`identity-key public-key does not import as an alg ${String(e.alg)} key`,{cause:t})}}async function bk(e){return new Uint8Array(await crypto.subtle.digest(`SHA-256`,vk(e)))}async function xk(e,t,n){let r=await yk(e);return e.alg===hk&&!dk(n)?!1:crypto.subtle.verify(_k(e.alg),r,vk(n),vk(t))}function Sk(e){return typeof e!=`object`||!e||!(`privateJwk`in e)||!(`publicKeyRaw`in e)?!1:typeof e.privateJwk==`object`&&e.privateJwk!==null&&e.publicKeyRaw instanceof Uint8Array}async function Ck(){let e=await crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!0,[`sign`,`verify`]);return{privateJwk:await crypto.subtle.exportKey(`jwk`,e.privateKey),publicKeyRaw:new Uint8Array(await crypto.subtle.exportKey(`raw`,e.publicKey))}}async function wk(e){let t=await crypto.subtle.importKey(`jwk`,e.privateJwk,{name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`]),n={alg:mk,"public-key":e.publicKeyRaw},r=await bk(e.publicKeyRaw),i={...e.privateJwk,key_ops:[`deriveBits`]};delete i.alg;let a=await crypto.subtle.importKey(`jwk`,i,{name:`ECDH`,namedCurve:`P-256`},!1,[`deriveBits`]);return{deviceId:r,identityKey:n,async sign(e){let n=await crypto.subtle.sign(_k(mk),t,vk(e));return new Uint8Array(n)},verify:xk,deriveDeviceId:bk,async deriveSharedSecret(e){if(e.alg!==mk)throw Error(`ECDH is only defined for an ES256 peer identity-key, got alg ${String(e.alg)}`);let t=await crypto.subtle.importKey(`raw`,vk(e[`public-key`]),{name:`ECDH`,namedCurve:`P-256`},!1,[]),n=await crypto.subtle.deriveBits({name:`ECDH`,public:t},a,256);return new Uint8Array(n)}}}async function Tk(e){let t=await e.get(gk);if(t!==void 0){let e=b_(t,x_);if(!Sk(e))throw Error(`stored identity envelope is malformed`);return wk(e)}let n=await Ck();return await e.set(gk,new Uint8Array(Mg(n,hg))),wk(n)}var Ek=`#sha256=`,Dk=`,`,Ok=/^[0-9a-f]{64}$/,kk=16;function Ak(e){let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*2,n*2+2),16);return t}function jk(e,t){return`https://${e}${Ek}${t.join(Dk)}`}function Mk(e){return e.startsWith(`https://`)&&e.includes(Ek)}function Nk(e){let t=new URL(e),n=t.hash.startsWith(Ek)?t.hash.slice(8).split(Dk):[];if(t.protocol!==`https:`||n.length===0||!n.every(e=>Ok.test(e)))throw Error(`expected "https://host:port${Ek}<64 hex digits>[${Dk}<64 hex digits>...]", got "${e}"`);return t.hash=``,{url:t.toString(),sha256:n.map(Ak)}}var Pk=32;function Fk(e){return Mg({sha256:e.map(Ak)},hg)}function Ik(e){let t=b_(e,x_);if(typeof t!=`object`||!t||!(`sha256`in t)||!Array.isArray(t.sha256))throw Error(`expected a map with a sha256 array`);let n=t.sha256;if(n.length===0||n.length>8)throw Error(`expected 1 to 8 hashes, got ${String(n.length)}`);let r=[];for(let e of n){if(!(e instanceof Uint8Array)||e.length!==Pk)throw Error(`each hash must be ${String(Pk)} bytes`);r.push(new Uint8Array(e))}return r}function Lk(e,t){let n=new Set(e.map(Rk)),r=[...e];for(let e of t)n.has(Rk(e))||(n.add(Rk(e)),r.push(e));return r}function Rk(e){return Array.from(e,e=>e.toString(kk).padStart(2,`0`)).join(``)}function zk(e,t){let{url:n}=Nk(e);return jk(new URL(n).host,t.map(Rk))}var Bk=`pinned-certificates/`;function Vk(e){return{recall:async t=>{let n=await e.get(Bk+t);return n===void 0?[]:Ik(n)},remember:async(t,n)=>{let r=Fk(n.map(e=>kO(e)));await e.set(Bk+t,new Uint8Array(r))}}}var Hk=`wire-mesh-console-identity`,Uk=`ES256`,Wk=16,Gk=2,Kk=4;function qk(e){let t=new Uint8Array(e.length/Gk);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*Gk,(n+1)*Gk),Wk);return t}function Jk(e){try{let t=atob(e.replace(/-/g,`+`).replace(/_/g,`/`));return Uint8Array.from(t,e=>e.charCodeAt(0))}catch{throw Error(`the backup's key is not valid base64url`)}}function Yk(e){let{kty:t,crv:n,x:r,y:i,d:a}=e;if(t!==`EC`||n!==`P-256`||typeof r!=`string`||typeof i!=`string`||typeof a!=`string`)throw Error(`the backup does not hold a P-256 private key`);return{kty:t,crv:n,x:r,y:i,d:a}}function Xk(e){return Uint8Array.from([Kk,...Jk(e.x),...Jk(e.y)])}function Zk(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Qk=new TextEncoder().encode(`wire-mesh console identity backup key-pair check`);async function $k(e,t){let n;try{n=await wk({privateJwk:e,publicKeyRaw:t})}catch(e){throw Error(`the backup's private key cannot be loaded: ${e instanceof Error?e.message:String(e)}`,{cause:e})}let r=await n.sign(Qk);if(!await n.verify(n.identityKey,Qk,r))throw Error(`the private key does not belong to the backup's public key`)}async function eA(e){let t;try{t=JSON.parse(e)}catch{throw Error(`the file is not JSON`)}if(!Zk(t)||t.format!==`wire-mesh-console-identity`||t.version!==1||t.alg!==Uk||typeof t.deviceId!=`string`||typeof t.publicKey!=`string`||!Zk(t.privateJwk))throw Error(`the file is not a wire-mesh console identity backup`);let n=Yk(t.privateJwk),r=Xk(n);if(kO(r)!==t.publicKey)throw Error(`the private key does not match the backup's public key`);if(AO(await bk(r))!==t.deviceId)throw Error(`the backup's device-id does not match its public key`);return await $k(n,r),{format:Hk,version:1,alg:Uk,deviceId:t.deviceId,publicKey:t.publicKey,privateJwk:n}}function tA(e){return{async export(){let t=await e.get(gk);if(t===void 0)throw Error(`no identity is stored on this device`);let n=b_(t,x_);if(!Sk(n))throw Error(`stored identity envelope is malformed`);return{format:Hk,version:1,alg:Uk,deviceId:AO(await bk(n.publicKeyRaw)),publicKey:kO(n.publicKeyRaw),privateJwk:n.privateJwk}},async restore(t){await e.set(gk,new Uint8Array(Mg({privateJwk:t.privateJwk,publicKeyRaw:qk(t.publicKey)},hg)))}}}async function nA(e,t){let[n,...r]=e;if(n!==void 0)return await t(n)?n:nA(r,t)}async function rA(e,t){await e.reduce(async(e,n,r)=>{await e,await t(n,r)},Promise.resolve())}function iA(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function aA(e){return e.split(`/`).some(e=>e===`.`||e===`..`)}function oA(e,t){return aA(e)||aA(t)?!1:e===t?!0:e.startsWith(t)?t.endsWith(`/`)?!0:e.charAt(t.length)===`/`:!1}function sA(e,t){return e.kind===t.kind?e.path===void 0||t.path!==void 0&&oA(t.path,e.path):!1}var cA=(e,t,n)=>({kind:`complex`,re:e*Math.cos(t),im:e*Math.sin(t),unit:n}),lA=tE(q(),J()),uA=rE([`ms`,`s`,`min`,`h`,`d`]);YT(`kind`,[Y({kind:X(`number`),value:J(),unit:lA.optional()}),Y({kind:X(`text`),value:q()}),Y({kind:X(`boolean`),value:FT()}),Y({kind:X(`instant`),value:q()}),Y({kind:X(`duration`),value:J(),unit:uA}),Y({kind:X(`complex`),re:J(),im:J(),unit:lA.optional()})]);function dA(e){if(e===void 0)return{};let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}function fA(e,t){let n=dA(e),r=dA(t),i=Object.keys(n),a=Object.keys(r);return i.length===a.length&&i.every(e=>n[e]===r[e])}function pA(e,t){let n=dA(e),r=dA(t),i={...n};for(let[e,t]of Object.entries(r))i[e]=(i[e]??0)+t;return dA(i)}function mA(e,t){let n=dA(e),r=dA(t),i={...n};for(let[e,t]of Object.entries(r))i[e]=(i[e]??0)-t;return dA(i)}Y({code:rE([`not-found`,`wrong-type`,`domain-error`]),message:q()});function Q(e){return{status:`definite`,value:e}}function $(e,t){return{status:`indeterminate`,reason:{code:e,message:t}}}function hA(...e){for(let t of e)if(t?.status===`indeterminate`)return t.reason}var gA=Z(()=>qT([q(),J(),FT(),LT(),UT(gA),tE(q(),gA)])),_A=rE([`gt`,`gte`,`lt`,`lte`,`eq`,`neq`]),vA=rE([`equals`,`notEquals`,`matches`,`notMatches`,`portableMatches`,`portableNotMatches`]),yA=rE([`in`,`notIn`]),bA=rE([`add`,`subtract`,`multiply`,`divide`,`power`,`modulo`]),xA=rE([`first`,`unique`]),SA=Y({kind:X(`not`),get operand(){return PA}}),CA=Y({kind:X(`and`),get left(){return PA},get right(){return PA}}),wA=Y({kind:X(`or`),get left(){return PA},get right(){return PA}}),TA=Y({kind:X(`allOf`),get operands(){return UT(PA)}}),EA=Y({kind:X(`anyOf`),get operands(){return UT(PA)}}),DA=Y({kind:X(`compare`),op:_A,get left(){return YA},get right(){return YA}}),OA=Y({kind:X(`textCompare`),op:vA,get left(){return YA},get right(){return YA}}),kA=Y({kind:X(`memberOf`),op:yA,get operand(){return YA},get candidates(){return UT(YA)}}),AA=Y({kind:X(`exists`),get operand(){return YA}}),jA=Y({kind:X(`some`),collection:gA,get item(){return PA},get filter(){return PA.optional()}}),MA=Y({kind:X(`every`),collection:gA,get item(){return PA},get filter(){return PA.optional()}}),NA=Y({kind:X(`treeReference`),key:gA}),PA=YT(`kind`,[SA,CA,wA,TA,EA,DA,OA,kA,AA,jA,MA,NA]),FA=Y({kind:X(`numberLiteral`),value:J(),unit:lA.optional()}),IA=Y({kind:X(`textLiteral`),value:q()}),LA=Y({kind:X(`booleanLiteral`),value:FT()}),RA=Y({kind:X(`instantLiteral`),value:q()}),zA=Y({kind:X(`durationLiteral`),value:J(),unit:uA}),BA=qT([GT({kind:X(`complexLiteral`),re:J(),im:J(),unit:lA.optional()}),GT({kind:X(`complexLiteral`),magnitude:J(),phase:J(),unit:lA.optional()})]),VA=Y({kind:X(`reference`),key:gA,unit:lA.optional()}),HA=Y({kind:X(`arithmetic`),op:bA,get left(){return YA},get right(){return YA}}),UA=Y({kind:X(`negate`),get operand(){return YA}}),WA=Y({kind:X(`call`),fn:q(),get args(){return UT(YA)}}),GA=Y({kind:X(`lookup`),table:gA,get keys(){return UT(YA)}}),KA=Y({get when(){return PA},get then(){return YA}}),qA=Y({kind:X(`conditional`),hitPolicy:xA.optional(),get cases(){return UT(KA)},get fallback(){return YA}}),JA=YT(`mode`,[Y({mode:X(`max`),get item(){return YA}}),Y({mode:X(`min`),get item(){return YA}}),Y({mode:X(`reduce`),get initial(){return YA},get combine(){return YA}})]),YA=qT([YT(`kind`,[FA,IA,LA,RA,zA,VA,HA,UA,WA,GA,qA,Y({kind:X(`fold`),collection:gA,get filter(){return PA.optional()},combiner:JA}),Y({kind:X(`accumulator`)}),Y({kind:X(`delegate`),system:q(),payload:gA}),NA]),BA]),XA={},ZA=1e4;function QA(e,t){let n=0;return{checkNode(r){if(n+=1,n>e)return $(`domain-error`,`evaluation exceeded the maximum of ${e.toString()} nodes visited in a single call (resource exhausted)`);if(r>=t)return $(`domain-error`,`evaluation nesting depth exceeds the maximum of ${t.toString()} (resource exhausted)`)}}}async function $A(e,t,n,r,i,a,o,s,c,l){let u=await i.resolveCollection(t,r);return Promise.all(u.map(async t=>{if(n===void 0)return{item:t,filterOutcome:`include`};let r=await e(n,t,i,void 0,a,o,s,c,l+1);return r.status===`indeterminate`?{item:t,filterOutcome:r}:{item:t,filterOutcome:r.value?`include`:`exclude`}}))}function ej(e){for(let{filterOutcome:t}of e)if(t!==`include`&&t!==`exclude`&&t.status===`indeterminate`)return t.reason}function tj(e,t){return t>=e.from&&t<=e.to}function nj(e,t){let n=e.ranges.some(e=>tj(e,t));return e.negated?!n:n}var rj=class extends Error{pattern;index;constructor(e,t,n){super(`invalid pattern at index ${String(t)}: ${n}\n ${e}\n ${` `.repeat(t)}^`),this.name=`RegexParseError`,this.pattern=e,this.index=t}};function ij(e){return e.charCodeAt(0)}function aj(e,t){return{from:ij(e),to:ij(t)}}function oj(e){let t=ij(e);return{from:t,to:t}}var sj=[aj(`0`,`9`)],cj=[aj(`A`,`Z`),aj(`a`,`z`),aj(`0`,`9`),oj(`_`)],lj=[oj(` `),oj(` `),oj(`
84
+ `),oj(`\r`),oj(`\f`),oj(`\v`)];function uj(e){switch(e){case`d`:return{kind:`charClass`,negated:!1,ranges:sj};case`D`:return{kind:`charClass`,negated:!0,ranges:sj};case`w`:return{kind:`charClass`,negated:!1,ranges:cj};case`W`:return{kind:`charClass`,negated:!0,ranges:cj};case`s`:return{kind:`charClass`,negated:!1,ranges:lj};case`S`:return{kind:`charClass`,negated:!0,ranges:lj};default:throw Error(`unreachable shorthand class letter`)}}var dj=new Set([`|`,`)`]),fj={".":`.`,"*":`*`,"+":`+`,"?":`?`,"(":`(`,")":`)`,"[":`[`,"]":`]`,"{":`{`,"}":`}`,"|":`|`,"^":`^`,$:`$`,"\\":`\\`,"/":`/`,n:`
85
+ `,t:` `,r:`\r`,f:`\f`,v:`\v`},pj=class{pattern;pos=0;constructor(e){this.pattern=e}get position(){return this.pos}atEnd(){return this.pos>=this.pattern.length}peek(e=0){return this.pattern[this.pos+e]}advance(){let e=this.pattern[this.pos];if(e===void 0)throw new rj(this.pattern,this.pos,`unexpected end of pattern`);return this.pos+=1,e}parseAlternation(){let e=this.parseSequence(),t=[];for(;this.peek()===`|`;)this.advance(),t.push(this.parseSequence());return t.length===0?e:{kind:`alternation`,branches:[e,...t]}}parseSequence(){if(this.atEnd()||dj.has(this.peek()??``))return{kind:`concat`,operands:[]};let e=this.parseQuantified(),t=[];for(;!this.atEnd()&&!dj.has(this.peek()??``);)t.push(this.parseQuantified());return t.length===0?e:{kind:`concat`,operands:[e,...t]}}parseQuantified(){let e=this.pos,t=this.parseAtom();if(t.kind===`anchorStart`||t.kind===`anchorEnd`){if(this.peekIsQuantifierStart())throw new rj(this.pattern,e,`an anchor ('${t.kind===`anchorStart`?`^`:`$`}') cannot be quantified`);return t}let n=this.tryParseQuantifier();if(n===void 0)return t;if(this.peekIsQuantifierStart())throw new rj(this.pattern,this.pos,`a quantifier cannot itself be quantified -- this grammar has no lazy or possessive modifiers, since a pattern that only ever answers a yes/no match question has no notion for either to change`);switch(n.kind){case`star`:return{kind:`star`,operand:t};case`plus`:return{kind:`plus`,operand:t};case`optional`:return{kind:`optional`,operand:t};case`repeat`:return{kind:`repeat`,operand:t,min:n.min,max:n.max};default:throw Error(`unreachable quantifier kind`)}}peekIsQuantifierStart(){let e=this.peek();if(e===`*`||e===`+`||e===`?`)return!0;if(e===`{`){let e=this.pos,t=this.tryParseBound();return this.pos=e,t!==void 0}return!1}tryParseQuantifier(){let e=this.peek();if(e===`*`)return this.advance(),{kind:`star`};if(e===`+`)return this.advance(),{kind:`plus`};if(e===`?`)return this.advance(),{kind:`optional`};if(e===`{`){let e=this.tryParseBound();return e===void 0?void 0:{kind:`repeat`,min:e.min,max:e.max}}}tryParseBound(){let e=this.pos;this.pos+=1;let t=this.readDigits();if(t===``){this.pos=e;return}let n,r=!1;if(this.peek()===`,`&&(r=!0,this.pos+=1,n=this.readDigits()),this.peek()!==`}`){this.pos=e;return}this.pos+=1;let i=Number.parseInt(t,10),a=r?n===``?void 0:Number.parseInt(n??``,10):i;if(a!==void 0&&a<i)throw new rj(this.pattern,e,`quantifier range is backwards: {${t}${r?`,`+(n??``):``}} would require between ${String(i)} and ${String(a)} repetitions`);return{min:i,max:a}}readDigits(){let e=``;for(;;){let t=this.peek();if(t===void 0||t<`0`||t>`9`)break;e+=t,this.pos+=1}return e}parseAtom(){let e=this.peek();if(e===void 0)throw new rj(this.pattern,this.pos,`unexpected end of pattern`);if(e===`^`)return this.advance(),{kind:`anchorStart`};if(e===`$`)return this.advance(),{kind:`anchorEnd`};if(e===`.`)return this.advance(),{kind:`anyChar`};if(e===`(`)return this.parseGroup();if(e===`[`)return this.parseCharClass();if(e===`\\`)return this.parseEscapedAtom();if(e===`*`||e===`+`||e===`?`)throw new rj(this.pattern,this.pos,`quantifier '${e}' with nothing to repeat`);return this.advance(),{kind:`literal`,codeUnit:e.charCodeAt(0)}}parseGroup(){let e=this.pos;if(this.advance(),this.peek()===`?`&&this.peek(1)===`:`)this.advance(),this.advance();else throw new rj(this.pattern,e,`capturing groups are not supported in this grammar -- there is nothing to capture, since a pattern only ever answers whether it matches. Use '(?:...)' for grouping.`);let t=this.parseAlternation();if(this.peek()!==`)`)throw new rj(this.pattern,this.pos,`expected ')' to close '(?:'`);return this.advance(),t}parseEscapedAtom(){let e=this.pos;if(this.advance(),this.atEnd())throw new rj(this.pattern,e,`trailing backslash with nothing to escape`);let t=this.advance();if(t===`d`||t===`D`||t===`w`||t===`W`||t===`s`||t===`S`)return uj(t);let n=fj[t];if(n!==void 0)return{kind:`literal`,codeUnit:n.charCodeAt(0)};throw new rj(this.pattern,e,`unknown escape sequence '\\${t}'`)}parseCharClass(){let e=this.pos;this.advance();let t=!1;this.peek()===`^`&&(this.advance(),t=!0);let n=[];for(;;){if(this.atEnd())throw new rj(this.pattern,e,`unterminated character class -- missing closing ']'`);if(this.peek()===`]`){if(n.length===0)throw new rj(this.pattern,this.pos,`a character class must contain at least one item -- ']' immediately, or immediately after '[^', is not the empty class here (escape it as '\\]' to match a literal ']')`);this.advance();break}n.push(...this.parseClassItem())}return{kind:`charClass`,negated:t,ranges:n}}parseClassItem(){let e=this.peek();if(e===`\\`){let e=this.pos;if(this.advance(),this.atEnd())throw new rj(this.pattern,e,`trailing backslash with nothing to escape`);let t=this.advance();if(t===`d`||t===`w`||t===`s`)return uj(t).ranges;if(t===`D`||t===`W`||t===`S`)throw new rj(this.pattern,e,`the negated shorthand class '\\${t}' cannot be embedded inside a character class, because its complement cannot be represented as a set of ranges to union with the class's other members -- use it as its own atom instead of embedding it here`);let n=fj[t];if(n===void 0)throw new rj(this.pattern,e,`unknown escape sequence '\\${t}'`);return this.parseOptionalRangeFrom(n.charCodeAt(0))}if(e===void 0)throw new rj(this.pattern,this.pos,`unterminated character class -- missing closing ']'`);return this.advance(),this.parseOptionalRangeFrom(e.charCodeAt(0))}parseOptionalRangeFrom(e){if(this.peek()===`-`&&this.peek(1)!==void 0&&this.peek(1)!==`]`){let t=this.pos;this.advance();let n=this.parseClassRangeEndpoint();if(n<e)throw new rj(this.pattern,t,`invalid range in character class: '${String.fromCharCode(e)}-${String.fromCharCode(n)}' is reversed`);return[{from:e,to:n}]}return[{from:e,to:e}]}parseClassRangeEndpoint(){let e=this.peek();if(e===`\\`){let e=this.pos;if(this.advance(),this.atEnd())throw new rj(this.pattern,e,`trailing backslash with nothing to escape`);let t=this.advance();if(t===`d`||t===`D`||t===`w`||t===`W`||t===`s`||t===`S`)throw new rj(this.pattern,e,`a shorthand class ('\\${t}') cannot be a range endpoint`);let n=fj[t];if(n===void 0)throw new rj(this.pattern,e,`unknown escape sequence '\\${t}'`);return n.charCodeAt(0)}if(e===void 0)throw new rj(this.pattern,this.pos,`unterminated character class -- missing closing ']'`);return this.advance(),e.charCodeAt(0)}};function mj(e){let t=new pj(e),n=t.parseAlternation();if(!t.atEnd())throw new rj(e,t.position,`unexpected character -- if this was meant literally, escape it with a backslash`);return n}var hj=class{states=[];add(e){return this.states.push(e),this.states.length-1}patch(e,t){for(let n of e){let e=this.states[n.state];if(e!==void 0)switch(n.field){case`to`:(e.kind===`char`||e.kind===`anchorStart`||e.kind===`anchorEnd`)&&(e.to=t);break;case`to1`:e.kind===`split`&&(e.to1=t);break;case`to2`:e.kind===`split`&&(e.to2=t)}}}emptyFrag(){let e=this.add({kind:`split`,to1:-1,to2:-1});return{start:e,out:[{state:e,field:`to1`},{state:e,field:`to2`}]}}compileRepeat(e){let{operand:t,min:n,max:r}=e;if(r===void 0){if(n===0)return this.compileNode({kind:`star`,operand:t});let e=[];for(let r=0;r<n-1;r+=1)e.push(t);return e.push({kind:`plus`,operand:t}),this.compileNode({kind:`concat`,operands:e})}let i=[];for(let e=0;e<n;e+=1)i.push(t);for(let e=0;e<r-n;e+=1)i.push({kind:`optional`,operand:t});return i.length===0?this.emptyFrag():this.compileNode({kind:`concat`,operands:i})}compileNode(e){switch(e.kind){case`literal`:{let t=e.codeUnit,n=this.add({kind:`char`,test:e=>e===t,to:-1});return{start:n,out:[{state:n,field:`to`}]}}case`anyChar`:{let e=this.add({kind:`char`,test:()=>!0,to:-1});return{start:e,out:[{state:e,field:`to`}]}}case`charClass`:{let t=this.add({kind:`char`,test:t=>nj(e,t),to:-1});return{start:t,out:[{state:t,field:`to`}]}}case`anchorStart`:{let e=this.add({kind:`anchorStart`,to:-1});return{start:e,out:[{state:e,field:`to`}]}}case`anchorEnd`:{let e=this.add({kind:`anchorEnd`,to:-1});return{start:e,out:[{state:e,field:`to`}]}}case`concat`:{if(e.operands.length===0)return this.emptyFrag();let[t,...n]=e.operands;if(t===void 0)throw Error(`unreachable: a non-empty operands array always has a first element`);let r=this.compileNode(t);for(let e of n){let t=this.compileNode(e);this.patch(r.out,t.start),r={start:r.start,out:t.out}}return r}case`alternation`:{let[t,...n]=e.branches;if(t===void 0)throw Error(`unreachable: AlternationNode always has at least two branches`);let r=this.compileNode(t);for(let e of n){let t=this.compileNode(e);r={start:this.add({kind:`split`,to1:r.start,to2:t.start}),out:[...r.out,...t.out]}}return r}case`star`:{let t=this.compileNode(e.operand),n=this.add({kind:`split`,to1:t.start,to2:-1});return this.patch(t.out,n),{start:n,out:[{state:n,field:`to2`}]}}case`plus`:{let t=this.compileNode(e.operand),n=this.add({kind:`split`,to1:t.start,to2:-1});return this.patch(t.out,n),{start:t.start,out:[{state:n,field:`to2`}]}}case`optional`:{let t=this.compileNode(e.operand),n=this.add({kind:`split`,to1:t.start,to2:-1});return{start:n,out:[...t.out,{state:n,field:`to2`}]}}case`repeat`:return this.compileRepeat(e);default:throw Error(`unreachable regex node kind`)}}build(e){let t=this.compileNode(e),n=this.add({kind:`match`});return this.patch(t.out,n),{states:this.states,start:t.start,matchState:n}}};function gj(e){return new hj().build(e)}function _j(e,t,n,r){let i=new Set,a=new Set,o=[...t];for(;o.length>0;){let t=o.pop();if(t===void 0||a.has(t))continue;a.add(t);let s=e.states[t];if(s!==void 0)switch(s.kind){case`char`:case`match`:i.add(t);break;case`split`:o.push(s.to1,s.to2);break;case`anchorStart`:n===0&&o.push(s.to);break;case`anchorEnd`:n===r&&o.push(s.to)}}return i}function vj(e,t,n){let r=new Set;for(let i of t){let t=e.states[i];t?.kind===`char`&&t.test(n)&&r.add(t.to)}return r}function yj(e,t){let n=t.length,r=_j(e,[e.start],0,n);if(r.has(e.matchState))return!0;for(let i=0;i<n;i+=1){let a=t.charCodeAt(i),o=vj(e,r,a);if(o.add(e.start),r=_j(e,[...o],i+1,n),r.has(e.matchState))return!0}return!1}function bj(e){let t=gj(mj(e));return{test:e=>yj(t,e)}}function xj(e,t){if(e.status===`definite`&&!e.value||t.status===`definite`&&!t.value)return Q(!1);let n=hA(e,t);return n===void 0?Q(!0):{status:`indeterminate`,reason:n}}function Sj(e,t){if(e.status===`definite`&&e.value||t.status===`definite`&&t.value)return Q(!0);let n=hA(e,t);return n===void 0?Q(!1):{status:`indeterminate`,reason:n}}function Cj(e,t,n){switch(e){case`gt`:return t>n;case`gte`:return t>=n;case`lt`:return t<n;case`lte`:return t<=n;case`eq`:return t===n;case`neq`:return t!==n;default:throw Error(`unreachable comparison operator`)}}var wj={ms:1,s:1e3,min:6e4,h:36e5,d:864e5};function Tj(e,t){return e*wj[t]}function Ej(e){let t=Date.parse(e);return Number.isNaN(t)?void 0:t}function Dj(e){return $(`wrong-type`,`'${e}' is not a parseable ISO-8601 timestamp`)}function Oj(e){let t=new Date(e);return Number.isNaN(t.getTime())?$(`domain-error`,`the resulting instant falls outside the representable timestamp range`):Q({kind:`instant`,value:t.toISOString()})}function kj(e,t,n){switch(t.kind){case`number`:return n.kind===`number`?fA(t.unit,n.unit)?Q(Cj(e,t.value,n.value)):$(`wrong-type`,`cannot compare numbers with incompatible units`):$(`wrong-type`,`cannot compare a 'number' value with a '${n.kind}' value`);case`text`:return $(`wrong-type`,`text values are not comparable via 'compare'; use 'textCompare'`);case`boolean`:return n.kind===`boolean`?e!==`eq`&&e!==`neq`?$(`wrong-type`,`booleans have no natural ordering; '${e}' is only defined for 'eq'/'neq'`):Q(e===`eq`?t.value===n.value:t.value!==n.value):$(`wrong-type`,`cannot compare a 'boolean' value with a '${n.kind}' value`);case`instant`:{if(n.kind!==`instant`)return $(`wrong-type`,`cannot compare an 'instant' value with a '${n.kind}' value`);let r=Ej(t.value);if(r===void 0)return Dj(t.value);let i=Ej(n.value);return i===void 0?Dj(n.value):Q(Cj(e,r,i))}case`duration`:return n.kind===`duration`?Q(Cj(e,Tj(t.value,t.unit),Tj(n.value,n.unit))):$(`wrong-type`,`cannot compare a 'duration' value with a '${n.kind}' value`);case`complex`:return e!==`eq`&&e!==`neq`?$(`wrong-type`,`ordering operator '${e}' is not defined for complex values; the complex plane has no total order`):n.kind===`complex`?fA(t.unit,n.unit)?Q(e===`eq`?t.re===n.re&&t.im===n.im:t.re!==n.re||t.im!==n.im):$(`wrong-type`,`cannot compare complex values with incompatible units`):$(`wrong-type`,`cannot compare a 'complex' value with a '${n.kind}' value`);default:throw Error(`unreachable computed-value kind`)}}function Aj(e,t,n){if(t.kind!==`text`)return $(`wrong-type`,`'textCompare' requires 'text' operands; the left operand is '${t.kind}'`);if(n.kind!==`text`)return $(`wrong-type`,`'textCompare' requires 'text' operands; the right operand is '${n.kind}'`);switch(e){case`equals`:return Q(t.value===n.value);case`notEquals`:return Q(t.value!==n.value);case`matches`:case`notMatches`:{let r;try{r=new RegExp(n.value)}catch{return $(`wrong-type`,`'${n.value}' is not a valid regular expression pattern`)}let i=r.test(t.value);return Q(e===`matches`?i:!i)}case`portableMatches`:case`portableNotMatches`:{let r;try{r=bj(n.value)}catch(e){let t=e instanceof rj?e.message:String(e);return $(`wrong-type`,`'${n.value}' is not a valid trilean-regex pattern: ${t}`)}let i=r.test(t.value);return Q(e===`portableMatches`?i:!i)}default:throw Error(`unreachable text comparison operator`)}}function jj(e,t){switch(e.kind){case`number`:return t.kind===`number`?fA(e.unit,t.unit)?Q(e.value===t.value):$(`wrong-type`,`cannot compare numbers with incompatible units for membership`):$(`wrong-type`,`cannot compare a 'number' value with a '${t.kind}' value for membership`);case`text`:return t.kind===`text`?Q(e.value===t.value):$(`wrong-type`,`cannot compare a 'text' value with a '${t.kind}' value for membership`);case`boolean`:return t.kind===`boolean`?Q(e.value===t.value):$(`wrong-type`,`cannot compare a 'boolean' value with a '${t.kind}' value for membership`);case`instant`:{if(t.kind!==`instant`)return $(`wrong-type`,`cannot compare an 'instant' value with a '${t.kind}' value for membership`);let n=Ej(e.value);if(n===void 0)return Dj(e.value);let r=Ej(t.value);return r===void 0?Dj(t.value):Q(n===r)}case`duration`:return t.kind===`duration`?Q(Tj(e.value,e.unit)===Tj(t.value,t.unit)):$(`wrong-type`,`cannot compare a 'duration' value with a '${t.kind}' value for membership`);case`complex`:return t.kind===`complex`?fA(e.unit,t.unit)?Q(e.re===t.re&&e.im===t.im):$(`wrong-type`,`cannot compare complex values with incompatible units for membership`):$(`wrong-type`,`cannot compare a 'complex' value with a '${t.kind}' value for membership`);default:throw Error(`unreachable computed-value kind`)}}function Mj(e){return fA(e,void 0)}function Nj(e){switch(e.kind){case`number`:return Q({kind:`number`,value:-e.value,unit:e.unit});case`duration`:return Q({kind:`duration`,value:-e.value,unit:e.unit});case`complex`:return Q({kind:`complex`,re:-e.re,im:-e.im,unit:e.unit});case`text`:case`instant`:case`boolean`:return $(`wrong-type`,`cannot negate a '${e.kind}' value`);default:throw Error(`unreachable computed-value kind`)}}function Pj(e,t,n){switch(e){case`add`:return fA(t.unit,n.unit)?Q({kind:`number`,value:t.value+n.value,unit:t.unit}):$(`wrong-type`,`cannot add numbers with incompatible units`);case`subtract`:return fA(t.unit,n.unit)?Q({kind:`number`,value:t.value-n.value,unit:t.unit}):$(`wrong-type`,`cannot subtract numbers with incompatible units`);case`multiply`:return Q({kind:`number`,value:t.value*n.value,unit:pA(t.unit,n.unit)});case`divide`:return n.value===0?$(`domain-error`,`division by zero`):Q({kind:`number`,value:t.value/n.value,unit:mA(t.unit,n.unit)});case`power`:return!Mj(t.unit)||!Mj(n.unit)?$(`wrong-type`,`'power' requires dimensionless operands`):t.value<0&&!Number.isInteger(n.value)?$(`domain-error`,`a negative base raised to a non-integer power is not a real number`):t.value===0&&n.value<0?$(`domain-error`,`zero raised to a negative power is a division by zero`):Q({kind:`number`,value:t.value**n.value});case`modulo`:return!Mj(t.unit)||!Mj(n.unit)?$(`wrong-type`,`'modulo' requires dimensionless operands`):n.value===0?$(`domain-error`,`modulo by zero`):Q({kind:`number`,value:t.value%n.value});default:throw Error(`unreachable arithmetic operator`)}}function Fj(e,t,n){switch(e){case`add`:return Q({kind:`duration`,value:Tj(t.value,t.unit)+Tj(n.value,n.unit),unit:`ms`});case`subtract`:return Q({kind:`duration`,value:Tj(t.value,t.unit)-Tj(n.value,n.unit),unit:`ms`});case`multiply`:case`divide`:case`power`:case`modulo`:return $(`wrong-type`,`arithmetic operator '${e}' is not defined between two 'duration' values`);default:throw Error(`unreachable arithmetic operator`)}}function Ij(e){return e.kind===`complex`?e:{kind:`complex`,re:e.value,im:0,unit:e.unit}}function Lj(e,t){return{kind:`complex`,re:e.re*t.re-e.im*t.im,im:e.re*t.im+e.im*t.re,unit:pA(e.unit,t.unit)}}function Rj(e,t,n){switch(e){case`add`:return fA(t.unit,n.unit)?Q({kind:`complex`,re:t.re+n.re,im:t.im+n.im,unit:t.unit}):$(`wrong-type`,`cannot add complex values with incompatible units`);case`subtract`:return fA(t.unit,n.unit)?Q({kind:`complex`,re:t.re-n.re,im:t.im-n.im,unit:t.unit}):$(`wrong-type`,`cannot subtract complex values with incompatible units`);case`multiply`:return Q(Lj(t,n));case`divide`:{let e=n.re*n.re+n.im*n.im;return e===0?$(`domain-error`,`division by zero`):Q({kind:`complex`,re:(t.re*n.re+t.im*n.im)/e,im:(t.im*n.re-t.re*n.im)/e,unit:mA(t.unit,n.unit)})}case`modulo`:return $(`domain-error`,`'modulo' is undefined for complex values`);default:throw Error(`unreachable arithmetic operator`)}}function zj(e,t){if(t.kind!==`number`||!Number.isInteger(t.value))return $(`wrong-type`,`'power' with a complex operand requires a real integer exponent`);if(!Mj(e.unit)||!Mj(t.unit))return $(`wrong-type`,`'power' requires dimensionless operands`);let n={kind:`complex`,re:1,im:0,unit:{}},r=Ij(e),i=n;for(let e=0;e<Math.abs(t.value);e+=1)i=Lj(i,r);return t.value>=0?Q(i):Rj(`divide`,n,i)}function Bj(e,t,n){if(t.kind===`instant`&&n.kind===`instant`&&e===`subtract`){let e=Ej(t.value);if(e===void 0)return Dj(t.value);let r=Ej(n.value);return r===void 0?Dj(n.value):Q({kind:`duration`,value:e-r,unit:`ms`})}if(t.kind===`instant`&&n.kind===`duration`&&e===`add`){let e=Ej(t.value);return e===void 0?Dj(t.value):Oj(e+Tj(n.value,n.unit))}if(t.kind===`duration`&&n.kind===`instant`&&e===`add`){let e=Ej(n.value);return e===void 0?Dj(n.value):Oj(e+Tj(t.value,t.unit))}return t.kind===`instant`||n.kind===`instant`?$(`wrong-type`,`arithmetic operator '${e}' is not defined between a '${t.kind}' and a '${n.kind}' value`):t.kind===`duration`&&n.kind===`duration`?Fj(e,t,n):t.kind===`duration`||n.kind===`duration`?$(`wrong-type`,`arithmetic operator '${e}' is not defined between a '${t.kind}' and a '${n.kind}' value`):t.kind!==`number`&&t.kind!==`complex`?$(`wrong-type`,`arithmetic requires numeric operands; got a '${t.kind}' value`):n.kind!==`number`&&n.kind!==`complex`?$(`wrong-type`,`arithmetic requires numeric operands; got a '${n.kind}' value`):t.kind===`complex`||n.kind===`complex`?e===`power`?zj(t,n):Rj(e,Ij(t),Ij(n)):Pj(e,t,n)}function Vj(e,t){if(e!==void 0){if(t.kind!==`number`&&t.kind!==`complex`)return $(`wrong-type`,`a unit was expected on a reference that resolved to a non-numeric value`);if(!fA(e,t.unit))return $(`wrong-type`,`the resolved value's unit does not match the reference's expected unit`)}}function Hj(e,t,n){let r=Object.hasOwn(e,t)?e[t]:void 0;if(r===void 0)return $(`wrong-type`,`no function registered under the name '${t}'`);let i=r(n);return`domainError`in i?$(`domain-error`,i.domainError):Q(i)}async function Uj(e,t,n,r,i,a,o,s,c){let l=s.checkNode(c);if(l!==void 0)return l;switch(e.kind){case`not`:{let l=await Uj(e.operand,t,n,r,i,a,o,s,c+1);return l.status===`indeterminate`?l:Q(!l.value)}case`and`:{let[l,u]=await Promise.all([Uj(e.left,t,n,r,i,a,o,s,c+1),Uj(e.right,t,n,r,i,a,o,s,c+1)]);return xj(l,u)}case`or`:{let[l,u]=await Promise.all([Uj(e.left,t,n,r,i,a,o,s,c+1),Uj(e.right,t,n,r,i,a,o,s,c+1)]);return Sj(l,u)}case`allOf`:return(await Promise.all(e.operands.map(async e=>Uj(e,t,n,r,i,a,o,s,c+1)))).reduce(xj,Q(!0));case`anyOf`:return(await Promise.all(e.operands.map(async e=>Uj(e,t,n,r,i,a,o,s,c+1)))).reduce(Sj,Q(!1));case`compare`:{let[l,u]=await Promise.all([Wj(e.left,t,n,r,i,a,o,s,c+1),Wj(e.right,t,n,r,i,a,o,s,c+1)]);return l.status===`indeterminate`?l:u.status===`indeterminate`?u:kj(e.op,l.value,u.value)}case`textCompare`:{let[l,u]=await Promise.all([Wj(e.left,t,n,r,i,a,o,s,c+1),Wj(e.right,t,n,r,i,a,o,s,c+1)]);return l.status===`indeterminate`?l:u.status===`indeterminate`?u:Aj(e.op,l.value,u.value)}case`memberOf`:{let l=await Wj(e.operand,t,n,r,i,a,o,s,c+1);if(l.status===`indeterminate`)return l;let u=await Promise.all(e.candidates.map(async e=>{let u=await Wj(e,t,n,r,i,a,o,s,c+1);return u.status===`indeterminate`?u:jj(l.value,u.value)}));for(let t of u)if(t.status===`definite`&&t.value)return Q(e.op===`in`);let d=hA(...u);return d===void 0?Q(e.op===`notIn`):{status:`indeterminate`,reason:d}}case`exists`:{let l=await Wj(e.operand,t,n,r,i,a,o,s,c+1);return l.status===`indeterminate`&&l.reason.code===`not-found`?Q(!1):Q(!0)}case`some`:case`every`:{let r=await $A(Uj,e.collection,e.filter,t,n,i,a,o,s,c+1),l=(await Promise.all(r.map(async({item:t,filterOutcome:r})=>{if(r!==`exclude`)return r===`include`?Uj(e.item,t,n,void 0,i,a,o,s,c+1):r}))).filter(e=>e!==void 0),u=e.kind===`some`?Sj:xj,d=e.kind===`some`?Q(!1):Q(!0);return l.reduce(u,d)}case`treeReference`:{if(n.resolveTree===void 0)return $(`wrong-type`,`no tree resolver registered for treeReference nodes`);let l=JSON.stringify(e.key);if(a.has(l))return $(`domain-error`,`circular treeReference detected`);if(o>=100)return $(`domain-error`,`treeReference chain exceeds the maximum depth of 100`);let u=await n.resolveTree(e.key,t);if(!u.found)return $(`not-found`,`treeReference key did not resolve to a tree`);let d=PA.safeParse(u.node);return d.success?Uj(d.data,t,n,r,i,new Set([...a,l]),o+1,s,c+1):$(`wrong-type`,`the referenced tree is not a valid PredicateNode`)}default:throw Error(`unreachable predicate node kind`)}}async function Wj(e,t,n,r,i,a,o,s,c){let l=s.checkNode(c);if(l!==void 0)return l;switch(e.kind){case`reference`:{let r=await n.resolveValue(e.key,t);if(!r.found)return $(`not-found`,`no value found for reference key ${JSON.stringify(e.key)}`);let i=Vj(e.unit,r.value);return i===void 0?Q(r.value):i}case`accumulator`:return r===void 0?$(`wrong-type`,`accumulator used outside a reduce fold's combine expression`):Q(r);case`call`:{let l=await Promise.all(e.args.map(async e=>Wj(e,t,n,r,i,a,o,s,c+1))),u=[];for(let e of l){if(e.status===`indeterminate`)return e;u.push(e.value)}return Hj(i,e.fn,u)}case`numberLiteral`:return Q({kind:`number`,value:e.value,unit:e.unit});case`textLiteral`:return Q({kind:`text`,value:e.value});case`booleanLiteral`:return Q({kind:`boolean`,value:e.value});case`instantLiteral`:return Q({kind:`instant`,value:e.value});case`durationLiteral`:return Q({kind:`duration`,value:e.value,unit:e.unit});case`complexLiteral`:return`re`in e?Q({kind:`complex`,re:e.re,im:e.im,unit:e.unit}):Q(cA(e.magnitude,e.phase,e.unit));case`arithmetic`:{let[l,u]=await Promise.all([Wj(e.left,t,n,r,i,a,o,s,c+1),Wj(e.right,t,n,r,i,a,o,s,c+1)]);return l.status===`indeterminate`?l:u.status===`indeterminate`?u:Bj(e.op,l.value,u.value)}case`negate`:{let l=await Wj(e.operand,t,n,r,i,a,o,s,c+1);return l.status===`indeterminate`?l:Nj(l.value)}case`lookup`:{let l=await Promise.all(e.keys.map(async e=>Wj(e,t,n,r,i,a,o,s,c+1))),u=[];for(let e of l){if(e.status===`indeterminate`)return e;u.push(e.value)}let d=await n.resolveLookup(e.table,u,t);return d.found?Q(d.value):$(`not-found`,`no match found in lookup table ${JSON.stringify(e.table)}`)}case`conditional`:{if((e.hitPolicy??`first`)===`first`){for(let{when:l,then:u}of e.cases){let e=await Uj(l,t,n,r,i,a,o,s,c+1);if(e.status===`indeterminate`)return e;if(e.value)return Wj(u,t,n,r,i,a,o,s,c+1)}return Wj(e.fallback,t,n,r,i,a,o,s,c+1)}let l=await Promise.all(e.cases.map(async({when:e,then:l})=>({then:l,whenResult:await Uj(e,t,n,r,i,a,o,s,c+1)}))),u=l.filter(({whenResult:e})=>e.status===`definite`&&e.value);if(u.length>=2)return $(`domain-error`,`more than one case matched under the 'unique' hit policy`);let d=hA(...l.map(({whenResult:e})=>e));if(d!==void 0)return{status:`indeterminate`,reason:d};let[f]=u;return Wj(f===void 0?e.fallback:f.then,t,n,r,i,a,o,s,c+1)}case`fold`:{let r=await $A(Uj,e.collection,e.filter,t,n,i,a,o,s,c+1),l=ej(r);if(l!==void 0)return{status:`indeterminate`,reason:l};let u=r.filter(({filterOutcome:e})=>e===`include`).map(({item:e})=>e);if(e.combiner.mode===`reduce`){let r=await Wj(e.combiner.initial,t,n,void 0,i,a,o,s,c+1);if(r.status===`indeterminate`)return r;let l=r.value;for(let t of u){let r=await Wj(e.combiner.combine,t,n,l,i,a,o,s,c+1);if(r.status===`indeterminate`)return r;l=r.value}return Q(l)}if(u.length===0)return $(`domain-error`,`'${e.combiner.mode}' has no participating items to seed a running result from`);let d=e.combiner.mode===`max`?`gt`:`lt`,f;for(let t of u){let r=await Wj(e.combiner.item,t,n,void 0,i,a,o,s,c+1);if(r.status===`indeterminate`)return r;if(f===void 0){f=r.value;continue}let l=kj(d,r.value,f);if(l.status===`indeterminate`)return l;l.value&&(f=r.value)}if(f===void 0)throw Error(`unreachable: max/min over a non-empty participating list produced no running result`);return Q(f)}case`delegate`:{if(n.resolveDelegate===void 0)return $(`wrong-type`,`no delegate handler registered for external system '${e.system}'`);let r=await n.resolveDelegate(e.system,e.payload,t);return r.found?Q(r.value):$(`not-found`,`delegate handler for external system '${e.system}' reported no value`)}case`treeReference`:{if(n.resolveTree===void 0)return $(`wrong-type`,`no tree resolver registered for treeReference nodes`);let l=JSON.stringify(e.key);if(a.has(l))return $(`domain-error`,`circular treeReference detected`);if(o>=100)return $(`domain-error`,`treeReference chain exceeds the maximum depth of 100`);let u=await n.resolveTree(e.key,t);if(!u.found)return $(`not-found`,`treeReference key did not resolve to a tree`);let d=YA.safeParse(u.node);return d.success?Wj(d.data,t,n,r,i,new Set([...a,l]),o+1,s,c+1):$(`wrong-type`,`the referenced tree is not a valid ExpressionNode`)}default:throw Error(`unreachable expression node kind`)}}function Gj({functions:e=XA,maxNodes:t=ZA,maxNestingDepth:n=500}){return{evaluatePredicate:async(r,i,a)=>Uj(r,i,a,void 0,e,new Set,0,QA(t,n),0),evaluateValue:async(r,i,a)=>Wj(r,i,a,void 0,e,new Set,0,QA(t,n),0)}}var{evaluatePredicate:Kj,evaluateValue:qj}=Gj({}),Jj=UT(PA),Yj=`bearer-is`,Xj=`expires-at`,Zj=`scope-narrows`,Qj=`capability-is`,$j=`depth-remaining`,eM=[Yj,Xj,Zj,Qj,$j];function tM(e){return e===`bearer-is`||e===`expires-at`||e===`scope-narrows`||e===`capability-is`||e===`depth-remaining`}var nM=`grantee-is`,rM=`granted-capability-is`;function iM(e){return e===`grantee-is`||e===`granted-capability-is`}var aM={[nM]:(e,t)=>t.subject===void 0||typeof e!=`string`?{found:!1}:sM(AO(t.subject.bearer)===e),[rM]:(e,t)=>t.subject===void 0||typeof e!=`string`?{found:!1}:sM(t.subject.capability===e)};function oM(e,t){return{kind:`not`,operand:{kind:`and`,left:lM(rM,e),right:lM(nM,AO(t))}}}function sM(e){return{found:!0,value:{kind:`boolean`,value:e}}}var cM={[Yj]:(e,t)=>t.parentClaims===void 0?sM(!1):sM(iA(t.parentClaims.bearer,t.childIssuer)),[Xj]:(e,t)=>t.parentClaims===void 0?sM(!1):sM(t.candidate.expires<=t.parentClaims.expires),[Zj]:(e,t)=>t.parentClaims===void 0?sM(!1):sM(sA(t.parentClaims.scope,t.candidate.scope)),[Qj]:(e,t)=>t.parentClaims===void 0?sM(!1):sM(t.parentClaims.capability===t.candidate.capability),[$j]:(e,t)=>{if(t.parentClaims===void 0)return sM(!1);let n=t.parentClaims[`delegations-remaining`];return sM(n===void 0||t.candidate.delegationsRemaining!==void 0&&t.candidate.delegationsRemaining<n)}};function lM(e,t=null){return{kind:`compare`,op:`eq`,left:{kind:`delegate`,system:e,payload:t},right:{kind:`booleanLiteral`,value:!0}}}var uM=async()=>Promise.resolve({found:!1}),dM=async()=>Promise.resolve({found:!1}),fM=async()=>Promise.resolve([]);async function pM(e,t,n){let r={childIssuer:t,candidate:n,parentClaims:e},i={resolveValue:uM,resolveLookup:dM,resolveCollection:fM,resolveDelegate:async(e,t)=>tM(e)?cM[e](t,r):{found:!1}};return nA(eM,async e=>{let t=await Kj(lM(e),r,i);return t.status!==`definite`||!t.value})}async function mM(e,t,n,r={},i){let a=i===void 0?{clock:n,claims:t}:{clock:n,claims:t,subject:i},o={resolveValue:uM,resolveLookup:dM,resolveCollection:fM,resolveDelegate:async(e,t)=>{if(i!==void 0&&iM(e))try{return await aM[e](t,a)}catch{return{found:!1}}let n=Object.hasOwn(r,e)?r[e]:void 0;if(n===void 0)return{found:!1};try{return await n(t,a)}catch{return{found:!1}}}};return await nA(e,async e=>{let t=await Kj(e,a,o);return t.status!==`definite`||!t.value})===void 0?{ok:!0}:{ok:!1,reason:`not_satisfied`}}var hM=`manage:grant`,gM=64;function _M(e,t){return Mg([`Signature1`,e,new Uint8Array,t],hg)}function vM(e){return Uint8Array.from(e)}function yM(e){return vM(Mg(e,hg))}function bM(e){return yM({1:e.identityKey.alg,4:e.deviceId})}function xM(e){let[,,t]=e;if(t===null)return;let n;try{n=b_(t,x_)}catch{return}let r=rO.safeParse(n);return r.success?r.data:void 0}async function SM(e,t){let n=await TM(e,{identity:t.identity,clock:t.clock,revocation:t.revocation,...t.extraPredicateResolvers===void 0?{}:{extraPredicateResolvers:t.extraPredicateResolvers}});return n.ok&&t.expectedBearer!==void 0&&!iA(n.claims.bearer,t.expectedBearer)?{ok:!1,reason:`bearer_mismatch`}:n}async function CM(e,t,n){if(iA(e.issuer,t.issuer))return!0;if(e.authorization===void 0)return!1;let r;try{r=b_(e.authorization,x_)}catch{return!1}let i=nO.safeParse(r);if(!i.success)return!1;let a=await SM(i.data,{...n,expectedBearer:e.issuer});return a.ok&&a.claims.capability===`manage:revoke`&&sA(a.claims.scope,t.scope)}var wM={depth:0,seen:new Set};async function TM(e,t,{subjectClaims:n,depth:r,seen:i}=wM){let[a,,o,s]=e;if(o===null)return{ok:!1,reason:`malformed`};if(r>=gM)return{ok:!1,reason:`chain_too_deep`};let c=kO(o);if(i.has(c))return{ok:!1,reason:`chain_cycle`};let l=new Set(i).add(c),u;try{u=b_(o,x_)}catch{return{ok:!1,reason:`malformed`}}let d=rO.safeParse(u);if(!d.success)return{ok:!1,reason:`malformed`};let f=d.data;if(!await pk(t.identity,f[`issuer-key`],_M(a,o),s))return{ok:!1,reason:`bad_signature`};if(!iA(await t.identity.deriveDeviceId(f[`issuer-key`][`public-key`]),f.issuer))return{ok:!1,reason:`wrong_issuer`};let p=t.clock.now();if(f.expires<=p)return{ok:!1,reason:`expired`};if(f[`not-before`]!==void 0&&f[`not-before`]>p)return{ok:!1,reason:`not_yet_valid`};let m=f[`valid-until`];if(m!==void 0&&m<=p)return{ok:!1,reason:`content_expired`};if(await nA(await t.revocation.entriesFor(f[`token-id`]),async e=>CM(e,f,t))!==void 0)return{ok:!1,reason:`revoked`};if(f.conditions!==void 0){let e;try{e=b_(f.conditions,x_)}catch{return{ok:!1,reason:`conditions_invalid`}}let r=Jj.safeParse(e);if(!r.success)return{ok:!1,reason:`conditions_invalid`};if(!(await mM(r.data,f,t.clock,t.extraPredicateResolvers,n)).ok)return{ok:!1,reason:`conditions_not_satisfied`}}let h=f.parent,g=f[`authorised-by`];if(f.capability===`manage:grant`&&h!==void 0)return{ok:!1,reason:`authorisation_invalid`};if(h!==void 0&&g!==void 0)return{ok:!1,reason:`malformed`};if(h!==void 0){let e;try{e=b_(h,x_)}catch{return{ok:!1,reason:`parent_invalid`}}let n=nO.safeParse(e);if(!n.success)return{ok:!1,reason:`parent_invalid`};let i=await TM(n.data,t,{depth:r+1,seen:l});if(!i.ok)return i.reason===`chain_too_deep`||i.reason===`chain_cycle`?{ok:!1,reason:i.reason}:{ok:!1,reason:`parent_invalid`};let a={capability:f.capability,scope:f.scope,expires:f.expires,...f[`delegations-remaining`]===void 0?{}:{delegationsRemaining:f[`delegations-remaining`]}};return await pM(i.claims,f.issuer,a)===void 0?{ok:!0,claims:f,rootIssuer:i.rootIssuer,rootIssuerKey:i.rootIssuerKey,depth:i.depth+1}:{ok:!1,reason:`delegation_exceeds_parent`}}if(g!==void 0){let e;try{e=b_(g,x_)}catch{return{ok:!1,reason:`authorisation_invalid`}}let n=nO.safeParse(e);if(!n.success)return{ok:!1,reason:`authorisation_invalid`};let i=await TM(n.data,t,{subjectClaims:f,depth:r+1,seen:l});if(!i.ok)return i.reason===`chain_too_deep`||i.reason===`chain_cycle`?{ok:!1,reason:i.reason}:{ok:!1,reason:`authorisation_invalid`};let a=i.claims,o=a[`grants-capability`];return iA(a.bearer,f.issuer)&&a.capability===`manage:grant`&&(o===void 0||o===f.capability)&&sA(a.scope,f.scope)&&f.expires<=a.expires&&(a[`delegations-remaining`]===void 0||f[`delegations-remaining`]!==void 0&&f[`delegations-remaining`]<a[`delegations-remaining`])?{ok:!0,claims:f,rootIssuer:i.rootIssuer,rootIssuerKey:i.rootIssuerKey,depth:i.depth+1}:{ok:!1,reason:`authorisation_invalid`}}return{ok:!0,claims:f,rootIssuer:f.issuer,rootIssuerKey:f[`issuer-key`],depth:0}}async function EM(e,t){let[n,,r,i]=e;if(r===null)return{ok:!1,reason:`malformed`};let a;try{a=b_(r,x_)}catch{return{ok:!1,reason:`malformed`}}let o=mD.safeParse(a);if(!o.success)return{ok:!1,reason:`malformed`};let s=o.data;return await pk(t.identity,s[`issuer-key`],_M(n,r),i)?iA(await t.identity.deriveDeviceId(s[`issuer-key`][`public-key`]),s.issuer)?{ok:!0,claims:s}:{ok:!1,reason:`wrong_issuer`}:{ok:!1,reason:`bad_signature`}}var DM={"bearer-is":`parent_bearer_mismatch`,"expires-at":`expires_exceeds_parent`,"scope-narrows":`scope_does_not_narrow`,"capability-is":`capability_mismatch`,"depth-remaining":`delegation_exceeds_parent`};async function OM(e,t,n){let r=await pM(e,t,n);return r===void 0?void 0:DM[r]}async function kM(e,t,n){if(e.parent!==void 0)return`authorisation_parent_forbidden`;if(!iA(e.bearer,t))return`authorisation_bearer_mismatch`;let r=e[`grants-capability`];if(e.capability!==`manage:grant`||r!==void 0&&r!==n.capability)return`authorisation_capability_mismatch`;if(!sA(e.scope,n.scope))return`authorisation_scope_does_not_narrow`;if(n.expires>e.expires)return`authorisation_exceeds_authoriser`;let i=e[`delegations-remaining`];if(i!==void 0&&(n.delegationsRemaining===void 0||n.delegationsRemaining>=i))return`authorisation_delegation_exceeds`;if(e.conditions!==void 0){let t;try{t=b_(e.conditions,x_)}catch{return`authorisation_malformed`}let r=Jj.safeParse(t);if(!r.success)return`authorisation_malformed`;if(!(await mM(r.data,e,{now:()=>0},{},n)).ok)return`authorisation_conditions_not_satisfied`}}async function AM(e){for(let t of[e.capability,e.grantsCapability,e.requestsCapability])if(t!==void 0&&!YD.safeParse(t).success)return{ok:!1,reason:`invalid_capability`};if(e.expires<=e.clock.now())return{ok:!1,reason:`already_expired`};if(e.parent!==void 0&&e.authorisedBy!==void 0)return{ok:!1,reason:`links_exclusive`};if(e.capability===`manage:grant`&&e.parent!==void 0)return{ok:!1,reason:`authorisation_parent_forbidden`};let t;if(e.parent!==void 0){let n=xM(e.parent);if(n===void 0)return{ok:!1,reason:`parent_malformed`};let r=await OM(n,e.identity.deviceId,{capability:e.capability,scope:e.scope,expires:e.expires,...e.delegationsRemaining===void 0?{}:{delegationsRemaining:e.delegationsRemaining}});if(r!==void 0)return{ok:!1,reason:r};t=yM(e.parent)}let n;if(e.authorisedBy!==void 0){let t=xM(e.authorisedBy);if(t===void 0)return{ok:!1,reason:`authorisation_malformed`};let r=await kM(t,e.identity.deviceId,{capability:e.capability,scope:e.scope,bearer:e.bearer,expires:e.expires,...e.delegationsRemaining===void 0?{}:{delegationsRemaining:e.delegationsRemaining}});if(r!==void 0)return{ok:!1,reason:r};n=yM(e.authorisedBy)}let r=yM({"token-id":e.tokenId,issuer:e.identity.deviceId,"issuer-key":e.identity.identityKey,bearer:e.bearer,capability:e.capability,scope:e.scope,expires:e.expires,...e.notBefore===void 0?{}:{"not-before":e.notBefore},...t===void 0?{}:{parent:t},...e.delegationsRemaining===void 0?{}:{"delegations-remaining":e.delegationsRemaining},...e.conditions===void 0?{}:{conditions:yM(e.conditions)},...n===void 0?{}:{"authorised-by":n},...e.grantsCapability===void 0?{}:{"grants-capability":e.grantsCapability},...e.requestsCapability===void 0?{}:{"requests-capability":e.requestsCapability}}),i=bM(e.identity);return{ok:!0,token:[i,{},r,await e.identity.sign(_M(i,r))]}}async function jM(e){let t=yM({"token-id":e.tokenId,issuer:e.identity.deviceId,"issuer-key":e.identity.identityKey,"revoked-at":e.revokedAt}),n=bM(e.identity);return[n,{},t,await e.identity.sign(_M(n,t))]}var MM=`wm-grant1.`;function NM(e){let t=e[2];if(t===null)return;let n;try{n=b_(t,x_)}catch{return}let r=rO.safeParse(n);return r.success?r.data:void 0}function PM(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function FM(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function IM(e){return MM+PM(Mg(e,hg))}function LM(e){let t=e.trim();if(!t.startsWith(`wm-grant1.`))throw Error(`a grant code starts with "${MM}"`);let n;try{n=b_(FM(t.slice(10)),x_)}catch{throw Error(`the grant code is damaged: it does not decode`)}let r=nO.safeParse(n);if(!r.success||NM(r.data)===void 0)throw Error(`the grant code does not carry a capability token`);return r.data}async function RM(e,t){let n=await SM(e,t);return n.ok?{kind:`valid`}:{kind:`invalid`,reason:n.reason}}var zM={malformed:`malformed`,bad_signature:`signature does not verify`,wrong_issuer:`issuer does not match its key`,bearer_mismatch:`names another bearer`,expired:`expired`,not_yet_valid:`not valid yet`,content_expired:`content expired`,revoked:`revoked`,delegation_exceeds_parent:`exceeds what its parent allows`,parent_invalid:`its parent grant is no longer valid`,conditions_invalid:`its conditions are invalid`,conditions_not_satisfied:`its conditions are not met`,authorisation_invalid:`exceeds what its authorising grant allows`,chain_too_deep:`its chain is deeper than allowed`,chain_cycle:`its chain revisits a token`};function BM(e){return e.kind===`valid`?`valid`:zM[e.reason]}var VM=`grant/`;function HM(e,t){return`${VM}${e}/${t}`}function UM(e){let t=e.slice(6).split(`/`)[0];if(t===`held`||t===`issued`)return t;throw Error(`stored grant key ${e} names no direction`)}function WM(e){return typeof e==`object`&&!!e&&`token`in e&&`recordedAt`in e&&typeof e.recordedAt==`number`}function GM(e){let t=new Set;return{async record(n,r,i){let a=NM(r);if(a===void 0)throw Error(`a grant must carry readable token claims`);let o=HM(n,kO(a[`token-id`]));if(await e.get(o)===void 0){await e.set(o,new Uint8Array(Mg({token:r,recordedAt:i},hg)));for(let e of t)e()}},async list(){let t=[],n=await e.keys(VM),r=await Promise.all(n.map(async t=>({key:t,value:await e.get(t)})));for(let{key:e,value:n}of r){if(n===void 0)continue;let r=b_(n,x_);if(!WM(r))throw Error(`stored grant at ${e} is malformed`);let i=nO.safeParse(r.token);if(!i.success)throw Error(`stored grant at ${e} is malformed`);let a=NM(i.data);if(a===void 0)throw Error(`stored grant at ${e} has unreadable claims`);t.push({tokenId:kO(a[`token-id`]),direction:UM(e),token:i.data,claims:a,recordedAt:r.recordedAt})}return t.sort((e,t)=>t.recordedAt-e.recordedAt)},subscribe(e){return t.add(e),()=>{t.delete(e)}}}}function KM(e){return kO(e)}function qM(){let e=new Map;return{async entriesFor(t){return Promise.resolve(e.get(KM(t))??[])},async record(t,n){let r=await EM(t,n);if(r.ok){let t=KM(r.claims[`token-id`]),n=e.get(t);n===void 0?e.set(t,[r.claims]):n.push(r.claims)}return r}}}var JM=`revocation/`;async function YM(e,t,n){let r;try{r=b_(n,x_)}catch{return`it is not valid CBOR`}let i=hD.safeParse(r);if(!i.success)return`it is not a revocation entry`;let a=await e.record(i.data,{identity:t});return a.ok?void 0:`it no longer verifies (${a.reason})`}async function XM(e){let{storage:t,identity:n,clock:r}=e,i=qM(),a=new Set;async function o(e){let r=await i.record(e,{identity:n});if(r.ok){let n=`${JM}${kO(r.claims.issuer)}/${kO(r.claims[`token-id`])}`;await t.set(n,new Uint8Array(Mg(e,hg)));for(let e of a)e()}return r}let s=await t.keys(JM),c=(await Promise.all(s.map(async e=>{let r=await t.get(e);if(r===void 0)return;let a=await YM(i,n,r);return a===void 0?void 0:{key:e,reason:a}}))).filter(e=>e!==void 0);return{view:i,unreadable:()=>c,async discardUnreadable(e){await t.delete(e),c=c.filter(t=>t.key!==e);for(let e of a)e()},subscribe(e){return a.add(e),()=>{a.delete(e)}},ingest:o,async revoke(e){let t=await jM({identity:n,tokenId:e,revokedAt:r.now()}),i=await o(t);if(!i.ok)throw Error(`the revocation this device signed does not verify (${i.reason})`);return t}}}var ZM=`preferences/intro-dismissed`,QM=new Uint8Array([1]);function $M(e){return{async introDismissed(){return await e.get(ZM)!==void 0},async setIntroDismissed(t){t?await e.set(ZM,new Uint8Array(QM)):await e.delete(ZM)}}}var eN=`agent/self`,tN=`wire-mesh-console`;function nN(e){return e.slice(0,12)}var rN=/[\p{Cc}\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu;function iN(e){let t=e.replace(rN,``).trim();if(t!==``)return Array.from(t).slice(0,64).join(``).trimEnd()}function aN(e){let t=e[eN];if(typeof t==`object`&&t&&`name`in t&&typeof t.name==`string`)return iN(t.name)}function oN(e){return{[eN]:{name:e,harness:tN}}}function sN(e,t,n,r){return t===void 0?n===void 0?{primary:nN(e),secondary:void 0,source:`id`,matchesPetname:!1}:{primary:n,secondary:nN(e),source:`self`,matchesPetname:r.has(n)}:{primary:t,secondary:n!==void 0&&n!==t?n:void 0,source:`petname`,matchesPetname:!1}}function cN(e){return e.source===`self`&&e.secondary!==void 0?`${e.primary} (${e.secondary})`:e.primary}var lN=`petname/`,uN=`self-name`,dN=new TextEncoder,fN=new TextDecoder;function pN(e){async function t(t,n){let r=iN(n);if(r===void 0){await e.delete(t);return}await e.set(t,new Uint8Array(dN.encode(r)))}return{async petnames(){let t=new Map,n=await e.keys(lN),r=await Promise.all(n.map(async t=>({key:t,value:await e.get(t)})));for(let{key:e,value:n}of r)n!==void 0&&t.set(e.slice(8),fN.decode(n));return t},async setPetname(e,n){await t(lN+e,n)},async selfName(){let t=await e.get(uN);return t===void 0?void 0:fN.decode(t)},async setSelfName(e){await t(uN,e)}}}var mN=String(2**53-1).length,hN=`message`;function gN(e,t){return`${hN}/${e}/${String(t.sentAt).padStart(mN,`0`)}-${kO(t.messageId)}`}function _N(e){let t=e.slice(`${hN}/`.length);return t.slice(0,t.lastIndexOf(`/`))}function vN(e){return e===`sent`||e===`received`}function yN(e){return typeof e!=`object`||!e||!(`direction`in e)||!(`text`in e)||!(`messageId`in e)||!(`sentAt`in e)?!1:vN(e.direction)&&typeof e.text==`string`&&e.messageId instanceof Uint8Array&&typeof e.sentAt==`number`}function bN(e){return{async append(t,n){await e.set(gN(t,n),new Uint8Array(Mg(n,hg)))},async roomPaths(){let t=await e.keys(`${hN}/`);return[...new Set(t.map(_N))]},async list(t){let n=(await e.keys(`${hN}/${t}/`)).sort(),r=[],i=await Promise.all(n.map(async t=>({key:t,value:await e.get(t)})));for(let{key:e,value:t}of i){if(t===void 0)continue;let n=b_(t,x_);if(!yN(n))throw Error(`stored message at ${e} is malformed`);r.push(n)}return r}}}function xN(e){return new Uint8Array(Mg(e,hg))}function SN(e,t){return{type:`relay-data`,payload:xN(e),...t===void 0?{}:{"to-device":t}}}var CN=class extends Error{constructor(e){super(e),this.name=`SchemaInvalidFrameError`}};function wN(e){let t=b_(new Uint8Array(e),x_),n=ZE.safeParse(t);if(!n.success)throw new CN(n.error.message);return n.data}function TN(e){let t;try{t=b_(e,x_)}catch{return null}let n=ZE.safeParse(t);return n.success?n.data:null}var EN=16,DN=4096;function ON(e){let t=0;for(let n of e)t+=String(n.length).length+1+n.length;return t}function kN(...e){let t=``;for(let n of e){t+=`${String(n.length)}:`;for(let e=0;e<n.length;e+=DN)t+=String.fromCharCode(...n.subarray(e,e+DN))}return t}async function AN(e){return await e()??!1}function jN(e){let t=new Map,n=0,r=0,i=e=>{let r=t.get(e);r!==void 0&&(t.delete(e),n-=r.cost)};return{async verdict(a,o){let s=ON(a)+EN;if(s>e||r+s>e)return AN(o);let c=kN(...a),l=t.get(c);if(l!==void 0)return t.delete(c),t.set(c,l),l.settled;r+=s;let u=o().then(e=>e===void 0?(i(c),!1):e).finally(()=>{r-=s});t.set(c,{settled:u,cost:s}),n+=s;for(let r of t.keys()){if(n<=e)break;i(r)}return u}}}var MN=1024,NN=MN*MN*8,PN=new WeakMap;function FN(e){let t=PN.get(e);if(t!==void 0)return t;let n=jN(NN);return PN.set(e,n),n}var IN=`signature`,LN=`identity-key`,RN=new TextEncoder().encode(`wire-mesh/peer-advert/v1\0`);function zN(e){let t={};for(let[n,r]of Object.entries(e))n!==`signature`&&(t[n]=r);let n=Mg(t,hg),r=new Uint8Array(RN.length+n.length);return r.set(RN,0),r.set(n,RN.length),r}async function BN(e,t){let n=await e.sign(zN(t));return{...t,[IN]:n}}async function VN(e,t){let n;try{n=zN(t)}catch{return!1}return FN(e).verdict([t[IN],n],async()=>HN(e,t,n))}async function HN(e,t,n){let r=t[LN];try{return iA(await e.deriveDeviceId(r[`public-key`]),t.device)?await e.verify(r,n,t[IN]):!1}catch{return}}var UN={name:`wire-mesh-core`,version:`4.1.4`,dependencies:{cbor2:`2.3.0`,"cddl.js":`2.0.0`,trilean:`1.6.2`,zod:`4.6.6`},devDependencies:{"@arethetypeswrong/cli":`0.18.5`,"@exadev/eslint-config":`3.0.0`,"@stryker-mutator/api":`10.0.0`,"@stryker-mutator/core":`10.0.0`,"@stryker-mutator/typescript-checker":`10.0.0`,"@types/node":`26.4.1`,eslint:`10.10.0`,"eslint-config-prettier":`10.1.8`,"eslint-plugin-prettier":`5.5.6`,globals:`17.12.0`,jiti:`2.7.0`,prettier:`3.9.6`,tsdown:`0.23.0`,turbo:`2.10.12`,typescript:`6.0.3`,vitest:`5.0.0`},exports:{"./adapters/byte-stream-connection":{import:`./dist/adapters/byte-stream-connection.mjs`,require:`./dist/adapters/byte-stream-connection.cjs`},"./adapters/frame-codec":{import:`./dist/adapters/frame-codec.mjs`,require:`./dist/adapters/frame-codec.cjs`},"./adapters/memory-storage":{import:`./dist/adapters/memory-storage.mjs`,require:`./dist/adapters/memory-storage.cjs`},"./adapters/node-fs-storage":{import:`./dist/adapters/node-fs-storage.mjs`,require:`./dist/adapters/node-fs-storage.cjs`},"./adapters/node-identity":{import:`./dist/adapters/node-identity.mjs`,require:`./dist/adapters/node-identity.cjs`},"./adapters/system-clock":{import:`./dist/adapters/system-clock.mjs`,require:`./dist/adapters/system-clock.cjs`},"./adapters/tcp-transport":{import:`./dist/adapters/tcp-transport.mjs`,require:`./dist/adapters/tcp-transport.cjs`},"./adapters/threshold-identity":{import:`./dist/adapters/threshold-identity.mjs`,require:`./dist/adapters/threshold-identity.cjs`},"./adapters/threshold-wasm":{import:`./dist/adapters/threshold-wasm.mjs`,require:`./dist/adapters/threshold-wasm.cjs`},"./adapters/tls-transport":{import:`./dist/adapters/tls-transport.mjs`,require:`./dist/adapters/tls-transport.cjs`},"./domain/advert-extension-policy":{import:`./dist/domain/advert-extension-policy.mjs`,require:`./dist/domain/advert-extension-policy.cjs`},"./domain/async-queue":{import:`./dist/domain/async-queue.mjs`,require:`./dist/domain/async-queue.cjs`},"./domain/bulk":{import:`./dist/domain/bulk.mjs`,require:`./dist/domain/bulk.cjs`},"./domain/capability-grant":{import:`./dist/domain/capability-grant.mjs`,require:`./dist/domain/capability-grant.cjs`},"./domain/capability-request":{import:`./dist/domain/capability-request.mjs`,require:`./dist/domain/capability-request.cjs`},"./domain/channel-exhausted-error":{import:`./dist/domain/channel-exhausted-error.mjs`,require:`./dist/domain/channel-exhausted-error.cjs`},"./domain/coordinator-election":{import:`./dist/domain/coordinator-election.mjs`,require:`./dist/domain/coordinator-election.cjs`},"./domain/data-sync":{import:`./dist/domain/data-sync.mjs`,require:`./dist/domain/data-sync.cjs`},"./domain/device-id":{import:`./dist/domain/device-id.mjs`,require:`./dist/domain/device-id.cjs`},"./domain/direct-manage-request":{import:`./dist/domain/direct-manage-request.mjs`,require:`./dist/domain/direct-manage-request.cjs`},"./domain/ed25519-identity-key":{import:`./dist/domain/ed25519-identity-key.mjs`,require:`./dist/domain/ed25519-identity-key.cjs`},"./domain/erasure-coding":{import:`./dist/domain/erasure-coding.mjs`,require:`./dist/domain/erasure-coding.cjs`},"./domain/gossip-expansion":{import:`./dist/domain/gossip-expansion.mjs`,require:`./dist/domain/gossip-expansion.cjs`},"./domain/gossip-extensions":{import:`./dist/domain/gossip-extensions.mjs`,require:`./dist/domain/gossip-extensions.cjs`},"./domain/grant-candidates":{import:`./dist/domain/grant-candidates.mjs`,require:`./dist/domain/grant-candidates.cjs`},"./domain/group-key":{import:`./dist/domain/group-key.mjs`,require:`./dist/domain/group-key.cjs`},"./domain/handshake":{import:`./dist/domain/handshake.mjs`,require:`./dist/domain/handshake.cjs`},"./domain/hub-mailbox":{import:`./dist/domain/hub-mailbox.mjs`,require:`./dist/domain/hub-mailbox.cjs`},"./domain/mesh-session":{import:`./dist/domain/mesh-session.mjs`,require:`./dist/domain/mesh-session.cjs`},"./domain/notice-board":{import:`./dist/domain/notice-board.mjs`,require:`./dist/domain/notice-board.cjs`},"./domain/path-trace":{import:`./dist/domain/path-trace.mjs`,require:`./dist/domain/path-trace.cjs`},"./domain/peer-advert":{import:`./dist/domain/peer-advert.mjs`,require:`./dist/domain/peer-advert.cjs`},"./domain/ping-round-trips":{import:`./dist/domain/ping-round-trips.mjs`,require:`./dist/domain/ping-round-trips.cjs`},"./domain/pinned-address":{import:`./dist/domain/pinned-address.mjs`,require:`./dist/domain/pinned-address.cjs`},"./domain/relay-advert":{import:`./dist/domain/relay-advert.mjs`,require:`./dist/domain/relay-advert.cjs`},"./domain/relay-hub":{import:`./dist/domain/relay-hub.mjs`,require:`./dist/domain/relay-hub.cjs`},"./domain/relay-use-gate":{import:`./dist/domain/relay-use-gate.mjs`,require:`./dist/domain/relay-use-gate.cjs`},"./domain/revocation-view":{import:`./dist/domain/revocation-view.mjs`,require:`./dist/domain/revocation-view.cjs`},"./domain/room":{import:`./dist/domain/room.mjs`,require:`./dist/domain/room.cjs`},"./domain/room-path":{import:`./dist/domain/room-path.mjs`,require:`./dist/domain/room-path.cjs`},"./domain/room-rekey":{import:`./dist/domain/room-rekey.mjs`,require:`./dist/domain/room-rekey.cjs`},"./domain/room-token-verification":{import:`./dist/domain/room-token-verification.mjs`,require:`./dist/domain/room-token-verification.cjs`},"./domain/shard-manifest":{import:`./dist/domain/shard-manifest.mjs`,require:`./dist/domain/shard-manifest.cjs`},"./domain/threshold-subject":{import:`./dist/domain/threshold-subject.mjs`,require:`./dist/domain/threshold-subject.cjs`},"./domain/token-predicates":{import:`./dist/domain/token-predicates.mjs`,require:`./dist/domain/token-predicates.cjs`},"./domain/token-scope":{import:`./dist/domain/token-scope.mjs`,require:`./dist/domain/token-scope.cjs`},"./domain/tokens":{import:`./dist/domain/tokens.mjs`,require:`./dist/domain/tokens.cjs`},"./domain/topology":{import:`./dist/domain/topology.mjs`,require:`./dist/domain/topology.cjs`},"./domain/topology-snapshot":{import:`./dist/domain/topology-snapshot.mjs`,require:`./dist/domain/topology-snapshot.cjs`},"./domain/verdict-cache":{import:`./dist/domain/verdict-cache.mjs`,require:`./dist/domain/verdict-cache.cjs`},"./domain/webrtc-signaling":{import:`./dist/domain/webrtc-signaling.mjs`,require:`./dist/domain/webrtc-signaling.cjs`},"./generated/protocol":{import:`./dist/generated/protocol.mjs`,require:`./dist/generated/protocol.cjs`},"./generated/runtime":{import:`./dist/generated/runtime.mjs`,require:`./dist/generated/runtime.cjs`},"./ports/clock":{import:`./dist/ports/clock.mjs`,require:`./dist/ports/clock.cjs`},"./ports/identity":{import:`./dist/ports/identity.mjs`,require:`./dist/ports/identity.cjs`},"./ports/storage":{import:`./dist/ports/storage.mjs`,require:`./dist/ports/storage.cjs`},"./ports/transport":{import:`./dist/ports/transport.mjs`,require:`./dist/ports/transport.cjs`},"./package.json":`./package.json`},files:[`dist`,`wasm-dist`],license:`MIT`,packageManager:`pnpm@12.4.1+sha512.2e81e399d73fe8390dab25e06aa788ab7a5908248d2f5a370f82b481147a6a7a367bf8048f9a6fdb6460f21a66f0542dedb8b94ca2c8723596741920b1656d4c`,publishConfig:{provenance:!0,access:`public`},repository:{type:`git`,url:`https://github.com/ExaDev/wire-mesh.git`,directory:`ts/packages/core`},scripts:{_build:`tsdown`,"_build-wasm":`./scripts/build-threshold-wasm.sh`,"_conformance-check":`vitest run test/conformance.unit.test.ts`,_generate:`node generate.ts`,_lint:`eslint . --fix --cache --max-warnings 0`,_mutation:`stryker run stryker.config.ts`,_test:`vitest run`,_typecheck:`tsc -p tsconfig.json --noEmit && tsc -p tsconfig.node.json --noEmit`,build:`turbo run _build`,"build-wasm":`turbo run _build-wasm`,"conformance-check":`turbo run _conformance-check`,generate:`turbo run _generate`,lint:`turbo run _lint`,mutation:`turbo run _mutation`,prepack:`node scripts/assert-wasm-dist.ts`,test:`turbo run _test`,typecheck:`turbo run _typecheck`},type:`module`}.version,WN=`wire-mesh/version`,GN=`version.get`;function KN(e){return`verb`in e&&e.verb===GN}function qN(){return{result:`ok`,version:UN}}var JN=new Set([`device`,`addresses`,`snapshot-seconds`,LN,IN]),YN=`topology/peers`,XN=/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/;function ZN(e){for(let t of Object.keys(e)){if(JN.has(t))throw Error(`sendGossipUpdate extension key "${t}" collides with a mandatory peer-advert field`);if(t===`topology/peers`)throw Error(`sendGossipUpdate extension key "${t}" collides with a session-managed gossip field`);if(t===`wire-mesh/version`)throw Error(`sendGossipUpdate extension key "${t}" is reserved for wire-mesh-core's own self-reported version`);if(!XN.test(t))throw Error(`sendGossipUpdate extension key "${t}" must be domain-qualified as "<domain>/<field>" (e.g. "presence/status")`)}}function QN(){let e=[],t=[];return{push(n){let r=e.shift();r===void 0?t.push(n):r(n)},stream:{[Symbol.asyncIterator](){return{next:async()=>new Promise(n=>{let r=t.shift();r===void 0?e.push(e=>{n({value:e,done:!1})}):n({value:r,done:!1})})}}}}}var $N=class extends Error{constructor(){super(`the channel's send counter is exhausted`),this.name=`ChannelExhaustedError`}};function eP(e){return{type:`handshake`,version:1,domains:[...e]}}var tP=[`core/federation`];function nP(e,t){let n=Math.min(e.version,t.version),r=e.domains.filter(e=>!tP.includes(e)&&t.domains.includes(e));return{ok:n>=1&&r.length>0,version:n,sharedDomains:r}}function rP(e){return`data/${AO(e)}/head`}function iP(e,t){return`data/${AO(e)}/entry/${String(t)}`}async function aP(e,t){let n=await e.get(rP(t));return n===void 0?0:Number(new TextDecoder().decode(n))}async function oP(e,t,n){await e.set(rP(t),new TextEncoder().encode(String(n)))}async function sP(e,t){return aP(e,t)}async function cP(e,t){let n=await aP(e.storage,e.identity.deviceId)+1;return await e.storage.set(iP(e.identity.deviceId,n),t),await oP(e.storage,e.identity.deviceId,n),{seq:n,haveFrame:{type:`data-have`,peer:e.identity.deviceId,"head-seq":n}}}async function lP(e,t,n,r){let i=[],a=async n=>{if(n>r)return;let o=await e.get(iP(t,n));o!==void 0&&(i.push(o),await a(n+1))};return await a(n),i}async function uP(e,t,n){let r=await aP(e,t.peer);if(r<=t[`from-seq`])return null;let i=Math.min(r,t[`from-seq`]+n),a=await lP(e,t.peer,t[`from-seq`]+1,i);return a.length===0?null:{type:`data-entries`,peer:t.peer,"from-seq":t[`from-seq`],entries:a}}async function dP(e,t){let n=await aP(e,t.peer);return t[`from-seq`]===n?(await rA(t.entries,async(n,r)=>{await e.set(iP(t.peer,t[`from-seq`]+1+r),n)}),await oP(e,t.peer,t[`from-seq`]+t.entries.length),{ok:!0}):{ok:!1,reason:`gap`}}async function fP(e,t,n){let r=await aP(e,t);return lP(e,t,n+1,r)}function pP(e){return e.type===`data-have`||e.type===`data-request`||e.type===`data-entries`}var mP=class extends Error{constructor(){super(`timed out waiting for pong`),this.name=`PingTimeoutError`}};function hP(){let e=[];function t(t){let n=e.findIndex(e=>e.sentAt===t);return n!==-1&&(e.splice(n,1),!0)}return{resolveOldest(t){let n=e.shift();n!==void 0&&n.resolve(t-n.sentAt)},rejectAll(t){for(let n of e.splice(0))n.reject(Error(t))},async sendAndAwait(n,r,i){let a=new Promise((t,r)=>{e.push({sentAt:n,resolve:t,reject:r})});return await r(),i===void 0?a:Promise.race([a,new Promise((e,r)=>{setTimeout(()=>{t(n)&&r(new mP)},i)})])}}}function gP(e){return e.authenticatedPeer===void 0?e.isAccepted?e.firstAdvertisedPeer??void 0:void 0:e.authenticatedPeer}function _P(e){let t=gP(e);return{direct:t===void 0?[]:[t],relayed:e.relayedDevices.map(e=>({device:e,...t===void 0?{}:{via:t}}))}}function vP(e){let t=null;return{recordAdvert:e=>{t??=e},compute:()=>{let n=e.getAuthenticatedPeer();return _P({...n===void 0?{}:{authenticatedPeer:n},firstAdvertisedPeer:t,isAccepted:e.isAccepted,relayedDevices:e.getRelayedDevices()})}}}function yP(){let e=new Map;return{has:t=>e.has(AO(t)),add:t=>{e.set(AO(t),t)},remove:t=>{e.delete(AO(t))},clear:()=>{e.clear()},list:()=>[...e.values()]}}function bP(e){let t=[];return{record:n=>{t.push(n),t.length>e&&t.splice(0,t.length-e)},entries:()=>[...t]}}var xP=16,SP=256,CP=256,wP=12,TP=4,EP=8,DP=new TextEncoder,OP=DP.encode(`wire-mesh/secure-hello/v1\0`),kP=DP.encode(`wire-mesh/secure-channel/v1\0`),AP=DP.encode(`wire-mesh/secure-data/v1\0`),jP=DP.encode(`lo-to-hi`),MP=DP.encode(`hi-to-lo`),NP={name:`ECDH`,namedCurve:`P-256`};function PP(...e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t}function FP(e,t){for(let n=0;n<Math.min(e.length,t.length);n+=1){let r=(e[n]??0)-(t[n]??0);if(r!==0)return r}return e.length-t.length}function IP(e){let t=new Uint8Array(EP);return new DataView(t.buffer).setBigUint64(0,BigInt(e),!1),t}function LP(e,t,n,r){return PP(OP,e,t,n,r)}async function RP(e,t){let n=await crypto.subtle.generateKey(NP,!1,[`deriveBits`]),r=new Uint8Array(await crypto.subtle.exportKey(`raw`,n.publicKey)),i=crypto.getRandomValues(new Uint8Array(xP)),a=await e.sign(LP(r,i,e.deviceId,t));return{peer:t,privateKey:n.privateKey,hello:{type:`secure-hello`,"ephemeral-key":r,nonce:i,"identity-key":e.identityKey,"to-device":t,signature:a}}}async function zP(e,t){let n=t[`identity-key`],r=await e.deriveDeviceId(n[`public-key`]);if(!iA(t[`to-device`],e.deviceId))return{ok:!1,reason:`wrong_recipient`};try{return await e.verify(n,LP(t[`ephemeral-key`],t.nonce,r,e.deviceId),t.signature)?{ok:!0,peer:{deviceId:r,identityKey:n}}:{ok:!1,reason:`bad_signature`}}catch(e){if(!(e instanceof fk))throw e;return{ok:!1,reason:e.fault===`unsupported_alg`?`unsupported_identity_alg`:`invalid_identity_key`}}}var BP=2**53-1;function VP(e){if(!Number.isSafeInteger(e)||e<0)throw RangeError(`firstSendCounter must be a non-negative safe integer`)}function HP(e){if(e>BP)throw new $N;return{counter:e,next:e+1}}function UP(e){let t=new Uint8Array(wP);return t.set(IP(e),TP),t}function WP(e,t,n){return PP(AP,e,t,IP(n))}async function GP({secret:e,salt:t,low:n,high:r,label:i}){let a=await crypto.subtle.importKey(`raw`,Uint8Array.from(e),`HKDF`,!1,[`deriveKey`]);return crypto.subtle.deriveKey({name:`HKDF`,hash:`SHA-256`,salt:Uint8Array.from(t),info:PP(kP,n,r,i)},a,{name:`AES-GCM`,length:SP},!1,[`encrypt`,`decrypt`])}async function KP(e,{pending:t,remote:n,peer:r,firstSendCounter:i=0}){VP(i);let a;try{let e=await crypto.subtle.importKey(`raw`,Uint8Array.from(n[`ephemeral-key`]),NP,!1,[]);a=new Uint8Array(await crypto.subtle.deriveBits({name:`ECDH`,public:e},t.privateKey,CP))}catch{return}let o=FP(e.deviceId,r.deviceId)<0,s=o?e.deviceId:r.deviceId,c=o?r.deviceId:e.deviceId,l=PP(o?t.hello.nonce:n.nonce,o?n.nonce:t.hello.nonce),u=await GP({secret:a,salt:l,low:s,high:c,label:jP}),d=await GP({secret:a,salt:l,low:s,high:c,label:MP}),f=o?u:d,p=o?d:u,m=i,h=-1,g=Promise.resolve(),_=Promise.resolve();async function v(t,n){return{type:`secure-data`,counter:n,ciphertext:new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:UP(n),additionalData:WP(e.deviceId,r.deviceId,n)},f,xN(t)))}}async function y(t){if(t.counter<=h)return{ok:!1,reason:`replayed`};let n;try{n=new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:UP(t.counter),additionalData:WP(r.deviceId,e.deviceId,t.counter)},p,Uint8Array.from(t.ciphertext)))}catch{return{ok:!1,reason:`unauthentic`}}h=Math.max(h,t.counter);let i=TN(n);return i===null?{ok:!1,reason:`undecodable`}:{ok:!0,frame:i}}let b=async e=>{let t=_.then(async()=>y(e));return _=t.catch(()=>void 0),t};return{peer:r,seal:async e=>{let t=HP(m),n=t.counter;m=t.next;let r=g.then(async()=>v(e,n));return g=r.catch(()=>void 0),r},open:async e=>{let t=await b(e);return t.ok?t.frame:void 0},openOutcome:b}}function qP(e,t,n={}){n.firstSendCounter!==void 0&&VP(n.firstSendCounter);let r=new Map;function i(e){let t=e=>{console.error(`the local fault callback failed`,e)};try{let r=n.onFault?.(e);typeof r==`object`&&r&&`then`in r&&typeof r.then==`function`&&Promise.resolve(r).catch(t)}catch(e){t(e)}}function a(e,t){let n=t instanceof Error?t:Error(String(t));r.get(e.key)===e&&r.delete(e.key),e.settle.reject(n),e.sent.reject(n)}function o(n,{answering:o,track:s}={answering:!1,track:!0}){let c=AO(n),l=RP(e,n),u={status:`awaiting`,pending:l,settle:Promise.withResolvers(),key:c,sent:Promise.withResolvers()};return u.settle.promise.catch(()=>void 0),u.sent.promise.catch(()=>void 0),l.then(async({hello:e})=>{try{await t(n,e)}catch(e){a(u,e),u.settle.promise.then(e=>{let t=r.get(c);t?.status===`established`&&t.channel===e&&r.delete(c)},()=>void 0),o&&s&&i(e);return}u.sent.resolve(void 0)},e=>{a(u,e)}),s&&r.set(c,u),u}async function s({entry:t,hello:i,peer:o,replaces:s}){let{key:c}=t,l=await KP(e,{pending:await t.pending,remote:i,peer:o,...n.firstSendCounter===void 0?{}:{firstSendCounter:n.firstSendCounter}});if(l===void 0){a(t,Error(`the peer sent an unusable ephemeral key`));return}if(s!==void 0&&await t.sent.promise,r.get(c)!==(s??t))return;let u={...l,seal:async e=>{try{return await l.seal(e)}catch(e){let t=r.get(c);throw e instanceof $N&&t?.status===`established`&&t.channel===u&&r.delete(c),e}}};r.set(c,{status:`established`,channel:u,remoteEphemeralKey:i[`ephemeral-key`]}),t.settle.resolve(u)}return{ensure:async e=>{let t=AO(e),n=r.get(t);return n?.status===`established`?n.channel:(n??o(e)).settle.promise},applyHello:async t=>{let n;try{let i=await zP(e,t);if(!i.ok)return;let a=AO(i.peer.deviceId),c=r.get(a);if(c?.status===`established`&&iA(c.remoteEphemeralKey,t[`ephemeral-key`]))return;let l=c?.status===`established`?c:void 0;n=c?.status===`awaiting`?c:o(i.peer.deviceId,{answering:!0,track:l===void 0}),await s({entry:n,hello:t,peer:i.peer,replaces:l})}catch(e){n!==void 0&&a(n,e),i(e)}},open:async(e,t)=>{if(t===void 0)return;let n=AO(t),i=r.get(n);if(i?.status!==`established`)return;let a=await i.channel.open(e);return a===void 0?void 0:{frame:a,from:i.channel.peer.deviceId}},reset:e=>{for(let t of[...r.values()])t.status===`awaiting`&&a(t,Error(e));r.clear()},forget:e=>{let t=AO(e),n=r.get(t);n?.status===`awaiting`&&a(n,Error(`the relay pairing was lost`)),r.delete(t)}}}var JP=1e3,YP=3e3;function XP(e,t,n,r,i,a=[],o,s,c){let l=null,u={status:`idle`},d={status:`pending`},f=new Map,p=bP(256),m=p.record,h=!1,g=QN(),_=null,v=null,y=0,b=null,x=0,S=yP(),C=vP({getAuthenticatedPeer:()=>l?.peerDeviceId,isAccepted:r===null,getRelayedDevices:()=>S.list()}),w=new Map,T=qP(e,async(e,t)=>{if(l===null)throw Error(`not connected`);m({direction:`sent`,frame:t}),await l.send(SN(t,e)),M()},{onFault:c}),E=QN(),D=QN(),O=QN(),k=QN(),A=hP();function j(){return{state:u,directory:[...f.values()],frameLog:p.entries()}}function M(){g.push(j())}function N(e){for(let t of w.values())t.reject(Error(e));w.clear()}function ee(e,t,n){let r=x;x+=1;let i=n??b;return{type:`manage-request`,"request-id":r,command:e,scope:t,...i===null?{}:{token:i}}}function P(){if(l===null||u.status!==`connected`)throw Error(`not connected`);return l}async function F(e,t,n){if(l===null)throw Error(`not connected`);if(!t){await l.send(e);return}if(n===void 0)throw Error(`a relayed frame needs the device it is for`);let r=await(await T.ensure(n)).seal(e);await l.send(SN(r,n))}function I(e,t){let n=e[`request-id`],r=w.get(n);if(r===void 0)return;let i=r.expectedFrom;(i===void 0?t===void 0:t!==void 0&&AO(t)===AO(i))&&(w.delete(n),r.resolve(e.outcome))}function te(e,t){let n=e[`request-id`],r=t?.fromDevice,i=t?.toDevice,a={requestId:n,command:e.command,scope:e.scope,...e.token===void 0?{}:{token:e.token},...r===void 0?{}:{fromDevice:r},...i===void 0?{}:{toDevice:i},respond:async e=>{let i={type:`manage-response`,"request-id":n,outcome:e};m({direction:`sent`,frame:i}),await F(i,t!==void 0,r),M()}};if(KN(e.command.params)){a.respond(qN()).catch(()=>void 0);return}E.push(a)}async function ne(n){if(n.type===`relay-data`){let e=TN(n.payload);if(e?.type===`secure-hello`){m({direction:`received`,frame:e}),await T.applyHello(e);return}if(e?.type===`secure-data`){let t=await T.open(e,n[`from-device`]);t?.frame.type===`manage-response`?(m({direction:`received`,frame:t.frame}),I(t.frame,t.from)):t!==void 0&&pP(t.frame)?(m({direction:`received`,frame:t.frame}),k.push({frame:t.frame,fromDevice:t.from,...n[`to-device`]===void 0?{}:{toDevice:n[`to-device`]}})):t?.frame.type===`manage-request`&&(m({direction:`received`,frame:t.frame}),te(t.frame,{fromDevice:t.from,...n[`to-device`]===void 0?{}:{toDevice:n[`to-device`]}}));return}m({direction:`received`,frame:n});return}if(m({direction:`received`,frame:n}),n.type===`handshake`)L(n);else if(n.type===`gossip`){let t=await Promise.all(n.peers.map(async t=>VN(e,t)));for(let e of n.peers.filter((e,n)=>t[n]===!0)){let t=AO(e.device),n=f.get(t)?.advert[`snapshot-seconds`];n!==void 0&&e[`snapshot-seconds`]<n||(f.set(t,{device:e.device,advert:e}),C.recordAdvert(e.device),i?.(e))}}else if(n.type===`relay-inbound`)S.add(n[`source-device`]);else if(n.type===`manage-response`)I(n);else if(n.type===`manage-request`)te(n);else if(n.type===`pong`)A.resolveOldest(t.now());else if(n.type===`revocation-announce`)for(let e of n.entries)D.push(e);else pP(n)?k.push({frame:n}):n.type===`coordinator`&&O.push(n)}async function re(e){if(l===null)throw Error(`not connected`);if(S.has(e))return;let t={type:`relay-connect`,"target-device":e};m({direction:`sent`,frame:t}),await l.send(t),S.add(e),M()}let ie=eP([]);function L(e){if(d.status!==`pending`)return;_!==null&&(clearTimeout(_),_=null);let t=nP(ie,e);d=t.ok?{status:`negotiated`,version:t.version,sharedDomains:t.sharedDomains}:{status:`rejected`,reason:`no shared domains or version`},u.status===`connected`&&(u={...u,handshake:d})}function R(e,t){return e.redialAddress?.()??t}function ae(e,t,r){if(!h){if(N(`disconnected before a response arrived`),A.rejectAll(`disconnected before a pong arrived`),n!==null&&y<n.maxAttempts){y+=1;let i=y;u={status:`reconnecting`,address:t,attempt:i,reason:e},M(),v=setTimeout(()=>{v=null,le(t,r).catch(e=>{ae(e instanceof Error?e.message:String(e),t,r)})},n.delayMs(i));return}u={status:`closed`,address:t,reason:e},M()}}async function oe(e,t,n){let r=!1;for await(let t of e.receive()){if(h)return;r||(r=!0,y=0),await ne(t),await o?.(e,t),M()}s?.(e),u.status===`connected`&&ae(`node closed the connection`,R(e,t),n)}async function se(n){return n!==void 0&&ZN(n),{type:`gossip`,peers:[await BN(e,{...n,[WN]:UN,[YN]:C.compute(),device:e.deviceId,addresses:[...a],"snapshot-seconds":Math.floor(t.now()/JP),"identity-key":e.identityKey})]}}async function ce(e,t,n){l=e,T.reset(`the connection changed before the channel was ready`),S.clear(),ie=eP(n),d={status:`pending`},u={status:`connected`,address:t,handshake:d},m({direction:`sent`,frame:ie}),await l.send(ie),M();let r=await se();m({direction:`sent`,frame:r}),await l.send(r),M(),_=setTimeout(()=>{_=null,d.status===`pending`&&(d={status:`unanswered`},u.status===`connected`&&(u={...u,handshake:d}),M())},YP),oe(l,t,n).catch(r=>{u.status===`connected`&&ae(r instanceof Error?r.message:String(r),R(e,t),n)})}async function le(e,t){if(r===null)throw Error(`this session is already connected; there is nothing to dial`);_!==null&&(clearTimeout(_),_=null),u={status:`connecting`,address:e},M();let n=await r(e);if(h){await n.close();return}await ce(n,e,t)}return{wireUpConnection:ce,session:{events:g.stream,incomingManageRequests:E.stream,revocationAnnouncements:D.stream,coordinatorFrames:O.stream,incomingDataFrames:k.stream,async connect(e,t){if(l!==null)throw Error(`a session connects once; create a new one to reconnect`);y=0,await le(e,t).catch(n=>{throw ae(n instanceof Error?n.message:String(n),e,t),n})},async sendPing(){let e=P(),t={type:`ping`};m({direction:`sent`,frame:t}),await e.send(t),M()},async sendPingMeasureRtt(e){let n=P();return A.sendAndAwait(t.now(),async()=>{let e={type:`ping`};m({direction:`sent`,frame:e}),await n.send(e),M()},e)},setToken(e){b=e},async sendManageRequest(e,t,n,r,i){P(),n!==void 0&&await re(n);let a=ee(e,t,r),o=a[`request-id`],s=new Promise((e,t)=>{w.set(o,{resolve:e,reject:t,expectedFrom:n})});m({direction:`sent`,frame:a});let c=(async()=>{try{await F(a,n!==void 0,n)}catch(e){throw w.delete(o),s.catch(()=>void 0),e}return M(),s})();if(i===void 0)return c;let l;return Promise.race([c,new Promise(e=>{l=setTimeout(()=>{w.delete(o)&&(n!==void 0&&(S.remove(n),T.forget(n)),e({result:`error`,code:`timeout`}))},i)})]).finally(()=>{clearTimeout(l)})},async sendRevocationAnnounce(e){P();let t={type:`revocation-announce`,entries:[...e]};m({direction:`sent`,frame:t}),await F(t,!1),M()},async sendCoordinatorClaim(e){P();let t={...e};m({direction:`sent`,frame:t}),await F(t,!1),M()},async sendGossipUpdate(e){P();let t=await se(e);m({direction:`sent`,frame:t}),await F(t,!1),M()},getTopologyPeers(){return C.compute()},async sendDataFrame(e,t){P(),t!==void 0&&await re(t),m({direction:`sent`,frame:e}),await F(e,t!==void 0,t),M()},async close(){h=!0,_!==null&&(clearTimeout(_),_=null),v!==null&&(clearTimeout(v),v=null),N(`connection closed before a response arrived`),T.reset(`the session closed before the channel was ready`),A.rejectAll(`connection closed before a pong arrived`),l!==null&&await l.close(),(u.status===`connected`||u.status===`connecting`||u.status===`reconnecting`)&&(u={status:`closed`,address:u.address,reason:`closed by you`}),M()}}}}function ZP(e,t,n={now:()=>Date.now()},r=null,i=[],a,o,s){let{session:c}=XP(t,n,r,async t=>e.connect(t),a,i,o,void 0,s);return c}async function QP(e,t,n,r={}){let i=r.clock??{now:()=>Date.now()},a=null,o=new Promise(e=>{a=e}),s=!1,{session:c,wireUpConnection:l}=XP(t,i,null,null,e=>{s||(s=!0,a?.(e.device)),r.onPeerAdvert?.(e)},r.addresses,r.onFrame,r.onSessionEnd);return await l(e,r.label??`accepted`,n),{...c,peerDeviceId:o}}function $P(e){return e instanceof Error?e:Error(String(e))}function eF(e){let t=AO(e.selfDeviceId),n=new Set;async function r(t){let n;try{n=await e.shouldExpand(t)}catch(n){e.onExpansionFailed?.(t,[$P(n)]);return}if(!n){e.onExpansionDeclined?.(t);return}await i(t,t.addresses,[])}async function i(t,n,r){let[a,...o]=n;if(a===void 0){e.onExpansionFailed?.(t,r);return}try{let n=await e.dial(a);e.onExpanded(t,a,n)}catch(e){await i(t,o,[...r,$P(e)])}}return{considerAdvert(e){let i=AO(e.device);i===t||n.has(i)||e.addresses.length===0||(n.add(i),r({device:e.device,addresses:e.addresses}))}}}var tF=/^[0-9a-f]{64}$/,nF=/^[A-Za-z0-9_-]+$/;function rF(e,t){if(!tF.test(e))throw Error(`expected ${t} to be a 64-character lowercase hex device-id, got ${JSON.stringify(e)}`)}function iF(e,t){if(rF(e,`a`),rF(t,`b`),e===t)throw Error(`a DM room path cannot name the same device twice (${e})`);return e<t?`${e}+${t}`:`${t}+${e}`}function aF(e){let t=e.indexOf(`/`);if(t!==-1){let n=e.slice(0,t),r=e.slice(t+1);if(tF.test(n)&&nF.test(r))return{kind:`owner-named`,owner:n,localName:r}}let n=e.indexOf(`+`);if(n!==-1){let t=e.slice(0,n),r=e.slice(n+1);if(tF.test(t)&&tF.test(r)&&t!==r)return{kind:`dm`,participants:[t,r]}}throw Error(`${JSON.stringify(e)} is not a valid room-path`)}var oF=5,sF=1e3,cF=3e4,lF=2,uF={maxAttempts:oF,delayMs:e=>Math.min(sF*lF**(e-1),cF)},dF=4,fF=1024,pF=fF*fF*100,mF=new Uint8Array(dF);function hF(e){let t=Mg(e,hg),n=new Uint8Array(dF+t.length);return new DataView(n.buffer).setUint32(0,t.length),n.set(t,dF),n}function gF(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function _F(e){return{[Symbol.asyncIterator]:()=>({next:async()=>{let t=await e.read();return t.done?{done:!0,value:void 0}:{done:!1,value:t.value}}})}}async function*vF(e){let t=new Uint8Array;try{for await(let n of _F(e))for(t=gF(t,n);t.length>=dF;){let e=new DataView(t.buffer,t.byteOffset).getUint32(0);if(e>104857600)throw Error(`frame of ${String(e)} bytes exceeds the ${String(pF)}-byte limit`);if(t.length<dF+e)break;if(e===0){t=t.slice(dF);continue}let n=t.slice(dF,dF+e);t=t.slice(dF+e);let r=ZE.safeParse(b_(n,x_));r.success&&(yield r.data)}}catch(t){throw await e.cancel(t),t}}function yF(e,t={opened:!1}){let n=e.writable.getWriter(),r=e.readable.getReader(),i=vF(r),a=t.opened?n.write(mF):Promise.resolve();return a.catch(()=>void 0),{send:async e=>{await a,await n.write(hF(e))},receive:()=>i,close:async()=>{await Promise.allSettled([n.close(),r.cancel()])}}}var bF=`/wire-mesh`,xF=8e3,SF=`the web console is a client only: it cannot listen`;async function CF(e){let t=[],n=async()=>{let r=await e.read();if(!r.done){if(!(r.value instanceof Uint8Array))throw Error(`the announcement carried something other than bytes`);t.push(r.value),await n()}};return await n(),t}async function wF(e){let t=e.incomingUnidirectionalStreams.getReader(),n=await t.read();if(t.releaseLock(),n.done)throw Error(`the node opened no announcement stream`);let r=n.value;if(!(r instanceof ReadableStream))throw Error(`the announcement stream is not a readable stream`);let i=await CF(r.getReader()),a=new Uint8Array(i.reduce((e,t)=>e+t.length,0)),o=0;for(let e of i)a.set(e,o),o+=e.length;return Ik(a)}async function TF(e){let t,n=new Promise(e=>{t=setTimeout(()=>{e(`timed out`)},xF)});try{let t=await Promise.race([e.createBidirectionalStream(),n]);if(t===`timed out`)throw e.close(),Error(`this browser cannot open a stream to this node: it is waiting for flow-control credit the node never grants, which is how Safari behaves with the node's HTTP/3 library (fails-components/webtransport#490); reach the node over wss:// instead`);return t}finally{clearTimeout(t)}}function EF(e){return{async connect(t){if(typeof WebTransport>`u`)throw Error(`this browser does not support WebTransport`);let{url:n,sha256:r}=Nk(t),i=new URL(n).host,a=Lk(r,await e.recall(i)),o=new WebTransport(new URL(bF,n).toString(),{serverCertificateHashes:a.map(e=>({algorithm:`sha-256`,value:e}))});await o.ready;let s=yF(await TF(o),{opened:!0});o.closed.catch(()=>void 0).then(async()=>s.close());let c;return wF(o).then(async t=>{c=t,await e.remember(i,t)}).catch(()=>void 0),{...s,redialAddress:()=>c===void 0?t:zk(t,c)}},async listen(){return Promise.reject(Error(SF))}}}var DF=1e3,OF=1002,kF=`the web console is a client only: it cannot listen`;function AF(e){let t=[],n=[],r=!1,i=null;function a(){r=!0;for(let e of n.splice(0))e.resolve({value:void 0,done:!0})}function o(e){i=e,r=!0;for(let t of n.splice(0))t.reject(e)}e.addEventListener(`message`,r=>{if(!(r.data instanceof ArrayBuffer)){o(Error(`expected a binary WebSocket message`)),e.close(OF,`protocol error`);return}let i;try{i=wN(r.data)}catch(t){if(t instanceof CN)return;o(t instanceof Error?t:Error(`frame body failed to decode: ${String(t)}`)),e.close(OF,`protocol error`);return}let a=n.shift();a?a.resolve({value:i,done:!1}):t.push(i)}),e.addEventListener(`close`,a),e.addEventListener(`error`,a);let s={[Symbol.asyncIterator](){return{next:async()=>c()}}};async function c(){let e=t.shift();return e===void 0?i===null?r?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{n.push({resolve:e,reject:t})}):Promise.reject(i):Promise.resolve({value:e,done:!1})}return{async send(t){return r?Promise.reject(Error(`connection is closed`)):(e.send(xN(t)),Promise.resolve())},receive:()=>s,async close(){return e.close(DF),Promise.resolve()}}}function jF(){return{async connect(e){let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return Promise.reject(Error(`not a WebSocket address: ${e}`));let n=new WebSocket(t);return n.binaryType=`arraybuffer`,new Promise((e,r)=>{n.addEventListener(`open`,()=>{e()}),n.addEventListener(`error`,()=>{r(Error(`connect to ${t.toString()} failed`))})}).then(()=>AF(n))},async listen(){return Promise.reject(Error(kF))}}}function MF(e){let t=jF(),n=EF(e);return{connect:async e=>Mk(e)?n.connect(e):t.connect(e),listen:async(e,n)=>t.listen(e,n)}}var NF=[{urls:`stun:stun.cloudflare.com:3478`}],PF=`webrtc:signal`,FF={kind:`node`};function IF(e){return typeof e==`object`&&`verb`in e&&e.verb===`webrtc.offer`}function LF(e){return typeof e==`object`&&`verb`in e&&e.verb===`webrtc.answer`}function RF(e){return typeof e==`object`&&`verb`in e&&e.verb===`webrtc.ice-candidate`}function zF(e,t){return{verb:PF,params:{verb:`webrtc.offer`,"negotiation-id":e,sdp:t}}}function BF(e,t){return{verb:PF,params:{verb:`webrtc.answer`,"negotiation-id":e,sdp:t}}}function VF(e,t){return{verb:PF,params:{verb:`webrtc.ice-candidate`,"negotiation-id":e,...t===void 0?{}:{candidate:t}}}}function HF(e){return{candidate:e.candidate,...e.sdpMid===null?{}:{"sdp-mid":e.sdpMid},...e.sdpMLineIndex===null?{}:{"sdp-m-line-index":e.sdpMLineIndex},...e.usernameFragment===null?{}:{"username-fragment":e.usernameFragment}}}function UF(e){return{candidate:e.candidate,...e[`sdp-mid`]===void 0?{}:{sdpMid:e[`sdp-mid`]},...e[`sdp-m-line-index`]===void 0?{}:{sdpMLineIndex:e[`sdp-m-line-index`]},...e[`username-fragment`]===void 0?{}:{usernameFragment:e[`username-fragment`]}}}function WF(){let e=0;return()=>{let t=e;return e+=1,t}}async function GF(e,t){if(e.token===void 0)return!1;let n=await SM(e.token,t);return n.ok?n.claims.capability===`webrtc:signal`&&n.claims.scope.kind===FF.kind:!1}function KF(e){let t=[],n=[],r=!1,i=null;function a(){r=!0;for(let e of n.splice(0))e.resolve({value:void 0,done:!0})}function o(e){i=e,r=!0;for(let t of n.splice(0))t.reject(e)}e.addEventListener(`message`,r=>{if(!(r.data instanceof ArrayBuffer)){o(Error(`expected a binary data channel message`)),e.close();return}let i;try{i=wN(r.data)}catch(t){if(t instanceof CN)return;o(t instanceof Error?t:Error(`frame body failed to decode: ${String(t)}`)),e.close();return}let a=n.shift();a?a.resolve({value:i,done:!1}):t.push(i)}),e.addEventListener(`close`,a),e.addEventListener(`error`,a);let s={[Symbol.asyncIterator](){return{next:async()=>c()}}};async function c(){let e=t.shift();return e===void 0?i===null?r?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{n.push({resolve:e,reject:t})}):Promise.reject(i):Promise.resolve({value:e,done:!1})}return{async send(t){return e.readyState===`open`?(e.send(xN(t)),Promise.resolve()):Promise.reject(Error(`data channel is not open (state: ${e.readyState})`))},receive:()=>s,async close(){return e.close(),Promise.resolve()}}}var qF=`wire-mesh`;function JF(e,t){for(let n of t.localTracks??[])e.addTrack(n);t.onRemoteTrack!==void 0&&e.addEventListener(`track`,t.onRemoteTrack)}function YF(e,t){e.addEventListener(`open`,()=>{t(KF(e))},{once:!0})}var XF=16,ZF=36e5;async function QF(e,t){let n=new Uint8Array(XF);crypto.getRandomValues(n);let r=await AM({identity:e,clock:t,tokenId:n,bearer:e.deviceId,capability:PF,scope:FF,expires:t.now()+ZF});if(!r.ok)throw Error(`could not mint a webrtc:signal token: ${r.reason}`);return r.token}function $F(e,t){let n={identity:t.identity,clock:t.clock,revocation:t.revocation},r=new Map,i=new Map,a=WF();async function o(t,n){let r=VF(t,n===null?void 0:HF(n));await e.sendManageRequest(r,FF,i.get(t))}async function s(a,s){if(!await GF(a,n)){await a.respond({result:`error`,code:`unauthorized`});return}let c=s[`negotiation-id`];i.set(c,a.fromDevice);let l=new RTCPeerConnection({iceServers:[...t.iceServers]});r.set(c,l),JF(l,t),l.addEventListener(`icecandidate`,e=>{o(c,e.candidate)}),l.addEventListener(`datachannel`,e=>{let{channel:n}=e;n.binaryType=`arraybuffer`,YF(n,t.onIncomingConnection)}),await l.setRemoteDescription({type:`offer`,sdp:s.sdp});let u=await l.createAnswer();await l.setLocalDescription(u),await a.respond({result:`ok`}),await e.sendManageRequest(BF(c,u.sdp??``),FF,a.fromDevice)}async function c(e,t){let n=r.get(t[`negotiation-id`]);n!==void 0&&await n.setRemoteDescription({type:`answer`,sdp:t.sdp}),await e.respond({result:`ok`})}async function l(e,t){let n=r.get(t[`negotiation-id`]);n!==void 0&&await n.addIceCandidate(t.candidate===void 0?null:UF(t.candidate)),await e.respond({result:`ok`})}async function u(){for await(let t of e.incomingManageRequests){if(t.command.verb!==`webrtc:signal`)continue;let e=t.command.params;IF(e)?await s(t,e):LF(e)?await c(t,e):RF(e)&&await l(t,e)}}return u(),{async initiate(n){let s=a();i.set(s,n);let c=new RTCPeerConnection({iceServers:[...t.iceServers]});r.set(s,c),JF(c,t),c.addEventListener(`icecandidate`,e=>{o(s,e.candidate)});let l=c.createDataChannel(qF);l.binaryType=`arraybuffer`;let u=new Promise((e,t)=>{YF(l,e),l.addEventListener(`error`,()=>{t(Error(`data channel failed to open`))},{once:!0})}),d=await c.createOffer();await c.setLocalDescription(d);let f=await e.sendManageRequest(zF(s,d.sdp??``),FF,n,await QF(t.identity,t.clock));if(f.result===`error`)throw r.delete(s),i.delete(s),c.close(),Error(`webrtc offer rejected: ${f.code}`);return u}}}var eI={frames:0,stage:void 0,handshake:void 0,issued:0,seen:new Set};function tI(e){return AO(e)}function nI(e,t){if(t.type===`gossip`)return e===`received`?t.peers.map(e=>({kind:`peer`,summary:`Peer seen:`,peer:tI(e.device)})):[{kind:`peer`,summary:`Advertised this console to the node`,peer:void 0}];if(t.type===`relay-connect`)return[{kind:`pairing`,summary:`Asked the node to pair this console with`,peer:tI(t[`target-device`])}];if(t.type===`relay-inbound`)return[{kind:`pairing`,summary:`Pairing established with`,peer:tI(t[`source-device`])}];if(t.type===`relay-data`){let n=e===`sent`?t[`to-device`]:t[`from-device`];return[{kind:`relay`,summary:e===`sent`?`Relayed a message to`:`Relayed message received from`,peer:n===void 0?void 0:tI(n)}]}return t.type===`close`?[{kind:`connection`,summary:`The node closed the connection`,peer:void 0}]:[]}function rI(e){return e.status===`reconnecting`?`reconnecting:${String(e.attempt)}`:e.status}function iI(e,t,n){let r=[],i=e=>{r.push({kind:`connection`,summary:e,peer:void 0})};if(rI(t)!==e.stage)switch(t.status){case`connecting`:i(`Connecting to ${t.address}`);break;case`connected`:i(`Connected to ${t.address}`);break;case`reconnecting`:i(`${e.stage?.startsWith(`reconnecting`)===!0?`Retry failed`:`Connection lost`} (${t.reason}); retrying, attempt ${String(t.attempt)}`);break;case`closed`:i(`Closed (${t.reason})`)}return t.status===`connected`&&n!==e.handshake&&(t.handshake.status===`negotiated`?i(`Handshake negotiated: ${t.handshake.sharedDomains.join(`, `)}`):t.handshake.status===`unanswered`?i(`The node does not answer handshakes (a relay-only node)`):t.handshake.status===`rejected`&&i(`Handshake rejected (${t.handshake.reason})`)),r}function aI(e){return e.status===`connected`?e.handshake.status:void 0}function oI(e,t,n){let r=aI(t.state),i=new Set(e.seen),a=[...iI(e,t.state,r),...t.frameLog.slice(e.frames).flatMap(e=>nI(e.direction,e.frame)).filter(e=>e.kind!==`peer`||e.peer===void 0||!i.has(e.peer)&&(i.add(e.peer),!0))].map((t,r)=>({...t,key:`activity-${String(e.issued+r)}`,at:n}));return{tracker:{frames:t.frameLog.length,stage:rI(t.state),handshake:r,issued:e.issued+a.length,seen:i},entries:a}}function sI(e){return e.map(e=>({key:`certificate-${e.key}`,at:e.at,kind:`certificate`,summary:`Certificate changed: ${e.node} announced certificates unlike the remembered ones`,peer:void 0}))}function cI(e,t){let[n,r]=(0,k.useState)({event:void 0,activity:[],statusSince:void 0});return(0,k.useEffect)(()=>{let n={cancelled:!1};return(async()=>{let i=eI;for await(let a of e.events){if(n.cancelled)return;let e=t.now(),o=oI(i,a,e),s=o.tracker.stage!==i.stage;i=o.tracker,r(t=>({event:a,activity:[...t.activity,...o.entries].slice(-500),statusSince:s?e:t.statusSince}))}})(),()=>{n.cancelled=!0}},[e,t]),n}var lI=`local-network-access`,uI=4,dI=255,fI=8,pI=32,mI=[`10.0.0.0/8`,`127.0.0.0/8`,`172.16.0.0/12`,`192.168.0.0/16`,`169.254.0.0/16`,`100.64.0.0/10`];function hI(e){let t=e.split(`.`);if(t.length!==uI)return;let n=0;for(let e of t){let t=/^\d{1,3}$/.test(e)?Number(e):NaN;if(!(t<=dI))return;n=n*2**fI+t}return n}function gI(e,t){let[n,r]=t.split(`/`),i=hI(n??``),a=Number(r);if(i===void 0)return!1;let o=2**(pI-a);return Math.floor(e/o)===Math.floor(i/o)}function _I(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase(),n=hI(t);return n===void 0?t.includes(`:`)?t===`::1`||/^f[cd]/.test(t)||/^fe[89ab]/.test(t):t===`localhost`||t.endsWith(`.local`)||!t.includes(`.`):mI.some(e=>gI(n,e))}function vI(e){try{return new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`ws://${e}`).hostname}catch{return}}function yI(e){return typeof e==`object`&&!!e&&`name`in e&&typeof e.name==`string`}function bI(){if(`permissions`in navigator)return{query:async e=>{if(!yI(e))throw TypeError(`not a permission descriptor`);return navigator.permissions.query(e)}}}async function xI(e,t,n){let r=vI(e);if(r!==void 0&&_I(r)&&!_I(t)&&n!==void 0)try{let{state:e}=await n.query({name:lI});return e===`denied`?`Your browser blocked this page from reaching ${r}, a device on your local network. Allow "Local network access" for this site in the browser's site settings (the icon left of the address), then connect again.`:void 0}catch{return}}var SI=(0,k.createContext)(void 0);function CI(){let e=(0,k.useContext)(SI);if(e===void 0)throw Error(`usePeerNames must be used inside PeerNamesProvider`);return e}var wI={pongTimeoutMs:5e3,intervalMs:15e3};function TI(e,t,n=wI){let[r,i]=(0,k.useState)([]),[a,o]=(0,k.useState)(!1),s=(0,k.useRef)(!1),c=(0,k.useCallback)(()=>{e.sendPingMeasureRtt(n.pongTimeoutMs).then(e=>{s.current=!0,o(!1),i(t=>[...t,e].slice(-40))},e=>{e instanceof mP&&(o(!s.current),i(e=>[...e,void 0].slice(-40)))})},[e,n.pongTimeoutMs]);return(0,k.useEffect)(()=>{if(!t||a)return;c();let e=setInterval(c,n.intervalMs);return()=>{clearInterval(e)}},[t,a,c,n.intervalMs]),{samples:r,unresponsive:a,probe:c}}function EI(e,t,n){let[r,i]=(0,k.useState)(()=>e.now());return(0,k.useEffect)(()=>{if(!t)return;let r=setInterval(()=>{i(e.now())},n);return()=>{clearInterval(r)}},[e,t,n]),r}var DI=1e3,OI=60,kI=60,AI=24;function jI(e){let t=Math.floor(e/DI);if(t<1)return;if(t<OI)return`${String(t)} s`;let n=Math.floor(t/OI);if(n<kI)return`${String(n)} min`;let r=Math.floor(n/kI);return r<AI?`${String(r)} h`:`${String(Math.floor(r/AI))} d`}function MI(e){let t=jI(e);return t===void 0?`just now`:`${t} ago`}function NI(e){let t=jI(e);return t===void 0?`in under a second`:`in ${t}`}function PI(e){return`${String(Math.max(0,Math.ceil(e/DI)))} s`}function FI(e,t,n){if(n.length===0)return{kind:`first-use`,node:e,presented:t};let r=new Set(n),i=t.filter(e=>r.has(e));return i.length>0?{kind:`known`,node:e,trusted:i}:{kind:`changed`,node:e,remembered:n,presented:t}}function II(e){if(Mk(e))try{let{url:t,sha256:n}=Nk(e);return{node:new URL(t).host,sha256:[...n]}}catch{return}}function LI(e,t){return{recall:e.recall,remember:async(n,r)=>{let i=FI(n,r.map(e=>kO(e)),(await e.recall(n)).map(e=>kO(e)));await e.remember(n,r),i.kind===`changed`&&t({node:n,remembered:i.remembered,presented:i.presented})}}}var RI=2;function zI(e){let t=[];for(let n=0;n<e.length;n+=RI)t.push(e.slice(n,n+RI).toUpperCase());return t.join(`:`)}var BI=/^([a-z][a-z0-9+.-]*):\/\//i,VI={ws:`ws:`,wss:`wss:`,http:`ws:`,https:`wss:`};function HI(e){if(Mk(e))return e;let t=BI.exec(e);if(t===null)return`ws://${e}`;let n=VI[t[1]?.toLowerCase()??``];if(n===void 0)return e;let r=new URL(e);return r.protocol=n,r.hash=``,r.toString()}function UI({deviceHex:e}){return(0,z.jsx)(z.Fragment,{children:cN(CI().labelOf(e))})}function WI(e){return JSON.stringify(e,(e,t)=>t instanceof Uint8Array?`<${String(t.byteLength)} bytes>`:t)}function GI({activity:e,frameLog:t}){let[n,r]=(0,k.useState)(!1);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(um,{mt:`md`,label:`Show raw frames`,checked:n,onChange:e=>{r(e.currentTarget.checked)}}),n?(0,z.jsx)(km.ScrollContainer,{minWidth:0,h:384,"data-testid":`frame-log`,children:(0,z.jsxs)(km,{children:[(0,z.jsx)(km.Thead,{children:(0,z.jsxs)(km.Tr,{children:[(0,z.jsx)(km.Th,{children:`direction`}),(0,z.jsx)(km.Th,{children:`frame`})]})}),(0,z.jsx)(km.Tbody,{children:t.map((e,t)=>(0,z.jsxs)(km.Tr,{children:[(0,z.jsx)(km.Td,{children:e.direction}),(0,z.jsx)(km.Td,{children:WI(e.frame)})]},t))})]})}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`md`,children:`Activity`}),e.length===0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Nothing has happened yet.`}):(0,z.jsx)(km.ScrollContainer,{minWidth:0,h:384,"data-testid":`activity-log`,children:(0,z.jsx)(km,{children:(0,z.jsx)(km.Tbody,{children:[...e].reverse().map(e=>(0,z.jsxs)(km.Tr,{children:[(0,z.jsx)(km.Td,{children:new Date(e.at).toLocaleTimeString()}),(0,z.jsxs)(km.Td,{children:[e.summary,e.peer!==void 0&&(0,z.jsxs)(z.Fragment,{children:[` `,(0,z.jsx)(UI,{deviceHex:e.peer})]})]})]},e.key))})})})]})]})}var KI=160,qI=32,JI=3,YI=2,XI=26;function ZI(e){let t=e.at(-1);return t===void 0?e.length===0?`No round trips measured yet`:`Last ping got no pong`:`Round trip ${String(Math.round(t))} ms`}function QI({samples:e}){let t=e.filter(e=>e!==void 0),n=Math.max(1,...t),r=KI/39,i=(40-e.length)*r,a=e.map((e,t)=>({x:i+t*r,y:e===void 0?void 0:JI+XI*(1-e/n)})),o=a.filter(e=>e.y!==void 0).map(e=>`${e.x.toFixed(1)},${String(e.y)}`).join(` `);return(0,z.jsxs)(`div`,{"data-testid":`rtt-sparkline`,children:[(0,z.jsxs)(`svg`,{role:`img`,"aria-label":ZI(e),width:KI,height:qI,viewBox:`0 0 ${String(KI)} ${String(qI)}`,children:[(0,z.jsx)(`polyline`,{points:o,fill:`none`,stroke:`currentColor`,strokeWidth:1.5}),a.map(e=>e.y===void 0?null:(0,z.jsx)(`circle`,{cx:e.x,cy:e.y,r:YI,fill:`currentColor`},e.x)),a.filter(e=>e.y===void 0).map(e=>(0,z.jsx)(`line`,{x1:e.x,x2:e.x,y1:21,y2:29,stroke:`var(--mantine-color-red-6)`,strokeWidth:2},e.x))]}),(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:ZI(e)})]})}function $I({state:e,statusSince:t,now:n,policy:r}){let i=t===void 0?void 0:t+r.delayMs(e.attempt),a=i===void 0?0:i-n;return(0,z.jsxs)(U,{size:`sm`,c:`orange`,"data-testid":`reconnect-status`,children:[a>0?`Retrying in ${PI(a)}`:`Retrying now`,` `,`(attempt `,e.attempt,` of `,r.maxAttempts,`). Last failure:`,` `,e.reason]})}function eL({state:e,statusSince:t,now:n,policy:r,health:i}){return e.status===`reconnecting`?(0,z.jsx)($I,{state:e,statusSince:t,now:n,policy:r}):e.status===`connected`?(0,z.jsxs)(pl,{align:`flex-end`,gap:`md`,mb:`sm`,children:[(0,z.jsx)(QI,{samples:i.samples}),i.unresponsive&&(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:`This node does not answer pings, so round trips are not measured automatically.`})]}):null}function tL(e){e?.focus()}function nL({deviceHex:e}){let t=CI(),n=t.labelOf(e),[r,i]=(0,k.useState)(void 0);return r===void 0?(0,z.jsxs)(pl,{gap:`xs`,wrap:`nowrap`,children:[(0,z.jsxs)(`div`,{children:[n.source===`self`&&(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:`calls itself`}),(0,z.jsx)(U,{size:`sm`,fw:n.source===`petname`?`bold`:`normal`,fs:n.source===`self`?`italic`:`normal`,ff:n.source===`id`?`monospace`:`text`,children:n.primary}),n.matchesPetname&&(0,z.jsx)(_d,{size:`xs`,color:`orange`,variant:`light`,children:`same as a name you set`}),n.secondary!==void 0&&(0,z.jsx)(U,{size:`xs`,c:`dimmed`,ff:n.source===`self`?`monospace`:`text`,children:n.secondary})]}),(0,z.jsx)(zd,{value:e,children:({copied:e,copy:t})=>(0,z.jsx)(Zp,{label:e?`Copied`:`Copy device id`,children:(0,z.jsx)(rl,{size:`sm`,variant:`subtle`,"aria-label":`Copy device id of ${n.primary}`,onClick:t,children:`⧉`})})}),(0,z.jsx)(rl,{size:`sm`,variant:`subtle`,"aria-label":`Rename ${n.primary}`,onClick:()=>{i(t.petnameOf(e)??``)},children:`✎`})]}):(0,z.jsx)(`form`,{onSubmit:n=>{n.preventDefault(),t.rename(e,r).then(()=>{i(void 0)})},children:(0,z.jsxs)(pl,{gap:`xs`,wrap:`nowrap`,children:[(0,z.jsx)(Am,{size:`xs`,"aria-label":`Petname for ${n.primary}`,value:r,ref:tL,onChange:e=>{i(e.currentTarget.value)}}),(0,z.jsx)(rl,{type:`submit`,size:`sm`,"aria-label":`Save petname`,children:`✓`}),(0,z.jsx)(rl,{size:`sm`,variant:`subtle`,"aria-label":`Cancel rename`,onClick:()=>{i(void 0)},children:`×`})]})})}var rL=`q7ltm10`,iL=`q7ltm11`;function aL({columns:e,rows:t}){return(0,z.jsxs)(km,{striped:!0,className:iL,children:[(0,z.jsx)(km.Thead,{role:`rowgroup`,children:(0,z.jsx)(km.Tr,{role:`row`,children:e.map(e=>(0,z.jsx)(km.Th,{role:`columnheader`,children:e.headerless===!0?null:e.label},e.label))})}),(0,z.jsx)(km.Tbody,{role:`rowgroup`,children:t.map(t=>(0,z.jsx)(km.Tr,{role:`row`,children:e.map((e,n)=>(0,z.jsx)(km.Td,{role:`cell`,"data-label":e.label,children:t.cells[n]},e.label))},t.key))})]})}var oL=16,sL=1e3;function cL(e){let t=``;for(let n of e)t+=n.toString(oL).padStart(2,`0`);return t}function lL(e){if(e.state.status!==`connected`)return``;switch(e.state.handshake.status){case`pending`:return` · handshake pending`;case`negotiated`:return` · v${String(e.state.handshake.version)} · ${e.state.handshake.sharedDomains.join(`, `)}`;case`unanswered`:return` · handshake unanswered (relay-only node?)`;case`rejected`:return` · handshake rejected (${e.state.handshake.reason})`}return``}function uL(e){let{state:t}=e;switch(t.status){case`connecting`:return`connecting…`;case`connected`:return`connected${lL(e)}`;case`reconnecting`:return`reconnecting (attempt ${String(t.attempt)}, ${t.reason})…`;case`closed`:return`closed (${t.reason})`;case`idle`:return`idle`}return``}var dL=1e3,fL=[{label:`device`},{label:`addresses`},{label:`advertised`},{label:`actions`,headerless:!0}];function pL({address:e,session:t,clock:n,reconnectPolicy:r,certificateChanges:i,onClose:a,onMessagePeer:o,pageHost:s=window.location.hostname,permissions:c=bI()}){let{event:l,activity:u,statusSince:d}=cI(t,n),f=l?.state.status===`reconnecting`||l?.state.status===`closed`,[p,m]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{let t={value:!0};return f&&xI(e,s,c).then(n=>{t.value&&m({address:e,message:n})}),()=>{t.value=!1}},[f,e,s,c]);let h=f&&p?.address===e?p.message:void 0,{observeDirectory:g,selfName:_}=CI(),v=l?.state.status===`connected`;(0,k.useEffect)(()=>{l!==void 0&&g(l.directory)},[l,g]);let y=(0,k.useRef)(!1),[b,x]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{v&&(_!==void 0||y.current)&&(y.current=_!==void 0,t.sendGossipUpdate(_===void 0?void 0:oN(_)).then(()=>{x(void 0)},e=>{x(e instanceof Error?e.message:String(e))}))},[v,_,t]);let S=l===void 0?`idle`:uL(l),C=l?.directory??[],w=l?.frameLog??[],T=TI(t,v),E=EI(n,l?.state.status===`reconnecting`||C.length>0,dL),D=II(HI(e))?.node,O=(0,k.useMemo)(()=>[...u,...sI(i.filter(e=>e.node===D))].sort((e,t)=>e.at-t.at),[u,i,D]);return(0,z.jsxs)(Nd,{withBorder:!0,padding:`md`,radius:`md`,children:[(0,z.jsxs)(pl,{justify:`space-between`,mb:`xs`,children:[(0,z.jsx)(U,{fw:600,children:e}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,disabled:!v,onClick:T.probe,children:`Send ping`}),(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:`light`,onClick:a,children:`Disconnect`})]})]}),(0,z.jsx)(U,{fw:600,size:`sm`,mb:`sm`,children:S}),h===void 0?null:(0,z.jsx)(eu,{color:`yellow`,mb:`sm`,children:h}),b!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`Could not publish your display name`,mb:`sm`,children:b}),l!==void 0&&(0,z.jsx)(eL,{state:l.state,statusSince:d,now:E,policy:r,health:T}),(0,z.jsx)(U,{fw:600,size:`sm`,children:`Peer directory`}),C.length===0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`No gossip received yet.`}):(0,z.jsx)(aL,{columns:fL,rows:C.map(e=>({key:cL(e.device),cells:[(0,z.jsx)(nL,{deviceHex:cL(e.device)},`device`),e.advert.addresses.join(`, `),(0,z.jsx)(Zp,{label:`As the peer advertised it, by its own clock`,children:(0,z.jsx)(`span`,{children:MI(E-e.advert[`snapshot-seconds`]*sL)})},`advertised`),(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{o(e.device)},children:`Message`},`actions`)]}))}),(0,z.jsx)(GI,{activity:O,frameLog:w})]})}var mL=[{label:`device`},{label:`addresses`},{label:`gossiped by`},{label:`actions`,headerless:!0}];function hL({peers:e,onConnect:t,onDismiss:n}){return e.length===0?null:(0,z.jsxs)(Nd,{withBorder:!0,padding:`md`,radius:`md`,"data-testid":`discovered-peers`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mb:`xs`,children:`Discovered peers`}),(0,z.jsx)(U,{size:`sm`,c:`dimmed`,mb:`xs`,children:`Each node below was listed in the directory of a node you are connected to, which is the only thing vouching for it: the address it lists may not be a wire-mesh node at all. Nothing is dialled until you connect.`}),(0,z.jsx)(aL,{columns:mL,rows:e.map(e=>({key:e.key,cells:[(0,z.jsx)(nL,{deviceHex:cL(e.device)},`device`),e.addresses.join(`, `),(0,z.jsxs)(k.Fragment,{children:[e.via.claimedDevice!==void 0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:`claimed to be`}),(0,z.jsx)(nL,{deviceHex:e.via.claimedDevice})]}),(0,z.jsxs)(U,{size:`xs`,c:`dimmed`,children:[`over `,e.via.address]})]},`via`),(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{t(e.key)},children:`Connect`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,color:`red`,onClick:()=>{n(e.key)},children:`Dismiss`})]},`actions`)]}))})]})}function gL({label:e,hashes:t}){return(0,z.jsxs)(`div`,{children:[(0,z.jsx)(U,{size:`sm`,fw:600,children:e}),t.map(e=>(0,z.jsx)(Ld,{block:!0,children:zI(e)},e))]})}function _L({prompt:e}){let{assessment:t,decide:n}=e,r=t.kind===`changed`;return(0,z.jsx)(eu,{color:r?`red`:`blue`,title:r?`Certificate changed for ${t.node}`:`First connection to ${t.node}`,"data-testid":`certificate-prompt`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:r?`This address presents a certificate that shares nothing with the one remembered for this node. The node may have replaced its certificate, or something else may be answering at this address. Only continue if you expected the change.`:`This console has not connected to this node before. Connecting pins the certificate below as the one to expect from it from now on. Compare it with what the node's operator reports before you trust it.`}),r&&(0,z.jsx)(gL,{label:`Remembered`,hashes:t.remembered}),(0,z.jsx)(gL,{label:r?`Presented now`:`Certificate (SHA-256)`,hashes:t.presented}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,color:r?`red`:`blue`,onClick:()=>{n(!0)},children:r?`Trust the new certificate`:`Trust and connect`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{n(!1)},children:`Cancel`})]})]})})}function vL({prompts:e,changes:t,onDismissChange:n}){let r=t.filter(e=>!e.dismissed);return e.length===0&&r.length===0?null:(0,z.jsxs)(rm,{gap:`sm`,"data-testid":`certificate-trust`,children:[e.map(e=>(0,z.jsx)(_L,{prompt:e},e.key)),r.map(e=>(0,z.jsx)(eu,{color:`red`,title:`${e.node} announced different certificates`,withCloseButton:!0,closeButtonLabel:`Dismiss`,onClose:()=>{n(e.key)},children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`The node is still reachable through the certificate you pinned, but it now announces certificates that share nothing with the ones remembered for it, and the announced set is what this console will pin from now on.`}),(0,z.jsx)(gL,{label:`Remembered`,hashes:e.remembered}),(0,z.jsx)(gL,{label:`Announced`,hashes:e.presented})]})},e.key))]})}function yL(e,t){let[n,r]=(0,k.useState)([]),[i,a]=(0,k.useState)([]),o=(0,k.useMemo)(()=>LI(e,e=>{a(n=>[...n,{...e,key:crypto.randomUUID(),at:t.now(),dismissed:!1}])}),[e,t]),s=(0,k.useRef)(new Map),c=(0,k.useRef)(new Map);(0,k.useEffect)(()=>{let e=c.current;return()=>{for(let{refuse:t}of[...e.values()])t()}},[]);let l=(0,k.useCallback)(async e=>{let t=`${e.node} ${[...e.presented].sort().join(`,`)}`,n=s.current.get(t);if(n!==void 0)return n.decision;let i=crypto.randomUUID(),a=new Promise(n=>{let a=!1,o=e=>{a||(a=!0,c.current.get(t)?.promptKey===i&&c.current.delete(t),s.current.get(t)?.promptKey===i&&s.current.delete(t),r(e=>e.filter(e=>e.key!==i)),n(e))};c.current.set(t,{promptKey:i,refuse:()=>{o(!1)}}),r(t=>[...t,{key:i,assessment:e,decide:o}])});return s.current.set(t,{promptKey:i,decision:a}),a},[]);return{prompts:n,changes:i,memory:o,confirmAddress:(0,k.useCallback)(async t=>{let n=II(t);if(n===void 0)return t;let r=FI(n.node,n.sha256.map(e=>kO(e)),(await e.recall(n.node)).map(e=>kO(e)));if(r.kind===`known`)return zk(t,n.sha256.filter(e=>r.trusted.includes(kO(e))));if(await l(r))return await e.remember(n.node,n.sha256),t},[e,l]),dismissChange:(0,k.useCallback)(e=>{a(t=>t.map(t=>t.key===e?{...t,dismissed:!0}:t))},[])}}function bL({store:e,children:t}){let[n,r]=(0,k.useState)(new Map),[i,a]=(0,k.useState)(new Map),[o,s]=(0,k.useState)(void 0),[c,l]=(0,k.useState)(void 0),u=(0,k.useRef)(Promise.resolve()),d=(0,k.useCallback)(async e=>{u.current=u.current.then(async()=>{try{await e(),l(void 0)}catch(e){l(e instanceof Error?e.message:String(e))}}),await u.current},[]);(0,k.useEffect)(()=>{Promise.all([e.petnames(),e.selfName()]).then(([e,t])=>{r(e),s(t)},e=>{l(e instanceof Error?e.message:String(e))})},[e]);let f=(0,k.useCallback)(async(t,n)=>d(async()=>{await e.setPetname(t,n),r(await e.petnames())}),[e,d]),p=(0,k.useCallback)(async t=>d(async()=>{await e.setSelfName(t),s(await e.selfName())}),[e,d]),m=(0,k.useCallback)(e=>{a(t=>{let n;for(let r of e){let e=aN(r.advert),i=AO(r.device);t.get(i)!==e&&(n??=new Map(t),e===void 0?n.delete(i):n.set(i,e))}return n??t})},[]),h=(0,k.useMemo)(()=>new Set(n.values()),[n]),g=(0,k.useMemo)(()=>({labelOf:e=>sN(e,n.get(e),i.get(e),h),petnameOf:e=>n.get(e),rename:f,selfName:o,setSelfName:p,observeDirectory:m}),[n,h,i,o,f,p,m]);return(0,z.jsxs)(SI.Provider,{value:g,children:[c!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`Saved names are unavailable`,mb:`md`,children:c}),t]})}function xL(){let{selfName:e,setSelfName:t}=CI(),[n,r]=(0,k.useState)(void 0),i=n??e??``;return(0,z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),t(i).then(()=>{r(void 0)})},children:(0,z.jsxs)(pl,{align:`flex-end`,wrap:`wrap`,children:[(0,z.jsx)(Am,{label:`Your display name`,description:`Shown to the peers you connect to, signed by this device's key. Leave empty to show only your short id.`,value:i,maxLength:64,onChange:e=>{r(e.currentTarget.value)},style:{flex:1,minWidth:`16rem`}}),(0,z.jsx)(Ed,{type:`submit`,variant:`light`,disabled:(iN(i)??``)===(e??``),children:`Save name`})]})})}function SL({onDismiss:e}){return(0,z.jsxs)(Nd,{withBorder:!0,padding:`md`,radius:`md`,"data-testid":`onboarding-intro`,children:[(0,z.jsx)(Lm,{order:2,size:`h4`,mb:`xs`,children:`Welcome to the wire-mesh console`}),(0,z.jsxs)(vf,{type:`ordered`,spacing:`xs`,size:`sm`,children:[(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`Connect.`}),` `,`Enter a node's address in the Node field and press Connect. A console served by a node starts with that node's address filled in, so there is usually nothing to type. The status line shows the connection coming up.`]}),(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`See who is here.`}),` `,`Once connected, the node's peer directory lists the devices it knows. Message opens a conversation with one. Devices appear under the name they chose for themselves, or a short id; use the pencil beside a device to give it a name of your own, which only this console keeps.`]}),(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`Discovered peers wait for you.`}),` `,`A node you are connected to can tell you about other nodes. Nothing vouches for those addresses except the node that listed them, and one may not be a wire-mesh node at all, so the console never dials one by itself. Each waits in the Discovered peers list until you press Connect or dismiss it.`]}),(0,z.jsxs)(vf.Item,{children:[(0,z.jsx)(U,{span:!0,fw:600,children:`Offline.`}),` `,`The console itself loads without a network, and conversations are kept on this device, so history stays readable. Sending needs a route to the peer, through a node or directly; a message that could not be sent stays with its reason until you retry or dismiss it.`]})]}),(0,z.jsx)(Ed,{mt:`md`,size:`xs`,onClick:e,children:`Got it`})]})}function CL(e,t){return e.sentAt===t.sentAt?kO(e.messageId).localeCompare(kO(t.messageId)):e.sentAt-t.sentAt}function wL(e,t){let n=new Set(e.map(e=>kO(e.messageId))),r=t.filter(e=>!n.has(kO(e.messageId)));return r.length===0?e:[...e,...r].sort(CL)}function TL(e,t,n){let r=e.get(t);return r===void 0?e:new Map(e).set(t,n(r))}function EL(e,t){return{roomPath:e,participants:t,direct:void 0,relay:void 0,via:void 0,token:void 0,status:`closed`,messages:[],notices:[],outgoing:[],pendingJoinRequest:void 0,unread:0}}function DL(e,t,n){let r=t===void 0?n===void 0?void 0:`hub`:`direct`;return{...e,direct:t,relay:n,via:r,status:r===void 0?`closed`:`connected`}}function OL(e,t){switch(t.type){case`direct-opened`:{let n=e.get(t.roomPath)??EL(t.roomPath,t.participants);return new Map(e).set(t.roomPath,{...DL(n,t.session,n.relay),participants:t.participants,notices:[]})}case`relay-opened`:{let n=e.get(t.roomPath)??EL(t.roomPath,t.participants);return new Map(e).set(t.roomPath,DL(n,n.direct,t.route))}case`direct-closed`:return TL(e,t.roomPath,e=>DL(e,void 0,e.relay));case`hub-closed`:{let n=e;for(let r of e.values())r.relay?.hub===t.hub&&(n=TL(n,r.roomPath,e=>DL(e,e.direct,void 0)));return n}case`restored`:return e.get(t.roomPath)===void 0?new Map(e).set(t.roomPath,{...EL(t.roomPath,t.participants),messages:wL([],t.messages)}):TL(e,t.roomPath,e=>({...e,messages:wL(e.messages,t.messages)}));case`notices`:return TL(e,t.roomPath,e=>({...e,notices:t.notices}));case`message`:return TL(e,t.roomPath,e=>{let n=wL(e.messages,[t.message]),r=n!==e.messages;return{...e,messages:n,unread:r&&t.message.direction===`received`?e.unread+1:e.unread}});case`read`:return TL(e,t.roomPath,e=>e.unread===0?e:{...e,unread:0});case`outgoing`:return TL(e,t.roomPath,e=>({...e,outgoing:e.outgoing.some(e=>e.localId===t.entry.localId)?e.outgoing.map(e=>e.localId===t.entry.localId?t.entry:e):[...e.outgoing,t.entry]}));case`outgoing-removed`:return TL(e,t.roomPath,e=>({...e,outgoing:e.outgoing.filter(e=>e.localId!==t.localId)}));case`join-request`:return TL(e,t.roomPath,e=>({...e,pendingJoinRequest:t.request}));case`join-request-settled`:return TL(e,t.roomPath,e=>({...e,pendingJoinRequest:void 0}));case`token`:return TL(e,t.roomPath,e=>({...e,token:t.token}))}return e}function kL(e,t){let n=aF(e);return n.kind===`dm`?n.participants.filter(e=>e!==t):n.owner===t?[]:[n.owner]}function AL(e,t){return e.participants.length===0?e.roomPath:e.participants.map(e=>cN(t.labelOf(e))).join(`, `)}function jL(e){return e.toLowerCase().split(/\s+/).filter(e=>e!==``)}function ML(e,t){let n=e.toLowerCase();return t.every(e=>n.includes(e))}function NL(e,t){let n=jL(t);if(n.length===0)return[];let r=new TextDecoder,i=[];for(let t of e)t.messages.forEach((e,r)=>{ML(e.text,n)&&i.push({key:`${t.roomPath}/message/${String(r)}`,roomPath:t.roomPath,kind:`message`,text:e.text,at:e.sentAt,direction:e.direction})}),t.notices.forEach((e,a)=>{if(e.plaintext===void 0||e.claims===void 0)return;let o=r.decode(e.plaintext);ML(o,n)&&i.push({key:`${t.roomPath}/notice/${String(a)}`,roomPath:t.roomPath,kind:`notice`,text:o,at:e.claims[`posted-at`],direction:void 0})});return i.sort((e,t)=>t.at-e.at).slice(0,50)}function PL({conversations:e,onSelect:t}){let n=CI(),[r,i]=(0,k.useState)(``);if(e.length===0)return null;let a=NL(e,r),o=jL(r).length>0,s=new Map(e.map(e=>[e.roomPath,e]));return(0,z.jsxs)(rm,{gap:`xs`,"data-testid":`search-panel`,children:[(0,z.jsx)(Am,{type:`search`,label:`Search conversations and notices`,value:r,onChange:e=>{i(e.currentTarget.value)}}),o&&a.length===0&&(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Nothing matches.`}),a.map(e=>{let i=s.get(e.roomPath);return(0,z.jsx)(Sf,{label:(0,z.jsx)(nf,{highlight:jL(r),size:`sm`,children:e.text}),description:(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(_d,{size:`xs`,variant:`light`,children:e.kind}),(0,z.jsxs)(U,{size:`xs`,c:`dimmed`,children:[i===void 0?e.roomPath:AL(i,n),` · `,new Date(e.at).toLocaleString()]})]}),onClick:()=>{t(e.roomPath)}},e.key)})]})}var FL=16;function IL(){let e=new Uint8Array(FL);return crypto.getRandomValues(e),e}function LL(e){typeof e==`object`&&e&&`unref`in e&&typeof e.unref==`function`&&Reflect.apply(e.unref,e,[])}function RL(e,t){return{verb:e,params:{verb:`capability.request`,capability:e,...t===void 0?{}:{"valid-until":t}}}}var zL=class extends Error{capability;code;constructor(e,t){super(`capability request for "${e}" was refused (${t})`),this.name=`CapabilityRequestRefusedError`,this.capability=e,this.code=t}};async function BL(e,t,n,r,i,a,o){let s=await e.sendManageRequest(RL(t,a),n,r,o,i);if(s.result!==`ok`)throw new zL(t,s.code);let c=fD.safeParse(s);if(!c.success)throw Error(`capability request for "${t}" response was malformed`);return c.data}var VL=`manage:request`;async function HL(e,t){if(e.token===void 0)return{ok:!1,code:`token_required`};if(t.revocation===void 0)throw Error(`requireRequestToken needs a revocation view on the handler options`);let n=await SM(e.token,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:t.bearerDevice,...t.extraPredicateResolvers===void 0?{}:{extraPredicateResolvers:t.extraPredicateResolvers}});if(!n.ok)return{ok:!1,code:n.reason};if(n.claims.capability!==`manage:request`)return{ok:!1,code:`capability_mismatch`};let r=n.claims[`requests-capability`];return r!==void 0&&r!==t.capability?{ok:!1,code:`capability_mismatch`}:sA(n.claims.scope,e.scope)?{ok:!0}:{ok:!1,code:`scope_mismatch`}}function UL(e){return async function(t){let n=dD.safeParse(t.command.params);if(!n.success||n.data.capability!==e.capability){await t.respond({result:`error`,code:`malformed`});return}let r=n.data;if(e.requireRequestToken===!0){let n=await HL(t,e);if(!n.ok){await t.respond({result:`error`,code:n.code});return}}let i=r[`valid-until`];if(i!==void 0&&i<=e.clock.now()){await t.respond({result:`error`,code:`expired`});return}let a=!1,o=setTimeout(()=>{a||(a=!0,t.respond({result:`error`,code:`timeout`,message:`no decision within the capability-request timeout`}).catch(()=>void 0))},e.timeoutMs);LL(o),e.onRequest({scope:t.scope,requesterDevice:e.bearerDevice,async decide(n){if(a)return;if(a=!0,clearTimeout(o),n.kind===`reject`){await t.respond({result:`error`,code:`denied`,...n.reason===void 0?{}:{message:n.reason}});return}let r=await AM({identity:e.identity,clock:e.clock,tokenId:IL(),bearer:e.bearerDevice,capability:n.capability,scope:t.scope,expires:n.expires,...n.delegationsRemaining===void 0?{}:{delegationsRemaining:n.delegationsRemaining}});if(!r.ok){await t.respond({result:`error`,code:`mint_failed`});return}let i=r.token;await t.respond({result:`ok`,"granted-token":i,...n.extensions??{}})}})}}var WL=16,GL=36e5,KL=[{verb:`room:member`,scopeKind:`room`},{verb:`room:join`,scopeKind:`room`},{verb:`room:invite`,scopeKind:`room`},{verb:`webrtc:signal`,scopeKind:`node`},{verb:`relay:use`,scopeKind:`node`},{verb:`pin:write`,scopeKind:`folder`},{verb:`exec:pty`,scopeKind:`folder`},{verb:`exec:proc`,scopeKind:`folder`},{verb:`group:member`,scopeKind:`group`},{verb:hM,scopeKind:`folder`},{verb:VL,scopeKind:`room`}],qL={[hM]:`grantsCapability`,[VL]:`requestsCapability`},JL={invalid_capability:`its capability is not a valid capability verb`,already_expired:`the grant would already have expired`,parent_malformed:`the grant it delegates from is malformed`,parent_bearer_mismatch:`the grant it delegates from is not held by this device`,expires_exceeds_parent:`it would outlast the grant it delegates from`,scope_does_not_narrow:`its scope is wider than the grant it delegates from`,capability_mismatch:`its capability differs from the grant it delegates from`,delegation_exceeds_parent:`it permits more delegation than its parent does`,links_exclusive:`it would carry both a parent grant and an authorising grant`,authorisation_malformed:`the grant authorising it is malformed`,authorisation_parent_forbidden:`a grant permission cannot be delegated from a parent grant`,authorisation_bearer_mismatch:`the grant authorising it is not held by this device`,authorisation_capability_mismatch:`the grant authorising it names a different capability`,authorisation_scope_does_not_narrow:`its scope is wider than the grant authorising it`,authorisation_exceeds_authoriser:`it would outlast the grant authorising it`,authorisation_delegation_exceeds:`it permits more delegation than the grant authorising it does`,authorisation_conditions_not_satisfied:`the grant authorising it does not allow this mint`};function YL(e,t){let n=(t??``).trim();if(n===``)return{ok:!0};let r=qL[e];if(r===void 0)return{ok:!1,error:`only ${hM} and ${VL} name a verb they cover`};let i=YD.safeParse(n);return i.success?{ok:!0,claim:r,verb:i.data}:{ok:!1,error:`the covered verb must look like subsystem:action, for example room:member`}}function XL(){let e=new Uint8Array(WL);return crypto.getRandomValues(e),e}async function ZL(e,t){let n;try{n=MO(e.bearerHex.trim().toLowerCase())}catch{return{ok:!1,error:`the bearer must be a 64-character hex device-id`}}let r=YD.safeParse(e.capability.trim());if(!r.success)return{ok:!1,error:`the capability must look like subsystem:action, for example room:member`};if(e.scopeKind.trim()===``)return{ok:!1,error:`the scope needs a kind, for example room`};if(!Number.isFinite(e.lifetimeHours)||e.lifetimeHours<=0)return{ok:!1,error:`the lifetime must be more than zero hours`};if(e.delegationsRemaining!==void 0&&!(Number.isSafeInteger(e.delegationsRemaining)&&e.delegationsRemaining>=0))return{ok:!1,error:`further delegations must be a whole number, zero or more`};let i=YL(r.data,e.targetVerb);if(!i.ok)return i;let a=e.selfGrantBars??[];if(a.length>0&&r.data!==`manage:grant`)return{ok:!1,error:`only a ${hM} can bar its holder from granting to itself`};let o=[];for(let e of a){let t=YD.safeParse(e.trim());if(!t.success)return{ok:!1,error:`the barred verb "${e}" must look like subsystem:action`};o.push(oM(t.data,n))}let s=e.scopePath.trim(),c=await AM({identity:t.identity,clock:t.clock,tokenId:XL(),bearer:n,capability:r.data,scope:{kind:e.scopeKind.trim(),...s===``?{}:{path:s}},expires:Math.round(t.clock.now()+e.lifetimeHours*GL),...e.delegationsRemaining===void 0?{}:{delegationsRemaining:e.delegationsRemaining},...e.parent===void 0?{}:{parent:e.parent},...e.authorisedBy===void 0?{}:{authorisedBy:e.authorisedBy},...i.claim===void 0||i.verb===void 0?{}:{[i.claim]:i.verb},...o.length===0?{}:{conditions:o}});return c.ok?{ok:!0,token:c.token}:{ok:!1,error:`refused: ${JL[c.reason]}`}}var QL=3e4;function $L(e){let{identity:t,clock:n,grants:r,revocations:i,announce:a}=e,[o,s]=(0,k.useState)([]),[c,l]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{let e={cancelled:!1,latestLoad:0},a=async()=>{e.latestLoad+=1;let a=e.latestLoad,o=await r.list(),c=await Promise.all(o.map(async e=>({...e,status:await RM(e.token,{identity:t,clock:n,revocation:i.view,...e.direction===`held`?{expectedBearer:t.deviceId}:{}})})));!e.cancelled&&a===e.latestLoad&&(s(c),l(void 0))},o=()=>{a().catch(t=>{e.cancelled||l(t instanceof Error?t.message:String(t))})};o();let c=[r.subscribe(o),i.subscribe(o)],u=setInterval(o,QL);return()=>{e.cancelled=!0,clearInterval(u);for(let e of c)e()}},[t,n,r,i]);let u=(0,k.useCallback)(async e=>{let i=await ZL(e,{identity:t,clock:n});return i.ok?(await r.record(`issued`,i.token,n.now()),{ok:!0,code:IM(i.token)}):i},[t,n,r]),d=(0,k.useCallback)(async e=>{let a;try{a=LM(e)}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}let o=await RM(a,{identity:t,clock:n,revocation:i.view,expectedBearer:t.deviceId});return o.kind===`invalid`?{ok:!1,error:`this device cannot hold that grant: ${BM(o)}`}:(await r.record(`held`,a,n.now()),{ok:!0})},[t,n,r,i]),f=(0,k.useCallback)(async e=>{try{let t=await i.revoke(e.claims[`token-id`]);return{ok:!0,announced:await a(t)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}},[i,a]);return(0,k.useMemo)(()=>({rows:o,loadError:c,mint:u,importCode:d,revoke:f}),[o,c,u,d,f])}function eR({label:e,children:t}){return(0,z.jsxs)(U,{size:`sm`,children:[(0,z.jsxs)(U,{span:!0,fw:600,children:[e,`:`]}),` `,t]})}function tR({row:e}){let{claims:t}=e,n=IM(e.token);return(0,z.jsxs)(rm,{gap:4,"data-testid":`grant-details`,children:[(0,z.jsx)(eR,{label:`Token id`,children:(0,z.jsx)(Ld,{children:e.tokenId})}),(0,z.jsx)(eR,{label:`Issuer`,children:(0,z.jsx)(UI,{deviceHex:AO(t.issuer)})}),(0,z.jsx)(eR,{label:`Bearer`,children:(0,z.jsx)(UI,{deviceHex:AO(t.bearer)})}),(0,z.jsxs)(eR,{label:`Allows`,children:[t.capability,` over `,t.scope.kind,t.scope.path===void 0?``:` ${t.scope.path}`]}),(0,z.jsx)(eR,{label:`Expires`,children:new Date(t.expires).toISOString()}),t[`not-before`]!==void 0&&(0,z.jsx)(eR,{label:`Not before`,children:new Date(t[`not-before`]).toISOString()}),t[`delegations-remaining`]!==void 0&&(0,z.jsx)(eR,{label:`Further delegations`,children:t[`delegations-remaining`]}),t.parent!==void 0&&(0,z.jsx)(eR,{label:`Delegated from`,children:`another grant (its parent rides inside this one)`}),(0,z.jsx)(eR,{label:`Status`,children:BM(e.status)}),(0,z.jsx)(df,{readOnly:!0,label:`Grant code`,description:`Paste this into the other device's grant import to give it this grant.`,value:n,autosize:!0,minRows:2,maxRows:4}),(0,z.jsx)(zd,{value:n,children:({copied:e,copy:t})=>(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:t,w:`fit-content`,children:e?`Copied`:`Copy grant code`})})]})}function nR(e,t){return e>t?NI(e-t):MI(t-e)}function rR({title:e,rows:t,other:n,now:r,onRevoke:i}){let[a,o]=(0,k.useState)(void 0),[s,c]=(0,k.useState)(void 0);return(0,z.jsxs)(`div`,{"data-testid":`grants-${e.toLowerCase()}`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`sm`,children:e}),t.length===0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`None.`}):(0,z.jsx)(aL,{columns:[{label:`capability`},{label:`over`},{label:n===`issuer`?`from`:`to`},{label:`expires`},{label:`status`},{label:`actions`,headerless:!0}],rows:t.map(e=>({key:`${e.direction}/${e.tokenId}`,cells:[e.claims.capability,`${e.claims.scope.kind}${e.claims.scope.path===void 0?``:` ${e.claims.scope.path}`}`,(0,z.jsx)(nL,{deviceHex:AO(e.claims[n])},`other`),nR(e.claims.expires,r),(0,z.jsx)(_d,{color:e.status.kind===`valid`?`green`:`red`,variant:`light`,children:BM(e.status)},`status`),(0,z.jsxs)(k.Fragment,{children:[(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{o(a===e.tokenId?void 0:e.tokenId)},children:a===e.tokenId?`Hide`:`Inspect`}),i!==void 0&&e.status.kind===`valid`&&(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:s===e.tokenId?`filled`:`light`,onClick:()=>{s===e.tokenId?(c(void 0),i(e)):c(e.tokenId)},children:s===e.tokenId?`Confirm: revoke for good`:`Revoke`})]}),a===e.tokenId&&(0,z.jsx)(tR,{row:e})]},`actions`)]}))})]})}function iR({onImport:e}){let[t,n]=(0,k.useState)(``),[r,i]=(0,k.useState)(void 0);return(0,z.jsx)(`form`,{onSubmit:r=>{r.preventDefault(),e(t).then(e=>{i(e),e.ok&&n(``)})},children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`md`,children:`Add a grant you were given`}),(0,z.jsx)(df,{label:`Grant code`,value:t,onChange:e=>{n(e.currentTarget.value)},autosize:!0,minRows:2,maxRows:4,required:!0}),(0,z.jsx)(Ed,{type:`submit`,size:`xs`,w:`fit-content`,children:`Add grant`}),r?.ok===!1&&(0,z.jsx)(eu,{color:`red`,title:`Not added`,children:r.error}),r?.ok===!0&&(0,z.jsx)(eu,{color:`green`,title:`Grant added`,children:`It is listed under Held.`})]})})}var aR=24,oR=`root`,sR=`none`;function cR(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function lR({delegable:e,onMint:t}){let[n,r]=(0,k.useState)(``),[i,a]=(0,k.useState)(``),[o,s]=(0,k.useState)(``),[c,l]=(0,k.useState)(``),[u,d]=(0,k.useState)(aR),[f,p]=(0,k.useState)(``),[m,h]=(0,k.useState)(oR),[g,_]=(0,k.useState)(sR),[v,y]=(0,k.useState)(``),[b,x]=(0,k.useState)(``),[S,C]=(0,k.useState)(void 0),w=e.find(e=>e.tokenId===m),T=e.find(e=>e.tokenId===g),E=e.filter(e=>e.claims.capability===hM),D=i===`manage:grant`||i===`manage:request`;function O(){if(m!==oR&&w===void 0){C({ok:!1,error:`the grant you chose to delegate from is no longer valid; choose another, or choose Root grant to mint without one`});return}if(g!==sR&&T===void 0){C({ok:!1,error:`the grant you chose to authorise this is no longer valid; choose another, or choose None to mint without one`});return}t({bearerHex:n,capability:i,scopeKind:o,scopePath:c,lifetimeHours:u,delegationsRemaining:f===``?void 0:f,parent:w?.token,authorisedBy:T?.token,targetVerb:D?v:``,selfGrantBars:i===`manage:grant`?cR(b):[]}).then(C,e=>{C({ok:!1,error:e instanceof Error?e.message:String(e)})})}return(0,z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),O()},children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mt:`md`,children:`Mint a grant`}),(0,z.jsx)(Am,{label:`Bearer device-id`,description:`The device the grant is for: 64 hex characters, copied from a peer's directory row.`,value:n,onChange:e=>{r(e.currentTarget.value)},required:!0}),(0,z.jsx)(md,{label:`Capability`,description:`What it allows, as subsystem:action.`,data:KL.map(e=>e.verb),value:i,onChange:e=>{a(e);let t=KL.find(t=>t.verb===e);t!==void 0&&s(t.scopeKind)},required:!0}),(0,z.jsx)(Am,{label:`Scope kind`,value:o,onChange:e=>{s(e.currentTarget.value)},required:!0}),(0,z.jsx)(Am,{label:`Scope path`,description:`Leave empty for a scope with no path.`,value:c,onChange:e=>{l(e.currentTarget.value)}}),D&&(0,z.jsx)(Am,{label:`Covered verb`,description:i===`manage:grant`?`The one verb the holder may grant, as subsystem:action. Empty means any verb within the scope.`:`The one verb the holder may request, as subsystem:action. Empty means any verb within the scope.`,value:v,onChange:e=>{y(e.currentTarget.value)}}),i===`manage:grant`&&(0,z.jsx)(Am,{label:`Barred from granting to itself`,description:`Comma-separated verbs the holder may not grant to its own device, for example manage:grant to stop it passing on the right to grant.`,value:b,onChange:e=>{x(e.currentTarget.value)}}),(0,z.jsx)(Lp,{label:`Lasts (hours)`,min:0,value:u,onChange:e=>{d(typeof e==`number`?e:0)}}),(0,z.jsx)(Lp,{label:`Further delegations`,description:`How many times the bearer may pass it on. Empty leaves it unset.`,min:0,allowDecimal:!1,value:f,onChange:e=>{p(typeof e==`number`?e:``)}}),(0,z.jsx)($p,{label:`Delegate from`,description:`A grant you hold, which the new grant may only narrow. Root means none.`,allowDeselect:!1,data:[{value:oR,label:`Root grant (none)`},...e.map(e=>({value:e.tokenId,label:`${e.claims.capability} from ${nN(AO(e.claims.issuer))}`}))],value:m,onChange:e=>{h(e??oR)}}),(0,z.jsx)($p,{label:`Authorised by`,description:`A manage:grant you hold that permits this mint; it may bar what you can grant. None means this grant is minted on your own authority.`,allowDeselect:!1,data:[{value:sR,label:`None`},...E.map(e=>({value:e.tokenId,label:`manage:grant from ${nN(AO(e.claims.issuer))}`}))],value:g,onChange:e=>{_(e??sR)}}),(0,z.jsx)(Ed,{type:`submit`,size:`xs`,w:`fit-content`,children:`Mint grant`}),S?.ok===!1&&(0,z.jsx)(eu,{color:`red`,title:`Not minted`,children:S.error}),S?.ok===!0&&(0,z.jsx)(eu,{color:`green`,title:`Grant minted`,children:`It is listed under Issued, where Inspect shows its grant code.`})]})})}var uR=1e3;function dR(e){if(!e.ok)return{color:`red`,title:`Not revoked`,text:e.error};let{attempted:t,reached:n}=e.announced;return t===0?{color:`yellow`,title:`Revoked here only`,text:`No connection was open, so no node was told. This console no longer honours the grant.`}:n<t?{color:`yellow`,title:`Revoked, but not every node was told`,text:`Sent to ${String(n)} of ${String(t)} connected nodes. This console no longer honours the grant.`}:{color:`green`,title:`Revoked`,text:`Sent to ${String(n)} connected ${n===1?`node`:`nodes`}. This console no longer honours the grant.`}}function fR({grants:e,clock:t}){let n=EI(t,!0,uR),[r,i]=(0,k.useState)(void 0),a=r===void 0?void 0:dR(r),o=e.rows.filter(e=>e.direction===`held`),s=e.rows.filter(e=>e.direction===`issued`);return(0,z.jsxs)(rm,{gap:`xs`,"data-testid":`grants-panel`,children:[(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`A grant is a signed statement that one device may do something over something until a time. Revoking one you issued is recorded here, where this console stops honouring it at once, and sent to the nodes you are connected to. A node only passes it on if it relays revocations, which the hub does not.`}),e.loadError!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`Grants could not be read`,children:e.loadError}),(0,z.jsx)(rR,{title:`Held`,rows:o,other:`issuer`,now:n}),(0,z.jsx)(rR,{title:`Issued`,rows:s,other:`bearer`,now:n,onRevoke:t=>{e.revoke(t).then(i,e=>{i({ok:!1,error:e instanceof Error?e.message:String(e)})})}}),a!==void 0&&(0,z.jsx)(eu,{color:a.color,title:a.title,"data-testid":`revocation-report`,children:a.text}),(0,z.jsx)(lR,{delegable:o.filter(e=>e.status.kind===`valid`),onMint:e.mint}),(0,z.jsx)(iR,{onImport:e.importCode})]})}var pR=6e4;function mR(e,t){let n=URL.createObjectURL(new Blob([t],{type:`application/json`})),r=document.createElement(`a`);r.href=n,r.download=e,r.hidden=!0,document.body.append(r),r.click(),r.remove(),setTimeout(()=>{URL.revokeObjectURL(n)},pR)}var hR=`wire-mesh-console-identity.json`,gR=2;function _R(){location.reload()}function vR({identity:e,backup:t,save:n=mR,reload:r=_R}){let i=AO(e.deviceId),[a,o]=(0,k.useState)({kind:`idle`}),[s,c]=(0,k.useState)(!1);async function l(){try{n(hR,JSON.stringify(await t.export(),void 0,gR)),o({kind:`exported`})}catch(e){o({kind:`error`,message:e instanceof Error?e.message:String(e)})}}async function u(e){try{await t.restore(e),o({kind:`restored`})}catch(e){o({kind:`error`,message:e instanceof Error?e.message:String(e)})}}async function d(e){if(e!==null)try{o({kind:`confirm-restore`,backup:await eA(await e.text())})}catch(e){o({kind:`error`,message:e instanceof Error?e.message:String(e)})}}return(0,z.jsxs)(rm,{gap:`xs`,"data-testid":`identity-panel`,children:[(0,z.jsxs)(U,{size:`sm`,children:[`This device is `,(0,z.jsx)(Ld,{"data-testid":`own-device-id`,children:i}),` `,(0,z.jsx)(zd,{value:i,children:({copied:e,copy:t})=>(0,z.jsx)(Ed,{size:`compact-xs`,variant:`subtle`,onClick:t,children:e?`Copied`:`Copy device id`})})]}),(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Its key is ES256 (P-256) and lives in this browser. If this browser's storage is cleared or the device is lost, the identity is gone, along with every grant made to it. A backup file lets you keep it.`}),a.kind===`confirm-export`&&(0,z.jsx)(eu,{color:`orange`,title:`This file holds your private key`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`Anyone who has it can act as this device. Save it somewhere private, and do not send it to anyone. The console does not show the key or keep a copy of the file.`}),(0,z.jsx)(od,{label:`I understand, and I want a backup file`,checked:s,onChange:e=>{c(e.currentTarget.checked)}}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,color:`orange`,disabled:!s,onClick:()=>{l()},children:`Save backup file`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{o({kind:`idle`})},children:`Cancel`})]})]})}),a.kind===`exported`&&(0,z.jsxs)(eu,{color:`green`,title:`Backup file handed to your browser`,children:[(0,z.jsx)(U,{size:`sm`,children:`The browser was asked to save it, and may have asked where. Check that the file is there before you rely on it.`}),(0,z.jsx)(U,{size:`sm`,children:`Keep it private. Restoring it on another browser makes that browser this device.`})]}),a.kind===`confirm-restore`&&(0,z.jsx)(eu,{color:`red`,title:`Replace this device's identity?`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsxs)(U,{size:`sm`,children:[`This device is now `,(0,z.jsx)(Ld,{children:i}),`. The backup is`,` `,(0,z.jsx)(Ld,{children:a.backup.deviceId}),`. Restoring makes this browser the backup's device the next time the console loads, and this identity, with the grants made to it, is gone unless you have a backup of it.`]}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,color:`red`,onClick:()=>{u(a.backup)},children:`Replace this identity`}),(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{o({kind:`idle`})},children:`Cancel`})]})]})}),a.kind===`restored`&&(0,z.jsx)(eu,{color:`green`,title:`Identity restored`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`Reload the console to run as the restored identity.`}),(0,z.jsx)(Ed,{size:`xs`,w:`fit-content`,onClick:r,children:`Reload now`})]})}),a.kind===`error`&&(0,z.jsx)(eu,{color:`red`,title:`That did not work`,children:a.message}),(a.kind===`idle`||a.kind===`exported`||a.kind===`error`)&&(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,variant:`light`,onClick:()=>{c(!1),o({kind:`confirm-export`})},children:`Back up this identity`}),(0,z.jsx)(Wd,{accept:`application/json,.json`,onChange:e=>{d(e)},children:e=>(0,z.jsx)(Ed,{size:`xs`,variant:`light`,color:`red`,...e,children:`Restore from a backup file`})})]})]})}function yR({identity:e,clock:t,grants:n,revocations:r,identityBackup:i,announceRevocation:a}){let o=$L({identity:e,clock:t,grants:n,revocations:r,announce:a});return(0,z.jsxs)(Zl,{multiple:!0,variant:`contained`,"data-testid":`identity-section`,children:[(0,z.jsxs)(Zl.Item,{value:`identity`,children:[(0,z.jsx)(Zl.Control,{children:`Identity`}),(0,z.jsx)(Zl.Panel,{children:(0,z.jsx)(vR,{identity:e,backup:i})})]}),(0,z.jsxs)(Zl.Item,{value:`grants`,children:[(0,z.jsx)(Zl.Control,{children:`Grants`}),(0,z.jsx)(Zl.Panel,{children:(0,z.jsx)(fR,{grants:o,clock:t})})]})]})}function bR({revocations:e,onFailure:t}){let n=(0,k.useSyncExternalStore)(e.subscribe,e.unreadable);return n.length===0?null:(0,z.jsx)(eu,{color:`red`,title:`Some stored revocations could not be loaded`,"data-testid":`unreadable-revocations`,children:(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsx)(U,{size:`sm`,children:`A grant that one of these revoked may read as valid until it is dealt with. Discarding an entry deletes it from this console's storage.`}),n.map(n=>(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsxs)(U,{size:`sm`,children:[n.key,`: `,n.reason]}),(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:`light`,onClick:()=>{e.discardUnreadable(n.key).catch(e=>{t(e instanceof Error?e.message:String(e))})},children:`Discard`})]},n.key))]})})}function xR(e){return e instanceof Error?e.message:String(e)}function SR(e){let[t,n]=(0,k.useState)(void 0),[r,i]=(0,k.useState)(void 0);(0,k.useEffect)(()=>{e.introDismissed().then(n,e=>{n(!1),i(xR(e))})},[e]);let a=(0,k.useCallback)(t=>{n(t),e.setIntroDismissed(t).then(()=>{i(void 0)},e=>{i(xR(e))})},[e]),o=(0,k.useCallback)(()=>{a(!0)},[a]),s=(0,k.useCallback)(()=>{a(!1)},[a]);return{visible:t===!1,ready:t!==void 0,error:r,dismiss:o,show:s}}function CR({conversations:e,selected:t,onSelect:n}){let r=CI();return e.length===0?null:(0,z.jsxs)(rm,{gap:0,"data-testid":`conversation-list`,children:[(0,z.jsx)(U,{fw:600,size:`sm`,mb:`xs`,children:`Conversations`}),e.map(e=>(0,z.jsx)(Sf,{active:e.roomPath===t,label:AL(e,r),description:e.status===`connected`?void 0:`offline`,rightSection:(0,z.jsxs)(pl,{gap:4,wrap:`nowrap`,children:[e.pendingJoinRequest!==void 0&&(0,z.jsx)(_d,{color:`blue`,size:`sm`,children:`request`}),e.unread>0&&(0,z.jsx)(_d,{size:`sm`,"aria-label":`${String(e.unread)} unread`,children:e.unread})]}),onClick:()=>{n(e.roomPath)}},e.roomPath))]})}function wR({placeholder:e,ariaLabel:t,submitLabel:n,onSubmit:r,onCancel:i,size:a,autoFocus:o}){let[s,c]=(0,k.useState)(``),[l,u]=(0,k.useState)(void 0);function d(){let e=s.trim();e!==``&&(u(void 0),Promise.resolve(r(e)).then(()=>{c(``)}).catch(e=>{u(e instanceof Error?e.message:String(e))}))}function f(e){e.key===`Enter`&&d(),e.key===`Escape`&&i?.()}return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(pl,{gap:`xs`,flex:1,children:[(0,z.jsx)(Am,{flex:1,...a===void 0?{}:{size:a},placeholder:e,"aria-label":t,autoComplete:`off`,autoFocus:o,value:s,onChange:e=>{c(e.currentTarget.value)},onKeyDown:f}),(0,z.jsx)(Ed,{...a===void 0?{}:{size:a},onClick:d,children:n})]}),l!==void 0&&(0,z.jsx)(U,{size:`sm`,c:`red`,children:l})]})}var TR=`You`,ER=256,DR=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`});function OR({sentAt:e}){return(0,z.jsx)(U,{component:`time`,size:`xs`,c:`dimmed`,dateTime:new Date(e).toISOString(),children:DR.format(e)})}function kR({messages:e,outgoing:t,peerLabel:n,onRetry:r,onDiscard:i}){let a=(0,k.useRef)(null);return(0,k.useEffect)(()=>{let e=a.current;e!==null&&(e.scrollTop=e.scrollHeight)},[e,t]),(0,z.jsx)(Gs,{h:ER,viewportRef:a,children:(0,z.jsxs)(rm,{gap:4,children:[e.map((t,r)=>{let i=t.direction===`sent`,a=r===0||e[r-1]?.direction!==t.direction;return(0,z.jsxs)(rm,{gap:0,align:i?`flex-end`:`flex-start`,mt:a?`xs`:0,children:[a&&(0,z.jsx)(U,{size:`xs`,fw:600,c:`dimmed`,children:i?TR:n}),(0,z.jsx)(U,{size:`sm`,children:t.text}),(0,z.jsx)(OR,{sentAt:t.sentAt})]},kO(t.messageId))}),t.map(e=>(0,z.jsxs)(rm,{gap:0,align:`flex-end`,mt:`xs`,children:[(0,z.jsx)(U,{size:`xs`,fw:600,c:`dimmed`,children:TR}),(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:e.text}),e.status===`failed`?(0,z.jsxs)(pl,{gap:`xs`,children:[(0,z.jsx)(U,{size:`xs`,c:`red`,children:`Not sent: ${e.error}`}),(0,z.jsx)(Ed,{size:`compact-xs`,variant:`light`,onClick:()=>{r(e.localId)},children:`Retry`}),(0,z.jsx)(Ed,{size:`compact-xs`,variant:`subtle`,color:`gray`,onClick:()=>{i(e.localId)},children:`Dismiss`})]}):(0,z.jsx)(U,{size:`xs`,c:`dimmed`,children:e.status===`awaiting-approval`?`Waiting for ${n} to allow messages`:`Sending`})]},e.localId))]})})}function AR(e){if(e.plaintext!==void 0)return new TextDecoder().decode(e.plaintext)}function jR({notices:e}){if(e.length===0)return null;let t=e.map((e,t)=>{let n=AR(e);return(0,z.jsx)(H,{children:n===void 0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,fs:`italic`,children:`encrypted notice -- no key held for its epoch`}):(0,z.jsx)(U,{size:`sm`,children:n})},t)});return(0,z.jsxs)(rm,{gap:4,children:[t,(0,z.jsxs)(_d,{variant:`light`,color:`gray`,size:`sm`,w:`fit-content`,children:[e.length,` notice`,e.length===1?``:`s`]})]})}var MR=864e5;function NR(e){return e===`direct`?`direct`:e===`hub`?`via hub`:`offline`}function PR({view:e,onSend:t,onPostNotice:n,onRetry:r,onDiscard:i}){let a=CI();return(0,z.jsxs)(rm,{gap:`xs`,children:[(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsx)(U,{fw:600,"data-testid":`conversation-header`,children:AL(e,a)}),(0,z.jsx)(U,{size:`sm`,c:e.status===`connected`?`green`:`dimmed`,children:NR(e.via)})]}),e.pendingJoinRequest&&(0,z.jsx)(eu,{color:`blue`,title:`Message request`,children:(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsxs)(U,{size:`sm`,children:[(0,z.jsx)(UI,{deviceHex:e.pendingJoinRequest.requesterHex}),` `,`wants to message you`]}),(0,z.jsxs)(pl,{children:[(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{e.pendingJoinRequest?.decide({kind:`accept`,capability:`room:member`,expires:Date.now()+MR})},children:`Allow`}),(0,z.jsx)(Ed,{size:`xs`,color:`red`,variant:`light`,onClick:()=>{e.pendingJoinRequest?.decide({kind:`reject`})},children:`Deny`})]})]})}),(0,z.jsx)(kR,{messages:e.messages,outgoing:e.outgoing,peerLabel:AL(e,a),onRetry:r,onDiscard:i}),(0,z.jsx)(pl,{children:(0,z.jsx)(wR,{ariaLabel:`Message`,placeholder:`Message`,submitLabel:`Send`,onSubmit:t})}),(0,z.jsx)(Ud,{label:`Durable notices (encrypted, replicated)`,labelPosition:`center`}),(0,z.jsx)(jR,{notices:e.notices}),e.via===void 0?(0,z.jsx)(U,{size:`sm`,c:`dimmed`,children:`Durable notices can be posted while the conversation is connected.`}):(0,z.jsx)(pl,{children:(0,z.jsx)(wR,{ariaLabel:`Post a durable notice`,placeholder:`Post a durable notice`,submitLabel:`Post notice`,onSubmit:n})})]})}var FR=`room:member`;async function IR(e,t){let n=await SM(e,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:t.expectedBearer});if(!n.ok)return n;if(n.claims.scope.kind!==`room`)return{ok:!1,reason:`wrong_scope_kind`};if(n.claims.scope.path!==t.roomPath)return{ok:!1,reason:`wrong_scope_path`};let r=aF(t.roomPath),i=AO(n.rootIssuer);if(r.kind===`owner-named`){if(i!==r.owner)return{ok:!1,reason:`wrong_chain_root`}}else if(t.dmRootPolicy===`either-participant`){if(i!==r.participants[0]&&i!==r.participants[1])return{ok:!1,reason:`wrong_chain_root`}}else if(i!==AO(t.identity.deviceId))return{ok:!1,reason:`wrong_chain_root`};return{ok:!0,claims:n.claims,rootIssuerKey:n.rootIssuerKey}}async function LR(e,t,n,r){let i=(await e.list()).filter(e=>{let t=e.claims;if(e.direction!==`held`||t.capability!==`manage:request`)return!1;let i=t[`requests-capability`];return i!==void 0&&i!==n?!1:sA(t.scope,r)}),a=async e=>{let[n,...r]=e;if(n!==void 0)return(await RM(n.token,t)).kind===`valid`?n.token:a(r)};return a(i)}function RR(e){if(e instanceof zL)switch(e.code){case`denied`:return`the other side denied the request`;case`token_required`:return`the other side only accepts requests that present a request permission, and this device holds none that covers this one`;case`capability_mismatch`:return`the request permission presented does not cover this capability`;case`scope_mismatch`:return`the request permission presented does not cover this conversation`;default:return`the request permission presented was refused (${e.code})`}}function zR(e){return async function(t){if(t.command.verb!==e.capability){await t.respond({result:`error`,code:`malformed`});return}let n=pD.safeParse(t.command.params);if(!n.success){await t.respond({result:`error`,code:`malformed`});return}let r=n.data[`granted-token`],i=await SM(r,{identity:e.identity,clock:e.clock,revocation:e.revocation,expectedBearer:e.identity.deviceId});if(!i.ok){await t.respond({result:`error`,code:i.reason});return}if(i.claims.capability!==e.capability){await t.respond({result:`error`,code:`capability_mismatch`});return}if(!sA(i.claims.scope,t.scope)){await t.respond({result:`error`,code:`scope_mismatch`});return}await t.respond({result:`ok`}),e.onGrant({capability:e.capability,grantedToken:r,scope:t.scope,granterDevice:e.granterDevice})}}var BR=16;function VR(){let e=new Uint8Array(BR);return crypto.getRandomValues(e),e}var HR=3e5;function UR(e,t,n){return{verb:FR,params:{verb:`room.send`,"message-id":t,"sent-at":n,text:e}}}async function WR(e,t,n,{token:r,targetDevice:i}){let a=UR(n,VR(),Date.now());return e.sendManageRequest(a,{kind:`room`,path:t},i,r)}async function GR(e,t,{targetDevice:n,requestToken:r}={}){let i;try{i=await BL(e,FR,{kind:`room`,path:t},n,void 0,void 0,r)}catch(e){let t=RR(e);throw t===void 0?e:Error(t)}let a=jD.safeParse(i);if(!a.success)throw Error(`room.join response for ${t} was malformed`);return{token:a.data[`granted-token`],members:a.data.members.map(e=>e.device)}}function KR(e,t,n){async function r(e,r){let i=e.scope.path;if(i===void 0||e.token===void 0){await e.respond({result:`error`,code:`unauthorized`});return}if(!(await IR(e.token,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:t.peerDevice,roomPath:i})).ok){await e.respond({result:`error`,code:`unauthorized`});return}await e.respond({result:`ok`});let a=r[`message-id`],o=r[`sent-at`],s=r.text;a instanceof Uint8Array&&typeof o==`number`&&typeof s==`string`&&n.onMessage?.({roomPath:i,text:s,messageId:a,sentAt:o})}function i(e){return async n=>{if(n.kind===`reject`){let t={kind:`reject`,...n.reason===void 0?{}:{reason:n.reason}};await e.decide(t);return}let r=[...t.currentMembers?.()??[],t.peerDevice].map(e=>({device:e})),i={kind:`accept`,capability:n.capability,expires:n.expires,...n.delegationsRemaining===void 0?{}:{delegationsRemaining:n.delegationsRemaining},extensions:{members:r}};await e.decide(i)}}let a=UL({capability:FR,identity:t.identity,clock:t.clock,bearerDevice:t.peerDevice,timeoutMs:t.joinRequestTimeoutMs??HR,onRequest(e){let t=e.scope.path,r=n.onJoinRequest;if(t===void 0||r===void 0){e.decide({kind:`reject`,reason:`unsupported verb`});return}r({roomPath:t,requesterDevice:e.requesterDevice,decide:i(e)})}});async function o(e){if(e.scope.path===void 0){await e.respond({result:`error`,code:`missing_scope_path`});return}if(n.onJoinRequest===void 0){await e.respond({result:`error`,code:`unsupported_verb`});return}await a({...e,respond:async t=>{if(t.result===`ok`){let e=nO.safeParse(t[`granted-token`]);e.success&&n.onGrantIssued?.(e.data)}await e.respond(t)}})}let s=zR({capability:FR,identity:t.identity,clock:t.clock,revocation:t.revocation,granterDevice:t.peerDevice,onGrant(e){let t=e.scope.path,r=n.onRoomInvite;t!==void 0&&r!==void 0&&r({roomPath:t,granterDevice:e.granterDevice,token:e.grantedToken})}});async function c(e){if(e.scope.path===void 0){await e.respond({result:`error`,code:`missing_scope_path`});return}if(n.onRoomInvite===void 0){await e.respond({result:`error`,code:`unsupported_verb`});return}await s(e)}(async()=>{for await(let t of e.incomingManageRequests){if(t.command.verb!==`room:member`)continue;let e=t.command.params;typeof e==`object`&&`verb`in e&&(e.verb===`room.send`?await r(t,e):e.verb===`capability.request`?await o(t):e.verb===`capability.grant`?await c(t):e.verb===`room.rekey`&&n.onRekey!==void 0&&await n.onRekey(t))}})()}var qR=`room-key/`,JR=`room-token/`,YR=`room-key-delivered/`,XR=String(2**53-1).length;function ZR(e,t){return`${qR}${e}/${String(t).padStart(XR,`0`)}`}function QR(e){return{get:async(t,n)=>e.get(ZR(t,n)),set:async(t,n,r)=>{await e.set(ZR(t,n),new Uint8Array(r))},currentEpoch:async t=>{let n=(await e.keys(`${qR}${t}/`)).sort().at(-1);return n===void 0?void 0:Number(n.slice(n.lastIndexOf(`/`)+1))}}}function $R(e,t,n,r){return{get:async i=>{let a=JR+i,o=await e.get(a);if(o===void 0)return;let s=nO.safeParse(b_(o,x_));if(s.success&&(await SM(s.data,{identity:t,clock:n,revocation:r,expectedBearer:t.deviceId})).ok)return s.data;await e.delete(a)},set:async(t,n)=>{await e.set(JR+t,new Uint8Array(Mg(n,hg)))},rooms:async()=>(await e.keys(JR)).map(e=>e.slice(11))}}function ez(e){return{isDelivered:async t=>await e.get(YR+t)!==void 0,markDelivered:async t=>{await e.set(YR+t,new Uint8Array([1]))}}}var tz=32,nz=256,rz=12,iz=4,az=8,oz=new TextEncoder().encode(`wire-mesh/room-rekey/v1\0`);function sz(){return crypto.getRandomValues(new Uint8Array(tz))}function cz(e){let t=new TextEncoder().encode(e.room),n=new Uint8Array(iz);new DataView(n.buffer).setUint32(0,t.length,!1);let r=new Uint8Array(az);new DataView(r.buffer).setBigUint64(0,BigInt(e.keyEpoch),!1);let i=new Uint8Array(oz.length+n.length+t.length+r.length),a=0;return i.set(oz,a),a+=oz.length,i.set(n,a),a+=n.length,i.set(t,a),a+=t.length,i.set(r,a),i}async function lz(e,t){let n=await crypto.subtle.importKey(`raw`,Uint8Array.from(e),`HKDF`,!1,[`deriveKey`]);return crypto.subtle.deriveKey({name:`HKDF`,hash:`SHA-256`,salt:Uint8Array.from(new Uint8Array),info:Uint8Array.from(cz(t))},n,{name:`AES-GCM`,length:nz},!1,[`encrypt`,`decrypt`])}async function uz(e,t){let n=crypto.getRandomValues(new Uint8Array(rz)),r=new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},e,Uint8Array.from(t))),i=new Uint8Array(n.length+r.length);return i.set(n,0),i.set(r,n.length),i}async function dz(e,t){if(t.length<rz)throw Error(`ciphertext shorter than the AES-GCM IV it must carry`);let n=t.slice(0,rz),r=t.slice(rz);return new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:n},e,r))}async function fz(e,t){return uz(e,t)}async function pz(e,t){return dz(e,t)}async function mz(e){return crypto.subtle.importKey(`raw`,Uint8Array.from(e),`AES-GCM`,!1,[`encrypt`,`decrypt`])}async function hz(e,t){return uz(await mz(e),t)}async function gz(e,t){return dz(await mz(e),t)}var _z=`+aes256gcm`;function vz(e){return bz(e)?e:`${e}${_z}`}function yz(e){return bz(e)?e.slice(0,e.length-10):e}function bz(e){return e.endsWith(_z)}var xz=`store_failed`;function Sz(e,t){return{verb:FR,params:{verb:`room.rekey`,"key-epoch":e,"wrapped-key":t}}}async function Cz(e,t,n,r,i,a){return e.sendManageRequest(Sz(n,r),{kind:`room`,path:t},i,a)}function wz(e){return async function(t){if(t.command.verb!==`room:member`){await t.respond({result:`error`,code:`malformed`});return}let n=kD.safeParse(t.command.params);if(!n.success){await t.respond({result:`error`,code:`malformed`});return}if(t.scope.kind!==`room`||t.scope.path===void 0){await t.respond({result:`error`,code:`scope_mismatch`});return}let r=t.scope.path,i=await IR(e.ownRoomMemberToken,{identity:e.identity,clock:e.clock,revocation:e.revocation,expectedBearer:e.identity.deviceId,roomPath:r,dmRootPolicy:`either-participant`});if(!i.ok){await t.respond({result:`error`,code:i.reason});return}let a=e.identity.deriveSharedSecret;if(a===void 0){await t.respond({result:`error`,code:`ecdh_unsupported`});return}let o=n.data[`key-epoch`],s=Array.isArray(n.data[`wrapped-key`])?n.data[`wrapped-key`]:[n.data[`wrapped-key`]],c=o-s.length+1,l;try{let e=await a(i.rootIssuerKey);l=await Promise.all(s.map(async(t,n)=>pz(await lz(e,{room:r,keyEpoch:c+n}),t)))}catch{await t.respond({result:`error`,code:`unwrap_failed`});return}try{await e.onRekey({room:r,keyEpoch:o,contentKeys:l})}catch(e){throw await t.respond({result:`error`,code:xz}),e}await t.respond({result:`ok`})}}async function Tz(e,t){await e.reduce(async(e,n,r)=>{await e,await t(n,r)},Promise.resolve())}function Ez(e){return Uint8Array.from(e)}function Dz(e){return Ez(Mg(e,hg))}function Oz(e){return Dz({1:e.identityKey.alg,4:e.deviceId})}function kz(e,t){return Mg([`Signature1`,e,new Uint8Array,t],hg)}function Az(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}async function jz(e,t){let[n,,r,i]=e;if(r===null)return{ok:!1,reason:`malformed`};let a;try{a=b_(r,x_)}catch{return{ok:!1,reason:`malformed`}}let o=ND.safeParse(a);if(!o.success)return{ok:!1,reason:`malformed`};let s=o.data;if(t.expectedRoom!==void 0&&s.room!==t.expectedRoom)return{ok:!1,reason:`wrong_room`};if(!await pk(t.identity,s[`poster-key`],kz(n,r),i))return{ok:!1,reason:`bad_signature`};if(!Az(await t.identity.deriveDeviceId(s[`poster-key`][`public-key`]),s.poster))return{ok:!1,reason:`wrong_poster`};let c=s[`valid-until`];if(c!==void 0&&c<=t.clock.now())return{ok:!1,reason:`content_expired`};let l=s[`key-epoch`];if(bz(s[`content-type`])!==(l!==void 0))return{ok:!1,reason:`key_epoch_mismatch`};let u=await IR(s.token,{identity:t.identity,clock:t.clock,revocation:t.revocation,expectedBearer:s.poster,roomPath:s.room,...t.dmRootPolicy===void 0?{}:{dmRootPolicy:t.dmRootPolicy}});return u.ok?{ok:!0,claims:s}:{ok:!1,reason:u.reason}}async function Mz(e){let t=Dz({room:e.room,poster:e.identity.deviceId,"poster-key":e.identity.identityKey,token:e.token,"notice-id":e.noticeId,"posted-at":e.clock.now(),"content-type":e.contentType,content:e.content,...e.refs===void 0?{}:{refs:[...e.refs]},...e.validUntil===void 0?{}:{"valid-until":e.validUntil},...e.keyEpoch===void 0?{}:{"key-epoch":e.keyEpoch}}),n=Oz(e.identity);return[n,{},t,await e.identity.sign(kz(n,t))]}var Nz=16;function Pz(e){return new Uint8Array(Mg(e,hg))}function Fz(e){let{identity:t,storage:n,clock:r,revocation:i,roomKeys:a}=e;async function o(e){let i=await a.currentEpoch(e.room);if(i===void 0)throw Error(`no content key held for room ${e.room}: room.rekey this room before posting encrypted notices`);let o=await a.get(e.room,i);if(o===void 0)throw Error(`content key store is inconsistent: epoch ${String(i)} is current for room ${e.room} but holds no key`);let s=e.noticeId??crypto.getRandomValues(new Uint8Array(Nz)),c=await hz(o,e.plaintext),l=await Mz({identity:t,clock:r,room:e.room,token:e.token,noticeId:s,contentType:vz(e.contentType),content:c,keyEpoch:i}),{haveFrame:u}=await cP({identity:t,storage:n},Pz(l));return{dataHave:u,notice:l,keyEpoch:i}}async function s(e,t){let r=await sP(n,e);if(!(await dP(n,{type:`data-entries`,peer:e,"from-seq":r,entries:[t]})).ok)throw Error(`gap rejecting entry for peer log (head ${String(r)})`)}async function c(e,t,r){let i=await fP(n,e,0),a=[];return await rA(i,async e=>{a.push(await l(e,t,r))}),a}async function l(e,n,o){let s=u(e);if(s===void 0)return{verified:!1,reason:`malformed`};let c=await jz(s,{identity:t,clock:r,revocation:i,expectedRoom:n,dmRootPolicy:o});if(!c.ok)return{verified:!1,reason:c.reason};let l=c.claims;if(!bz(l[`content-type`]))return{verified:!0,contentType:l[`content-type`],plaintext:l.content,claims:l};let d=l[`key-epoch`];if(d===void 0)return{verified:!1,reason:`key_epoch_mismatch`};let f=await a.get(l.room,d),p={verified:!0,contentType:yz(l[`content-type`]),claims:l};if(f===void 0)return p;try{let e=await gz(f,l.content);return{...p,plaintext:e}}catch{return p}}function u(e){try{let t=b_(e,x_),n=MD.safeParse(t);return n.success?n.data:void 0}catch{return}}return{postEncryptedNotice:o,ingestPeerEntry:s,readOwnNotices:async e=>c(t.deviceId,e,`either-participant`),readPeerNotices:async(e,t)=>c(e,t,`self`)}}var Iz=32;function Lz(e){let{senders:t,storage:n,identity:r,clock:i,revocation:a,roomKeys:o,onChange:s}=e,c=Fz({identity:r,storage:n,clock:i,revocation:a,roomKeys:o});async function l(e,t){let r=await sP(n,t);await e.sendDataFrame({type:`data-request`,peer:t,"from-seq":r})}async function u(e){let t=await sP(n,r.deviceId);t!==0&&await e.sendDataFrame({type:`data-have`,peer:r.deviceId,"head-seq":t})}function d(e,t){if(e.type===`data-have`){l(t,e.peer).catch(()=>void 0);return}if(e.type===`data-entries`){(async()=>{(await dP(n,e)).ok&&(e.entries.length>=Iz&&await l(t,e.peer).catch(()=>void 0),s())})();return}e.type===`data-request`&&(async()=>{let r=await uP(n,e,Iz);r!==null&&await t.sendDataFrame(r)})().catch(()=>void 0)}return{handleFrame:d,async post(e){let{dataHave:n}=await c.postEncryptedNotice(e);await Promise.allSettled(t().map(async e=>e.sendDataFrame(n))),s()},async readRoom(e,t){let n=await c.readOwnNotices(e),r=await Promise.all(t.map(async t=>c.readPeerNotices(t,e)));return[...n,...r.flat()]},async sync(e,t){await u(e),await Promise.all(t.map(async t=>l(e,t)))},async pull(e){await Promise.allSettled(t().flatMap(t=>e.map(async e=>l(t,e))))},roomKeys:o}}async function Rz(e){let{session:t,target:n,identity:r,clock:i,revocation:a,ownRoomMemberToken:o,roomPath:s,roomKeys:c,delivery:l}=e,u=s.split(`+`)[0]??``;if(u===``||AO(r.deviceId)!==u)return;let d=await c.currentEpoch(s);if(d!==void 0&&d!==1||await l.isDelivered(s))return;let f=await IR(o,{identity:r,clock:i,revocation:a,expectedBearer:r.deviceId,roomPath:s,dmRootPolicy:`either-participant`});if(!f.ok)throw Error(`own room token failed verification: ${f.reason}`);let p=r.deriveSharedSecret;if(p===void 0)throw Error(`this identity cannot derive ECDH shared secrets`);let m=d===void 0?sz():await c.get(s,1);if(m===void 0)throw Error(`room ${s} lost its epoch 1 key`);let h=await fz(await lz(await p(f.rootIssuerKey),{room:s,keyEpoch:1}),m);d===void 0&&await c.set(s,1,m);let g=await Cz(t,s,1,h,n,o);if(g.result!==`ok`)throw Error(`room.rekey was refused: ${g.code}`);await l.markDelivered(s)}var zz=[`core/management`,`core/room`],Bz=16;function Vz(){let e=new Uint8Array(Bz);return crypto.getRandomValues(e),e}function Hz(e){if(e?.direct!==void 0)return{session:e.direct,target:void 0};if(e?.relay!==void 0)return{session:e.relay.hub,target:e.relay.peer};throw Error(`conversation is not connected`)}function Uz({identity:e,clock:t,messageStore:n,roomStorage:r,capabilities:i}){let{revocation:a,grants:o}=i,[s,c]=(0,k.useReducer)(OL,new Map),l=AO(e.deviceId),[u,d]=(0,k.useState)(void 0),f=(0,k.useCallback)(e=>{e.then(void 0,e=>{d(e instanceof Error?e.message:String(e))})},[]),p=(0,k.useRef)(s);(0,k.useEffect)(()=>{p.current=s},[s]);let m=(0,k.useRef)(new Set),h=(0,k.useRef)(new WeakSet),g=(0,k.useMemo)(()=>QR(r),[r]);function _(){return[...p.current.values()].flatMap(e=>e.participants.map(e=>MO(e)))}let v=(0,k.useRef)(()=>void 0),y=(0,k.useMemo)(()=>Lz({senders:()=>[...new Set([...[...p.current.values()].flatMap(e=>[...e.direct===void 0?[]:[e.direct],...e.relay===void 0?[]:[e.relay.hub]]),...m.current])],storage:r,identity:e,clock:t,revocation:a,roomKeys:g,onChange:()=>{v.current()}}),[e,t,r,g,a]);function b(e){let t=p.current.get(e)?.participants;t!==void 0&&y.readRoom(e,t.map(e=>MO(e))).then(t=>{c({type:`notices`,roomPath:e,notices:[...t]})})}(0,k.useEffect)(()=>{v.current=()=>{for(let e of p.current.keys())b(e)}});let x=(0,k.useRef)(new Map),S=(0,k.useMemo)(()=>ez(r),[r]),C=(0,k.useMemo)(()=>$R(r,e,t,a),[r,e,t,a]);async function w(e,t){x.current.set(e,t),await C.set(e,t)}async function T(e){let t=x.current.get(e);if(t!==void 0)return t;let n=await C.get(e);return n!==void 0&&x.current.set(e,n),n}(0,k.useEffect)(()=>{let e=new AbortController,t=()=>e.signal.aborted;return(async()=>{await Tz([...new Set([...await n.roomPaths(),...await C.rooms()])],async e=>{if(t())return;let r=await n.list(e);if(t())return;let i=kL(e,l);c({type:`restored`,roomPath:e,participants:i,messages:r}),y.readRoom(e,i.map(e=>MO(e))).then(t=>{c({type:`notices`,roomPath:e,notices:[...t]})})})})(),()=>{e.abort()}},[n,C,y,l]);let E=(0,k.useRef)(new Map);async function D(n,r,i){let o=E.current.get(n);if(o!==void 0)return o;let s=Rz({session:i.session,target:i.target,identity:e,clock:t,revocation:a,ownRoomMemberToken:r,roomPath:n,roomKeys:g,delivery:S}).finally(()=>{E.current.delete(n)});return E.current.set(n,s),s}function O(r){return{onMessage:e=>{let t={direction:`received`,text:e.text,messageId:e.messageId,sentAt:e.sentAt};f(n.append(r,t)),c({type:`message`,roomPath:r,message:t}),y.pull((p.current.get(r)?.participants??[]).map(e=>MO(e)))},onGrantIssued:e=>{f(o.record(`issued`,e,t.now()))},onJoinRequest:e=>{c({type:`join-request`,roomPath:r,request:{requesterHex:AO(e.requesterDevice),async decide(t){c({type:`join-request-settled`,roomPath:r}),await e.decide(t),(async()=>{let e=await T(r),t=p.current.get(r);e!==void 0&&t!==void 0&&await D(r,e,Hz(t))})().catch(()=>void 0)}}})},onRekey:async n=>{let i=await T(r);if(i===void 0){await n.respond({result:`error`,code:`no_token`});return}await wz({identity:e,clock:t,revocation:a,ownRoomMemberToken:i,onRekey:async e=>{await Tz(e.contentKeys,async(t,n)=>{await g.set(r,e.keyEpoch-e.contentKeys.length+1+n,t)}),b(r)}})(n)}}}let A=(0,k.useCallback)(async(r,i)=>{let o={},u=await QP(r,e,zz,{clock:t,onFrame:(e,t)=>{o.current?.(t)}}),d=i??await u.peerDeviceId,f=AO(d),p=iF(l,f);if(s.get(p)?.direct!==void 0){await u.close();return}o.current=e=>{y.handleFrame(e,u)},c({type:`direct-opened`,roomPath:p,participants:[f],session:u}),c({type:`restored`,roomPath:p,participants:[f],messages:await n.list(p)}),y.sync(u,[d]).catch(()=>void 0),KR(u,{identity:e,clock:t,revocation:a,peerDevice:d,currentMembers:()=>[e.deviceId,d]},O(p)),(async()=>{for await(let e of u.events)e.state.status===`closed`&&c({type:`direct-closed`,roomPath:p})})()},[e,t,l,s,n,y]),j=(0,k.useCallback)(async n=>LR(o,{identity:e,clock:t,revocation:a,expectedBearer:e.deviceId},FR,{kind:`room`,path:n}),[o,e,t,a]),M=(0,k.useCallback)(async(e,r,i)=>{let a=s.get(e),{session:l,target:u}=Hz(a),d=a?.token;if(d===void 0){i(`awaiting-approval`);let n=await GR(l,e,{targetDevice:u,requestToken:await j(e)});i(`sending`),d=n.token,await w(e,d),f(o.record(`held`,d,t.now())),c({type:`token`,roomPath:e,token:d}),await D(e,d,{session:l,target:u}).catch(()=>void 0)}let p=await WR(l,e,r,{token:d,targetDevice:u});if(p.result!==`ok`)throw Error(`send failed: ${p.code}`);let m={direction:`sent`,text:r,messageId:Vz(),sentAt:t.now()};return await n.append(e,m),m},[s,t,n,e,g,j]),N=(0,k.useCallback)(async(e,t,n)=>{c({type:`outgoing`,roomPath:e,entry:{localId:t,text:n,status:`sending`}});try{let r=await M(e,n,r=>{c({type:`outgoing`,roomPath:e,entry:{localId:t,text:n,status:r}})});c({type:`message`,roomPath:e,message:r}),c({type:`outgoing-removed`,roomPath:e,localId:t})}catch(r){c({type:`outgoing`,roomPath:e,entry:{localId:t,text:n,status:`failed`,error:r instanceof Error?r.message:String(r)}})}},[M]),ee=(0,k.useCallback)(async(e,t)=>N(e,crypto.randomUUID(),t),[N]),P=(0,k.useCallback)(async(e,t)=>{let n=s.get(e)?.outgoing.find(e=>e.localId===t);n!==void 0&&await N(e,t,n.text)},[s,N]),F=(0,k.useCallback)((e,t)=>{c({type:`outgoing-removed`,roomPath:e,localId:t})},[]),I=(0,k.useCallback)(async(e,n)=>{let r=s.get(e),{session:i,target:a}=Hz(r),l=r?.token??await T(e);l===void 0&&(l=(await GR(i,e,{targetDevice:a,requestToken:await j(e)})).token,await w(e,l),f(o.record(`held`,l,t.now())),c({type:`token`,roomPath:e,token:l})),await D(e,l,{session:i,target:a}),await y.post({room:e,token:l,contentType:`text/plain`,plaintext:new TextEncoder().encode(n)}),b(e)},[s,e,t,g,y,j]),te=(0,k.useCallback)(e=>{c({type:`read`,roomPath:e})},[]),ne=(0,k.useCallback)((e,t)=>{let r=iF(l,AO(t)),i=[AO(t)];c({type:`relay-opened`,roomPath:r,participants:i,route:{hub:e,peer:t}}),n.list(r).then(e=>{c({type:`restored`,roomPath:r,participants:i,messages:e})}),y.sync(e,[t]).catch(()=>void 0)},[l,n,y]),re=(0,k.useCallback)(n=>{let r=new Map;m.current.add(n),(async()=>{for await(let i of n.incomingManageRequests){let o=i.fromDevice;if(o===void 0)continue;let s=AO(o),c=r.get(s);if(c===void 0){c=QN(),r.set(s,c);let i=iF(l,s);ne(n,o),KR({incomingManageRequests:c.stream},{identity:e,clock:t,revocation:a,peerDevice:o,currentMembers:()=>[e.deviceId,o]},O(i))}c.push(i)}})()},[e,t,l,ne]),ie=(0,k.useCallback)(e=>{m.current.delete(e),c({type:`hub-closed`,hub:e})},[]),L=(0,k.useCallback)((e,t,n)=>{h.current.has(t)||(h.current.add(t),y.sync(e,_()).catch(()=>void 0)),y.handleFrame(n,e)},[y]);return{conversations:[...s.values()],persistenceFailure:u,openRelay:ne,watchHub:re,dropHub:ie,onHubFrame:L,attach:A,send:ee,retry:P,discard:F,postNotice:I,markRead:te}}function Wz(e,t){let n=new Map(t.map(e=>[e,QN()]));return(async()=>{for await(let t of e)n.get(t.command.verb)?.push(t)})(),{stream:e=>{let t=n.get(e);if(t===void 0)throw Error(`the demux was not built to carry verb ${e}`);return t.stream}}}var Gz=8787,Kz=/^(localhost|127\.\d+\.\d+\.\d+)(:\d+)?$/;function qz(e){return Kz.test(e)}async function Jz(e=Gz){try{return await fetch(`http://127.0.0.1:${String(e)}/`,{mode:`no-cors`}),`ws://127.0.0.1:${String(e)}`}catch{return}}async function Yz(e=typeof location>`u`?``:location.host){return qz(e)?Promise.resolve(void 0):Jz()}var Xz=`ws://localhost:8787`,Zz=[`core/management`,`core/exec`,`core/data`],Qz=[`core/management`,`core/data`],$z=[PF,FR];function eB({identity:e,clock:t,messageStore:n,roomStorage:r,certificateMemory:i,nameStore:a,preferences:o,grants:s,revocations:c,identityBackup:l,discoverLocalNode:u=Yz,defaultAddress:d=Xz}){let[f,p]=(0,k.useState)(d),[m,h]=(0,k.useState)(Qz),[g,_]=(0,k.useState)([]),[v,y]=(0,k.useState)([]),[b,x]=(0,k.useState)([]),[S,C]=(0,k.useState)(void 0),w=SR(o),T=yL(i,t),E=(0,k.useMemo)(()=>({revocation:c.view,grants:s}),[c,s]),D=Uz({identity:e,clock:t,messageStore:n,roomStorage:r,capabilities:E}),[O,A]=(0,k.useState)(),j=D.conversations.find(e=>e.roomPath===O)??D.conversations[0],{markRead:M}=D,N=j?.roomPath,ee=j?.unread??0;(0,k.useEffect)(()=>{N!==void 0&&ee>0&&M(N)},[N,ee,M]);let P=(0,k.useRef)(new Map),F=(0,k.useRef)(D.onHubFrame);(0,k.useEffect)(()=>{F.current=D.onHubFrame},[D.onHubFrame]);let I=(0,k.useRef)(D.watchHub);(0,k.useEffect)(()=>{I.current=D.watchHub},[D.watchHub]);let te=(0,k.useRef)(D.attach);(0,k.useEffect)(()=>{te.current=D.attach},[D.attach]);let ne=(0,k.useRef)(g);(0,k.useEffect)(()=>{ne.current=g},[g]);let re=(0,k.useRef)(new Set),ie=(0,k.useRef)(new Map),L=(0,k.useRef)(!1),R=()=>L.current;(0,k.useEffect)(()=>(L.current=!1,()=>{L.current=!0;for(let e of ne.current)e.session.close()}),[]);let ae=(0,k.useRef)(m);(0,k.useEffect)(()=>{ae.current=m},[m]);function oe(n,r){let i=Wz(r.incomingManageRequests,$z),a=$F({sendManageRequest:async(...e)=>r.sendManageRequest(...e),incomingManageRequests:i.stream(PF)},{identity:e,clock:t,revocation:E.revocation,iceServers:NF,onIncomingConnection:e=>{te.current(e)}});(async()=>{for await(let e of r.revocationAnnouncements)try{await c.ingest(e)}catch(e){C(e instanceof Error?e.message:String(e))}})();let o={sendManageRequest:async(...e)=>r.sendManageRequest(...e),sendDataFrame:async e=>r.sendDataFrame(e),incomingManageRequests:i.stream(FR)};P.current.set(r,o),I.current(o),_(e=>[...e,{address:n,session:r,hub:o,negotiator:a}])}async function se(e,t){let n=cL(e.device);for(let t of e.addresses){let e=ie.current.get(t)??new Set;e.add(n),ie.current.set(t,e)}return new Promise(r=>{y(i=>[...i,{key:n,device:e.device,addresses:e.addresses,via:t,resolve:r}])})}function ce(e,t){y(n=>(n.find(t=>t.key===e)?.resolve(t),n.filter(t=>t.key!==e)))}function le(n){let r={current:null},i={current:null},a=ZP(MF(T.memory),e,t,uF,[],e=>{r.current?.considerAdvert(e)},(e,t)=>{let n=i.current===null?void 0:P.current.get(i.current);n!==void 0&&F.current(n,e,t)});return i.current=a,r.current=eF({selfDeviceId:e.deviceId,shouldExpand:async e=>se(e,n),dial:de,onExpanded:(e,t,n)=>{oe(t,n),ue(e)},onExpansionDeclined:ue,onExpansionFailed:ue}),a}function ue(e){let t=cL(e.device);for(let n of e.addresses){let e=ie.current.get(n);e?.delete(t),e?.size===0&&ie.current.delete(n)}}async function de(e){let t=await T.confirmAddress(HI(e));if(t===void 0)throw Error(`the certificate of ${e} was not trusted`);if(R())throw Error(`the console was closed before the dial began`);let n=ie.current.get(e),[r]=n??[],i=le({address:e,claimedDevice:n?.size===1?r:void 0});if(await i.connect(t,ae.current),R())throw await i.close(),Error(`the console was closed while the dial was connecting`);return i}function fe(e){ne.current.some(t=>t.address===e)||re.current.has(e)||(re.current.add(e),T.confirmAddress(HI(e)).then(t=>{if(t===void 0||R())return;let n=le({address:e,claimedDevice:void 0});oe(e,n),n.connect(t,m).catch(()=>{})}).finally(()=>{re.current.delete(e)}))}let pe=(0,k.useRef)(fe);(0,k.useEffect)(()=>{pe.current=fe});let me=(0,k.useRef)(u);(0,k.useEffect)(()=>{me.current=u},[u]);let he=(0,k.useRef)(!1);(0,k.useEffect)(()=>{he.current||(he.current=!0,me.current().then(e=>{e!==void 0&&pe.current(e)}))},[]);function ge(e){e.preventDefault(),fe(f)}async function _e(e){let t=await Promise.allSettled(ne.current.map(async t=>t.session.sendRevocationAnnounce([e])));return{attempted:t.length,reached:t.filter(e=>e.status===`fulfilled`).length}}function ve(e){D.dropHub(e.hub),e.session.close(),_(t=>t.filter(t=>t.session!==e.session))}function ye(t,n){D.openRelay(t.hub,n),A(iF(AO(e.deviceId),AO(n))),t.negotiator.initiate(n).then(async e=>D.attach(e,n)).catch(e=>{x(t=>[...t,{key:crypto.randomUUID(),peer:cL(n),reason:e instanceof Error?e.message:String(e)}])})}return(0,z.jsx)(bL,{store:a,children:(0,z.jsxs)(rm,{className:rL,p:`md`,gap:`lg`,children:[(0,z.jsxs)(pl,{justify:`space-between`,children:[(0,z.jsx)(Lm,{order:1,children:`wire-mesh console`}),w.ready&&!w.visible&&(0,z.jsx)(Ed,{size:`xs`,variant:`subtle`,onClick:w.show,children:`How this works`})]}),w.error!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`The first-run intro's setting is unavailable`,children:w.error}),w.visible&&(0,z.jsx)(SL,{onDismiss:w.dismiss}),(0,z.jsx)(xL,{}),(0,z.jsxs)(`form`,{onSubmit:ge,children:[(0,z.jsxs)(pl,{align:`flex-end`,wrap:`wrap`,children:[(0,z.jsx)(Am,{label:`Node`,value:f,onChange:e=>{p(e.currentTarget.value)},required:!0,style:{flex:1,minWidth:`16rem`}}),(0,z.jsx)(Ed,{type:`submit`,children:`Connect`})]}),(0,z.jsx)(od.Group,{label:`Domains offered`,value:m,onChange:h,children:(0,z.jsx)(pl,{mt:`xs`,children:Zz.map(e=>(0,z.jsx)(od,{value:e,label:e},e))})})]}),(0,z.jsx)(vL,{prompts:T.prompts,changes:T.changes,onDismissChange:T.dismissChange}),(0,z.jsx)(hL,{peers:v,onConnect:e=>{ce(e,!0)},onDismiss:e=>{ce(e,!1)}}),g.map(e=>(0,z.jsx)(pL,{address:e.address,session:e.session,clock:t,reconnectPolicy:uF,certificateChanges:T.changes,onClose:()=>{ve(e)},onMessagePeer:t=>{ye(e,t)}},e.address)),b.map(e=>(0,z.jsxs)(eu,{color:`yellow`,title:(0,z.jsxs)(z.Fragment,{children:[`No direct connection to `,(0,z.jsx)(UI,{deviceHex:e.peer})]}),withCloseButton:!0,onClose:()=>{x(t=>t.filter(t=>t.key!==e.key))},children:[e.reason,`. Messages go through the hub instead.`]},e.key)),D.persistenceFailure!==void 0&&(0,z.jsxs)(eu,{color:`red`,title:`Could not save to this console's storage`,children:[D.persistenceFailure,`. The conversation carries on, but what failed to save will be missing after a reload.`]}),S!==void 0&&(0,z.jsx)(eu,{color:`red`,title:`A revocation could not be stored`,children:S}),(0,z.jsx)(bR,{revocations:c,onFailure:C}),(0,z.jsx)(PL,{conversations:D.conversations,onSelect:A}),(0,z.jsx)(yR,{identity:e,clock:t,grants:s,revocations:c,identityBackup:l,announceRevocation:_e}),(0,z.jsx)(CR,{conversations:D.conversations,selected:j?.roomPath,onSelect:A}),j!==void 0&&(0,z.jsx)(PR,{view:j,onSend:async e=>D.send(j.roomPath,e),onPostNotice:async e=>D.postNotice(j.roomPath,e),onRetry:e=>{D.retry(j.roomPath,e)},onDiscard:e=>{D.discard(j.roomPath,e)}},j.roomPath)]})})}var tB=`modulepreload`,nB=function(e){return`/`+e},rB={},iB=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=nB(t,n),t=s(t),t in rB)return;rB[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:tB,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},aB=`false`,oB=`false`,sB=aB===`true`,cB=oB===`true`;function lB(e={}){let{immediate:t=!1,onNeedReload:n,onNeedRefresh:r,onOfflineReady:i,onRegistered:a,onRegisteredSW:o,onRegisterError:s}=e,c,l,u,d=async(e=!0)=>{await l,sB||u?.()};async function f(){if(`serviceWorker`in navigator){if(c=await iB(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Bd17z0YL.js`);return{Workbox:e}},[]).then(({Workbox:e})=>new e(`/sw.js`,{scope:`/`,type:`classic`})).catch(e=>{s?.(e)}),!c)return;if(u=()=>{c?.messageSkipWaiting()},!cB){if(sB)c.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&(n?n():window.location.reload())}),c.addEventListener(`installed`,e=>{e.isUpdate||i?.()});else{let e=!1,t=()=>{e=!0,c?.addEventListener(`controlling`,e=>{e.isUpdate&&(n?n():window.location.reload())}),r?.()};c.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&i?.():n.isExternal?t():!e&&i?.():n.isUpdate||i?.()}),c.addEventListener(`waiting`,t)}}c.register({immediate:t}).then(e=>{o?o(`/sw.js`,e):a?.(e)}).catch(e=>{s?.(e)})}}return l=f(),d}function uB(e={}){let{immediate:t=!0,onNeedReload:n,onNeedRefresh:r,onOfflineReady:i,onRegistered:a,onRegisteredSW:o,onRegisterError:s}=e,[c,l]=(0,k.useState)(!1),[u,d]=(0,k.useState)(!1),[f]=(0,k.useState)(()=>lB({immediate:t,onNeedReload:n,onOfflineReady(){d(!0),i?.()},onNeedRefresh(){l(!0),r?.()},onRegistered:a,onRegisteredSW:o,onRegisterError:s}));return{needRefresh:[c,l],offlineReady:[u,d],updateServiceWorker:f}}function dB(){let{offlineReady:[e,t],needRefresh:[n,r],updateServiceWorker:i}=uB();function a(){t(!1),r(!1)}return!e&&!n?null:(0,z.jsx)(Ef,{onClose:a,closeButtonProps:{"aria-label":`Dismiss`},title:n?`Update available`:`Ready to work offline`,pos:`fixed`,bottom:`1rem`,right:`1rem`,style:{zIndex:1e3},children:(0,z.jsx)(pl,{gap:`xs`,children:n?(0,z.jsx)(Ed,{size:`xs`,onClick:()=>{i(!0)},children:`Reload`}):void 0})})}var fB=`ws://localhost:8787`;function pB(e){return`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}`}function mB(e,t){return e?fB:pB(t)}var hB=await qm(),gB=await Tk(hB),_B={now:()=>Date.now()},vB=GM(await qm()),yB=await XM({storage:await qm(),identity:gB,clock:_B}),bB=tA(hB),xB=bN(await qm()),SB=await qm(),CB=Vk(await qm()),wB=pN(await qm()),TB=$M(await qm()),EB=mB(!1,window.location),DB=document.getElementById(`root`);if(DB===null)throw Error(`missing #root element`);(0,Rm.createRoot)(DB).render((0,z.jsx)(k.StrictMode,{children:(0,z.jsxs)(xn,{children:[(0,z.jsx)(eB,{identity:gB,clock:_B,messageStore:xB,roomStorage:SB,certificateMemory:CB,nameStore:wB,preferences:TB,grants:vB,revocations:yB,identityBackup:bB,defaultAddress:EB}),(0,z.jsx)(dB,{})]})}));