@interncom/diplomatic 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/cli/bun/src/crypto.d.ts +2 -3
  2. package/dist/cli/index.mjs +4 -5
  3. package/dist/cli/shared/api/peek.d.ts +9 -1
  4. package/dist/cli/shared/api/pull.d.ts +9 -1
  5. package/dist/cli/shared/api/push.d.ts +3 -1
  6. package/dist/cli/shared/api/user.d.ts +1 -1
  7. package/dist/cli/shared/bag.d.ts +7 -4
  8. package/dist/cli/shared/client.d.ts +10 -4
  9. package/dist/cli/shared/codecs/kdm.d.ts +6 -0
  10. package/dist/cli/shared/codecs/notifItem.d.ts +2 -0
  11. package/dist/cli/shared/crypto/derivation.d.ts +45 -0
  12. package/dist/cli/shared/crypto/enclave.d.ts +30 -66
  13. package/dist/cli/shared/crypto/largeBlob.d.ts +8 -0
  14. package/dist/cli/shared/crypto/noble.d.ts +15 -22
  15. package/dist/cli/shared/crypto/pairing.d.ts +19 -2
  16. package/dist/cli/shared/crypto/prf.d.ts +52 -0
  17. package/dist/cli/shared/crypto/realms.d.ts +7 -0
  18. package/dist/cli/shared/endpoint.d.ts +2 -2
  19. package/dist/cli/shared/http.d.ts +12 -12
  20. package/dist/cli/shared/sync.d.ts +4 -2
  21. package/dist/cli/shared/types.d.ts +24 -11
  22. package/dist/cli/shared/webauthn/prf.d.ts +8 -0
  23. package/dist/cli/src/index.d.ts +5 -4
  24. package/dist/web/client.d.ts +10 -5
  25. package/dist/web/crypto.d.ts +2 -3
  26. package/dist/web/entdb/cached.d.ts +4 -0
  27. package/dist/web/entdb/entdb.d.ts +3 -0
  28. package/dist/web/entdb/idb.d.ts +9 -4
  29. package/dist/web/index.d.ts +10 -5
  30. package/dist/web/index.mjs +1 -1
  31. package/dist/web/passkey/prf-store.d.ts +26 -10
  32. package/dist/web/passkey/seed.d.ts +12 -6
  33. package/dist/web/shared/api/peek.d.ts +9 -1
  34. package/dist/web/shared/api/pull.d.ts +9 -1
  35. package/dist/web/shared/api/push.d.ts +3 -1
  36. package/dist/web/shared/api/user.d.ts +1 -1
  37. package/dist/web/shared/bag.d.ts +7 -4
  38. package/dist/web/shared/client.d.ts +10 -4
  39. package/dist/web/shared/codecs/kdm.d.ts +6 -0
  40. package/dist/web/shared/codecs/notifItem.d.ts +2 -0
  41. package/dist/web/shared/crypto/derivation.d.ts +45 -0
  42. package/dist/web/shared/crypto/enclave.d.ts +30 -66
  43. package/dist/web/shared/crypto/largeBlob.d.ts +8 -0
  44. package/dist/web/shared/crypto/noble.d.ts +15 -22
  45. package/dist/web/shared/crypto/pairing.d.ts +19 -2
  46. package/dist/web/shared/crypto/prf.d.ts +52 -0
  47. package/dist/web/shared/crypto/realms.d.ts +7 -0
  48. package/dist/web/shared/crypto/tty.d.ts +3 -0
  49. package/dist/web/shared/endpoint.d.ts +2 -2
  50. package/dist/web/shared/http.d.ts +12 -12
  51. package/dist/web/shared/storage/memory.d.ts +2 -2
  52. package/dist/web/shared/sync.d.ts +4 -2
  53. package/dist/web/shared/types.d.ts +24 -11
  54. package/dist/web/shared/webauthn/prf.d.ts +8 -0
  55. package/dist/web/stores/cursor.d.ts +30 -0
  56. package/dist/web/stores/idb/account.d.ts +58 -0
  57. package/dist/web/stores/idb/catalog.d.ts +1 -0
  58. package/dist/web/stores/idb/dnlds.d.ts +3 -2
  59. package/dist/web/stores/idb/hosts.d.ts +8 -7
  60. package/dist/web/stores/idb/idbutil.d.ts +2 -0
  61. package/dist/web/stores/idb/migrate.d.ts +2 -0
  62. package/dist/web/stores/idb/msgs.d.ts +1 -1
  63. package/dist/web/stores/idb/names.d.ts +13 -0
  64. package/dist/web/stores/idb/realms.d.ts +11 -0
  65. package/dist/web/stores/idb/store.d.ts +26 -19
  66. package/dist/web/stores/idb/uplds.d.ts +1 -1
  67. package/dist/web/stores/keyTag.d.ts +14 -0
  68. package/dist/web/stores/label.d.ts +3 -0
  69. package/dist/web/stores/memory/account.d.ts +14 -0
  70. package/dist/web/stores/memory/dnlds.d.ts +4 -2
  71. package/dist/web/stores/memory/hosts.d.ts +8 -6
  72. package/dist/web/stores/memory/realms.d.ts +10 -0
  73. package/dist/web/stores/memory/store.d.ts +6 -2
  74. package/dist/web/stores/realm.d.ts +35 -0
  75. package/dist/web/sync.d.ts +14 -11
  76. package/dist/web/types.d.ts +52 -16
  77. package/dist/web/worker/client.d.ts +1 -1
  78. package/dist/web/worker/protocol.d.ts +6 -0
  79. package/dist/web/worker/runtime.d.ts +4 -2
  80. package/dist/web/worker.mjs +1 -1
  81. package/package.json +1 -1
  82. package/dist/web/stores/idb/seed.d.ts +0 -32
  83. package/dist/web/stores/identityPin.d.ts +0 -19
  84. package/dist/web/stores/memory/seed.d.ts +0 -13
@@ -1,3 +1,2 @@
1
- import { NobleCrypto } from "../../shared/crypto/noble.ts";
2
- declare const crypto: NobleCrypto;
3
- export default crypto;
1
+ import { noble } from "../../shared/crypto/noble.ts";
2
+ export default noble;
@@ -1,14 +1,13 @@
1
- var js=Object.create;var{getPrototypeOf:Ys,defineProperty:Mr,getOwnPropertyNames:Js}=Object;var Qs=Object.prototype.hasOwnProperty;function Zs(e){return this[e]}var ei,ti,ri=(e,t,r)=>{var n=e!=null&&typeof e==="object";if(n){var s=t?ei??=new WeakMap:ti??=new WeakMap,i=s.get(e);if(i)return i}r=e!=null?js(Ys(e)):{};let o=t||!e||!e.__esModule?Mr(r,"default",{value:e,enumerable:!0}):r;if(e&&typeof e==="object"||typeof e==="function"){for(let c of Js(e))if(!Qs.call(o,c))Mr(o,c,{get:Zs.bind(e,c),enumerable:!0})}if(n)s.set(e,o);return o};var Z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ct=Z(function($n){Object.defineProperty($n,"__esModule",{value:!0});$n.utf8Count=Zi;$n.utf8EncodeJs=qn;$n.utf8EncodeTE=Wn;$n.utf8Encode=ro;$n.utf8DecodeJs=Xn;$n.utf8DecodeTD=zn;$n.utf8Decode=oo;function Zi(e){let t=e.length,r=0,n=0;while(n<t){let s=e.charCodeAt(n++);if((s&4294967168)===0){r++;continue}else if((s&4294965248)===0)r+=2;else{if(s>=55296&&s<=56319){if(n<t){let i=e.charCodeAt(n);if((i&64512)===56320)++n,s=((s&1023)<<10)+(i&1023)+65536}}if((s&4294901760)===0)r+=3;else r+=4}}return r}function qn(e,t,r){let n=e.length,s=r,i=0;while(i<n){let o=e.charCodeAt(i++);if((o&4294967168)===0){t[s++]=o;continue}else if((o&4294965248)===0)t[s++]=o>>6&31|192;else{if(o>=55296&&o<=56319){if(i<n){let c=e.charCodeAt(i);if((c&64512)===56320)++i,o=((o&1023)<<10)+(c&1023)+65536}}if((o&4294901760)===0)t[s++]=o>>12&15|224,t[s++]=o>>6&63|128;else t[s++]=o>>18&7|240,t[s++]=o>>12&63|128,t[s++]=o>>6&63|128}t[s++]=o&63|128}}var eo=new TextEncoder,to=50;function Wn(e,t,r){eo.encodeInto(e,t.subarray(r))}function ro(e,t,r){if(e.length>to)Wn(e,t,r);else qn(e,t,r)}var no=4096;function Xn(e,t,r){let n=t,s=n+r,i=[],o="";while(n<s){let c=e[n++];if((c&128)===0)i.push(c);else if((c&224)===192){let u=e[n++]&63;i.push((c&31)<<6|u)}else if((c&240)===224){let u=e[n++]&63,f=e[n++]&63;i.push((c&31)<<12|u<<6|f)}else if((c&248)===240){let u=e[n++]&63,f=e[n++]&63,d=e[n++]&63,l=(c&7)<<18|u<<12|f<<6|d;if(l>65535)l-=65536,i.push(l>>>10&1023|55296),l=56320|l&1023;i.push(l)}else i.push(c);if(i.length>=no)o+=String.fromCharCode(...i),i.length=0}if(i.length>0)o+=String.fromCharCode(...i);return o}var so=new TextDecoder,io=200;function zn(e,t,r){let n=e.subarray(t,t+r);return so.decode(n)}function oo(e,t,r){if(r>io)return zn(e,t,r);else return Xn(e,t,r)}});var Sr=Z(function(jn){Object.defineProperty(jn,"__esModule",{value:!0});jn.ExtData=void 0;class Gn{type;data;constructor(e,t){this.type=e,this.data=t}}jn.ExtData=Gn});var Tt=Z(function(Jn){Object.defineProperty(Jn,"__esModule",{value:!0});Jn.DecodeError=void 0;class Pt extends Error{constructor(e){super(e);let t=Object.create(Pt.prototype);Object.setPrototypeOf(this,t),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Pt.name})}}Jn.DecodeError=Pt});var kt=Z(function(Zn){Object.defineProperty(Zn,"__esModule",{value:!0});Zn.UINT32_MAX=void 0;Zn.setUint64=yo;Zn.setInt64=mo;Zn.getInt64=xo;Zn.getUint64=go;Zn.UINT32_MAX=4294967295;function yo(e,t,r){let n=r/4294967296,s=r;e.setUint32(t,n),e.setUint32(t+4,s)}function mo(e,t,r){let n=Math.floor(r/4294967296),s=r;e.setUint32(t,n),e.setUint32(t+4,s)}function xo(e,t){let r=e.getInt32(t),n=e.getUint32(t+4);return r*4294967296+n}function go(e,t){let r=e.getUint32(t),n=e.getUint32(t+4);return r*4294967296+n}});var Ir=Z(function(as){Object.defineProperty(as,"__esModule",{value:!0});as.timestampExtension=as.EXT_TIMESTAMP=void 0;as.encodeTimeSpecToTimestamp=rs;as.encodeDateToTimeSpec=ns;as.encodeTimestampExtension=ss;as.decodeTimestampToTimeSpec=is;as.decodeTimestampExtension=os;var Ao=Tt(),ts=kt();as.EXT_TIMESTAMP=-1;var Eo=4294967295,Uo=17179869183;function rs({sec:e,nsec:t}){if(e>=0&&t>=0&&e<=Uo)if(t===0&&e<=Eo){let r=new Uint8Array(4);return new DataView(r.buffer).setUint32(0,e),r}else{let r=e/4294967296,n=e&4294967295,s=new Uint8Array(8),i=new DataView(s.buffer);return i.setUint32(0,t<<2|r&3),i.setUint32(4,n),s}else{let r=new Uint8Array(12),n=new DataView(r.buffer);return n.setUint32(0,t),(0,ts.setInt64)(n,4,e),r}}function ns(e){let t=e.getTime(),r=Math.floor(t/1000),n=(t-r*1000)*1e6,s=Math.floor(n/1e9);return{sec:r+s,nsec:n-s*1e9}}function ss(e){if(e instanceof Date){let t=ns(e);return rs(t)}else return null}function is(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:{let r=t.getUint32(0),n=0;return{sec:r,nsec:0}}case 8:{let r=t.getUint32(0),n=t.getUint32(4),s=(r&3)*4294967296+n,i=r>>>2;return{sec:s,nsec:i}}case 12:{let r=(0,ts.getInt64)(t,4),n=t.getUint32(0);return{sec:r,nsec:n}}default:throw new Ao.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${e.length}`)}}function os(e){let t=is(e);return new Date(t.sec*1000+t.nsec/1e6)}as.timestampExtension={type:as.EXT_TIMESTAMP,encode:ss,decode:os}});var _t=Z(function(fs){Object.defineProperty(fs,"__esModule",{value:!0});fs.ExtensionCodec=void 0;var vt=Sr(),vo=Ir();class Ar{static defaultCodec=new Ar;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(vo.timestampExtension)}register({type:e,encode:t,decode:r}){if(e>=0)this.encoders[e]=t,this.decoders[e]=r;else{let n=-1-e;this.builtInEncoders[n]=t,this.builtInDecoders[n]=r}}tryToEncode(e,t){for(let r=0;r<this.builtInEncoders.length;r++){let n=this.builtInEncoders[r];if(n!=null){let s=n(e,t);if(s!=null){let i=-1-r;return new vt.ExtData(i,s)}}}for(let r=0;r<this.encoders.length;r++){let n=this.encoders[r];if(n!=null){let s=n(e,t);if(s!=null){let i=r;return new vt.ExtData(i,s)}}}if(e instanceof vt.ExtData)return e;return null}decode(e,t,r){let n=t<0?this.builtInDecoders[-1-t]:this.decoders[t];if(n)return n(e,t,r);else return new vt.ExtData(t,e)}}fs.ExtensionCodec=Ar});var Er=Z(function(ls){Object.defineProperty(ls,"__esModule",{value:!0});ls.ensureUint8Array=Do;function _o(e){return e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer}function Do(e){if(e instanceof Uint8Array)return e;else if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);else if(_o(e))return new Uint8Array(e);else return Uint8Array.from(e)}});var Br=Z(function(ys){Object.defineProperty(ys,"__esModule",{value:!0});ys.Encoder=ys.DEFAULT_INITIAL_BUFFER_SIZE=ys.DEFAULT_MAX_DEPTH=void 0;var hs=Ct(),Mo=_t(),ps=kt(),Ro=Er();ys.DEFAULT_MAX_DEPTH=100;ys.DEFAULT_INITIAL_BUFFER_SIZE=2048;class Ur{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??Mo.ExtensionCodec.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.maxDepth=e?.maxDepth??ys.DEFAULT_MAX_DEPTH,this.initialBufferSize=e?.initialBufferSize??ys.DEFAULT_INITIAL_BUFFER_SIZE,this.sortKeys=e?.sortKeys??!1,this.forceFloat32=e?.forceFloat32??!1,this.ignoreUndefined=e?.ignoreUndefined??!1,this.forceIntegerToFloat=e?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new Ur({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,t){if(t>this.maxDepth)throw Error(`Too deep objects in depth ${t}`);if(e==null)this.encodeNil();else if(typeof e==="boolean")this.encodeBoolean(e);else if(typeof e==="number")if(!this.forceIntegerToFloat)this.encodeNumber(e);else this.encodeNumberAsFloat(e);else if(typeof e==="string")this.encodeString(e);else if(this.useBigInt64&&typeof e==="bigint")this.encodeBigInt64(e);else this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;if(this.view.byteLength<t)this.resizeBuffer(t*2)}resizeBuffer(e){let t=new ArrayBuffer(e),r=new Uint8Array(t),n=new DataView(t);r.set(this.bytes),this.view=n,this.bytes=r}encodeNil(){this.writeU8(192)}encodeBoolean(e){if(e===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(e){if(!this.forceIntegerToFloat&&Number.isSafeInteger(e))if(e>=0)if(e<128)this.writeU8(e);else if(e<256)this.writeU8(204),this.writeU8(e);else if(e<65536)this.writeU8(205),this.writeU16(e);else if(e<4294967296)this.writeU8(206),this.writeU32(e);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(e);else this.encodeNumberAsFloat(e);else if(e>=-32)this.writeU8(224|e+32);else if(e>=-128)this.writeU8(208),this.writeI8(e);else if(e>=-32768)this.writeU8(209),this.writeI16(e);else if(e>=-2147483648)this.writeU8(210),this.writeI32(e);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(e);else this.encodeNumberAsFloat(e);else this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){if(this.forceFloat32)this.writeU8(202),this.writeF32(e);else this.writeU8(203),this.writeF64(e)}encodeBigInt64(e){if(e>=BigInt(0))this.writeU8(207),this.writeBigUint64(e);else this.writeU8(211),this.writeBigInt64(e)}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){let r=(0,hs.utf8Count)(e);this.ensureBufferSizeToWrite(5+r),this.writeStringHeader(r),(0,hs.utf8Encode)(e,this.bytes,this.pos),this.pos+=r}encodeObject(e,t){let r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e==="object")this.encodeMap(e,t);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw Error(`Too large binary: ${t}`);let r=(0,Ro.ensureUint8Array)(e);this.writeU8a(r)}encodeArray(e,t){let r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw Error(`Too large array: ${r}`);for(let n of e)this.doEncode(n,t+1)}countWithoutUndefined(e,t){let r=0;for(let n of t)if(e[n]!==void 0)r++;return r}encodeMap(e,t){let r=Object.keys(e);if(this.sortKeys)r.sort();let n=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(n<16)this.writeU8(128+n);else if(n<65536)this.writeU8(222),this.writeU16(n);else if(n<4294967296)this.writeU8(223),this.writeU32(n);else throw Error(`Too large map object: ${n}`);for(let s of r){let i=e[s];if(!(this.ignoreUndefined&&i===void 0))this.encodeString(s),this.doEncode(i,t+1)}}encodeExtension(e){if(typeof e.data==="function"){let r=e.data(this.pos+6),n=r.length;if(n>=4294967296)throw Error(`Too large extension object: ${n}`);this.writeU8(201),this.writeU32(n),this.writeI8(e.type),this.writeU8a(r);return}let t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),(0,ps.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,ps.setInt64)(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}ys.Encoder=Ur});var ws=Z(function(bs){Object.defineProperty(bs,"__esModule",{value:!0});bs.encode=Ko;var Ho=Br();function Ko(e,t){return new Ho.Encoder(t).encodeSharedRef(e)}});var Is=Z(function(Ss){Object.defineProperty(Ss,"__esModule",{value:!0});Ss.prettyByte=Vo;function Vo(e){return`${e<0?"-":""}0x${Math.abs(e).toString(16).padStart(2,"0")}`}});var Bs=Z(function(Es){Object.defineProperty(Es,"__esModule",{value:!0});Es.CachedKeyDecoder=void 0;var Fo=Ct(),qo=16,Wo=16;class As{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(e=qo,t=Wo){this.maxKeyLength=e,this.maxLengthPerKey=t,this.caches=[];for(let r=0;r<this.maxKeyLength;r++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,r){let n=this.caches[r-1];e:for(let s of n){let i=s.bytes;for(let o=0;o<r;o++)if(i[o]!==e[t+o])continue e;return s.str}return null}store(e,t){let r=this.caches[e.length-1],n={bytes:e,str:t};if(r.length>=this.maxLengthPerKey)r[Math.random()*r.length|0]=n;else r.push(n)}decode(e,t,r){let n=this.find(e,t,r);if(n!=null)return this.hit++,n;this.miss++;let s=(0,Fo.utf8DecodeJs)(e,t,r),i=Uint8Array.prototype.slice.call(e,t,t+r);return this.store(i,s),s}}Es.CachedKeyDecoder=As});var Dt=Z(function(vs){Object.defineProperty(vs,"__esModule",{value:!0});vs.Decoder=void 0;var Cr=Is(),Xo=_t(),ke=kt(),zo=Ct(),Cs=Er(),$o=Bs(),be=Tt(),Pr="array",rt="map_key",Ts="map_value",Go=(e)=>{if(typeof e==="string"||typeof e==="number")return e;throw new be.DecodeError("The type of key must be string or number but "+typeof e)};class ks{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){let t=this.getUninitializedStateFromPool();t.type=Pr,t.position=0,t.size=e,t.array=Array(e)}pushMapState(e){let t=this.getUninitializedStateFromPool();t.type=rt,t.readCount=0,t.size=e,t.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===Pr){let r=e;r.size=0,r.array=void 0,r.position=0,r.type=void 0}if(e.type===rt||e.type===Ts){let r=e;r.size=0,r.map=void 0,r.readCount=0,r.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var tt=-1,Tr=new DataView(new ArrayBuffer(0)),jo=new Uint8Array(Tr.buffer);try{Tr.getInt8(0)}catch(e){if(!(e instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var Ps=RangeError("Insufficient data"),Yo=new $o.CachedKeyDecoder;class kr{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=Tr;bytes=jo;headByte=tt;stack=new ks;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??Xo.ExtensionCodec.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.rawStrings=e?.rawStrings??!1,this.maxStrLength=e?.maxStrLength??ke.UINT32_MAX,this.maxBinLength=e?.maxBinLength??ke.UINT32_MAX,this.maxArrayLength=e?.maxArrayLength??ke.UINT32_MAX,this.maxMapLength=e?.maxMapLength??ke.UINT32_MAX,this.maxExtLength=e?.maxExtLength??ke.UINT32_MAX,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:Yo,this.mapKeyConverter=e?.mapKeyConverter??Go}clone(){return new kr({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=tt,this.stack.reset()}setBuffer(e){let t=(0,Cs.ensureUint8Array)(e);this.bytes=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===tt&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),r=(0,Cs.ensureUint8Array)(e),n=new Uint8Array(t.length+r.length);n.set(t),n.set(r,t.length),this.setBuffer(n)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:r}=this;return RangeError(`Extra ${t.byteLength-r} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let t=!1,r;for await(let o of e){if(t)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(o);try{r=this.doDecodeSync(),t=!0}catch(c){if(!(c instanceof RangeError))throw c}this.totalPos+=this.pos}if(t){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return r}let{headByte:n,pos:s,totalPos:i}=this;throw RangeError(`Insufficient data in parsing ${(0,Cr.prettyByte)(n)} at ${i} (${s} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,t){if(this.entered){yield*this.clone().decodeMultiAsync(e,t);return}try{this.entered=!0;let r=t,n=-1;for await(let s of e){if(t&&n===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(s),r)n=this.readArraySize(),r=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--n===0)break}catch(i){if(!(i instanceof RangeError))throw i}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:while(!0){let e=this.readHeadByte(),t;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){let n=e-128;if(n!==0){this.pushMapState(n),this.complete();continue e}else t={}}else if(e<160){let n=e-144;if(n!==0){this.pushArrayState(n),this.complete();continue e}else t=[]}else{let n=e-160;t=this.decodeString(n,0)}else if(e===192)t=null;else if(e===194)t=!1;else if(e===195)t=!0;else if(e===202)t=this.readF32();else if(e===203)t=this.readF64();else if(e===204)t=this.readU8();else if(e===205)t=this.readU16();else if(e===206)t=this.readU32();else if(e===207)if(this.useBigInt64)t=this.readU64AsBigInt();else t=this.readU64();else if(e===208)t=this.readI8();else if(e===209)t=this.readI16();else if(e===210)t=this.readI32();else if(e===211)if(this.useBigInt64)t=this.readI64AsBigInt();else t=this.readI64();else if(e===217){let n=this.lookU8();t=this.decodeString(n,1)}else if(e===218){let n=this.lookU16();t=this.decodeString(n,2)}else if(e===219){let n=this.lookU32();t=this.decodeString(n,4)}else if(e===220){let n=this.readU16();if(n!==0){this.pushArrayState(n),this.complete();continue e}else t=[]}else if(e===221){let n=this.readU32();if(n!==0){this.pushArrayState(n),this.complete();continue e}else t=[]}else if(e===222){let n=this.readU16();if(n!==0){this.pushMapState(n),this.complete();continue e}else t={}}else if(e===223){let n=this.readU32();if(n!==0){this.pushMapState(n),this.complete();continue e}else t={}}else if(e===196){let n=this.lookU8();t=this.decodeBinary(n,1)}else if(e===197){let n=this.lookU16();t=this.decodeBinary(n,2)}else if(e===198){let n=this.lookU32();t=this.decodeBinary(n,4)}else if(e===212)t=this.decodeExtension(1,0);else if(e===213)t=this.decodeExtension(2,0);else if(e===214)t=this.decodeExtension(4,0);else if(e===215)t=this.decodeExtension(8,0);else if(e===216)t=this.decodeExtension(16,0);else if(e===199){let n=this.lookU8();t=this.decodeExtension(n,1)}else if(e===200){let n=this.lookU16();t=this.decodeExtension(n,2)}else if(e===201){let n=this.lookU32();t=this.decodeExtension(n,4)}else throw new be.DecodeError(`Unrecognized type byte: ${(0,Cr.prettyByte)(e)}`);this.complete();let r=this.stack;while(r.length>0){let n=r.top();if(n.type===Pr)if(n.array[n.position]=t,n.position++,n.position===n.size)t=n.array,r.release(n);else continue e;else if(n.type===rt){if(t==="__proto__")throw new be.DecodeError("The key __proto__ is not allowed");n.key=this.mapKeyConverter(t),n.type=Ts;continue e}else if(n.map[n.key]=t,n.readCount++,n.readCount===n.size)t=n.map,r.release(n);else{n.key=null,n.type=rt;continue e}}return t}}readHeadByte(){if(this.headByte===tt)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=tt}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;else throw new be.DecodeError(`Unrecognized array type byte: ${(0,Cr.prettyByte)(e)}`)}}pushMapState(e){if(e>this.maxMapLength)throw new be.DecodeError(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new be.DecodeError(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,t){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(e,t);return this.decodeBinary(e,t)}decodeUtf8String(e,t){if(e>this.maxStrLength)throw new be.DecodeError(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw Ps;let r=this.pos+t,n;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e))n=this.keyDecoder.decode(this.bytes,r,e);else n=(0,zo.utf8Decode)(this.bytes,r,e);return this.pos+=t+e,n}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===rt;return!1}decodeBinary(e,t){if(e>this.maxBinLength)throw new be.DecodeError(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw Ps;let r=this.pos+t,n=this.bytes.subarray(r,r+e);return this.pos+=t+e,n}decodeExtension(e,t){if(e>this.maxExtLength)throw new be.DecodeError(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let r=this.view.getInt8(this.pos+t),n=this.decodeBinary(e,t+1);return this.extensionCodec.decode(n,r,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){let e=(0,ke.getUint64)(this.view,this.pos);return this.pos+=8,e}readI64(){let e=(0,ke.getInt64)(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){let e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){let e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}}vs.Decoder=kr});var Ms=Z(function(Ls){Object.defineProperty(Ls,"__esModule",{value:!0});Ls.decode=Jo;Ls.decodeMulti=Qo;var Ds=Dt();function Jo(e,t){return new Ds.Decoder(t).decode(e)}function Qo(e,t){return new Ds.Decoder(t).decodeMulti(e)}});var Os=Z(function(Ks){Object.defineProperty(Ks,"__esModule",{value:!0});Ks.isAsyncIterable=Rs;Ks.asyncIterableFromStream=Hs;Ks.ensureAsyncIterable=ta;function Rs(e){return e[Symbol.asyncIterator]!=null}async function*Hs(e){let t=e.getReader();try{while(!0){let{done:r,value:n}=await t.read();if(r)return;yield n}}finally{t.releaseLock()}}function ta(e){if(Rs(e))return e;else return Hs(e)}});var Ns=Z(function(Vs){Object.defineProperty(Vs,"__esModule",{value:!0});Vs.decodeAsync=ia;Vs.decodeArrayStream=oa;Vs.decodeMultiStream=aa;var vr=Dt(),_r=Os();async function ia(e,t){let r=(0,_r.ensureAsyncIterable)(e);return new vr.Decoder(t).decodeAsync(r)}function oa(e,t){let r=(0,_r.ensureAsyncIterable)(e);return new vr.Decoder(t).decodeArrayStream(r)}function aa(e,t){let r=(0,_r.ensureAsyncIterable)(e);return new vr.Decoder(t).decodeStream(r)}});var qs=Z(function(z){Object.defineProperty(z,"__esModule",{value:!0});z.decodeTimestampExtension=z.encodeTimestampExtension=z.decodeTimestampToTimeSpec=z.encodeTimeSpecToTimestamp=z.encodeDateToTimeSpec=z.EXT_TIMESTAMP=z.ExtData=z.ExtensionCodec=z.Encoder=z.DecodeError=z.Decoder=z.decodeMultiStream=z.decodeArrayStream=z.decodeAsync=z.decodeMulti=z.decode=z.encode=void 0;var da=ws();Object.defineProperty(z,"encode",{enumerable:!0,get:function(){return da.encode}});var Fs=Ms();Object.defineProperty(z,"decode",{enumerable:!0,get:function(){return Fs.decode}});Object.defineProperty(z,"decodeMulti",{enumerable:!0,get:function(){return Fs.decodeMulti}});var Dr=Ns();Object.defineProperty(z,"decodeAsync",{enumerable:!0,get:function(){return Dr.decodeAsync}});Object.defineProperty(z,"decodeArrayStream",{enumerable:!0,get:function(){return Dr.decodeArrayStream}});Object.defineProperty(z,"decodeMultiStream",{enumerable:!0,get:function(){return Dr.decodeMultiStream}});var la=Dt();Object.defineProperty(z,"Decoder",{enumerable:!0,get:function(){return la.Decoder}});var ha=Tt();Object.defineProperty(z,"DecodeError",{enumerable:!0,get:function(){return ha.DecodeError}});var pa=Br();Object.defineProperty(z,"Encoder",{enumerable:!0,get:function(){return pa.Encoder}});var ya=_t();Object.defineProperty(z,"ExtensionCodec",{enumerable:!0,get:function(){return ya.ExtensionCodec}});var ma=Sr();Object.defineProperty(z,"ExtData",{enumerable:!0,get:function(){return ma.ExtData}});var $e=Ir();Object.defineProperty(z,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return $e.EXT_TIMESTAMP}});Object.defineProperty(z,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return $e.encodeDateToTimeSpec}});Object.defineProperty(z,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return $e.encodeTimeSpecToTimestamp}});Object.defineProperty(z,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return $e.decodeTimestampToTimeSpec}});Object.defineProperty(z,"encodeTimestampExtension",{enumerable:!0,get:function(){return $e.encodeTimestampExtension}});Object.defineProperty(z,"decodeTimestampExtension",{enumerable:!0,get:function(){return $e.decodeTimestampExtension}})});import*as le from"node:crypto";var Ae=le&&typeof le==="object"&&"webcrypto"in le?le.webcrypto:le&&typeof le==="object"&&("randomBytes"in le)?le:void 0;function nt(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function Lt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function G(e,...t){if(!Lt(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function Mt(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function Rr(e,t){G(e);let r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}function Rt(e){if(typeof e!=="boolean")throw Error(`boolean expected, not ${e}`)}/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */var he=(e)=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));var ni=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!ni)throw Error("Non little-endian hardware is not supported");function si(e){if(typeof e!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function st(e){if(typeof e==="string")e=si(e);else if(Lt(e))e=it(e);else throw Error("Uint8Array expected, got "+typeof e);return e}function Hr(e,t){if(t==null||typeof t!=="object")throw Error("options must be defined");return Object.assign(e,t)}function Kr(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}var Or=(e,t)=>{function r(n,...s){if(G(n),e.nonceLength!==void 0){let d=s[0];if(!d)throw Error("nonce / iv required");if(e.varSizeNonce)G(d);else G(d,e.nonceLength)}let i=e.tagLength;if(i&&s[1]!==void 0)G(s[1]);let o=t(n,...s),c=(d,l)=>{if(l!==void 0){if(d!==2)throw Error("cipher output not supported");G(l)}},u=!1;return{encrypt(d,l){if(u)throw Error("cannot encrypt() twice with same key + nonce");return u=!0,G(d),c(o.encrypt.length,l),o.encrypt(d,l)},decrypt(d,l){if(G(d),i&&d.length<i)throw Error("invalid ciphertext length: smaller than tagLength="+i);return c(o.decrypt.length,l),o.decrypt(d,l)}}}return Object.assign(r,e),r};function Ht(e,t,r=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw Error("invalid output length, expected "+e+", got: "+t.length);if(r&&!ii(t))throw Error("invalid output, must be aligned");return t}function ii(e){return e.byteOffset%4===0}function it(e){return Uint8Array.from(e)}function ae(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function je(e=32){if(Ae&&typeof Ae.getRandomValues==="function")return Ae.getRandomValues(new Uint8Array(e));if(Ae&&typeof Ae.randomBytes==="function")return Ae.randomBytes(e);throw Error("crypto.getRandomValues must be defined")}var Nr=(e)=>Uint8Array.from(e.split("").map((t)=>t.charCodeAt(0))),oi=Nr("expand 16-byte k"),ai=Nr("expand 32-byte k"),ci=he(oi),ui=he(ai);function w(e,t){return e<<t|e>>>32-t}function Kt(e){return e.byteOffset%4===0}var ot=64,fi=16,Fr=4294967295,Vr=new Uint32Array;function di(e,t,r,n,s,i,o,c){let u=s.length,f=new Uint8Array(ot),d=he(f),l=Kt(s)&&Kt(i),p=l?he(s):Vr,y=l?he(i):Vr;for(let g=0;g<u;o++){if(e(t,r,n,d,o,c),o>=Fr)throw Error("arx: counter overflow");let x=Math.min(ot,u-g);if(l&&x===ot){let b=g/4;if(g%4!==0)throw Error("arx: invalid block position");for(let A=0,E;A<fi;A++)E=b+A,y[E]=p[E]^d[A];g+=ot;continue}for(let b=0,A;b<x;b++)A=g+b,i[A]=s[A]^f[b];g+=x}}function qr(e,t){let{allowShortKeys:r,extendNonceFn:n,counterLength:s,counterRight:i,rounds:o}=Hr({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=="function")throw Error("core must be a function");return nt(s),nt(o),Rt(i),Rt(r),(c,u,f,d,l=0)=>{G(c),G(u),G(f);let p=f.length;if(d===void 0)d=new Uint8Array(p);if(G(d),nt(l),l<0||l>=Fr)throw Error("arx: counter overflow");if(d.length<p)throw Error(`arx: output (${d.length}) is shorter than data (${p})`);let y=[],g=c.length,x,b;if(g===32)y.push(x=it(c)),b=ui;else if(g===16&&r)x=new Uint8Array(32),x.set(c),x.set(c,16),b=ci,y.push(x);else throw Error(`arx: invalid 32-byte key, got length=${g}`);if(!Kt(u))y.push(u=it(u));let A=he(x);if(n){if(u.length!==24)throw Error("arx: extended nonce must be 24 bytes");n(b,A,he(u.subarray(0,16)),A),u=u.subarray(16)}let E=16-s;if(E!==u.length)throw Error(`arx: nonce must be ${E} or 16 bytes`);if(E!==12){let S=new Uint8Array(12);S.set(u,i?0:12-u.length),u=S,y.push(u)}let U=he(u);return di(e,b,A,U,f,d,l,o),ae(...y),d}}var Y=(e,t)=>e[t++]&255|(e[t++]&255)<<8;class Wr{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=st(e),G(e,32);let t=Y(e,0),r=Y(e,2),n=Y(e,4),s=Y(e,6),i=Y(e,8),o=Y(e,10),c=Y(e,12),u=Y(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|r<<3)&8191,this.r[2]=(r>>>10|n<<6)&7939,this.r[3]=(n>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|o<<2)&8191,this.r[7]=(o>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=Y(e,16+2*f)}process(e,t,r=!1){let n=r?0:2048,{h:s,r:i}=this,o=i[0],c=i[1],u=i[2],f=i[3],d=i[4],l=i[5],p=i[6],y=i[7],g=i[8],x=i[9],b=Y(e,t+0),A=Y(e,t+2),E=Y(e,t+4),U=Y(e,t+6),S=Y(e,t+8),T=Y(e,t+10),O=Y(e,t+12),X=Y(e,t+14),v=s[0]+(b&8191),B=s[1]+((b>>>13|A<<3)&8191),V=s[2]+((A>>>10|E<<6)&8191),D=s[3]+((E>>>7|U<<9)&8191),N=s[4]+((U>>>4|S<<12)&8191),m=s[5]+(S>>>1&8191),M=s[6]+((S>>>14|T<<2)&8191),R=s[7]+((T>>>11|O<<5)&8191),q=s[8]+((O>>>8|X<<8)&8191),k=s[9]+(X>>>5|n),I=0,F=I+v*o+B*(5*x)+V*(5*g)+D*(5*y)+N*(5*p);I=F>>>13,F&=8191,F+=m*(5*l)+M*(5*d)+R*(5*f)+q*(5*u)+k*(5*c),I+=F>>>13,F&=8191;let W=I+v*c+B*o+V*(5*x)+D*(5*g)+N*(5*y);I=W>>>13,W&=8191,W+=m*(5*p)+M*(5*l)+R*(5*d)+q*(5*f)+k*(5*u),I+=W>>>13,W&=8191;let H=I+v*u+B*c+V*o+D*(5*x)+N*(5*g);I=H>>>13,H&=8191,H+=m*(5*y)+M*(5*p)+R*(5*l)+q*(5*d)+k*(5*f),I+=H>>>13,H&=8191;let P=I+v*f+B*u+V*c+D*o+N*(5*x);I=P>>>13,P&=8191,P+=m*(5*g)+M*(5*y)+R*(5*p)+q*(5*l)+k*(5*d),I+=P>>>13,P&=8191;let L=I+v*d+B*f+V*u+D*c+N*o;I=L>>>13,L&=8191,L+=m*(5*x)+M*(5*g)+R*(5*y)+q*(5*p)+k*(5*l),I+=L>>>13,L&=8191;let re=I+v*l+B*d+V*f+D*u+N*c;I=re>>>13,re&=8191,re+=m*o+M*(5*x)+R*(5*g)+q*(5*y)+k*(5*p),I+=re>>>13,re&=8191;let se=I+v*p+B*l+V*d+D*f+N*u;I=se>>>13,se&=8191,se+=m*c+M*o+R*(5*x)+q*(5*g)+k*(5*y),I+=se>>>13,se&=8191;let ve=I+v*y+B*p+V*l+D*d+N*f;I=ve>>>13,ve&=8191,ve+=m*u+M*c+R*o+q*(5*x)+k*(5*g),I+=ve>>>13,ve&=8191;let _e=I+v*g+B*y+V*p+D*l+N*d;I=_e>>>13,_e&=8191,_e+=m*f+M*u+R*c+q*o+k*(5*x),I+=_e>>>13,_e&=8191;let De=I+v*x+B*g+V*y+D*p+N*l;I=De>>>13,De&=8191,De+=m*d+M*f+R*u+q*c+k*o,I+=De>>>13,De&=8191,I=(I<<2)+I|0,I=I+F|0,F=I&8191,I=I>>>13,W+=I,s[0]=F,s[1]=W,s[2]=H,s[3]=P,s[4]=L,s[5]=re,s[6]=se,s[7]=ve,s[8]=_e,s[9]=De}finalize(){let{h:e,pad:t}=this,r=new Uint16Array(10),n=e[1]>>>13;e[1]&=8191;for(let o=2;o<10;o++)e[o]+=n,n=e[o]>>>13,e[o]&=8191;e[0]+=n*5,n=e[0]>>>13,e[0]&=8191,e[1]+=n,n=e[1]>>>13,e[1]&=8191,e[2]+=n,r[0]=e[0]+5,n=r[0]>>>13,r[0]&=8191;for(let o=1;o<10;o++)r[o]=e[o]+n,n=r[o]>>>13,r[o]&=8191;r[9]-=8192;let s=(n^1)-1;for(let o=0;o<10;o++)r[o]&=s;s=~s;for(let o=0;o<10;o++)e[o]=e[o]&s|r[o];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let i=e[0]+t[0];e[0]=i&65535;for(let o=1;o<8;o++)i=(e[o]+t[o]|0)+(i>>>16)|0,e[o]=i&65535;ae(r)}update(e){Mt(this);let{buffer:t,blockLen:r}=this;e=st(e);let n=e.length;for(let s=0;s<n;){let i=Math.min(r-this.pos,n-s);if(i===r){for(;r<=n-s;s+=r)this.process(e,s);continue}if(t.set(e.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===r)this.process(t,0,!1),this.pos=0}return this}destroy(){ae(this.h,this.r,this.buffer,this.pad)}digestInto(e){Mt(this),Rr(e,this),this.finished=!0;let{buffer:t,h:r}=this,{pos:n}=this;if(n){t[n++]=1;for(;n<16;n++)t[n]=0;this.process(t,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)e[s++]=r[i]>>>0,e[s++]=r[i]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}}function li(e){let t=(n,s)=>e(s).update(st(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(n)=>e(n),t}var Ot=li((e)=>new Wr(e));function hi(e,t,r,n,s,i=20){let o=e[0],c=t[0],u=t[1],f=t[2],d=t[3],l=e[1],p=r[0],y=r[1],g=s,x=0,b=e[2],A=t[4],E=t[5],U=t[6],S=t[7],T=e[3],O=o,X=c,v=u,B=f,V=d,D=l,N=p,m=y,M=g,R=x,q=b,k=A,I=E,F=U,W=S,H=T;for(let L=0;L<i;L+=2)V^=w(O+I|0,7),M^=w(V+O|0,9),I^=w(M+V|0,13),O^=w(I+M|0,18),R^=w(D+X|0,7),F^=w(R+D|0,9),X^=w(F+R|0,13),D^=w(X+F|0,18),W^=w(q+N|0,7),v^=w(W+q|0,9),N^=w(v+W|0,13),q^=w(N+v|0,18),B^=w(H+k|0,7),m^=w(B+H|0,9),k^=w(m+B|0,13),H^=w(k+m|0,18),X^=w(O+B|0,7),v^=w(X+O|0,9),B^=w(v+X|0,13),O^=w(B+v|0,18),N^=w(D+V|0,7),m^=w(N+D|0,9),V^=w(m+N|0,13),D^=w(V+m|0,18),k^=w(q+R|0,7),M^=w(k+q|0,9),R^=w(M+k|0,13),q^=w(R+M|0,18),I^=w(H+W|0,7),F^=w(I+H|0,9),W^=w(F+I|0,13),H^=w(W+F|0,18);let P=0;n[P++]=o+O|0,n[P++]=c+X|0,n[P++]=u+v|0,n[P++]=f+B|0,n[P++]=d+V|0,n[P++]=l+D|0,n[P++]=p+N|0,n[P++]=y+m|0,n[P++]=g+M|0,n[P++]=x+R|0,n[P++]=b+q|0,n[P++]=A+k|0,n[P++]=E+I|0,n[P++]=U+F|0,n[P++]=S+W|0,n[P++]=T+H|0}function pi(e,t,r,n){let s=e[0],i=t[0],o=t[1],c=t[2],u=t[3],f=e[1],d=r[0],l=r[1],p=r[2],y=r[3],g=e[2],x=t[4],b=t[5],A=t[6],E=t[7],U=e[3];for(let T=0;T<20;T+=2)u^=w(s+b|0,7),p^=w(u+s|0,9),b^=w(p+u|0,13),s^=w(b+p|0,18),y^=w(f+i|0,7),A^=w(y+f|0,9),i^=w(A+y|0,13),f^=w(i+A|0,18),E^=w(g+d|0,7),o^=w(E+g|0,9),d^=w(o+E|0,13),g^=w(d+o|0,18),c^=w(U+x|0,7),l^=w(c+U|0,9),x^=w(l+c|0,13),U^=w(x+l|0,18),i^=w(s+c|0,7),o^=w(i+s|0,9),c^=w(o+i|0,13),s^=w(c+o|0,18),d^=w(f+u|0,7),l^=w(d+f|0,9),u^=w(l+d|0,13),f^=w(u+l|0,18),x^=w(g+y|0,7),p^=w(x+g|0,9),y^=w(p+x|0,13),g^=w(y+p|0,18),b^=w(U+E|0,7),A^=w(b+U|0,9),E^=w(A+b|0,13),U^=w(E+A|0,18);let S=0;n[S++]=s,n[S++]=f,n[S++]=g,n[S++]=U,n[S++]=d,n[S++]=l,n[S++]=p,n[S++]=y}var Vt=qr(hi,{counterRight:!0,extendNonceFn:pi}),Nt=Or({blockSize:64,nonceLength:24,tagLength:16},(e,t)=>({encrypt(r,n){n=Ht(r.length+32,n,!1);let s=n.subarray(0,32),i=n.subarray(32);n.set(r,32),ae(s),Vt(e,t,n,n);let o=Ot(i,s);return n.set(o,16),ae(n.subarray(0,16),o),n.subarray(16)},decrypt(r,n){G(r),n=Ht(r.length+32,n,!1);let s=n.subarray(0,32),i=n.subarray(32,48),o=n.subarray(48);n.set(r,32),ae(s);let c=Vt(e,t,s,s),u=Ot(o,c);if(!Kr(i,u))throw Error("invalid tag");return Vt(e,t,n.subarray(16),n.subarray(16)),ae(s,i,u),o}}));/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function yi(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Ye(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function Ee(e,...t){if(!yi(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function Je(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function at(e,t){Ee(e);let r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}function Xr(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Le(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Me(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Qe(e,t){return e<<32-t|e>>>t}var zr=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function $r(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}var Gr=zr?(e)=>e:(e)=>$r(e);function mi(e){for(let t=0;t<e.length;t++)e[t]=$r(e[t]);return e}var te=zr?(e)=>e:mi;function xi(e){if(typeof e!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Re(e){if(typeof e==="string")e=xi(e);return Ee(e),e}class Ft{}function jr(e){let t=(n,s)=>e(s).update(Re(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(n)=>e(n),t}var Yr=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var ct=BigInt(4294967295),Jr=BigInt(32);function qt(e,t=!1){if(t)return{h:Number(e&ct),l:Number(e>>Jr&ct)};return{h:Number(e>>Jr&ct)|0,l:Number(e&ct)|0}}function pe(e,t,r,n,s){return e=e+t+s|0,n=Qe(n^e,16),r=r+n|0,t=Qe(t^r,12),{a:e,b:t,c:r,d:n}}function ye(e,t,r,n,s){return e=e+t+s|0,n=Qe(n^e,8),r=r+n|0,t=Qe(t^r,7),{a:e,b:t,c:r,d:n}}class Wt extends Ft{constructor(e,t){super();this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,Ye(e),Ye(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=Le(this.buffer)}update(e){Je(this),e=Re(e),Ee(e);let{blockLen:t,buffer:r,buffer32:n}=this,s=e.length,i=e.byteOffset,o=e.buffer;for(let c=0;c<s;){if(this.pos===t)te(n),this.compress(n,0,!1),te(n),this.pos=0;let u=Math.min(t-this.pos,s-c),f=i+c;if(u===t&&!(f%4)&&c+u<s){let d=new Uint32Array(o,f,Math.floor((s-c)/4));te(d);for(let l=0;c+t<s;l+=n.length,c+=t)this.length+=t,this.compress(d,l,!1);te(d);continue}r.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){Je(this),at(e,this);let{pos:t,buffer32:r}=this;this.finished=!0,Me(this.buffer.subarray(t)),te(r),this.compress(r,0,!0),te(r);let n=Le(e);this.get().forEach((s,i)=>n[i]=Gr(s))}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){let{buffer:t,length:r,finished:n,destroyed:s,outputLen:i,pos:o}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.buffer.set(t),e.destroyed=s,e.finished=n,e.length=r,e.pos=o,e.outputLen=i,e}clone(){return this._cloneInto()}}function Xt(e,t,r,n,s,i,o,c,u,f,d,l,p,y,g,x,b,A,E,U){let S=0;for(let T=0;T<n;T++)({a:s,b:u,c:p,d:b}=pe(s,u,p,b,r[t+e[S++]])),{a:s,b:u,c:p,d:b}=ye(s,u,p,b,r[t+e[S++]]),{a:i,b:f,c:y,d:A}=pe(i,f,y,A,r[t+e[S++]]),{a:i,b:f,c:y,d:A}=ye(i,f,y,A,r[t+e[S++]]),{a:o,b:d,c:g,d:E}=pe(o,d,g,E,r[t+e[S++]]),{a:o,b:d,c:g,d:E}=ye(o,d,g,E,r[t+e[S++]]),{a:c,b:l,c:x,d:U}=pe(c,l,x,U,r[t+e[S++]]),{a:c,b:l,c:x,d:U}=ye(c,l,x,U,r[t+e[S++]]),{a:s,b:f,c:g,d:U}=pe(s,f,g,U,r[t+e[S++]]),{a:s,b:f,c:g,d:U}=ye(s,f,g,U,r[t+e[S++]]),{a:i,b:d,c:x,d:b}=pe(i,d,x,b,r[t+e[S++]]),{a:i,b:d,c:x,d:b}=ye(i,d,x,b,r[t+e[S++]]),{a:o,b:l,c:p,d:A}=pe(o,l,p,A,r[t+e[S++]]),{a:o,b:l,c:p,d:A}=ye(o,l,p,A,r[t+e[S++]]),{a:c,b:u,c:y,d:E}=pe(c,u,y,E,r[t+e[S++]]),{a:c,b:u,c:y,d:E}=ye(c,u,y,E,r[t+e[S++]]);return{v0:s,v1:i,v2:o,v3:c,v4:u,v5:f,v6:d,v7:l,v8:p,v9:y,v10:g,v11:x,v12:b,v13:A,v14:E,v15:U}}var ce={CHUNK_START:1,CHUNK_END:2,PARENT:4,ROOT:8,KEYED_HASH:16,DERIVE_KEY_CONTEXT:32,DERIVE_KEY_MATERIAL:64},me=Yr.slice(),Qr=(()=>{let e=Array.from({length:16},(n,s)=>s),t=(n)=>[2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8].map((s)=>n[s]),r=[];for(let n=0,s=e;n<7;n++,s=t(s))r.push(...s);return Uint8Array.from(r)})();class zt extends Wt{constructor(e={},t=0){super(64,e.dkLen===void 0?32:e.dkLen);this.chunkPos=0,this.chunksDone=0,this.flags=0,this.stack=[],this.posOut=0,this.bufferOut32=new Uint32Array(16),this.chunkOut=0,this.enableXOF=!0;let{key:r,context:n}=e,s=n!==void 0;if(r!==void 0){if(s)throw Error('Only "key" or "context" can be specified at same time');let i=Re(r).slice();Ee(i,32),this.IV=Le(i),te(this.IV),this.flags=t|ce.KEYED_HASH}else if(s){let i=Re(n),o=new zt({dkLen:32},ce.DERIVE_KEY_CONTEXT).update(i).digest();this.IV=Le(o),te(this.IV),this.flags=t|ce.DERIVE_KEY_MATERIAL}else this.IV=me.slice(),this.flags=t;this.state=this.IV.slice(),this.bufferOut=Xr(this.bufferOut32)}get(){return[]}set(){}b2Compress(e,t,r,n=0){let{state:s,pos:i}=this,{h:o,l:c}=qt(BigInt(e),!0),{v0:u,v1:f,v2:d,v3:l,v4:p,v5:y,v6:g,v7:x,v8:b,v9:A,v10:E,v11:U,v12:S,v13:T,v14:O,v15:X}=Xt(Qr,n,r,7,s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],me[0],me[1],me[2],me[3],o,c,i,t);s[0]=u^b,s[1]=f^A,s[2]=d^E,s[3]=l^U,s[4]=p^S,s[5]=y^T,s[6]=g^O,s[7]=x^X}compress(e,t=0,r=!1){let n=this.flags;if(!this.chunkPos)n|=ce.CHUNK_START;if(this.chunkPos===15||r)n|=ce.CHUNK_END;if(!r)this.pos=this.blockLen;if(this.b2Compress(this.chunksDone,n,e,t),this.chunkPos+=1,this.chunkPos===16||r){let s=this.state;this.state=this.IV.slice();for(let i,o=this.chunksDone+1;r||!(o&1);o>>=1){if(!(i=this.stack.pop()))break;this.buffer32.set(i,0),this.buffer32.set(s,8),this.pos=this.blockLen,this.b2Compress(0,this.flags|ce.PARENT,this.buffer32,0),s=this.state,this.state=this.IV.slice()}this.chunksDone++,this.chunkPos=0,this.stack.push(s)}this.pos=0}_cloneInto(e){e=super._cloneInto(e);let{IV:t,flags:r,state:n,chunkPos:s,posOut:i,chunkOut:o,stack:c,chunksDone:u}=this;return e.state.set(n.slice()),e.stack=c.map((f)=>Uint32Array.from(f)),e.IV.set(t),e.flags=r,e.chunkPos=s,e.chunksDone=u,e.posOut=i,e.chunkOut=o,e.enableXOF=this.enableXOF,e.bufferOut32.set(this.bufferOut32),e}destroy(){this.destroyed=!0,Me(this.state,this.buffer32,this.IV,this.bufferOut32),Me(...this.stack)}b2CompressOut(){let{state:e,pos:t,flags:r,buffer32:n,bufferOut32:s}=this,{h:i,l:o}=qt(BigInt(this.chunkOut++));te(n);let{v0:c,v1:u,v2:f,v3:d,v4:l,v5:p,v6:y,v7:g,v8:x,v9:b,v10:A,v11:E,v12:U,v13:S,v14:T,v15:O}=Xt(Qr,0,n,7,e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],me[0],me[1],me[2],me[3],o,i,t,r);s[0]=c^x,s[1]=u^b,s[2]=f^A,s[3]=d^E,s[4]=l^U,s[5]=p^S,s[6]=y^T,s[7]=g^O,s[8]=e[0]^x,s[9]=e[1]^b,s[10]=e[2]^A,s[11]=e[3]^E,s[12]=e[4]^U,s[13]=e[5]^S,s[14]=e[6]^T,s[15]=e[7]^O,te(n),te(s),this.posOut=0}finish(){if(this.finished)return;this.finished=!0,Me(this.buffer.subarray(this.pos));let e=this.flags|ce.ROOT;if(this.stack.length)e|=ce.PARENT,te(this.buffer32),this.compress(this.buffer32,0,!0),te(this.buffer32),this.chunksDone=0,this.pos=this.blockLen;else e|=(!this.chunkPos?ce.CHUNK_START:0)|ce.CHUNK_END;this.flags=e,this.b2CompressOut()}writeInto(e){Je(this,!1),Ee(e),this.finish();let{blockLen:t,bufferOut:r}=this;for(let n=0,s=e.length;n<s;){if(this.posOut>=t)this.b2CompressOut();let i=Math.min(t-this.posOut,s-n);e.set(r.subarray(this.posOut,this.posOut+i),n),this.posOut+=i,n+=i}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible after digest call");return this.writeInto(e)}xof(e){return Ye(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(at(e,this),this.finished)throw Error("digest() was already called");return this.enableXOF=!1,this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}}var $t=jr((e)=>new zt(e));function ne(e){return Array.from(e).map((r)=>r.toString(16).padStart(2,"0")).join("")}function ut(e){if(e.length%2!==0)throw Error("Invalid hex string");let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=Number.parseInt(e.substr(r,2),16);return t}function He(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;return e.every((r,n)=>r===t[n])}var Zr;if(typeof Uint8Array.prototype.toBase64==="function")Zr=(e)=>e.toBase64();else Zr=(e)=>btoa(String.fromCharCode(...e));var Gt;if(typeof Uint8Array.fromBase64==="function")Gt=(e)=>Uint8Array.fromBase64(e);else Gt=(e)=>Uint8Array.from(atob(e),(t)=>t.charCodeAt(0));function en(e){let t=e.length%4===0?"":"=".repeat(4-e.length%4),r=e.replace(/-/g,"+").replace(/_/g,"/")+t;return Gt(r)}function ue(e,t){let r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}var Ke=64;var tn=32,Oe=8;var rn=32;var nn=30000,sn=512,C;((m)=>{m[m.Success=0]="Success";m[m.InvalidSignature=3]="InvalidSignature";m[m.ClockOutOfSync=4]="ClockOutOfSync";m[m.UserNotRegistered=5]="UserNotRegistered";m[m.ServerMisconfigured=6]="ServerMisconfigured";m[m.MissingBody=7]="MissingBody";m[m.ExtraBodyContent=8]="ExtraBodyContent";m[m.MissingParam=9]="MissingParam";m[m.InvalidParam=10]="InvalidParam";m[m.InvalidRequest=11]="InvalidRequest";m[m.InternalError=12]="InternalError";m[m.NotFound=13]="NotFound";m[m.InvalidMessage=14]="InvalidMessage";m[m.NoChange=15]="NoChange";m[m.DatabaseClosed=16]="DatabaseClosed";m[m.StorageError=17]="StorageError";m[m.DatabaseError=18]="DatabaseError";m[m.HashMismatch=19]="HashMismatch";m[m.DecryptionError=20]="DecryptionError";m[m.NotImplemented=21]="NotImplemented";m[m.MissingSeed=22]="MissingSeed";m[m.OutOfBounds=23]="OutOfBounds";m[m.HostError=24]="HostError";m[m.CommunicationError=25]="CommunicationError";m[m.VarLimitExceeded=26]="VarLimitExceeded";m[m.InvalidResponse=27]="InvalidResponse";m[m.ConnectionClosed=28]="ConnectionClosed";m[m.CryptoError=29]="CryptoError";m[m.WebAuthnError=30]="WebAuthnError"})(C||={});var on="t";function h(e){return[e,0]}function a(e){return[void 0,e]}var gi=32,fc=Symbol("X25519Sk");function an(e){if(e.byteLength!==gi)return a(10);return h(e)}var _=(1n<<255n)-19n,bi=121665n,cn=new Uint8Array(32);cn[0]=9;function un(e){let t=0n;for(let r=e.length-1;r>=0;r--)t=t<<8n|BigInt(e[r]);return t}function wi(e){let t=new Uint8Array(32),r=(e%_+_)%_;for(let n=0;n<32;n++)t[n]=Number(r&0xffn),r>>=8n;return t}function Si(e){let t=e.slice();return t[31]&=127,un(t)}function Ii(e){let t=e.slice();return t[0]&=248,t[31]&=127,t[31]|=64,t}function ft(e,t,r){let n=-e,s=(t^r)&n;return[t^s,r^s]}function Ai(e){let t=_-2n,r=(e%_+_)%_,n=1n;while(t>0n){if(t&1n)n=n*r%_;r=r*r%_,t>>=1n}return n}function jt(e,t){let r=Ii(e),n=Si(t),s=1n,i=0n,o=n,c=1n,u=0n,f=un(r);for(let d=254;d>=0;d--){let l=f>>BigInt(d)&1n;u^=l,[s,o]=ft(u,s,o),[i,c]=ft(u,i,c),u=l;let p=(s+i)%_,y=p*p%_,g=(s-i+_)%_,x=g*g%_,b=(y-x+_)%_,A=(o+c)%_,U=(o-c+_)%_*p%_,S=A*g%_,T=(U+S)%_,O=(U-S+_)%_;o=T*T%_,c=n*O*O%_,s=y*x%_,i=b*(y+bi*b)%_}return[s,o]=ft(u,s,o),[i,c]=ft(u,i,c),r.fill(0),wi(s*Ai(i)%_)}function fn(e){return jt(e,cn)}var Yt=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,112,4,34,4,32]);function dn(e){let t=new Uint8Array(Yt.length+32);return t.set(Yt),t.set(e.subarray(0,32),Yt.length),t}var Jt=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,110,4,34,4,32]);function ln(e){let t=new Uint8Array(Jt.length+32);return t.set(Jt),t.set(e.subarray(0,32),Jt.length),t}function hn(e){return typeof e==="string"?new TextEncoder().encode(e):e}function xe(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}class Ue{verifyKeys=new Map;async genRandomBytes(e){return je(e)}async gen256BitSecureRandomSeed(){return je(32)}async encryptXSalsa20Poly1305Combined(e,t){let r=je(24),s=Nt(t,r).encrypt(e);return new Uint8Array([...r,...s])}async decryptXSalsa20Poly1305Combined(e,t){let r=e.slice(0,24),n=e.slice(24);return Nt(t,r).decrypt(n)}async deriveEd25519KeyPair(e){let t=e,r=dn(t),n=xe(r),s;try{let f=await globalThis.crypto.subtle.importKey("pkcs8",n,{name:"Ed25519"},!0,["sign"]);s=await globalThis.crypto.subtle.exportKey("jwk",f)}finally{r.fill(0),new Uint8Array(n).fill(0)}if(typeof s.x!=="string")throw Error("Ed25519 JWK missing x");let i=s.x;s.d=void 0;let o=await globalThis.crypto.subtle.importKey("jwk",{kty:"OKP",crv:"Ed25519",x:i},{name:"Ed25519"},!0,["verify"]),c=new Uint8Array(await globalThis.crypto.subtle.exportKey("raw",o));this.verifyKeys.set(ne(c),o);let u=new Uint8Array(64);return u.set(t,0),u.set(c,32),{keyType:"ed25519",privateKey:u,publicKey:c}}async importSignKey(e){let t=e.subarray(0,32),r=dn(t),n=xe(r);try{return await globalThis.crypto.subtle.importKey("pkcs8",n,{name:"Ed25519"},!1,["sign"])}finally{r.fill(0),new Uint8Array(n).fill(0)}}async importVerifyKey(e){let t=ne(e),r=this.verifyKeys.get(t);if(r)return r;let n=await globalThis.crypto.subtle.importKey("raw",xe(e),{name:"Ed25519"},!1,["verify"]);return this.verifyKeys.set(t,n),n}async signEd25519(e,t){let r=hn(e),n=await this.importSignKey(t),s=await globalThis.crypto.subtle.sign({name:"Ed25519"},n,xe(r));return new Uint8Array(s)}async checkSigEd25519(e,t,r){let n=hn(t);try{let s=await this.importVerifyKey(r);return await globalThis.crypto.subtle.verify({name:"Ed25519"},s,xe(e),xe(n))}catch{return!1}}async blake3(e,t){if(t===void 0)return $t(e);return $t(e,t)}async genX25519(){let e=await je(32);e[0]&=248,e[31]&=127,e[31]|=64;let[t,r]=an(e);if(r!==0||t===void 0)throw e.fill(0),Error("X25519 scalar brand failed");let n=fn(t),s=ln(t),i=xe(s);try{let o=await globalThis.crypto.subtle.importKey("pkcs8",i,{name:"X25519"},!0,["deriveBits"]),c=await globalThis.crypto.subtle.exportKey("jwk",o);if(typeof c.x!=="string")throw Error("X25519 JWK missing x");let u=en(c.x);if(c.d=void 0,!He(u,n))throw Error("X25519 WebCrypto pub != RFC 7748");return{priv:t,pub:n}}catch(o){throw t.fill(0),o}finally{s.fill(0),new Uint8Array(i).fill(0)}}async x25519Shared(e,t){let r=ln(e),n=xe(r);try{let s=await globalThis.crypto.subtle.importKey("pkcs8",n,{name:"X25519"},!1,["deriveBits"]),i=await globalThis.crypto.subtle.importKey("raw",xe(t),{name:"X25519"},!1,[]),o=await globalThis.crypto.subtle.deriveBits({name:"X25519",public:i},s,256);return new Uint8Array(o)}catch{return jt(e,t)}finally{r.fill(0),new Uint8Array(n).fill(0)}}}var Ei=new Ue,Ve=Ei;function Ui(e){if(e<0)console.info("N",e),console.trace();if(typeof e!=="bigint")e=BigInt(e);if(e<0n)return a(10);let t=[];while(e>0n){let r=Number(e&0x7fn);if(e>>=7n,e>0n)t.push(r|128);else t.push(r)}if(t.length===0)return h(new Uint8Array([0]));if(t.length>8)return a(26);return h(new Uint8Array(t))}function Bi(e,t=0){let r=0n,n=0,s=t;while(!0){if(s>=e.length)return a(14);let i=e[s++];if(i===void 0)return a(14);if(r|=BigInt(i&127)<<BigInt(n),(i&128)===0){if(s-t>8)return a(26);return h({value:r>0x1fffffffffffffn?r:Number(r),bytesRead:s-t})}if(n+=7,n>=56)return a(26)}}class J{data;pos=0;constructor(e){this.data=e}static async fromResponse(e){let t=await e.arrayBuffer(),r=new Uint8Array(t);return new J(r)}readBigInt(){if(this.pos+8>this.data.length)return a(7);let e=new DataView(this.data.buffer,this.data.byteOffset+this.pos).getBigUint64(0,!1);return this.pos+=8,h(e)}readDate(){let[e,t]=this.readVarInt();if(t!==0)return a(t);return h(new Date(e))}readVarInt(){let[e,t]=Bi(this.data,this.pos);if(t!==0)return a(t);this.pos+=e.bytesRead;let r=e.value;return h(typeof r==="bigint"?Number(r):r)}readVarString(){let[e,t]=this.readVarInt();if(t!==0)return a(t);let[r,n]=this.readBytes(e);if(n!==0)return a(n);let s=new TextDecoder().decode(r);return h(s)}readBytes(e){if(e<0)return a(10);if(this.pos+e>this.data.length)return a(23);let t=this.data.slice(this.pos,this.pos+e);return this.pos+=e,h(t)}readVarBytes(){let[e,t]=this.readVarInt();if(t!==0)return a(t);return this.readBytes(e)}readStruct(e){return e.decode(this)}readStructs(e){let t=[];while(!this.done()){let[r,n]=this.readStruct(e);if(n!==0)return a(n);t.push(r)}return h(t)}readBytesSeq(e){let t=[];while(!this.done()){let[r,n]=this.readBytes(e);if(n!==0)return a(n);t.push(r)}return h(t)}done(){return this.pos>=this.data.length}consumed(){return this.pos}}class K{parts=[];writeBigInt(e){let t=new Uint8Array(8);new DataView(t.buffer).setBigUint64(0,e,!1),this.parts.push(t)}writeDate(e){let t=e.getTime();return this.writeVarInt(t)}writeVarInt(e){let[t,r]=Ui(e);if(r!==0)return r;return this.parts.push(t),0}writeVarString(e){let t=new TextEncoder().encode(e),r=this.writeVarInt(t.length);if(r!==0)return r;return this.writeBytes(t),0}prependBytes(e){this.parts.unshift(e.slice())}writeBytes(e){this.parts.push(e.slice())}writeVarBytes(e){let t=this.writeVarInt(e.length);if(t!==0)return t;return this.writeBytes(e),0}writeStruct(e,t){return e.encode(this,t)}writeStructs(e,t){for(let r of t){let n=this.writeStruct(e,r);if(n!==0)return n}return 0}writeBytesSeq(e){for(let t of e)this.writeBytes(t)}result(){let e=this.parts.reduce((n,s)=>n+s.length,0),t=new Uint8Array(e),r=0;for(let n of this.parts)t.set(n,r),r+=n.length;return t}wipe(){for(let e of this.parts)e.fill(0);this.parts.length=0}*scan(){for(let e of this.parts)yield e}}var dt={encode(e,t){let r=e.writeVarBytes(t.id);if(r!==0)return r;let n=e.writeDate(t.ts);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readVarBytes();if(r!==0)return a(r);let[n,s]=e.readDate();if(s!==0)return a(s);return h({id:t,ts:n})}};function pn(e){let t=new K,r=t.writeStruct(dt,e);if(r!==0)return a(r);let n=t.result();return h(n)}var Qt={encode(e,t){let r=e.writeVarString(t.typ??"");if(r!==0)return r;let n=e.writeVarBytes(t.eid);if(n!==0)return n;let s=e.writeVarInt(t.off);if(s!==0)return s;let i=e.writeVarInt(t.ctr);if(i!==0)return i;let o=e.writeVarInt(t.len);if(o!==0)return o;if(t.hsh)e.writeBytes(t.hsh);return 0},decode(e){let[t,r]=e.readVarString();if(r!==0)return a(r);let[n,s]=e.readVarBytes();if(s!==0)return a(s);let i=new J(n),[,o]=dt.decode(i);if(o!==0)return a(o);let[c,u]=e.readVarInt();if(u!==0)return a(u);let[f,d]=e.readVarInt();if(d!==0)return a(d);let[l,p]=e.readVarInt();if(p!==0)return a(p);let y;if(l>0){let[g,x]=e.readBytes(rn);if(x!==0)return a(x);y=g}return h({typ:t,eid:n,off:c,ctr:f,len:l,hsh:y})}};function yn(e,t,r){return r.checkSigEd25519(e.sig,e.headCph,t)}async function mn(e,t,r,n){let s;if(e.bod&&e.len>0)s=await r.blake3(e.bod);let i=new K,o=Qt.encode(i,{...e,hsh:s});if(o!==0)return a(o);let c=i.result(),u=await t.kdmFor(c),f=n.deriveCipher(u,"encrypt"),d=await f.encrypt(c),l=e.bod?await f.encrypt(e.bod):new Uint8Array(0),p=await t.sign(d);return h({sig:p,kdm:u,headCph:d,bodyCph:l})}async function xn(e,t,r,n,s){let i=new J(e),[o,c]=Qt.decode(i);if(c!==0)return a(14);let u;try{u=t&&t.length>0?await r.decrypt(t):void 0}catch{return a(20)}let f=o.hsh&&u===void 0,d=o.hsh===void 0&&u!==void 0;if(f||d)return a(19);if(o.hsh&&u){let p=await n.blake3(u);if(!He(p,o.hsh))return a(19)}let l=s??await n.blake3(e);return h({msgHead:o,bod:u,headHash:l})}async function Zt(e,t){let r=new K,n=r.writeDate(t);if(n!==0)return a(n);let s=r.result(),i=await e.sign(s);return h({pubKey:e.publicKey,sig:i,timestamp:t})}async function ie(e,t,r){let n=r.now().getTime(),s=e.timestamp.getTime();if(Math.abs(n-s)>nn)return 4;let o=new K;o.writeDate(e.timestamp);let c=o.result();if(!await t.checkSigEd25519(e.sig,c,e.pubKey))return 3;return 0}class Ne{now(){return new Date}}function gn(e,t,r,n){let s=t.getTime()-e.getTime(),i=r.getTime()-n.getTime();return(s+i)/2}var Ze={encode(e,t){if(e.writeVarInt(t.quota),t.quota>0){if(t.usage===void 0)return 9;e.writeVarInt(t.usage)}return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let n;if(t>0){let[s,i]=e.readVarInt();if(i!==0)return a(i);n=s}return h({quota:t,usage:n})}};var Fe={encode(e,t){e.writeBytes(new Uint8Array([t.status]));let r=e.writeDate(t.timeRcvd);if(r!==0)return r;let n=e.writeDate(t.timeSent);if(n!==0)return n;let s=e.writeVarInt(t.subscription.term);if(s!==0)return s;let i=e.writeVarInt(t.subscription.elapsed);if(i!==0)return i;let o=e.writeStruct(Ze,t.subscription.stat);if(o!==0)return o;let c=e.writeStruct(Ze,t.subscription.dyn);if(c!==0)return c;return 0},decode(e){let[t,r]=e.readBytes(1);if(r!==0)return a(r);let n=t[0],[s,i]=e.readDate();if(i!==0)return a(i);let[o,c]=e.readDate();if(c!==0)return a(c);let[u,f]=e.readVarInt();if(f!==0)return a(f);let[d,l]=e.readVarInt();if(l!==0)return a(l);let[p,y]=e.readStruct(Ze);if(y!==0)return a(y);let[g,x]=e.readStruct(Ze);if(x!==0)return a(x);return h({status:n,timeRcvd:s,timeSent:o,subscription:{term:u,elapsed:d,stat:p,dyn:g}})}};var er={encode(e,t){let r=e.writeVarBytes(t.headCph);if(r!==0)return r;let n=e.writeVarInt(t.seq);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readVarBytes();if(r!==0)return a(r);let[n,s]=e.readVarInt();if(s!==0)return a(s);return h({headCph:t,seq:n})}};var ee={encode(e,t){e.writeBytes(t.pubKey),e.writeBytes(t.sig);let r=e.writeDate(t.timestamp);if(r!==0)return r;return 0},decode(e){let[t,r]=e.readBytes(tn);if(r!==0)return a(r);let[n,s]=e.readBytes(Ke);if(s!==0)return a(s);let[i,o]=e.readDate();if(o!==0)return a(o);return h({pubKey:t,sig:n,timestamp:i})}};var bn={async encodeReq(e,t,r,n,s){let i=s.writeStruct(ee,r);if(i!==0)return i;for(let o of n)s.writeVarInt(o);return 0},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i}=e,[o,c]=t.readStruct(ee);if(c!==0)return c;let u=await ie(o,s,n);if(u!==0)return u;let{pubKey:f}=o,[d,l]=await i.hasUser(f);if(l!==0)return l;if(!d)return 5;let[p,y]=t.readVarInt();if(y!==0)return y;if(!t.done())return 8;let[g,x]=await i.listHeads(f,p);if(x!==0)return x;return r.writeStructs(er,g)},decodeResp(e){return e.readStructs(er)}};var tr={encode(e,t){e.writeVarInt(t.seq);let r=e.writeVarBytes(t.bodyCph);if(r!==0)return r;return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let[n,s]=e.readVarBytes();if(s!==0)return a(s);return h({seq:t,bodyCph:n})}};var wn={async encodeReq(e,t,r,n,s){let i=s.writeStruct(ee,r);if(i!==0)return i;for(let o of n){let c=s.writeVarInt(o);if(c!==0)return c}return 0},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i}=e,[o,c]=t.readStruct(ee);if(c!==0)return c;let u=await ie(o,s,n);if(u!==0)return u;let{pubKey:f}=o,[d,l]=await i.hasUser(f);if(l!==0)return l;if(!d)return 5;let p=[];while(!t.done()){let[x,b]=t.readVarInt();if(b!==0)return b;p.push(x)}console.info(`PULL: ${p.length} bags`);let[y,g]=await i.getBodies(f,p);if(g!==0)return g;if(!y)return 17;for(let{seq:x,bodyCph:b}of y){let A={seq:x,bodyCph:b},E=r.writeStruct(tr,A);if(E!==0)return E}return 0},decodeResp(e){return e.readStructs(tr)}};var rr={encode(e,t){e.writeBytes(t.sig),e.writeBytes(t.kdm);let r=e.writeVarBytes(t.headCph);if(r!==0)return r;let n=e.writeVarBytes(t.bodyCph);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readBytes(Ke);if(r!==0)return a(r);let[n,s]=e.readBytes(Oe);if(s!==0)return a(s);let[i,o]=e.readVarBytes();if(o!==0)return a(o);let[c,u]=e.readVarBytes();if(u!==0)return a(u);return h({sig:t,kdm:n,headCph:i,bodyCph:c})}};var nr={encode(e,t){let r=e.writeVarInt(t.seq);if(r!==0)return r;let n=e.writeVarBytes(t.headCph);if(n!==0)return n;let s=t.bodyCph?t.bodyCph.length:0,i=e.writeVarInt(s);if(i!==0)return i;if(s>0){if(!t.bodyCph)return 10;e.writeBytes(t.bodyCph)}return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let[n,s]=e.readVarBytes();if(s!==0)return a(s);let[i,o]=e.readVarInt();if(o!==0)return a(o);let c;if(i>0){let[u,f]=e.readBytes(i);if(f!==0)return a(f);c=u}return h({seq:t,headCph:n,bodyCph:c})}};var qe={encode(e,t){e.writeBytes(t.sig),e.writeBytes(t.kdm);let r=e.writeVarBytes(t.headCph);if(r!==0)return r;return 0},decode(e){let[t,r]=e.readBytes(Ke);if(r!==0)return a(r);let[n,s]=e.readBytes(Oe);if(s!==0)return a(s);let[i,o]=e.readVarBytes();if(o!==0)return a(o);return h({sig:t,kdm:n,headCph:i})}};var lt={encode(e,t){if(e.writeVarInt(t.idx),e.writeBytes(new Uint8Array([t.status])),t.status===0)e.writeVarInt(t.seq);return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let[n,s]=e.readBytes(1);if(s!==0)return a(s);let i=n[0];if(i!==0)return h({idx:t,status:i});let[o,c]=e.readVarInt();if(c!==0)return a(c);return h({idx:t,status:i,seq:o})}};var Sn={async encodeReq(e,t,r,n,s){let i=s.writeStruct(ee,r);if(i!==0)return i;let o=s.writeStructs(rr,n);if(o!==0)return o;return 0},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i,notifier:o}=e,[c,u]=t.readStruct(ee);if(u!==0)return u;let f=await ie(c,s,n);if(f!==0)return f;let{pubKey:d}=c,[l,p]=await i.hasUser(d);if(p!==0)return p;if(!l)return 5;let[y,g]=t.readStructs(rr);if(g!==0)return g;console.info(`PUSH: ${y.length} bags`);let x=[],b=[];for(let S=0;S<y.length;S++){let T=y[S];if(!await yn(T,d,s)){let X={idx:S,status:3},v=r.writeStruct(lt,X);if(v!==0)return v;continue}x.push(S),b.push(T)}let[A,E]=await i.setBags(d,b);if(E!==0)return E;if(!A||A.length!==b.length)return 17;let U=[];for(let S=0;S<b.length;S++){let T=b[S],O=x[S],X=A[S],v=new K,B=v.writeStruct(qe,T);if(B!==0)return B;let V=v.result(),D={seq:X,headCph:V};if(y.length===1&&T.bodyCph.length<=sn)D.bodyCph=T.bodyCph;U.push(D);let N={idx:O,status:0,seq:X},m=r.writeStruct(lt,N);if(m!==0)return m}if(U.length>0){let S=new K,T=S.writeStructs(nr,U);if(T!==0)return T;let O=S.result();await Promise.resolve(o.push(d,O))}return 0},decodeResp(e){return e.readStructs(lt)}};var In={async encodeReq(e,t,r,n,s){return s.writeStruct(ee,r)},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i}=e,[o,c]=t.readStruct(ee);if(c!==0)return c;let u=await ie(o,s,n);if(u!==0)return u;let{pubKey:f}=o;if(!t.done())return 8;let[d,l]=await i.addUser(f);if(l!==0)return l;return 0},decodeResp(e){return h(void 0)}};class sr{url;websocket;constructor(e){this.url=e}connected(){return this.websocket!==void 0&&this.websocket.readyState===WebSocket.OPEN}async connect(e,t,r=()=>{},n=()=>{}){let{url:s}=this;if(this.websocket)this.websocket.close(),this.websocket=void 0;let i=new K;i.writeStruct(ee,e);let o=i.result(),c=ne(o);return s.searchParams.set("t",c),this.websocket=new WebSocket(s),this.websocket.binaryType="arraybuffer",this.websocket.onopen=()=>{console.log("CONNECTED"),n()},this.websocket.onclose=()=>{console.log("DISCONNECTED"),this.websocket=void 0,r()},this.websocket.onmessage=(u)=>{let f=new Uint8Array(u.data);t(f)},this.websocket.onerror=(u)=>{console.log(`ERROR: ${JSON.stringify(u)}`),this.websocket=void 0,r()},Promise.resolve(0)}disconnect(){this.websocket?.close(),this.websocket=void 0}}var Q={user:{path:"/user",endpoint:In,name:0},push:{path:"/push",endpoint:Sn,name:2},peek:{path:"/peek",endpoint:bn,name:1},pull:{path:"/pull",endpoint:wn,name:3}},Ci={0:Q.user,2:Q.push,1:Q.peek,3:Q.pull},An={[Q.user.path]:Q.user,[Q.push.path]:Q.push,[Q.peek.path]:Q.peek,[Q.pull.path]:Q.pull};class En{url;listener;constructor(e){this.url=e;this.listener=new sr(e)}async call(e,t){let{path:r}=Ci[e],n=new URL(r,this.url);try{return await Ti(n,t)}catch{return a(25)}}}var ir=(e)=>new En(e.handle);function We(e){let t=new K;if(t.writeStruct(Fe,e)!==0)return new Response(null,{status:500});return or(t)}function or(e){let t=e.result().slice();return new Response(t,{status:200,headers:{"content-type":"application/octet-stream"}})}var Pi={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,POST,OPTIONS"};function ar(e){return new Response(e.body,{headers:{...e.headers,...Pi},status:e.status,statusText:e.statusText})}async function Ti(e,t){let r=await fetch(e,{method:"POST",body:t.result().slice()});if(!r.ok)return a(24);let n=await J.fromResponse(r);return h(n)}class ht{enclave;crypto;host;clock;transport;updateHostMeta;constructor(e,t,r,n,s,i){this.enclave=e;this.crypto=t;this.host=r;this.clock=n;this.transport=s;this.updateHostMeta=i}async call(e,t){let{clock:r,transport:n}=this,{endpoint:s,name:i}=e,o=await this.identity(),c=r.now(),[u,f]=await Zt(o,c);if(f!==0)return a(f);let d=new K,l=await s.encodeReq(this,o,u,t,d);if(l!==0)return a(l);let p=r.now(),[y,g]=await n.call(i,d),x=r.now();if(g!==0)return a(g);let[b,A]=y.readStruct(Fe);if(A!==0)return a(A);if(b.status!==0)return a(b.status);let U={clockOffset:gn(p,b.timeRcvd,b.timeSent,x),subscription:b.subscription},S=await this.updateHostMeta(U);if(S!==0)return a(S);return s.decodeResp(y)}identity=()=>{let{host:e,enclave:t}=this;return t.deriveIdentity(e.label,e.idx??0)};seal=async(e)=>{let{crypto:t,enclave:r}=this,n=await this.identity();return mn(e,n,t,r)};register=()=>this.call(Q.user,[]);peek=(e)=>this.call(Q.peek,[e]);push=(e)=>this.call(Q.push,e);pull=(e)=>this.call(Q.pull,e);listen=async(e,t,r)=>{let{clock:n,transport:s}=this,{listener:i}=s,o=await this.identity(),c=n.now(),[u,f]=await Zt(o,c);if(f!==0)return f;return await i.connect(u,e,t,r)};isConnected(){let e=this.transport?.listener;if(e&&typeof e.connected==="function")return e.connected();return!0}closeListener(){this.transport?.listener?.disconnect()}}var pt={encode(e,t){let r=e.writeVarString(t.handle);if(r!==0)return r;let n=e.writeVarString(t.label);if(n!==0)return n;return e.writeVarInt(t.idx??0)},decode(e){let[t,r]=e.readVarString();if(r!==0)return a(r);let[n,s]=e.readVarString();if(s!==0)return a(s);let[i,o]=e.readVarInt();if(o!==0)return a(o);return h({handle:t,label:n,idx:i})}};var cr={encode(e,t){let r=e.writeVarInt(t.hosts.length);if(r!==0)return r;for(let n of t.hosts){let s=e.writeStruct(pt,n);if(s!==0)return s}return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);if(t===void 0||t<0)return a(10);let n=[];for(let s=0;s<t;s++){let[i,o]=e.readStruct(pt);if(o!==0)return a(o);if(i===void 0)return a(14);n.push(i)}return h({hosts:n})}};var Vf=Symbol("MasterSeed"),Nf=Symbol("SealedMasterKey"),fe=32,Un=24+fe+16;function yt(e){if(e.byteLength!==Un)return a(10);return h(e)}var ki=new TextEncoder().encode("diplomatic.qrpair.v1"),Xe=32,vi=Xe+24+16,_i=32,$f=Symbol("DHKEReq"),Gf=Symbol("DHKEResp");function ur(e){if(e.byteLength!==Xe)return a(10);return h(e)}function Cn(e){if(e.byteLength<vi)return a(10);return h(e)}var Bn=new Ue;async function fr(e,t,r,n){let s;try{s=await Bn.x25519Shared(e,t)}catch{return a(29)}try{if(s.byteLength!==Xe||s.every((c)=>c===0))return a(10);let i=ue(s,ki),o=ue(i,ue(r,n));try{let c=await Bn.blake3(o);return h(c.slice(0,_i))}finally{i.fill(0),o.fill(0)}}finally{s.fill(0)}}function ge(e){let t=new Uint8Array(e);if(e>0)crypto.getRandomValues(t);return t}var Be=32,mt="DIPLOMATIC",de="public-key",Di=-7,Li=-8,Mi=-257,xt=[{type:de,alg:Di},{type:de,alg:Li},{type:de,alg:Mi}];function Ri(e){return e.trim().toLowerCase().replace(/\.$/,"")||"localhost"}function Se(e){let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer}function gt(e){if(e instanceof ArrayBuffer)return new Uint8Array(e).slice();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength).slice()}function Ce(e){if(e?.rpId!==void 0)return h(e.rpId);if(typeof location>"u")return a(9);return h(Ri(location.hostname))}var Pn="";function Ie(e){if(e instanceof Error){Pn=e.message===""?e.name:`${e.name}: ${e.message}`;return}Pn=String(e)}function bt(e){if(!(e instanceof Error))return!1;return e.name==="NotAllowedError"&&e.message.toLowerCase().includes("does not have focus")}function Tn(){if(typeof document>"u")return!0;return document.visibilityState!=="hidden"}function ze(){if(typeof globalThis.focus!=="function")return;try{globalThis.focus()}catch{}}function wt(e=2500){if(Tn())return ze(),Promise.resolve();return new Promise((t)=>{let r=()=>{clearTimeout(s),document.removeEventListener("visibilitychange",n),ze(),t()},n=()=>{if(Tn())r()},s=setTimeout(r,e);document.addEventListener("visibilitychange",n),n()})}async function St(e){await wt();try{return await navigator.credentials.create(e)}catch(t){if(!bt(t))throw t;return ze(),await navigator.credentials.create(e)}}async function It(e){await wt();try{return await navigator.credentials.get(e)}catch(t){if(!bt(t))throw t;return ze(),await navigator.credentials.get(e)}}function Pe(){if(typeof navigator>"u"||!navigator.credentials||typeof PublicKeyCredential>"u")return 24;return 0}function Te(e){if(e===null||e.type!==de||!("rawId"in e)||typeof e.getClientExtensionResults!=="function")return a(27);return h(e)}function lr(e){if(e==="platform"||e==="cross-platform")return e;return}function hr(e){let t=e.response;if(!("getTransports"in t))return;let r=t.getTransports;if(typeof r!=="function")return;let n=r.call(t);if(!Array.isArray(n))return;let s=[];for(let i of n)if(typeof i==="string"&&i.length>0)s.push(i);return s.length===0?void 0:s}var Hi=32,Ki=64,dr=37,kn=16;function vn(e){let t=e.response;if(!("getAuthenticatorData"in t))return;let r=t.getAuthenticatorData;if(typeof r!=="function")return;let n=r.call(t);if(!(n instanceof ArrayBuffer))return;let s=new Uint8Array(n);if(s.byteLength<dr+kn)return;let i=s[Hi];if(i===void 0||(i&Ki)===0)return;return s.slice(dr,dr+kn)}async function _n(e){let t=Pe();if(t!==0)return a(t);let[r,n]=Ce(e);if(n!==0)return a(n);if(r===void 0)return a(9);let s=e?.userName??e?.rpName??r,i={residentKey:"required",requireResidentKey:!0,userVerification:"required"};if(e?.authenticatorAttachment!==void 0)i.authenticatorAttachment=e.authenticatorAttachment;let o={largeBlob:{support:"required"}},c;try{c=await St({publicKey:{challenge:ge(Be),rp:{id:r,name:e?.rpName??mt},user:{id:ge(16),name:s,displayName:s},pubKeyCredParams:xt,authenticatorSelection:i,extensions:o,...e?.hints!==void 0?{hints:e.hints}:{}}})}catch(l){return Ie(l),a(30)}let[u,f]=Te(c);if(f!==0)return a(f);if(u===void 0)return a(27);if(u.getClientExtensionResults().largeBlob?.supported!==!0)return a(30);return h(new Uint8Array(u.rawId))}async function pr(e,t,r,n){let s={challenge:ge(Be),rpId:e,userVerification:"preferred"};if(t?.hints!==void 0)s.hints=t.hints;if(r!==void 0)s.allowCredentials=[{type:de,id:Se(r)}];if(n!==void 0)s.extensions=n;let i;try{i=await It({publicKey:s})}catch(u){return Ie(u),a(30)}let[o,c]=Te(i);if(c!==0)return a(c);if(o===void 0)return a(27);return h(o)}async function Dn(e,t){let r=Pe();if(r!==0)return a(r);let[n,s]=Ce(t);if(s!==0)return a(s);if(n===void 0)return a(9);let i=e;if(i===void 0){let[l,p]=await pr(n,t);if(p!==0&&t?.hints!==void 0)[l,p]=await pr(n,{rpId:t.rpId,rpName:t.rpName});if(p!==0)return a(p);if(l===void 0)return a(27);i=new Uint8Array(l.rawId)}let[o,c]=await pr(n,t,i,{largeBlob:{read:!0}});if(c!==0)return a(c);if(o===void 0)return a(27);let f=o.getClientExtensionResults().largeBlob;if(f===void 0||f.blob===void 0)return a(7);let d=gt(f.blob);if(d.byteLength===0)return a(7);return h({blob:d,credId:new Uint8Array(o.rawId)})}var yr=new TextEncoder().encode("diplomatic.prf.v1"),mr="diplomatic-prf";var At="";var Ut=typeof globalThis.Worker==="function"?globalThis.Worker:void 0,xr=Ut===void 0?void 0:Ut.prototype.postMessage,Et;function Vi(){if(typeof At!=="string"||At.length===0)throw Error("[DIPLOMATIC] worker source not embedded; run pkg build before spawn");return atob(At)}function Ni(){if(Et!==void 0)return Et;let e=new Blob([Vi()],{type:"text/javascript"});return Et=URL.createObjectURL(e),Et}function Ln(){if(Ut===void 0)throw Error("[DIPLOMATIC] Worker API unavailable; cannot spawn sync worker");return new Ut(Ni(),{type:"module"})}function Mn(e,t,r){if(xr===void 0)throw Error("[DIPLOMATIC] Worker API unavailable; cannot post to sync worker");if(r!==void 0&&r.length>0)xr.call(e,t,{transfer:r});else xr.call(e,t)}var Fi=new TextEncoder().encode("diplomatic.bind.v1"),gr=new TextEncoder().encode("diplomatic.bindtag.v1"),qi=new TextEncoder().encode("DIPLOMATIC SEED FINGERPRINT"),Wi=32,Xi=32,zi=16,$i=32,j=new Ue;function Gi(e){return e.map((t)=>({handle:t.handle,label:t.label,idx:t.idx??0}))}function On(e){if(e.byteLength===0||e.every((c)=>c===0))return a(22);if(e.byteLength<fe+1)return a(14);let t=e.subarray(0,fe);if(t.every((c)=>c===0))return a(22);let r=new J(e.subarray(fe)),[n,s]=r.readStruct(cr);if(s!==0)return a(s);if(n===void 0)return a(14);if(!r.done())return a(14);let[i,o]=oe.fromBytes(t);if(o!==0)return a(o);if(i===void 0)return a(12);return h({enclave:i,hosts:n.hosts.map((c)=>({...c}))})}class et{#e;#t;constructor(e,t){this.#e=e,this.#t=t}static async create(){let e;try{let t=await j.genX25519();e=t.priv;let[r,n]=ur(t.pub);if(n!==0)return a(n);if(r===void 0)return a(10);let s=new et(e,r);return e=void 0,h(s)}catch{return a(29)}finally{e?.fill(0)}}wipe(){this.#e.fill(0)}get dhkeReq(){let[e,t]=ur(this.#t.slice());if(e===void 0)throw Error(`dhkeReq ${t}`);return e}async finish(e){let t=e.subarray(0,Xe),r=e.subarray(Xe),[n,s]=await fr(this.#e,t,this.#t,t);if(s!==0)return a(s);if(n===void 0)return a(12);let i;try{try{i=await j.decryptXSalsa20Poly1305Combined(r,n)}catch{return a(20)}let o=On(i);if(o[1]===0)this.wipe();return o}finally{n.fill(0),i?.fill(0)}}}async function Rn(e,t,r){let n=Pe();if(n!==0)return n;let[s,i]=Ce(r);if(i!==0)return i;if(s===void 0)return 9;await wt();let o=new Uint8Array(t.byteLength);o.set(t);let c={largeBlob:{write:o.buffer}},u={publicKey:{challenge:ge(Be),rpId:s,allowCredentials:[{type:de,id:Se(e)}],userVerification:"required",extensions:c,...r?.hints!==void 0?{hints:r.hints}:{}}},f;try{try{f=await navigator.credentials.get(u)}catch(y){if(!bt(y))throw y;ze(),f=await navigator.credentials.get(u)}}catch(y){return Ie(y),30}finally{o.fill(0)}let[d,l]=Te(f);if(l!==0)return l;if(d===void 0)return 27;if(d.getClientExtensionResults().largeBlob?.written!==!0)return 30;return 0}var br=32;function ji(e){if(e===void 0)return[];if(e instanceof Uint8Array)return[e];return e.filter((t)=>t.byteLength>0)}function Yi(e){if(!(e instanceof Error))return!1;return e.name==="NotSupportedError"||e.name==="TypeError"}function Vn(e){if(e===void 0)return;let t=gt(e);if(t.byteLength<br){t.fill(0);return}if(t.byteLength===br)return t;let r=t.slice(0,br);return t.fill(0),r}async function Ji(e){let t=Pe();if(t!==0)return a(t);let[r,n]=Ce(e);if(n!==0)return a(n);if(r===void 0)return a(9);let s=e?.userName??mr,i=e?.displayName??s,o=ge(16),c=e?.authenticatorAttachment==="cross-platform",u={residentKey:c?"discouraged":"required",requireResidentKey:!c,userVerification:c?"preferred":"required"};if(e?.authenticatorAttachment!==void 0)u.authenticatorAttachment=e.authenticatorAttachment;let f={challenge:ge(Be),rp:{id:r,name:e?.rpName??mt},user:{id:o,name:s,displayName:i},pubKeyCredParams:xt,authenticatorSelection:u,...e?.hints!==void 0?{hints:e.hints}:{},...e?.excludeCredentials!==void 0&&e.excludeCredentials.length>0?{excludeCredentials:e.excludeCredentials.map((E)=>({type:de,id:Se(E)}))}:{}},d=e?.salt!==void 0?Se(e.salt):void 0,l=(E)=>St({publicKey:{...f,extensions:E&&d!==void 0?{prf:{eval:{first:d}}}:{prf:{}}}}),p;try{p=await l(d!==void 0)}catch(E){if(d===void 0||!Yi(E))return Ie(E),a(30);try{p=await l(!1)}catch(U){return Ie(U),a(30)}}let[y,g]=Te(p);if(g!==0)return a(g);if(y===void 0)return a(27);let x=y.getClientExtensionResults(),b=Vn(x.prf?.results?.first),A=x.prf?.enabled===!0||b!==void 0;if(c&&b!==void 0)b.fill(0);return h({credId:new Uint8Array(y.rawId),userId:new Uint8Array(o),prfEnabled:A,prf:c?void 0:b,attachment:lr(y.authenticatorAttachment),transports:hr(y),aaguid:vn(y)})}async function Hn(e){let t=Pe();if(t!==0)return a(t);let[r,n]=Ce(e);if(n!==0)return a(n);if(r===void 0)return a(9);let s=e?.salt??yr,i=Se(s),o={challenge:ge(Be),rpId:r,userVerification:"preferred",extensions:{prf:{eval:{first:i}}}};if(e?.hints!==void 0)o.hints=e.hints;let c=ji(e?.credId);if(c.length>0)o.allowCredentials=c.map((y)=>({type:de,id:Se(y)}));let u;try{u=await It({publicKey:o})}catch(y){return Ie(y),a(30)}let[f,d]=Te(u);if(d!==0)return a(d);if(f===void 0)return a(27);let l=f.getClientExtensionResults().prf?.results;if(l?.first===void 0)return a(7);let p=Vn(l.first);if(p===void 0)return a(27);return h({prf:p,credId:new Uint8Array(f.rawId),attachment:lr(f.authenticatorAttachment),transports:hr(f)})}function wr(e){if(e.byteLength!==fe)return a(10);return[e,0]}class oe{#e;constructor(e){this.#e=e}static async fromRandom(e){if(e.byteLength<$i)return a(10);let t=await j.gen256BitSecureRandomSeed(),r=ue(t,e);try{let n=await j.blake3(r),[s,i]=wr(n);if(i!==0)return a(i);if(s===void 0)return a(12);return h(new oe(s))}finally{t.fill(0),r.fill(0),e.fill(0)}}static fromBytes(e){let[t,r]=wr(e);if(r!==0)return a(r);if(t===void 0)return a(10);let[n,s]=wr(t.slice());if(s!==0)return a(s);if(n===void 0)return a(10);return h(new oe(n))}async sealWithPasskey(e){let t=e?.salt??yr,r=e?.credId,n=r,s=e?.createCredIfNeeded===!0&&(r===void 0||!(r instanceof Uint8Array)&&r.length===0),i,o;if(s){let[d,l]=await Ji({rpId:e?.rpId,rpName:e?.rpName,userName:e?.userName??mr,displayName:e?.displayName,authenticatorAttachment:e?.authenticatorAttachment,hints:e?.hints,excludeCredentials:e?.excludeCredentials,salt:t});if(l!==0)return a(l);if(d===void 0)return a(30);if(!d.prfEnabled)return a(30);n=d.credId,i=d,o=d.prf}let c=async(d,l,p,y)=>{try{let[g,x]=await this.#i(d);if(x!==0)return a(x);if(g===void 0)return a(12);return h({sealedMaster:g,salt:t.slice(),credId:l.slice(),userId:i?.userId===void 0?void 0:i.userId.slice(),attachment:p??i?.attachment,transports:y??i?.transports,aaguid:i?.aaguid===void 0?void 0:i.aaguid.slice()})}finally{d.fill(0)}};if(o!==void 0&&i!==void 0)return c(o,i.credId,i.attachment,i.transports);let[u,f]=await Hn({rpId:e?.rpId,rpName:e?.rpName,credId:n,salt:t,hints:e?.hints});if(f!==0)return a(f);if(u===void 0)return a(7);return c(u.prf,u.credId,u.attachment,u.transports)}async bind(e,t){if(t!==void 0){for(let i of t)if(!await this.#c(i.credId,i.tag))return a(10)}let[r,n]=await this.sealWithPasskey(e);if(n!==0)return a(n);if(r===void 0)return a(12);let s=await this.#s(r.credId);return h({...r,tag:s})}static async unsealWithPasskey(e,t){if(e.length===0)return a(22);let r=[];for(let c of e)if(c.credId.byteLength>0)r.push(c.credId);let[n,s]=await Hn({rpId:t.rpId,rpName:t.rpName,hints:t.hints,credId:r.length>0?r:void 0,salt:t.salt});if(s!==0)return a(s);if(n===void 0)return a(7);let i=e.find((c)=>He(c.credId,n.credId)),o=i===void 0?e:[i,...e.filter((c)=>c!==i)];try{for(let c of o){let[u]=await oe.#o(c.sealedMaster,n.prf);if(u!==void 0)return h({enclave:u,credId:n.credId.slice()})}return a(20)}finally{n.prf.fill(0)}}async sealWithIkm(e){try{return await this.#i(e)}finally{e.fill(0)}}static async unsealWithIkm(e,t){try{return await oe.#o(e,t)}finally{t.fill(0)}}async persistToLargeBlob(e=[],t){let r=t?.credId;if(r===void 0){let[i,o]=await _n(t);if(o!==0)return a(o);if(i===void 0)return a(30);r=i}let[n,s]=this.#a(e);if(s!==0)return a(s);if(n===void 0)return a(12);try{let i=await Rn(r,n,t);if(i!==0)return a(i);return h(r)}finally{n.fill(0)}}static async fromLargeBlob(e){let[t,r]=await Dn(e?.credId,e);if(r!==0)return a(r);if(t===void 0)return a(7);try{let[n,s]=On(t.blob);if(s!==0)return a(s);if(n===void 0)return a(12);return h({...n,credId:t.credId})}finally{t.blob.fill(0)}}static async clearLargeBlob(e,t){return Rn(e,new Uint8Array(fe),t)}async dumpToTty(){return 21}static pairRequest(){return et.create()}async pairAccept(e,t,r){if(r.userControlsBothSidesOfPair!==!0)return a(10);let n;try{n=await j.genX25519()}catch{return a(29)}try{let[s,i]=await fr(n.priv,e,e,n.pub);if(i!==0)return a(i);if(s===void 0)return a(12);try{let[o,c]=this.#a(t);if(c!==0)return a(c);if(o===void 0)return a(12);try{let u=await j.encryptXSalsa20Poly1305Combined(o,s);return Cn(ue(n.pub,u))}catch{return a(12)}finally{o.fill(0)}}finally{s.fill(0)}}finally{n.priv.fill(0)}}spawnSyncWorker(e){let t=Ln(),r=this.#e.slice();return Mn(t,{id:e.id,op:"setSeed",seed:r,persist:e.persist},[r.buffer]),t}deriveCipher(e,t){let r=e.slice(),n=(o)=>this.#u(r,o),s=(o)=>this.#f(r,o);return{encrypt:Object.freeze({encrypt:n}),decrypt:Object.freeze({decrypt:s}),both:Object.freeze({encrypt:n,decrypt:s})}[t]}async deriveIdentity(e,t=0){let r=e,n=t,s=await this.#n(r,n),i=s.publicKey;return s.privateKey.fill(0),Object.freeze({publicKey:i,sign:(o)=>this.#l(r,n,o),kdmFor:(o)=>this.#h(r,n,o)})}async#t(){return await j.blake3(this.#e,{context:qi})}async#s(e){let t=new Uint8Array(this.#e.byteLength+gr.byteLength+e.byteLength);t.set(this.#e,0),t.set(gr,this.#e.byteLength),t.set(e,this.#e.byteLength+gr.byteLength);try{return await j.blake3(t)}finally{t.fill(0)}}async#c(e,t){if(t.byteLength!==Wi)return!1;let r=await this.#s(e);try{if(r.byteLength!==t.byteLength)return!1;let n=0;for(let s=0;s<r.byteLength;s++){let i=r[s],o=t[s];if(i===void 0||o===void 0)return!1;n|=i^o}return n===0}finally{r.fill(0)}}async#i(e){let[t,r]=await Kn(j,e);if(r!==0)return a(r);if(t===void 0)return a(12);try{let n=await j.encryptXSalsa20Poly1305Combined(this.#e,t);return yt(n)}catch{return a(12)}finally{t.fill(0)}}static async#o(e,t){let[,r]=yt(e);if(r!==0)return a(r);let[n,s]=await Kn(j,t);if(s!==0)return a(s);if(n===void 0)return a(12);let i;try{try{i=await j.decryptXSalsa20Poly1305Combined(e,n)}catch{return a(20)}return oe.fromBytes(i)}finally{n.fill(0),i?.fill(0)}}#a(e){let t=new K,r=t.writeStruct(cr,{hosts:Gi(e)});if(r!==0)return a(r);let n=t.result(),s=new Uint8Array(fe+n.byteLength);return s.set(this.#e,0),s.set(n,fe),[s,0]}async#u(e,t){let r=await this.#r(e);try{return await j.encryptXSalsa20Poly1305Combined(t,r)}finally{r.fill(0)}}async#f(e,t){let r=await this.#r(e);try{return await j.decryptXSalsa20Poly1305Combined(t,r)}finally{r.fill(0)}}async#r(e){let t=new Uint8Array(this.#e.byteLength+e.byteLength);t.set(this.#e,0),t.set(e,this.#e.byteLength);try{return await j.blake3(t)}finally{t.fill(0)}}async#d(e,t){let r=new TextEncoder().encode(e),n=new Uint8Array(8);return new DataView(n.buffer).setBigUint64(0,BigInt(t),!1),await this.#r(ue(r,n))}async#n(e,t){let r=await this.#d(e,t);try{return await j.deriveEd25519KeyPair(r)}finally{r.fill(0)}}async#l(e,t,r){let n=await this.#n(e,t);try{return await j.signEd25519(r,n.privateKey)}finally{n.privateKey.fill(0)}}async#h(e,t,r){let n=await this.#n(e,t),s=ue(n.privateKey,r);n.privateKey.fill(0);try{return(await j.blake3(s)).slice(0,Oe)}finally{s.fill(0)}}}async function Kn(e,t,r=Fi){if(t.byteLength<zi)return a(10);let n=await e.blake3(ue(t,r));return h(n.slice(0,Xi))}var Qi=new Set(["constructor","prototype","length","name"]);function Bt(e){for(let t of Object.getOwnPropertyNames(e)){if(Qi.has(t))continue;let r=Object.getOwnPropertyDescriptor(e,t);if(r===void 0||typeof r.value!=="function")continue;Object.defineProperty(e,t,{value:r.value,writable:!1,configurable:!1})}}Bt(oe);Bt(oe.prototype);Bt(et);Bt(et.prototype);async function Nn(e,t,r,n=0){let s=t.now(),i=new K,o=i.writeVarString(e);if(o!==0)return a(o);let u={id:i.result(),ts:new Date(0)},[f,d]=pn(u);if(d!==0)return a(d);let l=s.getTime()-u.ts.getTime();return h({eid:f,off:l,ctr:n,typ:"",len:r.length,bod:r})}async function Fn(e,t,r,n){let s=new J(e.headCph),[i,o]=s.readStruct(qe);if(o!==0)return a(o);let{sig:c,kdm:u,headCph:f}=i;if(!await n.checkSigEd25519(c,f,t))return a(3);let l=r.deriveCipher(u,"decrypt"),p;try{p=await l.decrypt(f)}catch{return a(20)}return h({kdm:u,headEnc:p})}var Ge=ri(qs(),1),ga={encode:Ge.encode,decode:Ge.decode,decodeAsync:Ge.decodeAsync},ba=ga;import{Database as wa}from"bun:sqlite";var bl=Symbol("EntityID");var wl=Symbol("DerivationSeed"),Sl=Symbol("PublicKey"),Il=Symbol("PrivateKey"),Al=Symbol("HostSpecificKeyPair"),El=Symbol("Hash"),we={term:0,elapsed:0,stat:{quota:0},dyn:{quota:0}};function Sa(e="diplomatic.db"){let t=new wa(e);return t.exec("PRAGMA journal_mode=WAL;"),t.exec("PRAGMA synchronous=NORMAL;"),t.exec(`
1
+ var so=Object.create;var{getPrototypeOf:io,defineProperty:Zt,getOwnPropertyNames:oo}=Object;var ao=Object.prototype.hasOwnProperty;function co(e){return this[e]}var uo,fo,lo=(e,t,r)=>{var n=e!=null&&typeof e==="object";if(n){var s=t?uo??=new WeakMap:fo??=new WeakMap,i=s.get(e);if(i)return i}r=e!=null?so(io(e)):{};let o=t||!e||!e.__esModule?Zt(r,"default",{value:e,enumerable:!0}):r;if(e&&typeof e==="object"||typeof e==="function"){for(let c of oo(e))if(!ao.call(o,c))Zt(o,c,{get:co.bind(e,c),enumerable:!0})}if(n)s.set(e,o);return o};var Z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var po=(e)=>e;function ho(e,t){this[e]=po.bind(null,t)}var yo=(e,t)=>{for(var r in t)Zt(e,r,{get:t[r],enumerable:!0,configurable:!0,set:ho.bind(t,r)})};var v=(e,t)=>()=>(e&&(t=e(e=0)),t);import*as we from"node:crypto";var Re;var cn=v(()=>{Re=we&&typeof we==="object"&&"webcrypto"in we?we.webcrypto:we&&typeof we==="object"&&("randomBytes"in we)?we:void 0});function bt(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function er(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function j(e,...t){if(!er(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function tr(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function un(e,t){j(e);let r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}function rr(e){if(typeof e!=="boolean")throw Error(`boolean expected, not ${e}`)}var ot=()=>{};function xo(e){if(typeof e!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function St(e){if(typeof e==="string")e=xo(e);else if(er(e))e=wt(e);else throw Error("Uint8Array expected, got "+typeof e);return e}function fn(e,t){if(t==null||typeof t!=="object")throw Error("options must be defined");return Object.assign(e,t)}function dn(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function nr(e,t,r=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw Error("invalid output length, expected "+e+", got: "+t.length);if(r&&!go(t))throw Error("invalid output, must be aligned");return t}function go(e){return e.byteOffset%4===0}function wt(e){return Uint8Array.from(e)}function me(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}var Ie=(e)=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),mo,ln=(e,t)=>{function r(n,...s){if(j(n),e.nonceLength!==void 0){let d=s[0];if(!d)throw Error("nonce / iv required");if(e.varSizeNonce)j(d);else j(d,e.nonceLength)}let i=e.tagLength;if(i&&s[1]!==void 0)j(s[1]);let o=t(n,...s),c=(d,l)=>{if(l!==void 0){if(d!==2)throw Error("cipher output not supported");j(l)}},u=!1;return{encrypt(d,l){if(u)throw Error("cannot encrypt() twice with same key + nonce");return u=!0,j(d),c(o.encrypt.length,l),o.encrypt(d,l)},decrypt(d,l){if(j(d),i&&d.length<i)throw Error("invalid ciphertext length: smaller than tagLength="+i);return c(o.decrypt.length,l),o.decrypt(d,l)}}}return Object.assign(r,e),r};var It=v(()=>{ot();/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */mo=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!mo)throw Error("Non little-endian hardware is not supported")});function at(e=32){if(Re&&typeof Re.getRandomValues==="function")return Re.getRandomValues(new Uint8Array(e));if(Re&&typeof Re.randomBytes==="function")return Re.randomBytes(e);throw Error("crypto.getRandomValues must be defined")}var pn=v(()=>{cn()});function b(e,t){return e<<t|e>>>32-t}function sr(e){return e.byteOffset%4===0}function Eo(e,t,r,n,s,i,o,c){let u=s.length,f=new Uint8Array(At),d=Ie(f),l=sr(s)&&sr(i),y=l?Ie(s):hn,h=l?Ie(i):hn;for(let x=0;x<u;o++){if(e(t,r,n,d,o,c),o>=mn)throw Error("arx: counter overflow");let m=Math.min(At,u-x);if(l&&m===At){let S=x/4;if(x%4!==0)throw Error("arx: invalid block position");for(let w=0,I;w<Ao;w++)I=S+w,h[I]=y[I]^d[w];x+=At;continue}for(let S=0,w;S<m;S++)w=x+S,i[w]=s[w]^f[S];x+=m}}function xn(e,t){let{allowShortKeys:r,extendNonceFn:n,counterLength:s,counterRight:i,rounds:o}=fn({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!=="function")throw Error("core must be a function");return bt(s),bt(o),rr(i),rr(r),(c,u,f,d,l=0)=>{j(c),j(u),j(f);let y=f.length;if(d===void 0)d=new Uint8Array(y);if(j(d),bt(l),l<0||l>=mn)throw Error("arx: counter overflow");if(d.length<y)throw Error(`arx: output (${d.length}) is shorter than data (${y})`);let h=[],x=c.length,m,S;if(x===32)h.push(m=wt(c)),S=Io;else if(x===16&&r)m=new Uint8Array(32),m.set(c),m.set(c,16),S=wo,h.push(m);else throw Error(`arx: invalid 32-byte key, got length=${x}`);if(!sr(u))h.push(u=wt(u));let w=Ie(m);if(n){if(u.length!==24)throw Error("arx: extended nonce must be 24 bytes");n(S,w,Ie(u.subarray(0,16)),w),u=u.subarray(16)}let I=16-s;if(I!==u.length)throw Error(`arx: nonce must be ${I} or 16 bytes`);if(I!==12){let A=new Uint8Array(12);A.set(u,i?0:12-u.length),u=A,h.push(u)}let U=Ie(u);return Eo(e,S,w,U,f,d,l,o),me(...h),d}}var yn=(e)=>Uint8Array.from(e.split("").map((t)=>t.charCodeAt(0))),bo,So,wo,Io,At=64,Ao=16,mn=4294967295,hn;var gn=v(()=>{ot();It();bo=yn("expand 16-byte k"),So=yn("expand 32-byte k"),wo=Ie(bo),Io=Ie(So);hn=new Uint32Array});class bn{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=St(e),j(e,32);let t=G(e,0),r=G(e,2),n=G(e,4),s=G(e,6),i=G(e,8),o=G(e,10),c=G(e,12),u=G(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|r<<3)&8191,this.r[2]=(r>>>10|n<<6)&7939,this.r[3]=(n>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|o<<2)&8191,this.r[7]=(o>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=G(e,16+2*f)}process(e,t,r=!1){let n=r?0:2048,{h:s,r:i}=this,o=i[0],c=i[1],u=i[2],f=i[3],d=i[4],l=i[5],y=i[6],h=i[7],x=i[8],m=i[9],S=G(e,t+0),w=G(e,t+2),I=G(e,t+4),U=G(e,t+6),A=G(e,t+8),C=G(e,t+10),T=G(e,t+12),X=G(e,t+14),R=s[0]+(S&8191),M=s[1]+((S>>>13|w<<3)&8191),_=s[2]+((w>>>10|I<<6)&8191),V=s[3]+((I>>>7|U<<9)&8191),q=s[4]+((U>>>4|A<<12)&8191),g=s[5]+(A>>>1&8191),F=s[6]+((A>>>14|C<<2)&8191),O=s[7]+((C>>>11|T<<5)&8191),W=s[8]+((T>>>8|X<<8)&8191),N=s[9]+(X>>>5|n),E=0,Q=E+R*o+M*(5*m)+_*(5*x)+V*(5*h)+q*(5*y);E=Q>>>13,Q&=8191,Q+=g*(5*l)+F*(5*d)+O*(5*f)+W*(5*u)+N*(5*c),E+=Q>>>13,Q&=8191;let re=E+R*c+M*o+_*(5*m)+V*(5*x)+q*(5*h);E=re>>>13,re&=8191,re+=g*(5*y)+F*(5*l)+O*(5*d)+W*(5*f)+N*(5*u),E+=re>>>13,re&=8191;let se=E+R*u+M*c+_*o+V*(5*m)+q*(5*x);E=se>>>13,se&=8191,se+=g*(5*h)+F*(5*y)+O*(5*l)+W*(5*d)+N*(5*f),E+=se>>>13,se&=8191;let H=E+R*f+M*u+_*c+V*o+q*(5*m);E=H>>>13,H&=8191,H+=g*(5*x)+F*(5*h)+O*(5*y)+W*(5*l)+N*(5*d),E+=H>>>13,H&=8191;let Se=E+R*d+M*f+_*u+V*c+q*o;E=Se>>>13,Se&=8191,Se+=g*(5*m)+F*(5*x)+O*(5*h)+W*(5*y)+N*(5*l),E+=Se>>>13,Se&=8191;let Ne=E+R*l+M*d+_*f+V*u+q*c;E=Ne>>>13,Ne&=8191,Ne+=g*o+F*(5*m)+O*(5*x)+W*(5*h)+N*(5*y),E+=Ne>>>13,Ne&=8191;let qe=E+R*y+M*l+_*d+V*f+q*u;E=qe>>>13,qe&=8191,qe+=g*c+F*o+O*(5*m)+W*(5*x)+N*(5*h),E+=qe>>>13,qe&=8191;let Fe=E+R*h+M*y+_*l+V*d+q*f;E=Fe>>>13,Fe&=8191,Fe+=g*u+F*c+O*o+W*(5*m)+N*(5*x),E+=Fe>>>13,Fe&=8191;let We=E+R*x+M*h+_*y+V*l+q*d;E=We>>>13,We&=8191,We+=g*f+F*u+O*c+W*o+N*(5*m),E+=We>>>13,We&=8191;let ze=E+R*m+M*x+_*h+V*y+q*l;E=ze>>>13,ze&=8191,ze+=g*d+F*f+O*u+W*c+N*o,E+=ze>>>13,ze&=8191,E=(E<<2)+E|0,E=E+Q|0,Q=E&8191,E=E>>>13,re+=E,s[0]=Q,s[1]=re,s[2]=se,s[3]=H,s[4]=Se,s[5]=Ne,s[6]=qe,s[7]=Fe,s[8]=We,s[9]=ze}finalize(){let{h:e,pad:t}=this,r=new Uint16Array(10),n=e[1]>>>13;e[1]&=8191;for(let o=2;o<10;o++)e[o]+=n,n=e[o]>>>13,e[o]&=8191;e[0]+=n*5,n=e[0]>>>13,e[0]&=8191,e[1]+=n,n=e[1]>>>13,e[1]&=8191,e[2]+=n,r[0]=e[0]+5,n=r[0]>>>13,r[0]&=8191;for(let o=1;o<10;o++)r[o]=e[o]+n,n=r[o]>>>13,r[o]&=8191;r[9]-=8192;let s=(n^1)-1;for(let o=0;o<10;o++)r[o]&=s;s=~s;for(let o=0;o<10;o++)e[o]=e[o]&s|r[o];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let i=e[0]+t[0];e[0]=i&65535;for(let o=1;o<8;o++)i=(e[o]+t[o]|0)+(i>>>16)|0,e[o]=i&65535;me(r)}update(e){tr(this);let{buffer:t,blockLen:r}=this;e=St(e);let n=e.length;for(let s=0;s<n;){let i=Math.min(r-this.pos,n-s);if(i===r){for(;r<=n-s;s+=r)this.process(e,s);continue}if(t.set(e.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===r)this.process(t,0,!1),this.pos=0}return this}destroy(){me(this.h,this.r,this.buffer,this.pad)}digestInto(e){tr(this),un(e,this),this.finished=!0;let{buffer:t,h:r}=this,{pos:n}=this;if(n){t[n++]=1;for(;n<16;n++)t[n]=0;this.process(t,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)e[s++]=r[i]>>>0,e[s++]=r[i]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}}function Uo(e){let t=(n,s)=>e(s).update(St(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(n)=>e(n),t}var G=(e,t)=>e[t++]&255|(e[t++]&255)<<8,ir;var Sn=v(()=>{ot();It();ir=Uo((e)=>new bn(e))});function Po(e,t,r,n,s,i=20){let o=e[0],c=t[0],u=t[1],f=t[2],d=t[3],l=e[1],y=r[0],h=r[1],x=s,m=0,S=e[2],w=t[4],I=t[5],U=t[6],A=t[7],C=e[3],T=o,X=c,R=u,M=f,_=d,V=l,q=y,g=h,F=x,O=m,W=S,N=w,E=I,Q=U,re=A,se=C;for(let Se=0;Se<i;Se+=2)_^=b(T+E|0,7),F^=b(_+T|0,9),E^=b(F+_|0,13),T^=b(E+F|0,18),O^=b(V+X|0,7),Q^=b(O+V|0,9),X^=b(Q+O|0,13),V^=b(X+Q|0,18),re^=b(W+q|0,7),R^=b(re+W|0,9),q^=b(R+re|0,13),W^=b(q+R|0,18),M^=b(se+N|0,7),g^=b(M+se|0,9),N^=b(g+M|0,13),se^=b(N+g|0,18),X^=b(T+M|0,7),R^=b(X+T|0,9),M^=b(R+X|0,13),T^=b(M+R|0,18),q^=b(V+_|0,7),g^=b(q+V|0,9),_^=b(g+q|0,13),V^=b(_+g|0,18),N^=b(W+O|0,7),F^=b(N+W|0,9),O^=b(F+N|0,13),W^=b(O+F|0,18),E^=b(se+re|0,7),Q^=b(E+se|0,9),re^=b(Q+E|0,13),se^=b(re+Q|0,18);let H=0;n[H++]=o+T|0,n[H++]=c+X|0,n[H++]=u+R|0,n[H++]=f+M|0,n[H++]=d+_|0,n[H++]=l+V|0,n[H++]=y+q|0,n[H++]=h+g|0,n[H++]=x+F|0,n[H++]=m+O|0,n[H++]=S+W|0,n[H++]=w+N|0,n[H++]=I+E|0,n[H++]=U+Q|0,n[H++]=A+re|0,n[H++]=C+se|0}function Bo(e,t,r,n){let s=e[0],i=t[0],o=t[1],c=t[2],u=t[3],f=e[1],d=r[0],l=r[1],y=r[2],h=r[3],x=e[2],m=t[4],S=t[5],w=t[6],I=t[7],U=e[3];for(let C=0;C<20;C+=2)u^=b(s+S|0,7),y^=b(u+s|0,9),S^=b(y+u|0,13),s^=b(S+y|0,18),h^=b(f+i|0,7),w^=b(h+f|0,9),i^=b(w+h|0,13),f^=b(i+w|0,18),I^=b(x+d|0,7),o^=b(I+x|0,9),d^=b(o+I|0,13),x^=b(d+o|0,18),c^=b(U+m|0,7),l^=b(c+U|0,9),m^=b(l+c|0,13),U^=b(m+l|0,18),i^=b(s+c|0,7),o^=b(i+s|0,9),c^=b(o+i|0,13),s^=b(c+o|0,18),d^=b(f+u|0,7),l^=b(d+f|0,9),u^=b(l+d|0,13),f^=b(u+l|0,18),m^=b(x+h|0,7),y^=b(m+x|0,9),h^=b(y+m|0,13),x^=b(h+y|0,18),S^=b(U+I|0,7),w^=b(S+U|0,9),I^=b(w+S|0,13),U^=b(I+w|0,18);let A=0;n[A++]=s,n[A++]=f,n[A++]=x,n[A++]=U,n[A++]=d,n[A++]=l,n[A++]=y,n[A++]=h}var or,ar;var wn=v(()=>{gn();ot();Sn();It();or=xn(Po,{counterRight:!0,extendNonceFn:Bo}),ar=ln({blockSize:64,nonceLength:24,tagLength:16},(e,t)=>({encrypt(r,n){n=nr(r.length+32,n,!1);let s=n.subarray(0,32),i=n.subarray(32);n.set(r,32),me(s),or(e,t,n,n);let o=ir(i,s);return n.set(o,16),me(n.subarray(0,16),o),n.subarray(16)},decrypt(r,n){j(r),n=nr(r.length+32,n,!1);let s=n.subarray(0,32),i=n.subarray(32,48),o=n.subarray(48);n.set(r,32),me(s);let c=or(e,t,s,s),u=ir(o,c);if(!dn(i,u))throw Error("invalid tag");return or(e,t,n.subarray(16),n.subarray(16)),me(s,i,u),o}}))});function Co(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function ct(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function Me(e,...t){if(!Co(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function ut(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function Et(e,t){Me(e);let r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}function In(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Xe(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function $e(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ft(e,t){return e<<32-t|e>>>t}function En(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function ko(e){for(let t=0;t<e.length;t++)e[t]=En(e[t]);return e}function vo(e){if(typeof e!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function je(e){if(typeof e==="string")e=vo(e);return Me(e),e}class cr{}function Pn(e){let t=(n,s)=>e(s).update(je(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(n)=>e(n),t}var An,Un,ne;var Ut=v(()=>{/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */An=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();Un=An?(e)=>e:(e)=>En(e);ne=An?(e)=>e:ko});var Bn;var Cn=v(()=>{Bn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225])});function ur(e,t=!1){if(t)return{h:Number(e&Pt),l:Number(e>>kn&Pt)};return{h:Number(e>>kn&Pt)|0,l:Number(e&Pt)|0}}var Pt,kn;var vn=v(()=>{Pt=BigInt(4294967295),kn=BigInt(32)});function Ae(e,t,r,n,s){return e=e+t+s|0,n=ft(n^e,16),r=r+n|0,t=ft(t^r,12),{a:e,b:t,c:r,d:n}}function Ee(e,t,r,n,s){return e=e+t+s|0,n=ft(n^e,8),r=r+n|0,t=ft(t^r,7),{a:e,b:t,c:r,d:n}}var Tn=v(()=>{Ut()});function dr(e,t,r,n,s,i,o,c,u,f,d,l,y,h,x,m,S,w,I,U){let A=0;for(let C=0;C<n;C++)({a:s,b:u,c:y,d:S}=Ae(s,u,y,S,r[t+e[A++]])),{a:s,b:u,c:y,d:S}=Ee(s,u,y,S,r[t+e[A++]]),{a:i,b:f,c:h,d:w}=Ae(i,f,h,w,r[t+e[A++]]),{a:i,b:f,c:h,d:w}=Ee(i,f,h,w,r[t+e[A++]]),{a:o,b:d,c:x,d:I}=Ae(o,d,x,I,r[t+e[A++]]),{a:o,b:d,c:x,d:I}=Ee(o,d,x,I,r[t+e[A++]]),{a:c,b:l,c:m,d:U}=Ae(c,l,m,U,r[t+e[A++]]),{a:c,b:l,c:m,d:U}=Ee(c,l,m,U,r[t+e[A++]]),{a:s,b:f,c:x,d:U}=Ae(s,f,x,U,r[t+e[A++]]),{a:s,b:f,c:x,d:U}=Ee(s,f,x,U,r[t+e[A++]]),{a:i,b:d,c:m,d:S}=Ae(i,d,m,S,r[t+e[A++]]),{a:i,b:d,c:m,d:S}=Ee(i,d,m,S,r[t+e[A++]]),{a:o,b:l,c:y,d:w}=Ae(o,l,y,w,r[t+e[A++]]),{a:o,b:l,c:y,d:w}=Ee(o,l,y,w,r[t+e[A++]]),{a:c,b:u,c:h,d:I}=Ae(c,u,h,I,r[t+e[A++]]),{a:c,b:u,c:h,d:I}=Ee(c,u,h,I,r[t+e[A++]]);return{v0:s,v1:i,v2:o,v3:c,v4:u,v5:f,v6:d,v7:l,v8:y,v9:h,v10:x,v11:m,v12:S,v13:w,v14:I,v15:U}}var fr;var Dn=v(()=>{Tn();Ut();fr=class fr extends cr{constructor(e,t){super();this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,ct(e),ct(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=Xe(this.buffer)}update(e){ut(this),e=je(e),Me(e);let{blockLen:t,buffer:r,buffer32:n}=this,s=e.length,i=e.byteOffset,o=e.buffer;for(let c=0;c<s;){if(this.pos===t)ne(n),this.compress(n,0,!1),ne(n),this.pos=0;let u=Math.min(t-this.pos,s-c),f=i+c;if(u===t&&!(f%4)&&c+u<s){let d=new Uint32Array(o,f,Math.floor((s-c)/4));ne(d);for(let l=0;c+t<s;l+=n.length,c+=t)this.length+=t,this.compress(d,l,!1);ne(d);continue}r.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){ut(this),Et(e,this);let{pos:t,buffer32:r}=this;this.finished=!0,$e(this.buffer.subarray(t)),ne(r),this.compress(r,0,!0),ne(r);let n=Xe(e);this.get().forEach((s,i)=>n[i]=Un(s))}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){let{buffer:t,length:r,finished:n,destroyed:s,outputLen:i,pos:o}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.buffer.set(t),e.destroyed=s,e.finished=n,e.length=r,e.pos=o,e.outputLen=i,e}clone(){return this._cloneInto()}}});var xe,Ue,Kn,lr,pr;var Rn=v(()=>{Cn();vn();Dn();Ut();xe={CHUNK_START:1,CHUNK_END:2,PARENT:4,ROOT:8,KEYED_HASH:16,DERIVE_KEY_CONTEXT:32,DERIVE_KEY_MATERIAL:64},Ue=Bn.slice(),Kn=(()=>{let e=Array.from({length:16},(n,s)=>s),t=(n)=>[2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8].map((s)=>n[s]),r=[];for(let n=0,s=e;n<7;n++,s=t(s))r.push(...s);return Uint8Array.from(r)})();lr=class lr extends fr{constructor(e={},t=0){super(64,e.dkLen===void 0?32:e.dkLen);this.chunkPos=0,this.chunksDone=0,this.flags=0,this.stack=[],this.posOut=0,this.bufferOut32=new Uint32Array(16),this.chunkOut=0,this.enableXOF=!0;let{key:r,context:n}=e,s=n!==void 0;if(r!==void 0){if(s)throw Error('Only "key" or "context" can be specified at same time');let i=je(r).slice();Me(i,32),this.IV=Xe(i),ne(this.IV),this.flags=t|xe.KEYED_HASH}else if(s){let i=je(n),o=new lr({dkLen:32},xe.DERIVE_KEY_CONTEXT).update(i).digest();this.IV=Xe(o),ne(this.IV),this.flags=t|xe.DERIVE_KEY_MATERIAL}else this.IV=Ue.slice(),this.flags=t;this.state=this.IV.slice(),this.bufferOut=In(this.bufferOut32)}get(){return[]}set(){}b2Compress(e,t,r,n=0){let{state:s,pos:i}=this,{h:o,l:c}=ur(BigInt(e),!0),{v0:u,v1:f,v2:d,v3:l,v4:y,v5:h,v6:x,v7:m,v8:S,v9:w,v10:I,v11:U,v12:A,v13:C,v14:T,v15:X}=dr(Kn,n,r,7,s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],Ue[0],Ue[1],Ue[2],Ue[3],o,c,i,t);s[0]=u^S,s[1]=f^w,s[2]=d^I,s[3]=l^U,s[4]=y^A,s[5]=h^C,s[6]=x^T,s[7]=m^X}compress(e,t=0,r=!1){let n=this.flags;if(!this.chunkPos)n|=xe.CHUNK_START;if(this.chunkPos===15||r)n|=xe.CHUNK_END;if(!r)this.pos=this.blockLen;if(this.b2Compress(this.chunksDone,n,e,t),this.chunkPos+=1,this.chunkPos===16||r){let s=this.state;this.state=this.IV.slice();for(let i,o=this.chunksDone+1;r||!(o&1);o>>=1){if(!(i=this.stack.pop()))break;this.buffer32.set(i,0),this.buffer32.set(s,8),this.pos=this.blockLen,this.b2Compress(0,this.flags|xe.PARENT,this.buffer32,0),s=this.state,this.state=this.IV.slice()}this.chunksDone++,this.chunkPos=0,this.stack.push(s)}this.pos=0}_cloneInto(e){e=super._cloneInto(e);let{IV:t,flags:r,state:n,chunkPos:s,posOut:i,chunkOut:o,stack:c,chunksDone:u}=this;return e.state.set(n.slice()),e.stack=c.map((f)=>Uint32Array.from(f)),e.IV.set(t),e.flags=r,e.chunkPos=s,e.chunksDone=u,e.posOut=i,e.chunkOut=o,e.enableXOF=this.enableXOF,e.bufferOut32.set(this.bufferOut32),e}destroy(){this.destroyed=!0,$e(this.state,this.buffer32,this.IV,this.bufferOut32),$e(...this.stack)}b2CompressOut(){let{state:e,pos:t,flags:r,buffer32:n,bufferOut32:s}=this,{h:i,l:o}=ur(BigInt(this.chunkOut++));ne(n);let{v0:c,v1:u,v2:f,v3:d,v4:l,v5:y,v6:h,v7:x,v8:m,v9:S,v10:w,v11:I,v12:U,v13:A,v14:C,v15:T}=dr(Kn,0,n,7,e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],Ue[0],Ue[1],Ue[2],Ue[3],o,i,t,r);s[0]=c^m,s[1]=u^S,s[2]=f^w,s[3]=d^I,s[4]=l^U,s[5]=y^A,s[6]=h^C,s[7]=x^T,s[8]=e[0]^m,s[9]=e[1]^S,s[10]=e[2]^w,s[11]=e[3]^I,s[12]=e[4]^U,s[13]=e[5]^A,s[14]=e[6]^C,s[15]=e[7]^T,ne(n),ne(s),this.posOut=0}finish(){if(this.finished)return;this.finished=!0,$e(this.buffer.subarray(this.pos));let e=this.flags|xe.ROOT;if(this.stack.length)e|=xe.PARENT,ne(this.buffer32),this.compress(this.buffer32,0,!0),ne(this.buffer32),this.chunksDone=0,this.pos=this.blockLen;else e|=(!this.chunkPos?xe.CHUNK_START:0)|xe.CHUNK_END;this.flags=e,this.b2CompressOut()}writeInto(e){ut(this,!1),Me(e),this.finish();let{blockLen:t,bufferOut:r}=this;for(let n=0,s=e.length;n<s;){if(this.posOut>=t)this.b2CompressOut();let i=Math.min(t-this.posOut,s-n);e.set(r.subarray(this.posOut,this.posOut+i),n),this.posOut+=i,n+=i}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible after digest call");return this.writeInto(e)}xof(e){return ct(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Et(e,this),this.finished)throw Error("digest() was already called");return this.enableXOF=!1,this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}};pr=Pn((e)=>new lr(e))});function ue(e){return Array.from(e).map((r)=>r.toString(16).padStart(2,"0")).join("")}function Bt(e){if(e.length%2!==0)throw Error("Invalid hex string");let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=Number.parseInt(e.substr(r,2),16);return t}function He(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;return e.every((r,n)=>r===t[n])}function Mn(e){return hr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Hn(e){let t=e.length%4===0?"":"=".repeat(4-e.length%4),r=e.replace(/-/g,"+").replace(/_/g,"/")+t;return yr(r)}function Le(e,t){let r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}var hr,yr;var de=v(()=>{if(typeof Uint8Array.prototype.toBase64==="function")hr=(e)=>e.toBase64();else hr=(e)=>btoa(String.fromCharCode(...e));if(typeof Uint8Array.fromBase64==="function")yr=(e)=>Uint8Array.fromBase64(e);else yr=(e)=>Uint8Array.from(atob(e),(t)=>t.charCodeAt(0))});var _e=64,L=32,Ln=32,Ge=8,_n=32,Vn=30000,On=512,P,Nn="t";var B=v(()=>{((g)=>{g[g.Success=0]="Success";g[g.InvalidSignature=3]="InvalidSignature";g[g.ClockOutOfSync=4]="ClockOutOfSync";g[g.UserNotRegistered=5]="UserNotRegistered";g[g.ServerMisconfigured=6]="ServerMisconfigured";g[g.MissingBody=7]="MissingBody";g[g.ExtraBodyContent=8]="ExtraBodyContent";g[g.MissingParam=9]="MissingParam";g[g.InvalidParam=10]="InvalidParam";g[g.InvalidRequest=11]="InvalidRequest";g[g.InternalError=12]="InternalError";g[g.NotFound=13]="NotFound";g[g.InvalidMessage=14]="InvalidMessage";g[g.NoChange=15]="NoChange";g[g.DatabaseClosed=16]="DatabaseClosed";g[g.StorageError=17]="StorageError";g[g.DatabaseError=18]="DatabaseError";g[g.HashMismatch=19]="HashMismatch";g[g.DecryptionError=20]="DecryptionError";g[g.NotImplemented=21]="NotImplemented";g[g.MissingSeed=22]="MissingSeed";g[g.OutOfBounds=23]="OutOfBounds";g[g.HostError=24]="HostError";g[g.CommunicationError=25]="CommunicationError";g[g.VarLimitExceeded=26]="VarLimitExceeded";g[g.InvalidResponse=27]="InvalidResponse";g[g.ConnectionClosed=28]="ConnectionClosed";g[g.CryptoError=29]="CryptoError";g[g.WebAuthnError=30]="WebAuthnError"})(P||={})});function p(e){return[e,0]}function a(e){return[void 0,e]}var k=v(()=>{B()});function qn(e){if(e.byteLength!==To)return a(10);return p(e)}function Wn(e){let t=0n;for(let r=e.length-1;r>=0;r--)t=t<<8n|BigInt(e[r]);return t}function Ko(e){let t=new Uint8Array(32),r=(e%D+D)%D;for(let n=0;n<32;n++)t[n]=Number(r&0xffn),r>>=8n;return t}function Ro(e){let t=e.slice();return t[31]&=127,Wn(t)}function Mo(e){let t=e.slice();return t[0]&=248,t[31]&=127,t[31]|=64,t}function Ct(e,t,r){let n=-e,s=(t^r)&n;return[t^s,r^s]}function Ho(e){let t=D-2n,r=(e%D+D)%D,n=1n;while(t>0n){if(t&1n)n=n*r%D;r=r*r%D,t>>=1n}return n}function mr(e,t){let r=Mo(e),n=Ro(t),s=1n,i=0n,o=n,c=1n,u=0n,f=Wn(r);for(let d=254;d>=0;d--){let l=f>>BigInt(d)&1n;u^=l,[s,o]=Ct(u,s,o),[i,c]=Ct(u,i,c),u=l;let y=(s+i)%D,h=y*y%D,x=(s-i+D)%D,m=x*x%D,S=(h-m+D)%D,w=(o+c)%D,U=(o-c+D)%D*y%D,A=w*x%D,C=(U+A)%D,T=(U-A+D)%D;o=C*C%D,c=n*T*T%D,s=h*m%D,i=S*(h+Do*S)%D}return[s,o]=Ct(u,s,o),[i,c]=Ct(u,i,c),r.fill(0),Ko(s*Ho(i)%D)}function zn(e){return mr(e,Fn)}var To=32,Cu,D,Do=121665n,Fn;var Xn=v(()=>{B();k();Cu=Symbol("X25519Sk");D=(1n<<255n)-19n,Fn=new Uint8Array(32);Fn[0]=9});function $n(e){let t=new Uint8Array(xr.length+32);return t.set(xr),t.set(e.subarray(0,32),xr.length),t}function jn(e){let t=new Uint8Array(gr.length+32);return t.set(gr),t.set(e.subarray(0,32),gr.length),t}function Gn(e){return typeof e==="string"?new TextEncoder().encode(e):e}function Pe(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}async function Lo(e){return at(e)}async function br(){return at(32)}async function dt(e,t){let r=at(24),s=ar(t,r).encrypt(e);return new Uint8Array([...r,...s])}async function Ye(e,t){let r=e.slice(0,24),n=e.slice(24);return ar(t,r).decrypt(n)}async function Sr(e){let t=e,r=$n(t),n=Pe(r),s;try{let f=await globalThis.crypto.subtle.importKey("pkcs8",n,{name:"Ed25519"},!0,["sign"]);s=await globalThis.crypto.subtle.exportKey("jwk",f)}finally{r.fill(0),new Uint8Array(n).fill(0)}if(typeof s.x!=="string")throw Error("Ed25519 JWK missing x");let i=s.x;s.d=void 0;let o=await globalThis.crypto.subtle.importKey("jwk",{kty:"OKP",crv:"Ed25519",x:i},{name:"Ed25519"},!0,["verify"]),c=new Uint8Array(await globalThis.crypto.subtle.exportKey("raw",o)),u=new Uint8Array(64);return u.set(t,0),u.set(c,32),{keyType:"ed25519",privateKey:u,publicKey:c}}async function _o(e){let t=e.subarray(0,32),r=$n(t),n=Pe(r);try{return await globalThis.crypto.subtle.importKey("pkcs8",n,{name:"Ed25519"},!1,["sign"])}finally{r.fill(0),new Uint8Array(n).fill(0)}}async function Vo(e){return await globalThis.crypto.subtle.importKey("raw",Pe(e),{name:"Ed25519"},!1,["verify"])}async function wr(e,t){let r=Gn(e),n=await _o(t),s=await globalThis.crypto.subtle.sign({name:"Ed25519"},n,Pe(r));return new Uint8Array(s)}async function Oo(e,t,r){let n=Gn(t);try{return await globalThis.crypto.subtle.verify({name:"Ed25519"},r,Pe(e),Pe(n))}catch{return!1}}async function lt(e,t){if(t===void 0)return pr(e);return pr(e,t)}async function Ir(){let e=await at(32);e[0]&=248,e[31]&=127,e[31]|=64;let[t,r]=qn(e);if(r!==0||t===void 0)throw e.fill(0),Error("X25519 scalar brand failed");let n=zn(t),s=jn(t),i=Pe(s);try{let o=await globalThis.crypto.subtle.importKey("pkcs8",i,{name:"X25519"},!0,["deriveBits"]),c=await globalThis.crypto.subtle.exportKey("jwk",o);if(typeof c.x!=="string")throw Error("X25519 JWK missing x");let u=Hn(c.x);if(c.d=void 0,!He(u,n))throw Error("X25519 WebCrypto pub != RFC 7748");return{priv:t,pub:n}}catch(o){throw t.fill(0),o}finally{s.fill(0),new Uint8Array(i).fill(0)}}async function Yn(e,t){let r=jn(e),n=Pe(r);try{let s=await globalThis.crypto.subtle.importKey("pkcs8",n,{name:"X25519"},!1,["deriveBits"]),i=await globalThis.crypto.subtle.importKey("raw",Pe(t),{name:"X25519"},!1,[]),o=await globalThis.crypto.subtle.deriveBits({name:"X25519",public:i},s,256);return new Uint8Array(o)}catch{return mr(e,t)}finally{r.fill(0),new Uint8Array(n).fill(0)}}function No(e){return Object.freeze(e),e}var xr,gr,Jn;var pt=v(()=>{pn();wn();Rn();de();B();Xn();xr=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,112,4,34,4,32]);gr=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,110,4,34,4,32]);Jn=No({genRandomBytes:Lo,gen256BitSecureRandomSeed:br,encryptXSalsa20Poly1305Combined:dt,decryptXSalsa20Poly1305Combined:Ye,deriveEd25519KeyPair:Sr,signEd25519:wr,importVerifyKey:Vo,checkSigEd25519:Oo,blake3:lt})});function qo(e){if(e<0)console.info("N",e),console.trace();if(typeof e!=="bigint")e=BigInt(e);if(e<0n)return a(10);let t=[];while(e>0n){let r=Number(e&0x7fn);if(e>>=7n,e>0n)t.push(r|128);else t.push(r)}if(t.length===0)return p(new Uint8Array([0]));if(t.length>8)return a(26);return p(new Uint8Array(t))}function Fo(e,t=0){let r=0n,n=0,s=t;while(!0){if(s>=e.length)return a(14);let i=e[s++];if(i===void 0)return a(14);if(r|=BigInt(i&127)<<BigInt(n),(i&128)===0){if(s-t>8)return a(26);return p({value:r>0x1fffffffffffffn?r:Number(r),bytesRead:s-t})}if(n+=7,n>=56)return a(26)}}class Y{data;pos=0;constructor(e){this.data=e}static async fromResponse(e){let t=await e.arrayBuffer(),r=new Uint8Array(t);return new Y(r)}readBigInt(){if(this.pos+8>this.data.length)return a(7);let e=new DataView(this.data.buffer,this.data.byteOffset+this.pos).getBigUint64(0,!1);return this.pos+=8,p(e)}readDate(){let[e,t]=this.readVarInt();if(t!==0)return a(t);return p(new Date(e))}readVarInt(){let[e,t]=Fo(this.data,this.pos);if(t!==0)return a(t);this.pos+=e.bytesRead;let r=e.value;return p(typeof r==="bigint"?Number(r):r)}readVarString(){let[e,t]=this.readVarInt();if(t!==0)return a(t);let[r,n]=this.readBytes(e);if(n!==0)return a(n);let s=new TextDecoder().decode(r);return p(s)}readBytes(e){if(e<0)return a(10);if(this.pos+e>this.data.length)return a(23);let t=this.data.slice(this.pos,this.pos+e);return this.pos+=e,p(t)}readVarBytes(){let[e,t]=this.readVarInt();if(t!==0)return a(t);return this.readBytes(e)}readStruct(e){return e.decode(this)}readStructs(e){let t=[];while(!this.done()){let[r,n]=this.readStruct(e);if(n!==0)return a(n);t.push(r)}return p(t)}readBytesSeq(e){let t=[];while(!this.done()){let[r,n]=this.readBytes(e);if(n!==0)return a(n);t.push(r)}return p(t)}done(){return this.pos>=this.data.length}consumed(){return this.pos}}class K{parts=[];writeBigInt(e){let t=new Uint8Array(8);new DataView(t.buffer).setBigUint64(0,e,!1),this.parts.push(t)}writeDate(e){let t=e.getTime();return this.writeVarInt(t)}writeVarInt(e){let[t,r]=qo(e);if(r!==0)return r;return this.parts.push(t),0}writeVarString(e){let t=new TextEncoder().encode(e),r=this.writeVarInt(t.length);if(r!==0)return r;return this.writeBytes(t),0}prependBytes(e){this.parts.unshift(e.slice())}writeBytes(e){this.parts.push(e.slice())}writeVarBytes(e){let t=this.writeVarInt(e.length);if(t!==0)return t;return this.writeBytes(e),0}writeStruct(e,t){return e.encode(this,t)}writeStructs(e,t){for(let r of t){let n=this.writeStruct(e,r);if(n!==0)return n}return 0}writeBytesSeq(e){for(let t of e)this.writeBytes(t)}result(){let e=this.parts.reduce((n,s)=>n+s.length,0),t=new Uint8Array(e),r=0;for(let n of this.parts)t.set(n,r),r+=n.length;return t}wipe(){for(let e of this.parts)e.fill(0);this.parts.length=0}*scan(){for(let e of this.parts)yield e}}var ee=v(()=>{k();B()});var Zn;var es=v(()=>{B();k();Zn={encode(e,t){let r=e.writeVarString(t.label);if(r!==0)return r;let n=e.writeVarInt(t.index);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readVarString();if(r!==0)return a(r);let[n,s]=e.readVarInt();if(s!==0)return a(s);return p({label:t,index:n})}}});function Wo(e,t){return e}function ts(e){return e}function zo(e,t){if(e.byteLength!==L)return a(10);return p(ts(e))}function ke(e){return zo(e,ie.HostRLM)}function Xo(e){if(e instanceof Uint8Array)return p(e);let t=new K,r=Zn.encode(t,e);if(r!==0)return a(r);return p(t.result())}async function rs(e,t){try{return p(await lt(e,t))}catch{return a(29)}}async function $o({parent:e,purpose:t}){let[r,n]=await rs(e,{context:t});if(n!==0)return a(n);return p(Wo(r,t))}async function jo({pdk:e,kdm:t}){let[r,n]=Xo(t);if(n!==0)return a(n);let[s,i]=await rs(r,{key:e});if(i!==0)return a(i);return p(ts(s))}async function ce({parent:e,purpose:t,kdm:r}){let[n,s]=await $o({parent:e,purpose:t});if(s!==0)return a(s);try{return await jo({pdk:n,kdm:r})}finally{n.fill(0)}}var ie,ff,df,oe;var le=v(()=>{ee();es();B();k();pt();ie={Identity:"diplomatic.identity.v1",Cipher:"diplomatic.cipher.v1",Bind:"diplomatic.bind.v1",BindTag:"diplomatic.bindtag.v1",Fingerprint:"diplomatic.fingerprint.v1",Pair:"diplomatic.qrpair.v1",BagKdm:"diplomatic.bagkdm.v1",RealmKey:"diplomatic.realmKey.v1",RealmID:"diplomatic.realmID.v1",HostRLM:"diplomatic.hostRLM.v1"},ff=Symbol("PurposeDerivedKey"),df=Symbol("ChildKey"),oe=Object.freeze({label:"",index:0})});var Dt;var Kr=v(()=>{B();k();Dt={encode(e,t){let r=e.writeVarString(t.handle);if(r!==0)return r;let n=e.writeVarString(t.label);if(n!==0)return n;return e.writeVarInt(t.idx??0)},decode(e){let[t,r]=e.readVarString();if(r!==0)return a(r);let[n,s]=e.readVarString();if(s!==0)return a(s);let[i,o]=e.readVarInt();if(o!==0)return a(o);return p({handle:t,label:n,idx:i})}}});var Rr;var ms=v(()=>{B();k();Kr();Kr();Rr={encode(e,t){let r=e.writeVarInt(t.hosts.length);if(r!==0)return r;for(let n of t.hosts){let s=e.writeStruct(Dt,n);if(s!==0)return s}return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);if(t===void 0||t<0)return a(10);let n=[];for(let s=0;s<t;s++){let[i,o]=e.readStruct(Dt);if(o!==0)return a(o);if(i===void 0)return a(14);n.push(i)}return p({hosts:n})}}});function Kt(e){if(e.byteLength!==xs)return a(10);return p(e)}var El,Ul,pe=32,xs;var Rt=v(()=>{B();k();El=Symbol("MasterSeed"),Ul=Symbol("SealedMasterKey"),xs=24+pe+16});function gs(e){if(e.byteLength!==tt)return a(10);return p(e)}function bs(e){if(e.byteLength<Qo)return a(10);return p(e)}async function Ss(e,t,r,n){if(t.byteLength!==tt)return a(10);let s;try{s=await Yn(e,t)}catch{return a(29)}try{if(s.byteLength!==tt||s.every((o)=>o===0))return a(10);let i=Le(r,n);try{let[o,c]=await ce({parent:s,purpose:ie.Pair,kdm:i});if(c!==0)return a(c);return p(o)}finally{i.fill(0)}}finally{s.fill(0)}}async function ws(e){let t;try{t=await Ir()}catch{return a(29)}try{let[r,n]=await Ss(t.priv,e,e,t.pub);if(n!==0)return a(n);return p({key:r,pub:t.pub})}finally{t.priv.fill(0)}}function Is(e){for(let t of Object.getOwnPropertyNames(e)){if(Zo.has(t))continue;let r=Object.getOwnPropertyDescriptor(e,t);if(r===void 0||typeof r.value!=="function")continue;Object.defineProperty(e,t,{value:r.value,writable:!1,configurable:!1})}}class rt{#e;#t;constructor(e,t){this.#e=e,this.#t=t}static async create(){let e;try{let t=await Ir();e=t.priv;let[r,n]=gs(t.pub);if(n!==0)return a(n);let s=new rt(e,r);return e=void 0,p(s)}catch{return a(29)}finally{e?.fill(0)}}wipe(){this.#e.fill(0)}dhkeReq(){let e=this.#t.slice(),[t,r]=gs(e);if(r!==0)return a(r);return p(t)}async finish(e){let t=e.subarray(0,tt),r=e.subarray(tt),[n,s]=await Ss(this.#e,t,this.#t,t);if(s!==0)return a(s);let i;try{try{i=await Ye(r,n)}catch{return a(20)}let{fromSeedHosts:o}=await Promise.resolve().then(() => (Mr(),Es)),c=o(i);if(c[1]===0)this.wipe();return c}finally{n.fill(0),i?.fill(0)}}}var tt=32,Qo,Dl,Kl,Zo;var As=v(()=>{de();B();k();le();pt();Qo=tt+24+16,Dl=Symbol("DHKEReq"),Kl=Symbol("DHKEResp");Zo=new Set(["constructor","prototype","length","name"]);Is(rt);Is(rt.prototype)});function ge(e){let t=new Uint8Array(e);if(e>0)crypto.getRandomValues(t);return t}function na(e){return e.trim().toLowerCase().replace(/\.$/,"")||"localhost"}function be(e){let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer}function Lt(e){if(e instanceof ArrayBuffer)return new Uint8Array(e).slice();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength).slice()}function Te(e){if(e?.rpId!==void 0)return p(e.rpId);if(typeof location>"u")return a(9);return p(na(location.hostname))}function ye(e){if(e instanceof Error){Us=e.message===""?e.name:`${e.name}: ${e.message}`;return}Us=String(e)}function _t(e){if(!(e instanceof Error))return!1;return e.name==="NotAllowedError"&&e.message.toLowerCase().includes("does not have focus")}function Ps(){if(typeof document>"u")return!0;return document.visibilityState!=="hidden"}function nt(){if(typeof globalThis.focus!=="function")return;try{globalThis.focus()}catch{}}function Vt(e=2500){if(Ps())return nt(),Promise.resolve();return new Promise((t)=>{let r=()=>{clearTimeout(s),document.removeEventListener("visibilitychange",n),nt(),t()},n=()=>{if(Ps())r()},s=setTimeout(r,e);document.addEventListener("visibilitychange",n),n()})}async function Ot(e){await Vt();try{return await navigator.credentials.create(e)}catch(t){if(!_t(t))throw t;return nt(),await navigator.credentials.create(e)}}async function Nt(e){await Vt();try{return await navigator.credentials.get(e)}catch(t){if(!_t(t))throw t;return nt(),await navigator.credentials.get(e)}}function De(){if(typeof navigator>"u"||!navigator.credentials||typeof PublicKeyCredential>"u")return 24;return 0}function Ke(e){if(e===null||e.type!==he||!("rawId"in e)||typeof e.getClientExtensionResults!=="function")return a(27);return p(e)}function _r(e){if(e==="platform"||e==="cross-platform")return e;return}function Vr(e){let t=e.response;if(!("getTransports"in t))return;let r=t.getTransports;if(typeof r!=="function")return;let n=r.call(t);if(!Array.isArray(n))return;let s=[];for(let i of n)if(typeof i==="string"&&i.length>0)s.push(i);return s.length===0?void 0:s}function Cs(e){let t=e.response;if(!("getAuthenticatorData"in t))return;let r=t.getAuthenticatorData;if(typeof r!=="function")return;let n=r.call(t);if(!(n instanceof ArrayBuffer))return;let s=new Uint8Array(n);if(s.byteLength<Lr+Bs)return;let i=s[sa];if(i===void 0||(i&ia)===0)return;return s.slice(Lr,Lr+Bs)}var ve=32,Mt="DIPLOMATIC",he="public-key",ea=-7,ta=-8,ra=-257,Ht,Us="",sa=32,ia=64,Lr=37,Bs=16;var mt=v(()=>{B();k();Ht=[{type:he,alg:ea},{type:he,alg:ta},{type:he,alg:ra}]});async function ks(e){let t=De();if(t!==0)return a(t);let[r,n]=Te(e);if(n!==0)return a(n);if(r===void 0)return a(9);let s=e?.userName??e?.rpName??r,i={residentKey:"required",requireResidentKey:!0,userVerification:"required"};if(e?.authenticatorAttachment!==void 0)i.authenticatorAttachment=e.authenticatorAttachment;let o={largeBlob:{support:"required"}},c;try{c=await Ot({publicKey:{challenge:ge(ve),rp:{id:r,name:e?.rpName??Mt},user:{id:ge(16),name:s,displayName:s},pubKeyCredParams:Ht,authenticatorSelection:i,extensions:o,...e?.hints!==void 0?{hints:e.hints}:{}}})}catch(l){return ye(l),a(30)}let[u,f]=Ke(c);if(f!==0)return a(f);if(u===void 0)return a(27);if(u.getClientExtensionResults().largeBlob?.supported!==!0)return a(30);return p(new Uint8Array(u.rawId))}async function Or(e,t,r,n){let s={challenge:ge(ve),rpId:e,userVerification:"preferred"};if(t?.hints!==void 0)s.hints=t.hints;if(r!==void 0)s.allowCredentials=[{type:he,id:be(r)}];if(n!==void 0)s.extensions=n;let i;try{i=await Nt({publicKey:s})}catch(u){return ye(u),a(30)}let[o,c]=Ke(i);if(c!==0)return a(c);if(o===void 0)return a(27);return p(o)}async function vs(e,t){let r=De();if(r!==0)return a(r);let[n,s]=Te(t);if(s!==0)return a(s);if(n===void 0)return a(9);let i=e;if(i===void 0){let[l,y]=await Or(n,t);if(y!==0&&t?.hints!==void 0)[l,y]=await Or(n,{rpId:t.rpId,rpName:t.rpName});if(y!==0)return a(y);if(l===void 0)return a(27);i=new Uint8Array(l.rawId)}let[o,c]=await Or(n,t,i,{largeBlob:{read:!0}});if(c!==0)return a(c);if(o===void 0)return a(27);let f=o.getClientExtensionResults().largeBlob;if(f===void 0||f.blob===void 0)return a(7);let d=Lt(f.blob);if(d.byteLength===0)return a(7);return p({blob:d,credId:new Uint8Array(o.rawId)})}var Nr=v(()=>{B();k();mt()});var qt="";function aa(){if(typeof qt!=="string"||qt.length===0)throw Error("[DIPLOMATIC] worker source not embedded; run pkg build before spawn");return atob(qt)}function ca(){if(Ft!==void 0)return Ft;let e=new Blob([aa()],{type:"text/javascript"});return Ft=URL.createObjectURL(e),Ft}function Ts(){if(Wt===void 0)throw Error("[DIPLOMATIC] Worker API unavailable; cannot spawn sync worker");return new Wt(ca(),{type:"module"})}function Ds(e,t,r){if(qr===void 0)throw Error("[DIPLOMATIC] Worker API unavailable; cannot post to sync worker");if(r!==void 0&&r.length>0)qr.call(e,t,{transfer:r});else qr.call(e,t)}var Wt,qr,Ft;var Ks=v(()=>{Wt=typeof globalThis.Worker==="function"?globalThis.Worker:void 0,qr=Wt===void 0?void 0:Wt.prototype.postMessage});async function Rs(e){if(e?.credId!==void 0)return p(e.credId);return ks(e)}async function Fr(e,t,r){let n=De();if(n!==0)return n;let[s,i]=Te(r);if(i!==0)return i;if(s===void 0)return 9;await Vt();let o=new Uint8Array(t.byteLength);o.set(t);let c={largeBlob:{write:o.buffer}},u={publicKey:{challenge:ge(ve),rpId:s,allowCredentials:[{type:he,id:be(e)}],userVerification:"required",extensions:c,...r?.hints!==void 0?{hints:r.hints}:{}}},f;try{try{f=await navigator.credentials.get(u)}catch(h){if(!_t(h))return ye(h),30;nt();try{f=await navigator.credentials.get(u)}catch(x){return ye(x),30}}}catch(h){return ye(h),30}finally{o.fill(0)}let[d,l]=Ke(f);if(l!==0)return l;if(d===void 0)return 27;if(d.getClientExtensionResults().largeBlob?.written!==!0)return 30;return 0}function Ms(e,t){return Fr(e,new Uint8Array(pe),t)}var Hs=v(()=>{B();Rt();k();mt();Nr()});var Wr,zr="diplomatic-prf";var Ls=v(()=>{mt();Wr=new TextEncoder().encode("diplomatic.prf.v1")});function ua(e){if(e===void 0)return[];if(e instanceof Uint8Array)return[e];return e.filter((t)=>t.byteLength>0)}function fa(e){if(!(e instanceof Error))return!1;return e.name==="NotSupportedError"||e.name==="TypeError"}function _s(e){if(e===void 0)return;let t=Lt(e);if(t.byteLength<Xr){t.fill(0);return}if(t.byteLength===Xr)return t;let r=t.slice(0,Xr);return t.fill(0),r}async function da(e){let t=De();if(t!==0)return a(t);let[r,n]=Te(e);if(n!==0)return a(n);let s=e?.userName??zr,i=e?.displayName??s,o=ge(16),c=e?.authenticatorAttachment==="cross-platform",u={residentKey:c?"discouraged":"required",requireResidentKey:!c,userVerification:c?"preferred":"required"};if(e?.authenticatorAttachment!==void 0)u.authenticatorAttachment=e.authenticatorAttachment;let f={challenge:ge(ve),rp:{id:r,name:e?.rpName??Mt},user:{id:o,name:s,displayName:i},pubKeyCredParams:Ht,authenticatorSelection:u,...e?.hints!==void 0?{hints:e.hints}:{},...e?.excludeCredentials!==void 0&&e.excludeCredentials.length>0?{excludeCredentials:e.excludeCredentials.map((I)=>({type:he,id:be(I)}))}:{}},d=e?.salt!==void 0?be(e.salt):void 0,l=(I)=>Ot({publicKey:{...f,extensions:I&&d!==void 0?{prf:{eval:{first:d}}}:{prf:{}}}}),y;try{y=await l(d!==void 0)}catch(I){if(d===void 0||!fa(I))return ye(I),a(30);try{y=await l(!1)}catch(U){return ye(U),a(30)}}let[h,x]=Ke(y);if(x!==0)return a(x);let m=h.getClientExtensionResults(),S=_s(m.prf?.results?.first),w=m.prf?.enabled===!0||S!==void 0;if(c&&S!==void 0)S.fill(0);return p({credId:new Uint8Array(h.rawId),userId:new Uint8Array(o),prfEnabled:w,prf:c?void 0:S,attachment:_r(h.authenticatorAttachment),transports:Vr(h),aaguid:Cs(h)})}async function Vs(e){let t=De();if(t!==0)return a(t);let[r,n]=Te(e);if(n!==0)return a(n);let s=e?.salt??Wr,o={eval:{first:be(s)}},c=e?.salts;if(c!==void 0&&c.length>0){let m={};for(let S of c){if(S.credId.byteLength===0)continue;m[Mn(S.credId)]={first:be(S.salt)}}o.evalByCredential=m}let u={challenge:ge(ve),rpId:r,userVerification:"preferred",extensions:{prf:o}};if(e?.hints!==void 0)u.hints=e.hints;let f=ua(e?.credId);if(f.length>0)u.allowCredentials=f.map((m)=>({type:he,id:be(m)}));let d;try{d=await Nt({publicKey:u})}catch(m){return ye(m),a(30)}let[l,y]=Ke(d);if(y!==0)return a(y);let h=l.getClientExtensionResults().prf?.results;if(h?.first===void 0)return a(7);let x=_s(h.first);if(x===void 0)return a(27);return p({prf:x,credId:new Uint8Array(l.rawId),attachment:_r(l.authenticatorAttachment),transports:Vr(l)})}async function Os(e){let t=e?.salt??Wr,r=e?.credId,n=r,s=e?.createCredIfNeeded===!0&&(r===void 0||!(r instanceof Uint8Array)&&r.length===0),i,o;if(s){let[d,l]=await da({rpId:e?.rpId,rpName:e?.rpName,userName:e?.userName??zr,displayName:e?.displayName,authenticatorAttachment:e?.authenticatorAttachment,hints:e?.hints,excludeCredentials:e?.excludeCredentials,salt:t});if(l!==0)return a(l);if(!d.prfEnabled)return a(30);n=d.credId,i=d,o=d.prf}let c=(d,l,y,h)=>p({prf:d,salt:t.slice(),credId:l.slice(),userId:i?.userId===void 0?void 0:i.userId.slice(),attachment:y??i?.attachment,transports:h??i?.transports,aaguid:i?.aaguid===void 0?void 0:i.aaguid.slice()});if(o!==void 0&&i!==void 0)return c(o,i.credId,i.attachment,i.transports);let[u,f]=await Vs({rpId:e?.rpId,rpName:e?.rpName,credId:n,salt:t,hints:e?.hints});if(f!==0)return a(f);return c(u.prf,u.credId,u.attachment,u.transports)}async function Ns(e,t){let r=[],n=[],s=!1;for(let f of e){if(f.credId.byteLength===0)continue;r.push(f.credId);let d=f.salt??t.salt;if(!He(d,t.salt))s=!0;n.push({credId:f.credId,salt:d})}let[i,o]=await Vs({rpId:t.rpId,rpName:t.rpName,hints:t.hints,credId:r.length>0?r:void 0,salt:t.salt,salts:s?n:void 0});if(o!==0)return a(o);let c=e.find((f)=>He(f.credId,i.credId)),u=c===void 0?e:[c,...e.filter((f)=>f!==c)];return p({prf:i.prf,credId:i.credId.slice(),order:u})}var Xr=32;var qs=v(()=>{de();B();k();mt();Ls()});async function Fs(e,t){return ce({parent:e,purpose:ie.RealmKey,kdm:t})}async function Ws(e,t){return ce({parent:e,purpose:ie.RealmID,kdm:t})}async function zs(e,t){return ce({parent:e,purpose:ie.HostRLM,kdm:t})}var Xs=v(()=>{le()});var Es={};yo(Es,{Enclave:()=>ae,MUSEC_MIN_LEN:()=>$s,asMasterSeed:()=>zt,fromSeedHosts:()=>js});function ha(e){return e.map((t)=>({handle:t.handle,label:t.label,idx:t.idx??0}))}function js(e){if(e.byteLength===0||e.every((c)=>c===0))return a(22);if(e.byteLength<pe+1)return a(14);let t=e.subarray(0,pe);if(t.every((c)=>c===0))return a(22);let r=new Y(e.subarray(pe)),[n,s]=r.readStruct(Rr);if(s!==0)return a(s);if(n===void 0)return a(14);if(!r.done())return a(14);let[i,o]=ae.fromBytes(t);if(o!==0)return a(o);return p({enclave:i,hosts:n.hosts.map((c)=>({...c}))})}function zt(e){if(e.byteLength!==pe)return a(10);return[e,0]}function ya(e,t){if(e.byteLength!==t.byteLength)return!1;let r=0;for(let n=0;n<e.byteLength;n++){let s=e[n],i=t[n];if(s===void 0||i===void 0)return!1;r|=s^i}return r===0}class ae{#e;constructor(e){this.#e=e}static async fromRandom(e){if(e.byteLength<$s)return a(10);let t=await br(),r=Le(t,e);try{let n=await lt(r),[s,i]=zt(n);if(i!==0)return a(i);return p(new ae(s))}finally{t.fill(0),r.fill(0),e.fill(0)}}static fromBytes(e){let[t,r]=zt(e);if(r!==0)return a(r);let[n,s]=zt(t.slice());if(s!==0)return a(s);return p(new ae(n))}async sealWithPasskey(e){let[t,r]=await Os(e);if(r!==0)return a(r);try{let[n,s]=await this.#n(t.prf);if(s!==0)return a(s);return p({sealedMaster:n,salt:t.salt,credId:t.credId,userId:t.userId,attachment:t.attachment,transports:t.transports,aaguid:t.aaguid})}finally{t.prf.fill(0)}}async bind(e,t){if(t!==void 0){for(let o of t)if(!await this.#u(o.credId,o.tag))return a(10)}let[r,n]=await this.sealWithPasskey(e);if(n!==0)return a(n);let[s,i]=await this.#t(r.credId);if(i!==0)return a(i);return p({...r,tag:s})}static async unsealWithPasskey(e,t){if(e.length===0)return a(22);let[r,n]=await Ns(e,t);if(n!==0)return a(n);try{for(let s of r.order){let[i]=await ae.#s(s.sealedMaster,r.prf);if(i!==void 0)return p({enclave:i,credId:r.credId})}return a(20)}finally{r.prf.fill(0)}}async sealWithIkm(e){try{return await this.#n(e)}finally{e.fill(0)}}static async unsealWithIkm(e,t){try{return await ae.#s(e,t)}finally{t.fill(0)}}async persistToLargeBlob(e=[],t){let[r,n]=await Rs(t);if(n!==0)return a(n);let[s,i]=this.#i(e);if(i!==0)return a(i);try{let o=await Fr(r,s,t);if(o!==0)return a(o);return p(r)}finally{s.fill(0)}}static async fromLargeBlob(e){let[t,r]=await vs(e?.credId,e);if(r!==0)return a(r);try{let[n,s]=js(t.blob);if(s!==0)return a(s);return p({...n,credId:t.credId})}finally{t.blob.fill(0)}}static clearLargeBlob(e,t){return Ms(e,t)}async dumpToTty(){return 21}static pairRequest(){return rt.create()}async pairAccept(e,t,r){if(r.userControlsBothSidesOfPair!==!0)return a(10);let[n,s]=await ws(e);if(s!==0)return a(s);try{let[i,o]=this.#i(t);if(o!==0)return a(o);try{try{let c=await dt(i,n.key);return bs(Le(n.pub,c))}catch{return a(12)}}finally{i.fill(0)}}finally{n.key.fill(0)}}spawnSyncWorker(e){let t=Ts(),r=this.#e.slice();return Ds(t,{id:e.id,op:"setSeed",seed:r,persist:e.persist},[r.buffer]),t}async realmID(e){return Ws(this.#e,e)}async hostRlm(e,t){let[r,n]=await this.realmID(e);if(n!==0)return a(n);try{return await zs(r,t)}finally{r.fill(0)}}async realmForRlm(e,t,r){for(let n of r){let[s,i]=await this.hostRlm(n,e);if(i!==0)return a(i);let o=ya(s,t);if(s.fill(0),o)return p({label:n.label,index:n.index})}return a(13)}deriveCipher(e,t,r=oe){let n=e.slice(),s={label:r.label,index:r.index},i=(u)=>this.#f(n,u,s),o=(u)=>this.#d(n,u,s);return{encrypt:Object.freeze({encrypt:i}),decrypt:Object.freeze({decrypt:o}),both:Object.freeze({encrypt:i,decrypt:o})}[t]}async deriveIdentity(e){let t={label:e.label,index:e.index},[r,n]=await this.#c(t);if(n!==0)return a(n);let s=r.publicKey;return r.privateKey.fill(0),p(Object.freeze({publicKey:s,sign:(i)=>this.#p(t,i),kdmFor:(i)=>this.#h(t,i)}))}async fingerprint(e=oe){return await ce({parent:this.#e,purpose:ie.Fingerprint,kdm:e})}async#t(e){return await ce({parent:this.#e,purpose:ie.BindTag,kdm:e})}async#u(e,t){if(t.byteLength!==la)return!1;let[r,n]=await this.#t(e);if(n!==0)return!1;try{if(r.byteLength!==t.byteLength)return!1;let s=0;for(let i=0;i<r.byteLength;i++){let o=r[i],c=t[i];if(o===void 0||c===void 0)return!1;s|=o^c}return s===0}finally{r.fill(0)}}static async#r(e){if(e.byteLength<pa)return a(10);return ce({parent:e,purpose:ie.Bind,kdm:oe})}async#n(e){let[t,r]=await ae.#r(e);if(r!==0)return a(r);try{let n=await dt(this.#e,t);return Kt(n)}catch{return a(12)}finally{t.fill(0)}}static async#s(e,t){let[,r]=Kt(e);if(r!==0)return a(r);let[n,s]=await ae.#r(t);if(s!==0)return a(s);let i;try{try{i=await Ye(e,n)}catch{return a(20)}return ae.fromBytes(i)}finally{n.fill(0),i?.fill(0)}}#i(e){let t=new K,r=t.writeStruct(Rr,{hosts:ha(e)});if(r!==0)return a(r);let n=t.result(),s=new Uint8Array(pe+n.byteLength);return s.set(this.#e,0),s.set(n,pe),[s,0]}async#f(e,t,r){let[n,s]=await this.#o(e,r);if(s!==0)return a(s);try{try{return p(await dt(t,n))}catch{return a(29)}}finally{n.fill(0)}}async#d(e,t,r){let[n,s]=await this.#o(e,r);if(s!==0)return a(s);try{try{return p(await Ye(t,n))}catch{return a(20)}}finally{n.fill(0)}}async#o(e,t){let[r,n]=await this.#l(t);if(n!==0)return a(n);try{return await ce({parent:r,purpose:ie.Cipher,kdm:e})}finally{r.fill(0)}}async#l(e){return Fs(this.#e,e)}async#a(e){return await ce({parent:this.#e,purpose:ie.Identity,kdm:e})}async#c(e){let[t,r]=await this.#a(e);if(r!==0)return a(r);try{try{return p(await Sr(ma(t)))}catch{return a(29)}}finally{t.fill(0)}}async#p(e,t){let[r,n]=await this.#c(e);if(n!==0)return a(n);try{try{return p(await wr(t,r.privateKey))}catch{return a(29)}}finally{r.privateKey.fill(0)}}async#h(e,t){let[r,n]=await this.#a(e);if(n!==0)return a(n);try{let[s,i]=await ce({parent:r,purpose:ie.BagKdm,kdm:t});if(i!==0)return a(i);try{return p(s.slice(0,Ge))}finally{s.fill(0)}}finally{r.fill(0)}}}function ma(e){return e}function Gs(e){for(let t of Object.getOwnPropertyNames(e)){if(xa.has(t))continue;let r=Object.getOwnPropertyDescriptor(e,t);if(r===void 0||typeof r.value!=="function")continue;Object.defineProperty(e,t,{value:r.value,writable:!1,configurable:!1})}}var la=32,pa=16,$s=32,xa;var Mr=v(()=>{de();ee();ms();B();Rt();k();le();pt();As();Nr();Ks();Hs();qs();Xs();xa=new Set(["constructor","prototype","length","name"]);Gs(ae);Gs(ae.prototype)});var Xt=Z(function(ri){Object.defineProperty(ri,"__esModule",{value:!0});ri.utf8Count=ga;ri.utf8EncodeJs=Qs;ri.utf8EncodeTE=Zs;ri.utf8Encode=wa;ri.utf8DecodeJs=ei;ri.utf8DecodeTD=ti;ri.utf8Decode=Ua;function ga(e){let t=e.length,r=0,n=0;while(n<t){let s=e.charCodeAt(n++);if((s&4294967168)===0){r++;continue}else if((s&4294965248)===0)r+=2;else{if(s>=55296&&s<=56319){if(n<t){let i=e.charCodeAt(n);if((i&64512)===56320)++n,s=((s&1023)<<10)+(i&1023)+65536}}if((s&4294901760)===0)r+=3;else r+=4}}return r}function Qs(e,t,r){let n=e.length,s=r,i=0;while(i<n){let o=e.charCodeAt(i++);if((o&4294967168)===0){t[s++]=o;continue}else if((o&4294965248)===0)t[s++]=o>>6&31|192;else{if(o>=55296&&o<=56319){if(i<n){let c=e.charCodeAt(i);if((c&64512)===56320)++i,o=((o&1023)<<10)+(c&1023)+65536}}if((o&4294901760)===0)t[s++]=o>>12&15|224,t[s++]=o>>6&63|128;else t[s++]=o>>18&7|240,t[s++]=o>>12&63|128,t[s++]=o>>6&63|128}t[s++]=o&63|128}}var ba=new TextEncoder,Sa=50;function Zs(e,t,r){ba.encodeInto(e,t.subarray(r))}function wa(e,t,r){if(e.length>Sa)Zs(e,t,r);else Qs(e,t,r)}var Ia=4096;function ei(e,t,r){let n=t,s=n+r,i=[],o="";while(n<s){let c=e[n++];if((c&128)===0)i.push(c);else if((c&224)===192){let u=e[n++]&63;i.push((c&31)<<6|u)}else if((c&240)===224){let u=e[n++]&63,f=e[n++]&63;i.push((c&31)<<12|u<<6|f)}else if((c&248)===240){let u=e[n++]&63,f=e[n++]&63,d=e[n++]&63,l=(c&7)<<18|u<<12|f<<6|d;if(l>65535)l-=65536,i.push(l>>>10&1023|55296),l=56320|l&1023;i.push(l)}else i.push(c);if(i.length>=Ia)o+=String.fromCharCode(...i),i.length=0}if(i.length>0)o+=String.fromCharCode(...i);return o}var Aa=new TextDecoder,Ea=200;function ti(e,t,r){let n=e.subarray(t,t+r);return Aa.decode(n)}function Ua(e,t,r){if(r>Ea)return ti(e,t,r);else return ei(e,t,r)}});var $r=Z(function(si){Object.defineProperty(si,"__esModule",{value:!0});si.ExtData=void 0;class ni{type;data;constructor(e,t){this.type=e,this.data=t}}si.ExtData=ni});var jt=Z(function(oi){Object.defineProperty(oi,"__esModule",{value:!0});oi.DecodeError=void 0;class $t extends Error{constructor(e){super(e);let t=Object.create($t.prototype);Object.setPrototypeOf(this,t),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$t.name})}}oi.DecodeError=$t});var Gt=Z(function(ci){Object.defineProperty(ci,"__esModule",{value:!0});ci.UINT32_MAX=void 0;ci.setUint64=Ka;ci.setInt64=Ra;ci.getInt64=Ma;ci.getUint64=Ha;ci.UINT32_MAX=4294967295;function Ka(e,t,r){let n=r/4294967296,s=r;e.setUint32(t,n),e.setUint32(t+4,s)}function Ra(e,t,r){let n=Math.floor(r/4294967296),s=r;e.setUint32(t,n),e.setUint32(t+4,s)}function Ma(e,t){let r=e.getInt32(t),n=e.getUint32(t+4);return r*4294967296+n}function Ha(e,t){let r=e.getUint32(t),n=e.getUint32(t+4);return r*4294967296+n}});var jr=Z(function(mi){Object.defineProperty(mi,"__esModule",{value:!0});mi.timestampExtension=mi.EXT_TIMESTAMP=void 0;mi.encodeTimeSpecToTimestamp=di;mi.encodeDateToTimeSpec=li;mi.encodeTimestampExtension=pi;mi.decodeTimestampToTimeSpec=hi;mi.decodeTimestampExtension=yi;var Na=jt(),fi=Gt();mi.EXT_TIMESTAMP=-1;var qa=4294967295,Fa=17179869183;function di({sec:e,nsec:t}){if(e>=0&&t>=0&&e<=Fa)if(t===0&&e<=qa){let r=new Uint8Array(4);return new DataView(r.buffer).setUint32(0,e),r}else{let r=e/4294967296,n=e&4294967295,s=new Uint8Array(8),i=new DataView(s.buffer);return i.setUint32(0,t<<2|r&3),i.setUint32(4,n),s}else{let r=new Uint8Array(12),n=new DataView(r.buffer);return n.setUint32(0,t),(0,fi.setInt64)(n,4,e),r}}function li(e){let t=e.getTime(),r=Math.floor(t/1000),n=(t-r*1000)*1e6,s=Math.floor(n/1e9);return{sec:r+s,nsec:n-s*1e9}}function pi(e){if(e instanceof Date){let t=li(e);return di(t)}else return null}function hi(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:{let r=t.getUint32(0),n=0;return{sec:r,nsec:0}}case 8:{let r=t.getUint32(0),n=t.getUint32(4),s=(r&3)*4294967296+n,i=r>>>2;return{sec:s,nsec:i}}case 12:{let r=(0,fi.getInt64)(t,4),n=t.getUint32(0);return{sec:r,nsec:n}}default:throw new Na.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${e.length}`)}}function yi(e){let t=hi(e);return new Date(t.sec*1000+t.nsec/1e6)}mi.timestampExtension={type:mi.EXT_TIMESTAMP,encode:pi,decode:yi}});var Jt=Z(function(bi){Object.defineProperty(bi,"__esModule",{value:!0});bi.ExtensionCodec=void 0;var Yt=$r(),Ga=jr();class Gr{static defaultCodec=new Gr;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(Ga.timestampExtension)}register({type:e,encode:t,decode:r}){if(e>=0)this.encoders[e]=t,this.decoders[e]=r;else{let n=-1-e;this.builtInEncoders[n]=t,this.builtInDecoders[n]=r}}tryToEncode(e,t){for(let r=0;r<this.builtInEncoders.length;r++){let n=this.builtInEncoders[r];if(n!=null){let s=n(e,t);if(s!=null){let i=-1-r;return new Yt.ExtData(i,s)}}}for(let r=0;r<this.encoders.length;r++){let n=this.encoders[r];if(n!=null){let s=n(e,t);if(s!=null){let i=r;return new Yt.ExtData(i,s)}}}if(e instanceof Yt.ExtData)return e;return null}decode(e,t,r){let n=t<0?this.builtInDecoders[-1-t]:this.decoders[t];if(n)return n(e,t,r);else return new Yt.ExtData(t,e)}}bi.ExtensionCodec=Gr});var Yr=Z(function(wi){Object.defineProperty(wi,"__esModule",{value:!0});wi.ensureUint8Array=Ja;function Ya(e){return e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer}function Ja(e){if(e instanceof Uint8Array)return e;else if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);else if(Ya(e))return new Uint8Array(e);else return Uint8Array.from(e)}});var Qr=Z(function(Ei){Object.defineProperty(Ei,"__esModule",{value:!0});Ei.Encoder=Ei.DEFAULT_INITIAL_BUFFER_SIZE=Ei.DEFAULT_MAX_DEPTH=void 0;var Ii=Xt(),Za=Jt(),Ai=Gt(),ec=Yr();Ei.DEFAULT_MAX_DEPTH=100;Ei.DEFAULT_INITIAL_BUFFER_SIZE=2048;class Jr{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??Za.ExtensionCodec.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.maxDepth=e?.maxDepth??Ei.DEFAULT_MAX_DEPTH,this.initialBufferSize=e?.initialBufferSize??Ei.DEFAULT_INITIAL_BUFFER_SIZE,this.sortKeys=e?.sortKeys??!1,this.forceFloat32=e?.forceFloat32??!1,this.ignoreUndefined=e?.ignoreUndefined??!1,this.forceIntegerToFloat=e?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new Jr({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,t){if(t>this.maxDepth)throw Error(`Too deep objects in depth ${t}`);if(e==null)this.encodeNil();else if(typeof e==="boolean")this.encodeBoolean(e);else if(typeof e==="number")if(!this.forceIntegerToFloat)this.encodeNumber(e);else this.encodeNumberAsFloat(e);else if(typeof e==="string")this.encodeString(e);else if(this.useBigInt64&&typeof e==="bigint")this.encodeBigInt64(e);else this.encodeObject(e,t)}ensureBufferSizeToWrite(e){let t=this.pos+e;if(this.view.byteLength<t)this.resizeBuffer(t*2)}resizeBuffer(e){let t=new ArrayBuffer(e),r=new Uint8Array(t),n=new DataView(t);r.set(this.bytes),this.view=n,this.bytes=r}encodeNil(){this.writeU8(192)}encodeBoolean(e){if(e===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(e){if(!this.forceIntegerToFloat&&Number.isSafeInteger(e))if(e>=0)if(e<128)this.writeU8(e);else if(e<256)this.writeU8(204),this.writeU8(e);else if(e<65536)this.writeU8(205),this.writeU16(e);else if(e<4294967296)this.writeU8(206),this.writeU32(e);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(e);else this.encodeNumberAsFloat(e);else if(e>=-32)this.writeU8(224|e+32);else if(e>=-128)this.writeU8(208),this.writeI8(e);else if(e>=-32768)this.writeU8(209),this.writeI16(e);else if(e>=-2147483648)this.writeU8(210),this.writeI32(e);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(e);else this.encodeNumberAsFloat(e);else this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){if(this.forceFloat32)this.writeU8(202),this.writeF32(e);else this.writeU8(203),this.writeF64(e)}encodeBigInt64(e){if(e>=BigInt(0))this.writeU8(207),this.writeBigUint64(e);else this.writeU8(211),this.writeBigInt64(e)}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){let r=(0,Ii.utf8Count)(e);this.ensureBufferSizeToWrite(5+r),this.writeStringHeader(r),(0,Ii.utf8Encode)(e,this.bytes,this.pos),this.pos+=r}encodeObject(e,t){let r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e==="object")this.encodeMap(e,t);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){let t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else if(t<4294967296)this.writeU8(198),this.writeU32(t);else throw Error(`Too large binary: ${t}`);let r=(0,ec.ensureUint8Array)(e);this.writeU8a(r)}encodeArray(e,t){let r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw Error(`Too large array: ${r}`);for(let n of e)this.doEncode(n,t+1)}countWithoutUndefined(e,t){let r=0;for(let n of t)if(e[n]!==void 0)r++;return r}encodeMap(e,t){let r=Object.keys(e);if(this.sortKeys)r.sort();let n=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(n<16)this.writeU8(128+n);else if(n<65536)this.writeU8(222),this.writeU16(n);else if(n<4294967296)this.writeU8(223),this.writeU32(n);else throw Error(`Too large map object: ${n}`);for(let s of r){let i=e[s];if(!(this.ignoreUndefined&&i===void 0))this.encodeString(s),this.doEncode(i,t+1)}}encodeExtension(e){if(typeof e.data==="function"){let r=e.data(this.pos+6),n=r.length;if(n>=4294967296)throw Error(`Too large extension object: ${n}`);this.writeU8(201),this.writeU32(n),this.writeI8(e.type),this.writeU8a(r);return}let t=e.data.length;if(t===1)this.writeU8(212);else if(t===2)this.writeU8(213);else if(t===4)this.writeU8(214);else if(t===8)this.writeU8(215);else if(t===16)this.writeU8(216);else if(t<256)this.writeU8(199),this.writeU8(t);else if(t<65536)this.writeU8(200),this.writeU16(t);else if(t<4294967296)this.writeU8(201),this.writeU32(t);else throw Error(`Too large extension object: ${t}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){let t=e.length;this.ensureBufferSizeToWrite(t),this.bytes.set(e,this.pos),this.pos+=t}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),(0,Ai.setUint64)(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),(0,Ai.setInt64)(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}Ei.Encoder=Jr});var ki=Z(function(Ci){Object.defineProperty(Ci,"__esModule",{value:!0});Ci.encode=rc;var tc=Qr();function rc(e,t){return new tc.Encoder(t).encodeSharedRef(e)}});var Ti=Z(function(vi){Object.defineProperty(vi,"__esModule",{value:!0});vi.prettyByte=sc;function sc(e){return`${e<0?"-":""}0x${Math.abs(e).toString(16).padStart(2,"0")}`}});var Mi=Z(function(Ki){Object.defineProperty(Ki,"__esModule",{value:!0});Ki.CachedKeyDecoder=void 0;var oc=Xt(),ac=16,cc=16;class Di{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(e=ac,t=cc){this.maxKeyLength=e,this.maxLengthPerKey=t,this.caches=[];for(let r=0;r<this.maxKeyLength;r++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,t,r){let n=this.caches[r-1];e:for(let s of n){let i=s.bytes;for(let o=0;o<r;o++)if(i[o]!==e[t+o])continue e;return s.str}return null}store(e,t){let r=this.caches[e.length-1],n={bytes:e,str:t};if(r.length>=this.maxLengthPerKey)r[Math.random()*r.length|0]=n;else r.push(n)}decode(e,t,r){let n=this.find(e,t,r);if(n!=null)return this.hit++,n;this.miss++;let s=(0,oc.utf8DecodeJs)(e,t,r),i=Uint8Array.prototype.slice.call(e,t,t+r);return this.store(i,s),s}}Ki.CachedKeyDecoder=Di});var Qt=Z(function(Oi){Object.defineProperty(Oi,"__esModule",{value:!0});Oi.Decoder=void 0;var Zr=Ti(),uc=Jt(),Oe=Gt(),fc=Xt(),Hi=Yr(),dc=Mi(),Be=jt(),en="array",gt="map_key",_i="map_value",lc=(e)=>{if(typeof e==="string"||typeof e==="number")return e;throw new Be.DecodeError("The type of key must be string or number but "+typeof e)};class Vi{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){let t=this.getUninitializedStateFromPool();t.type=en,t.position=0,t.size=e,t.array=Array(e)}pushMapState(e){let t=this.getUninitializedStateFromPool();t.type=gt,t.readCount=0,t.size=e,t.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===en){let r=e;r.size=0,r.array=void 0,r.position=0,r.type=void 0}if(e.type===gt||e.type===_i){let r=e;r.size=0,r.map=void 0,r.readCount=0,r.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var xt=-1,tn=new DataView(new ArrayBuffer(0)),pc=new Uint8Array(tn.buffer);try{tn.getInt8(0)}catch(e){if(!(e instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var Li=RangeError("Insufficient data"),hc=new dc.CachedKeyDecoder;class rn{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=tn;bytes=pc;headByte=xt;stack=new Vi;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??uc.ExtensionCodec.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.rawStrings=e?.rawStrings??!1,this.maxStrLength=e?.maxStrLength??Oe.UINT32_MAX,this.maxBinLength=e?.maxBinLength??Oe.UINT32_MAX,this.maxArrayLength=e?.maxArrayLength??Oe.UINT32_MAX,this.maxMapLength=e?.maxMapLength??Oe.UINT32_MAX,this.maxExtLength=e?.maxExtLength??Oe.UINT32_MAX,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:hc,this.mapKeyConverter=e?.mapKeyConverter??lc}clone(){return new rn({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=xt,this.stack.reset()}setBuffer(e){let t=(0,Hi.ensureUint8Array)(e);this.bytes=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===xt&&!this.hasRemaining(1))this.setBuffer(e);else{let t=this.bytes.subarray(this.pos),r=(0,Hi.ensureUint8Array)(e),n=new Uint8Array(t.length+r.length);n.set(t),n.set(r,t.length),this.setBuffer(n)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){let{view:t,pos:r}=this;return RangeError(`Extra ${t.byteLength-r} of ${t.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);let t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let t=!1,r;for await(let o of e){if(t)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(o);try{r=this.doDecodeSync(),t=!0}catch(c){if(!(c instanceof RangeError))throw c}this.totalPos+=this.pos}if(t){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return r}let{headByte:n,pos:s,totalPos:i}=this;throw RangeError(`Insufficient data in parsing ${(0,Zr.prettyByte)(n)} at ${i} (${s} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,t){if(this.entered){yield*this.clone().decodeMultiAsync(e,t);return}try{this.entered=!0;let r=t,n=-1;for await(let s of e){if(t&&n===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(s),r)n=this.readArraySize(),r=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--n===0)break}catch(i){if(!(i instanceof RangeError))throw i}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:while(!0){let e=this.readHeadByte(),t;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){let n=e-128;if(n!==0){this.pushMapState(n),this.complete();continue e}else t={}}else if(e<160){let n=e-144;if(n!==0){this.pushArrayState(n),this.complete();continue e}else t=[]}else{let n=e-160;t=this.decodeString(n,0)}else if(e===192)t=null;else if(e===194)t=!1;else if(e===195)t=!0;else if(e===202)t=this.readF32();else if(e===203)t=this.readF64();else if(e===204)t=this.readU8();else if(e===205)t=this.readU16();else if(e===206)t=this.readU32();else if(e===207)if(this.useBigInt64)t=this.readU64AsBigInt();else t=this.readU64();else if(e===208)t=this.readI8();else if(e===209)t=this.readI16();else if(e===210)t=this.readI32();else if(e===211)if(this.useBigInt64)t=this.readI64AsBigInt();else t=this.readI64();else if(e===217){let n=this.lookU8();t=this.decodeString(n,1)}else if(e===218){let n=this.lookU16();t=this.decodeString(n,2)}else if(e===219){let n=this.lookU32();t=this.decodeString(n,4)}else if(e===220){let n=this.readU16();if(n!==0){this.pushArrayState(n),this.complete();continue e}else t=[]}else if(e===221){let n=this.readU32();if(n!==0){this.pushArrayState(n),this.complete();continue e}else t=[]}else if(e===222){let n=this.readU16();if(n!==0){this.pushMapState(n),this.complete();continue e}else t={}}else if(e===223){let n=this.readU32();if(n!==0){this.pushMapState(n),this.complete();continue e}else t={}}else if(e===196){let n=this.lookU8();t=this.decodeBinary(n,1)}else if(e===197){let n=this.lookU16();t=this.decodeBinary(n,2)}else if(e===198){let n=this.lookU32();t=this.decodeBinary(n,4)}else if(e===212)t=this.decodeExtension(1,0);else if(e===213)t=this.decodeExtension(2,0);else if(e===214)t=this.decodeExtension(4,0);else if(e===215)t=this.decodeExtension(8,0);else if(e===216)t=this.decodeExtension(16,0);else if(e===199){let n=this.lookU8();t=this.decodeExtension(n,1)}else if(e===200){let n=this.lookU16();t=this.decodeExtension(n,2)}else if(e===201){let n=this.lookU32();t=this.decodeExtension(n,4)}else throw new Be.DecodeError(`Unrecognized type byte: ${(0,Zr.prettyByte)(e)}`);this.complete();let r=this.stack;while(r.length>0){let n=r.top();if(n.type===en)if(n.array[n.position]=t,n.position++,n.position===n.size)t=n.array,r.release(n);else continue e;else if(n.type===gt){if(t==="__proto__")throw new Be.DecodeError("The key __proto__ is not allowed");n.key=this.mapKeyConverter(t),n.type=_i;continue e}else if(n.map[n.key]=t,n.readCount++,n.readCount===n.size)t=n.map,r.release(n);else{n.key=null,n.type=gt;continue e}}return t}}readHeadByte(){if(this.headByte===xt)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=xt}readArraySize(){let e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;else throw new Be.DecodeError(`Unrecognized array type byte: ${(0,Zr.prettyByte)(e)}`)}}pushMapState(e){if(e>this.maxMapLength)throw new Be.DecodeError(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new Be.DecodeError(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,t){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(e,t);return this.decodeBinary(e,t)}decodeUtf8String(e,t){if(e>this.maxStrLength)throw new Be.DecodeError(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+t+e)throw Li;let r=this.pos+t,n;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e))n=this.keyDecoder.decode(this.bytes,r,e);else n=(0,fc.utf8Decode)(this.bytes,r,e);return this.pos+=t+e,n}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===gt;return!1}decodeBinary(e,t){if(e>this.maxBinLength)throw new Be.DecodeError(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+t))throw Li;let r=this.pos+t,n=this.bytes.subarray(r,r+e);return this.pos+=t+e,n}decodeExtension(e,t){if(e>this.maxExtLength)throw new Be.DecodeError(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);let r=this.view.getInt8(this.pos+t),n=this.decodeBinary(e,t+1);return this.extensionCodec.decode(n,r,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){let e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){let e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){let e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){let e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){let e=(0,Oe.getUint64)(this.view,this.pos);return this.pos+=8,e}readI64(){let e=(0,Oe.getInt64)(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){let e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){let e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}}Oi.Decoder=rn});var Wi=Z(function(Fi){Object.defineProperty(Fi,"__esModule",{value:!0});Fi.decode=yc;Fi.decodeMulti=mc;var qi=Qt();function yc(e,t){return new qi.Decoder(t).decode(e)}function mc(e,t){return new qi.Decoder(t).decodeMulti(e)}});var ji=Z(function($i){Object.defineProperty($i,"__esModule",{value:!0});$i.isAsyncIterable=zi;$i.asyncIterableFromStream=Xi;$i.ensureAsyncIterable=bc;function zi(e){return e[Symbol.asyncIterator]!=null}async function*Xi(e){let t=e.getReader();try{while(!0){let{done:r,value:n}=await t.read();if(r)return;yield n}}finally{t.releaseLock()}}function bc(e){if(zi(e))return e;else return Xi(e)}});var Yi=Z(function(Gi){Object.defineProperty(Gi,"__esModule",{value:!0});Gi.decodeAsync=Ac;Gi.decodeArrayStream=Ec;Gi.decodeMultiStream=Uc;var nn=Qt(),sn=ji();async function Ac(e,t){let r=(0,sn.ensureAsyncIterable)(e);return new nn.Decoder(t).decodeAsync(r)}function Ec(e,t){let r=(0,sn.ensureAsyncIterable)(e);return new nn.Decoder(t).decodeArrayStream(r)}function Uc(e,t){let r=(0,sn.ensureAsyncIterable)(e);return new nn.Decoder(t).decodeStream(r)}});var Qi=Z(function(z){Object.defineProperty(z,"__esModule",{value:!0});z.decodeTimestampExtension=z.encodeTimestampExtension=z.decodeTimestampToTimeSpec=z.encodeTimeSpecToTimestamp=z.encodeDateToTimeSpec=z.EXT_TIMESTAMP=z.ExtData=z.ExtensionCodec=z.Encoder=z.DecodeError=z.Decoder=z.decodeMultiStream=z.decodeArrayStream=z.decodeAsync=z.decodeMulti=z.decode=z.encode=void 0;var kc=ki();Object.defineProperty(z,"encode",{enumerable:!0,get:function(){return kc.encode}});var Ji=Wi();Object.defineProperty(z,"decode",{enumerable:!0,get:function(){return Ji.decode}});Object.defineProperty(z,"decodeMulti",{enumerable:!0,get:function(){return Ji.decodeMulti}});var on=Yi();Object.defineProperty(z,"decodeAsync",{enumerable:!0,get:function(){return on.decodeAsync}});Object.defineProperty(z,"decodeArrayStream",{enumerable:!0,get:function(){return on.decodeArrayStream}});Object.defineProperty(z,"decodeMultiStream",{enumerable:!0,get:function(){return on.decodeMultiStream}});var vc=Qt();Object.defineProperty(z,"Decoder",{enumerable:!0,get:function(){return vc.Decoder}});var Tc=jt();Object.defineProperty(z,"DecodeError",{enumerable:!0,get:function(){return Tc.DecodeError}});var Dc=Qr();Object.defineProperty(z,"Encoder",{enumerable:!0,get:function(){return Dc.Encoder}});var Kc=Jt();Object.defineProperty(z,"ExtensionCodec",{enumerable:!0,get:function(){return Kc.ExtensionCodec}});var Rc=$r();Object.defineProperty(z,"ExtData",{enumerable:!0,get:function(){return Rc.ExtData}});var st=jr();Object.defineProperty(z,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return st.EXT_TIMESTAMP}});Object.defineProperty(z,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return st.encodeDateToTimeSpec}});Object.defineProperty(z,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return st.encodeTimeSpecToTimestamp}});Object.defineProperty(z,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return st.decodeTimestampToTimeSpec}});Object.defineProperty(z,"encodeTimestampExtension",{enumerable:!0,get:function(){return st.encodeTimestampExtension}});Object.defineProperty(z,"decodeTimestampExtension",{enumerable:!0,get:function(){return st.decodeTimestampExtension}})});pt();var Ve=Jn;ee();ee();B();ee();B();k();var kt={encode(e,t){let r=e.writeVarBytes(t.id);if(r!==0)return r;let n=e.writeDate(t.ts);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readVarBytes();if(r!==0)return a(r);let[n,s]=e.readDate();if(s!==0)return a(s);return p({id:t,ts:n})}};function Qn(e){let t=new K,r=t.writeStruct(kt,e);if(r!==0)return a(r);let n=t.result();return p(n)}k();var Ar={encode(e,t){let r=e.writeVarString(t.typ??"");if(r!==0)return r;let n=e.writeVarBytes(t.eid);if(n!==0)return n;let s=e.writeVarInt(t.off);if(s!==0)return s;let i=e.writeVarInt(t.ctr);if(i!==0)return i;let o=e.writeVarInt(t.len);if(o!==0)return o;if(t.hsh)e.writeBytes(t.hsh);return 0},decode(e){let[t,r]=e.readVarString();if(r!==0)return a(r);let[n,s]=e.readVarBytes();if(s!==0)return a(s);let i=new Y(n),[,o]=kt.decode(i);if(o!==0)return a(o);let[c,u]=e.readVarInt();if(u!==0)return a(u);let[f,d]=e.readVarInt();if(d!==0)return a(d);let[l,y]=e.readVarInt();if(y!==0)return a(y);let h;if(l>0){let[x,m]=e.readBytes(_n);if(m!==0)return a(m);h=x}return p({typ:t,eid:n,off:c,ctr:f,len:l,hsh:h})}};B();le();de();k();function vt(e,t){return Le(e,t)}function ns(e,t,r){if(e.rlm.byteLength!==L)return Promise.resolve(!1);return r.checkSigEd25519(e.sig,vt(e.rlm,e.headCph),t)}async function ss(e,t,r,n,s=oe,i=oe){let o;if(e.bod&&e.len>0)o=await r.blake3(e.bod);let c=new K,u=Ar.encode(c,{...e,hsh:o});if(u!==0)return a(u);let f=c.result(),[d,l]=await t.kdmFor(f);if(l!==0)return a(l);let[y,h]=await n.hostRlm(i,s);if(h!==0)return a(h);let x=n.deriveCipher(d,"encrypt",i),[m,S]=await x.encrypt(f);if(S!==0)return a(S);let w=new Uint8Array(0);if(e.bod){let[A,C]=await x.encrypt(e.bod);if(C!==0)return a(C);w=A}let[I,U]=await t.sign(vt(y,m));if(U!==0)return a(U);return p({rlm:y,sig:I,kdm:d,headCph:m,bodyCph:w})}async function is(e,t,r,n,s){let i=new Y(e),[o,c]=Ar.decode(i);if(c!==0)return a(14);let u;if(t&&t.length>0){let[y,h]=await r.decrypt(t);if(h!==0)return a(h);u=y}let f=o.hsh&&u===void 0,d=o.hsh===void 0&&u!==void 0;if(f||d)return a(19);if(o.hsh&&u){let y=await n.blake3(u);if(!He(y,o.hsh))return a(19)}let l=s??await n.blake3(e);return p({msgHead:o,bod:u,headHash:l})}de();ee();B();k();async function Er(e,t){let r=new K,n=r.writeDate(t);if(n!==0)return a(n);let s=r.result(),[i,o]=await e.sign(s);if(o!==0)return a(o);return p({pubKey:e.publicKey,sig:i,timestamp:t})}async function fe(e,t,r){let n=r.now().getTime(),s=e.timestamp.getTime();if(Math.abs(n-s)>Vn)return 4;let o=new K;o.writeDate(e.timestamp);let c=o.result(),u;try{u=await t.importVerifyKey(e.pubKey)}catch{return 29}if(!await t.checkSigEd25519(e.sig,c,u))return 3;return 0}class Je{now(){return new Date}}function os(e,t,r,n){let s=t.getTime()-e.getTime(),i=r.getTime()-n.getTime();return(s+i)/2}ee();B();k();B();k();var ht={encode(e,t){if(e.writeVarInt(t.quota),t.quota>0){if(t.usage===void 0)return 9;e.writeVarInt(t.usage)}return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let n;if(t>0){let[s,i]=e.readVarInt();if(i!==0)return a(i);n=s}return p({quota:t,usage:n})}};var Qe={encode(e,t){e.writeBytes(new Uint8Array([t.status]));let r=e.writeDate(t.timeRcvd);if(r!==0)return r;let n=e.writeDate(t.timeSent);if(n!==0)return n;let s=e.writeVarInt(t.subscription.term);if(s!==0)return s;let i=e.writeVarInt(t.subscription.elapsed);if(i!==0)return i;let o=e.writeStruct(ht,t.subscription.stat);if(o!==0)return o;let c=e.writeStruct(ht,t.subscription.dyn);if(c!==0)return c;return 0},decode(e){let[t,r]=e.readBytes(1);if(r!==0)return a(r);let n=t[0],[s,i]=e.readDate();if(i!==0)return a(i);let[o,c]=e.readDate();if(c!==0)return a(c);let[u,f]=e.readVarInt();if(f!==0)return a(f);let[d,l]=e.readVarInt();if(l!==0)return a(l);let[y,h]=e.readStruct(ht);if(h!==0)return a(h);let[x,m]=e.readStruct(ht);if(m!==0)return a(m);return p({status:n,timeRcvd:s,timeSent:o,subscription:{term:u,elapsed:d,stat:y,dyn:x}})}};B();le();ee();B();B();B();k();var Ur={encode(e,t){let r=e.writeVarBytes(t.headCph);if(r!==0)return r;let n=e.writeVarInt(t.seq);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readVarBytes();if(r!==0)return a(r);let[n,s]=e.readVarInt();if(s!==0)return a(s);return p({headCph:t,seq:n})}};B();k();var te={encode(e,t){e.writeBytes(t.pubKey),e.writeBytes(t.sig);let r=e.writeDate(t.timestamp);if(r!==0)return r;return 0},decode(e){let[t,r]=e.readBytes(Ln);if(r!==0)return a(r);let[n,s]=e.readBytes(_e);if(s!==0)return a(s);let[i,o]=e.readDate();if(o!==0)return a(o);return p({pubKey:t,sig:n,timestamp:i})}};le();k();var as={encode(e,t){if(t.rlm.byteLength!==L)return 10;return e.writeBytes(t.rlm),e.writeVarInt(t.seq)},decode(e){let[t,r]=e.readBytes(L);if(r!==0)return a(r);let[n,s]=ke(t);if(s!==0)return a(s);let[i,o]=e.readVarInt();if(o!==0)return a(o);return p({rlm:n,seq:i})}},cs={async encodeReq(e,t,r,n,s){let i=s.writeStruct(te,r);if(i!==0)return i;return s.writeStruct(as,n)},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i}=e,[o,c]=t.readStruct(te);if(c!==0)return c;let u=await fe(o,s,n);if(u!==0)return u;let{pubKey:f}=o,[d,l]=await i.hasUser(f);if(l!==0)return l;if(!d)return 5;let[y,h]=t.readStruct(as);if(h!==0)return h;if(!t.done())return 8;let[x,m]=await i.listHeads(f,y.rlm,y.seq);if(m!==0)return m;return r.writeStructs(Ur,x)},decodeResp(e){return e.readStructs(Ur)}};B();k();var Pr={encode(e,t){e.writeVarInt(t.seq);let r=e.writeVarBytes(t.bodyCph);if(r!==0)return r;return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let[n,s]=e.readVarBytes();if(s!==0)return a(s);return p({seq:t,bodyCph:n})}};B();le();k();var us={encode(e,t){if(t.rlm.byteLength!==L)return 10;e.writeBytes(t.rlm);for(let r of t.seqs){let n=e.writeVarInt(r);if(n!==0)return n}return 0},decode(e){let[t,r]=e.readBytes(L);if(r!==0)return a(r);let[n,s]=ke(t);if(s!==0)return a(s);let i=[];while(!e.done()){let[o,c]=e.readVarInt();if(c!==0)return a(c);i.push(o)}return p({rlm:n,seqs:i})}},fs={async encodeReq(e,t,r,n,s){let i=s.writeStruct(te,r);if(i!==0)return i;return s.writeStruct(us,n)},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i}=e,[o,c]=t.readStruct(te);if(c!==0)return c;let u=await fe(o,s,n);if(u!==0)return u;let{pubKey:f}=o,[d,l]=await i.hasUser(f);if(l!==0)return l;if(!d)return 5;let[y,h]=t.readStruct(us);if(h!==0)return h;console.info(`PULL: ${y.seqs.length} bags`);let[x,m]=await i.getBodies(f,y.rlm,y.seqs);if(m!==0)return m;if(!x)return 17;for(let{seq:S,bodyCph:w}of x){let I={seq:S,bodyCph:w},U=r.writeStruct(Pr,I);if(U!==0)return U}return 0},decodeResp(e){return e.readStructs(Pr)}};ee();B();le();k();var Br={encode(e,t){if(t.rlm.byteLength!==L)return 10;if(t.sig.byteLength!==_e)return 10;e.writeBytes(t.sig),e.writeBytes(t.rlm),e.writeBytes(t.kdm);let r=e.writeVarBytes(t.headCph);if(r!==0)return r;let n=e.writeVarBytes(t.bodyCph);if(n!==0)return n;return 0},decode(e){let[t,r]=e.readBytes(_e);if(r!==0)return a(r);let[n,s]=e.readBytes(L);if(s!==0)return a(s);let[i,o]=ke(n);if(o!==0)return a(o);let[c,u]=e.readBytes(Ge);if(u!==0)return a(u);let[f,d]=e.readVarBytes();if(d!==0)return a(d);let[l,y]=e.readVarBytes();if(y!==0)return a(y);return p({rlm:i,sig:t,kdm:c,headCph:f,bodyCph:l})}};B();le();k();var Cr={encode(e,t){let r=e.writeVarInt(t.seq);if(r!==0)return r;if(t.rlm.byteLength!==L)return 10;e.writeBytes(t.rlm);let n=e.writeVarBytes(t.headCph);if(n!==0)return n;let s=t.bodyCph?t.bodyCph.length:0,i=e.writeVarInt(s);if(i!==0)return i;if(s>0){if(!t.bodyCph)return 10;e.writeBytes(t.bodyCph)}return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let[n,s]=e.readBytes(L);if(s!==0)return a(s);let[i,o]=ke(n);if(o!==0)return a(o);let[c,u]=e.readVarBytes();if(u!==0)return a(u);let[f,d]=e.readVarInt();if(d!==0)return a(d);let l;if(f>0){let[y,h]=e.readBytes(f);if(h!==0)return a(h);l=y}return p({seq:t,rlm:i,headCph:c,bodyCph:l})}};B();k();var Ze={encode(e,t){e.writeBytes(t.sig),e.writeBytes(t.kdm);let r=e.writeVarBytes(t.headCph);if(r!==0)return r;return 0},decode(e){let[t,r]=e.readBytes(_e);if(r!==0)return a(r);let[n,s]=e.readBytes(Ge);if(s!==0)return a(s);let[i,o]=e.readVarBytes();if(o!==0)return a(o);return p({sig:t,kdm:n,headCph:i})}};B();k();var yt={encode(e,t){if(e.writeVarInt(t.idx),e.writeBytes(new Uint8Array([t.status])),t.status===0)e.writeVarInt(t.seq);return 0},decode(e){let[t,r]=e.readVarInt();if(r!==0)return a(r);let[n,s]=e.readBytes(1);if(s!==0)return a(s);let i=n[0];if(i!==0)return p({idx:t,status:i});let[o,c]=e.readVarInt();if(c!==0)return a(c);return p({idx:t,status:i,seq:o})}};B();var ds={encode(e,t){return e.writeStructs(Br,t)},decode(e){return e.readStructs(Br)}},ls={async encodeReq(e,t,r,n,s){let i=s.writeStruct(te,r);if(i!==0)return i;return s.writeStruct(ds,n)},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i,notifier:o}=e,[c,u]=t.readStruct(te);if(u!==0)return u;let f=await fe(c,s,n);if(f!==0)return f;let{pubKey:d}=c,[l,y]=await i.hasUser(d);if(y!==0)return y;if(!l)return 5;let[h,x]=t.readStruct(ds);if(x!==0)return x;console.info(`PUSH: ${h.length} bags`);let m;try{m=await s.importVerifyKey(d)}catch{return 29}let S=[],w=[];for(let C=0;C<h.length;C++){let T=h[C];if(!await ns(T,m,s)){let R={idx:C,status:3},M=r.writeStruct(yt,R);if(M!==0)return M;continue}S.push(C),w.push(T)}let[I,U]=await i.setBags(d,w);if(U!==0)return U;if(!I||I.length!==w.length)return 17;let A=[];for(let C=0;C<w.length;C++){let T=w[C],X=S[C],R=I[C];if(R.status!==0){let W={idx:X,status:R.status},N=r.writeStruct(yt,W);if(N!==0)return N;continue}let M=R.seq,_=new K,V=_.writeStruct(Ze,T);if(V!==0)return V;let q=_.result(),g={seq:M,rlm:T.rlm,headCph:q};if(h.length===1&&T.bodyCph.length<=On)g.bodyCph=T.bodyCph;A.push(g);let F={idx:X,status:0,seq:M},O=r.writeStruct(yt,F);if(O!==0)return O}if(A.length>0){let C=new K,T=C.writeStructs(Cr,A);if(T!==0)return T;let X=C.result();await Promise.resolve(o.push(d,X))}return 0},decodeResp(e){return e.readStructs(yt)}};B();k();var ps={async encodeReq(e,t,r,n,s){return s.writeStruct(te,r)},async handleReq(e,t,r){let{clock:n,crypto:s,storage:i}=e,[o,c]=t.readStruct(te);if(c!==0)return c;let u=await fe(o,s,n);if(u!==0)return u;let{pubKey:f}=o;if(!t.done())return 8;let[d,l]=await i.addUser(f);if(l!==0)return l;return 0},decodeResp(e){return p(void 0)}};de();ee();B();class kr{url;websocket;constructor(e){this.url=e}connected(){return this.websocket!==void 0&&this.websocket.readyState===WebSocket.OPEN}async connect(e,t,r=()=>{},n=()=>{}){let{url:s}=this;if(this.websocket)this.websocket.close(),this.websocket=void 0;let i=new K;i.writeStruct(te,e);let o=i.result(),c=ue(o);return s.searchParams.set("t",c),this.websocket=new WebSocket(s),this.websocket.binaryType="arraybuffer",this.websocket.onopen=()=>{console.log("CONNECTED"),n()},this.websocket.onclose=()=>{console.log("DISCONNECTED"),this.websocket=void 0,r()},this.websocket.onmessage=(u)=>{let f=new Uint8Array(u.data);t(f)},this.websocket.onerror=(u)=>{console.log(`ERROR: ${JSON.stringify(u)}`),this.websocket=void 0,r()},Promise.resolve(0)}disconnect(){this.websocket?.close(),this.websocket=void 0}}k();var J={user:{path:"/user",endpoint:ps,name:0},push:{path:"/push",endpoint:ls,name:2},peek:{path:"/peek",endpoint:cs,name:1},pull:{path:"/pull",endpoint:fs,name:3}},Go={0:J.user,2:J.push,1:J.peek,3:J.pull},hs={[J.user.path]:J.user,[J.push.path]:J.push,[J.peek.path]:J.peek,[J.pull.path]:J.pull};class ys{url;listener;constructor(e){this.url=e;this.listener=new kr(e)}async call(e,t){let{path:r}=Go[e],n=new URL(r,this.url);try{return await Jo(n,t)}catch{return a(25)}}}var vr=(e)=>new ys(e.handle);function et(e){let t=new K;if(t.writeStruct(Qe,e)!==0)return new Response(null,{status:500});return Tr(t)}function Tr(e){let t=e.result().slice();return new Response(t,{status:200,headers:{"content-type":"application/octet-stream"}})}var Yo={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,POST,OPTIONS"};function Dr(e){return new Response(e.body,{headers:{...e.headers,...Yo},status:e.status,statusText:e.statusText})}async function Jo(e,t){let r=await fetch(e,{method:"POST",body:t.result().slice()});if(!r.ok)return a(24);let n=await Y.fromResponse(r);return p(n)}k();class Tt{enclave;crypto;host;clock;transport;updateHostMeta;constructor(e,t,r,n,s,i){this.enclave=e;this.crypto=t;this.host=r;this.clock=n;this.transport=s;this.updateHostMeta=i}async call(e,t){let{clock:r,transport:n}=this,{endpoint:s,name:i}=e,[o,c]=await this.identity();if(c!==0)return a(c);let u=r.now(),[f,d]=await Er(o,u);if(d!==0)return a(d);let l=new K,y=await s.encodeReq(this,o,f,t,l);if(y!==0)return a(y);let h=r.now(),[x,m]=await n.call(i,l),S=r.now();if(m!==0)return a(m);let[w,I]=x.readStruct(Qe);if(I!==0)return a(I);if(w.status!==0)return a(w.status);let A={clockOffset:os(h,w.timeRcvd,w.timeSent,S),subscription:w.subscription},C=await this.updateHostMeta(A);if(C!==0)return a(C);return s.decodeResp(x)}#e(){return{label:this.host.label,index:this.host.idx??0}}identity=()=>this.enclave.deriveIdentity(this.#e());hostRlm=(e=oe)=>this.enclave.hostRlm(e,this.#e());seal=async(e,t=oe)=>{let{crypto:r,enclave:n}=this,[s,i]=await this.identity();if(i!==0)return a(i);return ss(e,s,r,n,this.#e(),t)};register=()=>this.call(J.user,void 0);peek=async(e,t=oe)=>{let[r,n]=await this.hostRlm(t);if(n!==0)return a(n);return this.call(J.peek,{rlm:r,seq:e})};push=(e)=>this.call(J.push,e);pull=async(e,t=oe)=>{let[r,n]=await this.hostRlm(t);if(n!==0)return a(n);return this.call(J.pull,{rlm:r,seqs:e})};listen=async(e,t,r)=>{let{clock:n,transport:s}=this,{listener:i}=s,[o,c]=await this.identity();if(c!==0)return c;let u=n.now(),[f,d]=await Er(o,u);if(d!==0)return d;return await i.connect(f,e,t,r)};isConnected(){let e=this.transport?.listener;if(e&&typeof e.connected==="function")return e.connected();return!0}closeListener(){this.transport?.listener?.disconnect()}}B();Mr();ee();B();k();async function Ys(e,t,r,n=0){let s=t.now(),i=new K,o=i.writeVarString(e);if(o!==0)return a(o);let u={id:i.result(),ts:new Date(0)},[f,d]=Qn(u);if(d!==0)return a(d);let l=s.getTime()-u.ts.getTime();return p({eid:f,off:l,ctr:n,typ:"",len:r.length,bod:r})}ee();B();le();k();async function Js(e,t,r,n,s,i=oe){if(s.byteLength!==L)return a(10);let o=new Y(e.headCph),[c,u]=o.readStruct(Ze);if(u!==0)return a(u);let{sig:f,kdm:d,headCph:l}=c;if(!await n.checkSigEd25519(f,vt(s,l),t))return a(3);let h=r.deriveCipher(d,"decrypt",i),[x,m]=await h.decrypt(l);if(m!==0)return a(m);return p({kdm:d,headEnc:x})}k();var it=lo(Qi(),1),Hc={encode:it.encode,decode:it.decode,decodeAsync:it.decodeAsync},Lc=Hc;ee();B();de();import{Database as _c}from"bun:sqlite";Rt();var Ih=Symbol("EntityID");var Ah=Symbol("DerivationSeed"),Eh=Symbol("PublicKey"),Uh=Symbol("PrivateKey"),Ph=Symbol("HostSpecificKeyPair"),Bh=Symbol("Hash"),Ce={term:0,elapsed:0,stat:{quota:0},dyn:{quota:0}};ee();B();k();function Vc(e="diplomatic.db"){let t=new _c(e);return t.exec("PRAGMA journal_mode=WAL;"),t.exec("PRAGMA synchronous=NORMAL;"),t.exec(`
2
2
  CREATE TABLE IF NOT EXISTS users (
3
3
  pubKey TEXT PRIMARY KEY
4
4
  );
5
- `),t.exec(`
6
5
  CREATE TABLE IF NOT EXISTS bags (
7
6
  userPubKey TEXT,
7
+ rlm BLOB,
8
8
  seq INTEGER,
9
9
  headCph BLOB,
10
10
  bodyCph BLOB,
11
- PRIMARY KEY (userPubKey, seq),
12
- UNIQUE (userPubKey, seq)
11
+ PRIMARY KEY (userPubKey, rlm, seq)
13
12
  );
14
- `),{async addUser(r){try{let n=ne(r);return t.exec("INSERT INTO users (pubKey) VALUES (?) ON CONFLICT DO NOTHING",[n]),h(void 0)}catch{return a(17)}},async hasUser(r){try{let n=ne(r),s=t.prepare("SELECT EXISTS (SELECT 1 FROM users WHERE pubKey = ?) AS ok").get(n);return h(Boolean(s?.ok))}catch{return a(17)}},async subMeta(r){return h(we)},async setBags(r,n){if(n.length<1)return h([]);try{let s=ne(r);t.exec("BEGIN IMMEDIATE");try{let i=t.prepare("SELECT MAX(seq) AS m FROM bags WHERE userPubKey = ?").get(s),o=i?i.m||0:0,c=[],u=t.prepare("INSERT INTO bags (userPubKey, seq, headCph, bodyCph) VALUES (?, ?, ?, ?)");for(let f of n){o+=1;let d=new K;d.writeStruct(qe,f),u.run(s,o,d.result(),f.bodyCph),c.push(o)}return t.exec("COMMIT"),h(c)}catch(i){try{t.exec("ROLLBACK")}catch{}throw i}}catch{return a(17)}},async getBodies(r,n){if(n.length<1)return h([]);try{let s=ne(r),i=[],o=100,c=99;for(let u=0;u<n.length;u+=99){let f=n.slice(u,u+99),d=f.map(()=>"?").join(","),l=t.prepare(`SELECT seq, bodyCph FROM bags WHERE userPubKey = ? AND seq IN (${d})`).all(s,...f);for(let p of l)if(p.bodyCph)i.push({seq:p.seq,bodyCph:new Uint8Array(p.bodyCph)})}return h(i)}catch{return a(17)}},async listHeads(r,n){try{let s=ne(r),i=t.prepare("SELECT seq, headCph FROM bags WHERE userPubKey = ? AND seq > ? ORDER BY seq").all(s,n);return h(i.map((o)=>({seq:o.seq,headCph:new Uint8Array(o.headCph)})))}catch{return a(17)}}}}var Ia=Sa(),Ws=Ia;class Lr{storage;crypto;notifier;clock;constructor(e,t,r,n){this.storage=e;this.crypto=t;this.notifier=r;this.clock=n}corsHandler=async(e)=>{if(e.method==="OPTIONS")return ar(new Response(null));let t=`${e.method} ${e.url}`;console.time(t);let r=await this.handler(e);return console.timeEnd(t),ar(r)};handler=async(e)=>{let{clock:t}=this,r=t.now(),n=new URL(e.url);if(e.method!=="POST"){let f=t.now();return We({status:13,timeRcvd:r,timeSent:f,subscription:we})}if(!e.body){let f=t.now();return We({status:7,timeRcvd:r,timeSent:f,subscription:we})}let i=new Uint8Array(await e.arrayBuffer()),o=new J(i),c=n.pathname,u=An[c]?.endpoint;if(!u){let f=t.now();return We({status:13,timeRcvd:r,timeSent:f,subscription:we})}try{let f=new K,d=await u.handleReq(this,o,f),l=we,p={status:d,timeRcvd:r,timeSent:this.clock.now(),subscription:l},y=new K;if(y.writeStruct(Fe,p)!==0)return new Response(null,{status:500});if(d!==0){let x=t.now();return We({status:d,timeRcvd:r,timeSent:x,subscription:we})}return f.prependBytes(y.result()),or(f)}catch(f){let d=t.now();return console.error(f),console.trace(),We({status:12,timeRcvd:r,timeSent:d,subscription:we})}}}async function Xs(e,t){let n=new URL(e.url).searchParams.get(on);if(!n)return a(11);let s=ut(n),i=new J(s),[o,c]=i.readStruct(ee);if(c!==0)return a(11);let u=await ie(o,t.crypto,t.clock);if(u!==0)return a(u);return h(o)}class $s{recvs=new Map;async open(e,t,r,n){let s=await ie(e,r,n);if(s!==0)return{send:()=>s,shut:()=>s,status:s};let i=ne(e.pubKey);if(!this.recvs.has(i))this.recvs.set(i,new Set);return this.recvs.get(i)?.add(t),{send:(o)=>(t(o),0),shut:()=>(this.recvs.get(i)?.delete(t),0),status:0}}async push(e,t){let r=ne(e),n=this.recvs.get(r);if(n)for(let s of n)s(t)}}var zs=new $s;async function Aa(e=Number.parseInt(process.env.DIPLOMATIC_HOST_PORT||"31337")){let t=new Lr(Ws,Ve,zs,new Ne);console.log(`DIPLOMATIC PARCEL SERVICE ACTIVE on http://localhost:${e}`),Bun.serve({port:e,fetch:async(r,n)=>{if(r.headers.get("upgrade")==="websocket"){let[s,i]=await Xs(r,t);if(i!==0)return new Response("Unauthorized",{status:401});return n.upgrade(r,{data:{authTS:s}})?void 0:new Response("Upgrade failed",{status:400})}return t.corsHandler(r)},websocket:{data:{},open:(r)=>{let n=r.data.authTS;zs.open(n,(s)=>r.send(s),t.crypto,t.clock).then((s)=>{if(s.status!==0){r.close();return}r.channel=s})},message:(r,n)=>{},close:(r)=>{r.channel?.shut()}}})}class Gs{enclave;conn;clock;constructor({enclave:e,clock:t=new Ne}){this.enclave=e,this.clock=t}async connect(e,t){let r=new Ne,n=()=>Promise.resolve(0);this.conn=new ht(this.enclave,Ve,e,r,t,n);let[,s]=await this.conn.register();return s}async push(e){if(!this.conn)return a(28);let t=[];for(let s of e){let[i,o]=await this.conn.seal(s);if(o!==0)return a(o);t.push(i)}let[r,n]=await this.conn.push(t);if(n!==0)return a(n);return h(r)}async peek(e){if(!this.conn)return a(28);return this.conn.peek(e)}async pull(e){if(!this.conn)return a(28);return this.conn.pull(e)}async open(e,t){if(!this.conn)return a(28);let r=await this.conn.identity(),[n,s]=await Fn(e,r.publicKey,this.enclave,Ve);if(s!==0)return a(s);let i=this.enclave.deriveCipher(n.kdm,"decrypt");return xn(n.headEnc,t.bodyCph,i,Ve)}async upsertSingletonSync(e,t){let[r,n]=await Nn(e,this.clock,t);if(n!==0)return n;let[,s]=await this.push([r]);return s}async listen(e,t,r){if(!this.conn)return 28;return this.conn.listen(e,t,r)}isConnected(){return this.conn?.isConnected()??!1}}async function Ea({enclave:e,host:t,transport:r}){let n=new Gs({enclave:e}),s=await n.connect(t,r);return[n,s]}async function mh({enclave:e,host:t,transport:r}){let n=r??ir(t),[s,i]=await Ea({enclave:e,host:t,transport:n});if(i!==0)console.error(`Failed to initialize CLI: ${C[i]}`),process.exit(1);return s}function xh(e){let t=process.env[e];if(!t)console.error(`${e} env var missing`),process.exit(1);let r=ut(t),[n,s]=oe.fromBytes(r);if(r.fill(0),s!==0||n===void 0)console.error(`${e} must be 64 hex chars (32-byte master seed)`),process.exit(1);return n}function gh(e){let t=process.env[e];if(!t)console.error(`${e} env var missing`),process.exit(1);return{handle:new URL(t),label:"host"}}export{Gs as CLIClient,J as Decoder,C as Status,ir as hostHTTPTransport,Ea as initCLI,mh as initCLIOrPanic,xh as loadEnclaveOrPanic,gh as loadHostOrPanic,ba as msgpack,nr as notifItemCodec,Aa as runBunHost};
13
+ `),{async addUser(r){try{let n=ue(r);return t.exec("INSERT INTO users (pubKey) VALUES (?) ON CONFLICT DO NOTHING",[n]),p(void 0)}catch{return a(17)}},async hasUser(r){try{let n=ue(r),s=t.prepare("SELECT EXISTS (SELECT 1 FROM users WHERE pubKey = ?) AS ok").get(n);return p(Boolean(s?.ok))}catch{return a(17)}},async subMeta(r){return p(Ce)},async setBags(r,n){if(n.length<1)return p([]);let s=[];for(let c=0;c<n.length;c++)if(n[c].rlm.byteLength===L)s.push(c);let i=new Map;if(s.length>0)try{let c=ue(r);t.exec("BEGIN IMMEDIATE");try{let u=new Map,f=t.prepare("SELECT MAX(seq) AS m FROM bags WHERE userPubKey = ? AND rlm = ?"),d=t.prepare("INSERT INTO bags (userPubKey, rlm, seq, headCph, bodyCph) VALUES (?, ?, ?, ?, ?)");for(let l of s){let y=n[l],h=ue(y.rlm),x=u.get(h);if(x===void 0)x=f.get(c,y.rlm)?.m||0;x+=1,u.set(h,x);let m=new K;m.writeStruct(Ze,y),d.run(c,y.rlm,x,m.result(),y.bodyCph),i.set(l,x)}t.exec("COMMIT")}catch(u){try{t.exec("ROLLBACK")}catch{}throw u}}catch{return a(17)}let o=[];for(let c=0;c<n.length;c++){if(n[c].rlm.byteLength!==L){o.push({status:10});continue}let u=i.get(c);if(u===void 0)return a(17);o.push({status:0,seq:u})}return p(o)},async getBodies(r,n,s){if(n.byteLength!==L)return a(10);if(s.length<1)return p([]);try{let i=ue(r),o=[],c=100,u=98;for(let f=0;f<s.length;f+=98){let d=s.slice(f,f+98),l=d.map(()=>"?").join(","),y=t.prepare(`SELECT seq, bodyCph FROM bags WHERE userPubKey = ? AND rlm = ? AND seq IN (${l})`).all(i,n,...d);for(let h of y){if(!h.bodyCph)continue;o.push({seq:h.seq,bodyCph:new Uint8Array(h.bodyCph)})}}return p(o)}catch{return a(17)}},async listHeads(r,n,s){if(n.byteLength!==L)return a(10);try{let i=ue(r),o=t.prepare("SELECT seq, headCph FROM bags WHERE userPubKey = ? AND rlm = ? AND seq > ? ORDER BY seq").all(i,n,s);return p(o.map((c)=>({seq:c.seq,headCph:new Uint8Array(c.headCph)})))}catch{return a(17)}}}}var Oc=Vc(),Zi=Oc;de();B();de();ee();B();k();class an{storage;crypto;notifier;clock;constructor(e,t,r,n){this.storage=e;this.crypto=t;this.notifier=r;this.clock=n}corsHandler=async(e)=>{if(e.method==="OPTIONS")return Dr(new Response(null));let t=`${e.method} ${e.url}`;console.time(t);let r=await this.handler(e);return console.timeEnd(t),Dr(r)};handler=async(e)=>{let{clock:t}=this,r=t.now(),n=new URL(e.url);if(e.method!=="POST"){let f=t.now();return et({status:13,timeRcvd:r,timeSent:f,subscription:Ce})}if(!e.body){let f=t.now();return et({status:7,timeRcvd:r,timeSent:f,subscription:Ce})}let i=new Uint8Array(await e.arrayBuffer()),o=new Y(i),c=n.pathname,u=hs[c]?.endpoint;if(!u){let f=t.now();return et({status:13,timeRcvd:r,timeSent:f,subscription:Ce})}try{let f=new K,d=await u.handleReq(this,o,f),l=Ce,y={status:d,timeRcvd:r,timeSent:this.clock.now(),subscription:l},h=new K;if(h.writeStruct(Qe,y)!==0)return new Response(null,{status:500});if(d!==0){let m=t.now();return et({status:d,timeRcvd:r,timeSent:m,subscription:Ce})}return f.prependBytes(h.result()),Tr(f)}catch(f){let d=t.now();return console.error(f),console.trace(),et({status:12,timeRcvd:r,timeSent:d,subscription:Ce})}}}async function eo(e,t){let n=new URL(e.url).searchParams.get(Nn);if(!n)return a(11);let s=Bt(n),i=new Y(s),[o,c]=i.readStruct(te);if(c!==0)return a(11);let u=await fe(o,t.crypto,t.clock);if(u!==0)return a(u);return p(o)}class ro{recvs=new Map;async open(e,t,r,n){let s=await fe(e,r,n);if(s!==0)return{send:()=>s,shut:()=>s,status:s};let i=ue(e.pubKey);if(!this.recvs.has(i))this.recvs.set(i,new Set);return this.recvs.get(i)?.add(t),{send:(o)=>(t(o),0),shut:()=>(this.recvs.get(i)?.delete(t),0),status:0}}async push(e,t){let r=ue(e),n=this.recvs.get(r);if(n)for(let s of n)s(t)}}var to=new ro;async function Nc(e=Number.parseInt(process.env.DIPLOMATIC_HOST_PORT||"31337")){let t=new an(Zi,Ve,to,new Je);console.log(`DIPLOMATIC PARCEL SERVICE ACTIVE on http://localhost:${e}`),Bun.serve({port:e,fetch:async(r,n)=>{if(r.headers.get("upgrade")==="websocket"){let[s,i]=await eo(r,t);if(i!==0)return new Response("Unauthorized",{status:401});return n.upgrade(r,{data:{authTS:s}})?void 0:new Response("Upgrade failed",{status:400})}return t.corsHandler(r)},websocket:{data:{},open:(r)=>{let n=r.data.authTS;to.open(n,(s)=>r.send(s),t.crypto,t.clock).then((s)=>{if(s.status!==0){r.close();return}r.channel=s})},message:(r,n)=>{},close:(r)=>{r.channel?.shut()}}})}class no{enclave;conn;clock;constructor({enclave:e,clock:t=new Je}){this.enclave=e,this.clock=t}async connect(e,t){let r=new Je,n=()=>Promise.resolve(0);this.conn=new Tt(this.enclave,Ve,e,r,t,n);let[,s]=await this.conn.register();return s}async push(e,t){if(!this.conn)return a(28);let r=[];for(let i of e){let[o,c]=await this.conn.seal(i,t);if(c!==0)return a(c);r.push(o)}let[n,s]=await this.conn.push(r);if(s!==0)return a(s);return p(n)}async peek(e,t){if(!this.conn)return a(28);return this.conn.peek(e,t)}async pull(e,t){if(!this.conn)return a(28);return this.conn.pull(e,t)}async open(e,t,r){if(!this.conn)return a(28);let[n,s]=await this.conn.identity();if(s!==0)return a(s);let i;try{i=await Ve.importVerifyKey(n.publicKey)}catch{return a(29)}let[o,c]=await this.conn.hostRlm(r);if(c!==0)return a(c);let[u,f]=await Js(e,i,this.enclave,Ve,o,r);if(f!==0)return a(f);let d=this.enclave.deriveCipher(u.kdm,"decrypt",r);return is(u.headEnc,t.bodyCph,d,Ve)}async upsertSingletonSync(e,t){let[r,n]=await Ys(e,this.clock,t);if(n!==0)return n;let[,s]=await this.push([r]);return s}async listen(e,t,r){if(!this.conn)return 28;return this.conn.listen(e,t,r)}isConnected(){return this.conn?.isConnected()??!1}}async function qc({enclave:e,host:t,transport:r}){let n=new no({enclave:e}),s=await n.connect(t,r);return[n,s]}async function by({enclave:e,host:t,transport:r}){let n=r??vr(t),[s,i]=await qc({enclave:e,host:t,transport:n});if(i!==0)console.error(`Failed to initialize CLI: ${P[i]}`),process.exit(1);return s}function Sy(e){let t=process.env[e];if(!t)console.error(`${e} env var missing`),process.exit(1);let r=Bt(t),[n,s]=ae.fromBytes(r);if(r.fill(0),s!==0||n===void 0)console.error(`${e} must be 64 hex chars (32-byte master seed)`),process.exit(1);return n}function wy(e){let t=process.env[e];if(!t)console.error(`${e} env var missing`),process.exit(1);return{handle:new URL(t),label:"host"}}export{no as CLIClient,Y as Decoder,P as Status,vr as hostHTTPTransport,qc as initCLI,by as initCLIOrPanic,Sy as loadEnclaveOrPanic,wy as loadHostOrPanic,Lc as msgpack,Cr as notifItemCodec,Nc as runBunHost};
@@ -1,3 +1,11 @@
1
+ import { ICodecStruct } from "../codec.ts";
1
2
  import { IAuthenticatedEndpoint } from "../endpoint.ts";
2
3
  import { IBagPeekItem } from "../codecs/peekItem.ts";
3
- export declare const peekEnd: IAuthenticatedEndpoint<number, IBagPeekItem[]>;
4
+ import { type HostRlm } from "../crypto/derivation.ts";
5
+ /** One realm cursor: that rlm, and the last seq the client has in it. */
6
+ export interface IPeekCursor {
7
+ rlm: HostRlm;
8
+ seq: number;
9
+ }
10
+ export declare const peekCursorCodec: ICodecStruct<IPeekCursor>;
11
+ export declare const peekEnd: IAuthenticatedEndpoint<IPeekCursor, IBagPeekItem[]>;
@@ -1,3 +1,11 @@
1
+ import { ICodecStruct } from "../codec.ts";
1
2
  import { type IBagPullItem } from "../codecs/pullItem.ts";
3
+ import { type HostRlm } from "../crypto/derivation.ts";
2
4
  import { IAuthenticatedEndpoint } from "../endpoint.ts";
3
- export declare const pullEnd: IAuthenticatedEndpoint<number, IBagPullItem[]>;
5
+ /** One realm, and the seqs to fetch in it. */
6
+ export interface IPullReq {
7
+ rlm: HostRlm;
8
+ seqs: number[];
9
+ }
10
+ export declare const pullReqCodec: ICodecStruct<IPullReq>;
11
+ export declare const pullEnd: IAuthenticatedEndpoint<IPullReq, IBagPullItem[]>;
@@ -1,4 +1,6 @@
1
+ import { ICodecStruct } from "../codec.ts";
1
2
  import { type IBagPushItem } from "../codecs/pushItem.ts";
2
3
  import { IAuthenticatedEndpoint } from "../endpoint.ts";
3
4
  import { IBag } from "../types.ts";
4
- export declare const pushEnd: IAuthenticatedEndpoint<IBag, IBagPushItem[]>;
5
+ export declare const pushReqCodec: ICodecStruct<IBag[]>;
6
+ export declare const pushEnd: IAuthenticatedEndpoint<IBag[], IBagPushItem[]>;
@@ -1,2 +1,2 @@
1
1
  import { IAuthenticatedEndpoint } from "../endpoint.ts";
2
- export declare const userEnd: IAuthenticatedEndpoint<never, void>;
2
+ export declare const userEnd: IAuthenticatedEndpoint<void, void>;
@@ -1,10 +1,13 @@
1
+ import type { IKDM } from "./codecs/kdm.ts";
1
2
  import { IMessageHead } from "./codecs/messageHead.ts";
3
+ import type { HostRlm } from "./crypto/derivation.ts";
2
4
  import { type DecryptCipher, Enclave, type Identity } from "./crypto/enclave.ts";
3
5
  import { EncodedMessage } from "./message.ts";
4
6
  import { type ValStat } from "./valstat.ts";
5
- import type { Hash, IBag, ICrypto, IHostCrypto, IMessage, IMessageWithHash, PublicKey } from "./types.ts";
6
- export declare function bagSigValid(bag: IBag, pubKey: PublicKey, crypto: IHostCrypto): Promise<boolean>;
7
- export declare function sealBag(msg: IMessage, identity: Identity, crypto: ICrypto, enclave: Enclave): Promise<ValStat<IBag>>;
7
+ import type { Hash, IBag, ICrypto, IHostCrypto, IMessage, IMessageWithHash } from "./types.ts";
8
+ export declare function bagSigMsg(rlm: HostRlm, headCph: Uint8Array): Uint8Array;
9
+ export declare function bagSigValid(bag: IBag, verifyKey: CryptoKey, crypto: IHostCrypto): Promise<boolean>;
10
+ export declare function sealBag(msg: IMessage, identity: Identity, crypto: ICrypto, enclave: Enclave, hostKDM?: IKDM, realmKDM?: IKDM): Promise<ValStat<IBag>>;
8
11
  export interface IOpenBag {
9
12
  msgHead: IMessageHead;
10
13
  bod?: EncodedMessage;
@@ -13,4 +16,4 @@ export interface IOpenBag {
13
16
  export declare function openBagBody(headEnc: Uint8Array, bodyCph: Uint8Array | undefined, cipher: DecryptCipher, crypto: ICrypto,
14
17
  /** When set (e.g. from peek), skip blake3(headEnc). */
15
18
  headHashKnown?: Hash): Promise<ValStat<IOpenBag>>;
16
- export declare function openBag(bag: IBag, pubKey: PublicKey, crypto: ICrypto, enclave: Enclave): Promise<ValStat<IMessageWithHash>>;
19
+ export declare function openBag(bag: IBag, verifyKey: CryptoKey, crypto: ICrypto, enclave: Enclave, hostKDM?: IKDM, realms?: readonly IKDM[]): Promise<ValStat<IMessageWithHash>>;
@@ -1,9 +1,14 @@
1
1
  import { IClock } from "./clock.ts";
2
+ import type { IKDM } from "./codecs/kdm.ts";
3
+ import type { IBagPeekItem } from "./codecs/peekItem.ts";
4
+ import type { IBagPullItem } from "./codecs/pullItem.ts";
2
5
  import { Status } from "./consts.ts";
3
6
  import { Enclave, type Identity } from "./crypto/enclave.ts";
7
+ import { type HostRlm } from "./crypto/derivation.ts";
4
8
  import type { HostHandle, IBag, ICrypto, IHostConnectionInfo, IHostMetadata, IMessage, ITransport, PushReceiver } from "./types.ts";
5
9
  import { ValStat } from "./valstat.ts";
6
10
  export default class DiplomaticClientAPI<Handle extends HostHandle> {
11
+ #private;
7
12
  enclave: Enclave;
8
13
  crypto: ICrypto;
9
14
  private host;
@@ -12,12 +17,13 @@ export default class DiplomaticClientAPI<Handle extends HostHandle> {
12
17
  private updateHostMeta;
13
18
  constructor(enclave: Enclave, crypto: ICrypto, host: IHostConnectionInfo<Handle>, clock: IClock, transport: ITransport, updateHostMeta: (meta: IHostMetadata) => Promise<Status>);
14
19
  private call;
15
- identity: () => Promise<Identity>;
16
- seal: (msg: IMessage) => Promise<ValStat<IBag>>;
20
+ identity: () => Promise<ValStat<Identity>>;
21
+ hostRlm: (realm?: IKDM) => Promise<ValStat<HostRlm>>;
22
+ seal: (msg: IMessage, realm?: IKDM) => Promise<ValStat<IBag>>;
17
23
  register: () => Promise<ValStat<void>>;
18
- peek: (lastSeq: number) => Promise<ValStat<import("./codecs/peekItem.ts").IBagPeekItem[]>>;
24
+ peek: (lastSeq: number, realm?: IKDM) => Promise<ValStat<IBagPeekItem[]>>;
19
25
  push: (bags: IBag[]) => Promise<ValStat<import("./codecs/pushItem.ts").IBagPushItem[]>>;
20
- pull: (seqs: number[]) => Promise<ValStat<import("./codecs/pullItem.ts").IBagPullItem[]>>;
26
+ pull: (seqs: number[], realm?: IKDM) => Promise<ValStat<IBagPullItem[]>>;
21
27
  listen: (recv: PushReceiver, onDisconnect?: () => void, onConnect?: () => void) => Promise<Status>;
22
28
  /** Returns whether this client has an active connection to its host.
23
29
  * If a push listener is active, reports the listener's connected state.